From 48d4d42740682908f3b23d3384d3736255065532 Mon Sep 17 00:00:00 2001 From: Daniel Honsel Date: Thu, 8 Oct 2015 07:11:24 +0000 Subject: [PATCH] updated test suites --- .../Common/IMS/IMS_SDP_Messages.ttcn | 723 - .../Common/IMS_XSD/NoTargetNamespace.ttcn | 31 - .../Common/IMS_XSD/UsefulTtcn3Types.ttcn | 70 - IMS_PART4_IWD_14wk37/Common/IMS_XSD/XSD.ttcn | 162 - ...rn_ietf_params_xml_ns_conference_info.ttcn | 228 - .../urn_ietf_params_xml_ns_gruuinfo.ttcn | 26 - .../IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn | 62 - ...urn_ietf_params_xml_ns_pidf_geopriv10.ttcn | 45 - ...ams_xml_ns_pidf_geopriv10_basicPolicy.ttcn | 31 - ...params_xml_ns_pidf_geopriv10_civicLoc.ttcn | 30 - .../urn_ietf_params_xml_ns_reginfo.ttcn | 74 - .../Common/NAS/NAS_CommonTypeDefs.ttcn | 870 - .../Common/UTRAN/UTRAN_ASP_Definitions.asn | 7967 ---- .../Common/UTRAN/UTRAN_CommonDefs.ttcn | 482 - .../IMS/13/IMS_CC_SigCompTestcases.ttcn | 110 - .../15/IMS_CC_SSConferencingTestcases.ttcn | 1032 - .../IMS/17/IMS_CC_MediaTestcases.ttcn | 523 - .../IMS/18/IMS_CC_SMSTestcases.ttcn | 260 - .../IMS/Common/IMS_CC_PCO_Handling.ttcn | 176 - .../XCAP_HTTP/HTTP_TemplatesAndFunctions.ttcn | 385 - ...etsi_org_ngn_params_xml_simservs_xcap.ttcn | 270 - .../urn_ietf_params_xml_ns_common_policy.ttcn | 118 - .../urn_oma_xml_xdm_common_policy.ttcn | 35 - .../Common/Common/CommonDefs.ttcn | 35 +- .../Common/Common/UpperTesterCommon.ttcn | 13 +- .../Common/Common/UpperTesterFunctions.ttcn | 637 +- .../Common/UpperTesterPtcToMtcDefs.ttcn | 31 +- .../Common/CommonIP/CommonIP.ttcn | 80 +- .../Common/EUTRA_Defs/EPS_NAS_Constants.ttcn | 235 + .../Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn | 61 +- .../IMS/IMS_34229_SelectionExpressions.ttcn | 66 +- .../Common/IMS/IMS_ASP_Templates.ttcn | 67 +- .../Common/IMS/IMS_ASP_TypeDefs.ttcn | 20 +- .../Common/IMS/IMS_CommonDefs.ttcn | 129 +- .../Common/IMS/IMS_CommonFunctions.ttcn | 51 +- .../Common/IMS/IMS_CommonTemplates.ttcn | 261 +- .../Common/IMS/IMS_Component.ttcn | 509 +- .../Common/IMS/IMS_EmgFunctions.ttcn | 4 +- .../Common/IMS/IMS_IP_Config.ttcn | 73 +- .../Common/IMS/IMS_MessageBody_Templates.ttcn | 29 +- .../Common/IMS/IMS_PTC_CoordMsg.ttcn | 71 +- .../IMS/IMS_Procedures_CallControl.ttcn | 1284 +- .../Common/IMS/IMS_Procedures_CallHold.ttcn | 380 + .../Common/IMS/IMS_Procedures_Common.ttcn | 289 +- .../IMS/IMS_Procedures_Registration.ttcn | 783 +- .../Common/IMS/IMS_Procedures_Video.ttcn | 248 + .../Common/IMS/IMS_SDP_Messages.ttcn | 782 + .../Common/IMS/IMS_SDP_MessagesVideo.ttcn | 477 + .../Common/IMS/IMS_SDP_Templates.ttcn | 487 +- .../Common/IMS/IMS_SIP_Templates.ttcn | 538 +- .../Common/IMS/IMS_SMS_Messages.ttcn | 224 +- .../Common/IMS/IMS_XML_PIDF_Templates.ttcn | 28 +- .../Common/IMS/IMS_XML_Templates.ttcn | 155 +- .../Common/IMS_LibSip/LibSip_Common.ttcn | 20 +- .../IMS_LibSip/LibSip_MessageBodyTypes.ttcn | 9 +- .../Common/IMS_LibSip/LibSip_SDPTypes.ttcn | 36 +- .../IMS_LibSip/LibSip_SIPTypesAndValues.ttcn | 183 +- .../LibSip_SimpleMsgSummaryTypes.ttcn | 4 +- .../Common/IMS_XSD/AlternativeService.xsd | 0 .../Common/IMS_XSD/RFC3680_reginfo.xsd | 0 .../Common/IMS_XSD/RFC3863_pdif.xsd | 0 .../Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd | 0 .../RFC4119_pdif_geopriv10_basicPolicy.xsd | 0 .../IMS_XSD/RFC4575_conference_info.xsd | 0 .../Common/IMS_XSD/RFC5628_gruuinfo.xsd | 0 IMS_PART4_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd | 54 + .../Common/IMS_XSD/xml.xsd | 2 +- .../Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn | 66 +- .../Common/IP_PTC/IP_ASP_Common.ttcn | 4 +- .../Common/IP_PTC/IP_ASP_TypeDefs.ttcn | 73 +- .../Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn | 175 +- .../Common/IP_PTC/IP_PTC_Templates.ttcn | 18 +- .../Common/NAS/NAS_AuthenticationCommon.ttcn | 33 +- .../NAS/NAS_AuxiliaryDefsAndFunctions.ttcn | 206 +- .../Common/NAS/NAS_CommonTemplates.ttcn | 134 +- .../Common/NAS/NAS_CommonTypeDefs.ttcn | 897 + .../Common/NAS/SMS_Templates.ttcn | 14 +- .../Common/NAS/SMS_TypeDefs.ttcn | 4 +- .../IMS/10/IMS_CC_SubscriptionTestcases.ttcn | 14 +- .../IMS/11/IMS_CC_NotificationTestcases.ttcn | 44 +- .../IMS/12/IMS_CC_CallControlTestcases.ttcn | 789 +- .../15/IMS_CC_SSConferencingTestcases.ttcn | 1161 + .../IMS/15/IMS_CC_SSTestcases.ttcn | 330 +- .../IMS/15/IMS_CC_SSXcapTestcases.ttcn | 463 +- .../IMS/15/IMS_ConferenceEventPackage.ttcn | 426 + .../IMS/16/IMS_CC_CodecSelecting.ttcn | 85 +- .../IMS/17/IMS_CC_MediaTestcases.ttcn | 256 + .../IMS/18/IMS_CC_SMSTestcases.ttcn | 127 + .../IMS/19/IMS_CC_EmergencyCallTestcases.ttcn | 236 +- .../IMS_CustomizedAlertingTonesTestcases.ttcn | 139 + .../IMS_CC_PDPContextActivationTestcases.ttcn | 27 +- .../7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn | 28 +- .../IMS/8/IMS_CC_RegistrationTestcases.ttcn | 118 +- .../IMS/9/IMS_CC_AuthenticationTestcases.ttcn | 50 +- .../IMS/Common/IMS_CC_CommonFunctions.ttcn | 125 +- .../IMS/Common/IMS_CC_Component.ttcn | 4 +- .../IMS/Common/IMS_CC_IPCAN_Coordination.ttcn | 39 +- .../IMS/Common/IMS_CC_PCO_Handling.ttcn | 83 + .../IMS/Common/TestcaseProperties.ttcn | 22 +- .../PART4_Stubs/MTC_Component_IMS_PART4.ttcn | 4 +- .../IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn | 4 +- .../IMS/PART4_Stubs/PART4_Adaptor.ttcn | 4 +- .../IMS/XCAP_HTTP/HTTP_Component.ttcn | 4 +- .../IMS/XCAP_HTTP/HTTP_Functions.ttcn | 529 + .../IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn | 26 +- .../IMS/XCAP_HTTP/HTTP_Templates.ttcn | 323 + .../IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn | 80 +- .../IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn | 4 +- .../XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn | 4 +- .../IMS/XCAP_XSD/RFC4745-common-policy.xsd | 0 IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24109.xsd | 24 + .../IMS/XCAP_XSD/TS24604.xsd | 0 .../IMS/XCAP_XSD/TS24607-OIP-OIR.xsd | 0 .../IMS/XCAP_XSD/TS24608-TIP-TIR R2.xsd | 0 .../IMS/XCAP_XSD/TS24611.xsd | 0 .../IMS/XCAP_XSD/XCAP.xsd | 0 .../IMS/XCAP_XSD/xdm_commonPolicy-V1_0.xsd | 0 .../IMS_Testsuite_PART4.ttcn | 246 +- .../PicsPixit/IMS_CC_Parameters.ttcn | 87 +- .../PicsPixit/IMS_CommonParameters.ttcn | 50 +- .../PicsPixit/Parameters.ttcn | 387 +- .../EUTRA_AuxiliaryCapCheckFunctions.ttcn | 148 - .../Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn | 794 - .../Common/EUTRA/EUTRA_CommonProcedures.ttcn | 2542 -- .../Common/EUTRA_Defs/EPS_NAS_Constants.ttcn | 223 - .../Common/IMS/IMS_DefaultHandler.ttcn | 51 - .../Common/IMS/IMS_SDP_Messages.ttcn | 723 - .../Common/IMS_XSD/NoTargetNamespace.ttcn | 31 - .../Common/IMS_XSD/UsefulTtcn3Types.ttcn | 70 - LTE_A_IWD_14wk37/Common/IMS_XSD/XSD.ttcn | 162 - ...rn_ietf_params_xml_ns_conference_info.ttcn | 228 - .../urn_ietf_params_xml_ns_gruuinfo.ttcn | 26 - .../IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn | 62 - ...urn_ietf_params_xml_ns_pidf_geopriv10.ttcn | 45 - ...ams_xml_ns_pidf_geopriv10_basicPolicy.ttcn | 31 - ...params_xml_ns_pidf_geopriv10_civicLoc.ttcn | 30 - .../urn_ietf_params_xml_ns_reginfo.ttcn | 74 - .../Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn | 163 - .../Common/NAS/NAS_CommonTypeDefs.ttcn | 870 - .../Common/UTRAN/UTRAN_CommonAspDefs.ttcn | 34 - .../Common/UTRAN/UTRAN_RAB_Functions.ttcn | 4132 -- .../UTRAN/UTRAN_RRC_ASN1_Definitions.asn | 33804 ---------------- .../UTRAN/UTRAN_RRC_Handover_Templates.ttcn | 51 - .../LTE_A/8_6/RRC_RACH_Optimisation.ttcn | 64 - .../PicsPixit/IMS_CC_Parameters.ttcn | 182 - .../PicsPixit/UTRAN_Parameters.ttcn | 208 - .../UTRAN34_ASN1_ASP_Templates_r10.ttcn | 72 - .../Common/C2K/CDMA2000_ASP_TypeDefs.ttcn | 10 +- .../Common/C2K/CDMA2000_CellInfo.ttcn | 62 +- .../Common/C2K/CDMA2000_CommonDefs.ttcn | 4 +- .../Common/C2K/CDMA2000_CommonFunctions.ttcn | 85 +- .../Common/C2K/CDMA2000_Component.ttcn | 44 +- .../Common/C2K/CDMA2000_Constants.ttcn | 4 +- .../Common/C2K/CDMA2000_Templates.ttcn | 58 +- .../Common/Common/CommonDefs.ttcn | 35 +- .../Common/Common/CommonIratDefs.ttcn | 66 +- .../Common/Common/UpperTesterCommon.ttcn | 13 +- .../Common/Common/UpperTesterFunctions.ttcn | 637 +- .../Common/UpperTesterPtcToMtcDefs.ttcn | 31 +- .../Common/Common/UpperTesterSystemCmds.ttcn | 152 +- .../Common/CommonIP/CommonIP.ttcn | 80 +- .../Common/CommonIP/LoopbackIP.ttcn | 22 +- .../EUTRA_AuxiliaryCapCheckFunctions.ttcn | 282 + .../EUTRA/EUTRA_AuxiliaryFunctions.ttcn | 13 +- .../EUTRA/EUTRA_BandDependentParam.ttcn | 28 +- .../EUTRA/EUTRA_CDMA2000Tunnelling.ttcn | 85 +- .../Common/EUTRA/EUTRA_CellInfo.ttcn | 653 +- .../Common/EUTRA/EUTRA_CellInfoFrequency.ttcn | 89 +- .../Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn | 2020 + .../Common/EUTRA/EUTRA_CellInfoInit_MFBI.ttcn | 1351 + .../Common/EUTRA/EUTRA_CommonProcedures.ttcn | 1495 + .../EUTRA/EUTRA_CommonProcedures_C2K.ttcn | 64 +- .../Common/EUTRA/EUTRA_CommonSRVCC.ttcn | 187 +- .../Common/EUTRA/EUTRA_Component.ttcn | 163 +- .../EUTRA/EUTRA_ConfigurationSteps.ttcn | 344 +- .../Common/EUTRA/EUTRA_IRATFunctions.ttcn | 32 +- .../Common/EUTRA/EUTRA_IdleMode.ttcn | 87 +- .../EUTRA/EUTRA_InitialRegistration.ttcn | 885 + .../Common/EUTRA/EUTRA_LoopBack.ttcn | 25 +- .../EUTRA/EUTRA_Measurement_Functions.ttcn | 4 +- .../Common/EUTRA/EUTRA_NASSteps.ttcn | 1379 +- .../EUTRA/EUTRA_NasSecurityProcedures.ttcn | 16 +- .../Common/EUTRA/EUTRA_Paging.ttcn | 20 +- .../Common/EUTRA/EUTRA_PdcchConfig.ttcn | 229 +- .../Common/EUTRA/EUTRA_RRCSteps.ttcn | 254 +- .../Common/EUTRA/EUTRA_RSRQ_Functions.ttcn | 16 +- .../Common/EUTRA/EUTRA_SecurityFunctions.ttcn | 86 +- .../Common/EUTRA/EUTRA_SecuritySteps.ttcn | 288 +- .../Common/EUTRA/EUTRA_Timing.ttcn | 10 +- .../Common/EUTRA/EUTRA_UE_Location.ttcn | 4 +- .../EUTRA/LTE_36523_SelectionExpressions.ttcn | 816 +- .../EUTRA_AspSystem_Templates_CA.ttcn | 93 +- .../EUTRA_CA}/EUTRA_CommonFunctions_CA.ttcn | 1001 +- .../EUTRA_CA}/EUTRA_RRC_Templates_CA.ttcn | 225 +- .../Common/EUTRA_Defs/EPS_NAS_Constants.ttcn | 235 + .../EUTRA_Defs/EPS_NAS_MsgContainers.ttcn | 9 +- .../Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn | 61 +- .../EUTRA_ASP_CDMA2000TunnellingDefs.ttcn | 4 +- .../Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn | 42 +- .../Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn | 9 +- .../Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn | 12 +- .../Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn | 155 +- .../EUTRA_ASP_VirtualNoiseDefs.ttcn | 10 +- .../Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn | 33 +- .../EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn | 4 +- .../EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn | 1527 +- ...curityDefinitionsAndExternalFunctions.ttcn | 27 +- .../EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn | 24 +- .../Common/EUTRA_L2/L2_CommonFunctions.ttcn | 240 +- .../Common/EUTRA_L2/L2_CommonTemplates.ttcn | 76 +- .../Common/EUTRA_L2/MAC_Common.ttcn | 1099 +- .../EUTRA_NAS/EUTRA_NASCommonFunctions.ttcn | 21 +- .../EUTRA_NAS/EUTRA_NASCommonTemplates.ttcn | 86 +- .../EUTRA_Templates/EPS_NAS_Templates.ttcn | 254 +- .../EUTRA_AspCommon_Templates.ttcn | 55 +- .../EUTRA_CellCfg_Templates.ttcn | 156 +- .../EUTRA_Templates/EUTRA_DRB_Templates.ttcn | 40 +- .../EUTRA_Measurement_Templates.ttcn | 158 +- .../EUTRA_Templates/EUTRA_RRC_Templates.ttcn | 352 +- .../EUTRA_Templates/EUTRA_SRB_Templates.ttcn | 4 +- .../EUTRA_Security_Templates.ttcn | 21 +- .../EUTRA_SysInfo_Templates.ttcn | 130 +- .../Common/GERAN/GERAN_CellInfo.ttcn | 76 +- .../Common/GERAN/GERAN_CommonFunctions.ttcn | 639 +- .../Common/GERAN/GERAN_Component.ttcn | 137 +- .../Common/GERAN/GERAN_Templates.ttcn | 798 +- .../Common/GERAN/GERAN_TypeDefs.ttcn | 470 +- .../Common/IMS/IMS_ASP_Templates.ttcn | 67 +- .../Common/IMS/IMS_ASP_TypeDefs.ttcn | 20 +- .../Common/IMS/IMS_CommonDefs.ttcn | 129 +- .../Common/IMS/IMS_CommonFunctions.ttcn | 51 +- .../Common/IMS/IMS_CommonSRVCC.ttcn | 223 +- .../Common/IMS/IMS_CommonTemplates.ttcn | 261 +- .../Common/IMS/IMS_Component.ttcn | 509 +- .../Common/IMS/IMS_DefaultHandler.ttcn | 71 + .../Common/IMS/IMS_IP_Config.ttcn | 73 +- .../Common/IMS/IMS_MessageBody_Templates.ttcn | 29 +- .../Common/IMS/IMS_PTC_CoordMsg.ttcn | 71 +- .../IMS/IMS_Procedures_CallControl.ttcn | 1284 +- .../Common/IMS/IMS_Procedures_CallHold.ttcn | 380 + .../Common/IMS/IMS_Procedures_Common.ttcn | 289 +- .../IMS/IMS_Procedures_Registration.ttcn | 783 +- .../Common/IMS/IMS_SDP_Messages.ttcn | 782 + .../Common/IMS/IMS_SDP_MessagesVideo.ttcn | 477 + .../Common/IMS/IMS_SDP_Templates.ttcn | 487 +- .../Common/IMS/IMS_SIP_Templates.ttcn | 538 +- .../Common/IMS/IMS_XML_PIDF_Templates.ttcn | 28 +- .../Common/IMS/IMS_XML_Templates.ttcn | 155 +- .../Common/IMS_LibSip/LibSip_Common.ttcn | 20 +- .../IMS_LibSip/LibSip_MessageBodyTypes.ttcn | 9 +- .../Common/IMS_LibSip/LibSip_SDPTypes.ttcn | 36 +- .../IMS_LibSip/LibSip_SIPTypesAndValues.ttcn | 183 +- .../LibSip_SimpleMsgSummaryTypes.ttcn | 4 +- .../Common/IMS_XSD/AlternativeService.xsd | 0 .../Common/IMS_XSD/RFC3680_reginfo.xsd | 0 .../Common/IMS_XSD/RFC3863_pdif.xsd | 0 .../Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd | 0 .../RFC4119_pdif_geopriv10_basicPolicy.xsd | 0 .../Common/IMS_XSD/RFC5628_gruuinfo.xsd | 0 LTE_A_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd | 54 + .../Common/IMS_XSD/xml.xsd | 2 +- .../Common/IP_PTC/DHCPv4_Common.ttcn | 4 +- .../Common/IP_PTC/DHCPv4_TypeDefs.ttcn | 4 +- .../Common/IP_PTC/DNS_Functions.ttcn | 293 + .../Common/IP_PTC/DNS_TypeDefs.ttcn | 141 + .../Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn | 66 +- .../Common/IP_PTC/ICMPv6_Functions.ttcn | 12 +- .../Common/IP_PTC/ICMPv6_TypeDefs.ttcn | 4 +- .../Common/IP_PTC/IP_ASP_Common.ttcn | 4 +- .../Common/IP_PTC/IP_ASP_TypeDefs.ttcn | 73 +- .../Common/IP_PTC/IP_PTC_Component.ttcn | 107 +- .../Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn | 175 +- .../Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn | 158 + .../Common/IP_PTC/IP_PTC_IMS_Handler.ttcn | 922 +- .../Common/IP_PTC/IP_PTC_IMS_Templates.ttcn | 4 +- .../Common/IP_PTC/IP_PTC_Main.ttcn | 283 +- .../Common/IP_PTC/IP_PTC_Routing.ttcn | 156 +- .../Common/IP_PTC/IP_PTC_Templates.ttcn | 18 +- .../Common/IP_PTC/TCP_Functions.ttcn | 52 +- .../Common/IP_PTC/UDP_Functions.ttcn | 4 +- .../IRAT/EUTRA_CapabilityFunctions.ttcn | 379 +- .../IRAT/GERAN_CapabilityFunctions_IRAT.ttcn | 10 +- .../Common/IRAT/GERAN_SRVCC.ttcn | 14 +- .../IRAT/NAS_24008Templates_AccessCap.ttcn | 109 +- .../Common/IRAT/NAS_24008Templates_IRAT.ttcn | 701 +- .../Common/IRAT/NAS_24008TypeDefs.ttcn | 118 +- .../IRAT/UTRANGERAN_CommonFunctions.ttcn | 48 +- .../IRAT/UTRAN_CapabilityFunctions.ttcn | 4 +- .../IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn | 66 +- .../Common/IRAT/UTRAN_SRVCC.ttcn | 4 +- .../Common/MTC/MTC_Base.ttcn | 32 +- .../Common/MTC/MTC_Component_LTE_IRAT.ttcn | 4 +- .../Common/MTC/MTC_Main_LTE_IRAT.ttcn | 23 +- .../Common/MTC/MTC_UpperTester.ttcn | 70 +- .../Common/NAS/NAS_34109TypeDefs.ttcn | 4 +- .../Common/NAS/NAS_AuthenticationCommon.ttcn | 33 +- .../NAS/NAS_AuxiliaryDefsAndFunctions.ttcn | 428 + .../Common/NAS/NAS_CommonTemplates.ttcn | 1041 + .../Common/NAS/NAS_CommonTypeDefs.ttcn | 897 + .../Common/NasEmulation/NasEmu.ttcn | 4 +- .../Common/NasEmulation/NasEmu_AspTypes.ttcn | 4 +- .../Common/NasEmulation/NasEmu_Component.ttcn | 4 +- .../Common/NasEmulation/NasEmu_Templates.ttcn | 9 +- .../UTRAN/UTRAN_ANR_CommonFunctions.ttcn | 22 +- .../Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn | 95 +- .../UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn | 371 +- .../UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn | 21 +- .../UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn | 22 +- .../UTRAN_ASN1_ASP_RAB_Templates_r12.ttcn | 75 + .../UTRAN/UTRAN_ASN1_ASP_Templates.ttcn | 617 +- .../UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn | 42 +- .../UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn | 47 +- .../UTRAN/UTRAN_ASN1_ASP_Templates_r12.ttcn | 95 + .../Common/UTRAN/UTRAN_ASP_Definitions.asn | 466 +- .../UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn | 4 +- .../Common/UTRAN/UTRAN_CellInfo.ttcn | 280 +- .../Common/UTRAN/UTRAN_CommonAspDefs.ttcn | 34 + .../Common/UTRAN/UTRAN_CommonDefs.ttcn | 29 +- .../Common/UTRAN/UTRAN_CommonFunctions.ttcn | 1069 + .../Common/UTRAN/UTRAN_Component.ttcn | 69 +- .../UTRAN/UTRAN_ConfigurationSteps.ttcn | 259 +- .../UTRAN/UTRAN_IRAT_CommonFunctions.ttcn | 961 +- .../UTRAN/UTRAN_IRAT_CommonProcedures.ttcn | 384 +- .../Common/UTRAN/UTRAN_MDT_Templates.ttcn | 57 +- .../Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn | 213 +- .../Common/UTRAN/UTRAN_RAB_Functions.ttcn | 2706 ++ .../Common/UTRAN/UTRAN_RLC_Types.ttcn | 342 + .../UTRAN/UTRAN_RRC_ASN1_Definitions.asn | 3591 +- .../UTRAN/UTRAN_RRC_CommonTemplates.ttcn | 152 +- .../UTRAN/UTRAN_RRC_Handover_Templates.ttcn | 81 + .../Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn | 229 +- .../UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn | 66 +- .../UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn | 217 +- .../UTRAN/UTRAN_RRC_RAB_Templates_r12.ttcn | 1133 + .../UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn | 95 +- .../UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn | 349 +- .../Common/UTRAN/UTRAN_RRC_Templates.ttcn | 336 +- .../Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn | 34 +- .../Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn | 85 +- .../Common/UTRAN/UTRAN_RRC_Templates_r12.ttcn | 405 + .../Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn | 30 +- .../Common/UTRAN/UTRAN_RSRQ_Functions.ttcn | 76 + .../UTRAN/UTRAN_TTCN_ASP_Templates.ttcn | 34 +- .../Common/UTRAN/UTRAN_TypeDefs.ttcn | 69 +- .../LTE_A/10/ESM_A_Testcases.ttcn | 285 +- .../LTE_A/13/ASRVCC_EUTRA.ttcn | 255 +- .../LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn | 24 +- .../LTE_A/13/ASRVCC_EUTRA_IMS.ttcn | 96 +- .../LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn | 20 +- .../LTE_A/13/BSRVCC_EUTRA.ttcn | 175 +- .../LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn | 13 +- .../LTE_A/13/BSRVCC_EUTRA_IMS.ttcn | 25 +- .../LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn | 16 +- LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA.ttcn | 552 + .../LTE_A/13/RSRVCC_EUTRA_GERAN.ttcn | 263 + .../LTE_A/13/RSRVCC_EUTRA_IMS.ttcn | 1058 + .../LTE_A/13/RSRVCC_EUTRA_UTRAN.ttcn | 539 + .../LTE_A/17/EUTRA_CellInfo_MBMS.ttcn | 218 +- .../LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn | 13 +- .../LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn | 63 +- .../LTE_A/17/MBMS_Counting_TestCases.ttcn | 28 +- .../LTE_A/17/MBMS_MCCH_TestCases.ttcn | 27 +- .../LTE_A/17/MBMS_MTCH_TestCases.ttcn | 17 +- .../LTE_A/17/MBMS_SC_CA.ttcn | 508 +- .../LTE_A/17/MBMS_SC_TestCases.ttcn | 741 +- .../LTE_A/6_1/Idle_PLMNSelection_A.ttcn | 51 +- .../LTE_A/6_2/FeFACH_EU.ttcn | 178 +- .../LTE_A/6_2/FeFACH_EU_UTRAN.ttcn | 271 +- .../6_2/InterRat_CellReSelection_A_UtoE.ttcn | 86 + ...InterRat_CellReSelection_A_UtoE_UTRAN.ttcn | 90 + .../LTE_A/7_1/MAC_CA.ttcn | 661 +- LTE_A_IWD_15wk38/LTE_A/7_1/MAC_Rel11.ttcn | 1412 + .../LTE_A/7_1/MAC_SSC.ttcn | 395 +- .../LTE_A/7_3/PDCP_A_Security.ttcn | 4 +- .../LTE_A/8_1/RRC_Paging_A.ttcn | 133 +- .../LTE_A/8_2/RRC_ConnReconfig_A.ttcn | 276 +- .../LTE_A/8_2/RRC_ConnReconfig_CA.ttcn | 405 +- .../LTE_A/8_2/RRC_Handover_CA.ttcn | 531 +- .../LTE_A/8_3/EUTRA_Measurements_CA.ttcn | 54 +- .../LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn | 541 +- .../LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn | 87 +- .../8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn | 14 +- LTE_A_IWD_15wk38/LTE_A/8_5/RRC_Others_CA.ttcn | 502 + .../LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn | 17 +- .../8_6/EUTRA_MDT_Specific_Templates.ttcn | 305 +- .../LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn | 279 +- .../8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn | 33 +- .../RRC_Connection_Establishment_Failure.ttcn | 784 +- ...onnection_Establishment_Failure_GERAN.ttcn | 33 +- ...onnection_Establishment_Failure_UTRAN.ttcn | 216 +- .../LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn | 36 +- .../LTE_A/8_6/RRC_Immediate_MDT.ttcn | 145 +- .../LTE_A/8_6/RRC_LoggedHOFailure.ttcn | 574 +- .../LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn | 4 +- .../LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn | 18 +- .../LTE_A/8_6/RRC_LoggedRLF.ttcn | 702 +- .../LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn | 12 +- .../LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn | 176 +- .../LTE_A/8_6/RRC_MDT_Logged.ttcn | 929 +- .../LTE_A/8_6/RRC_MDT_Logged_GERAN.ttcn | 12 +- .../LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn | 148 +- .../LTE_A/8_6/RRC_RACH_Optimisation.ttcn | 142 + .../LTE_A/8_7/RRC_ANR.ttcn | 64 +- .../LTE_A/8_7/RRC_ANR_UTRAN.ttcn | 55 +- .../LTE_A/9_2/NAS_Attach_EOnly_A.ttcn | 161 +- .../LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn | 341 +- .../LTE_A/9_4/NAS_A_Security.ttcn | 4 +- .../Common/EUTRA_CapabilityFunctions_CA.ttcn | 77 +- .../EUTRA_Measurement_Templates_CA.ttcn | 44 +- .../LTE_A/Common/TestcaseProperties.ttcn | 158 +- .../LTE_A_Testsuite.ttcn | 952 +- .../PicsPixit/CDMA2000_Parameters.ttcn | 14 +- .../PicsPixit/EUTRA_Parameters.ttcn | 71 +- .../PicsPixit/GERAN_Parameters.ttcn | 20 +- .../PicsPixit/IMS_CommonParameters.ttcn | 50 +- .../PicsPixit/Parameters.ttcn | 387 +- .../PicsPixit/UTRAN_Parameters.ttcn | 79 +- 417 files changed, 62766 insertions(+), 79028 deletions(-) delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/XSD.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn delete mode 100644 IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/13/IMS_CC_SigCompTestcases.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSConferencingTestcases.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/17/IMS_CC_MediaTestcases.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/18/IMS_CC_SMSTestcases.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_PCO_Handling.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_TemplatesAndFunctions.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_ietf_params_xml_ns_common_policy.ttcn delete mode 100644 IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_oma_xml_xdm_common_policy.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/Common/CommonDefs.ttcn (96%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/Common/UpperTesterCommon.ttcn (93%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/Common/UpperTesterFunctions.ttcn (84%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/Common/UpperTesterPtcToMtcDefs.ttcn (93%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/CommonIP/CommonIP.ttcn (83%) create mode 100644 IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn (95%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_34229_SelectionExpressions.ttcn (77%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_ASP_Templates.ttcn (77%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_ASP_TypeDefs.ttcn (89%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_CommonDefs.ttcn (73%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_CommonFunctions.ttcn (86%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_CommonTemplates.ttcn (63%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_Component.ttcn (74%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_EmgFunctions.ttcn (90%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_IP_Config.ttcn (75%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_MessageBody_Templates.ttcn (84%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_PTC_CoordMsg.ttcn (85%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_Procedures_CallControl.ttcn (76%) create mode 100644 IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_Procedures_Common.ttcn (60%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_Procedures_Registration.ttcn (70%) create mode 100644 IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Video.ttcn create mode 100644 IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn create mode 100644 IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_SDP_Templates.ttcn (63%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_SIP_Templates.ttcn (82%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_SMS_Messages.ttcn (56%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_XML_PIDF_Templates.ttcn (73%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS/IMS_XML_Templates.ttcn (54%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_LibSip/LibSip_Common.ttcn (68%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn (90%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_LibSip/LibSip_SDPTypes.ttcn (92%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn (93%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn (94%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/AlternativeService.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/RFC3680_reginfo.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/RFC3863_pdif.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/RFC4575_conference_info.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/RFC5628_gruuinfo.xsd (100%) create mode 100644 IMS_PART4_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IMS_XSD/xml.xsd (95%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn (63%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IP_PTC/IP_ASP_Common.ttcn (94%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IP_PTC/IP_ASP_TypeDefs.ttcn (93%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn (59%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/IP_PTC/IP_PTC_Templates.ttcn (96%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/NAS/NAS_AuthenticationCommon.ttcn (78%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn (63%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/NAS/NAS_CommonTemplates.ttcn (90%) create mode 100644 IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/NAS/SMS_Templates.ttcn (95%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/Common/NAS/SMS_TypeDefs.ttcn (99%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/10/IMS_CC_SubscriptionTestcases.ttcn (83%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/11/IMS_CC_NotificationTestcases.ttcn (78%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/12/IMS_CC_CallControlTestcases.ttcn (56%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSConferencingTestcases.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/15/IMS_CC_SSTestcases.ttcn (69%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/15/IMS_CC_SSXcapTestcases.ttcn (70%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/15/IMS_ConferenceEventPackage.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/16/IMS_CC_CodecSelecting.ttcn (83%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/17/IMS_CC_MediaTestcases.ttcn create mode 100644 IMS_PART4_IWD_15wk38/IMS/18/IMS_CC_SMSTestcases.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn (82%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/20/IMS_CustomizedAlertingTonesTestcases.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn (74%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn (72%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/8/IMS_CC_RegistrationTestcases.ttcn (75%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/9/IMS_CC_AuthenticationTestcases.ttcn (92%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/Common/IMS_CC_CommonFunctions.ttcn (78%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/Common/IMS_CC_Component.ttcn (86%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn (81%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_PCO_Handling.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/Common/TestcaseProperties.ttcn (85%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn (89%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn (97%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/PART4_Stubs/PART4_Adaptor.ttcn (92%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_HTTP/HTTP_Component.ttcn (92%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Functions.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn (71%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Templates.ttcn rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn (78%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn (93%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn (97%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/RFC4745-common-policy.xsd (100%) create mode 100644 IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24109.xsd rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/TS24604.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/TS24607-OIP-OIR.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/TS24608-TIP-TIR R2.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/TS24611.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/XCAP.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS/XCAP_XSD/xdm_commonPolicy-V1_0.xsd (100%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/IMS_Testsuite_PART4.ttcn (88%) rename {IMS_PART4_IWD_14wk37 => IMS_PART4_IWD_15wk38}/PicsPixit/IMS_CC_Parameters.ttcn (77%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/PicsPixit/IMS_CommonParameters.ttcn (74%) rename {LTE_A_IWD_14wk37 => IMS_PART4_IWD_15wk38}/PicsPixit/Parameters.ttcn (82%) delete mode 100644 LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS/IMS_DefaultHandler.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/XSD.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonAspDefs.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RAB_Functions.ttcn delete mode 100644 LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn delete mode 100644 LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn delete mode 100644 LTE_A_IWD_14wk37/LTE_A/8_6/RRC_RACH_Optimisation.ttcn delete mode 100644 LTE_A_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn delete mode 100644 LTE_A_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn delete mode 100644 LTE_A_IWD_14wk37/UTRAN/Common/UTRAN34_ASN1_ASP_Templates_r10.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_CellInfo.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_CommonDefs.ttcn (98%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_CommonFunctions.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_Component.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_Constants.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/C2K/CDMA2000_Templates.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/Common/CommonDefs.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/Common/CommonIratDefs.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/Common/UpperTesterCommon.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/Common/UpperTesterFunctions.ttcn (84%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/Common/UpperTesterPtcToMtcDefs.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/Common/UpperTesterSystemCmds.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/CommonIP/CommonIP.ttcn (83%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/CommonIP/LoopbackIP.ttcn (97%) create mode 100644 LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_BandDependentParam.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn (88%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_CellInfo.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_CellInfoFrequency.ttcn (96%) create mode 100644 LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfoInit_MFBI.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn (58%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_CommonSRVCC.ttcn (55%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_Component.ttcn (81%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn (84%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_IRATFunctions.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_IdleMode.ttcn (95%) create mode 100644 LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_InitialRegistration.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_LoopBack.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_Measurement_Functions.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_NASSteps.ttcn (62%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_Paging.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_PdcchConfig.ttcn (89%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_RRCSteps.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_SecurityFunctions.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_SecuritySteps.ttcn (82%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_Timing.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/EUTRA_UE_Location.ttcn (98%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn (63%) rename {LTE_A_IWD_14wk37/LTE_A/Common => LTE_A_IWD_15wk38/Common/EUTRA_CA}/EUTRA_AspSystem_Templates_CA.ttcn (80%) rename {LTE_A_IWD_14wk37/LTE_A/Common => LTE_A_IWD_15wk38/Common/EUTRA_CA}/EUTRA_CommonFunctions_CA.ttcn (52%) rename {LTE_A_IWD_14wk37/LTE_A/Common => LTE_A_IWD_15wk38/Common/EUTRA_CA}/EUTRA_RRC_Templates_CA.ttcn (78%) create mode 100644 LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn (98%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn (98%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn (74%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn (81%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_L2/L2_CommonFunctions.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_L2/L2_CommonTemplates.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_L2/MAC_Common.ttcn (50%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_NAS/EUTRA_NASCommonFunctions.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_NAS/EUTRA_NASCommonTemplates.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EPS_NAS_Templates.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_AspCommon_Templates.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_CellCfg_Templates.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/GERAN/GERAN_CellInfo.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/GERAN/GERAN_CommonFunctions.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/GERAN/GERAN_Component.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/GERAN/GERAN_Templates.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/GERAN/GERAN_TypeDefs.ttcn (93%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_ASP_Templates.ttcn (77%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_ASP_TypeDefs.ttcn (89%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_CommonDefs.ttcn (73%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_CommonFunctions.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_CommonSRVCC.ttcn (55%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_CommonTemplates.ttcn (63%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_Component.ttcn (74%) create mode 100644 LTE_A_IWD_15wk38/Common/IMS/IMS_DefaultHandler.ttcn rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_IP_Config.ttcn (75%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_MessageBody_Templates.ttcn (84%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_PTC_CoordMsg.ttcn (85%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_Procedures_CallControl.ttcn (76%) create mode 100644 LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_Procedures_Common.ttcn (60%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_Procedures_Registration.ttcn (70%) create mode 100644 LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_SDP_Templates.ttcn (63%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_SIP_Templates.ttcn (82%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_XML_PIDF_Templates.ttcn (73%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS/IMS_XML_Templates.ttcn (54%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_LibSip/LibSip_Common.ttcn (68%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_LibSip/LibSip_SDPTypes.ttcn (92%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn (93%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/AlternativeService.xsd (100%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/RFC3680_reginfo.xsd (100%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/RFC3863_pdif.xsd (100%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd (100%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd (100%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/RFC5628_gruuinfo.xsd (100%) create mode 100644 LTE_A_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IMS_XSD/xml.xsd (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/DHCPv4_Common.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/DHCPv4_TypeDefs.ttcn (99%) create mode 100644 LTE_A_IWD_15wk38/Common/IP_PTC/DNS_Functions.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/IP_PTC/DNS_TypeDefs.ttcn rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn (63%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/ICMPv6_Functions.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/ICMPv6_TypeDefs.ttcn (98%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_ASP_Common.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_ASP_TypeDefs.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_Component.ttcn (52%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn (59%) create mode 100644 LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn (50%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn (98%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_Main.ttcn (73%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_Routing.ttcn (65%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/IP_PTC_Templates.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/TCP_Functions.ttcn (82%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IP_PTC/UDP_Functions.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/EUTRA_CapabilityFunctions.ttcn (61%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/GERAN_SRVCC.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/NAS_24008Templates_AccessCap.ttcn (50%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/NAS_24008Templates_IRAT.ttcn (84%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/NAS_24008TypeDefs.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn (79%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/UTRAN_CapabilityFunctions.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/IRAT/UTRAN_SRVCC.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/MTC/MTC_Base.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/MTC/MTC_Component_LTE_IRAT.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/MTC/MTC_Main_LTE_IRAT.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/MTC/MTC_UpperTester.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/NAS/NAS_34109TypeDefs.ttcn (98%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/NAS/NAS_AuthenticationCommon.ttcn (78%) create mode 100644 LTE_A_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/NasEmulation/NasEmu.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/NasEmulation/NasEmu_AspTypes.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/NasEmulation/NasEmu_Component.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/NasEmulation/NasEmu_Templates.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn (89%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn (65%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn (77%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn (90%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r12.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn (76%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn (86%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r12.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASP_Definitions.asn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_CellInfo.ttcn (91%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonAspDefs.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_CommonDefs.ttcn (95%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonFunctions.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_Component.ttcn (89%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn (94%) rename LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonFunctions.ttcn => LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonFunctions.ttcn (57%) rename LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonProcedures.ttcn => LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonProcedures.ttcn (84%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_MDT_Templates.ttcn (89%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn (77%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RAB_Functions.ttcn create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RLC_Types.ttcn rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn (85%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn (88%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r12.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_Templates.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn (86%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r12.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn (93%) create mode 100644 LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RSRQ_Functions.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/Common/UTRAN/UTRAN_TypeDefs.ttcn (81%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/10/ESM_A_Testcases.ttcn (82%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/ASRVCC_EUTRA.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/BSRVCC_EUTRA.ttcn (79%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn (94%) create mode 100644 LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA.ttcn create mode 100644 LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_GERAN.ttcn create mode 100644 LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_IMS.ttcn create mode 100644 LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_UTRAN.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn (78%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn (99%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/MBMS_Counting_TestCases.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/MBMS_MCCH_TestCases.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/MBMS_MTCH_TestCases.ttcn (97%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/MBMS_SC_CA.ttcn (71%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/17/MBMS_SC_TestCases.ttcn (68%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/6_1/Idle_PLMNSelection_A.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/6_2/FeFACH_EU.ttcn (68%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn (70%) create mode 100644 LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE.ttcn create mode 100644 LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE_UTRAN.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/7_1/MAC_CA.ttcn (79%) create mode 100644 LTE_A_IWD_15wk38/LTE_A/7_1/MAC_Rel11.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/7_1/MAC_SSC.ttcn (76%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/7_3/PDCP_A_Security.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_1/RRC_Paging_A.ttcn (50%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_2/RRC_ConnReconfig_A.ttcn (79%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn (64%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_2/RRC_Handover_CA.ttcn (84%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_3/EUTRA_Measurements_CA.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn (63%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn (83%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn (96%) create mode 100644 LTE_A_IWD_15wk38/LTE_A/8_5/RRC_Others_CA.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn (92%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn (87%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn (91%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn (81%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn (74%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn (70%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_Immediate_MDT.ttcn (69%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_LoggedHOFailure.ttcn (88%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_LoggedRLF.ttcn (88%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn (93%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn (84%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_MDT_Logged.ttcn (86%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_MDT_Logged_GERAN.ttcn (94%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn (86%) create mode 100644 LTE_A_IWD_15wk38/LTE_A/8_6/RRC_RACH_Optimisation.ttcn rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_7/RRC_ANR.ttcn (58%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/8_7/RRC_ANR_UTRAN.ttcn (79%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn (90%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn (77%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/9_4/NAS_A_Security.ttcn (96%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn (84%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn (89%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A/Common/TestcaseProperties.ttcn (76%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/LTE_A_Testsuite.ttcn (82%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/PicsPixit/CDMA2000_Parameters.ttcn (95%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/PicsPixit/EUTRA_Parameters.ttcn (77%) rename {LTE_A_IWD_14wk37 => LTE_A_IWD_15wk38}/PicsPixit/GERAN_Parameters.ttcn (90%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/PicsPixit/IMS_CommonParameters.ttcn (74%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/PicsPixit/Parameters.ttcn (82%) rename {IMS_PART4_IWD_14wk37 => LTE_A_IWD_15wk38}/PicsPixit/UTRAN_Parameters.ttcn (85%) diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn deleted file mode 100644 index ff83031..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn +++ /dev/null @@ -1,723 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ -/******************************************************************************/ - -module IMS_SDP_Messages { - import from LibSip_SDPTypes all; - import from IMS_CommonDefs all; - import from IMS_Component all; - import from CommonDefs all; - import from IMS_SDP_Templates all; - import from IMS_CommonParameters all; - import from LibSip_MessageBodyTypes all; - - /* - * @desc Wrapper function to encode SDP message - * @param p_SDP_Message - * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_SDP_Message_Encode(template (value) SDP_Message p_SDP_Message) return charstring - { - var bitstring v_BitStr := encvalue(p_SDP_Message); - return oct2char(bit2oct(v_BitStr)); - } - - /* - * @desc Wrapper function to decode SDP message and to assign fail verdict in case of syntactically wrong SDP message - * @param p_SdpBody - * @return SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function fl_IMS_SDP_Message_Decode(SdpBody p_SdpBody) runs on IMS_PTC return SDP_Message - { - var SDP_Message v_SDP_Message; - var bitstring v_BitStr := oct2bit(char2oct(p_SdpBody)); - var integer v_Result := decvalue(v_BitStr, v_SDP_Message); - - if (v_Result != 0) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SDP message"); - } - return v_SDP_Message; - } - - /* - * @desc check that 'Connections' is included either at the top level or in the media description(s) or in both - * @param p_SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_SDP_CheckConnections(SDP_Message p_SDP_Message) runs on IMS_PTC - { - var boolean v_ConnectionFound := false; - var integer i; - - if (ispresent(p_SDP_Message.connection)) { - v_ConnectionFound := true; - } - - if (not v_ConnectionFound) { - // no connection specified in session description => there shall be at least one connection per media description - v_ConnectionFound := true; - for (i := 0; i < lengthof(p_SDP_Message.media_list); i := i + 1) { - if (not ispresent(p_SDP_Message.media_list[i].connections)) { // @sic R5s130586 change 12 sic@ - v_ConnectionFound := false; - break; - } - } - } - - if (not v_ConnectionFound) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "'Connections found neither in session description nor in media description"); - } - } - - /* - * @desc Wrapper function to decode and match SDP message - * @param p_SdpBody - * @param p_SDP_Message_Template - * @param p_CheckConnections (default value: true) - * @return SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_SIP_DecodeMatchAndCheckSDP(template (omit) SdpBody p_SdpBody, - template SDP_Message p_SDP_Message_Template, - boolean p_CheckConnections := true) runs on IMS_PTC return SDP_Message - { - var SDP_Message v_SDP_Message; - - if (not ispresent(p_SdpBody)) { /* there is no SDP message */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sdpMessageBody"); - } - else { /* => MessageBody is present and contains an SDP message */ - v_SDP_Message := fl_IMS_SDP_Message_Decode(valueof(p_SdpBody)); - if (not match(v_SDP_Message, p_SDP_Message_Template)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "received sdpMessageBody does not match"); - } - if (p_CheckConnections) { // check at least one connections field is sent - f_IMS_SDP_CheckConnections(v_SDP_Message); - } - } - return v_SDP_Message; - } - - /* - * @desc wrapper function to decode and match optional SDP message - * @param p_MessageBody - * @param p_SDP_Message_Template - * @param p_CheckConnections (default value: true) - * @return template (omit) SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(template (omit) MessageBody p_MessageBody, - template SDP_Message p_SDP_Message_Template, - boolean p_CheckConnections := true) runs on IMS_PTC return template (omit) SDP_Message - { - var template (omit) SdpBody v_SdpBody := omit; - var SDP_Message v_SDP_Message; - - if (ischosen(p_MessageBody.sdpMessageBody)) { /* there is an SDP message */ - v_SdpBody := p_MessageBody.sdpMessageBody; - } - if (not ispresent(v_SdpBody) and not ispresent(p_SDP_Message_Template)) { /* NOTE: - not ispresent(p_SDP_Message_Template) does not mean that p_SDP_Message_Template is omit - but p_SDP_Message_Template can be e.g. "cr_SomeSDP ifpresent" - nevertheless when we have "not ispresent(p_SDP_Message_Template)" the SDP message may be omitted */ - return omit; - } else { - v_SDP_Message := f_IMS_SIP_DecodeMatchAndCheckSDP(v_SdpBody, p_SDP_Message_Template, p_CheckConnections); - return v_SDP_Message; - } - } - - /* - * @desc wrapper function to decode and match SDP message - * @param p_MessageBody - * @param p_SDP_Message_Template - * @param p_CheckConnections (default value: true) - * @return SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(template (omit) MessageBody p_MessageBody, - template (present) SDP_Message p_SDP_Message_Template, - boolean p_CheckConnections := true) runs on IMS_PTC return SDP_Message - { - var template (omit) SDP_Message v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(p_MessageBody, p_SDP_Message_Template, p_CheckConnections); - return valueof(v_SDP_Message); - } - - //============================================================================ - // Common functions - //---------------------------------------------------------------------------- - /* - * @desc build SDP message to be sent as response to an offer e.g. at the end of C.21 or C.8 - * the function does - * "IP address on "o=" and "c=" lines and transport port on "m=" lines changed to indicate to which IP address and port the UE should send the media" - * but does not change any media attributes - * @param p_SDP_Message_PrevOffer - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_CommonResponseToOfferTX(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message - { - var integer i; - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var IntegerList_Type v_IMS_MediaPortList := {tsc_IMS_MediaPort_M1, tsc_IMS_MediaPort_M2, tsc_IMS_MediaPort_M3}; - var template (value) SDP_Message v_SDP_Message := p_SDP_Message_PrevOffer; - var template (value) SDP_media_desc_list v_Media_Desc_List := p_SDP_Message_PrevOffer.media_list; - var template (value) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrOrigin); - var template (value) SDP_media_desc v_SDP_Media_Desc; - - v_SDP_Message.origin.addr_type := v_AddrType; // IP address on "o=" line - v_SDP_Message.origin.addr := v_IPAddrOrigin; // IP address on "o=" line - v_SDP_Message.connection := v_SDP_Connection; // IP address on "c=" line - - for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { - v_SDP_Media_Desc := v_Media_Desc_List[i]; - v_SDP_Media_Desc.media_field.ports.port_number := v_IMS_MediaPortList[i]; - v_SDP_Media_Desc.connections := { v_SDP_Connection }; // IP address on "c=" line - v_Media_Desc_List[i] := v_SDP_Media_Desc; - } - v_SDP_Message.media_list := v_Media_Desc_List; - return v_SDP_Message; - } - - - /* - * @desc exchange attribute in all media streams of the given media list - * @param p_Media_Desc_List - * @param p_AttributeToBeChanged - * @param p_NewAttribute - * @return template (omit) SDP_media_desc_list - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_SDP_MediaList_ExchangeAttribute(template (omit) SDP_media_desc_list p_Media_Desc_List, - template (present) SDP_attribute p_AttributeToBeChanged, - template (value) SDP_attribute p_NewAttribute) return template (omit) SDP_media_desc_list - { - var template (omit) SDP_media_desc_list v_Media_Desc_List := p_Media_Desc_List; - var integer i; - - if (ispresent(p_Media_Desc_List)) { - for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { - v_Media_Desc_List[i].attributes := f_SDP_ExchangeAttribute(v_Media_Desc_List[i].attributes, p_AttributeToBeChanged, p_NewAttribute); - } - } - return v_Media_Desc_List; - } - - //============================================================================ - // Annex C8 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc remove direction attributes from the attribute list - * @param p_AttributeList - * @return template SDP_attribute_list - * @status APPROVED (IMS) - */ - function fl_IMS_BuildSDP_AnnexC8_Step1_Attributes(template (omit) SDP_attribute_list p_AttributeList) return template SDP_attribute_list - { /* remove direction attributes from the attribute list but change template of attribute list to superset - => there can be any direction attribute in the first place => direction attribute to be checked later on */ - var integer i; - var integer k := 0; - var SDP_attribute v_SDP_attribute; - var SDP_attribute_list v_AttributeList; - var template SDP_attribute_list v_NewAttributeList := omit; - - if (isvalue(p_AttributeList)) { - v_AttributeList := valueof(p_AttributeList); - - for (i:=0; i < lengthof(v_AttributeList); i:=i+1) { - v_SDP_attribute := v_AttributeList[i]; - if (not match(v_SDP_attribute, cr_SDP_Attribute_AnySendRecvMode)) { - if (match(v_SDP_attribute, cr_SDP_Attribute_curr_qos(c_remote, ?))) { /* @sic R5-144753: The direction-tag for the current-status remote segment shall be "sendrecv" sic@ */ - v_SDP_attribute := valueof(cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv)); - } - v_NewAttributeList[k] := v_SDP_attribute; - k := k+1; - } - } - } - if (ispresent(v_NewAttributeList)) { - v_NewAttributeList := superset(all from v_NewAttributeList); - } - return v_NewAttributeList; - } - - /* - * @desc build up bandwidth information for C.8 - * @param p_BandwidthList - * @return template SDP_bandwidth_list - * @status APPROVED (IMS) - */ - function fl_IMS_BuildSDP_AnnexC8_Step1_Bandwidth(template (omit) SDP_bandwidth_list p_BandwidthList) return template SDP_bandwidth_list - { /* to allow any value for "RR" and "RS" bandwith */ - var integer i; - var SDP_bandwidth_list v_BandwidthList; - var charstring v_Modifier; - var template (present) integer v_Bandwidth; - var template SDP_bandwidth_list v_NewBandwidthList := omit; - - if (isvalue(p_BandwidthList)) { - v_BandwidthList := valueof(p_BandwidthList); - for (i:=0; i < lengthof(v_BandwidthList); i:=i+1) { - v_Modifier := v_BandwidthList[i].modifier; - v_Bandwidth := v_BandwidthList[i].bandwidth; - if (match(v_Modifier, ("RR", "RS"))) { - v_Bandwidth := ?; - } - v_NewBandwidthList[i] := cr_SDP_Bandwidth(v_Modifier, v_Bandwidth); - } - } - return v_NewBandwidthList; - } - - /* - * @desc Acc. to 34.229-1 C.8 the UE shall include the same lines in the SDP body as in its previous offer except - * SDP version number, "b=" lines for "RS" and "RR" modifiers and the direction attributes - * @param p_SDP_Message_PrevOffer - * @return template (present) SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_BuildSDP_AnnexC8_Step1(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (present) SDP_Message - { - var template (present) SDP_Message v_SDP_Message := p_SDP_Message_PrevOffer; - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var SDP_media_desc v_MediaDesc; - var SDP_media_field v_MediaField; - var integer i; - - v_SDP_Message.origin.session_version := ?; - v_SDP_Message.bandwidth := fl_IMS_BuildSDP_AnnexC8_Step1_Bandwidth(p_SDP_Message_PrevOffer.bandwidth); - v_SDP_Message.attributes := fl_IMS_BuildSDP_AnnexC8_Step1_Attributes(p_SDP_Message_PrevOffer.attributes); - - for (i:=0; i < lengthof(p_SDP_Message_PrevOffer.media_list); i:=i+1) { - v_MediaDesc := p_SDP_Message_PrevOffer.media_list[i]; - v_MediaField := v_MediaDesc.media_field; - v_SDP_Message.media_list[i] := cr_SDP_Media_Desc(cr_SDP_Media(v_MediaField.media, v_MediaField.ports.port_number, v_MediaField.transport, cr_SDP_FmtList_AtLeastOne(cr_SDP_AnyMediaFormatDescr)), - cr_SDP_Connection(v_AddrType, ?), - fl_IMS_BuildSDP_AnnexC8_Step1_Bandwidth(v_MediaDesc.bandwidth), - fl_IMS_BuildSDP_AnnexC8_Step1_Attributes(v_MediaDesc.attributes)); - } - return v_SDP_Message; - } - - /* - * @desc build up SDP message for step 3 of C.8 - * @param p_HoldResume - * @param p_SDP_Message_PrevOffer - * @return template (value) SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_BuildSDP_AnnexC8_Step3(IMS_CallHoldResume_Type p_HoldResume, - SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message - { - var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); - - if (p_HoldResume == HOLD) { - // invert "sendonly" to "recvonly" in the session attributes (if the UE uses session attribute to hold the call) - v_SDP_Message.attributes := f_SDP_ExchangeAttribute(v_SDP_Message.attributes, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change session attributes - v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change media lines - } - return v_SDP_Message; - } - - - //============================================================================ - // Annex C11 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.11 - * @param p_Step - * @param p_SDP_Attribute_curr_qos_remote (default value: cs_SDP_Attribute_curr_qos(c_remote)) - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC11_Step1or7(charstring p_Step, - template (value) SDP_attribute p_SDP_Attribute_curr_qos_remote := cs_SDP_Attribute_curr_qos(c_remote)) - runs on IMS_PTC return template (value) SDP_Message - { - var boolean v_IsStep7 := (p_Step == "step 7"); - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var charstring v_FmtAudio := tsc_SDP_FmtAudio; - var charstring v_SessionVersion := tsc_SDP_SessionVersion1; - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (omit) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime - }; - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_sendrecv, v_IsStep7); - // precondition attributes: - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_curr_qos(c_local), not v_IsStep7); // @sic R5s130510 change 4 sic@ - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), v_IsStep7); // @sic R5s130510 change 4, R5s130685 change 3 sic@ - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, p_SDP_Attribute_curr_qos_remote); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_des_qos(c_mandatory, c_local)); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_des_qos(c_optional, c_remote)); - - if (v_IsStep7) {v_SessionVersion := tsc_SDP_SessionVersion2; } - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - cs_SDP_Bandwidth_List_Media(37, 0, 2500), // @sic R5-130751; R5-134270: RR=2500; R5-144700: AS=37 sic@ - v_SDP_Attribute_List); - return cs_SDP_Message_Def(cs_SDP_Origin(-, v_SessionVersion, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrOrigin), -, -, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 - * @param p_Step - * @return template (present) SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC11_Step4or8(charstring p_Step) runs on IMS_PTC return template (present) SDP_Message - { /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List; - - select (p_Step) { - case ("step 4") { - v_SDP_Attribute_List := { - cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, (c_none, c_sendrecv)), // @sic R5s120530 change 3.15 sic@ - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cr_SDP_Attribute_conf_qos(), // @sic R5s140204 sic@ - * - }; - } - case ("step 8") { - v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr), - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - * - }; - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(cr_SDP_AnyMediaFormatDescr), // @sic R5s130985 change 1 sic@ - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //============================================================================ - // Annex C21 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc return template for SDP message at step 2 according to 34.229-1 Annex C.21 - * @param p_RtcpDuringVoiceSession (default value: pc_IMS_RtcpDuringVoiceSession) - * @return template (present) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step2(boolean p_RtcpDuringVoiceSession := pc_IMS_RtcpDuringVoiceSession) runs on IMS_PTC return template (present) SDP_Message - { /* @sic R5-135020, R5-135021: new PICS pc_IMS_RtcpDuringVoiceSession sic@ */ - /* @sic R5w140113, R5w140009: new SDP type definitions */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) integer v_BandwidthRS := 0; - var template (present) integer v_BandwidthRR := 0; - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), /* @sic R5w140113, R5w140009: cr_AMR_Fmtp_DefaultParameters replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ */ - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), // @sic R5s130333 change 14.2 - pattern needs to include a rate; R5s130798 change 5 - MCC160 Comment: rate is optional sic@ - cr_SDP_Attribute_ptime, - cr_SDP_Attribute_maxptime, - cr_SDP_Attribute_inactive, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - - if (p_RtcpDuringVoiceSession) { /* @sic R5-135020 sic@ */ - v_BandwidthRS := ?; - v_BandwidthRR := (1..infinity); - } - - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, v_BandwidthRS, v_BandwidthRR), - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc return template for SDP message at step 4 according to 34.229-1 Annex C.21 - * @param p_SDP_MessageInvite - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step4(SDP_Message p_SDP_MessageInvite) runs on IMS_PTC return template (value) SDP_Message - { /* @sic R5-135020: parameter p_SDP_MessageInvite to get RR and RS values sic@ */ - /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ - var integer i; - var template (omit) SDP_attribute v_Attribute; - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); /* "connection-address for SS": address of the simulated remote UE */ - var charstring v_IPAddrOrigin := v_IPAddrConnection; /* @sic R5-144402: "unicast-address for SS" sic@ */ - var SDP_media_desc v_SDP_Media_Invite := p_SDP_MessageInvite.media_list[0]; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Invite); - var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RS"); - var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RR"); - var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); // @sic R5-123505, R5-135020; R5-144700: AS=37 sic@ - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (omit) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos(c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_conf_qos // @sic R5s120530 change 3.5 sic@ - }; - // additional attributes to be added (using f_SDP_Attributes_Add_TX): - // a=ecn-capable-rtp: leap; ect=0 [Note 3] - // a=rtcp-fb:* nack ecn [Note 3] - // a=rtcp-xr:ecn-sum [Note 3] - // a=3ge2ae: requested [Note 1] - // a=crypto:1 AES_CM_128_HMAC_SHA1_80inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4 [Note 4] - var template (value) SDP_attribute_list v_AdditionalOptionalAttributes := { /* @sic R5s140359 - Additional Changes sic@ */ - cs_SDP_Attribute_ecn_capable_rtp("leap", "ect=0"), - cs_SDP_Attribute_rtcp_fb("*", "nack ecn"), - cs_SDP_Attribute_rtcp_xr("ecn-sum"), - cs_SDP_Attribute_3ge2ae("requested"), - cs_SDP_Attribute_crypto("1", "AES_CM_128_HMAC_SHA1_80", "inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4") - }; - for (i := 0; i < lengthof(v_AdditionalOptionalAttributes); i := i + 1) { - v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_MessageInvite.attributes, v_AdditionalOptionalAttributes[i]); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, v_Attribute); - } - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - v_Bandwidth_List_Media, - v_SDP_Attribute_List); - return cs_SDP_Message_Def(cs_SDP_Origin(-, -, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, -, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ - } - - //---------------------------------------------------------------------------- - /* - * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 - * @param p_Fmt - * @return template (present) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step5or7(charstring p_Fmt) runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(p_Fmt, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(p_Fmt), /* @sic R5s130497 change 2: format parameters added; R5s130586 change 4: format parameters changed back to any parameters sic@ */ - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos((c_optional, c_mandatory), c_remote), /* @sic R5-142951: (c_optional, c_mandatory) instead of c_optional sic@ */ - * - }; - - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(p_Fmt), // @sic R5-123505 sic@ - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc build SDP message to be sent in step 6 or 8 of 34.229-1 Annex C.21 - * @param p_SDP_Message_PrevOffer - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step6or8(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message - { - var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); - - v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, - cs_SDP_Attribute_curr_qos(c_remote, c_none), // value sent by the UE in step 5/7 - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv)); // ... to be replaced - return v_SDP_Message; - } - - //============================================================================ - // Annex C22 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be received from the UE at step 1 according to 34.229-1 Annex C.22 - * @return template (present) SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC22_Step1() runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template SDP_bandwidth_list v_Bandwidth := *; - var template SDP_attribute_list v_SDP_Attribute_List := *; //acc. to annex C.22 there shall be at least one AMR codec ("AMR/*" of "AMR-WB/*"); - // this will be checked later-on when the fmt value for the AMR codec is extracted (-> f_IMS_EmergencyCallSetup_AnnexC22, f_SDP_MediaDescr_GetAMR_Any) - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrOrigin), - cr_SDP_Bandwidth_List_AS, - v_SDP_Attribute_List); - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, -, v_Bandwidth, cr_SDP_Time_Any, { v_SDP_Media_Desc }); /* @sic R5s130495 change 21 sic@ */ - } - - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.22 - * NOTE: the "payload type" of the rtpmap attribute and the "format" of the fmtp atribute refer to the format in the media description (RFC 4566) - * => as long as there is only one media description, the fmt, payload type and format have the same value - * @param p_Fmt - * @param p_IPAddrOrigin - * @return template (value) SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC22_Step4(charstring p_Fmt, - charstring p_IPAddrOrigin) runs on IMS_PTC return template (value) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (value) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(p_Fmt, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(p_Fmt, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime - }; - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(p_Fmt), - cs_SDP_Bandwidth_List_Media(37, 0, 0), /* @sic R5-144700: AS=37 sic@ */ - v_SDP_Attribute_List); - - return cs_SDP_Message_Def(cs_SDP_Origin( -, -, v_AddrType, p_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, -, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ - } - - - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.24 - * @return template (present) SDP_Message - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC24_Step1() runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template SDP_attribute_list v_SDP_Attribute_List := *; - var template SDP_bandwidth_list v_SDP_Bandwidth_List := *; // @sic R5s140573 change 4, R5-144686 sic@ - var integer v_PortNumber := 0; - - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(-, v_PortNumber), - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - v_SDP_Bandwidth_List, // @sic R5s140573 change 4, R5-144686 sic@ - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.31 - * @return template (present) SDP_Message - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC31_Step1() runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), - cr_SDP_Attribute_fmtp, - cr_SDP_Attribute_sendrecv, - // precondition attributes: none @sic R5s140263 change 4, R5-142995 sic@ - * - }; - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - /* - * @desc Build SDP record to be sent to the UE at step 3 according to 34.229-1 Annex C.31 - * @param p_SDP_Offer - * @return template (value) SDP_Message - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC31_Step3(SDP_Message p_SDP_Offer) runs on IMS_PTC return template (value) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var charstring v_RemoteIPAddr := v_IPAddrConnection; /* @sic R5-144402 sic@ */ - var SDP_media_desc v_SDP_Media_Offer := p_SDP_Offer.media_list[0]; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Offer); - var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RS"); - var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RR"); - var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); /* @sic R5-144700: AS=37 sic@ */ - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (value) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_sendrecv, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_local, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote, c_sendrecv) - }; - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - v_Bandwidth_List_Media, - v_SDP_Attribute_List); - return cs_SDP_Message_Def(cs_SDP_Origin(-, -, v_AddrType, v_RemoteIPAddr), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, -, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ - } -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn deleted file mode 100644 index 0293300..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn +++ /dev/null @@ -1,31 +0,0 @@ -module NoTargetNamespace -{ - import from XSD all; - - type TIMS3GPP Ims_3gpp; - type XSD.String Type; - type XSD.String Action; - type record TIMS3GPP - { - XSD.Decimal version, - record length ( 1 .. infinity ) of XSD.String attr optional, - union - { - TAlternativeService alternative_service, - XSD.String service_info - } choice, - record of XSD.String elem_list - } - type record TAlternativeService - { - record length ( 1 .. infinity ) of XSD.String attr optional, - Type type_, - XSD.String reason, - record of XSD.String elem_list - } -} -with -{ - encode "XML"; - variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'" -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn deleted file mode 100644 index 0bba1ad..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn +++ /dev/null @@ -1,70 +0,0 @@ -module UsefulTtcn3Types { -// @sic R5s120890 sic@ - - type integer byte (-128 .. 127); - - type integer unsignedbyte (0 .. 255); - - type integer short (-32768 .. 32767); - - type integer unsignedshort (0 .. 65535); - - type integer long (-2147483648 .. 2147483647); - - type integer unsignedlong (0 .. 4294967295); - - type integer longlong; - - type integer unsignedlonglong; - - type float IEEE754float; - - type float IEEE754double; - - type float IEEE754extfloat; - - type float IEEE754extdouble; - - type charstring bmpstring; - - type charstring utf16string ; - - type charstring iso8859string; - - type record IDLfixed - { - unsignedshort digits, - short scale, - charstring value_ - }; - - /* - type charstring char length (1); - - NOTE 1: The name of this useful type is the same as the TTCN-3 keyword used to denote - charstring values in the quadraple form. In general it is disallowed to use TTCN-3 keywords as - identifiers. The "char" useful type is a solitary exception and allowed only for backward compatibility - with previous versions of the TTCN-3 standard. (except Titan doesn't) - - NOTE 2: The special string "8 bit" defined in clause 28.2.3 may be used with this type to specify a given encoding - for its values. Also, other properties of the base type can be changed by using attribute mechanisms. - */ - - type charstring uchar length (1); - - /* - NOTE: Special strings defined in clause 28.2.3 except "8 bit" may be used with this type to specify a given - encoding for its values. Also, other properties of the base type can be changed by using attribute - mechanisms. - */ - - type bitstring bit length (1); - - type hexstring hex length (1); - - type octetstring octet length (1); - -} -with { -encode "XML"; -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/XSD.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/XSD.ttcn deleted file mode 100644 index 0143e56..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/XSD.ttcn +++ /dev/null @@ -1,162 +0,0 @@ -// -// -// -module XSD { - -import from UsefulTtcn3Types all; -// @sic R5s120890 sic@ -//These constants are used in the XSD date/time type definitions -const charstring - dash := "-", - cln := ":", - year := "(0(0(0[1-9]|[1-9][0-9])|[1-9][0-9][0-9])|[1-9][0-9][0-9][0-9])", - yearExpansion := "(-([1-9][0-9]#(0,))#(,1))#(,1)", - month := "(0[1-9]|1[0-2])", - dayOfMonth := "(0[1-9]|[12][0-9]|3[01])", - hour := "([01][0-9]|2[0-3])", - minute := "([0-5][0-9])", - second := "([0-5][0-9])", - sFraction := "(.[0-9]#(1,))#(,1)", - endOfDayExt := "24:00:00(.0#(1,))#(,1)", - nums := "[0-9]#(1,)", - ZorTimeZoneExt := "(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))#(,1)", - durTime := "(T[0-9]#(1,)"& - "(H([0-9]#(1,)(M([0-9]#(1,)(S|.[0-9]#(1,)S))#(,1)|.[0-9]#(1,)S|S))#(,1)|"& - "M([0-9]#(1,)(S|.[0-9]#(1,)S)|.[0-9]#(1,)M)#(,1)|"& - "S|"& - ".[0-9]#(1,)S))"; - -//anySimpleType - -type XMLCompatibleString AnySimpleType; - -//anyType; - -type record AnyType -{ - record of String attr, - record of String elem_list -}; -// String types - -type XMLCompatibleString String; - -type XMLStringWithNoCRLFHT NormalizedString; - -type NormalizedString Token; - -type XMLStringWithNoWhitespace Name; - -type XMLStringWithNoWhitespace NMTOKEN; - -type Name NCName; - -type NCName ID; - -type NCName IDREF; - -type NCName ENTITY; - -type octetstring HexBinary; - -type octetstring Base64Binary; - -type XMLStringWithNoCRLFHT AnyURI; - -type charstring Language (pattern "[a-zA-Z]#(1,8)(-\w#(1,8))#(0,)"); -// Integer types - -type integer Integer; - -type integer PositiveInteger (1 .. infinity); - -type integer NonPositiveInteger (-infinity .. 0); - -type integer NegativeInteger (-infinity .. -1); - -type integer NonNegativeInteger (0 .. infinity); - -type longlong Long; - -type unsignedlonglong UnsignedLong; - -type long Int; - -type unsignedlong UnsignedInt; - -type short Short; - -type unsignedshort UnsignedShort; - -type byte Byte; - -type unsignedbyte UnsignedByte; - -// Float types - -type float Decimal; - -type IEEE754float Float; - -type IEEE754double Double; - -// Time types - -type charstring Duration (pattern - "{dash}#(,1)P({nums}(Y({nums}(M({nums}D{durTime}#(,1)|{durTime}#(,1))|D{durTime}#(,1))|" & - "{durTime}#(,1))|M({nums}D{durTime}#(,1)|{durTime}#(,1))|D{durTime}#(,1))|{durTime})"); - -type charstring DateTime (pattern - "{yearExpansion}{year}{dash}{month}{dash}{dayOfMonth}T({hour}{cln}{minute}{cln}{second}" & - "{sFraction}|{endOfDayExt}){ZorTimeZoneExt}" ); - -type charstring Time (pattern - "({hour}{cln}{minute}{cln}{second}{sFraction}|{endOfDayExt}){ZorTimeZoneExt}" ); - -type charstring Date (pattern - "{yearExpansion}{year}{dash}{month}{dash}{dayOfMonth}{ZorTimeZoneExt}" ); - -type charstring GYearMonth (pattern - "{yearExpansion}{year}{dash}{month}{ZorTimeZoneExt}" ); - -type charstring GYear (pattern - "{yearExpansion}{year}{ZorTimeZoneExt}" ); - -type charstring GMonthDay (pattern - "{dash}{dash}{month}{dash}{dayOfMonth}{ZorTimeZoneExt}" ); - -type charstring GDay (pattern - "{dash}{dash}{dash}{dayOfMonth}{ZorTimeZoneExt}" ); - -type charstring GMonth (pattern - "{dash}{dash}{month}{ZorTimeZoneExt}" ); - -// Sequence types - -type record of NMTOKEN NMTOKENS; - -type record of IDREF IDREFS; - -type record of ENTITY ENTITIES; - -type record QName -{ - AnyURI uri optional, - NCName name -}; - -// Boolean type - -type boolean Boolean; - -//TTCN-3 type definitions supporting the mapping of W3C XML Schema built-in datatypes - -type charstring XMLCompatibleString; - -type charstring XMLStringWithNoWhitespace; -type charstring XMLStringWithNoCRLFHT; - -} -with{ -encode "XML" -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn deleted file mode 100644 index 712d81c..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn +++ /dev/null @@ -1,228 +0,0 @@ -module urn_ietf_params_xml_ns_conference_info -{ - import from XSD all; - type Conference_type Conference_info; - - type record Conference_type - { - XSD.AnyURI entity, - State_type state optional, - XSD.UnsignedInt version optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - Conference_description_type conference_description optional, - Host_type host_info optional, - Conference_state_type conference_state optional, - Users_type users optional, - Uris_type sidebars_by_ref optional, - Sidebars_by_val_type sidebars_by_val optional, - record of XSD.String elem_list - } - - type enumerated State_type - { - deleted, - full, - partial - } - - type record Conference_description_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String subject optional, - XSD.String free_text optional, - Keywords_type keywords optional, - Uris_type conf_uris optional, - Uris_type service_uris optional, - XSD.UnsignedInt maximum_user_count optional, - Conference_media_type available_media optional, - record of XSD.String elem_list - } - - type record Host_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.AnyURI web_page optional, - Uris_type uris optional, - record of XSD.String elem_list - } - - type record Conference_state_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.UnsignedInt user_count optional, - XSD.Boolean active optional, - XSD.Boolean locked optional, - record of XSD.String elem_list - } - - type record Conference_media_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - record length (1 .. infinity) of Conference_medium_type entry_list - } - - type record Conference_medium_type - { - XSD.String label_, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String type_, - Media_status_type status optional, - record of XSD.String elem_list - } - - type record Uris_type - { - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - record length (1 .. infinity) of Uri_type entry_list - } - - type record Uri_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.AnyURI uri, - XSD.String display_text optional, - XSD.String purpose optional, - Execution_type modified optional, - record of XSD.String elem_list - } - - type record of XSD.String Keywords_type; - - type record Users_type - { - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - record of User_type user_list, - record of XSD.String elem_list - } - - type record User_type - { - XSD.AnyURI entity optional, - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - Uris_type associated_aors optional, - User_roles_type roles optional, - User_languages_type languages optional, - XSD.AnyURI cascaded_focus optional, - record of Endpoint_type endpoint_list, - record of XSD.String elem_list - } - - type record User_roles_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - record length (1 .. infinity) of XSD.String entry_list - } - - type record of XSD.Language User_languages_type; - - type record Endpoint_type - { - XSD.String entity optional, - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - Execution_type referred optional, - Endpoint_status_type status optional, - Joining_type joining_method optional, - Execution_type joining_info optional, - Disconnection_type disconnection_method optional, - Execution_type disconnection_info optional, - record of Media_type media_list, - Call_type call_info optional, - record of XSD.String elem_list - } - - type enumerated Endpoint_status_type - { - alerting, - connected, - dialing_in, - dialing_out, - disconnected, - disconnecting, - muted_via_focus, - on_hold, - pending - } - - type enumerated Joining_type - { - dialed_in, - dialed_out, - focus_owner - } - - type enumerated Disconnection_type - { - booted, - busy, - departed, - failed - } - - type record Execution_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.DateTime when optional, - XSD.String reason optional, - XSD.AnyURI by optional - } - - type record Call_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - union - { - Sip_dialog_id_type sip, - record of XSD.String elem_list - } choice - } - - type record Sip_dialog_id_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String call_id, - XSD.String from_tag, - XSD.String to_tag, - record of XSD.String elem_list - } - - type record Media_type - { - XSD.String id, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String type_ optional, - XSD.String label_ optional, - XSD.String src_id optional, - Media_status_type status optional, - record of XSD.String elem_list - } - - type enumerated Media_status_type - { - inactive, - recvonly, - sendonly, - sendrecv - } - - type record Sidebars_by_val_type - { - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - record of Conference_type entry_list - } -} -with -{ - encode "XML"; -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn deleted file mode 100644 index 775fa89..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn +++ /dev/null @@ -1,26 +0,0 @@ -module urn_ietf_params_xml_ns_gruuinfo { - - -import from XSD all; - - -type record PubGruu -{ - XSD.AnyURI uri -}; - - -type record TempGruu -{ - XSD.UnsignedLong first_cseq, - XSD.AnyURI uri -}; - - -type PubGruu Pub_gruu; - - -type TempGruu Temp_gruu; - - -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn deleted file mode 100644 index ea015b4..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn +++ /dev/null @@ -1,62 +0,0 @@ -module urn_ietf_params_xml_ns_pidf -{ - import from XSD all; - type Presence_1 Presence; - - type XSD.Boolean MustUnderstand; - - type record Presence_1 - { - XSD.AnyURI entity, - record of Tuple tuple_list, - record of XSD.String note_list, - record of XSD.String elem_list - }; - - type record Tuple - { - XSD.ID id, - Status status, - record of XSD.String elem_list, - Contact contact optional, - record of XSD.String note_list, - XSD.DateTime timestamp optional - }; - - type record Status - { - Basic basic optional, - record of XSD.String elem_list - }; - - type enumerated Basic - { - closed, - open - }; - - type record Contact - { - Qvalue priority optional, - XSD.AnyURI base - }; - - type record Note - { - union - { - XSD.Language language_, - enumerated - { - x - } alt_ - } lang optional, - XSD.String base - }; - - type XSD.Decimal Qvalue; -} -with -{ - encode "XML"; -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn deleted file mode 100644 index 404cbfc..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn +++ /dev/null @@ -1,45 +0,0 @@ -module urn_ietf_params_xml_ns_pidf_geopriv10 -{ - import from XSD all; - import from urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy all; -// import from urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy language "XSD" all; - // import from http_www_w3_org_XML_1998_namespace language "XSD" all; - type Geopriv_1 Geopriv; - - type record Geopriv_1 - { - LocInfoType location_info, - urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.LocPolicyType usage_rules, - XSD.String method optional, - LocProvidedBy provided_by optional, - record of XSD.String elem_list - }; - - type record LocInfoType - { - record of XSD.String elem_list - }; - - type record LocMethod - { - union - { - XSD.Language language_, - enumerated - { - x - } alt_ - } lang optional, - XSD.String base - }; - - type record LocProvidedBy - { - record length (1 .. infinity) of XSD.String elem_list - }; - -} -with -{ - encode "XML"; -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn deleted file mode 100644 index 9d18fa5..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn +++ /dev/null @@ -1,31 +0,0 @@ -module urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy -{ - import from XSD all; - // import from http_www_w3_org_XML_1998_namespace language "XSD" all; - type record LocPolicyType - { - XSD.Boolean retransmission_allowed optional, - XSD.DateTime retention_expiry optional, - XSD.AnyURI external_ruleset optional, - XSD.String note_well optional, - record of XSD.String elem_list - }; - - type record Notewell - { - union - { - XSD.Language language_, - enumerated - { - x - } alt_ - } lang optional, - XSD.String base - }; - -} -with -{ - encode "XML"; -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn deleted file mode 100644 index d7bb8b3..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn +++ /dev/null @@ -1,30 +0,0 @@ -module urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc -{ - import from XSD all; - type record CivicAddress - { - XSD.String country optional, - XSD.String a1 optional, - XSD.String a2 optional, - XSD.String a3 optional, - XSD.String a4 optional, - XSD.String a5 optional, - XSD.String a6 optional, - XSD.String pRD optional, - XSD.String pOD optional, - XSD.String sTS optional, - XSD.String hNO optional, - XSD.String hNS optional, - XSD.String lMK optional, - XSD.String lOC optional, - XSD.String fLR optional, - XSD.String nAM optional, - XSD.String pC optional, - record of XSD.String elem_list - }; - -} -with -{ - encode "XML"; -} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn b/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn deleted file mode 100644 index b562210..0000000 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn +++ /dev/null @@ -1,74 +0,0 @@ -module urn_ietf_params_xml_ns_reginfo -{ - import from XSD all; - type record Reginfo - { - enumerated - { - full, - partial - } state, - XSD.NonNegativeInteger version, - record of Registration registration_list, - record of XSD.String elem_list - }; - - type record Registration - { - XSD.AnyURI aor, - XSD.String id, - enumerated - { - active, - init, - terminated - } state, - record of Contact contact_list, - record of XSD.String elem_list - }; - - type record Contact - { - XSD.String callid optional, - XSD.UnsignedLong cseq optional, - XSD.UnsignedLong duration_registered optional, - enumerated - { - created, - deactivated, - expired, - probation, - refreshed, - registered, - rejected, - shortened, - unregistered - } event, - XSD.UnsignedLong expires optional, - XSD.String id, - XSD.String q optional, - XSD.UnsignedLong retry_after optional, - enumerated - { - active, - terminated - } state, - XSD.AnyURI uri, - record - { - XSD.String base - } display_name optional, - record of record - { - XSD.String name, - XSD.String base - } unknown_param_list, - record of XSD.String elem_list - }; - - } -with -{ - encode "XML"; -} - diff --git a/IMS_PART4_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn b/IMS_PART4_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn deleted file mode 100644 index 3a6a73b..0000000 --- a/IMS_PART4_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn +++ /dev/null @@ -1,870 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-08-27 12:24:14 +0200 (Tue, 27 Aug 2013) $ -// $Rev: 9441 $ -/******************************************************************************/ - -module NAS_CommonTypeDefs { - /* Module containing type definitions for EPS, UTRAN and/or GERAN */ - -import from CommonDefs all; - -//**************************************************************************** -// Common Type definitions: -//---------------------------------------------------------------------------- - -//**************************************************************************** -//**************************************************************************** - -type O1_Type Octet_Type; -type hexstring HalfOctet_Type length(1); - -type HalfOctet_Type IEI4_Type; /* 4 bit info element identifier for type 1 IEs */ -type Octet_Type IEI8_Type; /* 8 bit info element identifier */ - -type O1_Type Type4Length_Type; -type O2_Type Type6Length_Type; - -type HalfOctet_Type SpareHalfOctet; - -type hexstring NAS_Mcc length(3); //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). - -type record of hexstring EmergencyNumList; -//**************************************************************************** -// NAS PROTOCOL DEFINITIONS: IEs -//---------------------------------------------------------------------------- -// General Info Elements (24.301 cl. 9) -//---------------------------------------------------------------------------- - -type B4_Type ProtocolDiscriminator; /* 24.301 cl. 9.2 and 24.007 cl. 11.2.3.1.1 */ -type B4_Type SkipIndicator; /* 24.007 cl. 11.2.3.1.2 */ -type B8_Type MessageType; /* 24.301 cl. 9.8 */ - -type B3_Type NAS_AttDetValue_Type; -type B3_Type KeySeq; /* ciphering key sequence - 3G TS 24008 cl. 10.5.1.2 */ -type O3_Type NAS_PlmnId; - -type O4_Type NAS_Tmsi; -type O4_Type NAS_P_Tmsi; - -type O2_Type NAS_Lac; -type O1_Type NAS_Rac; - -type hexstring BcdDigit_Hex length(1); -type bitstring BcdDigit_Bit length(4); - -type B3_Type NAS_IdType; -type B8_Type NAS_CauseValue_Type; - -type B1_Type TmsiStatusValue; - -type enumerated PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status @sic R5s120274 sic@ */ -type enumerated CS_PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status APPROVED */ -// This is here because it's the best place for it - const NAS_Lac tsc_LAC_Def := '0001'O ; /* Default NAS LAC, the value may need to be updated in CS combined/CS fallback test cases - @status APPROVED - @sic R5s090180 sic@ */ - - -//----------------------------------------------------------------------------- -// Defined in 24.008, but also referenced from 24.301 -//----------------------------------------------------------------------------- - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008, section 10.5.6.1 -// ----------------------------------------------------------------------------- -type record AccessPointName { /* 24.301 cl. 9.9.4.1 -> 24.008 cl. 10.5.6.1 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - octetstring nameValue length(1..100) -}; - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008, section 10.5.3.14 -// ----------------------------------------------------------------------------- -type record AddUpdateParams { - IEI4_Type iei optional, - B2_Type spare, // @sic R5s120178 Baseline Moving sic@ - B1_Type csmo, // @sic R5s120178 Baseline Moving sic@ - B1_Type csmt -}; - -type record AdditionalUpdateType { /* 24.301 cl. 9.9.3.0B @sic R5s100135 sic@ */ - IEI4_Type iei, // currently only used as TV - B3_Type spare3, - B1_Type addUpdateTypeValue -}; - -// ============================================================================= -// Structured Type Definition -// Ciphering Key Sequence Number -// 3G TS 24.008 cl. 10.5.1.2 -// ----------------------------------------------------------------------------- -type record CiphKeySeqNum { - IEI4_Type iei optional, // '1000'B - B1_Type spare1, - KeySeq keySeq -}; - -// ============================================================================= -// Structured Type Definition -// Priority Level -// 3G TS 24.008 cl. 10.5.6.19 / 24.301 9.9.4.2A -// ----------------------------------------------------------------------------- -type record ConnectivityType { - IEI4_Type iei, - B4_Type connectivityValue -}; - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008, section 10.5.5.5/ 24.301 cl. 9.9.3.7 -// ----------------------------------------------------------------------------- -type record DetachType { - // IEI is always skipped - B1_Type switchOff, - NAS_AttDetValue_Type typeOfDetach -}; - -// ============================================================================= -// Structured Type Definition -// Device Properties -// 3G TS 24.008 cl. 10.5.7.8 -// ----------------------------------------------------------------------------- -type record DeviceProperties { - IEI4_Type iei, - B3_Type spare, - B1_Type lowPriority -}; - -// ============================================================================= -// Structured Type Definition -// DRX paramter -// 3GPP 24.008 / 10.5.5.6 -// ----------------------------------------------------------------------------- -type record DRXparameter { - IEI8_Type iei optional, // '00100111'B (hex 27) - B8_Type splitPGcycleCode, // Split PG cycle code - B4_Type cnDRXcoef, // CN specific DRX cycle length coefficient - B1_Type splitOnCCCH, // Split on CCCCH - B3_Type nonDRXtimer // non-DRX timer -}; - -// ============================================================================= -// Structured Type Definition -// Emergency Service Category -// 3GPP 24.008 / 10.5.4.33 -// ----------------------------------------------------------------------------- -type record EmergServCat { - B1_Type spare, - B7_Type emergSCValue // Emergency Service Category value -}; - -type record length (1..10) of charstring EmergencyLocalNumberList; -// ============================================================================= -// Structured Type Definition -// Emergency Number -// 3G TS 24.008 cl. 10.5.3.13 -// ----------------------------------------------------------------------------- -type record EmergNum { - Type4Length_Type len, // length - EmergServCat emergServCat, // Emergency Service Category - octetstring digits length(0..10) // BCD numbers -}; - -// ============================================================================= -// Structured Type Definition -// Emergency Number List -// 3G TS 24.008 cl. 10.5.3.13 -// ----------------------------------------------------------------------------- -type record EmergNumList { - IEI8_Type iei, // '00110100'B (34 hex) @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - record length (1..10) of EmergNum emergNum // Emergency Number -}; - -// ============================================================================= -// Structured Type Definition -// GPRS timer -// 3GPP 24.008 / 10.5.7.3 -// ----------------------------------------------------------------------------- -type record GPRS_Timer { /* 24.301 cl. 9.9.3.14 -> 24.008 cl. 10.5.7.3 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - GprsTimerUnit unit, - B5_Type timerValue -}; - -type B3_Type GprsTimerUnit; - -// ============================================================================= -// Structured Type Definition -// GPRS timer -// 3GPP 24.008 / 10.5.7.4 -// ----------------------------------------------------------------------------- -type record GPRS_Timer2 { - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - GprsTimerUnit unit, // Unit - B5_Type gprsTimerValue // Timer value -}; - -// ============================================================================= -// Structured Type Definition -// GPRS timer -// 3GPP 24.008 / 10.5.7.4a -// ----------------------------------------------------------------------------- -type record GPRS_Timer3 { - IEI8_Type iei, - Type4Length_Type iel, // length - GprsTimerUnit unit, // Unit - B5_Type gprsTimerValue // Timer value -}; - -// ============================================================================= -// Structured Type Definition -// IMEISV Request -// 3GPP 24.008 / 10.5.5.10 -// ----------------------------------------------------------------------------- -type record IMEISV_Request { /* 24.301 cl. 9.9.3.16 -> 24.008 cl. 10.5.5.10 */ - IEI4_Type iei optional, /* present in case of TV; omit in case of V */ - B1_Type spare, - B3_Type requestValue -}; - -// ============================================================================= -// Structured Type Definition -// Location Area Identification Value -// 3G TS 24.008 cl. 10.5.1.3 -// ----------------------------------------------------------------------------- -type record LocAreaId { - IEI8_Type iei optional, - NAS_PlmnId plmn, // MCC + MNC 3 digits each - NAS_Lac lac // LAC -}; - -// ============================================================================= -// Structured Type Definition -// RoutingAreaId -// 3GPP 24.008 / 10.5.5.15 -// ----------------------------------------------------------------------------- -type record RoutingAreaId { /* 24.301 cl. 9.9.3.24 -> 24.008 cl. 10.5.5.15 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - LocAreaId lai, /* MCC + MNC + LAC */ - O1_Type rac /* RAC */ -}; - -// ============================================================================= -// Structured Type Definition -// 24.007, clause 10.5.6.9 -// ----------------------------------------------------------------------------- -type record LLC_SAPI { /* 24.301 cl. 9.9.4.4 -> 24.008 cl. 10.5.6.9 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - B4_Type spare, - B4_Type llcSapiValue -}; - -// ============================================================================= -// Structured Type Definition -// Mobile Identity -// 3G TS 24.008 cl. 10.5.1.4 -// Maximum number of digits is 16 (IMEISV). Filler may be used. -// ----------------------------------------------------------------------------- -type record MobileIdentity { - IEI8_Type iei optional, // '00100011'B - Type4Length_Type iel, - BcdDigit_Bit idDigit1, // 1st identitity digit - B1_Type oddEvenInd, // Odd/even indicator - NAS_IdType typeOfId, // Type of identity - octetstring otherDigits length(0..10) // Other identity digits (10 octets rather than 8 to cover Guti as well) -}; - -// ============================================================================= -// Structured Type Definition -// Mobile Station Classmark 2 -// 3G TS 24.008 cl. 10.5.1.6 -// ----------------------------------------------------------------------------- -type record MS_Clsmk2 { - IEI8_Type iei optional, - Type4Length_Type iel, // @sic R5s110420 sic@ - B1_Type spare1_1, // Spare bit - B2_Type revLvl, // Revision Level - B1_Type eSIND, // Early Sending Indication - B1_Type a5_1, // Algorithm A5/1 Support - B3_Type rFPwrCap, // RF Power Capability - B1_Type spare1_2, // Spare bit - B1_Type pSCap, // Pseudo Synchronisation Capability - B2_Type sSSI, // SS Screen Indicator - B1_Type sMCap, // Short Message Capability - B1_Type vBS, // VBS Capability - B1_Type vGCS, // VGCS Capability - B1_Type fC, // Frequency Capability - B1_Type cM3, // Classmark 3 Indicator - B1_Type spare1_3, // Spare bit - B1_Type lCSVA, // LCS VA Capability - B1_Type uCS2, // UCS2 Encoding Support - B1_Type soLSA, // SoLSA Support - B1_Type cMSP, // CM Service Prompt Support - B1_Type a5_3, // Algorithm A5/3 Support - B1_Type a5_2 // Algorithm A5/2 Support -}; - -// ============================================================================= -// Structured Type Definition -// Mobile station classmark 3 -// 3GPP TS 24.008 clause 10.5.1.7 -// The information element has 34 octets maximum length -// ----------------------------------------------------------------------------- -type record MS_Clsmk3 { - IEI8_Type iei optional, // 0x20 - Type4Length_Type iel optional, // OCTETSTRING [1] - B1_Type spareBit, // spare bit @sic R5s120178 Baseline Moving sic@ - B3_Type multibandSupported, // @sic R5s120178 Baseline Moving sic@ - B1_Type a5_7, // a5/7 algorithm supported @sic R5s120178 Baseline Moving sic@ - B1_Type a5_6, // a5/6 algorithm supported @sic R5s120178 Baseline Moving sic@ - B1_Type a5_5, // a5/5 algorithm supported @sic R5s120178 Baseline Moving sic@ - B1_Type a5_4, // a5/4 algorithm supported @sic R5s120178 Baseline Moving sic@ - B4_Type associatedRadioCapabilty2 optional, // present if multibandSupported = 101 or 110 - B4_Type spareBits1 optional, // present if multibandSupported = 001 or 010 or 100 - B4_Type associatedRadioCapabilty1 optional, // present if multibandSupported = 001 or 010 or 100 or 101 or 110 - B1_Type maskBit1 optional, - B3_Type rGSM_RadioCapability optional, // R-GSM band associated radio capability not present if maskBit1 = 0 - B1_Type maskBit2 optional, - B5_Type multiSlotClass optional, // multi slot class not present if multiSlotClass = 0 - B1_Type uCS2Treatment optional, - B1_Type extMeasurementCapability optional, // extended measurement capability - B1_Type maskBit3 optional, - MS_MeasCapability msMeasurementCapability optional, // MS measurement capability - // not present if maskBit3 = 0 - B1_Type maskBit4 optional, - B5_Type msPositioningMethod optional, // MS positioning method capability - // not present if maskBit4 = 0 - B1_Type maskBit5 optional, - B5_Type eDGE_MultiSlot optional, // EDGE multi slot capability - // not present if maskB5_Type = 0 - B1_Type maskBit6 optional, - EDGE_Struct psk8_Struct optional, // 8PSK struct - // not present if maskB6_Type = 0 - B1_Type maskBit7 optional, - B2_Type gSM400BandsSupported optional, // not present if maskBIt7 = 0 - B4_Type gSM400AssociatedRadioCapability optional, // not present if gSM400BandsSupported = 00 or maskB7_Type = 0 - B1_Type maskBit8 optional, - B4_Type gSM850AssociatedRadiioCapability optional, // not present if maskBIt8 = 0 - B1_Type maskBit9 optional, - B4_Type pCS1900AssociatedRadiioCapability optional, // not present if maskBIt9 = 0 - B1_Type uMTS_FDD_RAT_Capability optional, - B1_Type uMTS384TDD_RAT_Capability optional, - B1_Type cDMA2000_RAT_Capability optional, - B1_Type maskBit10 optional, - B2_Type dTM_GPRS_MultiSlotSubclass optional, // not present if maskBit10 = 0 - B1_Type singleSlotDTM optional, // not present if maskBit10 = 0 - B1_Type maskBit11 optional, // not present if maskBit10 = 0 - B2_Type dTM_EGPRS_MultiSlorSubclass optional, // not present if maskBit10 = 0 or maskBit11 = 0 - B1_Type maskBit12 optional, - B4_Type singleBandSupport optional, // not present if maskBit12 = 0 - B1_Type maskBit13 optional, - B4_Type gSM700AssociatedRadioCapability optional, // not present if maskBit13 = 0 - B1_Type uMTS128TDD_RAT_Capability optional, - B1_Type gERANFeatPack1 optional, - B1_Type mask14 optional, - B2_Type extDTM_GPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 - B2_Type etxDTM_EGPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 - B1_Type mask15 optional, - B2_Type highMultislotCap optional, // not present if mask15 = 0 - B1_Type mask16 optional, - B4_Type gERANIuModeLength optional, // not present if maskBit16 = 0 - B1_Type gERANFLOIuCap optional, - bitstring gERANIuModeSpareBits length(0..14) optional, // not present if maskBit16 = 0 - B1_Type gERANFeatPack2 optional, - B2_Type gMSKMultislotPowerProfile optional, - B2_Type pSKMultislotPowerProfile optional, - B1_Type mask17 optional, // rel 6 features - B2_Type tGSM400BandsSupported optional, // not present if maskBit17 = 0 - B4_Type tGSM400AssocRadioCap optional, // not present if maskBit17 = 0 - B1_Type spare optional, // Set to 0 @sic R5s110176 Baseline Moving sic@ - B2_Type dlAdvancedRxPerf optional, - B1_Type dTMEhancCap optional, - B1_Type mask19 optional, - B3_Type dTMGPRSHighMultislotClass optional, // not present if maskBit19 = 0 - B1_Type offsetReq optional, // not present if maskBit19 = 0 - B1_Type mask20 optional, // not present if maskBit19 = 0 - B3_Type dTMEGPRSHighMultislotClass optional, // not present if maskBit19 and maskBit20 = 0 - B1_Type rptdACCHCap optional, - B1_Type mask21 optional, - B4_Type gsm710AssocRadioCap optional, // not present if maskBit21 = 0 - B1_Type mask22 optional, - B4_Type tgsm810AssocRadioCap optional, // not present if maskBit22 = 0 - B1_Type cipheringModeSettingCap optional, - B1_Type addPositionCap optional, - B1_Type eutraFDDSupport optional, // rel 8 features - B1_Type eutraTDDSupport optional, - B1_Type eutraMeasAndReporting optional, // @sic R5s100135 sic@ - B1_Type priorityBasedReselection optional, // @sic R5s110176 Baseline Moving sic@ - B1_Type utraCSGCellsReporting optional, // @sic R5s110176 Baseline Moving sic@ - B2_Type vamosLevel optional, // @sic R5s110176 Baseline Moving sic@ - B2_Type tighterCap optional, // @sic R5s120178 Baseline Moving sic@ - B1_Type selectCipheringDLSACCH optional, // @sic R5s120178 Baseline Moving sic@ - B2_Type csPS_SRVCC_G2U optional, // @sic R5s130195 Baseline Moving sic@ - B2_Type csPS_SRVCC_G2E optional, // @sic R5s130195 Baseline Moving sic@ - bitstring spareBits2 optional -}; - -// ============================================================================= -// Structured Type Definition -// Reference : 3GPP TS 24.008 clause 10.5.1.7 -// ----------------------------------------------------------------------------- -type record EDGE_Struct { - B1_Type modulationCapability, - B1_Type pwrMask1, - B2_Type eDGE_RF_PowerCapability1 optional, // not present if pwrMask1 = 0 - B1_Type pwrMask2, - B2_Type eDGE_RF_PowerCapability2 optional // not present if pwrMask2 = 0 -}; - -// ============================================================================= -// Structured Type Definition -// Reference : 3GPP TS 24.008 clause 10.5.1.7 -// ----------------------------------------------------------------------------- -type record MS_MeasCapability { - B4_Type sMS_VALUE, - B4_Type sM_VALUE -}; - -// ============================================================================= -// Structured Type Definition -// MS network capability -// 3GPP 24.008 / 10.5.5.12 -// ----------------------------------------------------------------------------- -type record MS_NetworkCap { /* 24.301 cl. 9.9.3.18 -> 24.008 cl. 10.5.5.12 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - Type4Length_Type iel, // @sic R5s110420 sic@ - B1_Type gea1, - B1_Type smCapDedicated, - B1_Type smCapGPRS, - B1_Type ucs2, - B2_Type ssScreeningIndicator, - B1_Type soLSACap, - B1_Type revLevelIndicator, - B1_Type pfcFeatureMode, - B1_Type gea2, - B1_Type gea3, - B1_Type gea4, - B1_Type gea5, - B1_Type gea6, - B1_Type gea7, - B1_Type lcsVACap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type psHOtoUTRAN_IuModeCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type psHOtoEUTRAN_S1ModeCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type emmCombinedCap optional, // @sic R5s110176 Baseline Moving, R5s130477 not present for r99 sic@ - B1_Type isrSupport optional, // @sic R5s130477 not present for r99 sic@ - B1_Type srvccToGERAN_UTRANCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type epcCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type nfCap optional, // @sic R5s110176 Baseline Moving, not present for Rel-8 R5s110242 sic@ - B1_Type gERANNtwkShareCap optional, // @sic R5s130195 Baseline Moving, not present for Rel-8 sic@ - bitstring spareBits length (0..43) optional -}; - -// ============================================================================= -// Structured Type Definition -// Additional Network Feature Support -// 3G TS 24.008 cl. 10.5.5.31 -// ----------------------------------------------------------------------------- -type record NwkResourceId { - IEI8_Type iei, // - Type4Length_Type iel, // - B1_Type nriContainerValue, - B7_Type spareBits -}; - -// ============================================================================= -// Structured Type Definition -// PacketFlowIdentifier -// 24.008, section 10.5.6.11 -// ----------------------------------------------------------------------------- -type record PacketFlowIdentifier { /* 24.301 cl. 9.9.4.5 -> 24.008 cl. 10.5.6.11 */ - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, // @sic R5s110420 sic@ - B1_Type spare, - B7_Type idValue -}; - -// ============================================================================= -// Structured Type Definition -// PLMN list -// 3G TS 24.008 cl. 10.5.1.13 -// ----------------------------------------------------------------------------- -type record PLMN_List { /* 24.301 cl. 9.9.2.4 -> 24.008 cl. 10.5.1.13 */ - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, // @sic R5s110420 sic@ - record length(1..15) of - NAS_PlmnId plmnList /* list of PLMNs */ -}; - -// ============================================================================= -// Structured Type Definition -// MS network feature support -// 3GPP 24.008 / 10.5.5.15 -// ----------------------------------------------------------------------------- -type record MS_NetworkFeatureSupport { /* 24.301 cl. 9.9.2.0A -> 24.008 cl. 10.5.5.15 */ - IEI4_Type iei, - B3_Type spare, - B1_Type extdPeriodicTimers -}; - -type PLMN_List.plmnList NAS_PlmnIdList_Type; - -// ============================================================================= -// Structured Type Definition -// ProtocolConfigOptions -// 3G TS 24.008 cl. 10.5.6.3 -// ----------------------------------------------------------------------------- -type record ProtocolConfigOptions { /* 24.301 cl. 9.9.4.8 -> 24.008 cl. 10.5.6.3 */ - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, - B1_Type ext, - B4_Type spare, - B3_Type configProtocol, - record length (0..83) of - ProtocolContainer pco optional -}; - -type record ProtocolContainer { - O2_Type protocolID, /* id is always 2 octets */ - Type4Length_Type protocolLength, - octetstring content optional -}; - -type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; - -// ============================================================================= -// Structured Type Definition -// P-TMSI signature -// 3GPP 24.008 / 10.5.5.8 -// ----------------------------------------------------------------------------- -type record PTMSI_Signature { /* 24.301 cl. 9.9.3.23 -> 24.008 cl. 10.5.5.8 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - Type4Length_Type iel optional, // only present in 24.008 version of DETACH REQUEST message - O3_Type signatureValue -}; - -// ============================================================================= -// Structured Type Definition -// 24.008, clause 10.5.6.5 -// ----------------------------------------------------------------------------- -type record QualityOfService { /* 24.301 cl. 9.9.4.9 -> 24.008 cl. 10.5.6.5 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - B2_Type spare1, - B3_Type delayClass, - B3_Type relabilityClass, - B4_Type peakThroughput, - B1_Type spare2, - B3_Type precedenceClass, - B3_Type spare3, - B5_Type meanThroughput, - B3_Type trafficClass, - B2_Type deliveryOrder, - B3_Type deliveryErrorSDU, - B8_Type maxSduSize, - B8_Type maxBitRateUL, - B8_Type maxBitRateDL, - B4_Type residualBER, - B4_Type sduErrorRatio, - B6_Type transferDelay, - B2_Type trafficHandlingPrio, - B8_Type guaranteedBitRateUL, - B8_Type guaranteedBitRateDL, - B3_Type spare4, - B1_Type signallingInd, - B4_Type sourceStatisticsDescriptor, - B8_Type maxBitRateDL_Ext optional, - B8_Type guaranteedBitRateDL_Ext optional, - B8_Type maxBitRateUL_Ext optional, - B8_Type guaranteedBitRateUL_Ext optional, - B8_Type maxBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ - B8_Type guaranteedBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ - B8_Type maxBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ - B8_Type guaranteedBitRateUL_Ext2 optional // @sic R5s1300195 Baseline Moving sic@ -}; - -// ============================================================================= -// Structured Type Definition -// Radio priority -// 3GPP 24.008 / 10.5.7.2 -// ----------------------------------------------------------------------------- -type record RadioPriority { /* 24.301 cl. 9.9.4.10 -> 24.008 cl. 10.5.7.2 */ - IEI4_Type iei optional, /* present in case of TV; omit in case of V */ - B1_Type spare, - B3_Type levelValue -}; - -// ============================================================================= -// Structured Type Definition -// Codec -// 3G TS 24.008 cl. 10.5.4.32 -// ----------------------------------------------------------------------------- -type record Codec { - O1_Type sysId, // system identifcation - Type4Length_Type len, // length - B8_Type bitMap1to8, // codec bitmap bits 1-8 - B8_Type bitMap9to16 optional // codec bitmap bits 9-16 -}; - -// ============================================================================= -// Structured Type Definition -// Supported Codec List -// 3G TS 24.008 cl. 10.5.4.32 -// ----------------------------------------------------------------------------- -type record CodecList { - IEI8_Type iei, // '01000000'B (40 hex) @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - record of Codec codec// list of codecs -}; - -// ============================================================================= -// Structured Type Definition -// TMSI status -// 3GPP 24.008 cl. 10.5.6.17 -// ----------------------------------------------------------------------------- -type record Request_Type { /* 24.301 cl. 9.9.4.11 */ - // IEI is always skipped - B1_Type spare, - B3_Type typeValue -}; - -// ============================================================================= -// Structured Type Definition -// TMSI status -// 3GPP 24.008 cl. 10.5.5.4 -// ----------------------------------------------------------------------------- -type record TMSI_Status { - IEI4_Type iei optional, - B3_Type spare3, - TmsiStatusValue flag // Flag -}; - -// ============================================================================= -// Structured Type Definition -// TrafficFlowTemplate -// 3GPP 24.008 / 10.5.6.12 -// ----------------------------------------------------------------------------- -type record TrafficFlowTemplate { /* 24.301 cl. 9.9.4.13 -> 24.008 cl. 10.5.6.12 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - B3_Type tftOperationCode, - B1_Type eBit, - B4_Type noOfPktFilter, - record of PacketFilter packetFilterList optional, - record of TftParameter parameterList optional -}; - -type record TftParameter { - IEI8_Type iei, - Type4Length_Type iel, - octetstring contents -}; - -type record PacketFilter { - B2_Type spare, // @sic R5s130195 Baseline Moving sic@ - B2_Type direction, // @sic R5s130195 Baseline Moving sic@ - IEI4_Type iei, // @sic R5s130195 Baseline Moving sic@ - B8_Type precedence optional, - Type4Length_Type iel optional, - PacketFilterContents contents optional -}; - -type record of PacketFilterComponent PacketFilterContents; - -type record PacketFilterComponent { - O1_Type id, - PacketFilterComponentValue packetFilterComponentValue -}; - -type union PacketFilterComponentValue { - O8_Type ipv4RemoteAddress, - O32_Type ipv6RemoteAddress, - O1_Type protocolIdNextHeader, - O2_Type singleLocalPort, - O4_Type localPortRange, - O2_Type singleRemotePort, - O4_Type remotePortRange, - O4_Type securityParameterIndex, - O2_Type typeOfServiceTrafficClass, - O3_Type flowLabel -}; - -type record UE_NetworkCap { // 24.301 cl. 9.9.3.34 - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ - O1_Type eeaCap, // @sic R5s100135 sic@ - O1_Type eiaCap, // @sic R5s100135 sic@ - O1_Type ueaCap optional, // @sic R5s100135 sic@ - O1_Type uiaCap optional, // @sic R5s100135 sic@ - O1_Type srvccCap optional, // @sic R5s100135 sic@ - octetstring spare optional // @sic R5s100135 sic@ -}; - -// ============================================================================= -// Structured Type Definition -// Authentication Parameter AUTN -// 3G TS 24.008 cl. 10.5.3.1.1 -// ----------------------------------------------------------------------------- -type record AUTN { /* 24.301 cl. 9.9.3.2 -> 24.008 cl. 10.5.3.1.1 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, // @sic R5s110420 sic@ - B128_Type aUTN /* (as for UMTS) */ -}; - -// ============================================================================= -// Structured Type Definition -// Authentication Failure Parameter (TLV) -// 3G TS 24.008 cl. 10.5.3.2.2 -// ----------------------------------------------------------------------------- -type record AuthenticationFailureParameter { - IEI8_Type iei, // '00100010'B for MM (22 hex) - // '00110000'B for GMM (30 hex) - Type4Length_Type iel, // M 1 octet - B112_Type auts // AUTS, 14 octets -}; - -// ============================================================================= -// Structured Type Definition -// Authentication Parameter RAND (TV, 17 octets) -// 3G TS 24.008 cl. 10.5.3.1 -// ----------------------------------------------------------------------------- -type record RAND { - IEI8_Type iei optional, // '00100001'B (21 hex) - B128_Type randValue // Authentication Parameter RAND value -}; - -type record DaylightSavingTime { /* 24.301 cl. 9.9.3.5 -> 24.008 cl. 10.5.3.12 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ - B6_Type spare, - B2_Type val -}; - -type record NetworkName { /* 24.301 cl. 9.9.3.21 -> 24.008 cl. 10.5.3.5a */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - B1_Type ext, - B3_Type codingScheme, - B1_Type addCI, - B3_Type spareBitCnt, - octetstring text /* type is FFS */ -}; - -type record TimeZone { /* 24.301 cl. 9.9.3.26 -> 24.008 cl. 10.5.3.8 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - O1_Type timeZone -}; - -type record TimeZoneAndTime { /* 24.301 cl. 9.9.3.27 -> 24.008 cl. 10.5.3.9 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - O1_Type year, - O1_Type month, - O1_Type day, - O1_Type hour, - O1_Type minute, - O1_Type second, - O1_Type timeZone -}; - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008 cl. 10.5.5.28 -// @sic R5s110176 Baseline Moving sic@ -// ----------------------------------------------------------------------------- -type record VoiceDomainPref { - IEI8_Type iei optional, // 01111110'B - Type4Length_Type iel optional, // length - B5_Type spareBits, - B1_Type ueUsageSetting, - B2_Type voiceDomainPrefEUTRA // @sic R5s110233 sic@ -}; - -type record IdentityType { /* 24.301 cl. 9.9.3.15 -> 24.008 cl. 10.5.3.4 */ - // IEI is always skipped - B1_Type spare, - NAS_IdType typeOfId -}; - - // ============================================================================= - // Structured Type Definition - // REGISTER - // ue->n or n->ue, 3GPPP TS 24.080, 2.4 - // ----------------------------------------------------------------------------- - type record REGISTER { - TI ti, // transaction identifier BITSTRING [4] - ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] - MessageType msgType, // message type BITSTRING [8] - FacilityIE facility_Str, // M, BER enconded ASN.1 object - SS_VersionInd sS_VersionInd optional // O for ue->n, N/A for n->ue - }; - - // ============================================================================= - // Structured Type Definition - // FACILITY - // ue->n or n->ue, 3GPPP TS 24.080, 2.3 and 24.008, 10.4 - // ----------------------------------------------------------------------------- - type record FACILITY { - TI ti, // transaction identifier BITSTRING [4] - ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] - MessageType msgType, // message type BITSTRING [8], for n->ue "00111010", for ue->n "xx111010" (see 24.007) - FacilityIE facility_Str // M, BER enconded ASN.1 object - }; - -// ============================================================================= -// Structured Type Definition -// Facility Information Element -// 3GPPP TS 24.080, 3.6 / 24.008, 10.5.4.15 -// ----------------------------------------------------------------------------- -type record FacilityIE { - IEI8_Type iei optional, // Facility IE identifier - Type4Length_Type iel, // length of Facility contents - octetstring components // ASN.1 definitions BER encoded -}; - -// ============================================================================= -// Structured Type Definition -// Transaction identifier -// 3G TS 24.007 cl. 11.2.3.1.3 -// ----------------------------------------------------------------------------- -type record TI { - B1_Type tiFlag, // Flag - B3_Type tiVal // TIO -}; - -// ============================================================================= -// Structured Type Definition -// SS version indicator -// 3G TS 24.008 cl. 10.5.4.24 -// 1. Usually this IE has only one octet of content. -// Exact definition see TS 24.080 -// ----------------------------------------------------------------------------- -type record SS_VersionInd { - IEI8_Type iei, // '01111111'B @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - O1_Type sS_VersionInfo // ss version information -}; - - // ============================================================================= - // Structured Type Definition - // RESETUEPOSITIONINGSTOREDINFORMATION - // n->ue, 3GPPP TS 34.109, 6.10/36.509 6.9 - // ----------------------------------------------------------------------------- - type record RESETUEPOSITIONINGSTOREDINFORMATION { - SkipIndicator skipIndicator, // "0000" skip indicator BITSTRING [4] - ProtocolDiscriminator protocolDiscriminator, // M, "1111" Protocol discriminator for test procedure messages BITSTRING [4] - MessageType msgType, // M, message type BITSTRING [8] - B8_Type uePositioningTech // M, BITSTRING [8] - }; - -} with { encode "NAS Types" } diff --git a/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn b/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn deleted file mode 100644 index 0d06238..0000000 --- a/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn +++ /dev/null @@ -1,7967 +0,0 @@ -UTRAN-ASP-Definitions DEFINITIONS AUTOMATIC TAGS ::= -BEGIN - --- IMPORTs from RRC Type definitions - -IMPORTS - MCCH-Message, - MSCH-Message, - BCCH-BCH-Message, - BCCH-FACH-Message, - DL-CCCH-Message, - DL-DCCH-Message, - DL-SHCCH-Message, - E-AGCH-DRX-Info-TDD128, - PCCH-Message, - UL-CCCH-Message, - UL-DCCH-Message, - UL-SHCCH-Message, - DL-DCCH-MessageType, - UL-DCCH-MessageType, - DL-CCCH-MessageType, - UL-CCCH-MessageType, - PCCH-MessageType, - DL-SHCCH-MessageType, - UL-SHCCH-MessageType, - BCCH-FACH-MessageType, - MCCH-MessageType, - MSCH-MessageType, - ActiveSetUpdate, - ActiveSetUpdate-r3-IEs, - ActiveSetUpdate-v4b0ext-IEs, - ActiveSetUpdate-v590ext-IEs, - ActiveSetUpdate-v690ext-IEs, - ActiveSetUpdate-r6-IEs, - ActiveSetUpdate-v6b0ext-IEs, - ActiveSetUpdateComplete, - ActiveSetUpdateFailure, - AssistanceDataDelivery, - AssistanceDataDelivery-r3-IEs, - AssistanceDataDelivery-v3a0ext, - AssistanceDataDelivery-v4b0ext-IEs, - CellChangeOrderFromUTRAN, - CellChangeOrderFromUTRAN-r3-IEs, - CellChangeOrderFromUTRAN-v590ext-IEs, - CellChangeOrderFromUTRANFailure, - CellChangeOrderFromUTRANFailure-r3-IEs, - CellUpdate, - CellUpdate-v590ext, - CellUpdate-v690ext-IEs, - CellUpdate-v6b0ext-IEs, - CellUpdateConfirm, - CellUpdateConfirm-r3-IEs, - CellUpdateConfirm-v3a0ext, - CellUpdateConfirm-v4b0ext-IEs, - CellUpdateConfirm-v590ext-IEs, - CellUpdateConfirm-v5d0ext-IEs, - CellUpdateConfirm-r4-IEs, - CellUpdateConfirm-r5-IEs, - CellUpdateConfirm-r6-IEs, - CellUpdateConfirm-v690ext-IEs, - CellUpdateConfirm-v6b0ext-IEs, - CellUpdateConfirm-CCCH, - ControlChannelDRXInfo-TDD128-r8, - CounterCheck, - CounterCheck-r3-IEs, - CounterCheckResponse, - DownlinkDirectTransfer, - DownlinkDirectTransfer-r3-IEs, - HandoverToUTRANCommand, - HandoverToUTRANCommand-r3-IEs, - HandoverToUTRANCommand-r4-IEs, - HandoverToUTRANCommand-r5-IEs, - HandoverToUTRANCommand-r6-IEs, - HandoverToUTRANCommand-v6b0ext-IEs, - HandoverToUTRANComplete, - InitialDirectTransfer, - InitialDirectTransfer-v3a0ext, - InitialDirectTransfer-v590ext, - InitialDirectTransfer-v690ext-IEs, - HandoverFromUTRANCommand-GSM, - HandoverFromUTRANCommand-GSM-r3-IEs, - HandoverFromUTRANCommand-GSM-r6-IEs, - HandoverFromUTRANCommand-GSM-v690ext-IEs, - HandoverFromUTRANCommand-GERANIu, - HandoverFromUTRANCommand-GERANIu-r5-IEs, - HandoverFromUTRANCommand-CDMA2000, - HandoverFromUTRANCommand-CDMA2000-r3-IEs, - HandoverFromUTRANFailure, - HandoverFromUtranFailure-v590ext-IEs, - InterRATHandoverInfo, - InterRATHandoverInfo-v390ext-IEs, - InterRATHandoverInfo-v3a0ext-IEs, - InterRATHandoverInfo-v3d0ext-IEs, - InterRATHandoverInfo-v3g0ext-IEs, - InterRATHandoverInfo-r3-add-ext-IEs, - InterRATHandoverInfo-v4b0ext-IEs, - InterRATHandoverInfo-v4d0ext-IEs, - InterRATHandoverInfo-v590ext-IEs, - InterRATHandoverInfo-v690ext1-IEs, - InterRATHandoverInfo-v690ext-IEs, - InterRATHandoverInfo-v6b0ext-IEs, - MeasurementControl, - MeasurementControl-r3-IEs, - MeasurementControl-v390ext, - MeasurementControl-v3a0ext, - MeasurementControl-r4-IEs, - MeasurementControl-v590ext-IEs, - MeasurementControl-v5b0ext-IEs, - MeasurementControl-r6-IEs, - MeasurementControl-v6a0ext-IEs, - MeasurementControlFailure, - MeasurementControlFailure-v590ext-IEs, - MeasurementReport, - MeasurementReport-v390ext, - MeasurementReport-v4b0ext-IEs, - MeasurementReport-v590ext-IEs, - MeasurementReport-v5b0ext-IEs, - MeasurementReport-v690ext-IEs, - PagingType1, - PagingType1-v590ext-IEs, - PagingType2, - PhysicalChannelReconfiguration, - PhysicalChannelReconfiguration-r3-IEs, - PhysicalChannelReconfiguration-v3a0ext, - PhysicalChannelReconfiguration-v4b0ext-IEs, - PhysicalChannelReconfiguration-v590ext-IEs, - PhysicalChannelReconfiguration-r4-IEs, - PhysicalChannelReconfiguration-r5-IEs, - PhysicalChannelReconfiguration-r6-IEs, - PhysicalChannelReconfiguration-v690ext-IEs, - PhysicalChannelReconfiguration-v6b0ext-IEs, - PhysicalChannelReconfigurationComplete, - PhysicalChannelReconfigurationFailure, - PhysicalSharedChannelAllocation, - PhysicalSharedChannelAllocation-r3-IEs, - PhysicalSharedChannelAllocation-r4-IEs, - PhysicalSharedChannelAllocation-v690ext-IEs, - PUSCHCapacityRequest, - PUSCHCapacityRequest-v590ext, - RadioBearerReconfiguration, - RadioBearerReconfiguration-r3-IEs, - RadioBearerReconfiguration-v3a0ext, - RadioBearerReconfiguration-v4b0ext-IEs, - RadioBearerReconfiguration-v590ext-IEs, - RadioBearerReconfiguration-v5d0ext-IEs, - RadioBearerReconfiguration-r4-IEs, - RadioBearerReconfiguration-r5-IEs, - RadioBearerReconfiguration-r6-IEs, - RadioBearerReconfiguration-v690ext-IEs, - RadioBearerReconfiguration-v6b0ext-IEs, - RadioBearerReconfigurationComplete, - RadioBearerReconfigurationFailure, - RadioBearerRelease, - RadioBearerRelease-r3-IEs, - RadioBearerRelease-v3a0ext, - RadioBearerRelease-v4b0ext-IEs, - RadioBearerRelease-v590ext-IEs, - RadioBearerRelease-r4-IEs, - RadioBearerRelease-r5-IEs, - RadioBearerRelease-v690ext-IEs, - RadioBearerRelease-r6-IEs, - RadioBearerRelease-v6b0ext-IEs, - RadioBearerReleaseComplete, - RadioBearerReleaseFailure, - RadioBearerSetup, - RadioBearerSetup-r3-IEs, - RadioBearerSetup-v3a0ext, - RadioBearerSetup-v4b0ext-IEs, - RadioBearerSetup-v590ext-IEs, - RadioBearerSetup-v5d0ext-IEs, - RadioBearerSetup-r4-IEs, - RadioBearerSetup-r5-IEs, - RadioBearerSetup-v690ext-IEs, - RadioBearerSetup-r6-IEs, - RadioBearerSetup-v6b0ext-IEs, - RadioBearerSetupComplete, - RadioBearerSetupFailure, - RRCConnectionReject, - RRCConnectionReject-r3-IEs, - RRCConnectionReject-v690ext-IEs, - RRCConnectionRelease, - RRCConnectionRelease-r3-IEs, - RRCConnectionRelease-r4-IEs, - RRCConnectionRelease-v690ext-IEs, - RRCConnectionRelease-CCCH, - RRCConnectionRelease-CCCH-r3-IEs, - RRCConnectionRelease-CCCH-r4-IEs, - RRCConnectionRelease-CCCH-r5-IEs, - RRCConnectionRelease-CCCH-v690ext-IEs, - RRCConnectionReleaseComplete, - RRCConnectionRequest, - RRCConnectionRequest-v3d0ext-IEs, - RRCConnectionRequest-v4b0ext-IEs, - RRCConnectionRequest-v590ext-IEs, - RRCConnectionRequest-v690ext-IEs, - RRCConnectionRequest-v6b0ext-IEs, - RRCConnectionSetup, - RRCConnectionSetup-r3-IEs, - RRCConnectionSetup-v4b0ext-IEs, - RRCConnectionSetup-v590ext-IEs, - RRCConnectionSetup-r4-IEs, - RRCConnectionSetup-r5-IEs, - RRCConnectionSetup-v690ext-IEs, - RRCConnectionSetup-r6-IEs, - RRCConnectionSetup-v6b0ext-IEs, - RRCConnectionSetupComplete, - RRCConnectionSetupComplete-v370ext, - RRCConnectionSetupComplete-v380ext-IEs, - RRCConnectionSetupComplete-v3a0ext-IEs, - RRCConnectionSetupComplete-v3g0ext-IEs, - RRCConnectionSetupComplete-r3-add-ext-IEs, - RRCConnectionSetupComplete-v4b0ext-IEs, - RRCConnectionSetupComplete-v590ext-IEs, - RRCConnectionSetupComplete-v5c0ext-IEs, - RRCConnectionSetupComplete-v650ext-IEs, - RRCConnectionSetupComplete-v680ext-IEs, - RRCConnectionSetupComplete-v690ext-IEs, - RRC-FailureInfo, - RRC-FailureInfo-r3-IEs, - RRCStatus, - SecurityModeCommand, - SecurityModeCommand-r3-IEs, - SecurityModeComplete, - SecurityModeFailure, - SignallingConnectionRelease, - SignallingConnectionRelease-r3-IEs, - SignallingConnectionReleaseIndication, - SystemInformation-BCH, - SystemInformation-FACH, - FirstSegment, - FirstSegmentShort, - SubsequentSegment, - LastSegment, - LastSegmentShort, - CompleteSIB-List, - CompleteSIB, - CompleteSIBshort, - SystemInformationChangeIndication, - TransportChannelReconfiguration, - TransportChannelReconfiguration-r3-IEs, - TransportChannelReconfiguration-v3a0ext, - TransportChannelReconfiguration-v4b0ext-IEs, - TransportChannelReconfiguration-v590ext-IEs, - TransportChannelReconfiguration-r4-IEs, - TransportChannelReconfiguration-r5-IEs, - TransportChannelReconfiguration-v690ext-IEs, - TransportChannelReconfiguration-r6-IEs, - TransportChannelReconfiguration-v6b0ext-IEs, - TransportChannelReconfigurationComplete, - TransportChannelReconfigurationFailure, - TransportFormatCombinationControl, - TransportFormatCombinationControlFailure, - UECapabilityEnquiry, - UECapabilityEnquiry-r3-IEs, - UECapabilityEnquiry-v4b0ext-IEs, - UECapabilityEnquiry-v590ext-IEs, - UECapabilityInformation, - UECapabilityInformation-v370ext, - UECapabilityInformation-v380ext-IEs, - UECapabilityInformation-v3a0ext-IEs, - UECapabilityInformation-r3-add-ext-IEs, - UECapabilityInformation-v4b0ext, - UECapabilityInformation-v590ext, - UECapabilityInformation-v5c0ext, - UECapabilityInformation-v650ext-IEs, - UECapabilityInformation-v680ext-IEs, - UECapabilityInformation-v690ext-IEs, - UECapabilityInformationConfirm, - UECapabilityInformationConfirm-r3-IEs, - UplinkDirectTransfer, - UplinkDirectTransfer-v690ext-IEs, - UplinkPhysicalChannelControl, - UplinkPhysicalChannelControl-r3-IEs, - UplinkPhysicalChannelControl-v4b0ext-IEs, - UplinkPhysicalChannelControl-r4-IEs, - UplinkPhysicalChannelControl-r5-IEs, - UplinkPhysicalChannelControl-v690ext-IEs, - UplinkPhysicalChannelControl-v6a0ext-IEs, - URAUpdate, - URAUpdateConfirm, - URAUpdateConfirm-r3-IEs, - URAUpdateConfirm-r5-IEs, - URAUpdateConfirm-v690ext-IEs, - URAUpdateConfirm-CCCH, - URAUpdateConfirm-CCCH-r3-IEs, - UTRANMobilityInformation, - UTRANMobilityInformation-r3-IEs, - UTRANMobilityInformation-v3a0ext-IEs, - UTRANMobilityInformation-r5-IEs, - UtranMobilityInformation-v690ext-IEs, - UTRANMobilityInformationConfirm, - UTRANMobilityInformationFailure, - MBMSAccessInformation, - MBMSCommonPTMRBInformation, - MBMSCurrentCellPTMRBInformation, - MBMSGeneralInformation, - MBMSGeneralInformation-v6b0ext-IEs, - MBMSModificationRequest, - MBMSModificationRequest-v6b0ext-IEs, - MBMSModifiedServicesInformation, - MBMSNeighbouringCellPTMRBInformation, - MBMSSchedulingInformation, - MBMSUnmodifiedServicesInformation, - MultiCarrier-HSDSCH-physical-layer-category, - MultiCarrier-HSDSCH-physical-layer-category-extension, - HS-SCCH-SystemInfo-TDD128, - Ansi-41-IDNNS, - CN-DomainIdentity, - CN-DomainInformation, - CN-DomainInformationFull, - CN-DomainInformationList, - CN-DomainInformationListFull, - CN-DomainSysInfo, - CN-DomainSysInfoList, - CN-InformationInfo, - CN-InformationInfo-r6, - CN-InformationInfoFull, - Digit, - Gsm-map-IDNNS, - IMEI, - IMEI-Digit, - IMSI-GSM-MAP, - IntraDomainNasNodeSelector, - LAI, - MCC, - MNC, - MultiplePLMN-List-r6, - NAS-Message, - NAS-Synchronisation-Indicator, - NAS-SystemInformationGSM-MAP, - P-TMSI-GSM-MAP, - PagingRecordTypeID, - PLMN-Identity, - PLMN-IdentityWithOptionalMCC-r6, - PLMN-Type, - RAB-Identity, - RAI, - RoutingAreaCode, - RoutingParameter, - TMSI-GSM-MAP, - AccessClassBarred, - AccessClassBarredList, - AllowedIndicator, - CellAccessRestriction, - CellBarred, - CellIdentity, - CellIdentity-PerRL-List, - CellSelectReselectInfoSIB-3-4, - DomainSpecificAccessRestrictionForSharedNetwork-v670ext, - DomainSpecificAccessRestrictionList-v670ext, - DomainSpecificAccessRestrictionParam-v670ext, - DomainSpecificAccessRestriction-v670ext, - MapParameter, - Mapping, - Mapping-LCR-r4, - MappingFunctionParameter, - MappingFunctionParameterList, - MappingFunctionType, - MappingInfo, - Q-Hyst-S, - Q-Hyst-S-Fine, - RAT, - RAT-FDD-Info, - RAT-FDD-InfoList, - RAT-Identifier, - RAT-TDD-Info, - RAT-TDD-InfoList, - ReservedIndicator, - S-SearchQual, - S-SearchRXLEV, - SpeedDependentScalingFactor, - T-Barred, - T-Reselection-S, - T-Reselection-S-Fine, - TreselectionScalingFactor, - UpperLimit, - URA-Identity, - URA-IdentityList, - AccessStratumReleaseIndicator, - ActivationTime, - BackoffControlParams, - C-RNTI, - CapabilityUpdateRequirement, - CapabilityUpdateRequirement-r4-ext, - CapabilityUpdateRequirement-r4, - CellUpdateCause, - CellUpdateCause-ext, - ChipRateCapability, - CipheringAlgorithm, - CipheringModeCommand, - CipheringModeInfo, - CipheringModeInfo-r7, - CN-DRX-CycleLengthCoefficient, - CN-PagedUE-Identity, - CompressedModeMeasCapability, - CompressedModeMeasCapability-LCR-r4, - CompressedModeMeasCapabFDDList, - CompressedModeMeasCapabFDDList2, - CompressedModeMeasCapabFDDList-ext, - CompressedModeMeasCapabFDD, - CompressedModeMeasCapabFDD2, - CompressedModeMeasCapabFDD-ext, - CompressedModeMeasCapabTDDList, - CompressedModeMeasCapabTDD, - CompressedModeMeasCapabGSMList, - CompressedModeMeasCapabGSM, - CompressedModeMeasCapabMC, - HS-DSCH-TBSizeTable, - CPCH-Parameters, - DL-CapabilityWithSimultaneousHS-DSCHConfig, - DL-DPCCH-BER, - DL-PhysChCapabilityFDD, - DL-PhysChCapabilityFDD-v380ext, - SupportOfDedicatedPilotsForChEstimation, - DL-PhysChCapabilityTDD, - DL-PhysChCapabilityTDD-LCR-r4, - DL-TransChCapability, - DRAC-SysInfo, - DRAC-SysInfoList, - DSCH-RNTI, - DTX-Info, - DelayRestrictionFlag, - E-AGCH-Information-r8, - E-DPDCH-Info-r7, - E-DPDCH-Info-r8, - E-RNTI, - ESN-DS-41, - EstablishmentCause, - FailureCauseWithProtErr, - FailureCauseWithProtErrTrId, - GroupIdentityWithReleaseInformation, - GroupReleaseInformation, - GSM-Measurements, - H-RNTI, - HS-DSCH-PagingSystemInformation, - HSDSCH-physical-layer-category, - HSDSCH-physical-layer-category-ext, - HSDSCH-physical-layer-category-ext2, - HSDSCH-physical-layer-category-ext3, - HSDSCH-physical-layer-category-ext4, - HSDSCH-physical-layer-category-ext5, - HSDSCH-physical-layer-category-ext6, - HSDSCH-physical-layer-category-ext7, - HSDSCH-physical-layer-category-ext8, - UESpecificBehaviourInformation1idle, - UESpecificBehaviourInformation1interRAT, - IMSI-and-ESN-DS-41, - IMSI-DS-41, - InitialPriorityDelayList, - InitialUE-Identity, - IntegrityCheckInfo, - IntegrityProtActivationInfo, - IntegrityProtectionAlgorithm, - IntegrityProtectionModeCommand, - IntegrityProtectionModeInfo, - IntegrityProtectionModeInfo-r7, - IntegrityProtInitNumber, - MaxHcContextSpace, - MaxHcContextSpace-r5-ext, - MaxROHC-ContextSessions-r4, - MaximumAM-EntityNumberRLC-Cap, - MaximumBitRate, - MaximumRLC-WindowSize, - MaxNoDPDCH-BitsTransmitted, - MaxNoBits, - MaxNoPhysChBitsReceived, - MaxNoSCCPCH-RL, - MaxNumberOfTF, - MaxNumberOfTFC-DL, - MaxNumberOfTFC-UL, - MaxPhysChPerFrame, - MaxPhysChPerSubFrame-r4, - MaxPhysChPerTimeslot, - MaxPhysChPerTS, - MaxSimultaneousCCTrCH-Count, - MaxSimultaneousTransChsDL, - MaxSimultaneousTransChsUL, - MaxTransportBlocksDL, - MaxTransportBlocksUL, - MaxTS-PerFrame, - MaxTS-PerSubFrame-r4, - MeasurementCapability, - MeasurementCapabilityExt, - MeasurementCapabilityExt2, - MeasurementCapability-r4-ext, - MessageAuthenticationCode, - MinimumSF-DL, - MinimumSF-UL, - MultiModeCapability, - MultiRAT-Capability, - MultiModeRAT-Capability-v590ext, - MultiModeRAT-Capability-v680ext, - N-300, - N-301, - N-302, - N-304, - N-308, - N-310, - N-312, - N-312ext, - N-312-r5, - N-313, - N-315, - N-315ext, - N-315-r5, - N-AccessFails, - N-AP-RetransMax, - NetworkAssistedGPS-Supported, - NF-BO-AllBusy, - NF-BO-NoAICH, - NF-BO-Mismatch, - NS-BO-Busy, - NS-IP, - P-TMSI-and-RAI-GSM-MAP, - PagingCause, - PagingRecord, - PagingRecord2-r5, - PagingRecordList, - PagingRecord2List-r5, - PDCP-Capability, - PDCP-Capability-r4-ext, - PDCP-Capability-r5-ext, - PDCP-Capability-r5-ext2, - PhysicalChannelCapability, - PhysicalChannelCapability-LCR-r4, - PhysicalChannelCapability-hspdsch-r5, - PNBSCH-Allocation-r4, - ProtocolErrorCause, - ProtocolErrorIndicator, - ProtocolErrorIndicatorWithMoreInfo, - ProtocolErrorMoreInformation, - RadioFrequencyBandFDD, - RadioFrequencyBandFDD2, - RadioFrequencyBandFDD3, - RadioFrequencyBandTDDList, - RadioFrequencyBandTDD, - RadioFrequencyBandGSM, - Rb-timer-indicator, - Re-EstablishmentTimer, - RedirectionInfo, - RedirectionInfo-r6, - RejectionCause, - ReleaseCause, - RF-Capability, - RF-Capability-r4-ext, - RLC-Capability, - RLC-Capability-r5-ext, - RRC-ConnectionReleaseInformation, - RRC-MessageSequenceNumber, - RRC-MessageSequenceNumberList, - RRC-StateIndicator, - RRC-TransactionIdentifier, - S-RNTI, - S-RNTI-2, - SecurityCapability, - Serving-HSDSCH-CellInformation, - SimultaneousSCCPCH-DPCH-Reception, - SRNC-Identity, - START-Value, - STARTList, - STARTSingle, - CapabilityUpdateRequirement-r5, - SystemSpecificCapUpdateReq, - SystemSpecificCapUpdateReq-v590ext, - SystemSpecificCapUpdateReq-r5, - SystemSpecificCapUpdateReqList, - SystemSpecificCapUpdateReqList-r5, - T-300, - T-301, - T-302, - T-304, - T-305, - T-307, - T-308, - T-309, - T-310, - T-311, - T-312, - T-313, - T-314, - T-315, - T-316, - T-317, - T-318, - T-CPCH, - TMSI-and-LAI-GSM-MAP, - TMSI-DS-41, - TotalRLC-AM-BufferSize, - TotalRLC-AM-BufferSize-r5-ext, - TransmissionProbability, - TransportChannelCapability, - TurboSupport, - TxRxFrequencySeparation, - U-RNTI, - U-RNTI-Group, - U-RNTI-Short, - UE-CapabilityContainer-IEs, - UE-RadioAccessCapability-v6b0ext-IEs, - UE-ConnTimersAndConstants, - UE-ConnTimersAndConstants-v3a0ext, - UE-ConnTimersAndConstants-r5, - UE-HSPA-Identities-r6, - UE-IdleTimersAndConstants, - UE-IdleTimersAndConstants-v3a0ext, - UE-MultiModeRAT-Capability, - UE-PowerClass, - UE-PowerClassExt, - UE-RadioAccessCapability, - UE-RadioAccessCapabilityInfo, - UE-RadioAccessCapability-v370ext, - UE-RadioAccessCapability-v380ext, - UE-RadioAccessCapability-v3a0ext, - UE-RadioAccessCapability-v3g0ext, - UE-RadioAccessCapability-v650ext, - UE-RadioAccessCapability-v690ext, - UE-RadioAccessCapabBandFDDList2, - UE-RadioAccessCapabBandFDD2, - UE-PositioningCapabilityExt-v380, - UE-PositioningCapabilityExt-v3a0, - UE-PositioningCapabilityExt-v3g0, - UE-RadioAccessCapabBandFDDList, - UE-RadioAccessCapabBandFDDList-ext, - UE-RadioAccessCapabBandFDD, - UE-RadioAccessCapabBandFDD-ext, - UE-RadioAccessCapability-v4b0ext, - UE-RadioAccessCapabilityComp, - UE-RadioAccessCapabilityComp-ext, - UE-RadioAccessCapabilityComp2, - RF-CapabilityComp, - RF-CapabBandFDDComp, - RF-CapabBandListFDDComp, - RF-CapabBandListFDDComp-ext, - UE-RadioAccessCapability-v590ext, - UE-RadioAccessCapability-v5c0ext, - UE-RadioAccessCapability-v680ext, - UL-PhysChCapabilityFDD, - UL-PhysChCapabilityFDD-r6, - UL-PhysChCapabilityTDD, - UL-PhysChCapabilityTDD-LCR-r4, - PhysicalChannelCapability-edch-r6, - UL-TransChCapability, - UE-Positioning-Capability, - UE-SecurityInformation, - UE-SecurityInformation2, - URA-UpdateCause, - UTRAN-DRX-CycleLengthCoefficient, - UpPCHposition-LCR, - WaitTime, - AlgorithmSpecificInfo, - AlgorithmSpecificInfo-r4, - CID-InclusionInfo-r4, - COUNT-C, - COUNT-C-MSB, - DefaultConfigIdentity, - DefaultConfigIdentity-r4, - DefaultConfigIdentity-r5, - DefaultConfigIdentity-r6, - DefaultConfigMode, - DDI, - DL-AM-RLC-Mode, - DL-AM-RLC-Mode-r5, - DL-CounterSynchronisationInfo, - DL-CounterSynchronisationInfo-r5, - DL-LogicalChannelMapping, - DL-LogicalChannelMapping-r5, - DL-LogicalChannelMappingList, - DL-LogicalChannelMappingList-r5, - DL-Reception-Window-Size-r6, - DL-RFC3095-r4, - DL-RLC-Mode, - DL-RLC-Mode-r5, - DL-RLC-Mode-r6, - DL-RLC-Mode-r7, - DL-RLC-Mode-r11, - DL-RLC-StatusInfo, - DL-TM-RLC-Mode, - DL-TransportChannelType, - DL-TransportChannelType-r5, - DL-UM-RLC-LI-size, - DL-UM-RLC-Mode-r5, - DL-UM-RLC-Mode-r6, - E-TFCS-Info, - ExpectReordering, - ExplicitDiscard, - HeaderCompressionInfo, - HeaderCompressionInfoList, - HeaderCompressionInfo-r4, - HeaderCompressionInfoList-r4, - LogicalChannelIdentity, - LosslessSRNS-RelocSupport, - MAC-d-HFN-initial-value, - MAC-DTX-Cycle-2ms, - MAC-DTX-Cycle-10ms, - MAC-ehs-AddReconfReordQ, - MAC-ehs-AddReconfReordQ-r9, - MAC-ehs-AddReconfReordQ-r11, - MAC-ehs-QueueId, - MAC-InactivityThreshold, - MAC-LogicalChannelPriority, - MaxDAT, - MaxDAT-Retransmissions, - MaxMRW, - MaxPDCP-SN-WindowSize, - MaxRST, - NewTiming, - NoExplicitDiscard, - PDCP-Info, - PDCP-Info-r4, - PDCP-InfoReconfig, - PDCP-InfoReconfig-r4, - PDCP-PDU-Header, - PDCP-ROHC-TargetMode, - PDCP-SN-Info, - Poll-PDU, - Poll-SDU, - PollingInfo, - PollWindow, - PowerControlGAP, - PredefinedConfigIdentity, - PredefinedConfigValueTag, - PredefinedRB-Configuration, - PreDefRadioConfiguration, - PredefinedConfigStatusList, - PredefinedConfigStatusInfo, - PredefinedConfigStatusListComp, - PredefinedConfigSetsWithDifferentValueTag, - PredefinedConfigSetWithDifferentValueTag, - PredefinedConfigValueTagList, - PredefinedConfigStatusListVarSz, - RAB-Info, - RAB-Info-r6-ext, - RAB-Info-v6b0ext, - RAB-Info-r6, - RAB-InformationList, - RAB-InformationList-r6, - RAB-InformationReconfigList, - RAB-InformationReconfig, - RAB-Info-Post, - RAB-InformationSetup, - RAB-InformationSetup-r4, - RAB-InformationSetup-r5, - RAB-InformationSetup-r6-ext, - RAB-InformationSetup-r6, - RAB-InformationSetup-v6b0ext, - RAB-InformationSetupList, - RAB-InformationSetupList-r4, - RAB-InformationSetupList-r5, - RAB-InformationSetupList-r6, - RAB-InformationSetupList-r6-ext, - RAB-InformationSetupList-v6b0ext, - RB-ActivationTimeInfo, - RB-ActivationTimeInfoList, - RB-COUNT-C-Information, - RB-COUNT-C-InformationList, - RB-COUNT-C-MSB-Information, - RB-COUNT-C-MSB-InformationList, - RB-Identity, - RB-IdentityList, - RB-InformationAffected, - RB-InformationAffected-r5, - RB-InformationAffected-r6, - RB-InformationAffectedList, - RB-InformationAffectedList-r5, - RB-InformationAffectedList-r6, - RB-InformationChanged-r6, - RB-InformationChangedList-r6, - RB-InformationReconfig, - RB-InformationReconfig-r4, - RB-InformationReconfig-r5, - RB-InformationReconfig-r6, - RB-InformationReconfigList, - RB-InformationReconfigList-r4, - RB-InformationReconfigList-r5, - RB-InformationReconfigList-r6, - RB-InformationReleaseList, - RB-InformationSetup, - RB-InformationSetup-r4, - RB-InformationSetup-r5, - RB-InformationSetup-r6, - RB-InformationSetupList, - RB-InformationSetupList-r4, - RB-InformationSetupList-r5, - RB-InformationSetupList-r6, - RB-MappingInfo, - RB-MappingInfo-r5, - RB-MappingInfo-r6, - RB-MappingOption, - RB-MappingOption-r5, - RB-MappingOption-r6, - RB-PDCPContextRelocation, - RB-PDCPContextRelocationList, - RB-StopContinue, - RB-WithPDCP-Info, - RB-WithPDCP-InfoList, - ReceivingWindowSize, - RFC2507-Info, - RFC3095-Info-r4, - RLC-Info, - RLC-Info-r5, - RLC-Info-r6, - RLC-Info-MCCH-r6, - RLC-Info-MSCH-r6, - RLC-Info-MTCH-r6, - RLC-InfoChoice, - RLC-InfoChoice-r5, - RLC-InfoChoice-r6, - RLC-PDU-Size, - RLC-PDU-SizeList, - RLC-SequenceNumber, - RLC-SizeInfo, - RLC-SizeExplicitList, - ROHC-Profile-r4, - ROHC-ProfileList-r4, - ROHC-PacketSize-r4, - ROHC-PacketSizeList-r4, - SRB-InformationSetup, - SRB-InformationSetup-r5, - SRB-InformationSetup-r6, - SRB-InformationSetupList, - SRB-InformationSetupList-r5, - SRB-InformationSetupList-r6, - SRB-InformationSetupList2, - SRB-InformationSetupList2-r6, - TimerDAR-r6, - TimerDiscard, - TimerEPC, - TimerMRW, - TimerOSD-r6, - TimerPoll, - TimerPollPeriodic, - TimerPollProhibit, - TimerRST, - TimerStatusPeriodic, - TimerStatusProhibit, - TransmissionRLC-Discard, - TransmissionWindowSize, - UL-AM-RLC-Mode, - UL-CounterSynchronisationInfo, - UL-LogicalChannelMapping, - UL-LogicalChannelMapping-r6, - UL-LogicalChannelMappingList, - UL-LogicalChannelMappingList-r6, - UL-LogicalChannelMappings, - UL-LogicalChannelMappings-r6, - UL-RFC3095-r4, - UL-RLC-Mode, - UL-TM-RLC-Mode, - UL-UM-RLC-Mode, - UL-TransportChannelType, - UM-RLC-DuplAvoid-Reord-Info-r6, - UM-RLC-OutOSeqDelivery-Info-r6, - WindowSizeDAR-r6, - WindowSizeOSD-r6, - AddOrReconfMAC-dFlow, - AllowedTFC-List, - AllowedTFI-List, - BitModeRLC-SizeInfo, - BLER-QualityValue, - ChannelCodingType, - CodingRate, - CommonDynamicTF-Info, - CommonDynamicTF-Info-DynamicTTI, - CommonDynamicTF-InfoList, - CommonDynamicTF-InfoList-DynamicTTI, - CommonTransChTFS, - CommonTransChTFS-LCR, - CPCH-SetID, - CRC-Size, - DedicatedDynamicTF-Info, - DedicatedDynamicTF-Info-DynamicTTI, - DedicatedDynamicTF-InfoList, - DedicatedDynamicTF-InfoList-DynamicTTI, - DedicatedTransChTFS, - DL-AddReconfTransChInfo2List, - DL-AddReconfTransChInfoList, - DL-AddReconfTransChInfoList-r4, - DL-AddReconfTransChInfoList-r5, - DL-AddReconfTransChInformation, - DL-AddReconfTransChInformation-r4, - DL-AddReconfTransChInformation-r5, - DL-AddReconfTransChInformation2, - DL-CommonTransChInfo, - DL-CommonTransChInfo-r4, - DL-DeletedTransChInfoList, - DL-DeletedTransChInfoList-r5, - DL-TransportChannelIdentity, - DL-TransportChannelIdentity-r5, - DL-TrCH-Type, - DL-TrCH-TypeId1-r5, - DL-TrCH-TypeId2-r5, - DRAC-ClassIdentity, - DRAC-StaticInformation, - DRAC-StaticInformationList, - E-DCH-AddReconf-MAC-d-Flow, - E-DCH-AddReconf-MAC-d-FlowList, - E-DCH-AddReconf-MAC-d-FlowList-r7, - E-DCH-MAC-d-FlowIdentity, - E-DCH-MAC-d-FlowMaxRetrans, - E-DCH-MAC-d-FlowMultiplexingList, - E-DCH-MAC-d-FlowPowerOffset, - Common-E-DCH-MAC-d-FlowList, - E-DCH-TTI, - ExplicitTFCS-Configuration, - GainFactor, - GainFactorInformation, - HSDSCH-Info, - HARQ-Info, - HARQ-Info-r7, - HARQ-Info-r11, - HARQMemorySize, - IndividualDL-CCTrCH-Info, - IndividualDL-CCTrCH-InfoList, - IndividualUL-CCTrCH-Info, - IndividualUL-CCTrCH-InfoList, - LogicalChannelByRB, - LogicalChannelList, - MAC-d-FlowIdentityDCHandHSDSCH, - MAC-d-FlowIdentity, - MAC-d-PDU-SizeInfo-List, - MAC-d-PDUsizeInfo, - MAC-hs-AddReconfQueue-List, - MAC-hs-AddReconfQueue, - MAC-hs-DelQueue-List, - MAC-hs-DelQueue, - MAC-hs-WindowSize, - NumberOfTbSizeAndTTIList, - MessType, - Non-allowedTFC-List, - NumberOfTransportBlocks, - OctetModeRLC-SizeInfoType1, - OctetModeRLC-SizeInfoType2, - PowerOffsetInfoShort, - PowerOffsetInformation, - PowerOffsetPp-m, - PreDefTransChConfiguration, - QualityTarget, - RateMatchingAttribute, - ReferenceTFC-ID, - RestrictedTrChInfo, - RestrictedTrChInfoList, - SemistaticTF-Information, - SignalledGainFactors, - SplitTFCI-Signalling, - SplitType, - T1-ReleaseTimer, - TFC-Subset, - TFC-SubsetList, - TFC-Value, - TFCI-Field2-Information, - TFCI-Range, - TFCI-RangeList, - TFCS, - TFCS-Identity, - TFCS-IdentityPlain, - TFCS-InfoForDSCH, - TFCS-ReconfAdd, - TFCS-Removal, - TFCS-RemovalList, - TimeDurationBeforeRetry, - TM-SignallingInfo, - TransmissionTimeInterval, - TransmissionTimeValidity, - TransportChannelIdentity, - TransportChannelIdentityDCHandDSCH, - TransportFormatSet, - TransportFormatSet-LCR, - UL-AddReconfTransChInfoList, - UL-AddReconfTransChInfoList-r6, - UL-AddReconfTransChInformation, - UL-AddReconfTransChInformation-r6, - UL-CommonTransChInfo, - UL-CommonTransChInfo-r4, - UL-ControlledTrChList, - UL-DeletedTransChInfoList, - UL-DeletedTransChInfoList-r6, - UL-TransportChannelIdentity, - UL-TransportChannelIdentity-r6, - UL-TrCH-Type, - USCH-TransportChannelsInfo, - ACK-NACK-repetitionFactor, - AC-To-ASC-Mapping, - AC-To-ASC-MappingTable, - AccessServiceClass-FDD, - AccessServiceClass-TDD, - AccessServiceClass-TDD-LCR-r4, - AdditionalPRACH-TF-and-TFCS-CCCH-IEs, - AdditionalPRACH-TF-and-TFCS-CCCH, - AdditionalPRACH-TF-and-TFCS-CCCH-List, - AICH-Info, - AICH-PowerOffset, - AICH-TransmissionTiming, - AllocationPeriodInfo, - Alpha, - AP-AICH-ChannelisationCode, - AP-PreambleScramblingCode, - AP-Signature, - AP-Signature-VCAM, - AP-Subchannel, - ASCSetting-FDD, - ASCSetting-TDD, - ASCSetting-TDD-LCR-r4, - AvailableAP-Signature-VCAMList, - AvailableAP-SignatureList, - AvailableAP-SubchannelList, - AvailableMinimumSF-ListVCAM, - AvailableMinimumSF-VCAM, - AvailableSignatures, - AvailableSubChannelNumbers, - BEACON-PL-Est, - BurstType, - Bler-Target, - CCTrCH-PowerControlInfo, - CCTrCH-PowerControlInfo-r4, - CCTrCH-PowerControlInfo-r5, - CD-AccessSlotSubchannel, - CD-AccessSlotSubchannelList, - CD-CA-ICH-ChannelisationCode, - CD-PreambleScramblingCode, - CD-SignatureCode, - CD-SignatureCodeList, - CellAndChannelIdentity, - CellParametersID, - Cfntargetsfnframeoffset, - ChannelAssignmentActive, - ChannelisationCode256, - ChannelReqParamsForUCSM, - ClosedLoopTimingAdjMode, - CodeNumberDSCH, - CodeRange, - CodeWordSet, - CommonTimeslotInfo, - CommonTimeslotInfoMBMS, - CommonTimeslotInfoSCCPCH, - Common-MAC-ehs-ReorderingQueue, - ConstantValue, - ConstantValueTdd, - CPCH-PersistenceLevels, - CPCH-PersistenceLevelsList, - CPCH-SetInfo, - CPCH-SetInfoList, - CPCH-StatusIndicationMode, - CQI-RepetitionFactor, - CSICH-PowerOffset, - DefaultDPCH-OffsetValueFDD, - DefaultDPCH-OffsetValueTDD, - DeltaPp-m, - DeltaCQI, - DeltaNACK, - DeltaACK, - DeltaSIR, - DHS-Sync, - DL-CCTrCh, - DL-CCTrCh-r4, - DL-CCTrChList, - DL-CCTrChList-r4, - DL-CCTrChListToRemove, - DL-ChannelisationCode, - DL-ChannelisationCodeList, - DL-CommonInformation, - DL-CommonInformation-r4, - DL-CommonInformation-r5, - DL-CommonInformation-r6, - DL-CommonInformation-r7, - DL-CommonInformation-r8, - DL-CommonInformation-r10, - DL-CommonInformation-r11, - DL-CommonInformationPost, - DL-CommonInformationPredef, - DL-CompressedModeMethod, - DL-DPCH-InfoCommon, - DL-DPCH-InfoCommon-r4, - DL-DPCH-InfoCommon-r6, - DL-DPCH-InfoCommonPost, - DL-DPCH-InfoCommonPredef, - DL-DPCH-InfoPerRL, - DL-DPCH-InfoPerRL-r4, - DL-DPCH-InfoPerRL-r5, - DL-DPCH-InfoPerRL-r6, - DL-DPCH-InfoPerRL-r7, - DL-FDPCH-InfoPerRL-r6, - DL-FDPCH-InfoPerRL-r7, - DL-DPCH-InfoPerRL-PostFDD, - DL-DPCH-InfoPerRL-PostTDD, - DL-DPCH-InfoPerRL-PostTDD-LCR-r4, - DL-DPCH-PowerControlInfo, - DL-FDPCH-InfoCommon-r6, - DL-FrameType, - DL-HSPDSCH-Information, - DL-HSPDSCH-Information-r6, - DL-HSPDSCH-Information-r7, - DL-HSPDSCH-Information-r8, - DL-HSPDSCH-Information-r9, - DL-HSPDSCH-Information-r11, - DL-HSPDSCH-TS-Configuration, - DL-InformationPerRL, - DL-InformationPerRL-r4, - DL-InformationPerRL-r5, - DL-InformationPerRL-r5bis, - DL-InformationPerRL-r6, - DL-InformationPerRL-v6b0ext, - DL-InformationPerRL-List, - DL-InformationPerRL-List-r4, - DL-InformationPerRL-List-r5, - DL-InformationPerRL-List-r6, - DL-InformationPerRL-List-v6b0ext, - DL-InformationPerRL-List-r5bis, - DL-InformationPerRL-ListPostFDD, - DL-InformationPerRL-PostFDD, - DL-InformationPerRL-PostTDD, - DL-InformationPerRL-PostTDD-LCR-r4, - DL-PDSCH-Information, - Dl-rate-matching-restriction, - DL-TPC-PowerOffsetPerRL, - DL-TPC-PowerOffsetPerRL-List, - DL-TS-ChannelisationCode, - DL-TS-ChannelisationCodesShort, - DownlinkAdditionalTimeslots, - DownlinkAdditionalTimeslots-LCR-r4, - DownlinkTimeslotsCodes, - DownlinkTimeslotsCodes-LCR-r4, - DPC-Mode, - DPCCH-PowerOffset, - DPCCH-PowerOffset2, - DPCH-CompressedModeInfo, - DPCH-CompressedModeStatusInfo, - DPCH-FrameOffset, - DSCH-Mapping, - DSCH-MappingList, - DSCH-RadioLinkIdentifier, - DSCH-TransportChannelsInfo, - DTX-DRX-TimingInfo-r7, - DurationTimeInfo, - DynamicPersistenceLevel, - DynamicPersistenceLevelList, - DynamicPersistenceLevelTF-List, - DynamicTFInformationCCCH, - E-AGCH-ChannelisationCode, - E-AGCH-Information, - E-AGCH-Information-r7, - E-DCH-MinimumSet-E-TFCI, - E-DCH-ReconfigurationInfo, - E-DCH-RL-InfoNewServingCell, - E-DCH-RL-InfoOtherCell, - E-DPCCH-Info, - E-DPCCH-Info-r7, - E-DPCCH-DPCCH-PowerOffset, - E-DPDCH-Info, - E-DPDCH-PeriodicyOfSchedInfo, - E-DPDCH-PL-NonMax, - E-DPDCH-Reference-E-TFCI, - E-DPDCH-Reference-E-TFCIList, - E-DPDCH-SchedulingInfoConfiguration, - E-DPDCH-SchedulingTransmConfiguration, - E-DPDCH-MaxChannelisationCodes, - E-HICH-ChannelisationCode, - E-HICH-Information, - E-HICH-Information-r11, - E-HICH-Information-CommonEdch, - E-HICH-Information-LCR, - E-HICH-RGCH-SignatureSequence, - E-RGCH-CombinationIndex, - E-RGCH-Information, - E-RGCH-Information-CommonEdch, - E-RUCCH-Info, - E-TFCI-TableIndex, - FACH-PCH-Information, - FACH-PCH-InformationList, - Feedback-cycle, - FPACH-Info-r4, - FrequencyInfo, - FrequencyInfoFDD, - FrequencyInfoTDD, - HappyBit-DelayCondition, - HARQ-Preamble-Mode, - HS-ChannelisationCode-LCR, - HS-PDSCH-Midamble-Configuration-TDD128, - HS-DSCH-PagingSystemInformation-TDD128, - HS-DSCH-DrxCellfach-info-TDD128, - HS-SCCH-Info, - HS-SCCH-Info-r6, - HS-SCCH-Codes, - HS-SCCH-LessInfo-r7, - HS-SCCH-TDD128, - HS-SCCH-TDD128-r6, - HS-SICH-Configuration-TDD128, - HS-SICH-Configuration-TDD128-r6, - HS-SCCH-TDD384, - HS-SCCH-TDD384-r6, - HS-SICH-Configuration-TDD384, - HS-SICH-Power-Control-Info-TDD384, - HS-SCCH-SystemInfo, - IndividualTimeslotInfo, - IndividualTimeslotInfo-LCR-r4, - IndividualTimeslotInfo-LCR-r4-ext, - IndividualTS-Interference, - IndividualTS-InterferenceList, - ITP, - NidentifyAbort, - MaxAllowedUL-TX-Power, - MaxAvailablePCPCH-Number, - MaxPowerIncrease-r4, - MaxTFCI-Field2Value, - Measurement-Feedback-Info, - MidambleConfigurationBurstType1and3, - MidambleConfigurationBurstType2, - MidambleShiftAndBurstType, - MidambleShiftAndBurstType-DL, - MidambleShiftAndBurstType-LCR-r4, - MidambleShiftLong, - MidambleShiftShort, - MinimumSpreadingFactor, - MultiCodeInfo, - N-EOT, - N-GAP, - N-PCH, - N-StartMessage, - NB01, - NF-Max, - NumberOfDPDCH, - NumberOfFBI-Bits, - OpenLoopPowerControl-TDD, - OpenLoopPowerControl-IPDL-TDD-r4, - PagingIndicatorLength, - PC-Preamble, - PCP-Length, - PCPCH-ChannelInfo, - PCPCH-ChannelInfoList, - PCPICH-UsageForChannelEst, - PDSCH-CapacityAllocationInfo, - PDSCH-CapacityAllocationInfo-r4, - PDSCH-CodeInfo, - PDSCH-CodeInfoList, - PDSCH-CodeMap, - PDSCH-CodeMapList, - PDSCH-CodeMapping, - PDSCH-Identity, - PDSCH-Info, - PDSCH-Info-r4, - PDSCH-Info-LCR-r4, - PDSCH-PowerControlInfo, - PDSCH-SHO-DCH-Info, - PDSCH-SysInfo, - PDSCH-SysInfo-HCR-r5, - PDSCH-SysInfo-LCR-r4, - PDSCH-SysInfoList, - PDSCH-SysInfoList-HCR-r5, - PDSCH-SysInfoList-LCR-r4, - PDSCH-SysInfoList-SFN, - PDSCH-SysInfoList-SFN-HCR-r5, - PDSCH-SysInfoList-SFN-LCR-r4, - PersistenceScalingFactor, - PersistenceScalingFactorList, - PI-CountPerFrame, - PichChannelisationCodeList-LCR-r4, - PICH-Info, - PICH-Info-LCR-r4, - PICH-PowerOffset, - PilotBits128, - PilotBits256, - MeasurementPowerOffset, - PositionFixedOrFlexible, - PowerControlAlgorithm, - PowerOffsetPilot-pdpdch, - PowerOffsetTPC-pdpdch, - PowerRampStep, - PRACH-ChanCodes-LCR-r4, - PRACH-Definition-LCR-r4, - PRACH-Midamble, - PRACH-Partitioning, - PRACH-Partitioning-LCR-r4, - PRACH-PowerOffset, - PRACH-RACH-Info, - PRACH-RACH-Info-LCR-r4, - PRACH-SystemInformation, - PRACH-SystemInformation-LCR-r4, - PRACH-SystemInformationList, - PRACH-SystemInformationList-LCR-r4, - PreambleRetransMax, - PreambleScramblingCodeWordNumber, - PreDefPhyChConfiguration, - PrimaryCCPCH-Info, - PrimaryCCPCH-Info-r4, - PrimaryCCPCH-Info-LCR-r4, - PrimaryCCPCH-Info-LCR-r4-ext, - PrimaryCCPCH-InfoPost, - PrimaryCCPCH-InfoPostTDD-LCR-r4, - PrimaryCCPCH-TX-Power, - PrimaryCPICH-Info, - PrimaryCPICH-TX-Power, - PrimaryScramblingCode, - PuncturingLimit, - PUSCH-CapacityAllocationInfo, - PUSCH-CapacityAllocationInfo-r4, - PUSCH-Identity, - PUSCH-Info, - PUSCH-Info-r4, - PUSCH-Info-LCR-r4, - PUSCH-PowerControlInfo-r4, - PUSCH-SysInfo, - PUSCH-SysInfo-HCR-r5, - PUSCH-SysInfo-LCR-r4, - PUSCH-SysInfoList, - PUSCH-SysInfoList-HCR-r5, - PUSCH-SysInfoList-LCR-r4, - PUSCH-SysInfoList-SFN, - PUSCH-SysInfoList-SFN-HCR-r5, - PUSCH-SysInfoList-SFN-LCR-r4, - RACH-TransmissionParameters, - ReducedScramblingCodeNumber, - RepetitionPeriodAndLength, - RepetitionPeriodLengthAndOffset, - ReplacedPDSCH-CodeInfo, - ReplacedPDSCH-CodeInfoList, - RepPerLengthOffset-PICH, - RepPerLengthOffset-MICH, - RestrictedTrCH, - RestrictedTrCH-InfoList, - RL-AdditionInformation, - RL-AdditionInformation-r6, - RL-AdditionInformation-v6b0ext, - RL-AdditionInformationList, - RL-AdditionInformationList-r6, - RL-AdditionInformation-list-v6b0ext, - RL-IdentifierList, - RL-RemovalInformationList, - RPP, - S-Field, - SCCPCH-ChannelisationCode, - SCCPCH-ChannelisationCodeList, - SCCPCH-InfoForFACH, - SCCPCH-InfoForFACH-r4, - SCCPCH-SystemInformation, - SCCPCH-SystemInformation-LCR-r4-ext, - SCCPCH-SystemInformationList, - SCCPCH-SystemInformationList-LCR-r4-ext, - SCCPCH-SystemInformation-MBMS-r6, - ScramblingCodeChange, - ScramblingCodeType, - SecondaryCCPCH-Info, - SecondaryCCPCH-Info-r4, - SecondaryCCPCH-Info-LCR-r4-ext, - SecondaryCCPCHInfo-MBMS-r6, - SecondaryCPICH-Info, - SecondaryScramblingCode, - SecondInterleavingMode, - SF256-AndCodeNumber, - SF512-AndCodeNumber, - SF512-AndPilot, - SF-PDSCH, - SF-PRACH, - SFN-TimeInfo, - SpecialBurstScheduling, - SpreadingFactor, - SRB-delay, - SSDT-CellIdentity, - SSDT-Information, - SSDT-Information-r4, - SSDT-UL, - STTDIndication, - SynchronisationParameters-r4, - SYNC-UL-Procedure-r4, - SYNC-UL-Info-r4, - TDD-FPACH-CCode16-r4, - TDD-UL-Interference, - TDD-PICH-CCode, - TDD-PRACH-CCode8, - TDD-PRACH-CCode16, - TDD-PRACH-CCode-LCR-r4, - TDD-PRACH-CCodeList, - TFC-ControlDuration, - TFCI-Coding, - TGCFN, - TGD, - TGL, - TGMP, - TGP-Sequence, - TGPS-Reconfiguration-CFN, - TGP-SequenceList, - TGP-SequenceShort, - TGPL, - TGPRC, - TGPS-ConfigurationParams, - TGPSI, - TGSN, - TimeInfo, - TimeslotList, - TimeslotList-r4, - TimeslotNumber, - TimeslotNumber-LCR-r4, - TimeslotNumber-PRACH-LCR-r4, - TimeslotSync2, - TimingOffset, - TimingMaintainedSynchInd, - TPC-CombinationIndex, - TPC-StepSizeFDD, - TPC-StepSizeTDD, - TreconfirmAbort, - TX-DiversityMode, - UARFCN, - UCSM-Info, - UL-16QAM-Settings, - UL-CCTrCH, - UL-CCTrCH-r4, - UL-CCTrCHList, - UL-CCTrCHList-r4, - UL-CCTrCHListToRemove, - UL-CCTrChTPCList, - UL-ChannelRequirement, - UL-ChannelRequirement-r4, - UL-ChannelRequirement-r5, - UL-ChannelRequirementWithCPCH-SetID, - UL-ChannelRequirementWithCPCH-SetID-r4, - UL-ChannelRequirementWithCPCH-SetID-r5, - UL-CompressedModeMethod, - UL-DL-Mode, - UL-DPCCH-SlotFormat, - UL-DPCH-Info, - UL-DPCH-Info-r4, - UL-DPCH-Info-r5, - UL-DPCH-Info-r6, - UL-DPCH-Info-r7, - UL-DPCH-Info-r11, - UL-DPCH-InfoPostFDD, - UL-DPCH-InfoPostTDD, - UL-DPCH-InfoPostTDD-LCR-r4, - UL-DPCH-InfoPredef, - UL-DPCH-PowerControlInfo, - UL-DPCH-PowerControlInfo-r4, - UL-DPCH-PowerControlInfo-r5, - UL-DPCH-PowerControlInfo-r6, - UL-DPCH-PowerControlInfoPostFDD, - UL-DPCH-PowerControlInfoPostTDD, - UL-DPCH-PowerControlInfoPostTDD-LCR-r4, - UL-DPCH-PowerControlInfoPredef, - UL-EDCH-Information-r6, - UL-Interference, - UL-ScramblingCode, - UL-SynchronisationParameters-r4, - UL-TargetSIR, - UL-TimingAdvance, - UL-TimingAdvanceControl, - UL-TimingAdvanceControl-r4, - UL-TimingAdvanceControl-LCR-r4, - UL-TS-ChannelisationCode, - UL-TS-ChannelisationCodeList, - UplinkAdditionalTimeslots, - UplinkAdditionalTimeslots-LCR-r4, - Uplink-DPCCH-Slot-Format-Information, - UplinkTimeslotsCodes, - UplinkTimeslotsCodes-LCR-r4, - Wi-LCR, - AcquisitionSatInfo, - AcquisitionSatInfoList, - AdditionalMeasurementID-List, - AlmanacSatInfo, - AlmanacSatInfoList, - AverageRLC-BufferPayload, - AzimuthAndElevation, - BadSatList, - Frequency-Band, - BCCH-ARFCN, - BLER-MeasurementResults, - BLER-MeasurementResultsList, - BLER-TransChIdList, - BSIC-VerificationRequired, - BSICReported, - BurstModeParameters, - CellDCH-ReportCriteria, - CellDCH-ReportCriteria-LCR-r4, - CellIndividualOffset, - CellInfo, - CellInfo-r4, - CellInfoSI-RSCP, - CellInfoSI-RSCP-LCR-r4, - CellInfoSI-ECN0, - CellInfoSI-ECN0-LCR-r4, - CellInfoSI-HCS-RSCP, - CellInfoSI-HCS-RSCP-LCR-r4, - CellInfoSI-HCS-ECN0, - CellInfoSI-HCS-ECN0-LCR-r4, - CellMeasuredResults, - CellMeasurementEventResults, - CellMeasurementEventResults-LCR-r4, - CellReportingQuantities, - CellSelectReselectInfoSIB-11-12, - CellSelectReselectInfoSIB-11-12-RSCP, - CellSelectReselectInfoSIB-11-12-ECN0, - CellSelectReselectInfoSIB-11-12-HCS-RSCP, - CellSelectReselectInfoSIB-11-12-HCS-ECN0, - CellSelectReselectInfo-v590ext, - CellSelectReselectInfoPCHFACH-v5b0ext, - CellSelectReselectInfoTreselectionScaling-v5c0ext, - CellsForInterFreqMeasList, - CellsForInterRATMeasList, - CellsForIntraFreqMeasList, - CellSynchronisationInfo, - CellToReport, - CellToReportList, - CodePhaseSearchWindow, - CountC-SFN-Frame-difference, - CPICH-Ec-N0, - CPICH-RSCP, - DeltaPRC, - DeltaQrxlevmin, - DeltaRSCP, - DeltaRSCPPerCell, - DeltaRRC, - DGPS-CorrectionSatInfo, - DGPS-CorrectionSatInfoList, - DiffCorrectionStatus, - DL-TransportChannelBLER, - DopplerUncertainty, - DRX-Info, - EllipsoidPoint, - EllipsoidPointAltitude, - EllipsoidPointAltitudeEllipsoide, - EllipsoidPointUncertCircle, - EllipsoidPointUncertEllipse, - EnvironmentCharacterisation, - Event1a, - Event1a-r4, - Event1a-LCR-r4, - Event1b, - Event1b-r4, - Event1b-LCR-r4, - Event1c, - Event1d, - Event1e, - Event1e-r6, - Event1f, - Event1f-r6, - Event1j-r6, - Event2a, - Event2a-r6, - Event2b, - Event2b-r6, - Event2c, - Event2c-r6, - Event2d, - Event2d-r6, - Event2e, - Event2e-r6, - Event2f, - Event2f-r6, - Event3a, - Event3b, - Event3c, - Event3d, - EventIDInterFreq, - EventIDInterRAT, - EventIDIntraFreq, - EventResults, - ExtraDopplerInfo, - FACH-MeasurementOccasionInfo, - FACH-MeasurementOccasionInfo-LCR-r4-ext, - FilterCoefficient, - FineSFN-SFN, - ForbiddenAffectCell, - ForbiddenAffectCell-r4, - ForbiddenAffectCell-LCR-r4, - ForbiddenAffectCellList, - ForbiddenAffectCellList-r4, - ForbiddenAffectCellList-LCR-r4, - FreqQualityEstimateQuantity-FDD, - FreqQualityEstimateQuantity-TDD, - GPS-MeasurementParam, - GPS-MeasurementParamList, - GSM-CarrierRSSI, - GSM-MeasuredResults, - GSM-MeasuredResultsList, - GPS-TOW-1msec, - GPS-TOW-Assist, - GPS-TOW-AssistList, - HCS-CellReselectInformation-RSCP, - HCS-CellReselectInformation-ECN0, - HCS-NeighbouringCellInformation-RSCP, - HCS-NeighbouringCellInformation-ECN0, - HCS-PRIO, - HCS-ServingCellInformation, - Hysteresis, - HysteresisInterFreq, - InterFreqCell, - InterFreqCell-LCR-r4, - InterFreqCellID, - InterFreqCellInfoList, - InterFreqCellInfoList-r4, - InterFreqCellInfoSI-List-RSCP, - InterFreqCellInfoSI-List-ECN0, - InterFreqCellInfoSI-List-HCS-RSCP, - InterFreqCellInfoSI-List-HCS-ECN0, - InterFreqCellInfoSI-List-RSCP-LCR, - InterFreqCellInfoSI-List-ECN0-LCR, - InterFreqCellInfoSI-List-HCS-RSCP-LCR, - InterFreqCellInfoSI-List-HCS-ECN0-LCR, - InterFreqCellList, - InterFreqCellList-LCR-r4-ext, - InterFreqCellMeasuredResultsList, - InterFreqEvent, - InterFreqEvent-r6, - InterFreqEventList, - InterFreqEventList-r6, - InterFrequencyMeasuredResultsList-v590ext, - Inter-FreqEventCriteria-v590ext, - Inter-FreqEventCriteriaList-v590ext, - Intra-FreqEventCriteriaList-v590ext, - IntraFrequencyMeasuredResultsList-v590ext, - IntraFreqReportingCriteria-1b-r5, - PeriodicReportingInfo-1b, - InterFreqEventResults, - InterFreqEventResults-LCR-r4-ext, - InterFreqMeasQuantity, - InterFreqMeasuredResults, - InterFreqMeasuredResultsList, - InterFreqMeasurementSysInfo-RSCP, - InterFreqMeasurementSysInfo-ECN0, - InterFreqMeasurementSysInfo-HCS-RSCP, - InterFreqMeasurementSysInfo-HCS-ECN0, - InterFreqMeasurementSysInfo-RSCP-LCR-r4, - InterFreqMeasurementSysInfo-ECN0-LCR-r4, - InterFreqMeasurementSysInfo-HCS-RSCP-LCR-r4, - InterFreqMeasurementSysInfo-HCS-ECN0-LCR-r4, - InterFreqRACHRepCellsList, - Dummy-InterFreqRACHReportingInfo, - InterFreqRACHReportingInfo, - InterFreqReportCriteria, - InterFreqReportCriteria-r4, - InterFreqReportCriteria-r6, - InterFreqReportingCriteria, - InterFreqReportingCriteria-r6, - InterFreqReportingQuantity, - InterFreqRepQuantityRACH-FDD, - InterFreqRepQuantityRACH-TDD, - InterFreqRepQuantityRACH-TDDList, - InterFrequencyMeasurement, - InterFrequencyMeasurement-r4, - InterFrequencyMeasurement-r6, - InterRAT-TargetCellDescription, - InterRATCellID, - InterRATCellInfoIndication, - InterRATCellInfoList, - InterRATCellInfoList-B, - InterRATCellInfoList-r4, - InterRATCellInfoList-r6, - InterRATCellIndividualOffset, - InterRATEvent, - InterRATEventList, - InterRATEventResults, - InterRATInfo, - InterRATInfo-r6, - InterRATMeasQuantity, - InterRATMeasuredResults, - InterRATMeasuredResultsList, - InterRATMeasurement, - InterRATMeasurement-r4, - InterRATMeasurement-r6, - InterRATMeasurementSysInfo, - InterRATMeasurementSysInfo-B, - InterRATReportCriteria, - InterRATReportingCriteria, - InterRATReportingQuantity, - IntraFreqCellID, - IntraFreqCellInfoList, - IntraFreqCellInfoList-r4, - IntraFreqCellInfoSI-List-RSCP, - IntraFreqCellInfoSI-List-ECN0, - IntraFreqCellInfoSI-List-HCS-RSCP, - IntraFreqCellInfoSI-List-HCS-ECN0, - IntraFreqCellInfoSI-List-RSCP-LCR-r4, - IntraFreqCellInfoSI-List-ECN0-LCR-r4, - IntraFreqCellInfoSI-List-HCS-RSCP-LCR-r4, - IntraFreqCellInfoSI-List-HCS-ECN0-LCR-r4, - IntraFreqEvent, - IntraFreqEvent-r4, - IntraFreqEvent-LCR-r4, - IntraFreqEvent-r6, - IntraFreqEvent-1d-r5, - IntraFreqEventCriteria, - IntraFreqEventCriteria-r4, - IntraFreqEventCriteria-LCR-r4, - IntraFreqEventCriteria-r6, - IntraFreqEventCriteriaList, - IntraFreqEventCriteriaList-r4, - IntraFreqEventCriteriaList-LCR-r4, - IntraFreqEventCriteriaList-r6, - IntraFreqEventResults, - IntraFreqMeasQuantity, - IntraFreqMeasQuantity-FDD, - IntraFreqMeasQuantity-TDD, - IntraFreqMeasQuantity-TDDList, - IntraFreqMeasuredResultsList, - IntraFreqMeasurementSysInfo-RSCP, - IntraFreqMeasurementSysInfo-ECN0, - IntraFreqMeasurementSysInfo-HCS-RSCP, - IntraFreqMeasurementSysInfo-HCS-ECN0, - IntraFreqMeasurementSysInfo-RSCP-LCR-r4, - IntraFreqMeasurementSysInfo-ECN0-LCR-r4, - IntraFreqMeasurementSysInfo-HCS-RSCP-LCR-r4, - IntraFreqMeasurementSysInfo-HCS-ECN0-LCR-r4, - IntraFreqReportCriteria, - IntraFreqReportCriteria-r4, - IntraFreqReportCriteria-r6, - IntraFreqReportingCriteria, - IntraFreqReportingCriteria-r4, - IntraFreqReportingCriteria-LCR-r4, - IntraFreqReportingCriteria-r6, - IntraFreqReportingQuantity, - IntraFreqReportingQuantityForRACH, - IntraFreqRepQuantityRACH-FDD, - IntraFreqRepQuantityRACH-TDD, - IntraFreqRepQuantityRACH-TDDList, - IntraFrequencyMeasurement, - IntraFrequencyMeasurement-r4, - IntraFrequencyMeasurement-r6, - IODE, - IP-Length, - IP-PCCPCH-r4, - IP-Spacing, - IP-Spacing-TDD, - IS-2000SpecificMeasInfo, - MaxNumberOfReportingCellsType1, - MaxNumberOfReportingCellsType2, - MaxNumberOfReportingCellsType3, - MaxReportedCellsOnRACH, - MaxReportedCellsOnRACHinterFreq, - MeasuredResults, - MeasuredResults-v390ext, - MeasuredResults-v590ext, - MeasuredResults-LCR-r4, - MeasuredResultsList, - MeasuredResultsList-LCR-r4-ext, - MeasuredResultsOnRACH, - MeasuredResultsOnRACHinterFreq, - MeasurementCommand, - MeasurementCommand-r4, - MeasurementCommand-r6, - MeasurementControlSysInfo, - MeasurementControlSysInfoExtension, - MeasurementControlSysInfoExtensionAddon-r5, - MeasurementControlSysInfoExtension-LCR-r4, - MeasurementControlSysInfo-LCR-r4-ext, - MeasurementIdentity, - MeasurementQuantityGSM, - MeasurementReportingMode, - MeasurementType, - MeasurementType-r4, - MeasurementType-r6, - MeasurementValidity, - MonitoredCellRACH-List, - MonitoredCellRACH-Result, - MultipathIndicator, - N-CR-T-CRMaxHyst, - NavigationModelSatInfo, - NavigationModelSatInfoList, - EphemerisParameter, - NC-Mode, - Neighbour, - Neighbour-v390ext, - NeighbourList, - NeighbourList-v390ext, - NeighbourQuality, - NewInterFreqCell, - NewInterFreqCell-r4, - NewInterFreqCellList, - NewInterFreqCellList-r4, - NewInterFreqCellSI-RSCP, - NewInterFreqCellSI-ECN0, - NewInterFreqCellSI-HCS-RSCP, - NewInterFreqCellSI-HCS-ECN0, - NewInterFreqCellSI-RSCP-LCR-r4, - NewInterFreqCellSI-ECN0-LCR-r4, - NewInterFreqCellSI-HCS-RSCP-LCR-r4, - NewInterFreqCellSI-HCS-ECN0-LCR-r4, - NewInterFreqCellSI-List-ECN0, - NewInterFreqCellSI-List-HCS-RSCP, - NewInterFreqCellSI-List-HCS-ECN0, - NewInterFreqCellSI-List-RSCP, - NewInterFreqCellSI-List-ECN0-LCR-r4, - NewInterFreqCellSI-List-HCS-RSCP-LCR-r4, - NewInterFreqCellSI-List-HCS-ECN0-LCR-r4, - NewInterFreqCellSI-List-RSCP-LCR-r4, - NewInterRATCell, - NewInterRATCell-B, - NewInterRATCellList, - NewInterRATCellList-B, - NewIntraFreqCell, - NewIntraFreqCell-r4, - NewIntraFreqCellList, - NewIntraFreqCellList-r4, - NewIntraFreqCellSI-RSCP, - NewIntraFreqCellSI-ECN0, - NewIntraFreqCellSI-HCS-RSCP, - NewIntraFreqCellSI-HCS-ECN0, - NewIntraFreqCellSI-RSCP-LCR-r4, - NewIntraFreqCellSI-ECN0-LCR-r4, - NewIntraFreqCellSI-HCS-RSCP-LCR-r4, - NewIntraFreqCellSI-HCS-ECN0-LCR-r4, - NewIntraFreqCellSI-List-RSCP, - NewIntraFreqCellSI-List-ECN0, - NewIntraFreqCellSI-List-HCS-RSCP, - NewIntraFreqCellSI-List-HCS-ECN0, - NewIntraFreqCellSI-List-RSCP-LCR-r4, - NewIntraFreqCellSI-List-ECN0-LCR-r4, - NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4, - NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4, - NonUsedFreqParameter, - NonUsedFreqParameter-r6, - NonUsedFreqParameterList, - NonUsedFreqParameterList-r6, - NonUsedFreqWList-r6, - ObservedTimeDifferenceToGSM, - OTDOA-SearchWindowSize, - Pathloss, - PenaltyTime-RSCP, - PenaltyTime-ECN0, - PendingTimeAfterTrigger, - PeriodicalOrEventTrigger, - PeriodicalReportingCriteria, - PeriodicalWithReportingCellStatus, - PLMNIdentitiesOfNeighbourCells, - PLMNsOfInterFreqCellsList, - PLMNsOfIntraFreqCellsList, - PLMNsOfInterRATCellsList, - PositionEstimate, - PositioningMethod, - PRC, - PrimaryCCPCH-RSCP, - Q-HCS, - Q-OffsetS-N, - Q-QualMin, - Q-RxlevMin, - QualityEventResults, - QualityMeasuredResults, - QualityMeasurement, - QualityReportCriteria, - QualityReportingCriteria, - QualityReportingCriteriaSingle, - QualityReportingQuantity, - RAT-Type, - ReferenceCellPosition, - ReferenceLocation, - ReferenceTimeDifferenceToCell, - RemovedInterFreqCellList, - RemovedInterRATCellList, - RemovedIntraFreqCellList, - ReplacementActivationThreshold, - ReportDeactivationThreshold, - ReportingAmount, - ReportingCellStatus, - ReportingCellStatusOpt, - ReportingInfoForCellDCH, - ReportingInfoForCellDCH-LCR-r4, - ReportingInterval, - ReportingIntervalLong, - ReportingRange, - RL-AdditionInfoList, - RL-InformationLists, - RLC-BuffersPayload, - RRC, - SatData, - SatDataList, - SatelliteStatus, - SatID, - SFN-Offset-Validity, - SFN-SFN-Drift, - SFN-SFN-ObsTimeDifference, - SFN-SFN-ObsTimeDifference1, - SFN-SFN-ObsTimeDifference2, - SFN-SFN-OTD-Type, - SFN-SFN-RelTimeDifference1, - SFN-TOW-Uncertainty, - SIR, - SIR-MeasurementList, - SIR-MeasurementResults, - SIR-TFCS, - SIR-TFCS-List, - SIR-TimeslotList, - SubFrame1Reserved, - T-ADVinfo, - T-CRMax, - T-CRMaxHyst, - TemporaryOffset1, - TemporaryOffset2, - TemporaryOffsetList, - Threshold, - Threshold-r6, - ThreholdNonUsedFrequency-deltaList, - ThresholdPositionChange, - ThresholdSFN-GPS-TOW, - ThresholdSFN-SFN-Change, - ThresholdUsedFrequency, - ThresholdUsedFrequency-r6, - TimeInterval, - TimeslotInfo, - TimeslotInfo-LCR-r4, - TimeslotInfoList, - TimeslotInfoList-LCR-r4, - TimeslotInfoList-r4, - TimeslotISCP, - TimeslotISCP-List, - TimeslotListWithISCP, - TimeslotWithISCP, - TimeToTrigger, - TrafficVolumeEventParam, - TrafficVolumeEventResults, - TrafficVolumeEventType, - TrafficVolumeMeasQuantity, - TrafficVolumeMeasSysInfo, - TrafficVolumeMeasuredResults, - TrafficVolumeMeasuredResultsList, - TrafficVolumeMeasurement, - TrafficVolumeMeasurementObjectList, - TrafficVolumeReportCriteria, - TrafficVolumeReportCriteriaSysInfo, - TrafficVolumeReportingCriteria, - TrafficVolumeReportingQuantity, - TrafficVolumeThreshold, - TransChCriteria, - TransChCriteriaList, - TransferMode, - TransmittedPowerThreshold, - TriggeringCondition1, - TriggeringCondition2, - TX-InterruptionAfterTrigger, - UDRE, - UE-6AB-Event, - UE-6FG-Event, - UE-AutonomousUpdateMode, - UE-InternalEventParam, - UE-InternalEventParamList, - UE-InternalEventResults, - UE-InternalMeasQuantity, - UE-InternalMeasuredResults, - UE-InternalMeasuredResults-LCR-r4, - UE-InternalMeasurement, - UE-InternalMeasurement-r4, - UE-InternalMeasurementSysInfo, - UE-InternalReportCriteria, - UE-InternalReportingCriteria, - UE-InternalReportingQuantity, - UE-InternalReportingQuantity-r4, - UE-MeasurementQuantity, - UE-RX-TX-ReportEntry, - UE-RX-TX-ReportEntryList, - UE-RX-TX-TimeDifferenceType1, - UE-RX-TX-TimeDifferenceType2, - UE-RX-TX-TimeDifferenceType2Info, - UE-RX-TX-TimeDifferenceThreshold, - UE-TransmittedPower, - UE-TransmittedPowerTDD-List, - UL-TrCH-Identity, - UE-Positioning-Accuracy, - UE-Positioning-CipherParameters, - UE-Positioning-Error, - UE-Positioning-ErrorCause, - UE-Positioning-EventParam, - UE-Positioning-EventParamList, - UE-Positioning-EventSpecificInfo, - UE-Positioning-GPS-AcquisitionAssistance, - UE-Positioning-GPS-AdditionalAssistanceDataRequest, - UE-Positioning-GPS-Almanac, - UE-Positioning-GPS-AssistanceData, - UE-Positioning-GPS-DGPS-Corrections, - UE-Positioning-GPS-IonosphericModel, - UE-Positioning-GPS-MeasurementResults, - UE-Positioning-GPS-NavigationModel, - UE-Positioning-GPS-NavModelAddDataReq, - UE-Positioning-GPS-ReferenceCellInfo, - UE-Positioning-GPS-ReferenceTime, - UE-Positioning-GPS-UTC-Model, - UE-Positioning-IPDL-Parameters, - UE-Positioning-IPDL-Parameters-r4, - UE-Positioning-IPDL-Parameters-TDD-r4-ext, - UE-Positioning-MeasuredResults, - UE-Positioning-MeasuredResults-v390ext, - UE-Positioning-Measurement, - UE-Positioning-Measurement-v390ext, - UE-Positioning-Measurement-r4, - UE-Positioning-MeasurementEventResults, - UE-Positioning-MeasurementInterval, - UE-Positioning-MethodType, - UE-Positioning-OTDOA-AssistanceData, - UE-Positioning-OTDOA-AssistanceData-r4, - UE-Positioning-OTDOA-AssistanceData-r4ext, - UE-Positioning-OTDOA-AssistanceData-UEB, - UE-Positioning-IPDL-Parameters-TDDList-r4-ext, - UE-Positioning-OTDOA-Measurement, - UE-Positioning-OTDOA-Measurement-v390ext, - UE-Positioning-OTDOA-NeighbourCellInfo, - UE-Positioning-OTDOA-NeighbourCellInfo-r4, - UE-Positioning-OTDOA-NeighbourCellInfo-UEB, - UE-Positioning-OTDOA-NeighbourCellList, - UE-Positioning-OTDOA-NeighbourCellList-r4, - UE-Positioning-OTDOA-NeighbourCellList-UEB, - UE-Positioning-OTDOA-Quality, - UE-Positioning-OTDOA-ReferenceCellInfo, - UE-Positioning-OTDOA-ReferenceCellInfo-r4, - UE-Positioning-OTDOA-ReferenceCellInfo-UEB, - UE-Positioning-PositionEstimateInfo, - UE-Positioning-ReportCriteria, - UE-Positioning-ReportingQuantity, - UE-Positioning-ReportingQuantity-v390ext, - UE-Positioning-ReportingQuantity-r4, - UE-Positioning-ResponseTime, - UTRA-CarrierRSSI, - UTRAN-GPS-DriftRate, - UTRAN-GPSReferenceTime, - UTRAN-GPSReferenceTimeResult, - VarianceOfRLC-BufferPayload, - W, - BCC, - BCCH-ModificationInfo, - BCCH-ModificationTime, - BSIC, - CBS-DRX-Level1Information, - CBS-DRX-Level1Information-extension-r6, - CDMA2000-Message, - CDMA2000-MessageList, - CDMA2000-UMTS-Frequency-List, - CellValueTag, - ExpirationTimeFactor, - ExtSIBTypeInfoSchedulingInfo-List, - ExtSIBTypeInfoSchedulingInfo, - FDD-UMTS-Frequency-List, - FrequencyInfoCDMA2000, - GERAN-SystemInfoBlock, - GERAN-SystemInformation, - GSM-BA-Range, - GSM-BA-Range-List, - GSM-Classmark2, - GSM-Classmark3, - GSM-MessageList, - GSM-MS-RadioAccessCapability, - GsmSecurityCapability, - GSM-TargetCellInfoList, - GSM-TargetCellInfo, - IdentificationOfReceivedMessage, - InterRAT-ChangeFailureCause, - GERANIu-MessageList, - GERANIu-RadioAccessCapability, - InterRAT-UE-RadioAccessCapability, - InterRAT-UE-RadioAccessCapabilityList, - InterRAT-UE-RadioAccessCapability-v590ext, - InterRAT-UE-RadioAccessCapability-v690ext, - InterRAT-UE-SecurityCapability, - InterRAT-UE-SecurityCapList, - InterRAT-HO-FailureCause, - MasterInformationBlock, - MasterInformationBlock-v690ext, - MasterInformationBlock-v6b0ext-IEs, - MIB-ValueTag, - NCC, - PLMN-ValueTag, - PredefinedConfigIdentityAndValueTag, - ProtocolErrorInformation, - ReceivedMessageType, - Rplmn-Information, - Rplmn-Information-r4, - SchedulingInformation, - SchedulingInformationSIB, - SchedulingInformationSIBSb, - SegCount, - SegmentIndex, - SFN-Prime, - SIB-Data-fixed, - SIB-Data-variable, - SIBOccurIdentity, - SIBOccurrenceIdentityAndValueTag, - SIBOccurValueTag, - SIB-ReferenceList, - SIBSb-ReferenceList, - SIB-ReferenceListFACH, - SIB-Type, - SIB-TypeAndTag, - SIBSb-TypeAndTag, - SIB-TypeExt, - SibOFF, - SibOFF-List, - SPS-Information-TDD128-r8, - SysInfoType1, - SysInfoType1-v3a0ext-IEs, - SysInfoType2, - SysInfoType3, - SysInfoType3-v4b0ext-IEs, - SysInfoType3-v590ext, - SysInfoType3-v5c0ext-IEs, - SysInfoType3-v670ext, - SysInfoType4, - SysInfoType4-v4b0ext-IEs, - SysInfoType4-v590ext, - SysInfoType4-v5b0ext-IEs, - SysInfoType4-v5c0ext-IEs, - SysInfoType5, - SysInfoType5-v4b0ext-IEs, - SysInfoType5-v590ext-IEs, - SysInfoType5-v650ext-IEs, - SysInfoType5-v680ext-IEs, - SysInfoType5-v690ext-IEs, - SysInfoType5bis, - SysInfoType6, - SysInfoType6-v4b0ext-IEs, - SysInfoType6-v590ext-IEs, - SysInfoType6-v650ext-IEs, - SysInfoType6-v690ext-IEs, - SysInfoType7, - SysInfoType8, - SysInfoType9, - SysInfoType10, - SysInfoType11, - SysInfoType11-v4b0ext-IEs, - SysInfoType11-v590ext-IEs, - SysInfoType11-v690ext-IEs, - SysInfoType11-v6b0ext-IEs, - SysInfoType11bis, - SysInfoType12, - SysInfoType12-v4b0ext-IEs, - SysInfoType12-v590ext-IEs, - SysInfoType12-v690ext-IEs, - SysInfoType12-v6b0ext-IEs, - SysInfoType13, - SysInfoType13-v3a0ext-IEs, - SysInfoType13-v4b0ext-IEs, - SysInfoType13-1, - SysInfoType13-2, - SysInfoType13-3, - SysInfoType13-4, - SysInfoType14, - SysInfoType15, - SysInfoType15-v4b0ext-IEs, - SysInfoType15-1, - SysInfoType15-2, - SysInfoType15-3, - SysInfoType15-4, - SysInfoType15-4-v3a0ext, - SysInfoType15-4-v4b0ext, - SysInfoType15-5, - SysInfoType15-5-v3a0ext, - SysInfoType16, - SysInfoType17, - SysInfoType17-v4b0ext-IEs, - SysInfoType17-v590ext-IEs, - SysInfoType18, - SysInfoType18-v6b0ext, - SysInfoType19, - SysInfoTypeSB1, - SysInfoTypeSB1-v6b0ext, - SysInfoTypeSB2, - SysInfoTypeSB2-v6b0ext, - TDD-UMTS-Frequency-List, - ValueTagInfo, - ANSI-41-GlobalServiceRedirectInfo, - ANSI-41-PrivateNeighbourListInfo, - ANSI-41-RAND-Information, - ANSI-41-UserZoneID-Information, - ANSI-41-NAS-Parameter, - Min-P-REV, - NAS-SystemInformationANSI-41, - NID, - P-REV, - SID, - MBMS-AccessProbabilityFactor, - MBMS-CellGroupIdentity-r6, - MBMS-CommonCCTrChIdentity, - MBMS-CommonPhyChIdentity, - MBMS-CommonRBIdentity, - MBMS-CommonRBInformation-r6, - MBMS-CommonRBInformationList-r6, - MBMS-CommonTrChIdentity, - MBMS-ConnectedModeCountingScope, - MBMS-CurrentCell-SCCPCH-r6, - MBMS-CurrentCell-SCCPCHList-r6, - MBMS-FACHCarryingMTCH-List, - MBMS-JoinedInformation-r6, - MBMS-L1CombiningSchedule-32, - MBMS-L1CombiningSchedule-64, - MBMS-L1CombiningSchedule-128, - MBMS-L1CombiningSchedule-256, - MBMS-L1CombiningSchedule-512, - MBMS-L1CombiningSchedule-1024, - MBMS-L1CombiningSchedule, - MBMS-L1CombiningTransmTimeDiff, - MBMS-L23Configuration, - MBMS-LogicalChIdentity, - MBMS-MCCH-ConfigurationInfo-r6, - MBMS-MICHConfigurationInfo-r6, - MBMS-MICHNotificationIndLength, - MBMS-MICHPowerOffset, - MBMS-ModifedService-r6, - MBMS-ModifedServiceList-r6, - MBMS-MSCH-ConfigurationInfo-r6, - MBMS-MSCHSchedulingInfo, - MBMS-NeighbouringCellSCCPCH-r6, - MBMS-NeighbouringCellSCCPCHList-r6, - MBMS-NI-CountPerFrame, - MBMS-NumberOfNeighbourCells-r6, - MBMS-PFLIndex, - MBMS-PFLInfo, - MBMS-PhyChInformation-r6, - MBMS-PhyChInformationList-r6, - MBMS-PL-ServiceRestrictInfo-r6, - MBMS-PreferredFrequencyList-r6, - MBMS-PTMActivationTime-r6, - MBMS-PTM-RBInformation-C, - MBMS-PTM-RBInformation-CList, - MBMS-PTM-RBInformation-N, - MBMS-PTM-RBInformation-NList, - MBMS-Qoffset, - MBMS-RequiredUEAction-Mod, - MBMS-RequiredUEAction-UMod, - MBMS-SCCPCHIdentity, - MBMS-SCCPCHPwrOffsetDiff, - MBMS-SelectedServiceInfo, - MBMS-SelectedServicesListFull, - MBMS-SelectedServicesListShort, - MBMS-SelectedServicesShort, - MBMS-ServiceAccessInfo-r6, - MBMS-ServiceAccessInfoList-r6, - MBMS-ServiceIdentity-r6, - MBMS-ServiceSchedulingInfo-r6, - MBMS-ServiceSchedulingInfoList-r6, - MBMS-ServiceTransmInfo, - MBMS-ServiceTransmInfoList, - MBMS-SessionIdentity, - MBMS-ShortTransmissionID, - MBMS-SIBType5-SCCPCH-r6, - MBMS-SIBType5-SCCPCHList-r6, - MBMS-SoftComb-TimingOffset, - MBMS-TCTF-Presence, - MBMS-TimersAndCounters-r6, - MBMS-TransmissionIdentity, - MBMS-TranspChInfoForCCTrCh-r6, - MBMS-TranspChInfoForEachCCTrCh-r6, - MBMS-TranspChInfoForEachTrCh-r6, - MBMS-TranspChInfoForTrCh-r6, - MBMS-TrCHInformation-Curr, - MBMS-TrCHInformation-CurrList, - MBMS-TrCHInformation-Neighb, - MBMS-TrCHInformation-NeighbList, - MBMS-TrCHInformation-SIB5, - MBMS-TrCHInformation-SIB5List, - MBMS-UnmodifiedService-r6, - MBMS-UnmodifiedServiceList-r6, - MIMO-Parameters-r7, - MIMO-Parameters-r8, - MIMO-Parameters-r9, - hiPDSCHidentities, - hiPUSCHidentities, - hiRM, - maxAC, - maxAdditionalMeas, - maxASC, - maxASCmap, - maxASCpersist, - maxCCTrCH, - maxCellMeas, - maxCellMeas-1, - maxCNdomains, - maxCPCHsets, - maxDPCH-DLchan, - maxDPDCH-UL, - maxDRACclasses, - maxE-DCHMACdFlow, - maxE-DCHMACdFlow-1, - maxEDCHRL, - maxFACHPCH, - maxFreq, - maxFreqBandsFDD, - maxFreqBandsFDD-ext, - maxFreqBandsTDD, - maxFreqBandsGSM, - maxGERAN-SI, - maxGSMTargetCells, - maxHProcesses, - maxHSDSCHTBIndex, - maxHSDSCHTBIndex-tdd384, - maxHSSCCHs, - maxInterSysMessages, - maxLoCHperRLC, - maxMAC-d-PDUsizes, - maxMBMS-CommonCCTrCh, - maxMBMS-CommonPhyCh, - maxMBMS-CommonRB, - maxMBMS-CommonTrCh, - maxMBMS-Freq, - maxMBMS-L1CP, - maxMBMSservCount, - maxMBMSservModif, - maxMBMSservSched, - maxMBMSservSelect, - maxMBMSservUnmodif, - maxMBMSTransmis, - maxMeasEvent, - maxMeasIntervals, - maxMeasParEvent, - maxNumCDMA2000Freqs, - maxNumGSMFreqRanges, - maxNumE-HICH, - maxNumFDDFreqs, - maxNumTDDFreqs, - maxNoOfMeas, - maxOtherRAT, - maxOtherRAT-16, - maxPage1, - maxPCPCH-APsig, - maxPCPCH-APsubCh, - maxPCPCH-CDsig, - maxPCPCH-CDsubCh, - maxPCPCH-SF, - maxPCPCHs, - maxPDCPAlgoType, - maxPDSCH, - maxPDSCH-TFCIgroups, - maxPRACH, - maxPRACH-FPACH, - maxPredefConfig, - maxPUSCH, - maxQueueIDs, - maxRABsetup, - maxRAT, - maxRB, - maxRBallRABs, - maxRBMuxOptions, - maxRBperRAB, - maxRBperTrCh, - maxReportedGSMCells, - maxRL, - maxRL-1, - maxRLCPDUsizePerLogChan, - maxRFC3095-CID, - maxROHC-PacketSizes-r4, - maxROHC-Profile-r4, - maxSat, - maxSCCPCH, - maxSIB, - maxSIB-FACH, - maxSIBperMsg, - maxSRBsetup, - maxSystemCapability, - maxTF, - maxTF-CPCH, - maxTFC, - maxTFCsub, - maxTFCI-2-Combs, - maxTGPS, - maxTrCH, - maxTrCHpreconf, - maxTS, - maxTS-1, - maxTS-2, - maxTS-LCR, - maxTS-LCR-1, - maxURA, - maxURNTI-Group, - HS-DSCH-DrxCycleFach, - HS-DSCH-DrxBurstFach, - T-321, - RLC-PDU-SizeConstraint, - CS-HSPA-Information, - CellDCHMeasOccasionInfo-TDD128-r9 - FROM UTRAN-RRC-ASN1-Definitions -; - -maxLogCHperTrCH INTEGER ::= 15 - -- This constant is from MCI ASP proposal, but there is no value for it in the proposal. value 8 is for temporary use -maxdlTrCH INTEGER ::= 16 -maxulTrCH INTEGER ::= 16 -maxNumOfSecondFrequency INTEGER ::= 12 -maxPDSCHtimeslot INTEGER ::= 5 - ---************************************************************** --- --- AICHInfo --- When e-AI-Info is present: --- upon receipt of the access preamble signature corresponding to a PRACH message transmission i.e preambleSignature, the Acquisition Indicators is transmitted on AICH --- upon receipt of the access preamble signature corresponding to an E-DCH transmission i.e. commonEDCH-PreambleSignature, the Extended Acquisition Indicators is transmitted on AICH. ---************************************************************** - -AICHInfo ::= SEQUENCE { - aichinfo AICH-Info, - dl-TxPower AICH-PowerOffset, - e-AI-Info E-AI-InfoType OPTIONAL -- Rel-8 or later @sic R5-110104 sic@ -} - ----************************************************************** --- --- E-AI-InfoType --- ---************************************************************** -E-AI-InfoType ::= SEQUENCE { - defaultE-DCH-ResourceIndex INTEGER (-1..31), - totalNumberE-DCH INTEGER (1..32) -} - ---************************************************************** --- --- DL-TxPower-PCCPCH ---TDD ---************************************************************** - -DL-TxPower-PCCPCH ::= INTEGER (-60..-30 ) - ---************************************************************** --- --- AmConfirmationRequest --- If the noConfirmationRequested option is used, then an RLC-AM-DATA-CNF is not expected from the RLC AM entity. --- If the confirmationRequested option is used, then the RLC AM entity is being requested to provide an RLC-DATA-CNF primitive containing the same mui value. --- ---************************************************************** - -AmConfirmationRequest ::= CHOICE { - noConfirmationRequest NULL, - confirmationRequested Mui -} - ---************************************************************** --- --- COUNT-I-MSB --- 28 bits long --- ---************************************************************** - -COUNT-I-MSB ::= INTEGER (0..268435455 ) - ---************************************************************** --- --- CellToBeCreated --- ---************************************************************** - -CellToBeCreated ::= ENUMERATED { cell-DCH (0), cell-FACH (10) } - ---************************************************************** --- --- CellTxPowerLevel --- The defaultCellTxPowerLvl is a default setting and is used for the most signalling tests. The real total cell DL Tx power level equals to the sum of the DL Tx power of the individual physical channels configured. --- The totalCellTxPowerLvl applies to e.g. the idle mode tests in a non-default multi-cell radio environment. --- ---************************************************************** - -CellTxPowerLevel ::= CHOICE -{ - defaultCellTxPowerLvl NULL, - totalCellTxPowerLvl DL-TxPower -} - ---************************************************************** --- --- CfnTgtSfnFrameOffset --- 1. The observedValue is provided if the UE reads SFN when measuring "Cell synchronisation information" and sends it to the SS in MEASUREMENT REPORT message. The OFF value in IE COUNT-C-SFN frame difference is applied to the observedValue. --- 2. If the synchronisation between the target cell and the reference cell is calculated the calculatedAbsoluteValue is applied. Depending upon how to interpret SfnOffset two valid calculations exist. --- 2.1 If SfnOffset is interpreted as the frames lagging behind: --- calculated-sfnLagging = (((4096 * 38400) + SfnOffset- Ref * 38400 +TCell-Ref + DOFF*512 - (SfnOffset-Tgt * 38400 + TCell-Tgt)) mod (256 * 38400)) / 38400 --- 2.2 If SfnOffset is interpreted as the frames in advance: --- calculated-sfnInAdvance = (((4096 + SfnOffset-Tgt - SfnOffset- Ref) * 38400 +TCell-Ref + DOFF*512 - TCell-Tgt) mod (256 * 38400)) / 38400 --- The formula can be further simplified in the default condition if SfnOffset- Ref and TCell-Ref are equal to 0: --- calculated-sfnLagging = (((4096 * 38400) + DOFF*512 - (SfnOffset-Tgt * 38400 + TCell-Tgt)) mod (256 * 38400)) / 38400 --- calculated-sfnInAdvance = ((DOFF*512 + SfnOffset-Tgt * 38400 - TCell-Tgt) Mod (256 * 38400)) / 38400 --- calculated-sfnInAdvance = (calculated-sfnLagging + 2* SfnOffset-Tgt) mod 256 --- calculated-sfnLagging = (calculated-sfnInAdvance + (4096 - SfnOffset-Tgt) * 2) mod 256 --- The TTCN provides calculated-sfnLagging. --- ---************************************************************** - -CfnTgtSfnFrameOffset ::= SEQUENCE { - referenceCellId INTEGER (0..63), - cfnFrameOffset CHOICE { - observed INTEGER (0..255), - calculated INTEGER (0..255) } -} - ---************************************************************** --- --- CiphActivationInfo --- DL or UL ciphering activation infoIf RB is omitted in rB-UL-CiphActivationTimeInfo the SS takes no action on this RB and the ciphering configuration keeps unchanged on this RB. CipheringModeCommand = dummy NULL means no ciphering. --- ---************************************************************** - -CiphActivationInfo ::= CHOICE { - cipheringModeInfo CipheringModeInfo, - rb-UL-CipheringActivationTimeInfo RB-ActivationTimeInfoList, - cipheringModeInfo-r7 CipheringModeInfo-r7 -} - ---************************************************************** --- --- CmacConfigReq-FDD --- To request to configure MAC --- The IE associatedPhychConfigToFollow should be set to TRUE when there is a associated physical channel configuration to follow (e.g configuration of PICH or MICH). --- The implementation of the IE "associatedPhychConfigToFollow" can be left to the SS either to wait for the associated physical channel before MAC is configured or to continue the configuration of MAC without waiting for the associated physical channel. --- If Dual Cell is configured, IE servingAndSecondaryCellActivation is included. --- Presence of tSN-FieldExtension indicates that the TSN field extension is used as defined in TS 25.321[17]; the absence indicates that 6 bits TSN is used. For 4C-HSDPA tSN-FieldExtension is set to TRUE. --- ---************************************************************** - -CmacConfigReq-FDD ::= SEQUENCE { - activationTime SS-ActivationTime, - uE-Info UE-Info, - trCHInfo TrCHInfo, - trCH-LogCHMapping TrCH-LogCHMappingList1, - associatedPhychConfigToFollow SEQUENCE (SIZE(1..4)) OF INTEGER OPTIONAL, - servingAndSecondaryCellActivation ServingAndSecondaryCellActivation-Type OPTIONAL, -- for Dual Cell Rel-8 or later @sic R5-103863 sic@ - tSN-FieldExtension BOOLEAN DEFAULT FALSE, -- Rel-9 or later - relAspTypeExtension CmacConfigReq-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- CmacConfigReq-TDD --- To request to configure MAC --- ---************************************************************** - -CmacConfigReq-TDD ::= SEQUENCE { - activationTime SS-ActivationTime, - uE-Info UE-Info, - trCHInfo TrCHInfo-TDD, - trCH-LogCHMapping TrCH-LogCHMappingList1-TDD, -- @sic R5-134957 R5w130320: TDD TTCN-2/3 differences sic@ - associatedPhychConfigToFollow SEQUENCE (SIZE(1..4)) OF INTEGER OPTIONAL, - tSN-FieldExtension BOOLEAN DEFAULT FALSE, -- Rel-9 or later @sic R5-134957 sic@ - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- CmacPagingConfigReq --- ---************************************************************** - -CmacPagingConfigReq ::= SEQUENCE { - pI-BitMapInfo CHOICE { - e18 BIT STRING (SIZE (18)), - e36 BIT STRING (SIZE (36)), - e72 BIT STRING (SIZE (72)), - e144 BIT STRING (SIZE (144))}, - dRX-CycleLength INTEGER (3..9), - iMSI IMSI-GSM-MAP, - t-pich-T-sccpch BOOLEAN -- T-pich > T-sccpch then FALSE -} - ---************************************************************** --- --- CmacPagingConfigReq-TDD --- ---************************************************************** - -CmacPagingConfigReq-TDD ::= SEQUENCE { - pI-BitMapInfo CHOICE { - two-PICH-frame Two-PICH-pI-BitmapInfo, - four-PICH-frame Four-PICH-pI-BitmapInfo - }, - dRX-CycleLength INTEGER (3..9), - iMSI IMSI-GSM-MAP, - t-pich-T-sccpch BOOLEAN -- T-pich > T-sccpch then FALSE -} - -Two-PICH-pI-BitmapInfo ::= CHOICE { - e44 BIT STRING (SIZE (44)), - e88 BIT STRING (SIZE (88)), - e176 BIT STRING (SIZE (176)) -} - -Four-PICH-pI-BitmapInfo ::= CHOICE { - e88 BIT STRING (SIZE (88)), - e176 BIT STRING (SIZE (176)), - e352 BIT STRING (SIZE (352)) -} ---************************************************************** --- --- CmacSysinfoConfigReq --- if bcch-ModificationTime = OMIT SS shall modify the Sysinfo immediately --- ---************************************************************** - -CmacSysinfoConfigReq ::= SEQUENCE { - sg-REP INTEGER (2..12), - -- Repetition period is the sg-REP-th power of 2. - sg-POS INTEGER (0..2047), - -- The position of each segment is 2 * sg-POS. - bcch-ModificationTime BCCH-ModificationTime OPTIONAL -} - ---************************************************************** --- --- CommonOrDedicatedTFS --- Transport Format Set --- ---************************************************************** - -CommonOrDedicatedTFS ::= SEQUENCE { - tti CHOICE { - tti10 CommonOrDedicatedTF-InfoList, - tti20 CommonOrDedicatedTF-InfoList, - tti40 CommonOrDedicatedTF-InfoList, - tti80 CommonOrDedicatedTF-InfoList, - dynamic CommonOrDedicatedTF-InfoList-DynamicTTI - }, - semistaticTF-Information SemistaticTF-Information -} - ---************************************************************** --- --- CommonOrDedicatedTFS-TDD --- Transport Format Set --- CommonOrDedicatedTFS in TTCN-2 --- ---************************************************************** - -CommonOrDedicatedTFS-TDD ::= SEQUENCE { - tfsMode CHOICE { - dedicatedTransChTFS DedicatedTransChTFS, - commonTransChTFS CommonTransChTFS, - commonTransChTFS-LCR CommonTransChTFS-LCR - } -} - ---************************************************************** --- --- CommonOrDedicatedTF-Info --- Transport Format Set --- ---************************************************************** - -CommonOrDedicatedTF-Info ::= SEQUENCE { - tb-Size INTEGER (0..5035), - numberOfTbSizeList SEQUENCE (SIZE (1..maxTF)) OF NumberOfTransportBlocks, - logicalChannelList SS-LogicalChannelList -} - ---************************************************************** --- --- CommonOrDedicatedTF-InfoList --- Transport Format Set --- ---************************************************************** - -CommonOrDedicatedTF-InfoList ::= SEQUENCE (SIZE (1..maxTF)) OF CommonOrDedicatedTF-Info - ---************************************************************** --- --- CommonOrDedicatedTF-InfoList-DynamicTTI --- ---************************************************************** - -CommonOrDedicatedTF-InfoList-DynamicTTI ::= SEQUENCE -{ - tb-Size INTEGER (0..5035), - numberOfTbSizeList SEQUENCE (SIZE (1..maxTF)) OF NumberOfTransportBlocks, - logicalChannelList SS-LogicalChannelList -} - ---************************************************************** --- --- CphyRlModifyReq-FDD --- ---************************************************************** - -CphyRlModifyReq-FDD ::= SEQUENCE { - activationTime SS-ActivationTime, - physicalChannelInfo - CHOICE { - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo, - secondaryCCPCHInfo SecondaryCCPCHInfo-FDD, - pRACHInfo PRACHInfo-FDD, - dPCHInfo DPCHInfo-FDD, - dPCHInfo-r5 DPCHInfo-r5OrLater-FDD, -- Rel-5 or later - hS-PDSCHInfo HS-PDSCHInfo-r5OrLater-FDD, -- Rel-5 or later - e-DPCHInfo SS-E-DPCH-Info-r6OrLater, -- Rel-6 or later - e-AGCHInfo SS-E-AGCH-Info-FDD, -- Rel-6 or later - e-HICHInfo SS-E-HICH-Info, -- Rel-6 or later - e-RGCHInfo SS-E-RGCH-Info, -- Rel-6 or later - mBMS-MICHInfo SS-MBMS-MICHConfigurationInfo-r6, -- Rel-6 or later @sic R5-112477 sic@ - aICHInfo AICHInfo, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-130613 R5-134957 sic@ - }, - trchConfigToFollow BOOLEAN DEFAULT TRUE, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- CphyRlModifyReq-TDD --- To request to Modify the Radio Link --- ---************************************************************** - -CphyRlModifyReq-TDD ::= SEQUENCE { - activationTime SS-ActivationTime, - physicalChannelInfo CHOICE { - secondaryCCPCHInfo SecondaryCCPCHInfo-TDD, - pRACHInfo PRACHInfo-TDD, - dPCHInfo DPCHInfo-TDD, - dPCHInfo-r5 DPCHInfo-r5OrLater-TDD, -- Rel-5 or later - hS-PDSCHInfo HS-PDSCHInfo-r5OrLater-TDD, -- Rel-5 or later - e-DCHInfo SS-E-DCH-Info-r7, - e-DCH-Non-ScheduledTransGrantInfo SS-Non-ScheduledTransGrantInfoTDD, - e-AGCHInfo SS-E-AGCH-Info-TDD, -- Rel-7 or later - e-HICHInfo SS-E-HICH-Info-TDD, -- Rel-7 or later - mBMS-MICHInfo SS-MBMS-MICHConfigurationInfo-r6, -- Rel-6 or later @sic R5w140013 sic@ - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-134957 sic@ - }, - trchConfigToFollow BOOLEAN DEFAULT TRUE, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- CphyRlSetupReq-FDD --- To request to setup the Radio Link --- ---************************************************************** - -CphyRlSetupReq-FDD ::= SEQUENCE { - physicalChannelInfo CHOICE { - primaryCPICHInfo PrimaryCPICHInfo, - secondaryCPICHInfo SecondaryCPICHInfo, - primarySCHInfo PrimarySCHInfo, - secondarySCHInfo SecondarySCHInfo, - primaryCCPCHInfo PrimaryCCPCHInfo-FDD, - secondaryCCPCHInfo SecondaryCCPCHInfo-FDD, - pRACHInfo PRACHInfo-FDD, - pICHInfo PICHInfo-FDD, - aICHInfo AICHInfo, - dPCHInfo DPCHInfo-FDD, - pDSCHInfo PDSCHInfo-FDD, - dPCHInfo-r5 DPCHInfo-r5OrLater-FDD, -- Rel-5 or later - hS-PDSCHInfo HS-PDSCHInfo-r5OrLater-FDD, -- Rel-5 or later - e-DPCHInfo SS-E-DPCH-Info-r6OrLater, -- Rel-6 or later - e-AGCHInfo SS-E-AGCH-Info-FDD, -- Rel-6 or later - e-HICHInfo SS-E-HICH-Info, -- Rel-6 or later - e-RGCHInfo SS-E-RGCH-Info, -- Rel-6 or later - mBMS-MICHInfo SS-MBMS-MICHConfigurationInfo-r6, -- Rel-6 or later @sic R5-112477 sic@ - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-130613 R5-134957 sic@ - }, - activationTime SS-ActivationTime, - trchConfigToFollow BOOLEAN DEFAULT TRUE, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- CphyRlSetupReq-TDD --- To request to setup the Radio Link --- ---************************************************************** - -CphyRlSetupReq-TDD ::= SEQUENCE { - physicalChannelInfo CHOICE { - primaryCCPCHInfo PrimaryCCPCHInfo-TDD, - secondaryCCPCHInfo SecondaryCCPCHInfo-TDD, - pRACHInfo PRACHInfo-TDD, - pICHInfo PICHInfo-TDD, - dPCHInfo DPCHInfo-TDD, - pDSCHInfo PDSCHInfo-TDD, - pUSCHInfo PUSCHInfo, - dPCHInfo-r5 DPCHInfo-r5OrLater-TDD, -- Rel-5 or later - hS-PDSCHInfo HS-PDSCHInfo-r5OrLater-TDD, -- Rel-5 or later - e-DCHInfo SS-E-DCH-Info-r7, - e-DCH-Non-ScheduledTransGrantInfo SS-Non-ScheduledTransGrantInfoTDD, - e-AGCHInfo SS-E-AGCH-Info-TDD, -- Rel-7 or later - e-HICHInfo SS-E-HICH-Info-TDD, -- Rel-7 or later - mBMS-MICHInfo SS-MBMS-MICHConfigurationInfo-r6, -- Rel-6 or later @sic R5w140013 sic@ - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-134957 sic@ - }, - activationTime SS-ActivationTime OPTIONAL, - trchConfigToFollow BOOLEAN DEFAULT TRUE, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- CphyTrchConfigReq --- To request to configure the transport channel. --- The same TFCS information should be provided to the PHY and MAC layers at all times. When a CPHY-TrCH-Config-REQ is used to configure the PHY layer, a corresponding CMAC-Config-REQ should be sent to the MAC layer to ensure that the configuration is consistent. --- HS-DSCH MAC-d flows or E-DCH MAC-d flows shall be separately configured whilst the ulconnectedTrCHList, ulTFCS, dlconnectedTrCHList and dlTFCS are omitted. --- For configuring MBMS if the default TFCS used in the RRC message the dLTFTS shall use the "complete" CHOICE in "ExplicitTFCS-Configuration " IE and the TFCS configuration shall be in line with clause 14.10.1.1/14.10.1.2 of TS 25.331. --- ---************************************************************** - -CphyTrchConfigReq ::= SEQUENCE { - activationTime SS-ActivationTime, - ulconnectedTrCHList SEQUENCE (SIZE (0..maxTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - ul-TransportChannelType SS-UL-TransportChannelType, - transportChannelInfo CommonOrDedicatedTFS - } OPTIONAL, - ulTFCS TFCS OPTIONAL, - dlconnectedTrCHList SEQUENCE (SIZE (0..maxTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - dl-TransportChannelType SS-DL-TransportChannelType, - transportChannelInfo CommonOrDedicatedTFS - } OPTIONAL , - dlTFCS TFCS OPTIONAL, - hsDSCHMacdFlows HS-DSCHMACdFlows OPTIONAL, -- Rel-5 or later - e-DCHMacdFlows E-DCHMACdFlows OPTIONAL, -- Rel-6 or later - ehs-DSCH-Flows EHS-DSCH-Flows OPTIONAL, -- Rel-7 or later - ehs-DSCH-CommonFlows EHS-DSCH-CommonFlows OPTIONAL, -- Rel-7 or later - e-DCHMacd-CommonFlows CommonE-DCHMACdFlows OPTIONAL, -- Rel-8 or later - ehs-DSCH-Flows-r9 EHS-DSCH-Flows-r9 OPTIONAL, -- Rel-9 or later @sic R5s110175 sic@ - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- CphyTrchConfigReq-TDD --- To request to configure the transport channel. --- The same TFCS information should be provided to the PHY and MAC layers at all times. When a CPHY-TrCH-Config-REQ is used to configure the PHY layer, a corresponding CMAC-Config-REQ should be sent to the MAC layer to ensure that the configuration is consistent. --- HS-DSCH MAC-d flows or E-DCH MAC-d flows shall be separately configured whilst the ulconnectedTrCHList, ulTFCS, dlconnectedTrCHList and dlTFCS are omitted. --- For configuring MBMS if the default TFCS used in the RRC message the dLTFTS shall use the "complete" CHOICE in "ExplicitTFCS-Configuration " IE and the TFCS configuration shall be in line with clause 14.10.1.1/14.10.1.2 of TS 25.331. --- ---************************************************************** - -CphyTrchConfigReq-TDD ::= SEQUENCE { - activationTime SS-ActivationTime, - ulconnectedTrCHList SEQUENCE (SIZE (0..maxTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - ul-TransportChannelType SS-UL-TransportChannelType-TDD, -- @sic R5-134957 R5w130320: TDD TTCN-2/3 differences sic@ - transportChannelInfo CommonOrDedicatedTFS-TDD - } OPTIONAL, - ulTFCS TFCS OPTIONAL, - dlconnectedTrCHList SEQUENCE (SIZE (0..maxTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - dl-TransportChannelType SS-DL-TransportChannelType, - transportChannelInfo CommonOrDedicatedTFS-TDD - } OPTIONAL , - dlTFCS TFCS OPTIONAL, - hsDSCHMacdFlows HS-DSCHMACdFlows-TDD OPTIONAL, -- Rel-5 or later - e-DCHMacdFlows E-DCHMACdFlows-TDD OPTIONAL, -- Rel-6 or later - ehs-DSCH-Flows EHS-DSCH-Flows OPTIONAL, -- Rel-7 or later - ehs-DSCH-CommonFlows EHS-DSCH-CommonFlows OPTIONAL, -- Rel-7 or later - e-DCHMacd-CommonFlows CommonE-DCHMACdFlows-TDD OPTIONAL, -- Rel-8 or later - ehs-DSCH-Flows-r9 EHS-DSCH-Flows-r9 OPTIONAL, -- Rel-9 or later @sic R5-134957 R5w130320 sic@ - relAspTypeExtension SEQUENCE {} OPTIONAL -- Rel-10 or later @sic R5-134957 sic@ - -} - ---************************************************************** --- --- CrlcConfigReq --- To request to setup, re-configure or release RLC entityThe Stop parameter indicates that the RLC entity shall not transmit or receive RLC PDUs. The Continue parameter indicates that the RLC entity shall continue transmission and reception of RLC PDUs. When the RLC entity is stopped, the RLC timers are not affected. Triggered polls and status transmissions are delayed until the RLC entity is continued. --- ---************************************************************** - -CrlcConfigReq ::= CHOICE { - setup RBInfo, - reconfigure RBInfo, - release NULL, - sS-stop NULL, - sS-continue NULL -} - ---************************************************************** --- --- CrlcConfigReq-TDD --- To request to setup, re-configure or release RLC entity The Stop parameter indicates that the RLC entity shall not transmit or receive RLC PDUs. The Continue parameter indicates that the RLC entity shall continue transmission and reception of RLC PDUs. When the RLC entity is stopped, the RLC timers are not affected. Triggered polls and status transmissions are delayed until the RLC entity is continued. --- ---************************************************************** - -CrlcConfigReq-TDD ::= CHOICE { - setup RBInfo-TDD, - reconfigure RBInfo-TDD, - release NULL, - sS-stop NULL, - sS-continue NULL -} - ---************************************************************** --- --- DL-DPCHInfo-FDD --- ---************************************************************** - -DL-DPCHInfo-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-TDD --- ---************************************************************** - -DL-DPCHInfo-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r4, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r4, - powerOffsetOfTFCI-PO1 INTEGER (0..24), - powerOffsetOfTPC-PO2 INTEGER (0..24), --@sic R5w140013 sic@ - dl-TxPower DL-TxPower, - dl-TxPowerMax DL-TxPower, - dl-TxPowerMin DL-TxPower, - dL-TimeslotISCPInfoLCR TimeslotListWithISCP-LCR -} - ---************************************************************** --- --- TimeslotListWithISCP-LCR --- ---************************************************************** -TimeslotListWithISCP-LCR ::= SEQUENCE (SIZE (1..maxTS ) ) OF TimeslotWithISCP-LCR - ---************************************************************** --- --- TimeslotWithISCP-LCR --- ---************************************************************** -TimeslotWithISCP-LCR::= SEQUENCE { - timeslot TimeslotNumber-LCR-r4, - timeslotISCP TimeslotISCP -} - ---************************************************************** --- --- DL-DPCHInfo-r5-FDD --- Applicable Rel-5 or later --- ---************************************************************** - -DL-DPCHInfo-r5-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r5, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-r5-TDD --- Applicable Rel-5 or later --- ---************************************************************** - -DL-DPCHInfo-r5-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r5, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - powerOffsetOfTFCI-PO1 INTEGER (0..24), - powerOffsetOfTPC-PO2 INTEGER (0..24), - dl-TxPower DL-TxPower, - dl-TxPowerMax DL-TxPower, - dl-TxPowerMin DL-TxPower, - dL-TimeslotISCPInfoLCR TimeslotListWithISCP-LCR -} - ---************************************************************** --- --- DL-DPCHInfo-r6-FDD --- Applicable Rel-6 or later --- ---************************************************************** - -DL-DPCHInfo-r6-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r6, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r6, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r6 - }, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-r6-TDD --- Applicable Rel-6 or later --- ---************************************************************** - -DL-DPCHInfo-r6-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r6, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r6, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r6 - }, - rl-Information RL-Information-TDD -} - ---************************************************************** --- --- DL-DPCHInfo-r7-FDD --- Applicable Rel-7 or later --- ---************************************************************** - -DL-DPCHInfo-r7-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r7, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-r7-TDD --- Applicable Rel-7 or later --- ---************************************************************** - -DL-DPCHInfo-r7-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r7, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-TDD -} - ---************************************************************** --- --- DL-DPCHInfo-r8-FDD --- Applicable Rel-8 or later --- ---************************************************************** - -DL-DPCHInfo-r8-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r8, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-r8-TDD --- Applicable Rel-8 or later --- ---************************************************************** - -DL-DPCHInfo-r8-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r8, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-TDD -} - ---************************************************************** --- --- DL-DPCHInfo-r10-FDD --- Applicable Rel-10 or later --- ---************************************************************** -DL-DPCHInfo-r10-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r10, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-r10-TDD --- Applicable Rel-10 or later --- ---************************************************************** -DL-DPCHInfo-r10-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r10, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-TDD -} - ---************************************************************** --- --- DL-DPCHInfo-r11-FDD --- Applicable Rel-11 or later --- ---************************************************************** -DL-DPCHInfo-r11-FDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r11, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-FDD -} - ---************************************************************** --- --- DL-DPCHInfo-r11-TDD --- Applicable Rel-11 or later --- ---************************************************************** -DL-DPCHInfo-r11-TDD ::= SEQUENCE { - dl-CommonInformation DL-CommonInformation-r11, - dl-Dpch-InfoPerRL CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - rl-Information RL-Information-TDD -} - ---************************************************************** --- --- DL-TxPower --- Downlink Tx Power relative to PCPICH --- ---************************************************************** - -DL-TxPower ::= INTEGER (-35..15) - ---************************************************************** --- --- DwPCH-Power --- Downlink DwPCH Tx Power,DwPCH-power = power * 10 --- Unit dBm, Range -15dBm .. +40 dBm, Step +0.1dB --- TDD ---************************************************************** - -DwPCH-Power ::= INTEGER (-150..400) - ---************************************************************** --- --- DL-TxPower-PCPICH --- Absolute Tx Power of PCPICH --- ---************************************************************** - -DL-TxPower-PCPICH ::= INTEGER (-60..-30) - ---************************************************************** --- --- DPCHInfo-FDD --- The range for powerOffsetOfTPC-PO2 and powerOffsetOfTFCI-PO1 and powerOffsetOfPILOT-PO3 is 0 dB to 6 dB, 0,25 dB per step. --- ---************************************************************** - -DPCHInfo-FDD ::= SEQUENCE { - ul-DPCHInfo UL-DPCH-Info OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-FDD OPTIONAL -} - ---************************************************************** --- --- DPCHInfo-TDD --- ---************************************************************** - -DPCHInfo-TDD ::= SEQUENCE { - ul-DPCHInfo UL-DPCHInfo-TDD OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-TDD OPTIONAL -} - ---************************************************************** --- --- UL-DPCHInfo-TDD --- ---************************************************************** - -UL-DPCHInfo-TDD ::= SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r4 -} - ---************************************************************** --- --- DPCHInfo-r5OrLater-FDD --- Applicable Rel-5 or later --- At least one of the first two fields ul-DPCHInfo or dl-DPCHInfo shall be present. --- Presence of hs-DPCCHInd means that the HS-DPCCH shall be configured in the uplink DPCH. If hs-DPCCHInd is absent no HS-DPCCH shall be configured in the uplink DPCH, or the configured HS-DPCCH shall be removed in the modify ASP. In the active set which has radio links from more than one cell the HS-DPCCH is configured only in the HS-DSCH serving cell. --- Three combinations are valid: ul-DPCH-Info only, dl-DPCHInfo only and ul-DPCH-Info + hs-DPCCHInd. --- Presence of ss-UL-DPCCH-DRX-Info if UL DPCH being configured and presence of ss-DRX-Info if DL F-DPCH being configured indicates that UL-DTX is enabled. --- ss-DRX-Info is provided as F-DPCH TPC commands need not be transmitted during gaps due to UL-DPCCH DTX (3GPP TS 25.214 [12], subclause 5.1.2.2.1). --- ul-DPCH-TimingOffset is the timing offset relative to P-CCPCH, it is provided in Rel-7 only when Enhanced Cell FACH Downlink (common-HS-PDSCH-Info) is configured. ---************************************************************** - -DPCHInfo-r5OrLater-FDD ::= CHOICE { - r5 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r5 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r5-FDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo OPTIONAL - }, - r6 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r6 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r6-FDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo OPTIONAL - }, - r7 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r7 OPTIONAL, - ul-DPCH-TimingOffset INTEGER (0..38399) OPTIONAL, - -- timing offset relative to P-CCPCH - -- applicable to Rel-7 when Enhanced Cell FACH DL is configured - -- @sic R5-120613 sic@ - dl-DPCHInfo DL-DPCHInfo-r7-FDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo OPTIONAL, - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - - }, - r8 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r7 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r8-FDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo-r8 OPTIONAL, -- @sic R5-112477 sic@ - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - }, - relAspTypeExtension DPCHInfo-r10OrLaterExtensionType-FDD - -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- DPCHInfo-r10OrLaterExtensionType-FDD --- Applicable Rel-10 or later --- @sic R5-130613 R5-133682 sic@ --- ---************************************************************** -DPCHInfo-r10OrLaterExtensionType-FDD ::= CHOICE { - rel10-AspExt SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r7 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r10-FDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - }, - rel11-AspExt SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r11 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r11-FDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - } -} - ---************************************************************** --- --- DPCHInfo-r5OrLater-TDD --- Applicable Rel-5 or later --- At least one of the first two fields ul-DPCHInfo or dl-DPCHInfo shall be present. --- Presence of hs-DPCCHInd means that the HS-DPCCH shall be configured in the uplink DPCH. If hs-DPCCHInd is absent no HS-DPCCH shall be configured in the uplink DPCH, or the configured HS-DPCCH shall be removed in the modify ASP. In the active set which has radio links from more than one cell the HS-DPCCH is configured only in the HS-DSCH serving cell. --- Three combinations are valid: ul-DPCH-Info only, dl-DPCHInfo only and ul-DPCH-Info + hs-DPCCHInd. --- ---************************************************************** - -DPCHInfo-r5OrLater-TDD ::= CHOICE { - r5 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r5 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r5-TDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo OPTIONAL - }, - r6 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r6 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r6-TDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo OPTIONAL - }, - r7 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r7 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r7-TDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo OPTIONAL, - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - - }, - r8 SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r7 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r8-TDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo-r8 OPTIONAL, -- @sic R5-112477 sic@ - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - }, - relAspTypeExtension DPCHInfo-r10OrLaterExtensionType-TDD -} - ---************************************************************** --- --- DPCHInfo-r10OrLaterExtensionType-TDD --- Applicable Rel-10 or later --- @sic R5-130613 R5-133682 sic@ --- ---************************************************************** -DPCHInfo-r10OrLaterExtensionType-TDD ::= CHOICE { - rel10-AspExt SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r7 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r10-TDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - }, - rel11-AspExt SEQUENCE { - ul-DPCHInfo UL-DPCH-Info-r11 OPTIONAL, - dl-DPCHInfo DL-DPCHInfo-r11-TDD OPTIONAL, - hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, - ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, - ss-DRX-Info DTX-Info OPTIONAL - } -} - ---************************************************************** --- --- EHS-DSCH-CommonFlows --- Rel-7 or later --- ---************************************************************** - -EHS-DSCH-CommonFlows ::= SEQUENCE { - harqInfo-r7 HARQ-Info-r7 OPTIONAL, --@sic R5w140013 sic@ - common-MAC-ehs-ReorderingQueueList SS-Common-MAC-ehs-ReorderingQueueList OPTIONAL -} - ---************************************************************** --- --- EHS-DSCH-Flows --- Rel-7 or later --- ---************************************************************** - -EHS-DSCH-Flows ::= SEQUENCE { - harqInfo-r7 HARQ-Info-r7 OPTIONAL, --@sic R5w140013 sic@ - addOrReconfMAC-ehs-ReordQ SS-MAC-ehs-AddReconfReordQueueList OPTIONAL, - ackNackRepetitionFactor ACK-NACK-repetitionFactor OPTIONAL, - mimoStatus BOOLEAN OPTIONAL -} - ---************************************************************** --- --- EHS-DSCH-Flows-r9 --- Rel-9 or later --- ---************************************************************** - -EHS-DSCH-Flows-r9 ::= SEQUENCE { - harqInfo-r7 HARQ-Info-r7 OPTIONAL, --@sic R5w140013 sic@ - addOrReconfMAC-ehs-ReordQ SS-MAC-ehs-AddReconfReordQueueList-r9 OPTIONAL, - ackNackRepetitionFactor ACK-NACK-repetitionFactor OPTIONAL, - mimoStatus BOOLEAN OPTIONAL - -} - ---************************************************************** --- --- EHS-DSCH-Flows-r11 --- Applicable Rel-11 or later --- ---************************************************************** -EHS-DSCH-Flows-r11 ::= SEQUENCE { - harqInfo-r11 HARQ-Info-r11 OPTIONAL, - addOrReconfMAC-ehs-ReordQ SS-MAC-ehs-AddReconfReordQueueList-r11 OPTIONAL, - ackNackRepetitionFactor ACK-NACK-repetitionFactor OPTIONAL, - mimoStatus BOOLEAN OPTIONAL -} - - ---************************************************************** --- --- CommonE-DCHMACdFlows --- Rel-6 or later --- ---************************************************************** - -CommonE-DCHMACdFlows ::= SEQUENCE { - tti E-DCH-TTI, - harq-Info ENUMERATED {rv0 (0), rvtable (1)}, - addReconfMAC-d-FlowList Common-E-DCH-MAC-d-FlowList --@sic R5w140013 sic@ -} - -CommonE-DCHMACdFlows-TDD ::= SEQUENCE { - harq-Info ENUMERATED {rv0 (0), rvtable (1)}, - addReconfMAC-d-FlowList Common-E-DCH-MAC-d-FlowList --@sic R5w140013 sic@ -} - ---************************************************************** --- --- E-DCHMACdFlows --- Rel-6 or later --- ---************************************************************** - - -E-DCHMACdFlows ::= SEQUENCE { - tti E-DCH-TTI, - harq-Info ENUMERATED {rv0 (0), rvtable (1)}, - addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList OPTIONAL, - addReconf-MAC-d-FlowList-r7 E-DCH-AddReconf-MAC-d-FlowList-r7 OPTIONAL -} - ---************************************************************** --- --- E-DCHMACdFlows-TDD --- Rel-7 or later --- E-DCHMACdFlows in TTCN-2 --- ---************************************************************** - -E-DCHMACdFlows-TDD ::= SEQUENCE { - harq-Info ENUMERATED {rv0 (0), rvtable (1)}, - addReconf-MAC-d-FlowList-r7 E-DCH-AddReconf-MAC-d-FlowList-r7 OPTIONAL --@sic R5w140013 sic@ -} - ---************************************************************** --- --- FrequencyBandFDD --- The frequency band indicator indicates how to interpret the radio frequency broadcast. --- ---************************************************************** - -FrequencyBandFDD ::= CHOICE { - frequencyBandIndicator RadioFrequencyBandFDD, - frequencyBandIndicator2 RadioFrequencyBandFDD2, - frequencyBandIndicator3 RadioFrequencyBandFDD3, - relAspTypeExtension SEQUENCE{} -- @sic R5-130613 R5-134957 sic@ - -} - ---************************************************************** --- --- HS-DPCCHInfo --- ---************************************************************** - -HS-DPCCHInfo ::= SEQUENCE { - cqi-RepetitionFactor CQI-RepetitionFactor, - ackNackRepetitionFactor ACK-NACK-repetitionFactor, - mimoStatus BOOLEAN DEFAULT FALSE -} - ---************************************************************** --- --- HS-DPCCHInfo-r10 --- Applicable to 4C-HSDPA Rel-10 or later --- secondaryServing-HS-DSCH-Cell indicates if the HS-DSCH secondary serving cell is activated (see 3GPP TS 25.214 [12], clause 6A.1) --- The HS-DPCCH code allocation and slot format are set according to 3GPP TS 25.213 [66], clause 4.3.1.2.2. ---************************************************************** - -HS-DPCCHInfo-r10 ::= SEQUENCE { - cqi-RepetitionFactor CQI-RepetitionFactor, - ackNackRepetitionFactor ACK-NACK-repetitionFactor, - mimoStatus BOOLEAN DEFAULT FALSE, - firstSecondaryServing-HS-DSCH-Cell ENUMERATED { deactivated (0), activated (1) } DEFAULT deactivated, - secondSecondaryServing-HS-DSCH-Cell ENUMERATED { deactivated (0), activated (1) } DEFAULT deactivated, - thirdSecondaryServing-HS-DSCH-Cell ENUMERATED { deactivated (0), activated (1) } DEFAULT deactivated - -- Relevant when third secondary cell is configured -} - ---************************************************************** --- --- HS-DSCH-DrxCellfach-info --- ---************************************************************** - -HS-DSCH-DrxCellfach-info ::= SEQUENCE { - t-321 T-321, - hs-dsch-DrxCycleFach HS-DSCH-DrxCycleFach, - hs-dsch-DrxBurstFach HS-DSCH-DrxBurstFach, - drxInterruption-hs-dsch BOOLEAN -} - ---************************************************************** --- --- HS-DSCHMACdFlows --- Applicable Rel-5 or later. --- Within the ACK/NACK repetition period indicated by ackNackRepetitionFactor the SS shall not transmit MAC-hs PDU's on HS-PDSCH. --- ---************************************************************** - -HS-DSCHMACdFlows ::= SEQUENCE { - harqInfo HARQ-Info OPTIONAL, - addOrReconfMACdFlow SS-AddOrReconfMAC-dFlow OPTIONAL, - ackNackRepetitionFactor ACK-NACK-repetitionFactor OPTIONAL, - harqInfo-r7 HARQ-Info-r7 OPTIONAL - -- mimoStatus BOOLEAN OPTIONAL No longer in TTCN2 version -} - -HS-DSCHMACdFlows-TDD ::= SEQUENCE { - harqInfo HARQ-Info OPTIONAL, - addOrReconfMACdFlow SS-AddOrReconfMAC-dFlow OPTIONAL, - harqInfo-r7 HARQ-Info-r7 OPTIONAL - -- mimoStatus BOOLEAN OPTIONAL No longer in TTCN2 version -} - - ---************************************************************** --- --- HS-PDSCHInfo-r5OrLater --- Applicable Rel-5 or later --- When CHY-RL-Setup-REQ is called with CHOICE of hS-PDSCHInfo HS-PDSCH and HS-SCCH shall be configured in SS. --- The following HS-DSCH related parameters are passed to the SS implicitly by HSDSCH-physical-layer-category: --- - Maximum number of HS-DSCH codes can be received by UE, --- - Minimum inter-TTI interval, --- - Maximum number of bits of an HS-DSCH transport block within an HS-DSCH TTI --- - Total number of soft channel bits". --- HSDSCH-physical-Layer-category is also used for interpretation of the meaning of CQI value. --- ---************************************************************** - -HS-PDSCHInfo-r5OrLater-FDD ::= CHOICE { - r5 SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH --- hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR OPTIONAL, @sic R5-112477r1 sic@ - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - r6 SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r6, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH --- hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR OPTIONAL, @sic R5-112477r1 sic@ - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - r7 HS-PDSCHInfo-r7-FDD, - r8 HS-PDSCHInfo-r8-FDD, - r9 HS-PDSCHInfo-r9-FDD, -- @sic R5s110175 sic@ - relAspTypeExtension HS-PDSCHInfo-r10OrLaterExtensionType -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - -HS-PDSCHInfo-r5OrLater-TDD ::= CHOICE { - r5 SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR, --@sic R5-112477r1 sic@ - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - r6 SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r6, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR, --@sic R5-112477r1 sic@ - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - r7 HS-PDSCHInfo-r7-TDD, - r8 HS-PDSCHInfo-r8-TDD, - r9 HS-PDSCHInfo-r9-TDD, -- @sic R5s110175 sic@ - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- HS-PDSCHInfo-r10OrLaterExtensionType --- Rel-10 or later --- hS-PDSCH-Info rel10 extension is applied to 4C HSDPA configurations. --- The IEs related to HS-DSCH physical layer vategories are mutually exclusive. One of the IE shall be present in the SS configuration. --- The IE "hsdsch-physical-layer-category-ext4" is present when 2 secondary cells are configured. --- The IE "hsdsch-physical-layer-category-ext5" is present when 3 secondary cells are configured. --- The IE "hsdsch-physical-layer-category-ext6" is present when multi-cell operation on 5 or 6 cells are configured. --- The IE "hsdsch-physical-layer-category-ext7" is present when multi-cell operation on 7 or 8 cells are configured. --- The IE "hsdsch-physical-layer-category-ext8" is present when MIMO with 4 transmit antenna are configured. ---************************************************************** -HS-PDSCHInfo-r10OrLaterExtensionType ::= CHOICE { - rel10-AspExt SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - hsdsch-physical-layer-category-ext2 - HSDSCH-physical-layer-category-ext2 OPTIONAL, - hsdsch-physical-layer-category-ext3 - HSDSCH-physical-layer-category-ext3 OPTIONAL, - hsdsch-physical-layer-category-ext4 - HSDSCH-physical-layer-category-ext4 OPTIONAL, - hsdsch-physical-layer-category-ext5 - HSDSCH-physical-layer-category-ext5 OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r9, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - ss-DTX-Info DRX-Info OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimo-Parameters MIMO-Parameters-r9 OPTIONAL, - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE - }, - rel11-AspExt SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext - HSDSCH-physical-layer-category-ext OPTIONAL, - hsdsch-physical-layer-category-ext2 - HSDSCH-physical-layer-category-ext2 OPTIONAL, - hsdsch-physical-layer-category-ext3 - HSDSCH-physical-layer-category-ext3 OPTIONAL, - hsdsch-physical-layer-category-ext4 - HSDSCH-physical-layer-category-ext4 OPTIONAL, - hsdsch-physical-layer-category-ext5 - HSDSCH-physical-layer-category-ext5 OPTIONAL, - hsdsch-physical-layer-category-ext6 - HSDSCH-physical-layer-category-ext6 OPTIONAL, - hsdsch-physical-layer-category-ext7 - HSDSCH-physical-layer-category-ext7 OPTIONAL, - hsdsch-physical-layer-category-ext8 - HSDSCH-physical-layer-category-ext8 OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r11, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - ss-DTX-Info DRX-Info OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimo-Parameters MIMO-Parameters-r9 OPTIONAL, - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE - } -} - ---************************************************************** --- --- HS-PDSCH-ChannelisationCodeInfo-LCR --- ---************************************************************** - -HS-PDSCH-ChannelisationCodeInfo-LCR ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - startCode HS-ChannelisationCode-LCR, - stopCode HS-ChannelisationCode-LCR -} - - ---************************************************************** --- --- HS-PDSCHInfo-r7 --- ---************************************************************** - -HS-PDSCHInfo-r7-FDD ::= CHOICE { - hS-PDSCH-Info SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r7, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH --- hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR OPTIONAL, @sic R5-112477r1 sic@ - ss-DTX-Info DRX-Info OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimo-Parameters MIMO-Parameters-r7 OPTIONAL, - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE -- @sic R5-120613 sic@ - - }, - common-HS-PDSCH-Info SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext, -- @sic R5-112477 sic@ - commonOrDedicated-H-RNTI H-RNTI OPTIONAL, -- @sic R5-112477 sic@ - bcchSpecific-H-RNTI H-RNTI, - hs-scch-SystemInfo HS-SCCH-SystemInfo, - hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - spare2 SEQUENCE {}, - spare3 SEQUENCE {} -} - -HS-PDSCHInfo-r7-TDD ::= CHOICE { - hS-PDSCH-Info SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r7, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR, --@sic R5-112477r1 sic@ - ss-DTX-Info DRX-Info OPTIONAL, - mimo-Parameters MIMO-Parameters-r7 OPTIONAL, - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - common-HS-PDSCH-Info SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext, -- @sic R5-112477 sic@ - commonOrDedicated-H-RNTI H-RNTI OPTIONAL, -- @sic R5-112477 sic@ - bcchSpecific-H-RNTI H-RNTI, - hs-scch-SystemInfo HS-SCCH-SystemInfo, - hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE - }, - spare2 SEQUENCE {}, - spare3 SEQUENCE {} -} - - ---************************************************************** --- --- HS-PDSCHInfo-r8-FDD --- ---************************************************************** - -HS-PDSCHInfo-r8-FDD ::= CHOICE { - hS-PDSCH-Info SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - hsdsch-physical-layer-category-ext2 HSDSCH-physical-layer-category-ext2 OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r8, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH --- hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR OPTIONAL, @sic R5-112477r1 sic@ - ss-DTX-Info DRX-Info OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimo-Parameters MIMO-Parameters-r8 OPTIONAL, - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE -- @sic R5-120613 sic@ - }, - common-HS-PDSCH-Info SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext, -- @sic R5-112477 sic@ - commonOrDedicated-H-RNTI H-RNTI OPTIONAL, -- @sic R5-112477 sic@ - bcchSpecific-H-RNTI H-RNTI, - hs-scch-SystemInfo HS-SCCH-SystemInfo, - hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - ss-HS-DSCH-DtxCellFach HS-DSCH-DrxCellfach-info OPTIONAL - }, - spare2 SEQUENCE {}, - spare3 SEQUENCE {} -} - ---************************************************************** --- --- HS-PDSCHInfo-r8-TDD --- ---************************************************************** - -HS-PDSCHInfo-r8-TDD ::= CHOICE { - hS-PDSCH-Info SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - multiCarrier-physical-layer-category MultiCarrier-HSDSCH-physical-layer-category OPTIONAL, - multiCarrier-physicallayer-category-extension MultiCarrier-HSDSCH-physical-layer-category-extension OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r8, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - mimo-Parameters MIMO-Parameters-r8 OPTIONAL, - hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR, --@sic R5-140315 sic@ - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL - - }, - common-HS-PDSCH-Info SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext, -- @sic R5-112477 sic@ - commonOrDedicated-H-RNTI H-RNTI OPTIONAL, -- @sic R5-112477 sic@ - bcchSpecific-H-RNTI H-RNTI, - hs-scch-SystemInfo-tdd128 HS-SCCH-SystemInfo-TDD128 OPTIONAL, - hs-pdsch-MidambleConfiguration HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - hs-dsch-PagingSystemInformation-tdd128 HS-DSCH-PagingSystemInformation-TDD128 OPTIONAL, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - ss-HS-DSCH-DtxCellFach HS-DSCH-DrxCellfach-info-TDD128 OPTIONAL - }, - spare2 SEQUENCE {}, - spare3 SEQUENCE {} -} - ---************************************************************** --- --- HS-PDSCHInfo-r9-FDD --- ---************************************************************** - -HS-PDSCHInfo-r9-FDD ::= CHOICE { - hS-PDSCH-Info SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - hsdsch-physical-layer-category-ext2 HSDSCH-physical-layer-category-ext2 OPTIONAL, - hsdsch-physical-layer-category-ext3 HSDSCH-physical-layer-category-ext3 OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r9, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH --- hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR OPTIONAL, @sic R5-112477r1 sic@ - ss-DTX-Info DRX-Info OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimo-Parameters MIMO-Parameters-r9 OPTIONAL, - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE -- @sic R5-120613 sic@ - }, - common-HS-PDSCH-Info SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext, -- @sic R5-112477 sic@ - commonOrDedicated-H-RNTI H-RNTI OPTIONAL, -- @sic R5-112477 sic@ - bcchSpecific-H-RNTI H-RNTI, - hs-scch-SystemInfo HS-SCCH-SystemInfo, - hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - ss-HS-DSCH-DtxCellFach HS-DSCH-DrxCellfach-info OPTIONAL - }, - spare2 SEQUENCE {}, - spare3 SEQUENCE {} -} - ---************************************************************** --- --- HS-PDSCHInfo-r9-TDD --- Applicable Rel-9 or later. --- Choice of hS-PDSCH-Info will be used for configuring HSD-DSCH with 64QAM and/or CPC. --- Choice of common-HS-PDSCH-Info will be used for Enhanced Cell-FACH. --- commonOrDedicated-H-RNTI indicates, the H-RNTI that will be used by UE (either dedicated H-RNTI if provided in RRC message, or selected common H-RNTI transmitted in SIB5). --- The transmission of BCCH on HS-DSCH is performed by using BCCH specific H-RNTI on the first indexed HS-SCCH code indicated in system information broadcast. --- Presence of controlChannelDRXInfo-TDD128 makes DL DRX to be enabled. --- Presence of sps-Information-TDD128 makes SPS operation enabled. --- Presence of mimo-Parameters indicate MIMO is to be started. --- The IEs 'hSDSCHPhysicalLayerCategory', 'hsdsch-physical-layer-category-ext', are mutually exclusive. One of the IE shall be present in the SS configuration. The IE If commonOrDedicated-H-RNTI is omitted, HS-SCCHless is to be applied. --- If hs-DPCCHToFollow is FALSE, the hs-DPCCHInd IE shall not be present when ul-DPCHInfo is configured or reconfigured. --- Presence of ss-HS-DSCH-DtxCellFach makes HS-DSCH DRX operation enabled and SS shall transmit any requested HS-SCCH and HS-DSCH only in occasions when UE will be listening. --- hs-PDSCHChannelisationCodeInfo present in TDD configurations. --- If tS0-Indicator is TRUE, the bit xts,1 of Time slot information in HS-SCCH carries the information for timeslot 0. ---************************************************************** - -HS-PDSCHInfo-r9-TDD ::= CHOICE { - hS-PDSCH-Info SEQUENCE { - hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - multiCarrier-physical-layer-category MultiCarrier-HSDSCH-physical-layer-category OPTIONAL, - multiCarrier-physicallayer-category-extension MultiCarrier-HSDSCH-physical-layer-category-extension OPTIONAL, - h-RNTI H-RNTI, - dlHSPDSCHInformation DL-HSPDSCH-Information-r9, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - mimo-Parameters MIMO-Parameters-r9 OPTIONAL, - hs-PDSCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxPDSCHtimeslot ) ) OF HS-PDSCH-ChannelisationCodeInfo-LCR, --@sic R5-140315 sic@ - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL - }, - common-HS-PDSCH-Info SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext, -- @sic R5-112477 sic@ - commonOrDedicated-H-RNTI H-RNTI OPTIONAL, -- @sic R5-112477 sic@ - bcchSpecific-H-RNTI H-RNTI, - hs-scch-SystemInfo-tdd128 HS-SCCH-SystemInfo-TDD128 OPTIONAL, - hs-pdsch-MidambleConfiguration HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - hs-dsch-PagingSystemInformation-tdd128 HS-DSCH-PagingSystemInformation-TDD128 OPTIONAL, - sttd-Indicator BOOLEAN, - hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH - hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, - ss-HS-DSCH-DtxCellFach HS-DSCH-DrxCellfach-info-TDD128 OPTIONAL - }, - spare2 SEQUENCE {}, - spare3 SEQUENCE {} -} - ---************************************************************** --- --- HyperFrameNumber --- ---************************************************************** - -HyperFrameNumber ::= BIT STRING (SIZE (20)) - ---************************************************************** --- --- IP-VersionType --- ---************************************************************** - -IP-VersionType ::= ENUMERATED { iPv4(0), iPv6(1) } - ---************************************************************** --- --- Increment-Mode --- ---************************************************************** - -Increment-Mode ::= ENUMERATED {incPerCFN-Cycle(0), notInc(1), incByOne-IncPerCFN-Cycle(2)} - ---************************************************************** --- --- IntegrityActivationInfo --- Comment DL or UL integrity activation info.At the RRC message sequence numbers specified in the ul-IntegProtActivationInfo the SS shall initialise COUNT-I for the SRB's indicated in the ul-IntegProtActivationInfo and start using the new configuration on uplink for the indicated SRB's.If the START value is omitted in the CRLC-SecurityMode-Config-REQ above COUNT-I initialisation shall not be performed. --- Type Definition --- ---************************************************************** - -IntegrityActivationInfo ::= CHOICE { - integrityProtectionModeInfo IntegrityProtectionModeInfo, - ul-IntegProtActivationInfo IntegrityProtActivationInfoList, - integrityProtectionModeInfo-r7 IntegrityProtectionModeInfo-r7 -} - ---************************************************************** --- --- IntegrityProtActivationInfoList --- List of SS IntegrityProtActivationInfo --- ---************************************************************** - -IntegrityProtActivationInfoList ::= SEQUENCE (SIZE (1..maxRB ) ) OF SS-IntegrityProtActivationTimeInfo - ---************************************************************** --- --- IntegrityResult --- ---************************************************************** - -IntegrityResult ::= CHOICE { - integrityNotUsed NULL, - integrityUsed IntegrityStatus -} - ---************************************************************** --- --- IntegrityStatus --- ---************************************************************** - -IntegrityStatus ::= ENUMERATED { - i-pass(0), - i-fail(1) -} - ---************************************************************** --- --- KeyCiphering --- ---************************************************************** - -KeyCiphering ::= BIT STRING (SIZE (128)) - ---************************************************************** --- --- SS-LogicalChannelList --- ---************************************************************** - -SS-LogicalChannelList ::= CHOICE -{ - allSizes NULL, - configured NULL, - explicitList SEQUENCE (SIZE (1..15)) OF SS-LogicalChannelByRB -} - ---************************************************************** --- --- SS-LogicalChannelByRB --- ---************************************************************** - -SS-LogicalChannelByRB ::= SEQUENCE -{ - rb-Identity INTEGER (-31..32), - logChOfRb INTEGER (0..1) OPTIONAL -} - ---************************************************************** --- --- LogicalChannelType --- ---************************************************************** - -LogicalChannelType ::= ENUMERATED -{ - bCCH (0), - pCCH (1), - cCCH (2), - cTCH (3), - dCCH (4), - dTCH (5), - sHCCH (6), - mTCH (7), - mCCH (8), - mSCH (9) -} - ---************************************************************** --- --- MAC-HeaderManipulation --- ---************************************************************** - -MAC-HeaderManipulation ::= ENUMERATED -{ - normalMacHeader (0), - omitMacHeader (1) -} - ---************************************************************** --- --- MimoAntennaConfigType --- ---************************************************************** - -MimoAntennaConfigType ::= ENUMERATED -{ - noMimo(0), - antenna2pCPICH(1), - antenna2sCPICH(2), - spare(3) -} - ---************************************************************** --- --- Mui --- ---************************************************************** - -Mui ::= INTEGER (0..4095) - ---************************************************************** --- --- PDSCHInfo-FDD --- ---************************************************************** - -PDSCHInfo-FDD ::= SEQUENCE { - fdd-tdd CHOICE { - fdd SEQUENCE { - pdsch-CodeMapping PDSCH-CodeMapping - } , - tdd SEQUENCE { -- TDD not applicable @sic R5-130314 sic@ - } - }, - dl-TxPower DL-TxPower -} - ---************************************************************** --- --- PDSCHInfo-TDD --- ---************************************************************** - -PDSCHInfo-TDD ::= SEQUENCE { - pdsch-Identity PDSCH-Identity, - pdsch-Info PDSCH-Info-r4, - pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL, - dl-TxPower DL-TxPower -} - ---************************************************************** --- --- PUSCHInfo --- TDD ---************************************************************** - -PUSCHInfo ::= SEQUENCE { - pusch-Identity PUSCH-Identity, - pusch-Info PUSCH-Info-r4, - pusch-PowerControlInfo PUSCH-PowerControlInfo-r4 OPTIONAL -} - ---************************************************************** --- --- PICHInfo-FDD --- ---************************************************************** - -PICHInfo-FDD ::= SEQUENCE { - pichinfo PICH-Info, - dl-TxPower PICH-PowerOffset, - sccpchId-associated INTEGER (0..32) -} - ---************************************************************** --- --- PICHInfo-TDD --- ---************************************************************** - -PICHInfo-TDD ::= SEQUENCE { - pichinfo PICH-Info-LCR-r4, - dl-TxPower PICH-PowerOffset, - sccpchId-associated INTEGER (0..32) -} - ---************************************************************** --- --- PRACHInfo-FDD --- ---************************************************************** - -PRACHInfo-FDD ::= SEQUENCE { - fdd-tdd CHOICE { - fdd SEQUENCE { - preambleSignature AvailableSignatures, - spreadingFactorForDataPart SF-PRACH, - preambleScramblingCode PreambleScramblingCodeWordNumber, - puncturingLimit PuncturingLimit, - accessSlot AvailableSubChannelNumbers - }, - tdd SEQUENCE { -- TDD not applicable @sic R5-140314 sic@ - }, - fdd-prachForEnhUL SEQUENCE { -- Rel-8 or later - -- For rel-99 PRACH - preambleSignature AvailableSignatures, - spreadingFactorForDataPart SF-PRACH, - preambleScramblingCode PreambleScramblingCodeWordNumber, - puncturingLimit PuncturingLimit, - accessSlot AvailableSubChannelNumbers, - - -- For for Enhanced Uplink E-DCH transmission - commonEDCH-PreambleSignature AvailableSignatures, - -- access preamble signature for E-DCH transmission - commonEDCH-PreambleScramblingCode PreambleScramblingCodeWordNumber, - commonEDCH-AccessSlot AvailableSubChannelNumbers - } - - } -} - ---************************************************************** --- --- PRACHInfo-TDD --- ---************************************************************** - -PRACHInfo-TDD ::= SEQUENCE { - pRACH-RACH-Info-LCR-r4 PRACH-RACH-Info-LCR-r4, - accessServiceClass-TDD-LCR AccessServiceClass-TDD-LCR-r4, - fPACH-Power DL-TxPower -} - ---************************************************************** --- --- PayloadSize --- ---************************************************************** - -PayloadSize ::= INTEGER (0..4992) - ---************************************************************** --- --- PhysicalChannelIdentity --- ---************************************************************** - -PhysicalChannelIdentity ::= INTEGER (0..31) - ---************************************************************** --- --- PrimaryCCPCHInfo-FDD --- ---************************************************************** - -PrimaryCCPCHInfo-FDD ::= SEQUENCE { - sttd-Indicator BOOLEAN, - dl-TxPower DL-TxPower - -- timeSlot TimeSlot OPTIONAL, - -- burstType BurstType OPTIONAL, - -- offset Offset OPTIONAL, - -- repetitionPeriod RepetitionPeriod OPTIONAL, - -- repetitionLength RepetitionLength OPTIONAL, -} - ---************************************************************** --- --- PrimaryCCPCHInfo-TDD --- ---************************************************************** - -PrimaryCCPCHInfo-TDD ::= SEQUENCE { - sctd-Indicator ENUMERATED {notApplied(0),applied(1)}, - tstd-Indicator ENUMERATED {notApplied(0),applied(1)}, - commonTimeSlotInfo CommonTimeslotInfo, - dL-TxPower-PCCPCH DL-TxPower-PCCPCH, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-134957 sic@ -} ---************************************************************** --- --- PrimaryCPICHInfo --- ---************************************************************** - -PrimaryCPICHInfo ::= SEQUENCE { - dl-TxPower-PCPICH DL-TxPower-PCPICH, - txdiversityIndicator BOOLEAN, - mimoAntenna2CPICH MimoAntennaConfigType DEFAULT noMimo, - dC-SecondaryServingCell BOOLEAN DEFAULT FALSE, -- Rel-8 or later - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- PrimarySCHInfo --- ---************************************************************** - -PrimarySCHInfo ::= SEQUENCE { - tstdIndicator BOOLEAN, - dl-TxPower DL-TxPower -} - ---************************************************************** --- --- RBInfo --- ---************************************************************** - -RBInfo ::= SEQUENCE { - sS-rlc-Info SS-RLC-Info OPTIONAL, - sS-rlc-Info-r8 SS-RLC-Info-r8OrLater OPTIONAL, - rB-LogCH-Mapping RB-LogCH-Mapping, - relAspTypeExtension SEQUENCE{} OPTIONAL -- @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- RBInfo-TDD --- ---************************************************************** - -RBInfo-TDD ::= SEQUENCE { - sS-rlc-Info SS-RLC-Info-TDD OPTIONAL, - sS-rlc-Info-r8 SS-RLC-Info-r8OrLater-TDD OPTIONAL, - rB-LogCH-Mapping RB-LogCH-Mapping, - relAspTypeExtension SEQUENCE {} OPTIONAL -- Rel-10 or later @sic R5-134957 R5w130320 sic@ -} - ---************************************************************** --- --- RB-ConfigType --- ---************************************************************** - -RB-ConfigType ::= ENUMERATED { - cell-NotConfigured (0), - -- Configurations on DPCH - cell-DCH-StandAloneSRB-NoConn (1), - cell-NoDPCH (2), - cell-DCH-StandAloneSRB (3), - cell-DCH-Speech (4), - cell-DCH-64kPS-RAB-SRB (7), - cell-DCH-2AM-PS (17), - -- Configurations on FACH - cell-FACH-NoConn (18), - cell-FACH (19), - cell-FACH-NoDedicated (20), - cell-FACH-PS (21), - cell-Four-DTCH-PS-CS (44) , - cell-DCH-HS-DSCH(63), - cell-FACH-HS(64), - cell-DCH-64kPS-RAB-SRB-HS(65), - -- E-DCH configurations - cell-DCH-E-HS (84), - cell-DCH-dlSRB-E-HS (85), - cell-E-HS (86), - cell-E-HS-StandAloneSRB (98), - cell-DCH-64kPS-AM-RAB (101), - cell-SecondaryDualCell-SRB (118), - cell-SecondaryDualCell-RAB (119), - cell-SecondaryDualCell-NoConn (123) -} - ---************************************************************** --- --- RB-LogCH-Mapping --- Provide mapping information between RB, logical channel and CN domain. --- When the logical channel is MTCH, the logicalChannelIdentity shall be consistent with MBMS-LogicalChIdentity in MBMS-PTM-RBInformation-N and MBMS-PTM-RBInformation-C being sent to the UE. --- ---************************************************************** - -RB-LogCH-Mapping ::= SEQUENCE { - uLlogicalChannelIdentity LogicalChannelIdentity OPTIONAL, - dLlogicalChannelIdentity LogicalChannelIdentity OPTIONAL, - logicalChannelType LogicalChannelType OPTIONAL, - cn-DomainIdentity CN-DomainIdentity OPTIONAL -} - ---************************************************************** --- --- RLC-IncMode --- ---************************************************************** - -RLC-IncMode ::= ENUMERATED {notInc(0), inc(1)} - ---************************************************************** --- --- RL-Information-FDD --- The range for powerOffsetOfTPC-PO2 and powerOffsetOfTFCI-PO1 and powerOffsetOfPILOT-PO3 is 0 dB to 6 dB, 0,25 dB per step. --- The IE cfnTgtSfnFrameOffset is applied when adding another RL or moving the UE to another cell in DCH state in the timing-maintained hard handover or in the softhandover. The cfnTgtSfnFrameOffset is defined as being the time difference between the CFN and the SFN of the cell in which the RL is to be added. --- The use of cfnTgtSfnFrameOffset and DOFF (Default DPCH Offset Value) is mutually exclusive. The IE cfnTgtSfnFrameOffset is omitted when configuring the 1st RL, or configuring the RL in the timing re-initialised hard handover where the required synchronisation information is provided in defaultDPCH-offsetValue in DL-CommonInformation. --- In addition, TmTgt value is provided to dpch-FrameOffset in DL-DPCH-InfoPerRL-r5 or DL-DPCH-InfoPerRL-r6 as CFNchipOffset-Tgt. TmTgt can be observed by the UE, or calculated by the TTCN. If it is calculated, --- TmTgt = (DOFF*512 + 38400 + TCell-Ref - TCell-Tgt) Mod 38400 --- ---************************************************************** - -RL-Information-FDD ::= SEQUENCE { - powerOffsetOfTFCI-PO1 INTEGER (0..24), - powerOffsetOfTPC-PO2 INTEGER (0..24), - powerOffsetOfPILOT-PO3 INTEGER (0..24), --OPTIONAL, @sic R5-112477r1, FDD-TDD allignment sic@ - dl-TxPower DL-TxPower, - dl-TxPowerMax DL-TxPower, - dl-TxPowerMin DL-TxPower, - cfnTgtSfnFrameOffset CfnTgtSfnFrameOffset OPTIONAL, - dl-FDPCH-ShoConfig BOOLEAN DEFAULT FALSE -- Rel6 or later -} - ---************************************************************** --- --- RL-Information-TDD --- The range for powerOffsetOfTPC-PO2 and powerOffsetOfTFCI-PO1 and powerOffsetOfPILOT-PO3 is 0 dB to 6 dB, 0,25 dB per step. --- The IE cfnTgtSfnFrameOffset is applied when adding another RL or moving the UE to another cell in DCH state in the timing-maintained hard handover or in the softhandover. The cfnTgtSfnFrameOffset is defined as being the time difference between the CFN and the SFN of the cell in which the RL is to be added. --- The use of cfnTgtSfnFrameOffset and DOFF (Default DPCH Offset Value) is mutually exclusive. The IE cfnTgtSfnFrameOffset is omitted when configuring the 1st RL, or configuring the RL in the timing re-initialised hard handover where the required synchronisation information is provided in defaultDPCH-offsetValue in DL-CommonInformation. --- In addition, TmTgt value is provided to dpch-FrameOffset in DL-DPCH-InfoPerRL-r5 or DL-DPCH-InfoPerRL-r6 as CFNchipOffset-Tgt. TmTgt can be observed by the UE, or calculated by the TTCN. If it is calculated, --- TmTgt = (DOFF*512 + 38400 + TCell-Ref - TCell-Tgt) Mod 38400 --- ---************************************************************** - -RL-Information-TDD ::= SEQUENCE { - powerOffsetOfTFCI-PO1 INTEGER (0..24), - powerOffsetOfTPC-PO2 INTEGER (0..24), - powerOffsetOfPILOT-PO3 INTEGER (0..24), --OPTIONAL, @sic R5-112477r1, FDD-TDD allignment sic@ - dl-TxPower DL-TxPower, - dl-TxPowerMax DL-TxPower, - dl-TxPowerMin DL-TxPower, - cfnTgtSfnFrameOffset CfnTgtSfnFrameOffset OPTIONAL, - dL-TimeslotISCPInfoLCR TimeslotListWithISCP OPTIONAL -} - ---************************************************************** --- --- RRC-Rel-Status --- ---************************************************************** - -RRC-Rel-Status ::= ENUMERATED { - cell-Dch(0), - cell-Fach-Dcch(1), - cell-Fach-Ccch(2) -} - ---************************************************************** --- --- RRC-SequenceNumber --- 4 bits long --- ---************************************************************** - -RRC-SequenceNumber ::= INTEGER (0..15 ) - ---************************************************************** --- --- RRC-ServTested --- ---************************************************************** - -RRC-ServTested ::= ENUMERATED { - speech (0), - conversational-64k (1), - streaming-57-6k (2), - ps-Interactive (3), - ps-Background (4), - ps-Streaming (5), - ps-SubscribedTrafficClass (6) -- @sic R5s110771 sic@ - -} - ---************************************************************** --- --- RatType --- To select route between each channels --- ---************************************************************** - -RatType ::= ENUMERATED { - fdd(0), - tdd128(1) -- @sic R5-134957 sic@ -} - ---************************************************************** --- --- RegOr-MO --- ---************************************************************** - -RegOr-MO ::= ENUMERATED { - est-Reg(0), - est-MO(1), - est-MT(2) -} - ---************************************************************** --- --- RoutingInfo --- ---************************************************************** - -RoutingInfo ::= CHOICE { - physicalChannelIdentity INTEGER (0..31), - transportChannelIdentity TransportChannelIdentity, - logicalChannelIdentity LogicalChannelIdentity, - rB-Identity INTEGER (-31..32), - cn-DomainIdentity CN-DomainIdentity -} - ---************************************************************** --- --- ServingAndSecondaryCellActivation-Type --- ---************************************************************** - -ServingAndSecondaryCellActivation-Type ::= SEQUENCE { - servingCellId INTEGER(0..63), - secondaryCellId INTEGER(0..63), - secondaryServing-HS-DSCH-Cell ENUMERATED { deactivated (0), activated (1) } DEFAULT deactivated -} - ---************************************************************** --- --- CmacConfigReq-r10OrLaterExtensionType --- Applicable Rel-10 or later --- servingSecondaryCells is provided in 4C configurations --- ---************************************************************** -CmacConfigReq-r10OrLaterExtensionType ::= CHOICE { - rel10-AspExt SEQUENCE { - servingSecondaryCells SEQUENCE { -- 3C/4C HSDPA configuration - servingCellId INTEGER(0..63), - secondaryCellActivationList SecondaryCellActivationList-Type - } OPTIONAL - } -} - ---************************************************************** --- --- SecondaryCellActivationList-Type --- ---************************************************************** -SecondaryCellActivationList-Type ::= SEQUENCE (SIZE (1..3)) OF SecondaryCellActivation-Type - ---************************************************************** --- --- SecondaryCellActivation-Type --- ---************************************************************** -SecondaryCellActivation-Type ::= SEQUENCE { - secondaryCellId INTEGER(0..63), - secondaryServingStatus ENUMERATED { deactivated (0), activated (1) } - DEFAULT deactivated -} - ---************************************************************** --- --- SCCPCHSlotFormat --- Reference to TS25.211 --- ---************************************************************** - -SCCPCHSlotFormat ::= INTEGER (0..17) - ---************************************************************** --- --- SIB --- Union of all system information blocks --- ---************************************************************** - -SIB ::= CHOICE { - sIB1 SysInfoType1, - sIB2 SysInfoType2, - sIB3 SysInfoType3, - sIB4 SysInfoType4, - sIB5 SysInfoType5, - sIB6 SysInfoType6, - sIB7 SysInfoType7, - sIB8 SysInfoType8, - sIB9 SysInfoType9, - sIB10 SysInfoType10, - sIB11 SysInfoType11, - sIB12 SysInfoType12, - sIB13 SysInfoType13, - sIB13-1 SysInfoType13-1, - sIB13-2 SysInfoType13-2, - sIB13-3 SysInfoType13-3, - sIB13-4 SysInfoType13-4, - sIB14 SysInfoType14, - sIB15 SysInfoType15, - sIB15-1 SysInfoType15-1, - sIB15-2 SysInfoType15-2, - sIB15-3 SysInfoType15-3, - sIB16 SysInfoType16, - sIB17 SysInfoType17, - sIB18 SysInfoType18, - mIB MasterInformationBlock, - sB1 SysInfoTypeSB1, - sB2 SysInfoTypeSB2, - sIB11bis SysInfoType11bis -} - ---************************************************************** --- --- SS-ActivationTime --- ---************************************************************** - -SS-ActivationTime ::= CHOICE { - activationCFN ActivationTime, - activateNow NULL -} - ---************************************************************** --- --- SS-AddOrReconfMAC-dFlow --- Applicable Rel-5 or later. --- ---************************************************************** - -SS-AddOrReconfMAC-dFlow ::= SEQUENCE { - mac-hs-AddReconfQueue-List SEQUENCE (SIZE(1..maxQueueIDs)) OF SEQUENCE { - mac-hs-AddReconfQueue SS-MAC-hs-AddReconfQueue } OPTIONAL, - mac-hs-DelQueue-List SEQUENCE (SIZE(1..maxQueueIDs)) OF SEQUENCE { - mac-hsQueueId INTEGER(0..7) - } OPTIONAL -} - ---************************************************************** --- --- SS-Common-MAC-ehs-ReorderingQueue --- ---************************************************************** - -SS-Common-MAC-ehs-ReorderingQueue ::= SEQUENCE -{ - common-MAC-ehs-ReorderingQueue Common-MAC-ehs-ReorderingQueue, - priority INTEGER (0..7) -} - ---************************************************************** --- --- SS-Common-MAC-ehs-ReorderingQueueList --- ---************************************************************** - -SS-Common-MAC-ehs-ReorderingQueueList ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF SS-Common-MAC-ehs-ReorderingQueue - - ---************************************************************** --- --- SS-DL-LogicalChannelMapping --- If the macHeaderManipulation field is 'NormalMacHeader', then data transmitted on this logical channel shall have an appropriate MAC header added before it is sent to lower layers for transmission. --- If the macHeaderManipulation field is 'OmitMacHeader', then data transmitted on this logical channel shall not have any MAC header information added, even if the logical channel type and mapping indicates that there should be a MAC header present. This allows the entire MAC PDU to be specified in the TTCN, so individual fields in the MAC header can be modified. --- When used for DTCH mapping to MAC-d flow, rlc-SizeList shall choose "configured" according to the configured mAChsAddReconfQueue valules. --- When the logical channel is MTCH, the logicalChannelIdentity shall be consistent with MBMS-LogicalChIdentity in MBMS-PTM-RBInformation-N and MBMS-PTM-RBInformation-C. --- ---************************************************************** - -SS-DL-LogicalChannelMapping ::= SEQUENCE { - macHeaderManipulation MAC-HeaderManipulation, - dl-TransportChannelType SS-DL-TransportChannelType, - logicalChannelIdentity LogicalChannelIdentity, - logicalChannelType LogicalChannelType , - rlc-SizeList CHOICE { - allSizes NULL, - configured NULL, - explicitList RLC-SizeExplicitList - }, - mac-LogicalChannelPriority MAC-LogicalChannelPriority OPTIONAL -} - ---************************************************************** --- --- SS-DL-RLC-Mode --- "dl-UM-outOfSeqDelivery" is present only for the DL-RLC entity connected to MCCH, and in the configuration with dl-UM-outOfSeqDelivery present the UM RLC can transmit RLC PDU containing SDU of ACCESS INFORMATION message out of sequence when it is necessary --- ---************************************************************** - -SS-DL-RLC-Mode ::= SEQUENCE { - dl-PayloadSize PayloadSize OPTIONAL, - dl-RLCModeInfo UL-RLC-Mode, - dl-UM-RLC-LI-size DL-UM-RLC-LI-size OPTIONAL, -- only for UM RLC configuration - dl-UM-outOfSeqDelivery UM-RLC-OutOSeqDelivery-Info-r6 OPTIONAL, - dl-RLC-PDU-size CHOICE { - fixedSize OctetModeRLC-SizeInfoType1, - flexibleSize SS-FlexibleSize - } OPTIONAL -} - ---************************************************************** --- --- SS-FlexibleSize --- ---************************************************************** -SS-FlexibleSize ::= SEQUENCE { - li-Size ENUMERATED { size7 (0), size15 (1)}, -- Size of length indicator - max-RLC-DataField-Size INTEGER (1..1503) OPTIONAL - -- Maximum size of data field of RLC PDU (25.322, 9.2.2.9 and 25.433, 9.2.1.38c) -} - ---************************************************************** --- --- SS-DL-TransportChannelType --- ---************************************************************** - -SS-DL-TransportChannelType ::= ENUMERATED { - dch(0), - fach(1), - bch(2), - pch(3), - dsch(4), - hsdsch(5) -- Rel-5 or later -} - ---************************************************************** --- --- SS-DRX-MAC-Info --- ---************************************************************** -SS-DRX-MAC-Info ::= SEQUENCE { - mac-InactivityThreshold MAC-InactivityThreshold, - mac-dtx-Cycle-2ms MAC-DTX-Cycle-2ms OPTIONAL, - mac-dtx-Cycle-10ms MAC-DTX-Cycle-10ms OPTIONAL, - timingInfo NewTiming -} - - ---************************************************************** --- --- SS-E-AGCH-Info-FDD --- Rel-6 or later. --- ---************************************************************** - -SS-E-AGCH-Info-FDD ::= CHOICE { - r6 SEQUENCE { - e-AGCHInfo E-AGCH-Information, - tti E-DCH-TTI, - e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) - -- Offset relative to P-CPICH - e-RNTI-Primary E-RNTI OPTIONAL, - e-RNTI-Secondary E-RNTI OPTIONAL, - ss-DTX-Info DRX-Info OPTIONAL, - sttdIndicator BOOLEAN DEFAULT FALSE -- @sic R5-120613 sic@ - }, - r8 SEQUENCE { - e-AGCHInfo E-AGCH-Information-r8, - tti E-DCH-TTI, - e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) - -- Offset relative to P-CPICH - e-RNTI-Primary E-RNTI OPTIONAL, - e-RNTI-Secondary E-RNTI OPTIONAL, - ss-DTX-Info DRX-Info OPTIONAL, - initialServingGrantValue INTEGER (0..37) OPTIONAL, - sttdIndicator BOOLEAN DEFAULT FALSE -- @sic R5-120613 sic@ - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-130613 sic@ -} - ---************************************************************** --- --- SS-E-AGCH-Info-TDD --- Rel-7 or later.SS-E-AGCH-Info in TTCN-2 --- ---************************************************************** - -SS-E-AGCH-Info-TDD ::= CHOICE { - r7 SEQUENCE { - e-AGCH-ID-TDD INTEGER (0..255), - e-AGCHInfo E-AGCH-Information-r7, - e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) - -- Offset relative to P-CPICH - maximum-E-AGCH-Power INTEGER (-350..150), - carrier-Frequency UARFCN OPTIONAL, - e-RNTI E-RNTI OPTIONAL, -- @sic R5w140013 sic@ - ss-DTX-Info DRX-Info OPTIONAL - }, - r8 SEQUENCE { - e-AGCH-ID-TDD INTEGER (0..255), - e-AGCHInfo E-AGCH-Information-r8, - e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) - -- Offset relative to P-CPICH - maximum-E-AGCH-Power INTEGER (-350..150), - carrier-Frequency UARFCN OPTIONAL, - e-RNTI E-RNTI OPTIONAL, - ss-E-AGCH-DRX-Info E-AGCH-DRX-Info-TDD128 OPTIONAL --@sic R5w140013 sic@ - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- SS-E-DPCH-Info --- Rel-6 or later. --- If there is an UL-DPCH configured in the cell the E-DPCH shall use the same scramblingCodeType and scramblingCode as the UL-DPCH --- ---************************************************************** - -SS-E-DPCH-Info-r6OrLater ::= CHOICE { - r6 SEQUENCE { - e-DPCCH-Info E-DPCCH-Info, - e-DPDCH-Info E-DPDCH-Info, - scramblingCodeType ScramblingCodeType OPTIONAL, - scramblingCode UL-ScramblingCode OPTIONAL, - tti E-DCH-TTI OPTIONAL, - edch-PhysicalLayerCategory INTEGER (1..16) - }, - r7 SEQUENCE { - e-DPCCH-Info E-DPCCH-Info-r7, - e-DPDCH-Info E-DPDCH-Info-r7, - scramblingCodeType ScramblingCodeType OPTIONAL, - scramblingCode UL-ScramblingCode OPTIONAL, - tti E-DCH-TTI OPTIONAL, - edch-PhysicalLayerCategory INTEGER (1..16) OPTIONAL, - edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL - }, - r8 SEQUENCE { - e-DPCCH-Info E-DPCCH-Info-r7, - e-DPDCH-Info E-DPDCH-Info-r8, - scramblingCodeType ScramblingCodeType OPTIONAL, - scramblingCode UL-ScramblingCode OPTIONAL, - tti E-DCH-TTI OPTIONAL, - edch-PhysicalLayerCategory INTEGER (1..16) OPTIONAL, - edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL, - s-offset INTEGER (0..9) OPTIONAL -- Used for enhFACH UL - }, - r9 SEQUENCE { -- @sic R5s110175 sic@ - e-DPCCH-Info E-DPCCH-Info-r7, - e-DPDCH-Info E-DPDCH-Info-r8, - scramblingCodeType ScramblingCodeType OPTIONAL, - scramblingCode UL-ScramblingCode OPTIONAL, - tti E-DCH-TTI OPTIONAL, - edch-PhysicalLayerCategory INTEGER (1..16) OPTIONAL, - edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL, - edch-PhysicalLayerCategory-extension2 INTEGER (8..9) OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL, - s-offset INTEGER (0..9) OPTIONAL -- Used for enhFACH UL - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-130613 sic@ - } - ---************************************************************** --- --- SS-E-DCH-Info-r7 --- Rel-7 or later. --- TDD ---************************************************************** - -SS-E-DCH-Info-r7 ::= SEQUENCE { - e-RUCCH-Info E-RUCCH-Info OPTIONAL, - e-PUCH-Info SS-E-PUCH-Info OPTIONAL -} - ---************************************************************** --- --- SS-E-PUCH-Info --- Rel-7 or later. --- TDD ---************************************************************** - -SS-E-PUCH-Info ::= SEQUENCE { - lTGI-Presence BOOLEAN, - e-TFCS-Info E-TFCS-Info, - snpl-ReportType ENUMERATED {type1(0), type2(1)}, - prxBASEdes INTEGER (-112..-50 ), - beaconPLEst BOOLEAN OPTIONAL, - tpc-StepSize TPC-StepSizeTDD, - pebase-PowerControlGAP PowerControlGAP OPTIONAL, - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - minimum-Allowed-Code-Rate INTEGER (0..63 ), - maximum-Allowed-Code-Rate INTEGER (0..63 ), - maximumNumOfRetransSchedInfo INTEGER (0..15 ), - retransTimerForSchedInfo ENUMERATED {ms10(0), ms15(1), ms20(2), ms25(3), ms30(4), ms35(5), ms40(6), ms45(7), ms50(8), ms55(9), ms60(10), ms65(11), ms70(12), ms75(13), ms80(14), ms85(15), ms90(16), ms95(17), ms100(18), ms110(19), ms120(20), ms140(21), ms160(22), ms200(23), ms240(24), ms280(25), ms320(26), ms400(27), ms480(28), ms560(29)}, - powerOffsetForSchedInfo INTEGER (0..6 ) OPTIONAL, - e-DCH-phyLayCategory INTEGER (1..6 ) OPTIONAL, - e-PUCH-TS-Information-per-UARFCN SEQUENCE (SIZE (1..maxTS-LCR-1)) OF SS-E-PUCH-Timeslot-Info, - carrier-Frequency UARFCN OPTIONAL -} - ---************************************************************** --- --- SS-E-PUCH-Timeslot-Info --- Rel-7 or later TDD. --- ---************************************************************** -SS-E-PUCH-Timeslot-Info ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - midambleAllocationMode CHOICE - { - defaultMidamble NULL, - ueSpecificMidamble INTEGER (0..15 ) - }, - midambleConfiguration INTEGER (1..8 ), - channelisation-Code UL-TS-ChannelisationCode - } - ---************************************************************** --- --- SS-E-HICH-Info --- Rel-6 or later. --- ---************************************************************** - -SS-E-HICH-Info ::= SEQUENCE { - e-HICHInfo E-HICH-Information OPTIONAL, -- @sic R5s110175 sic@ - e-HICHInfoCommonEDCH E-HICH-Information-CommonEdch OPTIONAL, -- @sic R5s110175 sic@ - tti E-DCH-TTI, - e-HICH-PowerOffset INTEGER (0..255), - -- PowerOffset = -32 + offset * 0.25 - -- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB - -- (25.433, 9.2.2.13Id), offset relative to P-CPICH - sttdIndicator BOOLEAN DEFAULT FALSE, -- @sic R5-120613 sic@ - relAspTypeExtension SS-E-HICH-Info-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- SS-E-HICH-Info-TDD --- Rel-7 or later. SS-E-HICH-Info in TTCN-2 --- ---************************************************************** - -SS-E-HICH-Info-TDD ::= SEQUENCE { - n-E-HICH INTEGER (4..15 ), - maximum-E-HICH-Power INTEGER (-350..150), - e-HICHInfoList SS-E-HICH-Info-List -} - ---************************************************************** --- --- SS-E-HICH-Info-List --- Rel-7 or later. --- TDD ---************************************************************** - -SS-E-HICH-Info-List ::= SEQUENCE (SIZE (1..maxNumE-HICH ) ) OF - SS-E-HICH-Info-LCR - ---************************************************************** --- --- SS-E-HICH-Info-LCR --- Rel-7 or later. --- TDD ---************************************************************** - -SS-E-HICH-Info-LCR ::= SEQUENCE { - e-HICH-ID-TDD INTEGER (0..255), - e-HICH-Type ENUMERATED {scheduled(0), non-scheduled(1)}, - e-HICHInfo E-HICH-Information-LCR, - carrier-Frequency UARFCN OPTIONAL, - e-HICH-PowerOffset INTEGER (0..255) - -- PowerOffset = -32 + offset * 0.25 - -- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB - -- (25.433, 9.2.2.13Id), offset relative to P-CPICH -} - ---************************************************************** --- --- SS-E-HICH-Info-r10OrLaterExtensionType --- Rel-11 or later. --- Only one of e-HICHInfo, e-HICHInfoCommonEDCH or e-HICHInfo-r11 can be present ---************************************************************** -SS-E-HICH-Info-r10OrLaterExtensionType ::= CHOICE { - rel11-AspExt SEQUENCE { - e-HICHInfo-r11 E-HICH-Information-r11 OPTIONAL - } -} - - ---************************************************************** --- --- SS-E-RGCH-Info --- Rel-6 or later. --- Presence of ss-DTX-Info indicates DL-DRX is enabled and SS shall transmit any requested RGCH only in occasions when UE is going to listen. --- Only one of e-RGCHInfo and e-RGCHInfoCommonEDCH can be present ---************************************************************** - -SS-E-RGCH-Info ::= SEQUENCE { - e-RGCHInfo E-RGCH-Information OPTIONAL, -- @sic R5s110175 sic@ - e-RGCHInfoCommonEDCH E-RGCH-Information-CommonEdch OPTIONAL, -- @sic R5s110175 sic@ - tti E-DCH-TTI , - e-RGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13Ie) - -- Offset relative to P-CPICH, - ss-DTX-Info DRX-Info OPTIONAL, - sttdIndicator BOOLEAN DEFAULT FALSE, -- @sic R5-120613 sic@ - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 sic@ -} - ---************************************************************** --- --- SS-IntegrityProtActivationTimeInfo --- Omitting rrc-MessageSequenceNumber means activation time set to "now". --- ---************************************************************** - -SS-IntegrityProtActivationTimeInfo ::= SEQUENCE -{ - rb-Identity INTEGER (-31..32), - rrc-MessageSequenceNumber RRC-MessageSequenceNumber OPTIONAL -} - ---************************************************************** --- --- SS-MAC-ehs-AddReconfReordQ --- ---************************************************************** - -SS-MAC-ehs-AddReconfReordQ ::= SEQUENCE -{ - mAC-ehs-AddReconfReordQ MAC-ehs-AddReconfReordQ, - priority INTEGER (0..7) -} - ---************************************************************** --- --- SS-MAC-ehs-AddReconfReordQ-r9 --- ---************************************************************** - -SS-MAC-ehs-AddReconfReordQ-r9 ::= SEQUENCE -{ - mAC-ehs-AddReconfReordQ MAC-ehs-AddReconfReordQ-r9, - priority INTEGER (0..7) -} - ---************************************************************** --- --- SS-MAC-ehs-AddReconfReordQ-r11 --- Applicable Rel-11or later --- The priority of PriorityQueue shall set according to the priority of logical channels which is mapped on to this priority queue. --- NOTE: The range of priority of PriorityQueue is from 0 to 7 and 0 is the lowest priority. ---************************************************************** -SS-MAC-ehs-AddReconfReordQ-r11 ::= SEQUENCE { - mAC-ehs-AddReconfReordQ MAC-ehs-AddReconfReordQ-r11, - priority INTEGER(0..7) -} - - ---************************************************************** --- --- SS-MAC-ehs-AddReconfReordQueueList --- ---************************************************************** - -SS-MAC-ehs-AddReconfReordQueueList ::= SEQUENCE (SIZE (1..maxQueueIDs)) OF SS-MAC-ehs-AddReconfReordQ - ---************************************************************** --- --- SS-MAC-ehs-AddReconfReordQueueList-r9 --- ---************************************************************** - -SS-MAC-ehs-AddReconfReordQueueList-r9 ::= SEQUENCE (SIZE (1..maxQueueIDs)) OF SS-MAC-ehs-AddReconfReordQ-r9 - ---************************************************************** --- --- SS-MAC-ehs-AddReconfReordQueueList-r11 --- Applicable Rel-11 or later ---************************************************************** - -SS-MAC-ehs-AddReconfReordQueueList-r11 ::= SEQUENCE (SIZE (1..maxQueueIDs)) OF SS-MAC-ehs-AddReconfReordQ-r11 - ---************************************************************** --- --- SS-MAC-hs-AddReconfQueue --- Applicable Rel-5 or later. --- When writing TTCN constraints the TTCN writer shall set the priority of PriorityQueue in this object correctly acoording to the priority of logical channels which is mapped on to this priority queue. --- And please note that : the range of priority of PriorityQueue is from 0 to 7 and 0 is the lowest priority. --- ---************************************************************** - -SS-MAC-hs-AddReconfQueue ::= SEQUENCE { - mAChsAddReconfQueue MAC-hs-AddReconfQueue, - logicalChannelList SEQUENCE OF LogicalChannelIdentity, - -- logical channels mapping onto the priority queue - -- which is specified in maChsAddReconfQueue - priority INTEGER(0..7), - discardTimer ENUMERATED { v20(0),v40(1),v60(2),v80(3),v100(4), - v120(5),v140(6),v160(7),v180(8),v200(9), - v250(10),v300(11),v400(12),v500(13), - v750(14),v1000(15),v1250(16),v1500(17), - v1750(18),v2000(19),v2500(20),v3000(21), - v3500(22),v4000(23),v4500(24),v5000(25), - v7500(26) - } OPTIONAL -} - ---************************************************************** --- --- SS-RLC-Info --- UL and DL have been swapped intentionally in this type definition. This is to maximize re-use of the type definitions in 3GPP TS 25.331 which are intended to configure a UE, where UL is transmission, and DL is reception. For the SS, UL is reception, and DL is transmission. --- For example, consider configuring a DL AM RLC entity (transmitter) in the SS. The transmission parameters to be configured include PollingInformation, Transmission-RLC-Discard etc. If the DL-AM-RLC-Mode type definition is used to configure this entity, it is only possible to configure reception parameters such as StatusInformation, and receiving window size. --- By swapping UL and DL, it is possible to configure the DL AM RLC entity using the existing type definition UL-AM-RLC-Info, which contains all of the required transmission parameters. --- ---************************************************************** - -SS-RLC-Info ::= SEQUENCE { - sS-ul-RLC-Mode DL-RLC-Mode OPTIONAL, - sS-dl-RLC-Mode SS-DL-RLC-Mode OPTIONAL, - rlc-OneSidedReEst BOOLEAN DEFAULT FALSE, - altE-bitInterpretation ENUMERATED {false (0), true (1)} DEFAULT false, - useSpecialValueOfHEField ENUMERATED {false (0), true (1)} DEFAULT false, - uM-SN-DeliveryMode ENUMERATED { nonConfigured(0), configured(1)} DEFAULT nonConfigured -} - ---************************************************************** --- --- SS-RLC-Info-TDD --- UL and DL have been swapped intentionally in this type definition. This is to maximize re-use of the type definitions in 3GPP TS 25.331 which are intended to configure a UE, where UL is transmission, and DL is reception. For the SS, UL is reception, and DL is transmission. --- For example, consider configuring a DL AM RLC entity (transmitter) in the SS. The transmission parameters to be configured include PollingInformation, Transmission-RLC-Discard etc. If the DL-AM-RLC-Mode type definition is used to configure this entity, it is only possible to configure reception parameters such as StatusInformation, and receiving window size. --- By swapping UL and DL, it is possible to configure the DL AM RLC entity using the existing type definition UL-AM-RLC-Info, which contains all of the required transmission parameters. --- ---************************************************************** - -SS-RLC-Info-TDD ::= SEQUENCE { - sS-ul-RLC-Mode DL-RLC-Mode OPTIONAL, - sS-ul-PayloadSize PayloadSize OPTIONAL, - sS-dl-RLC-Mode SS-DL-RLC-Mode OPTIONAL, - rlc-OneSidedReEst BOOLEAN DEFAULT FALSE, - altE-bitInterpretation ENUMERATED {false (0), true (1)} DEFAULT false, - useSpecialValueOfHEField ENUMERATED {false (0), true (1)} DEFAULT false, - uM-SN-DeliveryMode ENUMERATED { nonConfigured(0), configured(1)} DEFAULT nonConfigured - -} - ---************************************************************** --- --- SS-RLC-Info-r8OrLater --- Applicable for r8OrLater --- UL and DL have been swapped intentionally in this type definition. This is to maximize re-use of the type definitions in 3GPP TS 25.331 which are intended to configure a UE, where UL is transmission, and DL is reception. For the SS, UL is reception, and DL is transmission. --- For example, consider configuring a DL AM RLC entity (transmitter) in the SS. The transmission parameters to be configured include PollingInformation, Transmission-RLC-Discard etc. If the DL-AM-RLC-Mode type definition is used to configure this entity, it is only possible to configure reception parameters such as StatusInformation, and receiving window size. --- By swapping UL and DL, it is possible to configure the DL AM RLC entity using the existing type definition UL-AM-RLC-Info, which contains all of the required transmission parameters. --- ---************************************************************** - -SS-RLC-Info-r8OrLater ::= CHOICE { -r8 SEQUENCE { - sS-ul-RLC-Mode DL-RLC-Mode-r7 OPTIONAL, - sS-dl-RLC-Mode SS-DL-RLC-Mode OPTIONAL, - rlc-OneSidedReEst BOOLEAN DEFAULT FALSE, - altE-bitInterpretation ENUMERATED {false (0), true (1)} DEFAULT false, - useSpecialValueOfHEField ENUMERATED {false (0), true (1)} DEFAULT false, - uM-SN-DeliveryMode ENUMERATED { nonConfigured(0), configured(1)} DEFAULT nonConfigured -}, -relAspTypeExtension SS-RLC-Info-r10OrLaterExtensionType -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- SS-RLC-Info-r8OrLater-TDD --- Applicable for r8OrLater --- UL and DL have been swapped intentionally in this type definition. This is to maximize re-use of the type definitions in 3GPP TS 25.331 which are intended to configure a UE, where UL is transmission, and DL is reception. For the SS, UL is reception, and DL is transmission. --- For example, consider configuring a DL AM RLC entity (transmitter) in the SS. The transmission parameters to be configured include PollingInformation, Transmission-RLC-Discard etc. If the DL-AM-RLC-Mode type definition is used to configure this entity, it is only possible to configure reception parameters such as StatusInformation, and receiving window size. --- By swapping UL and DL, it is possible to configure the DL AM RLC entity using the existing type definition UL-AM-RLC-Info, which contains all of the required transmission parameters. --- ---************************************************************** - -SS-RLC-Info-r8OrLater-TDD ::= CHOICE { -r8 SEQUENCE { - sS-ul-RLC-Mode DL-RLC-Mode-r7 OPTIONAL, - sS-ul-PayloadSize PayloadSize OPTIONAL, - sS-dl-RLC-Mode SS-DL-RLC-Mode OPTIONAL, - rlc-OneSidedReEst BOOLEAN DEFAULT FALSE, - altE-bitInterpretation ENUMERATED {false (0), true (1)} DEFAULT false, - useSpecialValueOfHEField ENUMERATED {false (0), true (1)} DEFAULT false, - uM-SN-DeliveryMode ENUMERATED { nonConfigured(0), configured(1)} DEFAULT nonConfigured -}, -relAspTypeExtension SS-RLC-Info-r10OrLaterExtensionType -- Rel-10 or later @sic R5-134957 sic@ -} - ---************************************************************** --- --- SS-RLC-Info-r10OrLaterExtensionType --- Rel-11 or later ---************************************************************** -SS-RLC-Info-r10OrLaterExtensionType ::= CHOICE { - rel11-AspExt SEQUENCE { -- Rel-11 or later - sS-ul-RLC-Mode DL-RLC-Mode-r11 OPTIONAL, - sS-dl-RLC-Mode SS-DL-RLC-Mode OPTIONAL, - rlc-OneSidedReEst BOOLEAN DEFAULT FALSE, - altE-bitInterpretation ENUMERATED {false (0), true (1)} DEFAULT false, - -- applicable only for UM RLC mode - useSpecialValueOfHEField ENUMERATED {false (0), true (1)} DEFAULT false, - -- applicable only for AM RLC mode - uM-SN-DeliveryMode ENUMERATED { nonConfigured(0), configured(1)} - DEFAULT nonConfigured - } -} - ---************************************************************** --- --- SS-UL-DPCCH-DRX-Info --- ---************************************************************** -SS-UL-DPCCH-DRX-Info ::= SEQUENCE { - ss-DRX-Info DTX-Info OPTIONAL, - - dtx-DRX-timingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - - uplink-DPCCHSlotFormatInformation Uplink-DPCCH-Slot-Format-Information -} - ---************************************************************** --- --- SS-UL-LogicalChannelMapping --- If the macHeaderManipulation field is 'normalMacHeader', then data received on the transport channel supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, and removed as normal. The MAC SDU shall be passed to the appropriate logical channel. --- If the macHeaderManipulation field field is 'OmitMacHeader', then data received on the transport channel supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, but the MAC layer shall not remove the MAC header. Thus the entire MAC PDU shall be passed to the appropriate logical channel, and the MAC header can be checked by the TTCN. --- ---************************************************************** - -SS-UL-LogicalChannelMapping ::= SEQUENCE { - macHeaderManipulation MAC-HeaderManipulation, - ul-TransportChannelType SS-UL-TransportChannelType, - logicalChannelIdentity LogicalChannelIdentity, - logicalChannelType LogicalChannelType -} - ---************************************************************** --- --- SS-UL-LogicalChannelMapping-TDD --- If the macHeaderManipulation field is 'normalMacHeader', then data received on the transport channel supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, and removed as normal. The MAC SDU shall be passed to the appropriate logical channel. --- If the macHeaderManipulation field field is 'OmitMacHeader', then data received on the transport channel supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, but the MAC layer shall not remove the MAC header. Thus the entire MAC PDU shall be passed to the appropriate logical channel, and the MAC header can be checked by the TTCN. --- @sic R5-134957 R5w130320: TDD TTCN-2/3 differences sic@ --- ---************************************************************** - -SS-UL-LogicalChannelMapping-TDD ::= SEQUENCE { - macHeaderManipulation MAC-HeaderManipulation, - ul-TransportChannelType SS-UL-TransportChannelType-TDD, --@sic R5-134957 R5w130320: TDD TTCN-2/3 differences sic@ - logicalChannelIdentity LogicalChannelIdentity, - logicalChannelType LogicalChannelType -} - ---************************************************************** --- --- SS-UL-TransportChannelType --- ---************************************************************** - -SS-UL-TransportChannelType ::= ENUMERATED { - dch(0), - rach(1), - cpch(2), - usch(3), - edch (4) -- Rel-6 or later -} - ---************************************************************** --- --- SS-UL-TransportChannelType-TDD --- @sic R5-134957 R5w130320: TDD TTCN-2/3 differences sic@ --- ---************************************************************** -SS-UL-TransportChannelType-TDD ::= ENUMERATED { - dch(0), - rach(1), - usch(2), - edch (3) -- Rel-6 or later -} - - ---************************************************************** --- --- SecondaryCCPCHInfo-FDD --- The range for powerOffsetOfTFCI-PO1 and powerOffsetOfPILOT-PO3 is 0 dB to 6 dB, 0.25 dB per step. --- mbms-softCombTimingOffset is present when L1-combination applies --- When configuring SCCPCH for MBMS "positionFixedOrFlexible" shall be set to Flexible, and sCCPCHSlotFormat shall be chosen to the one without pilot bits --- ---************************************************************** - -SecondaryCCPCHInfo-FDD ::= SEQUENCE { - scramblingCode INTEGER(0..15), - dl-ChannelizationCode SF256-AndCodeNumber, - sCCPCHSlotFormat SCCPCHSlotFormat, - timingOffset INTEGER (0..149), - positionFixedOrFlexible PositionFixedOrFlexible, - sttd-Indicator BOOLEAN, - dl-TxPower DL-TxPower, - powerOffsetOfTFCI-PO1 INTEGER (0..24), - powerOffsetOfPILOT-PO3 INTEGER (0..24), - mbms-softCombTimingOffset MBMS-SoftComb-TimingOffset OPTIONAL --Rel-6 or later - -- timeSlot TimeSlot OPTIONAL, - -- burstType BurstType OPTIONAL, - -- midambleShift MidambleShift OPTIONAL, - -- offset Offset OPTIONAL, - -- repetitionPeriod RepetitionPeriod OPTIONAL, - -- repetitionLength RepetitionLength OPTIONAL, - -- tFCIPresence TFCIPresence OPTIONAL, -} - ---************************************************************** --- --- SecondaryCCPCHInfo-TDD --- The range for powerOffsetOfTFCI-PO1 and powerOffsetOfPILOT-PO3 is 0 dB to 6 dB, 0.25 dB per step. --- mbms-softCombTimingOffset is present when L1-combination applies --- When configuring SCCPCH for MBMS "positionFixedOrFlexible" shall be set to Flexible, and sCCPCHSlotFormat shall be chosen to the one without pilot bits --- ---************************************************************** - -SecondaryCCPCHInfo-TDD ::= SEQUENCE { - tstd-Indicator ENUMERATED {notApplied(0),applied(1)}, - sctd-Indicator ENUMERATED {notApplied(0),applied(1)}, - dl-TxPower DL-TxPower, - commonTimeSlotInfo CommonTimeslotInfoSCCPCH, - channelisationCode SCCPCH-ChannelisationCodeList, - individualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - powerOffsetOfTFCI-PO1 INTEGER (0..24) OPTIONAL -} - ---************************************************************** --- --- SecondaryCPICHInfo --- ---************************************************************** - -SecondaryCPICHInfo ::= SEQUENCE { - scramblingCode INTEGER(0..63), - dl-ChannelizationCode SF512-AndCodeNumber, - dl-TxPower DL-TxPower, - mimoAntenna MimoAntennaConfigType DEFAULT noMimo -} - ---************************************************************** --- --- SecondarySCHInfo --- ---************************************************************** - -SecondarySCHInfo ::= SEQUENCE { - tstdIndicator BOOLEAN, - dl-TxPower DL-TxPower -} - ---************************************************************** --- --- SecurityInfo --- The integrityKey is not applicable to MAC --- Detailed comments: --- When the SS receives SecuritiyInfo, the SS first stores the contents. The SecurityInfo contents is not activated ion of the contents follows until receiving the subsequent ASP, CRLC-Ciphering-Activate-REQ, CMAC-Ciphering-Activate-REQ or CRLC-Integrity-Activate-REQ. Omitted fields of SecurityInfo shall not be affected by the subsequent ASP at the activation time.EXAMPLE: Omitting of startValue indicates not to re-initialize the relevant COUNT?C or COUNT-I, omitting of cipheringKey indicates that the current ciphering key is valid.. --- ---************************************************************** - -SecurityInfo ::= SEQUENCE { - cn-DomainIdentity CN-DomainIdentity, - startValue START-Value OPTIONAL, - cipheringKey BIT STRING (SIZE (128)) OPTIONAL, - integrityKey BIT STRING (SIZE (128)) OPTIONAL, - gsmCipheringKey BIT STRING (SIZE (64)) OPTIONAL -} - ---************************************************************** --- --- SegmentsOfSysInfoBlock --- The structure holding the segments of a MIB/SIB/SB, maximum number of segments is 16. --- ---************************************************************** - -SegmentsOfSysInfoBlock ::= SEQUENCE -{ - segCount INTEGER (1..16), - seg1 BIT STRING (SIZE (1..226)), - seg2 BIT STRING (SIZE (1..222)) OPTIONAL, - seg3 BIT STRING (SIZE (1..222)) OPTIONAL, - seg4 BIT STRING (SIZE (1..222)) OPTIONAL, - seg5 BIT STRING (SIZE (1..222)) OPTIONAL, - seg6 BIT STRING (SIZE (1..222)) OPTIONAL, - seg7 BIT STRING (SIZE (1..222)) OPTIONAL, - seg8 BIT STRING (SIZE (1..222)) OPTIONAL, - seg9 BIT STRING (SIZE (1..222)) OPTIONAL, - seg10 BIT STRING (SIZE (1..222)) OPTIONAL, - seg11 BIT STRING (SIZE (1..222)) OPTIONAL, - seg12 BIT STRING (SIZE (1..222)) OPTIONAL, - seg13 BIT STRING (SIZE (1..222)) OPTIONAL, - seg14 BIT STRING (SIZE (1..222)) OPTIONAL, - seg15 BIT STRING (SIZE (1..222)) OPTIONAL, - seg16 BIT STRING (SIZE (1..222)) OPTIONAL -} - ---************************************************************** --- --- SupportFlag --- The default value noNeed indicates that the SS does not perform the operation mentioned in CRLC-ProhibitRLC-Ack-REQ, but performs the suspension / resume of UL RLC PDU data. --- If the non default values are taken, the SS has either prohibited, or continued acknowledging RLC SDUs. --- ---************************************************************** - -SupportFlag ::= ENUMERATED {ackProhibited(0), ackContinued(1), noNeed (2)} - ---************************************************************** --- --- Tcell --- Timing offset between reference channel and this channel ( unit : 256 chips ) --- ---************************************************************** - -Tcell ::= INTEGER (0..38399) - ---************************************************************** --- --- TrCHInfo --- The same TFCS information should be provided to the PHY and MAC layers at all times. When a CMAC-Config-REQ is used to configure the MAC layer, a corresponding CPHY-TrCH-Config-REQ should be sent to the PHY layer to ensure that the configuration is consistent. --- For MAC-hs configuration: --- When ulconnectedTrCHList, ulTFCS, dlconnectedTrCHList and dlTFCS are omitted this ASP configures an MAC-hs entity. --- ---************************************************************** - -TrCHInfo ::= SEQUENCE -{ - ulconnectedTrCHList SEQUENCE (SIZE (1..maxulTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - transportChannelInfo CommonOrDedicatedTFS - } OPTIONAL, - ulTFCS TFCS OPTIONAL, - dlconnectedTrCHList SEQUENCE (SIZE (1..maxdlTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - transportChannelInfo CommonOrDedicatedTFS - } OPTIONAL, - dlTFCS TFCS OPTIONAL, - hsDSCHMacdFlows HS-DSCHMACdFlows OPTIONAL, -- Rel-5 or later - ehs-DSCH-Flows EHS-DSCH-Flows OPTIONAL, -- Rel-7 or later - ehs-DSCH-CommonFlows EHS-DSCH-CommonFlows OPTIONAL, -- Rel-7 or later - ehs-DSCH-Flows-r9 EHS-DSCH-Flows-r9 OPTIONAL, -- Rel-9 or later @sic R5s110175 sic@ - relAspTypeExtension TrCHInfo-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- TrCHInfo-TDD --- The same TFCS information should be provided to the PHY and MAC layers at all times. When a CMAC-Config-REQ is used to configure the MAC layer, a corresponding CPHY-TrCH-Config-REQ should be sent to the PHY layer to ensure that the configuration is consistent. --- For MAC-hs configuration: --- When ulconnectedTrCHList, ulTFCS, dlconnectedTrCHList and dlTFCS are omitted this ASP configures an MAC-hs entity. --- ---************************************************************** - -TrCHInfo-TDD ::= SEQUENCE -{ - ulconnectedTrCHList SEQUENCE (SIZE (1..maxulTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - transportChannelInfo CommonOrDedicatedTFS-TDD - } OPTIONAL, - ulTFCS TFCS OPTIONAL, - dlconnectedTrCHList SEQUENCE (SIZE (1..maxdlTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - transportChannelInfo CommonOrDedicatedTFS-TDD - } OPTIONAL, - dlTFCS TFCS OPTIONAL, - hsDSCHMacdFlows HS-DSCHMACdFlows-TDD OPTIONAL, -- Rel-5 or later - ehs-DSCH-Flows EHS-DSCH-Flows OPTIONAL, -- Rel-7 or later - ehs-DSCH-CommonFlows EHS-DSCH-CommonFlows OPTIONAL, -- Rel-7 or later - ehs-DSCH-Flows-r9 EHS-DSCH-Flows-r9 OPTIONAL, -- Rel-9 or later - relAspTypeExtension SEQUENCE {} OPTIONAL -- Rel-10 or later @sic R5-130613 sic@ - -} - ---************************************************************** --- --- TrCHInfo-r10OrLaterExtensionType --- Rel-11 or later --- For rel-11 MAC-ehs configuration: --- When ulconnectedTrCHList, ulTFCS, dlconnectedTrCHList and dlTFCS are omitted and ehs-DSCH-Flows or E-HS-DSCH-Common Flows or ehs-DSCH-Flows-r11 is present this ASP configures an MAC-ehs entity. --- Only one of hsDSCHMacdFlows or ehs-DSCH-Flows or ehs-DSCH-Flows-r9 or ehs-DSCH-Flows-r11 can be present. --- ---************************************************************** -TrCHInfo-r10OrLaterExtensionType ::= CHOICE { - rel11-AspExt SEQUENCE { -- Rel-11 or later - ehs-DSCH-Flows-r11 EHS-DSCH-Flows-r11 OPTIONAL - } -} - ---************************************************************** --- --- TrCH-LogCHMappingList --- maxLogCHperTrCH = 8 --- ---************************************************************** - -TrCH-LogCHMappingList ::= SEQUENCE (SIZE (1..maxLogCHperTrCH)) OF TrCH-LogicalChannelMapping - ---************************************************************** --- --- TrCH-LogCHMappingList-TDD --- maxLogCHperTrCH = 8 --- @sic R5-134957: TDD TTCN-2/3 differences sic@ --- ---************************************************************** - -TrCH-LogCHMappingList-TDD ::= SEQUENCE (SIZE (1..maxLogCHperTrCH)) OF TrCH-LogicalChannelMapping-TDD - ---************************************************************** --- --- TrCH-LogCHMappingList1 --- maxulTrCH = maxdlTrCH = 16 --- dlconnectedMACdFlows is used for MAC-hs and dlconnectedMAC-ehsFlows for MAC-ehs configurations in dedicated. --- dlconnectedMAC-ehsCommonFlow is used for MAC-ehs in Common state. For BCCH and PCCH in common state, the mac-ehs-QueueId is omitted, no reordering is applied and the TSN and SI fields are always set to zero (according to 3GPP TS 25.321 [17], subclauses 9.1.4 and 11.6.4.4) --- dlconnectedMAC-ehsFlowsDC is used when dual cell or 4C-HSDPA is activated. --- ---************************************************************** - -TrCH-LogCHMappingList1 ::= SEQUENCE -{ - ulconnectedTrCHList SEQUENCE (SIZE (1..maxulTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - trCH-LogCHMappingList TrCH-LogCHMappingList} OPTIONAL, - dlconnectedTrCHList SEQUENCE (SIZE (1..maxdlTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - trCH-LogCHMappingList TrCH-LogCHMappingList} OPTIONAL, - dlconnectedMACdFlows SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-dFlowId MAC-d-FlowIdentity, - trCH-LogCHMappingList TrCH-LogCHMappingList - } OPTIONAL, -- Rel-5 or later - dlconnectedMAC-ehsFlows SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, - trCH-LogCHMappingList TrCH-LogCHMappingList - } OPTIONAL, -- Rel-7 or later - dlconnectedMAC-ehsCommonFlows SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId OPTIONAL, - trCH-LogCHMappingList TrCH-LogCHMappingList - } OPTIONAL, -- Rel-7 or later - dlconnectedMAC-ehsFlowsDC SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, -- @sic R5-112477 sic@ - trCH-LogCHMappingList TrCH-LogCHMappingList - } OPTIONAL, -- Rel-8 or later @sic R5-110104 sic@ - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 sic@ -} - ---************************************************************** --- --- TrCH-LogCHMappingList1-TDD --- maxulTrCH = maxdlTrCH = 16 --- dlconnectedMACdFlows is used for MAC-hs and dlconnectedMAC-ehsFlows for MAC-ehs configurations in dedicated. --- dlconnectedMAC-ehsCommonFlow is used for MAC-ehs in Common state. For BCCH and PCCH in common state, the mac-ehs-QueueId is omitted, no reordering is applied and the TSN and SI fields are always set to zero (according to 3GPP TS 25.321 [17], subclauses 9.1.4 and 11.6.4.4) --- dlconnectedMAC-ehsFlowsDC is used when dual cell or 4C-HSDPA is activated. --- @sic R5-134957: TDD TTCN-2/3 differences sic@ --- ---************************************************************** -TrCH-LogCHMappingList1-TDD ::= SEQUENCE -{ - ulconnectedTrCHList SEQUENCE (SIZE (1..maxulTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - trCH-LogCHMappingList TrCH-LogCHMappingList-TDD} OPTIONAL, - dlconnectedTrCHList SEQUENCE (SIZE (1..maxdlTrCH)) OF SEQUENCE { - trchid TransportChannelIdentity, - trCH-LogCHMappingList TrCH-LogCHMappingList-TDD} OPTIONAL, - dlconnectedMACdFlows SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-dFlowId MAC-d-FlowIdentity, - trCH-LogCHMappingList TrCH-LogCHMappingList-TDD - } OPTIONAL, -- Rel-5 or later - dlconnectedMAC-ehsFlows SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, - trCH-LogCHMappingList TrCH-LogCHMappingList-TDD - } OPTIONAL, -- Rel-7 or later - dlconnectedMAC-ehsCommonFlows SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId OPTIONAL, - trCH-LogCHMappingList TrCH-LogCHMappingList-TDD - } OPTIONAL, -- Rel-7 or later - dlconnectedMAC-ehsFlowsDC SEQUENCE (SIZE (1..8)) OF SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, -- @sic R5-112477 sic@ - trCH-LogCHMappingList TrCH-LogCHMappingList-TDD - } OPTIONAL, -- Rel-8 or later @sic R5-110104 sic@ - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 sic@ -} - ---************************************************************** --- --- TrCH-LogicalChannelMapping --- When used for logical channel to MAC-d flow mapping dl-LogicalChannelMapping shall be chosen, --- ---************************************************************** - -TrCH-LogicalChannelMapping ::= SEQUENCE { - logicalChannel-Mapping CHOICE { - ul-LogicalChannelMapping SS-UL-LogicalChannelMapping, - dl-LogicalChannelMapping SS-DL-LogicalChannelMapping - }, - rB-Identity INTEGER (-31..32) OPTIONAL, - cn-DomainIdentity CN-DomainIdentity OPTIONAL -} - ---************************************************************** --- --- TrCH-LogicalChannelMapping-TDD --- When used for logical channel to MAC-d flow mapping dl-LogicalChannelMapping shall be chosen, --- @sic R5-134957 R5w130320: TDD TTCN-2/3 differences sic@ --- ---************************************************************** - -TrCH-LogicalChannelMapping-TDD ::= SEQUENCE { - logicalChannel-Mapping CHOICE { - ul-LogicalChannelMapping SS-UL-LogicalChannelMapping-TDD, -- @sic R5-134957 R5w130320 sic@ - dl-LogicalChannelMapping SS-DL-LogicalChannelMapping - }, - rB-Identity INTEGER (-31..32) OPTIONAL, - cn-DomainIdentity CN-DomainIdentity OPTIONAL -} - ---************************************************************** --- --- TrChConfigType --- ---************************************************************** - - -TrChConfigType ::= CHOICE { - nonDch NULL, - dch ENUMERATED {normal(0), softHO(1)} -} - ---************************************************************** --- --- UE-Info --- The value of c-RNTI-DSCH-RNTI is 16 bits, used either for C-RNTI or DSCH-RNTI. DSCH is configured if the physical channel in CMAC-config-REQ is a PDSCH. Otherwise, C-RNTI is applied. For MAC-hs configuration both u-RNTI and c-RNTI-DSCH-RNTI are omitted. --- ---************************************************************** - -UE-Info ::= SEQUENCE { - u-RNTI U-RNTI OPTIONAL, - c-RNTI C-RNTI OPTIONAL -} - ---************************************************************** --- --- UE-OperationMode --- ---************************************************************** - -UE-OperationMode ::= ENUMERATED { opModeA (0), opModeC (1) } - ---************************************************************** --- --- RabTxInfo --- Provide test data, number of RBs, and RB Tx info of each RB (RB id, SDU size and number of SDUs) to be transmitted in consecutive TTIs --- ---************************************************************** - -RabTxInfo ::= SEQUENCE -{ - testData BIT STRING (SIZE (8..163840)), - rbTxInfoList SEQUENCE (SIZE (1..6)) OF RbTxInfo -} - ---************************************************************** --- --- RbTxInfo --- Info on RB id and the actual DL test data size (SDU-Size * number of SDUs). The actual test data is extracted from the first (SDU-Size * number of SDUs) bits in the raw testData buffer. SS shall transmit the actual test data in every TTI.The value nomOfSdu = T / TTI , whereby T=1200 is the duration of the data transmitting in the RAB test, taking into account the test tolerance (+50%) of the UE loop back delay (<800 ms). --- ---************************************************************** - -RbTxInfo ::= SEQUENCE -{ - rB-Identity INTEGER(-31..32), - sduSize INTEGER(1..163840), - nomOfSdu INTEGER(0..255) -- 0 is set for no data on this RB -} - ---************************************************************** --- --- DDI-Mapping --- Both SRBs and RBs can be mapped onto E-DCH. The mechanism for control of MAC header manipulation (macHeaderManipulation) is applied to individual logical channels to be mapped on E-DCH. Typically, the SRBs are configured in 'NormalMacHeader" mode while the RBs in user plane can be configured either in 'NormalMacHeader" or in "OmitMacHeader" mode. --- If more than one UL RLC PDU size is configured for the RB (represent by logicalChannelIdentity), the different sizes will use subsequent DDI values starting from the DDI value in this table. --- If the value of macHeaderManipulation field is 'NormalMacHeader', then data received on the E-DCH MACd flows supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, and removed as normal. The MACes SDU shall be passed to the appropriate logical channel. --- If the value of macHeaderManipulation field is 'OmitMacHeader', then data received on the E-DCH MACd flows supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, then the MAC-es layer shall deliver the MAC-es SDU, SI and the related CFN, subframe number, HARQ process identity to the appropriate logical channel. The TTCN receives these fields by RLC-MAC-es-DATA-IND, then these fields can be checked by the TTCN. --- HARQ ID = CFN mod 4 for TTI=10ms; --- HARQ ID = (5*CFN + subframe number) mod 8 for TTI=2ms --- ---************************************************************** - -DDI-Mapping ::= SEQUENCE { - macHeaderManipulation MAC-HeaderManipulation, - logicalChannelIdentity LogicalChannelIdentity, - e-DCH-MAC-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - ddi DDI, - rlc-PDU-SizeList RLC-PDU-SizeList, - includeInSchedulingInfo BOOLEAN, - mac-LogicalChannelPriority MAC-LogicalChannelPriority, - logicalChannelType LogicalChannelType, - rB-Identity INTEGER (-31..32) OPTIONAL -} - ---************************************************************** --- --- DDI-MappingList --- ---************************************************************** - -DDI-MappingList ::= SEQUENCE (SIZE (1..31)) OF DDI-Mapping - ---************************************************************** --- --- MACeConfig --- If the macHeaderManipulation field is 'NormalMacHeader' in ddiMappingList, then data received on the E-DCH (MAC-e PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, and the MACes PDU shall be passed to the MAC-es together with the relevant DDI, N, CFN and subframe number. --- If the macHeaderManipulation field field is 'OmitMacHeader', then data received on the E-DCH (MAC-e PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, then the MAC-e layer shall delivery the MAC-es PDU, SI and the related CFN, subframe number to the MAC-es entity. --- connectedToMAC-es field is used to provide the possibility that the E-DCH-MACdFlows from only one MAC-e entity are connected to the MAC-es entity in the inter node B soft handover test cases. --- The IEs ddiMappinglist and e-DCHMacdFlows can be OMITted when changing the serving cell MAC-e without modification of MAC-e configurations. It will be applied in EDCH SHO. --- ---************************************************************** - -MACeConfig ::= SEQUENCE { - activationTime SS-ActivationTime, - ddiMappinglist DDI-MappingList OPTIONAL, - e-DCHMacdFlows E-DCHMACdFlows OPTIONAL, - connectedToMAC-es BOOLEAN DEFAULT TRUE, -- can be set to FALSE in inter nodeB SHO - ss-DRX-MAC-Info SS-DRX-MAC-Info OPTIONAL -} - ---************************************************************** --- --- MACeConfig-TDD --- If the macHeaderManipulation field is 'NormalMacHeader' in ddiMappingList, then data received on the E-DCH (MAC-e PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, and the MACes PDU shall be passed to the MAC-es together with the relevant DDI, N, CFN and subframe number. --- If the macHeaderManipulation field field is 'OmitMacHeader', then data received on the E-DCH (MAC-e PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, then the MAC-e layer shall delivery the MAC-es PDU, SI and the related CFN, subframe number to the MAC-es entity. --- connectedToMAC-es field is used to provide the possibility that the E-DCH-MACdFlows from only one MAC-e entity are connected to the MAC-es entity in the inter node B soft handover test cases. --- The IEs ddiMappinglist and e-DCHMacdFlows can be OMITted when changing the serving cell MAC-e without modification of MAC-e configurations. It will be applied in EDCH SHO. --- ---************************************************************** - -MACeConfig-TDD ::= SEQUENCE { - activationTime SS-ActivationTime, - ddiMappinglist DDI-MappingList OPTIONAL, - e-DCHMacdFlows E-DCHMACdFlows-TDD OPTIONAL -} - ---************************************************************** --- --- MACesConfig --- MACesConfig establishes the mapping between logical channels and E-DCH-MACd-Flows. --- When the macTestMode is TRUE, the re-ordering entity shall not elimilate the deplicated packets, but passes them to RLC. macTestMode = "TRUE" is used for testing the retransmission function of HARQ process --- ---************************************************************** - -MACesConfig ::= SEQUENCE { - activationTime SS-ActivationTime, - ddiMappinglist DDI-MappingList, - macTestMode BOOLEAN DEFAULT FALSE -} - ---************************************************************** --- --- ModulationScheme --- ---************************************************************** - -ModulationScheme ::= ENUMERATED {qpsk (0), qam16 (1), qam64 (2), spare1 (3)} - ---************************************************************** --- --- RedundancyVersionList --- Gives the Redundancy and constellation version coding sequence (Xrv) to be used for each transmission / retransmission. The SIZE (number of Xrv elements in there) of the SEQUENCE implies the number of HARQ transmission / retransmissions to be required. --- ---************************************************************** - -RedundancyVersionList ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..7) - ---************************************************************** --- --- LCR TDD ONLY START --- ---************************************************************** ---************************************************************** --- --- TimeSlotConfiguration-LCR --- ---************************************************************** - -TimeSlotConfiguration-LCR ::= SEQUENCE { - timeSlotLCR TimeslotNumber-LCR-r4, - timeSlotStatus ENUMERATED {active(0), notActive(1)}, - timeSlotDirection ENUMERATED {downlink(0), uplink(1)} -} - ---************************************************************** --- --- TimeSlotConfigurationList-LCR --- ---************************************************************** - -TimeSlotConfigurationList-LCR ::= SEQUENCE (SIZE (1..maxTS-LCR)) OF TimeSlotConfiguration-LCR - ---************************************************************** --- --- SecondaryFrequencyInfoList --- ---************************************************************** - -SecondaryFrequencyInfoList ::= SEQUENCE (SIZE(1..maxNumOfSecondFrequency)) OF SecondaryFrequencyInfo - ---************************************************************** --- --- SecondaryFrequencyInfo --- ---************************************************************** - -SecondaryFrequencyInfo ::= SEQUENCE { - frequencyInfo UARFCN, - dLTxAttenuationLevel INTEGER(0..30) -} - ---************************************************************** --- --- DwPCHInfo --- ---************************************************************** - -DwPCHInfo ::= SEQUENCE { - tstd-Indicator ENUMERATED {notApplied(0),applied(1)}, - dwPCH-Power DwPCH-Power -} - ---************************************************************** --- --- TransmissionDiversityApplied --- ---************************************************************** - -TransmissionDiversityApplied ::= ENUMERATED {notApplied(0), applied(1)} - ---************************************************************** --- --- SS-Non-ScheduledTransGrantInfoTDD --- Rel-7 or later. --- ---************************************************************** - -SS-Non-ScheduledTransGrantInfoTDD ::= CHOICE { - tdd384-768 SEQUENCE - { - timeslotResourceRelatedInfo BIT STRING (SIZE (13 ) ), - powerResourceRelatedInfo INTEGER (1..32 ), - activationTime ActivationTime, - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL, - codeResourceInfo UL-TS-ChannelisationCode - }, - tdd128 SEQUENCE - { - n-E-UCCH INTEGER (1..8 ) OPTIONAL, - n-E-HICH INTEGER (4..15 ) OPTIONAL, - timeslotResourceRelatedInfo BIT STRING (SIZE (5 ) ), - powerResourceRelatedInfo INTEGER (1..32 ), - activationTime ActivationTime, - sfnNum INTEGER (0..1 ), - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL, - codeResourceInfo UL-TS-ChannelisationCode, - e-HICH-Info SEQUENCE - { - e-HICH-ID-TDD INTEGER (0..255 ), - signature-Sequence-Group-Index INTEGER (0..19 ) - } - } -} - ---************************************************************** --- --- LCR TDD ONLY END --- ---************************************************************** ---************************************************************** --- --- CMAC-Ciphering-Activate-CNF --- To confirm to activate or inactivate the ciphering --- ---************************************************************** - -CMAC-Ciphering-Activate-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CMAC-Ciphering-Activate-REQ --- To request to start or, restart or stop downlink ciphering or uplink deciphering. The physicalChannelIdentity of DPCH applies to routingInfo.Do not increment HFN part of COUNT-C if the value of incrementCOUNT-C-Ind is "NotIncr". --- ---************************************************************** - -CMAC-Ciphering-Activate-REQ ::= SEQUENCE -{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - ratType RatType, - cn-DomainIdentity CN-DomainIdentity, - cipheringModeInfo CipheringModeInfo OPTIONAL, - cipheringModeInfo-r7 CipheringModeInfo-r7 OPTIONAL, - incHFN Increment-Mode -} - ---************************************************************** --- --- CMAC-Config-CNF --- For MAC emulator to report that a previous attempt to setup, reconfigure or release a logical channel is successful. --- ---************************************************************** - -CMAC-Config-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CMAC-Config-FDD-REQ --- To request to configure MAC entity. Setup is used for creation of the MAC instances or the MAC resources. Release is used for free the all MAC resources. The reconfiguration is to change the MAC parameters, it is not the MAC modification. --- ---************************************************************** - -CMAC-Config-FDD-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CHOICE { - setup CmacConfigReq-FDD, - reconfigure CmacConfigReq-FDD, - release SS-ActivationTime - } -} - ---************************************************************** --- --- CMAC-Config-TDD-REQ --- To request to configure MAC entity. Setup is used for creation of the MAC instances or the MAC resources. Release is used for free the all MAC resources. The reconfiguration is to change the MAC parameters, it is not the MAC modification. --- ---************************************************************** - -CMAC-Config-TDD-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CHOICE { - setup CmacConfigReq-TDD, - reconfigure CmacConfigReq-TDD, - release SS-ActivationTime - } -} - ---************************************************************** --- --- CMAC-PAGING-Config-CNF --- To confirm to setup the Paging message --- ---************************************************************** - -CMAC-PAGING-Config-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CMAC-PAGING-Config-FDD-REQ --- To request MAC layer to send the Paging message on the specified configuration. --- CMAC-PAGING-Config-REQ in TTCN-2 --- ---************************************************************** - -CMAC-PAGING-Config-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CmacPagingConfigReq -} - ---************************************************************** --- --- CMAC-PAGING-Config-TDD-REQ --- To request MAC layer to send the Paging message on the specified configuration. --- CMAC-PAGING-Config-REQ in TTCN-2 --- ---************************************************************** - -CMAC-PAGING-Config-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CmacPagingConfigReq-TDD -} ---************************************************************** --- --- CMAC-SYSINFO-Config-CNF --- To confirm to setup the BCCH message to MAC layer --- ---************************************************************** - -CMAC-SYSINFO-Config-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CMAC-SYSINFO-Config-REQ --- To request MAC layer to send the BCCH message on the specified configuration. --- ---************************************************************** - -CMAC-SYSINFO-Config-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CmacSysinfoConfigReq -} - ---************************************************************** --- --- CMAC-SecurityMode-Config-CNF --- To confirm to configure the MAC security mode --- ---************************************************************** - -CMAC-SecurityMode-Config-CNF ::= SEQUENCE { - cellId INTEGER (-1..63) -} - ---************************************************************** --- --- CMAC-SecurityMode-Config-REQ --- To request to configure the MAC security mode --- If there are several CMAC-Ciphering-Activate-REQ follow this ASP, the SS shall take a serial of specified actions on the same contents in this ASP at the activation time indicated in each CMAC-Ciphering-Activate-REQ. --- ---************************************************************** - -CMAC-SecurityMode-Config-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - macCipheringInfo SecurityInfo -} - ---************************************************************** --- --- CPHY-Cell-Config-CNF --- To confirm to setup the cell parameter --- ---************************************************************** - -CPHY-Cell-Config-CNF ::= SEQUENCE { - cellId INTEGER (0..63) -} - ---************************************************************** --- --- CPHY-Cell-Config-FDD-REQ --- To request to setup the cell parameter. --- The unit of tcell is chip; the unit of sfnOffset is frame number. The sfnOffset is defined as the number of frames the SFN shall be shifted, i.e the frames lagging behind or in advance, in comparison to a system reference time. The both interpretations are valid for the test. --- The primary scrambling code number of the cell is 16*primaryScramblingCode-SS; the unit of dLTxAttenuationLevel is dB. --- ---************************************************************** - -CPHY-Cell-Config-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - tcell INTEGER(0..38399), - sfnOffset INTEGER (0 .. 4095 ), - frequencyInfo FrequencyInfo, - primaryScramblingCode-SS INTEGER (0..511), - cellTxPowerLevel CellTxPowerLevel, - dLTxAttenuationLevel INTEGER(0..30|123), - frequencyBandIndicator FrequencyBandFDD, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130618 sic@ -} - ---************************************************************** --- --- CPHY-Cell-Config-TDD-REQ --- To request to setup the cell parameter. --- the unit of dLTxAttenuationLevel is dB. --- CPHY-Cell-Config-REQ in TTCN-2 --- ---************************************************************** - -CPHY-Cell-Config-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - sfnOffset INTEGER (0 .. 4095 ), - frequencyInfo FrequencyInfo, - cellTxPowerLevel CellTxPowerLevel, - dLTxAttenuationLevel INTEGER(0..30|123), - cellParametersID CellParametersID, - timeSlotConfigurationList-LCR TimeSlotConfigurationList-LCR, - dwPCHInfo DwPCHInfo, - transmissionDiversityApplied ENUMERATED {notApplied(0),applied(1)} OPTIONAL, - secondaryFrequencyInfo SecondaryFrequencyInfoList OPTIONAL, - upPCHposition UpPCHposition-LCR OPTIONAL, - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later -} - ---************************************************************** --- --- CPHY-Cell-Release-CNF --- The confirmation to the CPHY-Cell-Release-Req --- ---************************************************************** - -CPHY-Cell-Release-CNF ::= SEQUENCE { - soft-Reset BOOLEAN, - cell-ID-List SEQUENCE (SIZE (1..8)) OF INTEGER (0..63) -- cell IDs -} - ---************************************************************** --- --- CPHY-Cell-Release-REQ --- 1. This Primitive with "Soft-Reset" flag ON gives a common known starting point/state of SS for a test case. The SS performs the following whenever it receives this primitive with "Soft-Reset" flag ON:Releases all configured Channels and cells (if any) irrespective of Cell ID list IE. --- 2. Releases the associated Memory Buffers (if any). --- 3. Cancels all active timers (if any) --- With "Soft-Reset" flag OFF: --- 1. Releases cells listed in IE Cell-ID-List and associated configured Channels (if any) --- 2. Releases the Memory Buffers(if any) associated with Cells listed in IE Cell-ID-List --- 3. Cancels all active timers (if any) associated with Cells listed in IE Cell-ID-List. --- ---************************************************************** - -CPHY-Cell-Release-REQ ::= SEQUENCE { - soft-Reset BOOLEAN, - cell-ID-List SEQUENCE (SIZE (1..8)) OF INTEGER (0 .. 63), -- @sic R5-112591 sic@ - rb-Config-List SEQUENCE (SIZE (1..8)) OF INTEGER OPTIONAL -- @sic R5-112591 sic@ -} - ---************************************************************** --- --- CPHY-Cell-TxPower-Modify-CNF --- To confirm to change the DL power --- ---************************************************************** - -CPHY-Cell-TxPower-Modify-CNF ::= SEQUENCE { - cellId INTEGER (0..63) -} - ---************************************************************** --- --- CPHY-Cell-TxPower-Modify-REQ --- To request to change the DL power --- ---************************************************************** - -CPHY-Cell-TxPower-Modify-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - dLTxAttenuationLevel INTEGER(0..40|123) -} - ---************************************************************** --- --- CPHY-Frame-Number-CNF --- To return the requested connection frame number. The routingInfo indicates a physical channel. --- ---************************************************************** - -CPHY-Frame-Number-CNF ::= SEQUENCE{ - cellId INTEGER (0..63), - routingInfo RoutingInfo, - frameNumber INTEGER (0..255) -} - ---************************************************************** --- --- CPHY-Frame-Number-REQ --- To request the physical layer to return a connection frame number on which the next message can be sent at the specified PCO on the specified logical channel. The return frame number shall leave time from current frame number in order to leave some execution time for TTCN preparing next message. The routingInfo indicates a physical channel --- ---************************************************************** - -CPHY-Frame-Number-REQ ::= SEQUENCE{ - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-Ini-CNF --- Confirm the test initialisation --- ---************************************************************** - -CPHY-Ini-CNF ::= SEQUENCE -{ - confirmation NULL -} - ---************************************************************** --- --- CPHY-Ini-REQ --- Request to initialise the test --- ---************************************************************** - -CPHY-Ini-REQ ::= ENUMERATED { - defaultRadioEnvironment(0), - nonDefaultMultiCell(1) -} - ---************************************************************** --- --- CPHY-Out-of-Sync-IND --- To report that the physical channel synchronization (in FDD mode, sync with uplink DPCCH) was lost as detected by the SS receiver. --- ---************************************************************** - -CPHY-Out-of-Sync-IND ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-RL-Modify-CNF --- To confirm to modify the Radio Link --- ---************************************************************** - -CPHY-RL-Modify-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-RL-Modify-FDD-REQ --- To request to modify the Radio Link --- HardHandover (PhysicalChannelReconfig) --- ChannelisationCodeChange --- FrequencyChange --- PhysicalChannelModifyForTrCHReconfig --- CompressedMode( PhysicalChannelReconfig) --- Re-Synchronized HardHandover --- Softhandover --- ---************************************************************** - -CPHY-RL-Modify-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - modifyMessage CphyRlModifyReq-FDD -} - ---************************************************************** --- --- CPHY-RL-Modify-TDD-REQ --- To request to modify the Radio Link --- HardHandover (PhysicalChannelReconfig) --- ChannelisationCodeChange --- FrequencyChange --- PhysicalChannelModifyForTrCHReconfig --- CompressedMode( PhysicalChannelReconfig) --- Re-Synchronized HardHandover --- CPHY-RL-Modify-REQ in TTCN-2 --- ---************************************************************** - -CPHY-RL-Modify-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - secondaryFrequency UARFCN OPTIONAL, - routingInfo RoutingInfo, - ratType RatType, - modifyMessage CphyRlModifyReq-TDD -} - ---************************************************************** --- --- CPHY-RL-Release-CNF --- PHY emulator confirms that a specified physical channel has been released. --- ---************************************************************** - -CPHY-RL-Release-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-RL-Release-FDD-REQ --- To request to release the Radio Link --- ---************************************************************** - -CPHY-RL-Release-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - activationTime SS-ActivationTime -} - ---************************************************************** --- --- CPHY-RL-Release-TDD-REQ --- To request to release the Radio Link --- ---************************************************************** - -CPHY-RL-Release-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - activationTime SS-ActivationTime OPTIONAL -} - ---************************************************************** --- --- CPHY-RL-Setup-CNF --- To confirm to setup the Radio Link --- ---************************************************************** - -CPHY-RL-Setup-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-RL-Setup-FDD-REQ --- To request to setup the associated transport channels and the Radio Link itself. --- CPHY-RL-Setup-REQ in TTCN-2 --- ---************************************************************** - -CPHY-RL-Setup-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - setupMessage CphyRlSetupReq-FDD -} - ---************************************************************** --- --- CPHY-RL-Setup-TDD-REQ --- To request to setup the associated transport channels and the Radio Link itself. --- CPHY-RL-Setup-REQ in TTCN-2 --- ---************************************************************** - -CPHY-RL-Setup-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - secondaryFrequency UARFCN OPTIONAL, - routingInfo RoutingInfo, - ratType RatType, - setupMessage CphyRlSetupReq-TDD -} - ---************************************************************** --- --- CPHY-Sync-IND --- To indicate that physical channel synchronization (in FDD mode, sync with DPCCH) has been achieved. --- ---************************************************************** - -CPHY-Sync-IND ::= SEQUENCE{ - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-TrCH-Config-CNF --- To confirm to configure the transport channel --- ---************************************************************** - -CPHY-TrCH-Config-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-TrCH-Config-FDD-REQ --- To request to configure the transport channel --- ---************************************************************** - -CPHY-TrCH-Config-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - trchConfigType TrChConfigType, - configMessage CphyTrchConfigReq -} - ---************************************************************** --- --- CPHY-TrCH-Config-TDD-REQ --- To request to configure the transport channel --- ---************************************************************** - -CPHY-TrCH-Config-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - ratType RatType, - trchConfigType TrChConfigType, - configMessage CphyTrchConfigReq-TDD -} - ---************************************************************** --- --- CPHY-TrCH-Release-CNF --- To confirm to release tthe Radio Link --- ---************************************************************** - -CPHY-TrCH-Release-CNF ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPHY-TrCH-Release-FDD-REQ --- CPHY-TrCH-Release-TDD-REQ --- To request to release tthe Radio Link --- ---************************************************************** - -CPHY-TrCH-Release-FDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - trchConfigType TrChConfigType, - activationTime SS-ActivationTime -} - -CPHY-TrCH-Release-TDD-REQ ::= SEQUENCE { - cellId INTEGER (0..63), - routingInfo RoutingInfo, - trchConfigType TrChConfigType, - activationTime SS-ActivationTime OPTIONAL -} - ---************************************************************** --- --- CPHY-HS-DPCCH-CQI-MultiCell-CNF --- To Confirm CPHY-HS-DPCCH-CQI-MultiCell-REQ --- ---************************************************************** -CPHY-HS-DPCCH-CQI-MultiCell-CNF ::= SEQUENCE { - cellId INTEGER(0..63) -} - ---************************************************************** --- --- CPHY-HS-DPCCH-CQI-MultiCell-REQ --- To enable the SS to start reporting N times of the CQI value received on the HS-DPCCH on cellId when 3C/4C-HSDPA is configured. After N times the SS stops reporting. N is specified as numberOfReports. --- At the SS initialization reporting of CQI values is disabled. --- ---************************************************************** -CPHY-HS-DPCCH-CQI-MultiCell-REQ ::= SEQUENCE { - cellId INTEGER(0..63), - ratType RatType, - numberOfReports INTEGER(1..32) -} - ---************************************************************** --- --- CPHY-HS-DPCCH-CQI-MultiCell-IND --- SS generates one indication per subframe when a CQI/PCI value is received on HS-DPCCH after invocation of ASP CPHY-HS-DPCCH-CQI-MultiCell-REQ and before the numberOfReports is reached. --- This ASP is used for verifying whether the UE has configured the HS-DSCH and starts reception of HS-DSCH (3GPP TS 25.331 [21], subclause 8.6.6.34 and 3GPP TS 25.212 [58], subclause 4.7.4.2). --- ---************************************************************** -CPHY-HS-DPCCH-CQI-MultiCell-IND ::= SEQUENCE { - cellId INTEGER(0..63), - ratType RatType, - cfn INTEGER (0..255), - subframe INTEGER (0..4), - cqiPci-List CqiPci-List-Type -} - -CqiPci-List-Type ::= SEQUENCE (SIZE (1..2)) OF CqiPci-Type - -CqiPci-Type ::= SEQUENCE { - cqi INTEGER (0..1023), - pci INTEGER (0..3) OPTIONAL, -- MIMO - cqiType ENUMERATED {cqiTypeA(0), cqiTypeB(1)} OPTIONAL -- MIMO -} - ---************************************************************** --- --- CPHY-HS-DPCCH-CQI-CNF --- Applicable Rel-5 or later --- To Confirm CPHY-HS-DPCCH-CQI-REQ --- ---************************************************************** -CPHY-HS-DPCCH-CQI-CNF ::= SEQUENCE { - cellId INTEGER(0..63) -} - ---************************************************************** --- --- CPHY-HS-DPCCH-CQI-REQ --- Applicable Rel-5 or later --- To enable the SS to start reporting N times of the CQI value received on the HS DPCCH. After N times the SS stops reporting. N is specified in numberOfReports. --- At the SS initialization reporting of CQI values is disabled --- ---************************************************************** -CPHY-HS-DPCCH-CQI-REQ ::= SEQUENCE { - cellId INTEGER(0..63), - ratType RatType, - numberOfReports INTEGER(1..32) -} - ---************************************************************** --- --- CPHY-HS-DPCCH-CQI-IND --- Applicable Rel-5 or later --- SS generates the indication when a CQI value is received on HS-DPCCH after invocation of ASP CPHY-HS-DPCCH-CQI-REQ and before the numberOfReports is reached. --- This ASP is used for verifying whether the UE has configured the HS-DSCH and starts reception of HS-DSCH (3GPP TS 25.331 [21], subclause 8.6.6.34). --- 'second-cqi' shall be reported when MIMO is configured and dual transport block type A CQI report is received. When second-cqi is present, allowed values for 'cqi' are 0..14. --- In all other cases (i.e. non MIMO operation, MIMO operation but with CQI type B or single transport block type A CQI reports] 'second-cqi' shall not be reported and range for cqi is 0..30. --- 'pci' and cqiType shall be present when MIMO is configured. --- ---************************************************************** -CPHY-HS-DPCCH-CQI-IND ::= SEQUENCE { - cellId INTEGER(0..63), - ratType RatType, - cfn INTEGER (0..255), - subframe INTEGER (0..4), - cqi INTEGER (0..30), - cqiExt CQI-ExtensionType -} - ---************************************************************** --- --- CQI-ExtensionType --- Rel-7 or later --- The value -1 for second-cqi indicates the absence of the second CQI. --- ---************************************************************** -CQI-ExtensionType ::= SEQUENCE { - second-cqi INTEGER (-1..14) OPTIONAL, - pci INTEGER (0..3) OPTIONAL, -- MIMO - cqiType ENUMERATED {cqiTypeA(0), cqiTypeB(1)} OPTIONAL -- MIMO -} - ---************************************************************** --- --- CPHY-MeasurementConfig-REQ --- To configure measurement parameters --- cellDCHMeasOccasionInfo-TDD128: to configure SS for CELL-DCH measurement occasion according to TS 25.331[21] clause 8.5.11a and 8.6.7.26. No DL transmission shall be performed in the calculated timeslot. The activationTime is set to 'activateNow'. --- ---************************************************************** -CPHY-MeasurementConfig-REQ ::= SEQUENCE { - cellId INTEGER(0..63), - activationTime SS-ActivationTime, - measurement CHOICE { - rel9 SEQUENCE { - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 - -- LCR TDD Rel9 - } - } - } - ---************************************************************** --- --- CPHY-MeasurementConfig-CNF --- Confirm a previous CPHY-MeasurementConfig-REQ being successful. --- ---************************************************************** -CPHY-MeasurementConfig-CNF ::= SEQUENCE { - cellId INTEGER(0..63) - } - ---************************************************************** --- --- CRLC-Ciphering-Activate-CNF --- To confirm to activate or inactivate the ciphering --- ---************************************************************** - -CRLC-Ciphering-Activate-CNF ::= SEQUENCE { - cellId INTEGER (-1..63)} - ---************************************************************** --- --- CRLC-Ciphering-Activate-REQ --- To request to start, restart or stop downlink ciphering or uplink deciphering. The RB-identity applied to routingInfo indicates the SRB being not suspended during the execution of the ciphering mode command. Each call of the ASP includes one RLC SN in rb-DL-CiphActivationTimeInfo for the corresponding rb-identity. --- ---************************************************************** - -CRLC-Ciphering-Activate-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - ratType RatType, - cn-DomainIdentity CN-DomainIdentity, - ciphActivationInfo CiphActivationInfo, - incHFN RLC-IncMode -} - ---************************************************************** --- --- CRLC-Config-CNF --- For RLC emulator to comfirm that a previous attempt to establish, reconfigure or release a radio bearer has been successful --- ---************************************************************** - -CRLC-Config-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CRLC-Config-FDD-REQ --- To request to setup, reconfigure or release RLC entity --- ---************************************************************** - -CRLC-Config-FDD-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CrlcConfigReq, - activationTime SS-ActivationTime OPTIONAL -} - ---************************************************************** --- --- CRLC-Config-TDD-REQ --- To request to setup, reconfigure or release RLC entity --- ---************************************************************** - -CRLC-Config-TDD-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CrlcConfigReq-TDD, - activationTime SS-ActivationTime OPTIONAL -} - ---************************************************************** --- --- CRLC-Integrity-Activate-CNF --- To confirm to activate or inactivate the integrity protection --- ---************************************************************** - -CRLC-Integrity-Activate-CNF ::= SEQUENCE { - cellId INTEGER (-1..63) -} - ---************************************************************** --- --- CRLC-Integrity-Activate-REQ --- To request to start or to modify the downlink or uplink integrity protection. The ASP shall be called before the sending of SECURITY MODE COMMAND. It activates the integrity on all SRBs in DL. The ASP shall not be called if the integrity shall be switched off in the test case. --- ---************************************************************** - -CRLC-Integrity-Activate-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - cn-DomainIdentity CN-DomainIdentity, - integrityActivationInfo IntegrityActivationInfo -} - ---************************************************************** --- --- CRLC-Integrity-Failure-IND --- RLC emulator reports the occurrences of a failure in integrity protection, i.e. reception of an integrity-protected RLC AM/UM SDU containing a non-matching X-MAC value compared to the desired. --- ---************************************************************** - -CRLC-Integrity-Failure-IND ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - failureCause ENUMERATED { codeNotMatched(0) } -} - ---************************************************************** --- --- CRLC-ProhibitRLC-Ack-CNF --- To confirm that the reception of a CRLC-ProhibitRLC-Ack-REQ. --- ---************************************************************** - -CRLC-ProhibitRLC-Ack-CNF ::= SEQUENCE{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - supportflag SupportFlag DEFAULT noNeed -} - ---************************************************************** --- --- CRLC-ProhibitRLC-Ack-REQ --- To request the SS to prohibit/Continue acknowledging RLC SDUs. --- ---************************************************************** - - -CRLC-ProhibitRLC-Ack-REQ ::= SEQUENCE{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - mode ENUMERATED{prohibit(0), continue(1)} -} - ---************************************************************** --- --- CRLC-RRC-MessageSN-CNF --- To return the counter I value (HFN and RRC message sequence number) for sending the next DL RRC message or for receiving the next UL RRC message on the concerned SRB. --- COUNT-I-MSB is the 28 MSB of the COUNT-I (HFN) --- ---************************************************************** - -CRLC-RRC-MessageSN-CNF ::= SEQUENCE -{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - count-I-MSB-UL COUNT-I-MSB, - count-I-LSB-UL RRC-SequenceNumber, - count-I-MSB-DL COUNT-I-MSB, - count-I-LSB-DL RRC-SequenceNumber -} - ---************************************************************** --- --- CRLC-RRC-MessageSN-REQ --- To request the SS to return the values in COUNT-I for sending the next DL RRC message or for receiving the next UL RRC message on the concerned SRB. --- ---************************************************************** - -CRLC-RRC-MessageSN-REQ ::= SEQUENCE -{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CRLC-Resume-CNF --- To confirm the resume request --- ---************************************************************** - -CRLC-Resume-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CRLC-Resume-REQ --- To request to resume data transmission. --- If the SS implemented the optional suspension of UL data PDUs, then the processing in the UL of data PDUs shall be resumed. Any suspended UL control PDUs and Piggybacked Status shall be preceeded or resumed. --- ---************************************************************** - -CRLC-Resume-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CRLC-SecurityMode-Config-CNF --- To confirm to configure the ciphering --- ---************************************************************** - -CRLC-SecurityMode-Config-CNF ::= SEQUENCE { - cellId INTEGER (-1..63) -} - ---************************************************************** --- --- CRLC-SecurityMode-Config-REQ --- To request to configure the RLC security mode --- If several subsequent CRLC-Integrity-Activate-REQ or CRLC-Ciphering-Activate-REQ follow this ASP, the SS shall take a serial of specified actions on the same contents in this ASP at the activation time indicated in each CRLC- Integrity (or Ciphering)-Activate-REQ. --- ---************************************************************** - -CRLC-SecurityMode-Config-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - rlcSecurityInfo SecurityInfo -} - ---************************************************************** --- --- CRLC-SequenceNumber-CNF --- To return the requested counter sequence number to which the next DL PDU to be sent or the expected UL PDU to be received. --- ---************************************************************** - -CRLC-SequenceNumber-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - count-C-MSB-UL COUNT-C-MSB , - count-C-LSB-UL RLC-SequenceNumber, - count-C-MSB-DL COUNT-C-MSB , - count-C-LSB-DL RLC-SequenceNumber -} - ---************************************************************** --- --- CRLC-SequenceNumber-REQ --- To request the RLC layer to return current counter sequence numbers to which the next DL PDU to be sent or the expected UL PDU to be received. --- ---************************************************************** - -CRLC-SequenceNumber-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CRLC-SetRRC-MessageSN-CNF --- To confirm the RRC message sequence number setting request --- ---************************************************************** - -CRLC-SetRRC-MessageSN-CNF ::= SEQUENCE -{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CRLC-SetRRC-MessageSN-REQ --- To request the SS to set the RRC message sequence number in COUNT-I to the value specified in this ASP. The ASP is used to initialise SS RRC --- ---************************************************************** - -CRLC-SetRRC-MessageSN-REQ ::= SEQUENCE -{ - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - count-I-LSB-UL RRC-SequenceNumber OPTIONAL, - count-I-LSB-DL RRC-SequenceNumber OPTIONAL -} - ---************************************************************** --- --- CRLC-Suspend-CNF --- To confirm the suspension of data transmission. The parameter vt indicates either the value of the Send State Variable VT(S) for AM, or the value of Data State Varialble VT(US) for UM. --- ---************************************************************** - -CRLC-Suspend-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - vt RLC-SequenceNumber -} - ---************************************************************** --- --- CRLC-Suspend-REQ --- To request the suspension of data transmission. The parameter n indicates that an RLC entity will not send a PDU with "Sequence Number" VT(S)+N for AM and "Sequence Number" VT(US)+N for UM, where N is a non-negative integer. Optionally an SS may start immediate suspension of processing of data PDUs in the UL. The UL control PDUs and Piggybacked Status may optionally be processed. --- ---************************************************************** - -CRLC-Suspend-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - n RLC-SequenceNumber -} - ---************************************************************** --- --- RLC-AM-DATA-CNF --- ---************************************************************** - -RLC-AM-DATA-CNF ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - mui Mui -} - ---************************************************************** --- --- RLC-AM-DATA-IND --- To indicate to receive DATA using ackowledged mode --- ---************************************************************** - -RLC-AM-DATA-IND ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - integrityResult IntegrityResult , - aM-message CHOICE { - uL-DCCH-Message UL-DCCH-Message, - uL-CCCH-Message UL-CCCH-Message, - uL-SHCCH-Message UL-SHCCH-Message - } -} - ---************************************************************** --- --- RLC-AM-DATA-REQ --- To request to transmit DATA using ackowledged mode --- ---************************************************************** - -RLC-AM-DATA-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - confirmationRequest AmConfirmationRequest, - aM-message CHOICE { - dL-DCCH-Message DL-DCCH-Message, - dL-CCCH-Message DL-CCCH-Message, - pCCH-Message PCCH-Message, - dL-SHCCH-Message DL-SHCCH-Message, - bCCH-FACH-Message BCCH-FACH-Message, - bCCH-BCH-Message BCCH-BCH-Message, - invalid-dL-DCCH-Message Invalid-DL-DCCH-Message - -- invalid-dL-CCCH-Message Invalid-DL-CCCH-Message, - -- invalid-dL-SHCCH-Message Invalid-DL-SHCCH-Message - } -} - ---************************************************************** --- --- RLC-TR-DATA-IND --- To indicate to receivet DATA using transparent mode --- ---************************************************************** - -RLC-TR-DATA-IND ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - tM-message CHOICE { - uL-DCCH-Message UL-DCCH-Message, - uL-CCCH-Message UL-CCCH-Message, - uL-SHCCH-Message UL-SHCCH-Message - } -} - ---************************************************************** --- --- RLC-TR-DATA-REQ --- To request to transmit DATA using transparent mode --- ---************************************************************** - -RLC-TR-DATA-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - tM-message CHOICE { - dL-DCCH-Message DL-DCCH-Message, - dL-CCCH-Message DL-CCCH-Message, - pCCH-Message PCCH-Message, - dL-SHCCH-Message DL-SHCCH-Message, - bCCH-FACH-Message BCCH-FACH-Message, - bCCH-BCH-Message BCCH-BCH-Message - -- invalid-dL-DCCH-Message Invalid-DL-DCCH-Message, - -- invalid-dL-CCCH-Message Invalid-DL-CCCH-Message, - -- invalid-dL-SHCCH-Message Invalid-DL-SHCCH-Message - } -} - ---************************************************************** --- --- RLC-UM-DATA-IND --- To indicate to receivet DATA using unacknowledged mode --- ---************************************************************** - -RLC-UM-DATA-IND ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - integrityResult IntegrityResult, - uM-message CHOICE { - uL-DCCH-Message UL-DCCH-Message, - uL-CCCH-Message UL-CCCH-Message, - uL-SHCCH-Message UL-SHCCH-Message - } -} - ---************************************************************** --- --- RLC-UM-DATA-REQ --- To request to transmit DATA using unacknowledged mode --- ---************************************************************** - -RLC-UM-DATA-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - uM-message CHOICE { - dL-DCCH-Message DL-DCCH-Message, - dL-CCCH-Message DL-CCCH-Message, - pCCH-Message PCCH-Message, - dL-SHCCH-Message DL-SHCCH-Message, - bCCH-FACH-Message BCCH-FACH-Message, - bCCH-BCH-Message BCCH-BCH-Message, - invalid-dL-DCCH-Message Invalid-DL-DCCH-Message --, - -- invalid-dL-CCCH-Message Invalid-DL-CCCH-Message, - -- invalid-dL-SHCCH-Message Invalid-DL-SHCCH-Message - }, - specialLI BOOLEAN -} - ---************************************************************** --- --- CMAC-MACe-Config-CNF --- Confirm a previous CMAC-MACe-Config-REQ being successful. --- ---************************************************************** - -CMAC-MACe-Config-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63) -} - ---************************************************************** --- --- CMAC-MACe-Config-FDD-REQ --- ---************************************************************** - -CMAC-MACe-Config-FDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - configMessage CHOICE { - setup MACeConfig, - reconfig MACeConfig, - reset NULL, - release SS-ActivationTime - } -} - ---************************************************************** --- --- CMAC-MACe-Config-TDD-REQ --- PCO Type: CSAP --- ---************************************************************** - -CMAC-MACe-Config-TDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - configMessage CHOICE { - setup MACeConfig-TDD, - reconfig MACeConfig-TDD, - reset NULL, - release SS-ActivationTime - } -} - ---************************************************************** --- --- CMAC-MACe-NodeB-CellMapping-CNF --- Confirm a previous CMAC-MACe-NodeB-CellMapping-REQ being successful. --- ---************************************************************** - -CMAC-MACe-NodeB-CellMapping-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63) -} - ---************************************************************** --- --- CMAC-MACe-NodeB-CellMapping-REQ --- To put a set of cells under the control of a MAC-e entity indicated by nodeB-Id, which is configured by CMAC-MAC-e-Config-REQ. --- This ASP establishes the routing relation between E-DCH related channels in these cells with a MAC-e entity. --- A cell is mapped to only one NodeB, and the cellId allocation is unique in a test. --- ---************************************************************** - -CMAC-MACe-NodeB-CellMapping-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - celllist SEQUENCE OF INTEGER (0..63) -} - ---************************************************************** --- --- CMAC-MACes-Config-CNF --- Confirm a previous CMAC-MACes-Config-REQ being successful. cellId=-1. --- ---************************************************************** - -CMAC-MACes-Config-CNF ::= SEQUENCE { - cellId INTEGER (-1..63) -} - ---************************************************************** --- --- CMAC-MACes-Config-REQ --- This ASP is used for creating and configuring, reconfiguring, resetting or releasing an MAC-es, a cell / nodeB-independent entity in the SS. cellId=-1. --- ---************************************************************** - -CMAC-MACes-Config-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - configMessage CHOICE { - setup MACesConfig, - reconfig MACesConfig, - reset NULL, - release SS-ActivationTime } -} - ---************************************************************** --- --- CMAC-MAChs-TFRCconfigure-CNF --- Applicable Rel-5 or later. --- Confirm a previous CMAC-MAChs-TFRCconfigure-REQ being successful. --- ---************************************************************** - -CMAC-MAChs-MACehs-TFRCconfigure-CNF ::= SEQUENCE { - cellId INTEGER (-1..63) -} - ---************************************************************** --- --- CMAC-MAChs-TFRCconfigure-FDD-REQ --- Applicable Rel-5 or later. --- To configure the TFRC selection entity in the MAC-hs entity. --- channelisationCodeOffset + noOfChannelisationCodes shall not be great than 15; --- noOfChannelisaionCodes = 0 means to delete the HS-PDSCH and HS-SCCH channels, and release all related resource. --- If explicit is selected, the SS shall use the values specified here for the parameters "modulationScheme", "channelisationCodeOffset", "noOfChannelisatonCodes ", tbSizeIndexOnHS-SCCH", "redundancyVersion" and "hs-PDSCH-TxPower". --- If sS-Configured is selected, the values specified here are the ranges for "channelisationCodeOffset", "noOfChannelisationCodes", and the initial value of HS-PDSCH transmission power, the SS shall dynamically select the suitable values for the parameters "modulationScheme", "channelisationCodeOffset", "noOfChannelisatonCodes ", tbSizeIndexOnHS-SCCH", "redundancyVersion" and "hs-PDSCH-TxPower" according to the CQI information reported by the UE and the UE's capability category, --- ---************************************************************** - -CMAC-MAChs-MACehs-TFRCconfigure-FDD-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - tfrcConfigMode CHOICE { - explicitlyConfigured SEQUENCE { - modulationScheme ModulationScheme, - channelisationCodeOffset INTEGER (1..15), --@sic R5w140013 sic@ - noOfChannelisationCodes INTEGER (1..15), - tbSizeIndexOnHS-SCCH INTEGER (0..63), - minimumInterTTIinterval INTEGER (1..3), - redundancyVersions RedundancyVersionList, - hs-PDSCH-TxPower DL-TxPower -- default offset related - -- to p-CPICH or s-CPICH - }, - sS-Configured SEQUENCE { - minChannelisationCodeOffset INTEGER (1..15), - maxNoOfChannelisationCodes INTEGER (1..15), - iniHS-PDSCH-TxPower DL-TxPower, -- default offset related - -- to p-CPICH or s-CPICH - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoStatus BOOLEAN DEFAULT FALSE - }, - explicitHS-SCCH-LessMode SEQUENCE{ - hs-pdsch-CodeIndex INTEGER (1..15), - hs-scch-LessTFI INTEGER (1..90), - hs-scch-LessSecondCodeApplicability BOOLEAN, - tbs INTEGER (0..3), - -- the index of tbs for HS-SCCH less operation - -- The value should be consistent with code index, TFI and second - -- code applicability - minimumInterTTIinterval INTEGER (1..3), - hs-PDSCH-TxPower DL-TxPower - -- default offset related to p-CPICH or s-CPICH - }, - explicitMIMO SEQUENCE { - modulationSchemeAndNumTB INTEGER(0..7), - -- set according to table 14 of 25.212 - -- Values 1,2 and 5 are used for 64QAM+MIMO. Rel-8 or later - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - precodingWeight2 INTEGER (0..3), - -- set according to table 14a of 25.212 - primaryTB-SizeIndexOnHS-SCCH INTEGER (0..63), - secondaryTB-SizeIndexOnHS-SCCH INTEGER (0..63) OPTIONAL, - -- present only if second TB is to be tx as per modulationSchemeAndNumTB - minimumInterTTIinterval INTEGER (1..3), - primaryRedundancyVersions RedundancyVersionList, - secondaryRedundancyVersions RedundancyVersionList OPTIONAL, - -- present only if second TB is to be tx as per modulationSchemeAndNumTB - hs-PDSCH-TxPower DL-TxPower -- default offset related - -- to p-CPICH or s-CPICH - }, - sS-Configured-DC SEQUENCE { - serving-minChannelisationCodeOffset INTEGER (1..15), - serving-maxNoOfChannelisationCodes INTEGER (1..15), - serving-mimoStatus BOOLEAN DEFAULT FALSE, -- Rel-9 or later - sec-minChannelisationCodeOffset INTEGER (1..15), - sec-maxNoOfChannelisationCodes INTEGER (1..15), - sec-mimoStatus BOOLEAN DEFAULT FALSE, -- Rel-9 or later - iniHS-PDSCH-TxPower DL-TxPower, - -- default offset related - -- to p-CPICH or s-CPICH - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL - }, - explicitlyDC SEQUENCE { - servingTFRC SEQUENCE { - modulationScheme ModulationScheme, - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - tbSizeIndexOnHS-SCCH INTEGER (0..63), - minimumInterTTIinterval INTEGER (1..3), - redundancyVersions RedundancyVersionList, - hs-PDSCH-TxPower DL-TxPower -- default offset related - -- to p-CPICH or s-CPICH - } OPTIONAL, -- when omitted then no data is sent on the serving HS-DSCH cell - secondaryTFRC SEQUENCE { - modulationScheme ModulationScheme, - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - tbSizeIndexOnHS-SCCH INTEGER (0..63), - minimumInterTTIinterval INTEGER (1..3), - redundancyVersions RedundancyVersionList, - hs-PDSCH-TxPower DL-TxPower -- default offset related - -- to p-CPICH or s-CPICH - } OPTIONAL -- when omitted then no data is sent on the secondary HS-DSCH cell - }, - explicitlyDC-MIMO SEQUENCE { -- Rel-9 or later - servingTFRC SEQUENCE{ - modulationSchemeAndNumTB INTEGER(0..7), - -- set according to table 14 of 25.212 - -- Values 1,2 and 5 are used for 64QAM+MIMO. Rel-8 or later - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - precodingWeight2 INTEGER (0..3), - -- set according to table 14a of 25.212 - primaryTB-SizeIndexOnHS-SCCH INTEGER (0..63), - secondaryTB-SizeIndexOnHS-SCCH INTEGER (0..63) OPTIONAL, - -- present only if second TB is to be tx - -- as per modulationSchemeAndNumTB - minimumInterTTIinterval INTEGER (1..3), - primaryRedundancyVersions RedundancyVersionList, - secondaryRedundancyVersions RedundancyVersionList OPTIONAL, - -- present only if second TB is to be tx - -- as per modulationSchemeAndNumTB - hs-PDSCH-TxPower DL-TxPower - -- default offset related - -- to p-CPICH or s-CPICH - } OPTIONAL, - -- when omitted then no data is sent on the serving HS-DSCH cell - secondaryTFRC SEQUENCE{ - modulationSchemeAndNumTB INTEGER(0..7), - -- set according to table 14 of 25.212 - -- Values 1,2 and 5 are used for 64QAM+MIMO. Rel-8 or later - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - precodingWeight2 INTEGER (0..3), - -- set according to table 14a of 25.212 - primaryTB-SizeIndexOnHS-SCCH INTEGER (0..63), - secondaryTB-SizeIndexOnHS-SCCH INTEGER (0..63) OPTIONAL, - -- present only if second TB is to be tx - -- as per modulationSchemeAndNumTB - minimumInterTTIinterval INTEGER (1..3), - primaryRedundancyVersions RedundancyVersionList, - secondaryRedundancyVersions RedundancyVersionList OPTIONAL, - -- present only if second TB is to be tx - -- as per modulationSchemeAndNumTB - hs-PDSCH-TxPower DL-TxPower - -- default offset related - -- to p-CPICH or s-CPICH - } OPTIONAL - -- when omitted then no data is sent on the secondary HS-DSCH cell - }, - relAspTypeExtension TFRCconfigure-r10OrLaterExtensionType -- Rel-10 or later @sic R5-130613 R5-134957 sic@ - }, - activationTime SS-ActivationTime, - ss-DTX-Info DRX-Info OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - ---************************************************************** --- --- TFRCconfigure-r10OrLaterExtensionType --- Rel-10 or later --- Extension to configure the TFRC selection in the MAC-ehs entity when 4C-HSDPA is configured. --- ---************************************************************** -TFRCconfigure-r10OrLaterExtensionType ::= CHOICE { - rel10-AspExt CHOICE { - sS-Configured-4C SEQUENCE { -- Rel-10 3C/4C HSDPA - serving-TFRC TFRC-Configured-Type, - firstSecondary-TFRC TFRC-Configured-Type, - secondSecondary-TFRC TFRC-Configured-Type, - thirdSecondary-TFRC TFRC-Configured-Type OPTIONAL, - -- for the third secondary cell when configured - iniHS-PDSCH-TxPower DL-TxPower, - -- default offset related - -- to p-CPICH or s-CPICH - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL - }, - explicitlyConfigured-4C SEQUENCE { -- Rel-10 3C/4C HSDPA - serving-TFRC TFRC-Explicit-Type OPTIONAL, - -- when omitted then no data is sent on the serving HS-DSCH cell - firstSecondary-TFRC TFRC-Explicit-Type OPTIONAL, - -- when omitted then no data is sent on the secondary HS-DSCH cell - secondSecondary-TFRC TFRC-Explicit-Type OPTIONAL, - -- when omitted then no data is sent on the secondary HS-DSCH cell - thirdSecondary-TFRC TFRC-Explicit-Type OPTIONAL - -- for the third secondary cell when configured - -- when omitted then no data is sent on the secondary HS-DSCH cell - }, - explicitlyConfigured-4C-MIMO SEQUENCE { -- Rel-10 3C/4C HSDPA - serving-TFRC TFRC-ExplicitMIMO-Type OPTIONAL, - -- when omitted then no data is sent on the serving HS-DSCH cell - firstSecondary-TFRC TFRC-ExplicitMIMO-Type OPTIONAL, - -- when omitted then no data is sent on the secondary HS-DSCH cell - secondSecondary-TFRC TFRC-ExplicitMIMO-Type OPTIONAL, - -- when omitted then no data is sent on the secondary HS-DSCH cell - thirdSecondary-TFRC TFRC-ExplicitMIMO-Type OPTIONAL - -- for the third secondary cell when configured - -- when omitted then no data is sent on the secondary HS-DSCH cell - } - } -} - ---************************************************************** --- --- TFRC-Configured-Type --- Rel-10 or later. --- ---************************************************************** - -TFRC-Configured-Type ::= SEQUENCE { - minChannelisationCodeOffset INTEGER (1..15), - maxNoOfChannelisationCodes INTEGER (1..15), - mimoStatus BOOLEAN DEFAULT FALSE -} - ---************************************************************** --- --- TFRC-Explicit-Type --- Rel-10 or later. --- ---************************************************************** - -TFRC-Explicit-Type ::= SEQUENCE{ - modulationScheme ModulationScheme, - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - tbSizeIndexOnHS-SCCH INTEGER (0..63), - minimumInterTTIinterval INTEGER (1..3), - redundancyVersions RedundancyVersionList, - hs-PDSCH-TxPower DL-TxPower -- default offset related - -- to p-CPICH or s-CPICH -} - ---************************************************************** --- --- TFRC-ExplicitMIMO-Type --- Rel-10 or later. --- ---************************************************************** - -TFRC-ExplicitMIMO-Type ::= SEQUENCE{ - modulationSchemeAndNumTB INTEGER(0..7), - -- set according to table 14 of 25.212 - -- Values 1,2 and 5 are used for 64QAM+MIMO - channelisationCodeOffset INTEGER (1..15), - noOfChannelisationCodes INTEGER (1..15), - precodingWeight2 INTEGER (0..3), - -- set according to table 14a of 25.212 - primaryTB-SizeIndexOnHS-SCCH INTEGER (0..63), - secondaryTB-SizeIndexOnHS-SCCH INTEGER (0..63) OPTIONAL, - -- present only if second TB is to be tx - -- as per modulationSchemeAndNumTB - minimumInterTTIinterval INTEGER (1..3), - primaryRedundancyVersions RedundancyVersionList, - secondaryRedundancyVersions RedundancyVersionList OPTIONAL, - -- present only if second TB is to be tx - -- as per modulationSchemeAndNumTB - hs-PDSCH-TxPower DL-TxPower - -- default offset related - -- to p-CPICH or s-CPICH -} - - ---************************************************************** --- --- CMAC-MAChs-MACehs-TFRCconfigure-TDD-REQ --- Applicable Rel-5 or later. --- To configure the TFRC selection entity in the MAC-hs entity. --- channelisationCodeOffset + noOfChannelisationCodes shall not be great than 15; --- noOfChannelisaionCodes = 0 means to delete the HS-PDSCH and HS-SCCH channels, and release all related resource. --- If explicit is selected, the SS shall use the values specified here for the parameters "modulationScheme", "channelisationCodeOffset", "noOfChannelisatonCodes ", tbSizeIndexOnHS-SCCH", "redundancyVersion" and "hs-PDSCH-TxPower". --- If sS-Configured is selected, the values specified here are the ranges for "channelisationCodeOffset", "noOfChannelisationCodes", and the initial value of HS-PDSCH transmission power, the SS shall dynamically select the suitable values for the parameters "modulationScheme", "channelisationCodeOffset", "noOfChannelisatonCodes ", tbSizeIndexOnHS-SCCH", "redundancyVersion" and "hs-PDSCH-TxPower" according to the CQI information reported by the UE and the UE's capability category, --- ---************************************************************** - -CMAC-MAChs-MACehs-TFRCconfigure-TDD-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - tfrcConfigMode CHOICE { - explicitlyConfigured SEQUENCE { - modulationScheme ModulationScheme, - noOfTimeSlots BIT STRING (SIZE (5)), - startCode HS-ChannelisationCode-LCR, - stopCode HS-ChannelisationCode-LCR, - noOfCodesPerTimeslot INTEGER (0..16), - tbSizeIndexOnHS-SCCH INTEGER (0..63), - redundancyVersions RedundancyVersionList, - hs-PDSCH-TxPower DL-TxPower -- default offset related - -- to p-PCCPCH - }, - sS-Configured SEQUENCE { - numofTimeslots INTEGER (0..6), - startCode HS-ChannelisationCode-LCR, - stopCode HS-ChannelisationCode-LCR, - numofCodesPerTimeslot INTEGER (0..16), - iniHS-PDSCH-TxPower DL-TxPower, -- default offset related - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later - }, - activationTime SS-ActivationTime OPTIONAL -} - ---************************************************************** --- --- HS-DPCCHInfo-r8 --- mimoStatus represents status of MIMO and shall be set only if mimo-Parameters are provided in HS-PDSCH configuration. --- secondaryServing-HS-DSCH-Cell indicates if the HS-DSCH secondary serving cell is activated (see 3GPP TS 25.214[12] cl 6A.1) --- @sic R5-101047 sic@ --- ---************************************************************** - -HS-DPCCHInfo-r8 ::= SEQUENCE { - cqi-RepetitionFactor CQI-RepetitionFactor, - ackNackRepetitionFactor ACK-NACK-repetitionFactor, - mimoStatus BOOLEAN DEFAULT FALSE, - secondaryServing-HS-DSCH-Cell ENUMERATED { deactivated (0), activated (1) } DEFAULT deactivated - -- Rel-8 or later -} - ---************************************************************** --- --- SS-MBMS-MICHConfigurationInfo-r6 --- Rel-6 or later. --- ---************************************************************** - -SS-MBMS-MICHConfigurationInfo-r6 ::= SEQUENCE { - michinfo MBMS-MICHConfigurationInfo-r6, - sccpchId-associated INTEGER (0..31) -} - ---************************************************************** --- --- Invalid-DL-DCCH-Message --- PCO Type: DSAP --- ---************************************************************** - -Invalid-DL-DCCH-Message ::= SEQUENCE { - integrityCheckInfo [0] IntegrityCheckInfo OPTIONAL --- asn1-message [1] Invalid-DL-DCCH-MsgType -} - -U-CMAC-CONFIG-REQ ::= CHOICE { - config-FDD CMAC-Config-FDD-REQ, - config-TDD CMAC-Config-TDD-REQ, - sysInfo CMAC-SYSINFO-Config-REQ, - secMode CMAC-SecurityMode-Config-REQ, - cipher CMAC-Ciphering-Activate-REQ, - page-FDD CMAC-PAGING-Config-FDD-REQ, - page-TDD CMAC-PAGING-Config-TDD-REQ, - configMACes CMAC-MACes-Config-REQ, - configMACe-FDD CMAC-MACe-Config-FDD-REQ, - configMACe-TDD CMAC-MACe-Config-TDD-REQ, - nodeB CMAC-MACe-NodeB-CellMapping-REQ, - tfrc-FDD CMAC-MAChs-MACehs-TFRCconfigure-FDD-REQ, - tfrc-TDD CMAC-MAChs-MACehs-TFRCconfigure-TDD-REQ, - configMACi-FDD CMAC-MACi-Config-FDD-REQ, - configMACi-TDD CMAC-MACi-Config-TDD-REQ, - nodeB-MACi CMAC-MACi-NodeB-CellMapping-REQ, - configMACis CMAC-MACis-Config-REQ, - configMACi-AG-FDD CMAC-MACi-AG-FDD-REQ, --@sic R5w140013 sic@ - configMACi-AG-TDD CMAC-MACi-AG-TDD-REQ, --@sic R5w140013 sic@ - configMACiE-TFC-FDD CMAC-MACi-E-TFC-Restriction-FDD-REQ, --@sic R5w140208 sic@ - configMACiE-TFC-TDD CMAC-MACi-E-TFC-Restriction-TDD-REQ, --@sic R5w140208 sic@ - configHARQ-MultiFlow CMAC-MACehs-HARQAssign-MultiFlows-REQ, - configRestriction CMAC-Restriction-REQ -} - -U-CMAC-CONFIG-CNF ::= CHOICE { - config CMAC-Config-CNF, - sysInfo CMAC-SYSINFO-Config-CNF, - secMode CMAC-SecurityMode-Config-CNF, - cipher CMAC-Ciphering-Activate-CNF, - page CMAC-PAGING-Config-CNF, - configMACes CMAC-MACes-Config-CNF, - configMACe CMAC-MACe-Config-CNF, - nodeB CMAC-MACe-NodeB-CellMapping-CNF, - tfrc CMAC-MAChs-MACehs-TFRCconfigure-CNF, - configMACi CMAC-MACi-Config-CNF, - nodeB-MACi CMAC-MACi-NodeB-CellMapping-CNF, - configMACis CMAC-MACis-Config-CNF, - configMACi-AG-FDD CMAC-MACi-AG-FDD-CNF, -- @sic R5-144761 sic@ - configMACi-AG-TDD CMAC-MACi-AG-TDD-CNF, -- @sic R5-144761 sic@ - configMACiE-TFC CMAC-MACi-E-TFC-Restriction-CNF , - configHARQ-MultiFlow CMAC-MACehs-HARQAssign-MultiFlows-CNF, - configRestriction CMAC-Restriction-CNF -} - -U-CPHY-CONFIG-CNF ::= CHOICE { - rlSetup CPHY-RL-Setup-CNF, - rlModify CPHY-RL-Modify-CNF, - rlRelease CPHY-RL-Release-CNF, - trchConfig CPHY-TrCH-Config-CNF, - trchRelease CPHY-TrCH-Release-CNF, - cellConfig CPHY-Cell-Config-CNF, - cellRelease CPHY-Cell-Release-CNF, - ini CPHY-Ini-CNF, - txPower CPHY-Cell-TxPower-Modify-CNF, - frameNo CPHY-Frame-Number-CNF, - sync CPHY-Sync-IND, - outOfSync CPHY-Out-of-Sync-IND, - hSDpcchCQI-MultiCell CPHY-HS-DPCCH-CQI-MultiCell-CNF, -- @sic R5-134957 sic@ - hSDpcchCQI-MultiCellInd CPHY-HS-DPCCH-CQI-MultiCell-IND, -- @sic R5-134957 sic@ - measurementConfig CPHY-MeasurementConfig-CNF, -- @sic R5-134957 sic@ - hSDpcchCQI CPHY-HS-DPCCH-CQI-CNF, - hSDpcchCQI-Ind CPHY-HS-DPCCH-CQI-IND - } - -U-CPHY-CONFIG-REQ ::= CHOICE { - rlSetup-FDD CPHY-RL-Setup-FDD-REQ, - rlSetup-TDD CPHY-RL-Setup-TDD-REQ, - rlModify-FDD CPHY-RL-Modify-FDD-REQ, - rlModify-TDD CPHY-RL-Modify-TDD-REQ, - rlRelease-FDD CPHY-RL-Release-FDD-REQ, - rlRelease-TDD CPHY-RL-Release-TDD-REQ, - trchConfig-FDD CPHY-TrCH-Config-FDD-REQ, - trchConfig-TDD CPHY-TrCH-Config-TDD-REQ, - trchRelease-FDD CPHY-TrCH-Release-FDD-REQ, - trchRelease-TDD CPHY-TrCH-Release-TDD-REQ, - cellConfig-FDD CPHY-Cell-Config-FDD-REQ, - cellConfig-TDD CPHY-Cell-Config-TDD-REQ, - cellRelease CPHY-Cell-Release-REQ, - ini CPHY-Ini-REQ, - txPower CPHY-Cell-TxPower-Modify-REQ, - frameNo CPHY-Frame-Number-REQ, - hSDpcchCQI-MultiCell CPHY-HS-DPCCH-CQI-MultiCell-REQ, -- @sic R5-134957 sic@ - measurementConfig CPHY-MeasurementConfig-REQ, -- @sic R5-134957 sic@ - hSDpcchCQI CPHY-HS-DPCCH-CQI-REQ -} - -U-CRLC-CONFIG-CNF ::= CHOICE { - config CRLC-Config-CNF, - seqNo CRLC-SequenceNumber-CNF, - secMode CRLC-SecurityMode-Config-CNF, - cipher CRLC-Ciphering-Activate-CNF, - integrity CRLC-Integrity-Activate-CNF, - integrityFail CRLC-Integrity-Failure-IND, - setRRCmsgSN CRLC-SetRRC-MessageSN-CNF, - rrcMsgSN CRLC-RRC-MessageSN-CNF, - resume CRLC-Resume-CNF, - suspend CRLC-Suspend-CNF, - prohibit CRLC-ProhibitRLC-Ack-CNF, - bindTestDataMultiFlow CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-CNF -} - -U-CRLC-CONFIG-REQ ::= CHOICE { - config-FDD CRLC-Config-FDD-REQ, -- @sic R5-110103 sic@ - config-TDD CRLC-Config-TDD-REQ, -- @sic R5-110103 sic@ - seqNo CRLC-SequenceNumber-REQ, - secMode CRLC-SecurityMode-Config-REQ, - cipher CRLC-Ciphering-Activate-REQ, - integrity CRLC-Integrity-Activate-REQ, - setRRCmsgSN CRLC-SetRRC-MessageSN-REQ, - rrcMsgSN CRLC-RRC-MessageSN-REQ, - resume CRLC-Resume-REQ, - suspend CRLC-Suspend-REQ, - prohibit CRLC-ProhibitRLC-Ack-REQ, - bindTestDataMultiFlow CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-REQ -} - -U-CPDCP-CONFIG-CNF ::= CHOICE { - config CPDCP-Config-CNF -} - -U-CPDCP-CONFIG-REQ ::= CHOICE { - config CPDCP-Config-REQ -} ---************************************************************** --- --- CMAC-MACi-Config-CNF --- Rel-8 or later --- Confirm a previous CMAC-MACi-Config-REQ being successful. --- ---************************************************************** -CMAC-MACi-Config-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63) -} - ---************************************************************** --- --- CMAC-MACi-Config-FDD-REQ --- Rel-8 or later --- ---************************************************************** -CMAC-MACi-Config-FDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - configMessage CHOICE { - setup MACiConfig-FDD, - reconfig MACiConfig-FDD, - reset NULL, - release SS-ActivationTime - } -} - ---************************************************************** --- --- CMAC-MACi-Config-TDD-REQ --- Rel-8 or later --- ---************************************************************** -CMAC-MACi-Config-TDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - configMessage CHOICE { - setup MACiConfig-TDD, - reconfig MACiConfig-TDD, - reset NULL, - release SS-ActivationTime - } -} - ---************************************************************** --- --- MACiConfig-FDD --- If the macHeaderManipulation field is 'NormalMacHeader' in lCH-Mappinglist, then data received on the E-DCH (MAC-i PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, and the MACis PDU shall be passed to the MAC-is together with the relevant LCH-ID, length, F, CFN and subframe number. --- If the macHeaderManipulation field field is 'OmitMacHeader', then data received on the E-DCH (MAC-i PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, then the MAC-i layer shall deliver the MAC-is PDU, SI and the related CFN, subframe number to the MAC-is entity. --- connectedToMAC-is field is used to provide the possibility that the E DCH MACdFlows from only one MAC-i entity are connected to the MAC-is entity in the inter node B soft handover test cases. When MAC-i is configured in enhanced FACH UL using commonMac-i-r8, the MAC-i entity is always connected to MAC-is. In DC-HSUPA configuration, one MAC-i entity is connected to the MAC-is entity. In DC-HSUPA, e-DCHMacdFlows is applied to the two E-DCH transport channels in the primary and secondary UL frequency. --- The IEs lCH-Mappinglist and e-DCHMacdFlows can be OMITted when changing the serving cell MAC-i without modification of MAC-i configurations. It will be applied in EDCH SHO. --- ss-DRX-MAC-Info presence indicates UL DRX shall be applied. --- Presence of tSN-FieldExtension indicates that the TSN field extension is used as defined in TS 25.321[17] clause 9.2.4.3; the absence indicates that 6 bits TSN is used. ---************************************************************** -MACiConfig-FDD ::= CHOICE { - mAC-i-r8 SEQUENCE { -- Rel-8 or later - activationTime SS-ActivationTime, - lCH-Mappinglist LCH-MappingList OPTIONAL, - e-DCHMacdFlows E-DCHMACdFlows OPTIONAL, - connectedToMAC-is BOOLEAN DEFAULT TRUE, - -- can be set to FALSE in inter nodeB SHO - ss-DRX-MAC-Info SS-DRX-MAC-Info OPTIONAL - }, - commonMac-i-r8 SEQUENCE { - activationTime SS-ActivationTime, - lCH-Mappinglist LCH-MappingList OPTIONAL, - e-DCHMacdFlows CommonE-DCHMACdFlows OPTIONAL, - additional-E-DCH-TransmitBackoff INTEGER (0..15), - max-CCCH-ResourceAllocation ENUMERATED { - tti8(0), tti12(1), tti16(2), tti20(3), tti24(4), tti32(5), - tti40(6), tti80(7)}, - max-PeriodForCollisionResolution INTEGER (8..24) - }, - mAC-i-r9 SEQUENCE { -- Rel-9 or later - activationTime SS-ActivationTime, - lCH-Mappinglist LCH-MappingList OPTIONAL, - e-DCHMacdFlows E-DCHMACdFlows OPTIONAL, - connectedToMAC-is BOOLEAN DEFAULT TRUE, -- can be set to FALSE in inter nodeB SHO - ss-DRX-MAC-Info SS-DRX-MAC-Info OPTIONAL, - tSN-FieldExtension BOOLEAN DEFAULT FALSE - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-130613 sic@ -} - ---************************************************************** --- --- MACiConfig-TDD --- If the macHeaderManipulation field is 'NormalMacHeader' in lCH-Mappinglist, then data received on the E-DCH (MAC-i PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, and the MACis PDU shall be passed to the MAC-is together with the relevant LCH-ID, length, F, CFN and subframe number. --- If the macHeaderManipulation field field is 'OmitMacHeader', then data received on the E-DCH (MAC-i PDU) shall have it's MAC header inspected to de-multiplex and to determine the appropriate routing, then the MAC-i layer shall deliver the MAC-is PDU, SI and the related CFN, subframe number to the MAC-is entity. --- connectedToMAC-is field is used to provide the possibility that the E DCH MACdFlows from only one MAC-i entity are connected to the MAC-is entity in the inter node B soft handover test cases. When MAC-i is configured in enhanced FACH UL using commonMac-i-r8, the MAC-i entity is always connected to MAC-is. In DC-HSUPA configuration, one MAC-i entity is connected to the MAC-is entity. In DC-HSUPA, e-DCHMacdFlows is applied to the two E-DCH transport channels in the primary and secondary UL frequency. --- The IEs lCH-Mappinglist and e-DCHMacdFlows can be OMITted when changing the serving cell MAC-i without modification of MAC-i configurations. It will be applied in EDCH SHO. --- ss-DRX-MAC-Info presence indicates UL DRX shall be applied. --- ---************************************************************** -MACiConfig-TDD ::= CHOICE { - mAC-i-r8 SEQUENCE { -- Rel-8 or later - activationTime SS-ActivationTime, - lCH-Mappinglist LCH-MappingList OPTIONAL, - e-DCHMacdFlows E-DCHMACdFlows-TDD OPTIONAL, - connectedToMAC-is BOOLEAN DEFAULT TRUE - -- can be set to FALSE in inter nodeB SHO - }, - commonMac-i-r8 SEQUENCE { - activationTime SS-ActivationTime, - lCH-Mappinglist LCH-MappingList OPTIONAL, - e-DCHMacdFlows CommonE-DCHMACdFlows OPTIONAL --@sic R5w140013 sic@ - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic R5-130613 sic@ -} - ---************************************************************** --- --- CMAC-MACi-NodeB-CellMapping-CNF --- Rel-8 or later --- Confirm a previous CMAC-MACi-NodeB-CellMapping-REQ being successful. --- ---************************************************************** -CMAC-MACi-NodeB-CellMapping-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63) -} - ---************************************************************** --- --- CMAC-MACi-NodeB-CellMapping-REQ --- Rel-8 or later --- To put a set of cells under the control of a MAC-i entity indicated by nodeB-Id, which is configured by CMAC-MAC-i-Config-REQ. --- This ASP establishes the routing relation between E-DCH related channels in these cells with a MAC-i entity. --- A cell is mapped to only one NodeB, and the cellId allocation is unique in a test. --- ---************************************************************** -CMAC-MACi-NodeB-CellMapping-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - celllist SEQUENCE OF INTEGER (0..63) -} - ---************************************************************** --- --- CMAC-MACis-Config-CNF --- Rel-8 or later --- Confirm a previous CMAC-MACis-Config-REQ being successful. cellId=-1 except when CCCH is configured to MAC-i is entity. --- ---************************************************************** -CMAC-MACis-Config-CNF ::= SEQUENCE { - cellId INTEGER(-1..63) -} - ---************************************************************** --- --- CMAC-MACis-Config-REQ --- Rel-8 or later --- This ASP is used for creating and configuring, reconfiguring, resetting or releasing an MAC-is, a cell / nodeB-independent entity in the SS, cellId=-1 except when CCCH is configured to MAC-i is entity. --- ---************************************************************** -CMAC-MACis-Config-REQ ::= SEQUENCE { - cellId INTEGER(-1..63), - configMessage CHOICE { - setup MACisConfig, - reconfig MACisConfig, - reset NULL, - release SS-ActivationTime} -} - ---************************************************************** --- --- MACisConfig --- MACisConfig establishes the mapping between logical channels and E DCH-MACd-Flows. --- When the macTestMode is TRUE, the re-ordering entity shall not eliminate the duplicated packets, but passes them to RLC. macTestMode = "TRUE" is used for testing the retransmission function of HARQ process. --- Presence of tSN-FieldExtension indicates that the TSN field extension is used as defined in TS 25.321[17] clause 9.2.4.3; the absence indicates that 6 bits TSN is used. ---************************************************************** -MACisConfig ::= CHOICE { - mACis-r8 SEQUENCE { -- Rel-8 or later - activationTime SS-ActivationTime, - lCHMappinglist LCH-MappingList, - macTestMode BOOLEAN DEFAULT FALSE - }, - mACis-r9 SEQUENCE { -- Rel-9 or later - activationTime SS-ActivationTime, - lCHMappinglist LCH-MappingList, - macTestMode BOOLEAN DEFAULT FALSE, - tSN-FieldExtension BOOLEAN DEFAULT FALSE - }, - relAspTypeExtension SEQUENCE{} -- Rel-10 or later @sic r5-130613 sic@ -} - - ---************************************************************** --- --- LCH-MappingList --- ---************************************************************** -LCH-MappingList ::= SEQUENCE (SIZE (1..31)) OF LCH-Mapping - - ---************************************************************** --- --- LCH-Mapping --- Both SRBs and RBs can be mapped onto E-DCH. The mechanism for control of MAC header manipulation (macHeaderManipulation) is applied to individual logical channels to be mapped on E-DCH. Typically, the SRBs are configured in 'NormalMacHeader" mode while the RBs in user plane can be configured either in 'NormalMacHeader" or in "OmitMacHeader" mode. --- If the value of macHeaderManipulation field is 'NormalMacHeader', then data received on the E-DCH MACd flows supporting this logical channel shall have its MAC header inspected to determine the appropriate routing, and removed as normal. The MACis SDU shall be passed to the appropriate logical channel. --- If the value of macHeaderManipulation field is 'OmitMacHeader', then data received on the E-DCH MACd flows supporting this logical channel shall have it's MAC header inspected to determine the appropriate routing, then the MAC-is layer shall deliver the MAC-is SDU, LCH-ID, Length, F,SI and the related CFN, subframe number, HARQ process identity to the appropriate logical channel. The TTCN receives these fields by RLC-TR-MACis-DATA-IND, then these fields can be checked by the TTCN. --- HARQ ID = CFN mod 4 for TTI=10ms; --- HARQ ID = (5*CFN + subframe number) mod 8 for TTI=2ms --- ---************************************************************** -LCH-Mapping ::= SEQUENCE { - macHeaderManipulation MAC-HeaderManipulation, - logicalChannelIdentity LogicalChannelIdentity, - e-DCH-MAC-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - rlc-PDU-Size CHOICE { - flexibleSize RLC-PDU-SizeConstraint, - fixedSize RLC-PDU-SizeList - }, - includeInSchedulingInfo BOOLEAN, - mac-LogicalChannelPriority MAC-LogicalChannelPriority, - logicalChannelType LogicalChannelType, - rB-Identity INTEGER (-31..32) OPTIONAL -} - - ---************************************************************** --- --- CMAC-MACi-AG-FDD-CNF @sic R5-144761 sic@ --- Confirm a previous CMAC-MACi-AG-REQ being successful. --- ---************************************************************** -CMAC-MACi-AG-FDD-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - cellId INTEGER(0..63) -- @sic R5-134957 sic@ -} - ---************************************************************** --- --- CMAC-MACi-AG-TDD-CNF @sic R5-144761 sic@ --- Confirm a previous CMAC-MACi-AG-REQ being successful. --- ---************************************************************** -CMAC-MACi-AG-TDD-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63) -} - ---************************************************************** --- --- CMAC-MACi-AG-FDD-REQ --- The hARQProcId shall be converted to the nearest CFN (and subframe number if TTI = 2 ms) by the SS, and the Absolute Grant is sent in that CFN (and subframe number if TTI = 2 ms). --- The absolute grant is applied on the A-GCH configured in the referred cellId. --- ---************************************************************** -CMAC-MACi-AG-FDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - cellId INTEGER(0..63), - grantType ENUMERATED {primary(0), secondary(1)}, - absoluteGrantValue BIT STRING(SIZE(5)), - absoluteGrantScope BIT STRING(SIZE(1)), - hARQProcId INTEGER (0..7), - activationTime SS-ActivationTime -} - ---************************************************************** --- --- CMAC-MACi-AG-TDD-REQ --- The hARQProcId shall be converted to the nearest CFN (and subframe number if TTI = 2 ms) by the SS, and the Absolute Grant is sent in that CFN (and subframe number if TTI = 2 ms). --- The absolute grant is applied on the A-GCH configured in the referred cellId. --- ---************************************************************** -CMAC-MACi-AG-TDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - absoluteGrantValue BIT STRING(SIZE(5)), - channelisationCode UL-TS-ChannelisationCode, - tRRI BIT STRING(SIZE(5)), - rDI INTEGER(0..7), - eCSN INTEGER(0..7), - eI INTEGER(0..3), - eNI INTEGER(0..7), - hARQProcId INTEGER (0..7), - activationTime SS-ActivationTime -} - ---************************************************************** --- --- CMAC-MACi-E-TFC-Restriction-CNF --- Rel-8 or later --- For MAC emulator to report that a previous attempt of restricting TFCs have been successful --- ---************************************************************** -CMAC-MACi-E-TFC-Restriction-CNF ::= SEQUENCE { - nodeB-Id INTEGER(0..63), - cellId INTEGER(0..63) -- @sic R5-134957 sic@ -} - - ---************************************************************** --- --- CMAC-MACi-E-TFC-Restriction-FDD-REQ --- Rel-8 or later --- To request to configure MACi entity. The field restrictAllowedTFCs is provided to allow the E-TFCI to be restricted on the referred cell Id. The IE fullE-TFCS will be used to remove any previous E-TFCS restriction configured. --- ---************************************************************** -CMAC-MACi-E-TFC-Restriction-FDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER (0..63), - cellId INTEGER(0..63), -- @sic R5-134957 sic@ - restrictAllowedTFCs CHOICE { - e-TFCS-Restriction E-TFCS-Restriction, - fullE-TFCS NULL } -} - ---************************************************************** --- --- CMAC-MACi-E-TFC-Restriction-TDD-REQ --- Rel-8 or later --- To request to configure MACi entity. The field restrictAllowedTFCs is provided to allow the E-TFCI to be restricted on the referred cell Id. The IE fullE-TFCS will be used to remove any previous E-TFCS restriction configured. --- ---************************************************************** -CMAC-MACi-E-TFC-Restriction-TDD-REQ ::= SEQUENCE { - nodeB-Id INTEGER (0..63), - cellId INTEGER(0..63), -- @sic R5-134957 sic@ - restrictAllowedTFCs CHOICE { - e-TFCS-Restriction E-TFCS-Restriction-TDD, - fullE-TFCS NULL - } -} - -E-TFCS-Restriction-TDD ::= SEQUENCE OF INTEGER (0..63) - - ---************************************************************** --- --- E-TFCS-Restriction --- The E-TFCS restriction is a list of E-TFCIs, and can be used to verify that the UE has used a specific TFC. Any data received by the SS using a forbidden TFCI shall be discarded. --- ---************************************************************** -E-TFCS-Restriction ::= SEQUENCE OF INTEGER (0..127) - - ---************************************************************** --- --- CMAC-MACehs-HARQAssign-MultiFlows-CNF --- Applicable Rel-7 or later --- Confirm a previous CMAC-MACehs-HARQAssign-MultiFlows-REQ being successful. --- ---************************************************************** -CMAC-MACehs-HARQAssign-MultiFlows-CNF ::= SEQUENCE { - cellId INTEGER(-1..63) -} - ---************************************************************** --- --- CMAC-MACehs-HARQAssign-MultiFlows-REQ --- Applicable Rel-7 or later --- To assign the HARQ processes for the simultaneous transmission of the MAC-ehs PDUs on the different flows on the same TTI . --- After successful transmission the MAC-ehs returns back to normal operation. In the normal operation suitable HARQ processes are selected by HARQ entities in the MAC-ehs to serve the MAC-ehs PDU without TTCN intervening. --- For Dual Cell, the primaryFlow corresponds to the serving cell, the secPrimaryFlow corresponds to the secondary cell. --- For MIMO, the primary and secondary HARQ process identities (of serving cell) are set as per 3GPP TS 25.212 [58], subclause 4.6B.2.5. --- For combined DC-HSDPA and MIMO the primaryFlow and secondary flow correspond to the serving cell, the secPrimaryFlow and secSecondaryFlow to the secondary cell. --- ---************************************************************** -CMAC-MACehs-HARQAssign-MultiFlows-REQ ::= SEQUENCE { - cellId INTEGER(-1..63), - primaryFlowHarqProcessId INTEGER(0..15|31), -- of serving cell - secondaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, -- of serving cell - secPrimaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, - -- of secondary cell Rel-9 or later - secSecondaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, - -- of secondary cell Rel-9 or later - relAspTypeExtension HARQAssign-MultiFlows-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- CMAC-MACehs-HARQAssign-MultiFlows-REQ --- Rel-10 or later --- Extension to assign the HARQ processes for the simultaneous transmission of the MAC-ehs PDUs on the different flows on the second and third secondary cells on the same TTI when 4C-HSDPA is configured. --- In 4C-HSDPA, the primaryFlow corresponds to the serving cell, the secPrimaryFlow corresponds to the first secondary cell, the thirdPrimaryFlow corresponds to the second secondary cell, the fourthPrimaryFlow corresponds to the third secondary cell, when configured. --- In 4C-HSDPA and MIMO: the primaryFlow and secondaryFlow corresponds to the serving cell. The secPrimaryFlow and secSecondaryFlow corresponds to the first secondary cell. The thirdPrimaryFlow and thirdSecondaryFlow corresponds to the second secondary cell. The fourthPrimaryFlow and fourthSecondaryFlow corresponds to the third secondary cell, when configured. --- ---************************************************************** - -HARQAssign-MultiFlows-r10OrLaterExtensionType ::= CHOICE { - rel10-AspExt SEQUENCE { - thirdPrimaryFlowHarqProcessId INTEGER(0..15|31), - -- of third cell - thirdSecondaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, - -- for MIMO in third cell - fourthPrimaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, - -- of fourth cell for 4C-HSDPA - fourthSecondaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL - -- for MIMO in fourth cell for 4C-HSDPA - } -} - ---************************************************************** --- --- CMAC-Restriction-REQ --- To request to configure MAC entity. The field restrictAllowedTFCs is provided to allow the UL and/or DL SS TFCS to be restricted for a specific transport channel. This information only needs to be sent to the MAC layer, since it is the MAC layer's responsibility to determine the set of valid TFCs each TTI. --- ---************************************************************** -CMAC-Restriction-REQ ::= SEQUENCE { - cellId INTEGER (-1..63), - routingInfo RoutingInfo, - ratType RatType, - restrictAllowedTFCs TFC-Restriction -} - ---************************************************************** --- TFC-Restriction --- This type is used to specify the allowed TFCs within the current TFCS. A TFC restriction is applicable until a subsequent TFC restriction is applied. TFC restrictions are not cumulative, so each TFC restriction completely replaces the previous TFC restriction.The downlink restriction can be used to ensure that the SS uses a specific TFC for transmission of data, by only allowing the 'No data' TFC, and the 'desired' TFC. It may also be necessary to include one or more 'signalling only' TFCs to allow signalling to occur.The uplink restriction can be used to verify that the UE has used a specific TFC. Any data received by the SS using a forbidden TFCI shall be discarded. ---************************************************************** -TFC-Restriction ::= SEQUENCE { - ulTFCI-Restriction TFC-Subset OPTIONAL, - dlTFCI-Restriction TFC-Subset OPTIONAL -} - ---************************************************************** --- --- CMAC-Restriction-CNF --- For MAC emulator to report that a previous attempt of restricting TFCs have been successful. --- ---************************************************************** -CMAC-Restriction-CNF ::= SEQUENCE { - cellId INTEGER(-1..63), - routingInfo RoutingInfo -} - - ---************************************************************** --- --- CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-CNF --- To confirm the request of binding subsequent data sending RLC-TR/UM/AM-TestDataReq on the specified RB mapped on HS-DSCH. --- ---************************************************************** -CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-CNF ::= SEQUENCE{ - cellId INTEGER(-1..63), - routingInfo RoutingInfo, -- RB ID desired to be given - result ENUMERATED{failure(0), success(1)} -} - ---************************************************************** --- --- CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-REQ --- To request of binding subsequent data sending RLC-TR/UM/AM-TestDataReq on the specified RB mapped on HS-DSCH in two MAC-ehs PDUs, one for each primary and secondary flow. --- On the request, the transmission of the test data is temporarily suppressed on the radio bearer till all SDUs for all flows are received by RLC layer on the Radio Bearer. After receiving all SDU's the RLC layer submits to MAC such that all of them are sent in two MAC-ehs PDUs. --- ---************************************************************** -CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-REQ ::= SEQUENCE{ - cellId INTEGER(-1..63), - routingInfo RoutingInfo, -- RB ID desired to be given - primaryFlowNumOfSDUs INTEGER, - -- Number of RLC SDU's for primary flow of serving cell - secondaryFlowNumOfSDUs INTEGER OPTIONAL, - -- Number of RLC SDU's for secondary flow of serving cell - secPrimaryFlowNumOfSDUs INTEGER OPTIONAL, - -- Number of RLC SDU's for secondary cell primary flow Rel-9 or later - secSecondaryFlowNumOfSDUs INTEGER OPTIONAL, - -- Number of RLC SDU's for secondary cell secondary flow Rel-9 or later - relAspTypeExtension BindTestDataInMultipleMACehs-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ -} - ---************************************************************** --- --- BindTestDataInMultipleMACehs-r10OrLaterExtensionType --- ---************************************************************** -BindTestDataInMultipleMACehs-r10OrLaterExtensionType ::= CHOICE { - rel10-AspExt SEQUENCE { -- Extension for 4C-HSDPA with or without MIMO - thirdPrimaryFlowNumOfSDUs INTEGER, - -- Number of RLC SDU's for primary flow of third cell - thirdSecondaryFlowNumOfSDUs INTEGER OPTIONAL, - -- Number of RLC SDU's for secondary flow of third cell - fourthPrimaryFlowNumOfSDUs INTEGER OPTIONAL, - -- Number of RLC SDU's for fourth cell primary flow - fourthSecondaryFlowNumOfSDUs INTEGER OPTIONAL - -- Number of RLC SDU's for fourth cell secondary flow - } -} - - ---************************************************************** --- PDCP ASPs ---************************************************************** ---************************************************************** --- --- CPDCP-Config-CNF --- For PDCP emulator to report that a previous attempt to setup, reconfigure or release a logical channel is successful. --- ---************************************************************** -CPDCP-Config-CNF ::= SEQUENCE { - cellId INTEGER(-1..63), - routingInfo RoutingInfo -} - ---************************************************************** --- --- CPDCP-Config-REQ --- To request to configure PDCP entity. Setup is used for creation of the PDCP instances or the PDCP resources. --- Release is used for free the all PDCP resources. --- The reconfiguration is to change the PDCP parameters. --- PDCP entity does not belong to a particular cell, the cellId shall assign the value -1. --- The routingInfo is RB identity which is used to connect this PDCP entity to the RLC entity with the same RB identity and it is also used for PDCP-DATA-REQ ASP to transmit data through this PDCP entity. --- ---************************************************************** -CPDCP-Config-REQ ::= SEQUENCE { - cellId INTEGER(-1..63), - routingInfo RoutingInfo, - ratType RatType, - configMessage CHOICE { - setup SS-PDCP-Info, - reconfigure SS-PDCP-InfoReconfig, - release NULL - } -} - ---************************************************************** --- --- SS-PDCP-Info --- When configuring downlink direction of the SS, the UL-RFC3095-r4 shall be used; when configuring uplink direction of the SS the DL-RFC3095-r4 shall be used. --- ---************************************************************** -SS-PDCP-Info ::= SEQUENCE { - pDCP-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - pDCP-Info PDCP-Info-r4, - cSVoHS-Info CS-HSPA-Information OPTIONAL -- Rel-7 or later -} - ---************************************************************** --- --- SS-PDCP-InfoReconfig --- When configuring downlink direction of the SS, the UL-RFC3095-r4 shall be used; when configuring uplink direction of the SS the DL-RFC3095-r4 shall be used. --- ---************************************************************** -SS-PDCP-InfoReconfig ::= SEQUENCE { - pDCP-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, --@sic R5w140013 sic@ - pDCP-Info PDCP-InfoReconfig-r4, - cSVoHS-Info CS-HSPA-Information OPTIONAL -- Rel-7 or later -} - -END diff --git a/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn b/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn deleted file mode 100644 index 56491b1..0000000 --- a/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn +++ /dev/null @@ -1,482 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ -/******************************************************************************/ - -module UTRAN_CommonDefs { - import from CommonDefs all; - import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from NAS_CommonTypeDefs all; - - //============================================================================= - // Type definitions - //----------------------------------------------------------------------------- - - type integer SS_CN_DomainIdentity (0..1); /* CN domain identity type in TTCN tabular format; @status APPROVED */ - type enumerated UTRAN_DelayForUserPlaneSignalling_Type { noDelay, waitForIP }; //@sic R5s130384 sic@ - - // embedded RRC types: - type TFCS_ReconfAdd.ctfcSize.ctfc2Bit TFCS_ReconfAdd_CtfcSize_Ctfc2Bit_List_Type; /* auxiliary type definition; @status APPROVED */ - type TFCS_ReconfAdd_CtfcSize_Ctfc2Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc2Bit_Type; /* auxiliary type definition; @status APPROVED */ - - type TFCS_ReconfAdd.ctfcSize.ctfc4Bit TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_List_Type; /* auxiliary type definition; @status APPROVED */ - type TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_Type; /* auxiliary type definition; @status APPROVED */ - - type TFCS_ReconfAdd.ctfcSize.ctfc6Bit TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_List_Type; /* auxiliary type definition; @status APPROVED */ - type TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type; /* auxiliary type definition; @status APPROVED */ - - type TFCS_ReconfAdd.ctfcSize.ctfc8Bit TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_List_Type; /* auxiliary type definition; @status (APPROVED) */ - type TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_Type; /* auxiliary type definition; @status (APPROVED) */ - - type PhysicalChannelCapability_edch_r6.fdd_edch.supported.edch_PhysicalLayerCategory Edch_PhysicalLayerCat_Type; /* @status APPROVED */ - - type UTRA_PriorityInfoList.utra_ServingCell.priority UtraServingCellPriorityValue_Type; /* @status APPROVED */ - type UTRA_PriorityInfoList.utra_ServingCell.s_PrioritySearch1 UtraServingCellPrioritySearch1_Type; /* @status APPROVED */ - type UTRA_PriorityInfoList.utra_ServingCell.s_PrioritySearch2 UtraServingCellPrioritySearch2_Type; /* @status APPROVED */ - type UTRA_PriorityInfoList.utra_ServingCell.threshServingLow UtraServingCellthreshServingLow_Type; /* @status APPROVED */ - type UTRANMobilityInformation.later_than_r3.criticalExtensions.criticalExtensions.r7.v860NonCriticalExtensions UTRANMobilityInformation_v860ext2_Type; - - type EUTRA_FrequencyAndPriorityInfo.priority EutraFrequencyAndPriorityInfoPriorityValue_Type; /* @status APPROVED */ - type EUTRA_FrequencyAndPriorityInfo.qRxLevMinEUTRA EutraFrequencyAndPriorityInfoQrxLevMin_Type; /* @status APPROVED */ - type EUTRA_FrequencyAndPriorityInfo.threshXhigh EutraFrequencyAndPriorityInfoThreshXhigh_Type; /* @status APPROVED */ - type EUTRA_FrequencyAndPriorityInfo.threshXlow EutraFrequencyAndPriorityInfoThreshXlow_Type; /* @status APPROVED */ - - type RRCConnectionSetupComplete.v370NonCriticalExtensions RRCConnSetupCmpl_v370NonCritExt_Type; /* auxiliary type definition; @status APPROVED */ - type RRCConnectionRelease.later_than_r3.criticalExtensions.r4.v4d0NonCriticalExtensions RRCConnectionRelease_v4d0NonCriticalExtensions_Type; /* @status APPROVED */ - type RRCConnectionReject.r3.laterNonCriticalExtensions RRCConnectionReject_r3_laterNonCriticalExtensions_Type; - - type MultiplePLMN_List_r6.multiplePLMNs Multiple_PLMN_List_Type; - - type UL_CCTrCH_r7.tddOption UL_CCTrCH_r7_TddOption_Type; - type UL_CCTrCH_r4.tddOption UL_CCTrCH_r4_TddOption_Type; - - type TGP_Sequence_r8.tgps_Status TGPS_Status_r8_Type; - - type SysInfoType19.v920NonCriticalExtensions SIB19_v920NonCriticalExtensions_Type; - - type DL_DPCH_InfoCommon_r6.cfnHandling DL_DPCH_CfnHandling_r6_Type; - - type HARQ_Info_r7.numberOfProcesses HarqNrOfProcesses_Type; - type HARQ_Info_r11.numberOfProcesses HarqNrOfProcesses_r11_Type; - - type enumerated UTRAN_FddTddMessageClass_Type {FDDr99, FDDr5, FDDr6, FDDr7, FDDr8, FDDr9, FDDr10, FDDr11, TDDr4, TDDr5, TDDr7, TDDr9, TDDr10, TDDr11}; // @sic R5s130195 Utran Release R5-140314: added FDDr11/TDDr11 sic@ - - type LoggedANRConfigurationInfo.loggingDuration LoggedANRConfigurationInfo_LoggingDuration_Type; - type LoggedANRConfigurationInfo.interRATANRforEUTRAIndicator LoggedANRConfigurationInfo_InterRATANRforEUTRAIndicator_Type; - type LoggedANRConfigurationInfo.interRATANRforGSMIndicator LoggedANRConfigurationInfo_InterRATANRforGSMIndicator_Type; - type DL_HSPDSCH_Information_r9.modeSpecificInfo.fdd.dl_64QAM_Configured DL_64QAM_Configured_Type; - type DL_HSPDSCH_Information_r11.modeSpecificInfo.fdd.dl_64QAM_Configured DL_64QAM_Configured_r11_Type; - type DL_SecondaryCellInfoFDD_r10.configurationInfo.newConfiguration.dl_64QAM_Configured DL_SecondaryCell64QAM_Configured_Type; - type DL_SecondaryCellInfoFDD_r10.configurationInfo.newConfiguration.hS_SCCHChannelisationCodeInfo DL_SecondaryHsScchCodeInfo_Type; - type HS_SCCH_Info_r9.modeSpecificInfo.fdd.hS_SCCHChannelisationCodeInfo HsScchInfo_ChCodeInfo_Type; - type SIB19_v920NonCriticalExtensions_Type.va80NonCriticalExtensions.vb30NonCriticalExtensions.sysInfoType19_vb30ext SIB19_sysInfoType19_vb30ext; - - type DL_InformationPerRL_r8.dl_dpchInfo DL_InformationPerRL_DpchInfo_r8; - type EUTRA_MeasuredCells.rSRP RSRP_Type; - type EUTRA_MeasuredCells.rSRQ RSRQ_Type; - - //============================================================================= - // Constants - //----------------------------------------------------------------------------- - - const float tsc_IdleMode_GenericTimer_UTRAN := 360.0; /* Idle mode generic timer according to 36.523-3 cl. 7.8 - @status APPROVED */ - const integer tsc_AICH1 := 7; /* Physical channel identity for AICH channel associated with first PRACH - @status APPROVED */ - const integer tsc_BCCH1 := 1; /* Logical channel identity for logical channel BCCH mapped on BCH - @status APPROVED */ - const integer tsc_BCCH6 := 6; /* Logical channel identity for logical channel BCCH mapped on FACH - @status APPROVED */ - const integer tsc_BCH1 := 11; /* Identity for transport channel BCH - @status APPROVED */ - const integer tsc_E_AGCH := 14; - const integer tsc_E_DPCH := 22; - const integer tsc_E_HICH := 15; - const integer tsc_E_RGCH := 16; - const integer tsc_FACH1 := 13; /* transport channel identity for FACH - @status APPROVED */ - const integer tsc_FACH2 := 14; /* transport channel identity for second FACH when it is connected to a secondary CCPCH together with PCH - (transport channel identity = 14) - @status APPROVED */ - const integer tsc_F_DPCH := 28; - const integer tsc_HSPDSCH := 18; // physical channel identity for HS-PDSCH. - const integer tsc_PICH1 := 6; /* Physical channel identity for PICH channel associated with first secondary CCPCH - @status APPROVED */ - const integer tsc_PICH2 := 11; // Physical channel identity for PICH2 channel associated with second secondary CCPCH - const integer tsc_PRACH1 := 8; /* Physical channel identity for first PRACH channel - @status APPROVED */ - const integer tsc_PRACH2 := 9; // Physical channel identity for second PRACH channel - const integer tsc_P_CCPCH := 4; /* Physical channel identity for primary CCPCH channel - @status APPROVED */ - const integer tsc_P_CPICH := 0; /* Physical channel identity for primary CPICH channel - @status APPROVED */ - const integer tsc_P_SCH := 1; /* Physical channel identity for primary SCH channel - @status APPROVED */ - const integer tsc_RACH1 := 15; /* transport channel identity for RACH - @status APPROVED */ - const integer tsc_AttOn := 1; /* Attach flag value On - @status APPROVED */ - const integer tsc_AttenuationCellOFF := 123; /* Value of attenuator to be used when setting a Cell OFF (3GPP 34.108 / Table 6.1.4) - @status APPROVED */ - const integer tsc_AttenuationServingCell := -1; /* Value different for FDD/TDD so this is just a flag to be used in f_UTRAN_SetCellPower - @status APPROVED */ - const integer tsc_AttenuationSuitableNeighbourCell := -2; /* Value different for FDD/TDD so this is just a flag to be used in f_UTRAN_SetCellPower - @status APPROVED */ - const integer tsc_AttenuationNonSuitableCell := -3; /* Value different for FDD/TDD so this is just a flag to be used in f_UTRAN_SetCellPower - @status APPROVED */ - const bitstring tsc_CellIdCell5 := '0000000000000000000000000000'B; /* @status APPROVED */ - const bitstring tsc_CellIdCell7 := '0000000000000000000000000001'B; /* @status APPROVED */ - const bitstring tsc_CellIdCell8 := '0000000000000000000000000010'B; /* @status APPROVED */ - const bitstring tsc_CellIdCell9 := '0000000000000000000000000011'B; /* @status APPROVED */ - - - const integer tsc_Now := 512; /* To indicate the system information change starts immediately - @status APPROVED */ - const octetstring tsc_RAC_Def := '01'O; /* Routing Area Code, 1 octet, 3GPP 24.008 clause 10.5.1.12.3 - @status APPROVED */ - const integer tsc_SFN_Offset := 0; /* SFN offset value - @status APPROVED */ - const octetstring tsc_T3212_Def := '1E'O; /* infinite - @status APPROVED */ - const integer tsc_TimingsCCPCH1 := 0; /* timing offset for secondary CCPCH1. default is 0 - @status APPROVED */ - const bitstring tsc_URA_IdCell5 := '0000000000000001'B; /* @status APPROVED */ - const bitstring tsc_URA_IdCell7 := '0000000000000001'B; /* @status APPROVED */ - const bitstring tsc_URA_IdCell8 := '0000000000000010'B; /* @status APPROVED */ - const bitstring tsc_URA_IdCell9 := '0000000000000010'B; /* @status APPROVED */ - - const integer tsc_CellParametersID_Cell1 := 0; /* CellParametersID for CELL5 - @status APPROVED */ - const integer tsc_CellParametersID_Cell2 := 4; /* CellParametersID for CELL5 - @status APPROVED */ - const integer tsc_CellParametersID_Cell3 := 8; /* CellParametersID for CELL5 - @status APPROVED */ - const integer tsc_CellParametersID_Cell4 := 12; /* CellParametersID for CELL5 - @status APPROVED */ - const integer tsc_CellParametersID_Cell5 := 114; /* CellParametersID for CELL5 - @status APPROVED */ - const integer tsc_CellParametersID_Cell6 := 119; /* CellParametersID for CELL5 - @status APPROVED */ - const integer tsc_CellParametersID_Cell7 := 123; /* CellParametersID for CELL7 - @status APPROVED */ - const integer tsc_CellParametersID_Cell8 := 127; /* CellParametersID for CELL8 - @status APPROVED */ - const integer tsc_CellParametersID_Cell9 := 20; /* CellParametersID for CELL9 - @status APPROVED */ - - const integer tsc_DL_CCCH5 := 5; /* Logical channel identity for logical channel CCCH mapped on FACH (downlink) - @status APPROVED */ - const integer tsc_DL_DCCH1 := 1; /* Logical channel identity for DCCH1 (downlink), used by signalling radio bearer 1 - @status APPROVED */ - const integer tsc_DL_DCCH2 := 2; /* Logical channel identity for DCCH2 (downlink), used by signalling radio bearer 2 - @status APPROVED */ - const integer tsc_DL_DCCH3 := 3; /* Logical channel identity for DCCH3 (downlink), used by signalling radio bearer 3 - @status APPROVED */ - const integer tsc_DL_DCCH4 := 4; /* Logical channel identity for DCCH4 (downlink), used by signalling radio bearer 4 - @status APPROVED */ - const integer tsc_DL_DCH1 := 6; /* identity for transport channel DCH1 (downlink), in AMR speech this transport channel is used for RAB subflow#1 - @status APPROVED */ - const integer tsc_DL_DCH2 := 7; /* identity for transport channel DCH2 (downlink), in AMR speech this transport channel is used for RAB subflow#2 - @status APPROVED */ - const integer tsc_DL_DCH3 := 8; /* identity for transport channel DCH3 (downlink), in AMR speech this transport channel is used for RAB subflow#3 - @status APPROVED */ - const integer tsc_DL_DCH4 := 9; // identity for transport channel DCH4 (downlink), in AMR speech - const integer tsc_DL_DCH5 := 10; /* identity for transport channel DCH5 (downlink), in most case this transport channel is used for signalling bearers. - @status APPROVED */ - const integer tsc_DL_DPCH1 := 26; /* physical channel identity for DPCH1(downlink) - @status APPROVED */ - const integer tsc_DL_DTCH1 := 7; /* Logical channel identity for DTCH1 (downlink) - @status APPROVED */ - const integer tsc_DL_DTCH2 := 8; /* Logical channel identity for DTCH2 (downlink) - @status APPROVED */ - const integer tsc_DL_DTCH3 := 9; /* Logical channel identity for DTCH3 (downlink) - @status APPROVED */ - const integer tsc_DL_DTCH4 := 10; // Logical channel identity for DTCH4 (downlink) - const integer tsc_DPCH_PowerOffsetPILOT := 0; /* Power offsett value of PILOT on DPCH - @status APPROVED */ - const integer tsc_DPCH_PowerOffsetTFCI := 0; /* Power offsett value of TFCI on DPCH - @status APPROVED */ - const integer tsc_DPCH_PowerOffsetTPC := 0; /* Power offsett value of TPC on DPCH - @status APPROVED */ - const integer tsc_GainFactorBetaC_Below64k := 11; /* Gain factor Beta C value to be used for RAB UL below 64kbps - @status APPROVED */ - const integer tsc_GainFactorBetaC_Higher64k := 9; // Gain factor Beta C value to be used for RAB UL higher than 64kbps - const integer tsc_GainFactorBetaD := 15; /* @status APPROVED */ - const integer tsc_RB_BCCH := -1; /* radio bearer idenity for bearer on TM + BCCH + BCH used for broadcasting system information blocks - @status APPROVED */ - const integer tsc_RB_BCCH_FACH := -3; /* signalling radio bearer on TM + BCCH + FACH + sCCPCH1 - @status APPROVED */ - const integer tsc_RB_DTCH_E_DCH_MAC1 := -21; // Special RB for DTCH configured in TM for MAC test cases - const integer tsc_RB_DTCH_E_DCH_MAC2 := -22; // Special second RB for DTCH configured in TM for MAC test cases - const integer tsc_RB_PCCH := -2; /* radio bearer idenity for bearer on TM + PCCH + PCH used for sending paging message when there is no RAB subflows for speech - @status APPROVED */ - const integer tsc_RB0 := 0; /* signalling radio bearer on TM + CCCH - @status APPROVED */ - const integer tsc_RB1 := 1; /* sibnalling radio bearer on UM + DCCH - @status APPROVED */ - const integer tsc_RB10 := 10; /* radio access bearer identity, in AMR speech this RB is RAB subflow#1, - in other cases this is a radio access bearer - @status APPROVED */ - const integer tsc_RB11 := 11; /* radio access bearer identity, in AMR speech this RB is RAB subflow#2, - in some other cases this is the signalling radio bearer for TM + BCCH_FACH - @status APPROVED */ - const integer tsc_RB12 := 12; /* radio access bearer, in AMR speech this RB is RAB subflow#3, in some other cases this is the bearer for TM PCCH - @status APPROVED */ - const integer tsc_RB13 := 13; // radio access bearer, in AMR speech this RB is RAB subflow#3, in some other cases this is the bearer for TM PCCH - const integer tsc_RB17 := 17; // Fifth PS Radio Bearer associated with a DTCH on HS-DSCH - const integer tsc_RB26 := 26; // second PS Radio Bearer associated with a DTCH on HS-DSCH - const integer tsc_RB27 := 27; // Third PS Radio Bearer associated with a DTCH on HS-DSCH - const integer tsc_RB28 := 28; // Fourth PS Radio Bearer associated with a DTCH on HS-DSCH - const integer tsc_RB2 := 2; /* signalling radio bearer on AM + DCCH - @status APPROVED */ - const integer tsc_RB20 := 20; /* radio access bearer for PS RAB - @status APPROVED */ - const integer tsc_RB21 := 21; // radio access bearer for PS RAB - const integer tsc_RB22 := 22; // Second AM radio access bearer for PS - const integer tsc_RB24 := 24; // Second AM radio access bearer for PS - const integer tsc_RB25 := 25; /* PS Radio Bearer associated with a DTCH on HS-DSCH - @status APPROVED */ - const integer tsc_RB29 := 29; // RB Id for Radio bearer that carries the 2nd CCCH in the DL - const integer tsc_RB3 := 3; /* signalling radio bearer on AM + DCCH for high priority NAS_DT - @status APPROVED */ - const integer tsc_RB3_DCCH_RRC := -16; /* RB identity used for configuration of AM RLC entity - * in the SS. SS will use it to simulate the high priority - * NAS SRB mapped to DCH for routing UL NAS messages in - * RRC test cases. - * A negative value is used to indicate that the SS - * configuration is not identical to the UE configuration */ - const integer tsc_RB30 := 30; // radio access bearer for CBS RAB - const integer tsc_RB31 := 31; - const integer tsc_RB4 := 4; /* signalling radio bearer on AM + DCCH for low priority NAS_DT - @status APPROVED */ - const integer tsc_RB5 := 5; /* signalling radio bearer on TM + DCCH for AMR Signalling - @status (APPROVED) */ - const integer tsc_RRC_TI := 0; /* RRC Transaction Identifier - @status APPROVED */ - const integer tsc_PCCH1 := 1; /* Logical channel identity for logical channel PCCH - @status APPROVED */ - const integer tsc_PCH1 := 12; /* transport channel identity for PCH - @status APPROVED */ - const integer tsc_N300 := 3; /* @status APPROVED */ - const integer tsc_S_CCPCH1 := 5; /* Physical channel identity for first secondary CCPCH channel - @status APPROVED */ - const integer tsc_S_CCPCH_2ndScrCode := 0; /* Secondary scrambling code for S-CCPCH channels - @status APPROVED */ - const integer tsc_S_CCPCH_PowerOffsetPILOT := 6; /* Power offsett value of PILOT on sCCPCH - @status APPROVED */ - const integer tsc_S_CCPCH_PowerOffsetTFCI := 6; /* Power offsett value of TFCI on sCCPCH - @status APPROVED */ - const integer tsc_S_SCH := 2; /* Physical channel identity for secondary SCH channel - @status APPROVED */ - const SS_CN_DomainIdentity tsc_SS_PS_Domain := 1; /* @status APPROVED */ - const SS_CN_DomainIdentity tsc_SS_CS_Domain := 0; /* @status APPROVED */ - const integer tsc_UL_CCCH5 := 5; /* Logical channel identity for logical channel CCCH mapped RACH (uplink) - @status APPROVED */ - const integer tsc_UL_DCCH1 := 1; /* Logical channel identity for DCCH1 (uplink), used by signalling radio bearer 1 - @status APPROVED */ - const integer tsc_UL_DCCH2 := 2; /* Logical channel identity for DCCH2 (uplink), used by signalling radio bearer 2 - @status APPROVED */ - const integer tsc_UL_DCCH3 := 3; /* Logical channel identity for DCCH3 (uplink), used by signalling radio bearer 3 - @status APPROVED */ - const integer tsc_UL_DCCH4 := 4; /* Logical channel identity for DCCH4 (uplink), used by signalling radio bearer 4 - @status APPROVED */ - const integer tsc_UL_DCH1 := 1; /* identity for transport channel DCH1 (uplink), in AMR speech this transport channel is used for RAB subflow#1 - @status APPROVED */ - const integer tsc_UL_DCH2 := 2; /* identity for transport channel DCH2 (uplink), in AMR speech this transport channel is used for RAB subflow#2 - @status APPROVED */ - const integer tsc_UL_DCH3 := 3; /* identity for transport channel DCH3 (uplink), in AMR speech this transport channel is used for RAB subflow#3 - @status APPROVED */ - const integer tsc_UL_DCH4 := 4; // identity for transport channel DCH4 (upink), in AMR speech - const integer tsc_UL_DCH5 := 5; /* identity for transport channel DCH5 (uplink), in most case this transport channel is used for signalling bearers. - @status APPROVED */ - const integer tsc_UL_DPCH1 := 20; /* physical channel identity for DPCH1(uplink) - @status APPROVED */ - const integer tsc_UL_DTCH1 := 7; /* Logical channel identity for DTCH1 (uplink) - @status APPROVED */ - const integer tsc_UL_DTCH2 := 8; /* Logical channel identity for DTCH2 (uplink) - @status APPROVED */ - const integer tsc_UL_DTCH3 := 9; /* Logical channel identity for DTCH3 (uplink) - @status APPROVED */ - const integer tsc_UL_DTCH4 := 10; // Logical channel identity for DTCH4 (uplink) - - //----------------------------------------------------------------------------- - - const C_RNTI tsc_CRNTI := '0000000000000001'B; /* C RNTI. - Default value: '0000 0000 0000 0001'B - @status APPROVED */ - const H_RNTI tsc_H_RNTI := '1010101010101010'B; - const E_RNTI tsc_E_RNTI := '1010101010101010'B; - - const ChannelisationCode256 tsc_AICH1_ChC := 3; /* Channelization code for tsc_AICH1 - @status APPROVED */ - const SpreadingFactor tsc_UL_DPDCH_SF_SRB := sf64; /* Channelization code for UL DPDCH for an SRB connection with a RAB established - @status APPROVED */ - const DPCCH_PowerOffset tsc_DPCCH_PowerOffset := -40; /* DPCCH power offset value. - @status APPROVED */ - const SF512_AndCodeNumber tsc_DL_DPCH1_ChC_SRB := { sf128 := 0 }; /* Channelization code for tsc_DL_DPCH1 for a SRB connection with a RAB established - @status APPROVED */ - const SF512_AndCodeNumber tsc_Sfc256_C0 := { sf256 := 0 }; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const B16_Type tsc_DL_DPCH1_ChC_SRB_TDD := '0000000000001000'B; /* Channelization code for tsc_DL_DPCH1 for a SRB connection with a RAB established - @status APPROVED */ - const B16_Type tsc_DL_DPCH1_ChC_Speech_TDD := '1100000000000000'B; // Channelization code for tsc_DL_DPCH1 for a SRB connection with a RAB established - const SF512_AndPilot tsc_DL_DPCH1_SFP_SRB := { sfd128 := pb4 }; /* Spreading factor and pilot bits for tsc_DL_DPCH1 for an SRB connection with a RAB established - @status APPROVED */ - const DefaultDPCH_OffsetValueFDD tsc_DefaultDPCH_OffsetValue := 459; /* Default DPCH offset value. Actual value DefaultDPCH-OffsetValueFDD = IE value * 512 - @status APPROVED */ - const DefaultDPCH_OffsetValueTDD tsc_DefaultDPCH_OffsetValue_TDD := 0;/* Default DPCH offset value. Actual value DefaultDPCH-OffsetValueTDD = IE value * 512 - @status APPROVED */ - const ChannelisationCode256 tsc_PICH1_ChC := 2; /* Channelization code for tsc_PICH1 - @status APPROVED */ - const DL_TS_ChannelisationCode tsc_PICH1_ChC_TDD := cc16_5; /* Channelization code for tsc_PICH1 - @status APPROVED */ - const DL_TS_ChannelisationCode tsc_PICH2_ChC := cc16_6; /* Channelization code for tsc_PICH2 - @status APPROVED */ - const SF_PRACH tsc_PRACH1_SF := sfpr64; /* Channelization code for UL DPDCH for PRACH1 - @status APPROVED */ - const PreambleScramblingCodeWordNumber tsc_PRACH1_ScrC := 0; /* Scrambling code for preamble of PRACH1 - @status APPROVED */ - const AvailableSignatures tsc_PRACH1_Signatures := '0000000011111111'B; /* available signatures for PRACH. (from 34.108 cl. 6.1 (SIB5)) - @status APPROVED */ - - const AICH_PowerOffset tsc_PowerAICH := -5; /* relative transmission power level of AICH. The power level is specified relatively to power leve of CPICH in terms of AICH_Ec - @status APPROVED */ - const PICH_PowerOffset tsc_PowerPICH := -5; /* relative transmission power level of PICH. The power level is specified relatively to power level of CPICH in terms of PICH_Ec* - @status APPROVED */ - - const PuncturingLimit tsc_PuncLimit := pl1; /* puncturing limit for PRACH. default value is 1 - Default value: Pl1 - @status APPROVED */ - const SecondaryScramblingCode tsc_DL_DPCH1_2ndScrC := 1; /* secondary scrambling code for DL DPCH1 - @status APPROVED */ - const SF256_AndCodeNumber tsc_S_CCPCH1_ChC := { sf64 := 1 }; /* Channelization code for tsc_S_CCPCH1 - @status APPROVED */ - - const PrimaryCCPCH_TX_Power tsc_PrimaryCCPCH_TX_Power := 30; /* transmission power level of primary CCPCH. Default is 30 dBm in SIB5 - @status APPROVED */ - const SCCPCH_ChannelisationCodeList tsc_S_CCPCH1_1P1F_ChC := {cc16_7, cc16_8}; /* Channelization code for secondary CCPCH - @status APPROVED */ - const SCCPCH_ChannelisationCodeList tsc_S_CCPCH1_1P2F_ChC := {cc16_7, cc16_8, cc16_9, cc16_10, cc16_11}; /* Channelization code of tsc_S_CCPCH1 for 1PCH+2FACH @sic R5-133724 sic@ - @status */ - const TDD_PRACH_CCode_LCR_r4 tsc_PRACH1_ChC := cc8_8; /* channel code for PRACH - @status APPROVED */ - const TDD_FPACH_CCode16_r4 tsc_FPACH1_ChC := cc16_15; /* channel code for FPACH - @status APPROVED */ - const TPC_CombinationIndex tsc_TPC_CombinationIndex := 0; /* @status APPROVED */ - const TPC_StepSizeFDD tsc_TpcStepSize_FDD := 0; /* Value 0 corresponds to 1 dB - @status APPROVED */ - const TPC_StepSizeTDD tsc_TPC_StepSize_TDD := 1; /* @status APPROVED */ - const integer tsc_SS_StepSize_TDD := 1; /* @status APPROVED */ - const UL_TargetSIR tsc_UL_TargetSIR := 25; /* @sic R5-134734 sic@ @status APPROVED */ - const integer tsc_SS_Frequency := 1; /* @status APPROVED */ - const UL_TS_ChannelisationCode tsc_UL_DPCH1_ChC_SRB_13_6 := cc8_1; /* @status */ - const UL_TS_ChannelisationCode tsc_UL_DPCH1_ChC_SRB_3_4 := cc16_1; // @sic R5s120750 sic@ - const UL_TS_ChannelisationCode tsc_UL_DPCH1_ChC_Speech := cc8_1; - const UL_TS_ChannelisationCode tsc_UL_DPCH1_ChC_64k_PS := cc2_1; /* @status APPROVED */ - const UL_TS_ChannelisationCode tsc_UL_DPCH1_ChC_PS_and_ConvSpeech := cc1_1; /* @status APPROVED */ - const MaxAllowedUL_TX_Power tsc_MaxAllowedUL_TX_Power_TDD := 21; //Acc to 34.108 table 6.1.6a @sic R5s130984 sic@ - - const CN_DomainIdentity tsc_PS_Domain := ps_domain; - const CN_DomainIdentity tsc_CS_Domain := cs_domain; - - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio1 := 1; /* @status APPROVED */ - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio2 := 2; /* @status APPROVED */ - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio3 := 3; /* @status APPROVED */ - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio4 := 4; /* @status APPROVED */ - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio6 := 6; /* @status APPROVED */ - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio7 := 7; - const MAC_LogicalChannelPriority tsc_MAC_LogicalChannelPrio8 := 8; /* @status APPROVED */ - - //============================================================================= - // AUXILIARY FUNCTION - //----------------------------------------------------------------------------- - /* - * @desc function to convert template of UTRAN_CellId_Type into template of integer - * @param p_CellId - * @return template (present) integer - * @status APPROVED - */ - function f_UTRAN_TemplateCellId2Int(template (present) UTRAN_CellId_Type p_CellId) return template (present) integer - { - if (isvalue(p_CellId)) { - return f_UtranCellId2Int(valueof(p_CellId)); // @sic R5s130195 Baseline moving to rel-11: UTRAN cellID enhanced sic@ - } else { - return ?; - } - } - - //---------------------------------------------------------------------------- - /* - * @desc Function used for converting an integer input value to a EUTRA_MeasurementBandwidth value. - * The function is used in UTRAN test cases when the EUTRA type v_DL_PrimaryBandwidth needs - * to be converted in to the UTRAN type EUTRA_MeasurementBandwidth. - * @param p_EUTRA_DL_Bandwidth - * @return EUTRA_MeasurementBandwidth - * @status APPROVED_LTE_IRAT - */ - function f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(integer p_EUTRA_DL_Bandwidth) return EUTRA_MeasurementBandwidth - { - var EUTRA_MeasurementBandwidth v_MeasurementBandwidth; // defined in UTRAN_RRC_ASN1_Definitions - - select (p_EUTRA_DL_Bandwidth) { - case (6) { //1.4MHz - v_MeasurementBandwidth := mbw6; - } - case (15) { //3MHz - v_MeasurementBandwidth := mbw15; - } - case (25) { //5MHz - v_MeasurementBandwidth := mbw25; - } - case (50) { //10MHz - v_MeasurementBandwidth := mbw50; - } - case (75) { //15MHz - v_MeasurementBandwidth := mbw75; - } - case (100) { //20MHz - v_MeasurementBandwidth := mbw100; - } - case else { - FatalError(__FILE__,__LINE__, "invalid value for ChannelBandwidth"); - } - } - return v_MeasurementBandwidth; - } - - //---------------------------------------------------------------------------- - /* - * @desc This function is used to convert PLMN from NAS type to ASN1 type. - * @param p_NAS_PlmnId - * @return PLMN_Identity - * @status - */ - function f_UTRAN_Nas2Asn_PlmnId(NAS_PlmnId p_NAS_PlmnId) return PLMN_Identity - { - var PLMN_Identity v_PLMN_Identity; - var hexstring v_PLMN_hexstring := oct2hex(p_NAS_PlmnId); - - v_PLMN_Identity := { - mcc := { - hex2int(v_PLMN_hexstring[1]), - hex2int(v_PLMN_hexstring[0]), - hex2int(v_PLMN_hexstring[3]) - }, - mnc := { - hex2int(v_PLMN_hexstring[5]), - hex2int(v_PLMN_hexstring[4]) - } - } - - if (v_PLMN_hexstring[2] != 'F'H) { - v_PLMN_Identity.mnc[2] := hex2int(v_PLMN_hexstring[2]); - } - - return v_PLMN_Identity; - } -} diff --git a/IMS_PART4_IWD_14wk37/IMS/13/IMS_CC_SigCompTestcases.ttcn b/IMS_PART4_IWD_14wk37/IMS/13/IMS_CC_SigCompTestcases.ttcn deleted file mode 100644 index 1225593..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/13/IMS_CC_SigCompTestcases.ttcn +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 16:21:07 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12211 $ -/******************************************************************************/ -module IMS_CC_SigCompTestcases { - - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from IMS_Component all; - import from IMS_ASP_TypeDefs all; - import from IMS_SIP_Templates all; - import from IMS_MessageBody_Templates all; - import from IMS_SDP_Messages all; - import from IMS_CC_CommonFunctions all; - import from IMS_Procedures_CallControl all; - import from IMS_PTC_CoordMsg all; - - /****************************************************************************/ - function f_TC_13_2_IMS() runs on IMS_PTC - { // Steps 1 to 13 as defined in Annex C.21 - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ - var MessageHeader v_MessageHeader_Response183; - var boolean v_SigCompIsActive := true; - - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED, IMS_Security, v_SigCompIsActive); - - f_IMS_TestBody_Set(true); - - // @siclog "Step 1" siclog@ - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); - - // @siclog "Step 2" siclog@ - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_A4(); - - // @siclog "Step 3 - 4" siclog@ - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp); - - // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 - f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer - - // @siclog "Step 5 - 13" siclog@ - f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); - - // @siclog "Step 14 - 15" siclog@ - f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); - - f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); - } - - /* ************************************************************************** */ - // See 34.229-1 clause 13.3 SigComp in the MT Call - // Note: DL sigComp is initialized when starting the test and handled at lower layers - function f_TC_13_3_IMS() runs on IMS_PTC - { - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_Response_Type v_SessionInProgress183; - var template (value) MessageHeader v_MessageHeader_Invite; - var template (value) INVITE_Request v_InviteRequest; - var template (value) SDP_Message v_Tx_SDP; - var SipUrl v_ContactUrl; - var boolean v_SigCompIsActive := true; - - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED, IMS_Security, v_SigCompIsActive); - - f_IMS_TestBody_Set(true); - - f_IMS_CC_StartCall(IPCAN_MT_SpeechCall); - - // Steps 1 to 15 as defined in Annex C.11 - v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); - // Determine SS server secure port number - v_Tx_SDP := f_IMS_BuildSDP_AnnexC11_Step1or7("step 1"); - - // Prepare INVITE message to be sent in step 1. - v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(); - v_InviteRequest := cs_INVITE_Request(v_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_Tx_SDP)); - v_InviteRequestWithSdp := f_IMS_InviteRequestWithSdpMT(v_InviteRequest, v_Tx_SDP); - - // @siclog "Step 1 - 4" siclog@ - v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); // !!!! CHECK: INVITE !!!! - v_SessionInProgress183 := v_ResponseWithSdp.Response; - v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); - - // Establish Dedicated EPS bearer - // See TS. 36.508 EUTRA/EPS signalling for IMS MT speech call Table 4.5A.7.3-1 Step 9-12 - f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MT_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer - - // @siclog "Step 5 - 12" siclog@ - f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdp, v_SessionInProgress183); - - // MT Call is now established - - // @siclog "Step 13 - 14" siclog@ - f_IMS_CallReleaseMT(v_InviteRequest, v_ContactUrl); - - f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_MT_SpeechCall); - } - -} diff --git a/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSConferencingTestcases.ttcn b/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSConferencingTestcases.ttcn deleted file mode 100644 index 7f91148..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSConferencingTestcases.ttcn +++ /dev/null @@ -1,1032 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 17:10:15 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12171 $ -/******************************************************************************/ - -module IMS_CC_SSConferencingTestcases { - import from CommonDefs all; - import from IP_ASP_TypeDefs all; - import from LibSip_Common all; - import from LibSip_MessageBodyTypes all; - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from IMS_Component all; - import from IMS_ASP_TypeDefs all; - import from IMS_ASP_Templates all; - import from IMS_CommonParameters all; - import from IMS_CommonTemplates all; - import from IMS_CommonDefs all; - import from IMS_SIP_Templates all; - import from IMS_MessageBody_Templates all; - import from IMS_SDP_Templates all; - import from IMS_SDP_Messages all; - import from IMS_CC_CommonFunctions all; - import from IMS_Procedures_Registration all; - import from IMS_Procedures_CallControl all; - import from IMS_Procedures_Common all; - import from UpperTesterFunctions all; - import from IMS_PTC_CoordMsg all; - import from IMS_CommonFunctions all; - import from urn_ietf_params_xml_ns_conference_info all; -// import from urn_ietf_params_xml_ns_conference_info language "XSD" all; - - const float tsc_WaitForConferenceSubscription := 3.0; - const integer tsc_IMS_CseqValue_A53 := 4321; - - //---------------------------------------------------------------------------- - - template (value) Media_type cs_Media(charstring p_Label, - charstring p_SsrcId) := { - id := "1", - attr := omit, - display_text := omit, - type_ := "audio", - label_ := p_Label, - src_id := p_SsrcId, - status := sendrecv, - elem_list := {} - }; - - template (value) Endpoint_type cs_Endpoint(charstring p_EndPointEntity, - template (value) Media_type p_Media) := - { - entity := p_EndPointEntity, - state := omit, - attr := omit, - display_text := omit, - referred := omit, - status := connected, // Endpoint_status_type status optional, - joining_method := dialed_in, // Joining_type joining_method optional, - joining_info := omit, // Execution_type joining_info optional, - disconnection_method := omit, // Disconnection_type disconnection_method optional, - disconnection_info := omit, // Execution_type disconnection_info optional, - media_list := {p_Media}, // record of Media_type media_list, - call_info := omit, // Call_type call_info optional, - elem_list := {} - }; - - template (value) Conference_type cs_XmlBody_ConfInfo(charstring p_ConferenceUri, - charstring p_UserEntity, // User's URI - charstring p_EndPointEntity, // e.g. User's contact URI - State_type p_State := full, - integer p_Version := 0, - template (value) Media_type p_Media := cs_Media("34567", "34568")) := - { - entity := p_ConferenceUri, // XSD.AnyURI entity, - state := p_State, // state_type state optional, - version := p_Version, // XSD.UnsignedInt version optional, - attr := omit, // record (1..infinity) of XSD.String attr optional, - conference_description := omit, // Conference_description_type conference_description optional, - host_info := omit, // optional, - conference_state := omit, // Conference_state_type conference_state optional, - users := { - state := omit, - attr := omit, - user_list := { - { - entity := p_UserEntity, - state := omit, - attr := omit, - display_text := omit, - associated_aors := omit, - roles := omit, - languages := omit, - cascaded_focus := omit, - endpoint_list := {cs_Endpoint(p_EndPointEntity, p_Media)}, - elem_list := {} - } - }, - elem_list := {} - }, - sidebars_by_ref := omit, // Uris_type sidebars_by_ref optional, - sidebars_by_val := omit, // Sidebars_by_val_type sidebars_by_val optional, - elem_list := {} // record of XSD.String elem_list - }; - - template (value) MessageBody cs_MessageBody_Conference(template (value) Conference_type p_Conference) := - { - xmlBody := oct2char(bit2oct(encvalue(p_Conference))) - }; - - //============================================================================ - - function f_IMS_ReferRequest_MessageHeaderRX(boolean p_ReferCreatingDialog := true, - template (present) SipUrl p_RequestUri, - template (present) SipUrl p_ReferToUri, - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader - { /* MO REFER (see TS 34.229, A.2.10, C.19): - creates new dialog for C.19, 15.18 and 15.19; uses existing dialog acc. A.2.10 in 15.23 and 15.25 */ - var boolean v_IsGiba := f_IMS_PTC_SecurityScheme_IsGiba(); // => A1/A2 - var template (present) MessageHeader v_MessageHeader_Refer := cr_MessageHeader_Dummy; - var template (present) RouteBody_List v_RouteBodyList; - var template (present) SipUrl v_SipUrlFrom := ?; - var template (present) integer v_CSeqValue := ?; - var template (present) From v_From; - var template (present) To v_To; - var template SessionId v_SessionId; - var template (present) CallId v_CallId; - var IMS_ProtectedPorts_Type v_Protected; - var template integer v_Port_us := ?; // Acc. A.2.10 mandatory even for GIBA - var template integer v_Port_ps := *; - - if (not v_IsGiba) { - v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); - v_Port_us := v_Protected.Port_us; - v_Port_ps := v_Protected.Port_ps; - } - // As in INVITE: - v_RouteBodyList := { - cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)), - cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)) - }; - - - if (p_ReferCreatingDialog) { - v_From := cr_From(*, v_SipUrlFrom); - v_To := cr_ToDef(p_RequestUri); - v_CallId := cr_CallId(?); - v_SessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); - - } else { - // T.B.D. (used by 15.23 and 15.25 only) - v_From := f_IMS_RequestInDialog_FromHeaderRX(); - v_To := f_IMS_RequestInDialog_ToHeaderRX(); - v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); - v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); - v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(dialogRemote); - } - v_MessageHeader_Refer.via := f_IMS_InviteRequest_ViaRX(); // same as for INVITE; PROSE ISSUE: acc. to A.2.10 in case of GIBA the unprotected port is mandatory but it is optional for the INVITE - v_MessageHeader_Refer.route := cr_Route(v_RouteBodyList); - v_MessageHeader_Refer.toField := v_To; - v_MessageHeader_Refer.fromField := v_From; - v_MessageHeader_Refer.callId := v_CallId; - v_MessageHeader_Refer.sessionId := v_SessionId; - v_MessageHeader_Refer.cSeq := cr_CseqDef(v_CSeqValue, "REFER"); - - v_MessageHeader_Refer.maxForwards := cr_MaxForwardsDef; - v_MessageHeader_Refer.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us)); - v_MessageHeader_Refer.referTo := cr_ReferTo(p_ReferToUri); - - if (not v_IsGiba) { - v_MessageHeader_Refer.require := cr_RequireSecAgree; - v_MessageHeader_Refer.proxyRequire := cr_ProxyRequireDef; - v_MessageHeader_Refer.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); - v_MessageHeader_Refer.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); - } else { - v_MessageHeader_Refer.securityVerify := omit; - } - - return v_MessageHeader_Refer; - } - - //---------------------------------------------------------------------------- - - function f_IMS_A_2_10_Refer_CommonChecks(IMS_DATA_REQ p_IMS_REFER_REQ, - boolean p_ReferCreatingDialog := true) runs on IMS_PTC - { - var MessageHeader v_MessageHeader := p_IMS_REFER_REQ.Request.Refer.msgHeader; - var InternetProtocol_Type v_Protocol := p_IMS_REFER_REQ.RoutingInfo.Protocol; - var SipUrl v_SipUrlFrom := f_Addr_Union_GetSipUrl(v_MessageHeader.fromField.addressField); - - f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // check whether via contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) - if (p_ReferCreatingDialog) { - f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // check that there is no To tag - - // Additional checks regarding SIP URI in the From header @sic R5-130750 change 3 sic@ - if (not f_IMS_PublicUserId_Match(f_IMS_PTC_ImsInfo_GetAllIMPUs(), v_SipUrlFrom)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid 'From'"); - } - // Check Call-Id - if (match(v_MessageHeader.callId, f_IMS_PTC_ImsInfo_DialogGetCallId())) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid 'CallId' in REFER (has to be different than in previous INVITE)"); - } - } - } - - //---------------------------------------------------------------------------- - - function f_IMS_ReferRequest_MessageHeaderTX(boolean p_ReferCreatingDialog := true, - charstring p_CallerSipAddrStr, - charstring p_ConferenceURI, - template (omit) charstring p_ReferredByURI := omit, - boolean p_SessionIdSupported := false, - integer p_CSeqValue := 1234) runs on IMS_PTC return template (value) MessageHeader - { /* REFER acc. to see TS 34.229, A.2.12 - MT REFER: - p_CallerSipAddrStr .. Address of the remote UE - p_ConferenceURI .. URI of the conference focus as defined in RFC 4353 */ - /* Prose issues (-> A.2.12): - * - acc to prose there shall be P-Access-Network-Info (does not make sense for MT) - * - Via is not exactly the same as for INVITE (A.2.9) but there seems to be nor reason for any difference - */ - var template (value) MessageHeader v_MessageHeader_Refer := cs_MessageHeader_Dummy; - var template (value) SipUrl v_PublicUserId_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); // as for INVITE - var template (omit) SessionId v_SessionId := omit; - var charstring v_CallIdString; - var template (value) From v_From; - var template (value) To v_To; - var template (value) CallId v_CallId; - var integer v_CSeqValue; - - if (p_ReferCreatingDialog) { - v_CSeqValue := p_CSeqValue; - v_From := cs_From(f_SIP_BuildSipUri_TX(p_CallerSipAddrStr), f_IMS_GenerateTag("REFER", "From")); - v_To := cs_ToDef(v_PublicUserId_SipUrl); - v_CallIdString := f_IMS_PTC_GenerateCallId("REFER"); - v_CallId := cs_CallId(v_CallIdString); - if (p_SessionIdSupported) { - v_SessionId := cs_SessionId(f_IMS_SessionId_TX_Generate(v_CallIdString)); - } - } else { /* no dialog is active => there has been no previous INVITE (e.g. test case 15.21) - => REFER creates dialog between the remote UE (p_CallerSipAddrStr) and the UE (addressed with default IMPU) - see RFC 3515 clause 2 */ - // !!!! this branch needs to be checked !!!! - v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal); - v_To := f_IMS_RequestInDialog_ToHeaderTX(); - v_From := f_IMS_RequestInDialog_FromHeaderTX(); - v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); - v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); - } - - v_MessageHeader_Refer.via := f_IMS_InviteRequest_ViaTX(); // same as for INVITE - v_MessageHeader_Refer.fromField := v_From; - v_MessageHeader_Refer.toField := v_To; - v_MessageHeader_Refer.callId := v_CallId; - v_MessageHeader_Refer.sessionId := v_SessionId; - v_MessageHeader_Refer.cSeq := cs_CseqDef(v_CSeqValue, "REFER"); - v_MessageHeader_Refer.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_CallerSipAddrStr, tsc_IMS_CallerPort)); /* same as for INVITE: this is the address to which the UE shall send the notifications */ - v_MessageHeader_Refer.referTo := cs_ReferTo(f_SIP_BuildSipUri_TX(p_ConferenceURI)); /* NOTE: acc. to 24.147 cl. 5.3.1.5.2 when inviting another user there shall be a "method=INVITE" - * or the "method parameter shall be omitted => we don't need to include the "method" parameter */ - v_MessageHeader_Refer.maxForwards := cs_MaxForwardsDef; - - if (ispresent(p_ReferredByURI)) { - v_MessageHeader_Refer.referredBy := cs_ReferredBy(f_SIP_BuildSipUri_TX(valueof(p_ReferredByURI))); /* NOTE: acc. to 24.147 cl. 5.3.1.5.2 this shall be the "URI of the conference participant that is sending the REFER request" - * => it might not be necessary to use a different URI than as for the From header */ - } - return v_MessageHeader_Refer; - } - - function f_IMS_NotifyRequest_MessageHeader_A211(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit, - template (value) SipUrl p_ContactUri, - template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader - { /* Send NOTIFY acc. to 34.229-1 Annex A.2.11 */ - /* NOTE: this function requires a second "REFER" dialog being establisehed at the IMS PTC */ - var template (value) MessageHeader v_MessageHeader_Notify := cs_MessageHeader_Dummy; - var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal, p_DialogIndex); - - v_MessageHeader_Notify.via := f_IMS_InviteRequest_ViaTX(); // same as for INVITE - v_MessageHeader_Notify.toField := f_IMS_RequestInDialog_ToHeaderTX(p_DialogIndex); - v_MessageHeader_Notify.fromField := f_IMS_RequestInDialog_FromHeaderTX(p_DialogIndex); - v_MessageHeader_Notify.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(p_DialogIndex); - v_MessageHeader_Notify.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(referDialog); - v_MessageHeader_Notify.cSeq := cs_CseqDef(v_CseqValue, "NOTIFY"); - v_MessageHeader_Notify.contact := cs_Contact(p_ContactUri); - v_MessageHeader_Notify.contentType := cs_ContentType("message/sipfrag"); - v_MessageHeader_Notify.event := cs_EventDef("refer"); - v_MessageHeader_Notify.maxForwards := cs_MaxForwardsDef(69); - v_MessageHeader_Notify.subscriptionState := p_SubscriptionState; - - return v_MessageHeader_Notify; - } - - function f_IMS_NotifyRequest_MessageHeader_A213(charstring p_SubscriptionState_SubstateValue, - template SemicolonParam_List p_SubscriptionState_SubexpParams) runs on IMS_PTC return template (present) MessageHeader - { /* A.2.13 MO NOTIFY for refer package */ - /* NOTE: this function requires a second "REFER" dialog being establisehed at the IMS PTC */ - var template (present) MessageHeader v_MessageHeader_Notify := cr_MessageHeader_Dummy; - var template (present) integer v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(dialogRemote, referDialog); - var template integer v_Port_ps := *; - var template integer v_Port_us := *; - var template (present) RouteBody_List v_RouteBodyList; - var IMS_ProtectedPorts_Type v_Protected; - - if (f_IMS_PTC_Security_IsStarted()) { - v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); - v_Port_us := v_Protected.Port_us; - v_Port_ps := v_Protected.Port_ps; - } - v_RouteBodyList := { - cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)), - cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)) - }; - - v_MessageHeader_Notify.via := f_IMS_InviteRequest_ViaRX(); /* additional checks required after message has been received (-> a_IMS_ReceiveNotifyForReferAndSendOK) */ - v_MessageHeader_Notify.route := cr_Route(v_RouteBodyList); - v_MessageHeader_Notify.toField := f_IMS_RequestInDialog_ToHeaderRX(referDialog); - v_MessageHeader_Notify.fromField := f_IMS_RequestInDialog_FromHeaderRX(referDialog); - v_MessageHeader_Notify.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(referDialog); - v_MessageHeader_Notify.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(referDialog); - v_MessageHeader_Notify.cSeq := cr_CseqDef(v_CSeqValue, "NOTIFY"); - - v_MessageHeader_Notify.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us)); /* additional checks required after message has been received (-> a_IMS_ReceiveNotifyForReferAndSendOK) */ - v_MessageHeader_Notify.contentType := cr_ContentType("message/sipfrag"); - v_MessageHeader_Notify.event := cr_EventDef("refer"); - - v_MessageHeader_Notify.maxForwards := cr_MaxForwardsDef; - v_MessageHeader_Notify.subscriptionState := cr_SubscriptionState(p_SubscriptionState_SubstateValue, p_SubscriptionState_SubexpParams); - - return v_MessageHeader_Notify; - } - - function f_IMS_NotifyRequest_MessageHeader_A53(SUBSCRIBE_Request p_SubscribeRequest, - charstring p_ConferenceUri, - integer p_CseqValue, - template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader - { /* Prepare NOTIFY header according. to 34.229-1 Annex A.5.3 */ - var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); - var charstring v_Scscf := px_IMS_Scscf; - var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, v_Scscf}; - var template (value) SipUrl v_ContactSipUrl := f_SIP_BuildSipUri_TX(p_ConferenceUri); - var EventType v_EventType := "conference"; - - return f_IMS_NotifyRequest_MessageHeader_Common(p_SubscribeRequest, v_ViaAddressList, v_ContactSipUrl, v_EventType, p_CseqValue, p_SubscriptionState); - } - - altstep a_IMS_ReceiveNotifyForReferAndSendOK(charstring p_CallerSipAddrStr, - charstring p_SubscriptionState_SubstateValue, - template SemicolonParam_List p_SubscriptionState_SubexpParams := *, - boolean p_SubscriptionState_NoExpires := false, - boolean p_RepeatFlag := false) runs on IMS_PTC - { /* receive NOTIFY acc. to A.2.13 and respond with 200 OK */ - var template (present) MessageHeader v_MessageHeader_Template := f_IMS_NotifyRequest_MessageHeader_A213(p_SubscriptionState_SubstateValue, p_SubscriptionState_SubexpParams); - var template (present) MessageBody v_MessageBody := cr_MessageBody_SipFrag("SIP/2.0 100 Trying"); - var MessageHeader v_MessageHeader_Notify; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - var template (value) MessageHeader v_MessageHeader_200; - var template (omit) GenericParam v_ExpiresParam; - var IMS_DATA_REQ v_IMS_DATA_REQ; - - [] IMS_Server.receive(car_IMS_Notify_Request(cr_NOTIFY_Request(f_SIP_BuildSipUri_RX(p_CallerSipAddrStr), v_MessageHeader_Template, v_MessageBody))) -> value v_IMS_DATA_REQ - { - v_MessageHeader_Notify := v_IMS_DATA_REQ.Request.Notify.msgHeader; - // additional checks: - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader_Notify); // check whether contact contains "SIP URI with IP address or FQDN" - f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader_Notify, v_IMS_DATA_REQ.RoutingInfo.Protocol); - if (p_SubscriptionState_NoExpires) { - v_ExpiresParam := f_SIP_SemicolonParamList_GetParam(v_MessageHeader_Notify.subscriptionState.substateParams, "expires"); - if (ispresent(v_ExpiresParam)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "'expires' shall be omitted in NOTIFY.subscriptionState"); - } - } - v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - v_MessageHeader_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader_Notify); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, v_MessageHeader_200))); - if (p_RepeatFlag) {repeat;} - } - } - - altstep a_IMS_Conference_ReceiveSubscribeA53SendOK(out IMS_DATA_REQ p_IMS_SUBSCRIBE_REQ, - charstring p_ConferenceUri) runs on IMS_PTC - { /* UE subscribes to conference event package acc. to 34.229-1 A.5.1 and A.5.2 */ - var template (present) SipUrl v_ConferenceSipUrlRX := f_SIP_BuildSipUri_RX(p_ConferenceUri); - var template (present) MessageHeader v_MessageHeader_Subscribe := f_IMS_SubscribeRequest_MessageHeaderRX("conference", v_ConferenceSipUrlRX, ?); - var MessageHeader v_MessageHeader_SubscribeValue; - var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ; - - [] IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(v_ConferenceSipUrlRX, v_MessageHeader_Subscribe))) -> value v_IMS_SUBSCRIBE_REQ - { - p_IMS_SUBSCRIBE_REQ := v_IMS_SUBSCRIBE_REQ; - v_MessageHeader_SubscribeValue := v_IMS_SUBSCRIBE_REQ.Request.Subscribe.msgHeader; - f_IMS_MessageHeader_CheckTo(v_MessageHeader_SubscribeValue, noToTag); - f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader_SubscribeValue, v_IMS_SUBSCRIBE_REQ.RoutingInfo.Protocol); - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader_SubscribeValue, true); - - f_IMS_SUBSCRIBE_Response(v_IMS_SUBSCRIBE_REQ, "7200", p_ConferenceUri); - } - } - - function f_IMS_Conference_SendNotifyReceiveOK(template (value) SipUrl p_ContactUrl, - template (value) MessageHeader p_MessageHeader_Notify, - template (value) MessageBody p_MessageBody) runs on IMS_PTC - { /* common function to send NOTIFY and wait for 200 OK */ - var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); - var template (present) MessageHeader v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(p_MessageHeader_Notify); - - IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_Protocol), cs_NOTIFY_Request(p_ContactUrl, p_MessageHeader_Notify, p_MessageBody))); - f_IMS_ReceiveResponse(p_MessageHeader_Notify, v_Protocol, cr_Response(c_statusLine200, v_MessageHeader_Response)); - } - - - function f_IMS_Conference_SendNotifyA53ReceiveOK(SUBSCRIBE_Request p_SubscribeRequest, - charstring p_ConferenceUri, - integer p_CseqValue, - template (value) SubscriptionState p_SubscriptionState, - template (value) Conference_type p_ConferenceBody) runs on IMS_PTC - { /* When the UE has subscribed to conference event package: send NOTIFY acc. to 34.229-1 A.5.3 and wait for OK */ - var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_SubscribeRequest.msgHeader); - var template (value) MessageHeader v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A53(p_SubscribeRequest, p_ConferenceUri, p_CseqValue, p_SubscriptionState); - - f_IMS_Conference_SendNotifyReceiveOK(v_ContactUrl, v_MessageHeader_Notify, cs_MessageBody_Conference(p_ConferenceBody)); - } - - //============================================================================ - // TS 34.229-1 Annex C.10 - //---------------------------------------------------------------------------- - - function f_IMS_ConferenceCreation_AnnexC10_Step2_3(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - charstring p_ContactURI := tsc_IMS_TemporaryConferenceUri) - runs on IMS_PTC return MessageHeader - { /* return MessageHeader of the 183 response */ - var template (omit) SemicolonParam_List v_AditionalContactParams := omit; - - v_AditionalContactParams := f_SemicolonParam_List_Add_TX(v_AditionalContactParams, cs_GenericParam("isfocus")); // As per C.10 - - return f_IMS_MOCallSetup_AnnexC21_Step3_4(p_InviteRequestWithSdp, p_ContactURI, v_AditionalContactParams); - } - - function f_IMS_ConferenceCreation_AnnexC10_Steps1_9(charstring p_ConferenceFactoryUri, - charstring p_TemporaryConferenceUri, - charstring p_FinalConferenceUri, - boolean p_RadioBearersEstablished := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type - { - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - var INVITE_Request v_InviteRequest; - var MessageHeader v_MessageHeader_183; - var template (value) SipUrl v_ContactUrl; - var template (value) MessageHeader v_MessageHeader_InviteResponse_200; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; - var template (present) MessageHeader v_MessageHeader_Ack; - - // @siclog "Step 1" siclog@ UE sends INVITE - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(p_ConferenceFactoryUri); - v_InviteRequest := v_InviteRequestWithSdp.Invite; - - // @siclog "Step 2 - 3" siclog@ same steps as for C.10 what in fact are steps 3 - 4 of C.21 - v_MessageHeader_183 := f_IMS_ConferenceCreation_AnnexC10_Step2_3(v_InviteRequestWithSdp, p_TemporaryConferenceUri); - - if (not p_RadioBearersEstablished) { - // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 - f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer - } - - // @siclog "Step 4 - 7" siclog@ same steps as steps 5 - 8 of C.21 - f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_183); - - // @siclog "Step 8" siclog@ Send 200 OK (response to INVITE) - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); - v_ContactUrl := f_SIP_BuildSipUri_TX(p_FinalConferenceUri); - v_MessageHeader_InviteResponse_200.contact := cs_Contact(v_ContactUrl, {cs_GenericParam("isfocus")}); /* !!!! PROSE ISSUE: this is missing for C10 - but is included in 15.17 and seems to be necessary acc. to 24.147 clause 5.3.1.3 !!!! */ - - - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); - - // @siclog "Step 9" siclog@ UE sends an ACK to acknowledge receipt of the 200 OK for INVITE - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); - IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_ContactUrl, v_MessageHeader_Ack))); - - return v_InviteRequestWithSdp; - } - - function f_IMS_ConferenceCreation_AnnexC10_Steps12_13(SUBSCRIBE_Request p_SubscribeRequest, - charstring p_ConferenceUri, - integer p_CseqValue := tsc_IMS_CseqValue_A53) runs on IMS_PTC - { /* send NOTIFY acc. to A.5.3 and wait for OK */ - var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_SubscribeRequest.msgHeader); - var template (value) SubscriptionState v_SubscriptionState := cs_SubscriptionState_Active("7200"); - var template (value) Conference_type v_ConferenceBody := cs_XmlBody_ConfInfo(p_ConferenceUri, - px_IMS_PublicUserIdentity1, - f_SIP_SipUrl2Str(v_ContactUrl)); - - f_IMS_Conference_SendNotifyA53ReceiveOK(p_SubscribeRequest, p_ConferenceUri, p_CseqValue, v_SubscriptionState, v_ConferenceBody); - } - - function f_IMS_ConferenceCreation_AnnexC10_Steps10_13(charstring p_FinalConferenceUri, - integer p_CseqValue := tsc_IMS_CseqValue_A53) runs on IMS_PTC return template (omit) SUBSCRIBE_Request - { - var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ_ByRef; - var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ; - timer t_Timer; - - t_Timer.start(tsc_WaitForConferenceSubscription); // !!!! PROSE ISSUE: needs to be specified in the prose !!!! - - // @siclog "Step 10 - 11" siclog@ Receive SUBSCRIBE, send OK - alt { - [] a_IMS_Conference_ReceiveSubscribeA53SendOK(v_IMS_SUBSCRIBE_REQ_ByRef, p_FinalConferenceUri) { - v_IMS_SUBSCRIBE_REQ := v_IMS_SUBSCRIBE_REQ_ByRef; - t_Timer.stop; - } - [] t_Timer.timeout {} - } - // @siclog "Step 12 - 13" siclog@ If the UE has sent SUBSCRIBE at step 10: SS sends NOTIFY and waits for 200 OK by the UE - if (isbound(v_IMS_SUBSCRIBE_REQ)) { - f_IMS_ConferenceCreation_AnnexC10_Steps12_13(v_IMS_SUBSCRIBE_REQ.Request.Subscribe, p_FinalConferenceUri, p_CseqValue); - return v_IMS_SUBSCRIBE_REQ.Request.Subscribe; - } - return omit; - } - - function f_IMS_ConferenceCreation_AnnexC10(charstring p_ConferenceFactoryUri, - charstring p_TemporaryConferenceUri, - charstring p_FinalConferenceUri, - boolean p_RadioBearersEstablished := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type - { - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - - v_InviteRequestWithSdp := f_IMS_ConferenceCreation_AnnexC10_Steps1_9(p_ConferenceFactoryUri, p_TemporaryConferenceUri, p_FinalConferenceUri, p_RadioBearersEstablished); - f_IMS_ConferenceCreation_AnnexC10_Steps10_13(p_FinalConferenceUri); - - return v_InviteRequestWithSdp; - } - - //============================================================================ - // TS 34.229-1 Annex C.19 - //---------------------------------------------------------------------------- - - function f_IMS_InviteUserToConference_AnnexC19_Steps1_6(boolean p_ReferCreatingDialog := true, - charstring p_RequestUriString, - charstring p_ReferToUriString) runs on IMS_PTC - { /* p_RequestUriString ... URI to which UE shall send the Refer: conference URI (annex C.19, testcase 15.19) or remote URI (test case 15.18) - p_ReferToUriString ... URI to be used in the refer-to header of the REFER message: remote URI (annex C.19, testcase 15.19) or conference URI (test case 15.18) */ - var template (present) MessageHeader v_MessageHeader_ReferTemplate; - var MessageHeader v_MessageHeader_ReferValue; - var IMS_DATA_REQ v_IMS_REFER_REQ; - var REFER_Request v_ReferRequest; - var template (value) MessageHeader v_MessageHeader_Notify; - var template (value) MessageHeader v_MessageHeader_Response; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; - var template (omit) IMS_PTC_DialogIndex_Type v_DialogIndex := omit; - var template (present) SipUrl v_RequestUriRefer := f_SIP_BuildSipUri_RX(p_RequestUriString); - var template (present) SipUrl v_ReferToUri := f_SIP_BuildSipUri_RX(p_ReferToUriString); - var template (value) SipUrl v_RequestUrlNotify; - var template (value) SipUrl v_ContactUrlNotify := f_SIP_BuildSipUri_TX(p_RequestUriString, f_IMS_PTC_GetPort_ps()); - var charstring v_ToTag; - - // Step 1. UE sends REFER to SS - v_MessageHeader_ReferTemplate := f_IMS_ReferRequest_MessageHeaderRX(p_ReferCreatingDialog, v_RequestUriRefer, v_ReferToUri); - IMS_Server.receive(car_IMS_Refer_Request(cr_REFER_Request(v_RequestUriRefer, v_MessageHeader_ReferTemplate))) -> value v_IMS_REFER_REQ; - f_IMS_A_2_10_Refer_CommonChecks(v_IMS_REFER_REQ); - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_REFER_REQ.RoutingInfo); - v_MessageHeader_ReferValue := v_IMS_REFER_REQ.Request.Refer.msgHeader; - v_RequestUrlNotify := f_MessageHeader_GetContactSipUrl(v_MessageHeader_ReferValue); - if (p_ReferCreatingDialog) { - v_DialogIndex := referDialog; - f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_MessageHeader_ReferValue, v_DialogIndex); - } - - // Step 2. The SS responds with 202 Accepted - v_MessageHeader_Response := f_IMS_Accepted_202_MessageHeaderTX(v_MessageHeader_ReferValue); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine202, v_MessageHeader_Response))); - if (p_ReferCreatingDialog) { - v_ToTag := valueof(f_MessageHeader_GetToTag(v_MessageHeader_Response)); // v_MessageHeader_Response has a to-tag (as by f_IMS_Accepted_202_MessageHeaderTX) - f_IMS_PTC_ImsInfo_DialogSetLocalTag(v_ToTag, v_DialogIndex); - } - - // Step 3 - 4. The SS sends initial NOTIFY for the implicit subscription created by the REFER request; UE responds with 200 OK - v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A211(v_DialogIndex, v_ContactUrlNotify, cs_SubscriptionState_Active("300")); - f_IMS_Conference_SendNotifyReceiveOK(v_RequestUrlNotify, v_MessageHeader_Notify, cs_MessageBody_SipFrag("SIP/2.0 100 Trying")); - - // Step 5 - 6. The SS sends a NOTIFY related to REFER request to confirm that the invited user was able to join the conference; UE responds with 200 OK - v_ReferRequest := v_IMS_REFER_REQ.Request.Refer; - v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A211(v_DialogIndex, v_ContactUrlNotify, cs_SubscriptionState_Terminated); - f_IMS_Conference_SendNotifyReceiveOK(v_RequestUrlNotify, v_MessageHeader_Notify, cs_MessageBody_SipFrag("SIP/2.0 200 OK")); - } - - - function f_IMS_InviteUserToConference_AnnexC19_Steps7_8(charstring p_ConferenceUri, - template (omit) SUBSCRIBE_Request p_SubscribeRequest, - charstring p_ParticipantUri, - charstring p_ParticipantContactUri, - integer p_UserCnt := 1) runs on IMS_PTC - { /* Step 7 - 8. The SS sends a NOTIFY for conference event package; UE responds with 200 OK */ - /* PROSE ISSUE: prose specifies hard-coded value for the label of the NOTIFY's message body but it seems that the label shall be different for different users (-> RFC 4575 clause 5.8.3) - => parameter p_UserCnt (starting with 1) to distinguish subsequent users joining the conference call */ - var SUBSCRIBE_Request v_SubscribeRequest; - var integer v_CseqValue := tsc_IMS_CseqValue_A53 + p_UserCnt; - var integer v_Version := p_UserCnt; // assuming the version to be 0 for the user creating the conference - var template (value) SubscriptionState v_SubscriptionState; - var template (value) Media_type v_Media; - var template (value) Conference_type v_ConferenceBody; - - if (isvalue(p_SubscribeRequest)) { - v_SubscribeRequest := valueof(p_SubscribeRequest); - - select (p_UserCnt) { - case (1) { v_Media := cs_Media("11223", "11224"); } - case (1) { v_Media := cs_Media("22334", "22335"); } // PROSE ISSUE !!! - case else { FatalError(__FILE__, __LINE__, ""); } - } - v_SubscriptionState := cs_SubscriptionState_Active("7200"); - v_ConferenceBody := cs_XmlBody_ConfInfo(p_ConferenceUri, p_ParticipantUri, p_ParticipantContactUri, partial, v_Version, v_Media); - - f_IMS_Conference_SendNotifyA53ReceiveOK(v_SubscribeRequest, p_ConferenceUri, v_CseqValue, v_SubscriptionState, v_ConferenceBody); - } - } - - //**************************************************************************** - // Test case 15.17 - //---------------------------------------------------------------------------- - - function f_TC_15_17_IMS() runs on IMS_PTC - { /* PROSE ISSUEs: - * - steps 1-7 refer to 1-7 of clause 12.12.4; in older releases of 34.229-1 12.12.4 has been referring to C.7 where steps 1-7 are similar to steps 2-8 od C.21; - * => steps 1-7 shall refer to steps 2-8 of C.21 and an additional step 0 is needed to trigger the MMI to create the conference call - */ - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ - - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); - - f_IMS_TestBody_Set(true); - - // @siclog "Step 0" siclog@ Trigger UE to create conference call - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall, -, conferenceCall); - - // @siclog "Step 1 - 13" siclog@ same steps as for C.10 - v_InviteRequestWithSdp := f_IMS_ConferenceCreation_AnnexC10(tsc_IMS_ConferenceFactoryUri, tsc_IMS_TemporaryConferenceUri, tsc_IMS_FinalConferenceUri); - - // @siclog "Step 14 - 15" siclog@ - f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite, f_SIP_BuildSipUri_RX(tsc_IMS_FinalConferenceUri)); - - f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); - } - - /* ************************************************************************** */ - // See 34.229-1 clause 15.18 - - function f_TC_15_18_TC_15_19_Common(charstring p_RequestUriString, - charstring p_ReferToUriString) runs on IMS_PTC - { /* p_RequestUriString ... URI to which UE shall send the Refer: conference URI (testcase 15.19) or remote URI (test case 15.18) - p_ReferToUriString ... URI to be used in the refer-to header of the REFER message: remote URI (testcase 15.19) or conference URI (test case 15.18) */ - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - var template (omit) SUBSCRIBE_Request v_SubscribeRequest; - - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); - - // Trigger UE to create conference call - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall, -, conferenceCall); - - // procedure C.10 - v_InviteRequestWithSdp := f_IMS_ConferenceCreation_AnnexC10_Steps1_9(tsc_IMS_ConferenceFactoryUri, tsc_IMS_TemporaryConferenceUri, tsc_IMS_FinalConferenceUri); - v_SubscribeRequest := f_IMS_ConferenceCreation_AnnexC10_Steps10_13(tsc_IMS_FinalConferenceUri); - - f_IMS_TestBody_Set(true); - - // @siclog "Step 1 - 6" siclog@ - f_IMS_InviteUserToConference_AnnexC19_Steps1_6(-, p_RequestUriString, p_ReferToUriString); - // @siclog "Step 7 - 8" siclog@ - f_IMS_InviteUserToConference_AnnexC19_Steps7_8(tsc_IMS_FinalConferenceUri, v_SubscribeRequest, px_IMS_CalleeUri, px_IMS_CalleeContactUri); - - f_IMS_TestBody_Set(false); - - f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); - - f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); - } - - function f_TC_15_18_IMS() runs on IMS_PTC - { - f_TC_15_18_TC_15_19_Common(px_IMS_CalleeUri, tsc_IMS_FinalConferenceUri); - } - - function f_TC_15_19_IMS() runs on IMS_PTC - { - f_TC_15_18_TC_15_19_Common(tsc_IMS_FinalConferenceUri, px_IMS_CalleeUri); - } - - //**************************************************************************** - // Test case 15.21 - //---------------------------------------------------------------------------- - - function fl_TC_15_21_Step3(charstring p_ConferenceUri, - charstring p_ReferredByUri, - boolean p_GeolocationInfoAvailable := pc_IMS_Geolocation) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type - { - var template (omit) float v_WaitDuration := omit; // no wait duration - var IMS_DATA_REQ v_IMS_DATA_REQ; - var SDP_Message v_SDP_Message; - - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), - cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, (c_none, c_sendrecv)), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - var template (present) SDP_media_desc v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media, - v_SDP_Attribute_List); - var template (present) SDP_Message v_SDP_MessageRX := cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - - var template (present) MessageHeader v_MessageHeader := cr_MessageHeader_Dummy; - - v_MessageHeader.referredBy := cr_ReferredBy(f_SIP_BuildSipUri_RX(p_ReferredByUri)); - - v_IMS_DATA_REQ := valueof(f_IMS_INVITE_ReceiveRequest_Common(-, v_MessageHeader, tsc_OptionTagList_precondition, p_ConferenceUri, v_WaitDuration, -, p_GeolocationInfoAvailable)); - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); - - // check media description: - f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); - - return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ, v_SDP_Message); - } - - function fl_TC_15_21_Step5_6(charstring p_InvitingUri) runs on IMS_PTC - { - var template (present) charstring v_NonZeroValue := pattern "[1-9][0-9]#(,)"; - var template (present) SemicolonParam_List v_SubscriptionState_SubexpParams := cr_SemicolonParam_List_OneSpecificParamWithValue("expires", v_NonZeroValue); - - a_IMS_ReceiveNotifyForReferAndSendOK(p_InvitingUri, "active", v_SubscriptionState_SubexpParams); - } - - function fl_TC_15_21_Step7(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - charstring p_ContactUri) runs on IMS_PTC return MessageHeader - { /* p_ContactUri shall be the conference URI */ - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); - var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; - var SDP_Message v_SDP_MessageInvite := p_InviteRequestWithSdp.SdpOffer; - var template (value) MessageHeader v_MessageHeader_183; - var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(v_SDP_MessageInvite); - var template (omit) SDP_attribute_list v_AttributeList; - - // build SDP message - if (lengthof(v_SDP_MessageInvite.media_list) > 1) { - FatalError(__FILE__, __LINE__, "SDP offer contains more than one media description - not supported yet"); - } - v_AttributeList := f_SDP_ExchangeAttribute(v_SDP_Message.media_list[0].attributes, cr_SDP_Attribute_des_qos(c_optional, c_remote), cs_SDP_Attribute_des_qos(c_mandatory, c_remote)); - v_AttributeList := f_SDP_Attributes_Add_TX(v_AttributeList, cs_SDP_Attribute_conf_qos(c_remote, c_sendrecv)); - v_SDP_Message.media_list[0].attributes := v_AttributeList; - - // Send 183 Session In Progress. - v_MessageHeader_183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_183, cs_MessageBody_SDP(v_SDP_Message)))); - - return valueof(v_MessageHeader_183); - } - - function fl_TC_15_21_Step8_12(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - template (value) MessageHeader p_MessageHeader_Prev183Response) runs on IMS_PTC - { - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); - var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; - var template (value) MessageHeader v_MessageHeader_InviteResponse_200; - - // Steps 8 to 12 - f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response); - - // Step 12. Send 200 OK (response to INVITE) - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); - } - - //---------------------------------------------------------------------------- - - function f_TC_15_21_IMS() runs on IMS_PTC - { /* TC 15.21 - Joining a conference after being invited to it */ - /* Implementation: - test case needs three dialogs: - 1. dialog created by REFER between remote (inviting) UE (tsc_IMS_CallerSipAddrStr) and UE under test: UE notifies remote UE of state changes while joining the conference (-> RFC 3515 clause 2.4) - 2. dialog created by INVITE between UE under test and SS (conference URI) - 3. dialog created by SUBSCRIBE between UE under test and SS (conference URI): conference focus may notify UE about state changes of the conference call - The 3rd dialog can be handled straight forward, the 2nd dialog is the "normal" dialog for the (conference) call - i.e. uses state variables to be stored at the IMS PTC as usual, - and the 1st dialog needs also to store state variables at the IMS PTC as additional NOTIFY messages may occur referring to this dialog - => We use the IMS PTC's first dialog for the call establishment (as usual) and the IMS PTC's second dialog for the "refer" dialog */ - var charstring v_InvitingUri := tsc_IMS_CallerSipAddrStr; - var charstring v_ConferenceUri := tsc_IMS_FinalConferenceUri; - var charstring v_ReferredByUri := "sip:master@conference.com"; - var template (present) SipUrl v_ConferenceSipUrlRX := f_SIP_BuildSipUri_RX(v_ConferenceUri); - var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ_ByRef; - var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ; - var IMS_DATA_RSP v_IMS_DATA_RSP; - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - var INVITE_Request v_InviteRequest; - var MessageHeader v_MessageHeader_183; - var template (value) MessageHeader v_MessageHeader_Refer; - var template (value) REFER_Request v_ReferRequest; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; - var SipUrl v_ContactUrl; - var InternetProtocol_Type v_Protocol; - var template (present) MessageHeader v_MessageHeader_Ack; - var template (present) MessageHeader v_MessageHeader_Subscribe; - var template (present) SemicolonParam_List v_SubscriptionState_SubexpParams; - var boolean v_SubscriptionState_NoExpires; - var boolean v_WaitingForAck; - var boolean v_WaitingForNotify; - var boolean v_WaitingForSubscribe; - var default v_DefaultVar := null; - timer t_Timer; - - // Initial conditions - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); - - f_IMS_CC_StartCall(IPCAN_MT_SpeechCall); // IPCAN behaviour is as for MT call - - f_IMS_TestBody_Set(true); - v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); - v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); - - // @siclog "Step 1" siclog@ SS sends REFER to UE referring to the conference - v_MessageHeader_Refer := f_IMS_ReferRequest_MessageHeaderTX(-, v_InvitingUri, v_ConferenceUri, v_ReferredByUri); - f_IMS_PTC_ImsInfo_DialogInit(dialogLocal, valueof(v_MessageHeader_Refer), referDialog); - v_ReferRequest := cs_REFER_Request(v_ContactUrl, v_MessageHeader_Refer); - IMS_Client.send(cas_IMS_Refer_Request(cs_IMS_RoutingInfo(v_Protocol), v_ReferRequest)); - - // @siclog "Step 2" siclog@ UE responds with a with a 202 Accepted response - v_IMS_DATA_RSP := f_IMS_ReceiveResponse(v_MessageHeader_Refer, v_Protocol, cr_Response(c_statusLine202, f_IMS_Accepted_202_MessageHeaderRX(v_MessageHeader_Refer))); - f_IMS_Dialog_SetRemoteTag(v_IMS_DATA_RSP.Response.msgHeader, referDialog); - - // @siclog "Step 3" siclog@ Receive INVITE - v_InviteRequestWithSdp := fl_TC_15_21_Step3(v_ConferenceUri, v_ReferredByUri); - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); - v_InviteRequest := v_InviteRequestWithSdp.Invite; - - // @siclog "Step 4" siclog@ SS sends 100 Trying - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); - - // @siclog "Step 5 - 6" siclog@ UE sends NOTIFY, SS respondes with 200 OK - fl_TC_15_21_Step5_6(v_InvitingUri); - - v_DefaultVar := activate(a_IMS_ReceiveNotifyForReferAndSendOK(v_InvitingUri, "active", -, -, true)); - - // @siclog "Step 7" siclog@ SS sends 183 Session in Progress - v_MessageHeader_183 := fl_TC_15_21_Step7(v_InviteRequestWithSdp, v_ConferenceUri); - - f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MT_SpeechCall); /* trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer; - as we have started the IPCAN as for MT call we also need to continue as if it is an MT call */ - // @siclog "Step 8 - 12" siclog@ UE sends PRACK, SS sends 200 OK; optionally: UE sends UPDATE, SS sends 200 OK; SS sends final 200 OK for INVITE - fl_TC_15_21_Step8_12(v_InviteRequestWithSdp, v_MessageHeader_183); - - // @siclog "Step 13 - 15" siclog@ UE sends ACK, NOTIFY and optionally SUBSCRIBE, SS response to ACK with 200 OK and to optionally to SUBSCRIBE with 200 OK - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); - v_MessageHeader_Subscribe := f_IMS_SubscribeRequest_MessageHeaderRX("conference", v_ConferenceSipUrlRX, ?); - - v_WaitingForAck := true; - v_WaitingForNotify := true; - v_WaitingForSubscribe := true; - v_SubscriptionState_SubexpParams := cr_SemicolonParam_List_OneSpecificParamWithValue("reason", "noresource"); - v_SubscriptionState_NoExpires := true; // there shall be no "expires" in the Subscription-State - - t_Timer.start(tsc_WaitForConferenceSubscription); // !!!! PROSE ISSUE: needs to be documented in the prose !!!! - while (v_WaitingForAck or v_WaitingForNotify or v_WaitingForSubscribe) { - alt { - [] IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_ConferenceSipUrlRX, v_MessageHeader_Ack))) { - v_WaitingForAck := false; - } - [] a_IMS_ReceiveNotifyForReferAndSendOK(v_InvitingUri, "terminated", v_SubscriptionState_SubexpParams, v_SubscriptionState_NoExpires) { - v_WaitingForNotify := false; - deactivate(v_DefaultVar); - } - [] a_IMS_Conference_ReceiveSubscribeA53SendOK(v_IMS_SUBSCRIBE_REQ_ByRef, v_ConferenceUri) { - v_IMS_SUBSCRIBE_REQ := v_IMS_SUBSCRIBE_REQ_ByRef; - v_WaitingForSubscribe := false; - t_Timer.stop; - } - [] t_Timer.timeout { - v_WaitingForSubscribe := false; - } - } - } - // @siclog "Step 15 - 17" siclog@ If the UE has sent SUBSCRIBE at step 13: SS sends NOTIFY and waits for 200 OK by the UE - if (isbound(v_IMS_SUBSCRIBE_REQ)) { - f_IMS_ConferenceCreation_AnnexC10_Steps12_13(v_IMS_SUBSCRIBE_REQ.Request.Subscribe, v_ConferenceUri); - } - - // @siclog "Step 18 - 19" siclog@ - v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_MessageHeader_183); - f_IMS_CallReleaseMT(v_InviteRequestWithSdp.Invite, v_ContactUrl); - - f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_MT_SpeechCall); - } - - /* ************************************************************************** */ - - altstep a_TC_15_21a_ReceiveByeSendOK(IMS_PTC_DialogIndex_Type p_DialogIndex, - template (present) SipUrl p_ContactSipUrl, - template (present) MessageHeader p_MessageHeader) runs on IMS_PTC - { /* !!!! to be merged with f_IMS_CallReleaseMO !!!! */ - var IMS_DATA_REQ v_IMS_DATA_REQ; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - - [] IMS_Server.receive(car_IMS_Bye_Request(cr_BYE_Request(p_ContactSipUrl, p_MessageHeader))) -> value v_IMS_DATA_REQ - { - if (f_IMS_PTC_ImsInfo_DialogIsReleased(p_DialogIndex)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Dialog has already been released"); - } - f_IMS_MessageHeader_Request_CheckVia(v_IMS_DATA_REQ.Request.Bye.msgHeader, v_IMS_DATA_REQ.RoutingInfo.Protocol); - v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Bye.msgHeader)))); - - f_IMS_PTC_ImsInfo_DialogRelease(); - } - } - - - // See 34.229-1 clause 15.21a - Three way session creation - function f_TC_15_21a_IMS() runs on IMS_PTC - { /* PROSE ISSUES: - - PIXIT needed for 2nd callee - - the same contact URI is used for 2nd call as for the 1st call but both should be the same - - acc. to 24.147 it seems that the UE shall send a BYE for each dialog for which it has got notification about the user has joined the conference (clause 5.3.1.3.3) - - prose is very unlear about when the BYE(s) may occur (there are contradictions in the different notes) and to which dialogs the respective BYE refers - - it is not specified how long the test case shall wiat for the 2nd BYE (it is also not clear why the 2nd BYE is optional) */ - var charstring v_CalleeUri_Dialog1 := px_IMS_CalleeUri; - var charstring v_CalleeContactUri_Dialog1 := px_IMS_CalleeContactUri; - var charstring v_CalleeUri_Dialog2 := "sip:User-C@3gpp.org"; // !!!! PIXIT ??? !!!! - var charstring v_CalleeContactUri_Dialog2 := "sip:User-C-Contact@3gpp.org"; // !!!! PIXIT ??? !!!! - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog1; - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog2; - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog3; - var MessageHeader v_MessageHeader_183_Dialog1; - var MessageHeader v_MessageHeader_183_Dialog2; - var SipUrl v_ContactUrl_Dialog1; - var SipUrl v_ContactUrl_Dialog2; - var SipUrl v_ContactUrl_UE; - var template (omit) SUBSCRIBE_Request v_SubscribeRequest; - var template (present) MessageHeader v_MessageHeader_Bye_Dialog1; - var template (present) MessageHeader v_MessageHeader_Bye_Dialog2; - var SDP_Message v_SDP_OriginalOffer; - var boolean v_RadioBearersEstablished; - - var default v_DefaultVar_Dialog1 := null; - var default v_DefaultVar_Dialog2 := null; - - // Initial conditions - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); - - // Setup MO speech call - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall, v_CalleeUri_Dialog1); // C.21 Step 1 - - v_InviteRequestWithSdp_Dialog1 := f_IMS_MOCallSetup_AnnexC21_Step2_A4(v_CalleeUri_Dialog1); // C.21 Step 2 - v_MessageHeader_183_Dialog1 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp_Dialog1, v_CalleeContactUri_Dialog1); // C.21 Step 3, 4 - v_ContactUrl_Dialog1 := f_MessageHeader_GetContactSipUrl(v_MessageHeader_183_Dialog1); - f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer - v_RadioBearersEstablished := true; - v_SDP_OriginalOffer := f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp_Dialog1, v_MessageHeader_183_Dialog1); // C.21 Step 5 .. 13 - - f_IMS_TestBody_Set(true); - - //Steps 1 to 4 - Messages in Annex C.8 - Set ongoing call on hold - // @siclog "Step 1 - 4" siclog@ - f_UT_CallHold(MMI); - f_IMS_MOCallHoldResume_AnnexC8(HOLD, v_InviteRequestWithSdp_Dialog1.Invite, v_MessageHeader_183_Dialog1, v_SDP_OriginalOffer); - f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); - - v_MessageHeader_Bye_Dialog1 := f_IMS_ByeRequest_MessageHeaderRX(v_InviteRequestWithSdp_Dialog1.Invite); - v_DefaultVar_Dialog1 := activate(a_TC_15_21a_ReceiveByeSendOK(firstDialog, v_ContactUrl_Dialog1, v_MessageHeader_Bye_Dialog1)); - - - // @siclog "Step 5 - 17" siclog@ Steps defined in Annex C.21 - MO call - f_IMS_PTC_ImsInfo_ActivateDialog(secondDialog); - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall, v_CalleeUri_Dialog2); // C.21 Step 1 - v_InviteRequestWithSdp_Dialog2 := f_IMS_MOCallSetup_AnnexC21_Step2_A4(v_CalleeUri_Dialog2); // C.21 Step 2 - v_MessageHeader_183_Dialog2 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp_Dialog2, v_CalleeContactUri_Dialog2); // C.21 Step 3, 4; PROSE ISSUE: there should be a different contact URI than for the 1st dialog - v_ContactUrl_Dialog2 := f_MessageHeader_GetContactSipUrl(v_MessageHeader_183_Dialog2); - // NOTE: the radio bearers are already established - f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp_Dialog2, v_MessageHeader_183_Dialog2); // C.21 Step 5 .. 13 - f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); - - v_MessageHeader_Bye_Dialog2 := f_IMS_ByeRequest_MessageHeaderRX(v_InviteRequestWithSdp_Dialog2.Invite); - v_DefaultVar_Dialog2 := activate(a_TC_15_21a_ReceiveByeSendOK(firstDialog, v_ContactUrl_Dialog2, v_MessageHeader_Bye_Dialog2)); - - // @siclog "Step 18 - 30" siclog@ Steps defined in Annex C.10 - f_IMS_PTC_ImsInfo_ActivateDialog(thirdDialog); - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall, -, conferenceCall); - v_InviteRequestWithSdp_Dialog3 := f_IMS_ConferenceCreation_AnnexC10_Steps1_9(tsc_IMS_ConferenceFactoryUri, tsc_IMS_TemporaryConferenceUri, tsc_IMS_FinalConferenceUri, v_RadioBearersEstablished); - v_ContactUrl_UE := f_MessageHeader_GetContactSipUrl(v_InviteRequestWithSdp_Dialog3.Invite.msgHeader); - v_SubscribeRequest := f_IMS_ConferenceCreation_AnnexC10_Steps10_13(tsc_IMS_FinalConferenceUri); - f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); - - // @siclog "Step 31 - 38" siclog@ Steps defined in Annex C.19 - // !!!! Any MMI needed to invite the 1st callee ??? !!!! - f_IMS_PTC_ImsInfo_DialogRelease(referDialog); // re-intitialise "referDialog" - f_IMS_InviteUserToConference_AnnexC19_Steps1_6(-, tsc_IMS_FinalConferenceUri, v_CalleeUri_Dialog1); // PROSE ISSUE: it is not clear whether to use callee uri or the callee's contact uri - f_IMS_InviteUserToConference_AnnexC19_Steps7_8(tsc_IMS_FinalConferenceUri, v_SubscribeRequest, v_CalleeUri_Dialog1, v_CalleeContactUri_Dialog1, 1); - f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); - - // @siclog "Step 39 - 46" siclog@ Steps defined in Annex C.19 - // !!!! Any MMI needed to invite the 2nd callee ??? !!!! - f_IMS_PTC_ImsInfo_DialogRelease(referDialog); // re-intitialise "referDialog" - f_IMS_InviteUserToConference_AnnexC19_Steps1_6(-, tsc_IMS_FinalConferenceUri, v_CalleeUri_Dialog2); - f_IMS_InviteUserToConference_AnnexC19_Steps7_8(tsc_IMS_FinalConferenceUri, v_SubscribeRequest, v_CalleeUri_Dialog2, v_CalleeContactUri_Dialog2, 2); - f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); - - f_Delay(5.0); // PROSE ISSUE: how long to wait for BYE(s) ?? - deactivate(v_DefaultVar_Dialog1); - deactivate(v_DefaultVar_Dialog2); - - // @siclog "Step 47 - 48" siclog@ Terminate conference - f_IMS_CallReleaseMT(v_InviteRequestWithSdp_Dialog3.Invite, v_ContactUrl_UE); - - f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); - } -} diff --git a/IMS_PART4_IWD_14wk37/IMS/17/IMS_CC_MediaTestcases.ttcn b/IMS_PART4_IWD_14wk37/IMS/17/IMS_CC_MediaTestcases.ttcn deleted file mode 100644 index 9f1c4fb..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/17/IMS_CC_MediaTestcases.ttcn +++ /dev/null @@ -1,523 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-27 20:03:42 +0200 (Wed, 27 Aug 2014) $ -// $Rev: 11936 $ -/******************************************************************************/ -module IMS_CC_MediaTestcases { - - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from IP_ASP_TypeDefs all; - import from IMS_Component all; - import from IMS_ASP_TypeDefs all; - import from IMS_ASP_Templates all; - import from IMS_CommonParameters all; - import from IMS_CommonTemplates all; - import from IMS_SIP_Templates all; - import from IMS_MessageBody_Templates all; - import from IMS_SDP_Templates all; - import from IMS_SDP_Messages all; - import from IMS_CC_CommonFunctions all; - import from IMS_Procedures_CallControl all; - import from IMS_PTC_CoordMsg all; - import from UpperTesterFunctions all; - import from IMS_CommonFunctions all; - import from IMS_CC_CallControlTestcases all; - import from IMS_Procedures_Common all; - - /****************************************************************************/ - function f_IMS_BuildSDP_SpeechVideoRx_MO() runs on IMS_PTC return template (present) SDP_Message - { /* Build SDP record to be received from the UE at step 2 according to 34.229-1 17.1 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrAudio := ?; - var template (present) charstring v_IPAddrVideo := ?; - var charstring v_FmtAudio := tsc_SDP_FmtAudio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Video; - var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; - - var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio := { - // media attributes: - cr_SDP_Attribute_rtpmap(v_FmtAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(v_FmtAudio), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - * - }; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Video := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), - cr_SDP_Attribute_fmtp(-, cr_Fmtp_ParamList(cr_Fmtp_VideoParamsDef)), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - - v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrAudio), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video, - cr_SDP_Connection(v_AddrType, v_IPAddrVideo), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, -, cr_SDP_Time_Any, v_SDP_Media_Desc_List); - } - - function f_IMS_BuildSDP_SpeechVideoTx_MO(SDP_media_desc p_SDP_Media_AudioRx, - SDP_media_desc p_SDP_Media_VideoRx, - charstring p_IPAddrOrigin, - boolean p_TcapPcfg) runs on IMS_PTC return template (value) SDP_Message - { /* Build SDP record to be sent to the UE at step 4 according to 34.229-1 17.1 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var template (value) SDP_media_desc v_SDP_Media_Desc_AudioTx; - var template (value) SDP_media_desc v_SDP_Media_Desc_VideoTx; - var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; - var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio := p_SDP_Media_AudioRx.bandwidth; - var template (value) SDP_bandwidth_list v_Bandwidth_List_Video := p_SDP_Media_VideoRx.bandwidth; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_AudioRx); - var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(p_SDP_Media_VideoRx); - - var template (value) SDP_attribute_list v_SDP_Attribute_List_Audio := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote) - }; - var template (value) SDP_attribute_list v_SDP_Attribute_List_Video := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtVideo, cs_RTPMAP_Codec("", "")), // !!!! codec need to be specified in the prose !!!! - cs_SDP_Attribute_fmtp(v_FmtVideo, cs_Fmtp_ParamList({cs_GenericParam("", "")})), // !!!! parameters need to be specified in the prose !!!! - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos(c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_conf_qos - }; - v_SDP_Media_Desc_AudioTx := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - v_Bandwidth_List_Audio, - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_VideoTx := cs_SDP_Media_Desc(cs_SDP_Media_Video(v_FmtVideo), - v_Bandwidth_List_Video, - v_SDP_Attribute_List_Video); - - v_SDP_Media_Desc_VideoTx.attributes := f_SDP_Attributes_Add_TX(v_SDP_Media_Desc_VideoTx.attributes, cs_SDP_Attribute_acfg(1, "t=1"), p_TcapPcfg); - - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_AudioTx, v_SDP_Media_Desc_VideoTx }; - - return cs_SDP_Message_Common(cs_SDP_Origin(-, -, v_AddrType, p_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, cs_SDP_Bandwidth_List_AS(30), -, v_SDP_Media_Desc_List); - } - - function f_IMS_BuildSDP_SpeechVideoTx_MT(charstring p_FmtAudio, - charstring p_PayloadAudio, - charstring p_StepNo := "Step 1") - runs on IMS_PTC return template (value) SDP_Message - { /* Build SDP record to be sent to the UE at step 1 according to 34.229-1 17.2 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var template (value) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (value) SDP_media_desc v_SDP_Media_Desc_Video; - var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; - var template (omit) SDP_attribute_list v_SDP_Attribute_List_Audio; - var template (omit) SDP_attribute_list v_SDP_Attribute_List_Video; - var charstring v_SessionVersion := tsc_SDP_SessionVersion1; - var template (value) SDP_attribute v_FMTP := cs_SDP_Attribute_fmtp(p_FmtAudio, cs_AMR_Fmtp_DefaultParameters); - var charstring v_VideoMedia := tsc_SDP_FmtVideo; - - if (p_StepNo == "Step 1") { - v_FMTP := cs_SDP_Attribute_fmtp(p_FmtAudio, cs_Fmtp_ParamList({cs_GenericParam("", "")})); // !!!! parameters need to be specified in the prose !!!! - } - - v_SDP_Attribute_List_Audio := { - // media attributes: - cs_SDP_Attribute_rtpmap(p_PayloadAudio, cs_RTPMAP_AMR_8000), - v_FMTP, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_optional, c_remote) - }; - if (p_StepNo == "Step 10") { - v_SDP_Attribute_List_Video := { - // media attributes: - cs_SDP_Attribute_rtpmap(tsc_SDP_FmtVideo, cs_RTPMAP_H264_90000), - cs_SDP_Attribute_fmtp(tsc_SDP_FmtVideo, cs_Fmtp_ParamList({cs_GenericParam("", "")})) // !!!! parameters need to be specified in the prose !!!! - }; - v_VideoMedia := "0"; - } else { - v_SDP_Attribute_List_Video := { - // media attributes: - cs_SDP_Attribute_rtpmap(tsc_SDP_FmtVideo, cs_RTPMAP_H264_90000), - cs_SDP_Attribute_fmtp(tsc_SDP_FmtVideo, cs_Fmtp_ParamList(cs_Fmtp_VideoParamsWithPacketizationMode)), - cs_SDP_Attribute_rtcp_fb("*", "trr-int 5000"), - cs_SDP_Attribute_rtcp_fb("*", "nack"), - cs_SDP_Attribute_rtcp_fb("*", "nack pli"), - cs_SDP_Attribute_rtcp_fb("*", "ccm fir"), - cs_SDP_Attribute_rtcp_fb("*", "ccm tmmbr"), - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos (c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_optional, c_remote) - }; - } - v_SDP_Attribute_List_Audio := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List_Audio, cs_SDP_Attribute_sendrecv); - v_SDP_Attribute_List_Video := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List_Video, cs_SDP_Attribute_sendrecv); - - v_SDP_Media_Desc_Audio := cs_SDP_Media_Desc(cs_SDP_Media_Audio(p_FmtAudio), - cs_SDP_Bandwidth_List_Media(30, 0, 2000), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cs_SDP_Media_Desc(cs_SDP_Media_Video(v_VideoMedia), - cs_SDP_Bandwidth_List_Media(315, 0, 2500), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - - return cs_SDP_Message_Common(cs_SDP_Origin(-, v_SessionVersion, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrOrigin), -, cs_SDP_Bandwidth_List_AS(30), -, v_SDP_Media_Desc_List); - } - - function f_IMS_BuildSDP_SpeechVideoRx_MT(charstring p_FmtAudio, - charstring p_PayloadAudio) runs on IMS_PTC return template (present) SDP_Message - { /* to receive SDP answer sent by the UE in 17.2 step 3 and 6*/ - /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrAudio := ?; - var template (present) charstring v_IPAddrVideo := ?; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Video; - var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Video; - var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; - - v_SDP_Attribute_List_Audio := { - cr_SDP_Attribute_rtpmap(p_PayloadAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(p_FmtAudio), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - * - }; - v_SDP_Attribute_List_Video := { - cr_SDP_Attribute_rtpmap(tsc_SDP_FmtVideo, cr_RTPMAP_H264_90000), - cr_SDP_Attribute_fmtp(tsc_SDP_FmtVideo, cr_Fmtp_ParamList(cr_Fmtp_VideoParamsWithPacketizationMode)), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, (c_none, c_sendrecv)), - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cr_SDP_Attribute_conf_qos, - * - }; - v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio(p_FmtAudio), - cr_SDP_Connection(v_AddrType, v_IPAddrAudio), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video(tsc_SDP_FmtVideo), - cr_SDP_Connection(v_AddrType, v_IPAddrVideo), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Video); - - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, -, cr_SDP_Time_Any, v_SDP_Media_Desc_List); - } - - /****************************************************************************/ - /* - * @desc REFERENCE TS 34.229-1 clause 17.1 - */ - function f_TC_17_1_IMS() runs on IMS_PTC - { - var IMS_DATA_REQ v_IMS_INVITE_REQ; - var INVITE_Request v_ReInviteRequest; - var template (value) MessageHeader v_MessageHeader_Response183; - var template (value) MessageHeader v_MessageHeader_Response; - var template (present) MessageHeader v_MessageHeader_Request; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; - var template (present) MessageHeader v_MessageHeader_Prack; - var template (present) MessageHeader v_MessageHeader_Update; - var boolean v_TcapPcfg := false; - var boolean v_MediaConfigured := false; - var template (omit) ContentType v_ContentType := omit; - var SipUrl v_ContactUrl; - var IMS_DATA_REQ v_IMS_DATA_REQ; - var PRACK_Request v_PrackRequest; - var UPDATE_Request v_UpdateRequest; - var template (present) SipUrl v_NewContactUriRX := f_SIP_BuildSipUri_RX(px_IMS_CalleeUri); - var SDP_Message v_SDP_Message; - var SDP_Message v_SDP_LatestOffer; - var template (present) SDP_Message v_SDP_MessageTemplateRx := f_IMS_BuildSDP_SpeechVideoRx_MO(); - var template (value) SDP_Message v_SDP_MessageTemplateTx; - - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); - - // setup MO speech call - f_IMS_CC_MO_SpeechCall(); - - f_IMS_TestBody_Set(true); - - // @siclog "Step 1" siclog@ - f_UT_RequestIMSVideoCall(MMI, px_IMS_CalleeUri); - - // !!!! FFS - What dedicated bearer do we need to (re)configure??? !!!! - // @siclog "Step 2" siclog@ - // Receive INVITE Request - v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(A_2_1_A5, tsc_OptionTagList_precondition, px_IMS_CalleeUri); // from ConfCallFunctions - v_ReInviteRequest := v_IMS_INVITE_REQ.Request.Invite; - v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_ReInviteRequest.messageBody, v_SDP_MessageTemplateRx); - - // check media description: audio and video - f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); - f_IMS_SDP_CheckMediaDescr_H264_90000(v_SDP_Message.media_list[1]); - v_TcapPcfg := fl_CheckRTPAVP_TcapPcfg(v_SDP_Message.media_list[1]); - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_INVITE_REQ.RoutingInfo); - - // Step 3. SS sends a 100 Trying provisional response. - // @siclog "Step 3" siclog@ - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_ReInviteRequest)))); - - // Step 4. Send 183 Session In Progress. - // @siclog "Step 4" siclog@ - v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_ReInviteRequest); - v_MessageHeader_Response183.supported := cs_Supported(tsc_OptionTagList_precondition); - v_SDP_MessageTemplateTx := f_IMS_BuildSDP_SpeechVideoTx_MO(v_SDP_Message.media_list[0], v_SDP_Message.media_list[1], v_SDP_Message.origin.addr, v_TcapPcfg); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_MessageTemplateTx)))); - - // update local precondition to sendrecv - v_SDP_MessageTemplateRx.media_list[1].attributes := f_SDP_ExchangeAttribute(v_SDP_Message.media_list[1].attributes, - cr_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv)); - v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_MessageHeader_Response183); - - // Step 5. Receive PRACK - // @siclog "Step 5" siclog@ - v_MessageHeader_Prack := f_IMS_PrackRequest_MessageHeaderRX(v_ReInviteRequest, v_MessageHeader_Response183); - IMS_Server.receive(car_IMS_Prack_Request(cr_PRACK_Request(v_ContactUrl, v_MessageHeader_Prack, cr_MessageBody_SDP ifpresent))) -> value v_IMS_DATA_REQ; - v_PrackRequest := v_IMS_DATA_REQ.Request.Prack; - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - - // fl_IMS_Params_CheckSigComp(v_PrackRequest.msgHeader.route.routeBody[0].rrParam); // acc. to 34.229-1 cl. 13.2.4 step 4 (PRACK) "comp=sigcomp" is optional for Via and Route - - // Step 6. Send 200 OK - // @siclog "Step 6" siclog@ - if (ispresent(v_PrackRequest.messageBody)) { - v_SDP_LatestOffer := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_PrackRequest.messageBody, v_SDP_MessageTemplateRx); - - // check session version increased - f_IMS_SDP_CheckSessionVersion(v_SDP_LatestOffer, v_SDP_Message); - - v_ContentType := cs_ContentTypeSDP; - v_SDP_MessageTemplateTx := f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestOffer); - v_MediaConfigured := true; - } - - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_PrackRequest.msgHeader, v_ContentType), cs_MessageBody_SDP(v_SDP_MessageTemplateTx)))); - - // Step 7 Optional. Receive Update - // @siclog "Step 7" siclog@ - // Note: UE will send Update if Media is not yet configured - if (not v_MediaConfigured) { - v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(v_ReInviteRequest); - - IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_ContactUrl, v_MessageHeader_Update, cr_MessageBody_SDP))) -> value v_IMS_DATA_REQ; - v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - v_SDP_LatestOffer := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_UpdateRequest.messageBody, v_SDP_MessageTemplateRx); - - //fl_IMS_Params_CheckSigComp(v_UpdateRequest.msgHeader.route.routeBody[0].rrParam); // acc. to 34.229-1 cl. 13.2.4 step 6 (UPDATE) "comp=sigcomp" is optional for Via and Route - - // check session version increased - f_IMS_SDP_CheckSessionVersion(v_SDP_LatestOffer, v_SDP_Message); - - v_ContentType := cs_ContentTypeSDP; - v_SDP_MessageTemplateTx := f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestOffer); - v_MediaConfigured := true; - // Step 8 Optional. Send 200 OK - // @siclog "Step 8" siclog@ - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_UpdateRequest.msgHeader, v_ContentType), cs_MessageBody_SDP(v_SDP_MessageTemplateTx)))); - } - - // @siclog "Step 9" siclog@ - v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderTX(v_ReInviteRequest.msgHeader, -, -, px_IMS_CalleeUri); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_Response))); - - // Step 10. Finally, UE acknowledges call setup. - // @siclog "Step 10" siclog@ - v_MessageHeader_Request := f_IMS_AckRequest_MessageHeaderRX(v_ReInviteRequest, c_statusLine200); - IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_NewContactUriRX, v_MessageHeader_Request))); - - // Step 11 - // @siclog "Step 11" siclog@ - f_UT_IMS_RemoveVideoCall(MMI); - v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(A_2_1_A5, tsc_OptionTagList_precondition, px_IMS_CalleeUri); - v_ReInviteRequest := v_IMS_INVITE_REQ.Request.Invite; - v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_ReInviteRequest.messageBody, v_SDP_MessageTemplateRx); - // check removal of video stream - if (v_SDP_Message.media_list[1].media_field.ports.port_number != 0){ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "video 0 not found in given media description"); - } - - // @siclog "Step 12" siclog@ - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_ReInviteRequest)))); - - // @siclog "Step 13" siclog@ - v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderTX(v_ReInviteRequest.msgHeader, -, -, px_IMS_CalleeUri); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_Response))); - - // Step 14. Finally, UE acknowledges call setup. - // @siclog "Step 14" siclog@ - v_MessageHeader_Request := f_IMS_AckRequest_MessageHeaderRX(v_ReInviteRequest, c_statusLine200); - IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_NewContactUriRX, v_MessageHeader_Request))); - - // @siclog "Step 15 - 16" siclog@ - f_IMS_CallReleaseMO(v_ReInviteRequest); - - f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); - } - - /****************************************************************************/ - /* - * @desc REFERENCE TS 34.229-1 clause 17.2 - */ - function f_TC_17_2_IMS() runs on IMS_PTC - { - var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ - var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_InviteRequestWithSdp_Type v_ReInviteRequestWithSdp; - var IMS_Response_Type v_SessionInProgress183; - var SipUrl v_ContactUrl; - var template (value) SDP_Message v_Tx_SDP; - var template (present) SDP_Message v_Rx_SDP; - var template (value) MessageHeader v_MessageHeader_Invite; - var template (value) MessageHeader v_MessageHeader_Update; - var template (value) INVITE_Request v_ReInviteRequest; - var integer v_CSeq; - var integer i; - var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); - var IMS_DATA_RSP v_IMS_DATA_RSP; - - // preamble MT speech call setup - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); - f_IMS_CC_StartCall(IPCAN_MT_SpeechCall); - // Steps 1 to 4 as defined in Annex C.11 - v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); - v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; - v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); - // Establish Dedicated EPS bearer - // See TS. 36.508 EUTRA/EPS signalling for IMS MT speech call Table 4.5A.7.3-1 Step 9-12 - f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MT_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer - // Steps 5 to 13 as defined in Annex C.11 - v_CSeq := valueof(v_InviteRequestWithSdp.Invite.msgHeader.cSeq.seqNumber); // Initial value - f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdp, v_SessionInProgress183); - // MT Call is now established - f_IMS_TestBody_Set(true); - - - // @siclog "Step 1" siclog@ - // Step 1 SS sends re-INVITE with second SDP offer to add video. - // Step 2 void // @sic R5-134646 sic@ - // Step 3 The UE responds to re-INVITE by sending 183 response reliably with the SDP answer - v_Tx_SDP := f_IMS_BuildSDP_SpeechVideoTx_MT(tsc_SDP_FmtAudio, tsc_SDP_FmtAudio); - v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(tsc_OptionTagList_precondition); - v_MessageHeader_Invite.cSeq.seqNumber := v_CSeq; - v_ReInviteRequest := cs_INVITE_Request(v_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_Tx_SDP)); - v_ReInviteRequestWithSdp := f_IMS_InviteRequestWithSdpMT(v_ReInviteRequest, v_Tx_SDP); - - IMS_Client.send(cas_IMS_Invite_Request(cs_IMS_RoutingInfo(v_Protocol), v_ReInviteRequest)); - - // @siclog "Step 2 Void" siclog@ - // @siclog "Step 3" siclog@ - v_Rx_SDP := f_IMS_BuildSDP_SpeechVideoRx_MT(tsc_SDP_FmtAudio, tsc_SDP_FmtAudio); - v_ResponseWithSdp := f_IMS_MTCallSetup_Common_Steps3_4(v_ReInviteRequest, v_Rx_SDP, v_Protocol); - v_SessionInProgress183 := v_ResponseWithSdp.Response; - - // @siclog "Step 4 - 5" siclog@ - // Step 4 (Optional) SS acknowledges the receipt of 183 response from the UE - // Step 5 (Optional) The UE acknowledges the PRACK with 200 OK. - f_IMS_MTCallSetup_SendPRACK_ReceiveOK(v_ReInviteRequest, v_SessionInProgress183.msgHeader); - - // @siclog "Step 6" siclog@ - // Step 6 SS sends an UPDATE with SDP offer indicating SS reserved resources. - v_Tx_SDP := f_IMS_BuildSDP_SpeechVideoTx_MT(tsc_SDP_FmtAudio, tsc_SDP_FmtAudio, "Step 6"); - v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderTX (v_ReInviteRequest); - IMS_Client.send(cas_IMS_Update_Request(cs_IMS_RoutingInfo(v_Protocol), cs_UPDATE_Request(v_ContactUrl, v_MessageHeader_Update, cs_MessageBody_SDP(v_Tx_SDP)))); - - // @siclog "Step 7" siclog@ - // Step 7 The UE acknowledges the UPDATE with 200 OK and includes SDP answer to acknowledge its current precondition status. - for (i := 0; i there seems to be no reason why to embed an IPv4 address into an IPv6 address anymore - * - since (e.g.) rel-5 24.008 Table 10.5.154 has been enhanced and there are options for both IPv4 and IPv6 addresses - * => some statements in 23.981 clause 5.2.1 seem to be not valid anymore => the same is in 34.229-1 cl. 7.1.2 - * => we need to have separate sets of PIXIT parameters for IPv4 and IPv6 and serve the UE for IPv4 and IPv6 - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ - - var O2_Type v_ContainerId; - var integer v_ContentLen := 0; - var template (omit) octetstring v_Content := omit; - - select (p_ContainerId) { // container identifier acc. to 24.008 Table 10.5.154 - case ('0001'O) { // P-CSCF IPv6 address - v_ContainerId := '0001'O; - v_Content := f_GetIPv6AddrFromPIXIT(px_P_CSCF_IPAddr); - if (not isvalue(v_Content)) { - return omit; - } - } - case ('0002'O) { // IM CN Subsystem Signalling Flag, reply with an empty container - v_ContainerId := '0002'O; - } - case ('0003'O) { // DNS Server IPv6 Address - v_ContainerId := '0003'O; - v_Content := f_GetIPv6AddrFromPIXIT(px_DNSServer_IPAddr); - if (not isvalue(v_Content)) { - return omit; - } - } - case ('000C'O) { // P-CSCF IPv4 address - v_ContainerId := '000C'O; - v_Content := fl_GetIPv4AddrFromPIXIT(px_P_CSCF_IPAddr); - if (not isvalue(v_Content)) { - return omit; - } - } - case ('000D'O) { // DNS Server IPv4 Address - v_ContainerId := '000D'O; - v_Content := fl_GetIPv4AddrFromPIXIT(px_DNSServer_IPAddr); - if (not isvalue(v_Content)) { - return omit; - } - } - case else { - // Other containerIDs not supported - return omit; - } - } - if (isvalue(v_Content)) { - v_ContentLen := lengthof(v_Content); - } - return cs_ConfigOpt(v_ContainerId, v_ContentLen, v_Content); - } - - //---------------------------------------------------------------------------- - /* - * @desc Evaluate PCOs sent by the UE - * @param p_ConfigOptionsRX - * @return NAS_ProtocolConfigOptions_Type - * @status APPROVED (IMS) - */ - function f_ProtocolConfigOption_GetResponse(NAS_ProtocolConfigOptions_Type p_ConfigOptionsRX) return NAS_ProtocolConfigOptions_Type - { - var NAS_ProtocolConfigOptions_Type v_ConfigOptListTX := {}; - var template (omit) ProtocolContainer v_ConfigOpt; - var integer i; - var integer k := 0; - - for (i := 0; i < lengthof(p_ConfigOptionsRX); i := i + 1) { - v_ConfigOpt := fl_ProtocolConfigOption_Get(p_ConfigOptionsRX[i].protocolID); - if (isvalue(v_ConfigOpt)) { - v_ConfigOptListTX[k] := valueof(v_ConfigOpt); - k := k + 1; - } - } - return v_ConfigOptListTX; - } - - //---------------------------------------------------------------------------- - - function f_ProtocolConfigOption_Remove(NAS_ProtocolConfigOptions_Type p_ConfigOptList, - O2_Type p_ContainerId) return NAS_ProtocolConfigOptions_Type - { - var NAS_ProtocolConfigOptions_Type v_ConfigOptList := {}; - var integer i; - var integer k := 0; - - for (i := 0; i < lengthof(p_ConfigOptList); i := i + 1) { - if (p_ConfigOptList[i].protocolID != p_ContainerId) { - v_ConfigOptList[k] := p_ConfigOptList[i]; - k := k + 1; - } - } - return v_ConfigOptList; - } - - - function f_ProtocolConfigOption_GetResponse_No_P_CSCF_Addr(NAS_ProtocolConfigOptions_Type p_ConfigOptionsRx) return NAS_ProtocolConfigOptions_Type - { - var NAS_ProtocolConfigOptions_Type v_ConfigOptList := f_ProtocolConfigOption_GetResponse(p_ConfigOptionsRx); - v_ConfigOptList := f_ProtocolConfigOption_Remove(v_ConfigOptList, tsc_ConfigOptions_P_CSCF_IPv6_Request); - v_ConfigOptList := f_ProtocolConfigOption_Remove(v_ConfigOptList, tsc_ConfigOptions_P_CSCF_IPv4_Request); // @sic CR R5s120530 change 1.11 TODO: Prose CR needed sic@ - return v_ConfigOptList; - } - -} diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_TemplatesAndFunctions.ttcn b/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_TemplatesAndFunctions.ttcn deleted file mode 100644 index a5e46fa..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_TemplatesAndFunctions.ttcn +++ /dev/null @@ -1,385 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-03 16:13:28 +0200 (Wed, 03 Sep 2014) $ -// $Rev: 12004 $ -/******************************************************************************/ - -module HTTP_TemplatesAndFunctions { - - import from CommonDefs all; - import from HTTP_ASP_TypeDefs all; - import from LibSip_SIPTypesAndValues all; // NOTE: the same header definitions are used for HTTP as for SIP (Authorization, ContentType, WwwAuthenticate, AuthenticationInfo, Expires) - import from NAS_AuthenticationCommon all; - import from IMS_CommonFunctions all; - import from IMS_SIP_Templates all; // NOTE: the same header definitions are used for HTTP as for SIP (cr_AuthorizationDef, cs_WwwAuthChallenge) - import from IP_ASP_TypeDefs all; - import from IP_ASP_Common all; - - const charstring tsc_HTTP_Version_1_1 := "HTTP/1.1"; /* @status APPROVED (IMS) */ - const charstring tsc_Simservs_ContentType_Document := "application/vnd.etsi.simservs+xml"; /* @status APPROVED (IMS) */ - const charstring tsc_Simservs_ContentType_Element := "application/xcap-el+xml"; /* @status APPROVED (IMS) */ - const charstring tsc_Simservs_ContentType_Attribute := "application/xcap-att+xml"; /* @status APPROVED (IMS) */ - - type union HTTP_AuthenticationResult_Type { /* @status APPROVED (IMS) */ - charstring Error, - HTTP_DATA_IND InitialRequest, - Null_Type NoError - }; - - //---------------------------------------------------------------------------- - - template (value) TLSInfo_Type cs_TLSInfo_PSK(template (omit) octetstring p_Psk := omit, - template (omit) TLS_CIPHER_Type p_CipherSuite := psk_3DES_EDE_CBC_SHA) := - { /* @status APPROVED (IMS) */ - tlsType := pskTLS, - psk := p_Psk, - cipherSuite := p_CipherSuite - }; - - template (value) HTTP_CTRL_REQ cs_HttpCtlReq(template (omit) HttpAuthenticationMechanism_Type p_HttpAuthenticationMechanism, - template (omit) TLSInfo_Type p_TLSInfo, - template (omit) HttpRoutingInfo_Type p_XcapServer, - template (omit) HttpRoutingInfo_Type p_BsfServer, - template (omit) IP_DrbInfo_Type p_DrbInfo) := - { /* @status APPROVED (IMS) */ - authenticationMechanism := p_HttpAuthenticationMechanism, - tlsInfo := p_TLSInfo, - xcapServer := p_XcapServer, - bsfServer := p_BsfServer, - drbInfo := p_DrbInfo - }; - - template (present) HTTP_CTRL_CNF cr_HttpCtlCnf := { errorInfo := omit }; /* @status APPROVED (IMS) */ - - //---------------------------------------------------------------------------- - - template (present) HttpRequestLine_Type cr_HttpRequestLine(template (present) charstring p_Uri := ?) := - { /* @status APPROVED (IMS) */ - method := ("GET", "PUT", "DELETE"), - uri := p_Uri, // XCAP selection expression, RFC 4825 - version := tsc_HTTP_Version_1_1 - }; - - //---------------------------------------------------------------------------- - - template (present) HttpRequest_Type cr_HttpRequest(template (present) HttpRequestLine_Type p_HttpRequestLine := cr_HttpRequestLine, - template Authorization p_Authorization := *) := - { /* @status APPROVED (IMS) */ - requestLine := p_HttpRequestLine, - authorization := p_Authorization, - contentType := *, - x3GPPIntendedIdentity := *, - messageBody := * - }; - - template (present) HTTP_DATA_IND cr_HttpDataInd(template (present) HttpRoutingInfo_Type p_HttpRoutingInfo, - template (present) HttpRequest_Type p_HttpRequest) := - { /* @status APPROVED (IMS) */ - routingInfo := p_HttpRoutingInfo, - httpRequest := p_HttpRequest - }; - - //---------------------------------------------------------------------------- - - template (value) HttpStatusLine_Type cs_HttpStatusLine(integer p_Code, - charstring p_ReasonPhrase) := - { /* @status APPROVED (IMS) */ - version := tsc_HTTP_Version_1_1, - code := p_Code, - reasonPhrase := p_ReasonPhrase - }; - - template (value) HttpStatusLine_Type cs_HttpStatusLine_200 := cs_HttpStatusLine(200, "OK"); /* @status APPROVED (IMS) */ - template (value) HttpStatusLine_Type cs_HttpStatusLine_401 := cs_HttpStatusLine(401, "Unauthorized"); /* @status APPROVED (IMS) */ - template (value) HttpStatusLine_Type cs_HttpStatusLine_404 := cs_HttpStatusLine(404, "File Not Found"); /* @status APPROVED (IMS) */ - - template (value) HttpResponse_Type cs_HttpResponse(template (value) HttpStatusLine_Type p_HttpStatusLine, - template (omit) WwwAuthenticate p_WwwAuthenticate := omit, - template (omit) AuthenticationInfo p_AuthenticationInfo := omit, - template (omit) Expires p_Expires := omit, - template (omit) ContentType p_ContentType := omit, - template (omit) charstring p_MessageBody := omit) := - { /* @status APPROVED (IMS) */ - statusLine := p_HttpStatusLine, - wwwauthenticate := p_WwwAuthenticate, - authenticationInfo := p_AuthenticationInfo, - contentType := p_ContentType, - expires := p_Expires, - messageBody := p_MessageBody - }; - - template (value) HttpResponse_Type cs_HttpResponse_200(template (omit) ContentType p_ContentType := omit, /* @status APPROVED (IMS) */ - template (omit) charstring p_MessageBody := omit) := cs_HttpResponse(cs_HttpStatusLine_200, -, -, -, p_ContentType, p_MessageBody); - template (value) HttpResponse_Type cs_HttpResponse_401(template (omit) WwwAuthenticate p_Authorization) := cs_HttpResponse(cs_HttpStatusLine_401, p_Authorization); /* @status APPROVED (IMS) */ - template (value) HttpResponse_Type cs_HttpResponse_404 := cs_HttpResponse(cs_HttpStatusLine_404); /* @status APPROVED (IMS) */ - - /* - * @desc build HTTP 200 response - * @param p_MediaType (default value: omit) - * @param p_MessageBody (default value: omit) - * @return template (value) HttpResponse_Type - * @status APPROVED (IMS) - */ - function f_HttpResponse_200(template (omit) charstring p_MediaType := omit, - template (omit) charstring p_MessageBody := omit) return template (value) HttpResponse_Type - { - var template (omit) ContentType v_ContentType := omit; - - if (ispresent(p_MediaType)) { - v_ContentType := cs_ContentType(valueof(p_MediaType)); - } - return cs_HttpResponse_200(v_ContentType, p_MessageBody); - } - - template (value) HTTP_DATA_REQ cs_HttpDataReq(template (value) HttpRoutingInfo_Type p_HttpRoutingInfo, - template (value) HttpResponse_Type p_HttpResponse) := - { /* @status APPROVED (IMS) */ - routingInfo := p_HttpRoutingInfo, - httpResponse := p_HttpResponse - }; - - //============================================================================ - /* - * @desc Configure the http server - * @param p_HttpCtrl - * @param p_AuthMech (default value: omit) - * @param p_XcapServerAddrAndPort (default value: omit) - * @param p_BsfServerAddrAndPort (default value: omit) - * @param p_DrbRoutingInfo (default value: omit) - * @param p_TLSInfo (default value: omit) - * @status APPROVED (IMS) - */ - function f_HTTP_Configure(HTTP_CTRL_PORT p_HttpCtrl, - template (omit) HttpAuthenticationMechanism_Type p_AuthMech := omit, - template (omit) IP_Socket_Type p_XcapServerAddrAndPort := omit, - template (omit) IP_Socket_Type p_BsfServerAddrAndPort := omit, - template (omit) IP_DrbInfo_Type p_DrbRoutingInfo := omit, - template (omit) TLSInfo_Type p_TLSInfo := omit) - { - var IP_Socket_Type v_XcapServerAddrAndPort; - var IP_Socket_Type v_BsfServerAddrAndPort; - var template (omit) HttpRoutingInfo_Type v_XcapServer := omit; - var template (omit) HttpRoutingInfo_Type v_BsfServer := omit; - - if (isvalue(p_XcapServerAddrAndPort)) { - v_XcapServerAddrAndPort := valueof(p_XcapServerAddrAndPort); - v_XcapServer := cs_HttpRoutingInfo(f_IP_AddrInfo_AddrStr(v_XcapServerAddrAndPort.IpAddr), v_XcapServerAddrAndPort.Port); - } - if (isvalue(p_BsfServerAddrAndPort)) { - v_BsfServerAddrAndPort := valueof(p_BsfServerAddrAndPort); - v_BsfServer := cs_HttpRoutingInfo(f_IP_AddrInfo_AddrStr(v_BsfServerAddrAndPort.IpAddr), v_BsfServerAddrAndPort.Port); - } - - p_HttpCtrl.send(cs_HttpCtlReq(p_AuthMech, p_TLSInfo, v_XcapServer, v_BsfServer, p_DrbRoutingInfo)); - p_HttpCtrl.receive(cr_HttpCtlCnf) - } - - //============================================================================ - /* - * @desc Receive Http Request from UE - * @param p_Port - * @param p_Watchdog - * @param p_InactivityDuration (default value: 9999.0) - * @param p_HttpRequest (default value: cr_HttpRequest) - * @return template (omit) HTTP_DATA_IND - * @status APPROVED (IMS) - */ - function f_HTTP_ReceiveRequest(HTTP_DATA_PORT p_Port, - timer p_Watchdog, - float p_InactivityDuration := 9999.0, - template (present) HttpRequest_Type p_HttpRequest := cr_HttpRequest) return template (omit) HTTP_DATA_IND - { - var HTTP_DATA_IND v_DataInd; - var template (omit) HTTP_DATA_IND v_HTTP_DATA_IND := omit; - timer t_InactivityTimer; - - t_InactivityTimer.start(p_InactivityDuration); - - alt { - [] p_Port.receive(cr_HttpDataInd(cr_HttpRoutingInfo, p_HttpRequest)) -> value v_DataInd - { - v_HTTP_DATA_IND := v_DataInd; - } - [] p_Port.receive(cr_HttpDataInd(?, ?)) - { - repeat; // ignore any unexpected messages - } - [] t_InactivityTimer.timeout {} - [] p_Watchdog.timeout {} - } - t_InactivityTimer.stop; - return v_HTTP_DATA_IND; - } - - //---------------------------------------------------------------------------- - /* - * @desc Send Http Response to UE - * @param p_Port - * @param p_HttpRoutingInfo - * @param p_HttpResponse - * @status APPROVED (IMS) - */ - function f_HTTP_SendResponse(HTTP_DATA_PORT p_Port, - template (value) HttpRoutingInfo_Type p_HttpRoutingInfo, - template (value) HttpResponse_Type p_HttpResponse) - { - p_Port.send(cs_HttpDataReq(p_HttpRoutingInfo, p_HttpResponse)); - } - - //============================================================================ - /* - * @desc Compute key material for GAA Authentication according to TS 33.220 clause 4.5.2, TS 34.222, TS 23.003 clause 16.2 - * @param p_AuthenticationParams - * @return Common_AuthenticationParams_Type - * @status APPROVED (IMS) - */ - function fl_GAA_AuthenticationInit(Common_AuthenticationParams_Type p_AuthenticationParams) return Common_AuthenticationParams_Type - { - var Common_AuthenticationParams_Type v_AuthenticationParams := p_AuthenticationParams; - /* TODO compute key material, - * see TS 33.220 clause 4.5.2, TS 34.222, TS 23.003 clause 16.2 - */ - return v_AuthenticationParams; - } - - /* - * @desc build up PSK for GAA - * @param p_AuthenticationParams - * @return octetstring - * @status APPROVED (IMS) - */ - function fl_ComputeGAAPsk(Common_AuthenticationParams_Type p_AuthenticationParams) return octetstring - { - var octetstring v_Psk; - v_Psk := bit2oct(p_AuthenticationParams.CK); // FFS - return v_Psk; - } - - //---------------------------------------------------------------------------- - /* - * @desc Common Authentication Procedure: return omit in case of any error or failure - * @param p_HttpData - * @param p_Watchdog - * @param p_AuthenticationParams - * @param p_HomeDomainName - * @param p_Username - * @return HTTP_AuthenticationResult_Type - * @status APPROVED (IMS) - */ - function fl_HTTP_CommonAuthenticationProcedure(HTTP_DATA_PORT p_HttpData, - timer p_Watchdog, - Common_AuthenticationParams_Type p_AuthenticationParams, - charstring p_HomeDomainName, - charstring p_Username) return HTTP_AuthenticationResult_Type - { - var HTTP_AuthenticationResult_Type v_AuthenticationResult; - var charstring v_Nonce; - var charstring v_RequestLineUri; - var template (omit) HTTP_DATA_IND v_HTTP_DATA_IND; - var HttpRoutingInfo_Type v_RoutingInfo; - var HttpRequest_Type v_HttpRequest; - - v_Nonce := f_Bitstring2Base64(p_AuthenticationParams.RandValue & p_AuthenticationParams.AUTN); - - // Get any initial request - v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(p_HttpData, p_Watchdog); - - - if (isvalue(v_HTTP_DATA_IND)) { - v_RoutingInfo := valueof(v_HTTP_DATA_IND.routingInfo); - v_HttpRequest := valueof(v_HTTP_DATA_IND.httpRequest); - v_RequestLineUri := v_HttpRequest.requestLine.uri; // gets checked in f_HTTP_XCAP_Main - - // Send 401 Unauthorized - f_HTTP_SendResponse(p_HttpData, v_RoutingInfo, cs_HttpResponse_401(cs_WwwAuthChallenge(p_HomeDomainName, v_Nonce, -, tsc_HTTP_MD5))); - - // UE repeats the request including Authorization header - v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(p_HttpData, - p_Watchdog, - -, - cr_HttpRequest(cr_HttpRequestLine(v_RequestLineUri), // same URI as in previous request - cr_AuthorizationCommon(p_Username, p_HomeDomainName, v_Nonce, v_RequestLineUri, tsc_HTTP_MD5))); - if (isvalue(v_HTTP_DATA_IND)) { - v_HttpRequest := valueof(v_HTTP_DATA_IND.httpRequest); - - // Check digest response - if (not ischosen(v_HttpRequest.authorization.body[0].digestResponse)) { - v_AuthenticationResult.Error := "No digestResponse sent in the authorization header"; - } - else if (not f_IMS_Authorization_CheckDigestResponse(v_HttpRequest.requestLine.method, v_HttpRequest.authorization.body[0].digestResponse, p_AuthenticationParams.XRES, p_AuthenticationParams.XRESLength)) { - v_AuthenticationResult.Error := "DigestResponse check failed"; - } - else { - v_AuthenticationResult.InitialRequest := valueof(v_HTTP_DATA_IND); - } - return v_AuthenticationResult; - } - } - v_AuthenticationResult.Error := "timeout during HTTP authentication"; - return v_AuthenticationResult; - } - - //---------------------------------------------------------------------------- - /* - * @desc HTTP authentication - * @param p_HttpCtrl - * @param p_HttpData - * @param p_Watchdog - * @param p_HttpAuthenticationMechanism - * @param p_AuthenticationParams - * @param p_HomeDomainName - * @param p_Username - * @return HTTP_AuthenticationResult_Type - * @status APPROVED (IMS) - */ - function f_HTTP_Authentication(HTTP_CTRL_PORT p_HttpCtrl, - HTTP_DATA_PORT p_HttpData, - timer p_Watchdog, - HttpAuthenticationMechanism_Type p_HttpAuthenticationMechanism, - Common_AuthenticationParams_Type p_AuthenticationParams, - charstring p_HomeDomainName, - charstring p_Username) return HTTP_AuthenticationResult_Type - { - var HTTP_AuthenticationResult_Type v_AuthenticationResult; - var Common_AuthenticationParams_Type v_AuthenticationParams; - var octetstring v_Psk; - - v_AuthenticationResult.NoError := true; - - select (p_HttpAuthenticationMechanism) { - case (noAuthentication) { - // nothing to be done - } - case (httpDigestAuthentication) { - v_AuthenticationParams := p_AuthenticationParams; // !!!! any modification needed ?? !!!! - v_AuthenticationResult := fl_HTTP_CommonAuthenticationProcedure(p_HttpData, p_Watchdog, v_AuthenticationParams, p_HomeDomainName, p_Username); - } - case (gaaAuthentication) { - /* NOTE: - original implementation was using port HttpBsfServer to receive and send the HTTP primitives regarding Authorization - but as the port is of the same type as HttpXcapServer and there seems to be no parallel behaviour, - there is no need to have different ports */ - v_AuthenticationParams := fl_GAA_AuthenticationInit(p_AuthenticationParams); - v_AuthenticationResult := fl_HTTP_CommonAuthenticationProcedure(p_HttpData, p_Watchdog, v_AuthenticationParams, p_HomeDomainName, p_Username); - - if (not ischosen(v_AuthenticationResult.Error)) { - // Send 200 OK to BSF server - f_HTTP_SendResponse(p_HttpData, v_AuthenticationResult.InitialRequest.routingInfo, cs_HttpResponse_200); - - // Configure XCAP server with new key material - v_Psk := fl_ComputeGAAPsk(v_AuthenticationParams); - f_HTTP_Configure(p_HttpCtrl, gaaAuthentication, -, -, -, cs_TLSInfo_PSK(v_Psk)); - } - } - case else { - FatalError(__FILE__, __LINE__, "invalid HttpAuthenticationMechanism_Type"); - } - } - return v_AuthenticationResult; - } -} diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn b/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn deleted file mode 100644 index d4d744e..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn +++ /dev/null @@ -1,270 +0,0 @@ -module http_uri_etsi_org_ngn_params_xml_simservs_xcap { - - import from XSD all; - import from urn_ietf_params_xml_ns_common_policy all; /* import common policy definitions */ - import from urn_oma_xml_xdm_common_policy all; /* import OMA common policy extensions */ - - - - - -/* import 24.623 supplementary service schema */ - - -/* communication diversion specific extensions to IETF common policy conditions. The cp:conditionsType is expanded with the elements: ss:not-registered, ss:busy, ss:no-answer, ss:not-reachable, ss:media as optional elements */ - - -/* communication diversion rule set based on the common policy rule set. */ - - -/* This is the communication diversion configuration document. */ -/* add service specific elements here */ -/* service specific attributes can be defined here */ -type record Communication_diversion -{ - XSD.Boolean active optional, - record length (1..infinity) of XSD.String attr optional, - NoReplyTimer noReplyTimer optional, - Ruleset ruleset optional -}; - - -/* communication diversion specific extensions to IETF common policy actions */ - - -type Forward_to_type Forward_to; - - -type enumerated Reveal_URI_options_type -{ - false_, - not_reveal_GRUU, - true_ -}; - - -/* communication diversion specific type declarations */ - - -type record Forward_to_type -{ - XSD.AnyURI target, - XSD.Boolean notify_caller optional, - Reveal_URI_options_type reveal_identity_to_caller optional, - Reveal_URI_options_type reveal_served_user_identity_to_caller optional, - XSD.Boolean notify_served_user optional, - XSD.Boolean notify_served_user_on_outbound_call optional, - Reveal_URI_options_type reveal_identity_to_target optional -}; - - -type XSD.PositiveInteger NoReplyTimer (5 .. 180); - - -/* Originating Identity presentation Restriction */ -type record Originating_identity_presentation_restriction -{ - XSD.Boolean active optional, - record length (1..infinity) of XSD.String attr optional, - enumerated { - presentation_restricted, - presentation_not_restricted - } default_behaviour optional -}; - - -/* Originating Identity Presentation */ -type SimservType Originating_identity_presentation; - - -/* Terminating Identity presentation Restriction */ -type record Terminating_identity_presentation_restriction -{ - XSD.Boolean active optional, - record length (1..infinity) of XSD.String attr optional, - enumerated { - presentation_restricted, - presentation_not_restricted - } default_behaviour optional -}; - - -/* Terminating Identity Presentation */ -type SimservType Terminating_identity_presentation; - - -/* import common policy definitions */ - - -/* import OMA common policy extensions */ - - -/* import 24.623 supplementary service schema */ - - -/* incoming communication barring rule set based on the common policy rule set. */ - - -/* This is the incoming communication barring configuration document. */ -/* add service specific elements here */ -/* service specific attributes can be defined here */ -type record Incoming_communication_barring -{ - XSD.Boolean active optional, - record length (1..infinity) of XSD.String attr optional, - Ruleset ruleset optional -}; - - -/* outgoing communication barring rule set based on the common policy rule set. */ - - -/* This is the outgoing communication barring configuration document. */ -/* add service specific elements here */ -/* service specific attributes can be defined here */ -type record Outgoing_communication_barring -{ - XSD.Boolean active optional, - record length (1..infinity) of XSD.String attr optional, - Ruleset ruleset optional -}; - - -/* communication barring specific extensions to IETF common policy actions */ - - -type Allow_action_type Allow; - - -/* communication barring specific type declarations */ - - -type XSD.Boolean Allow_action_type; - - -/* The element "simservs" maps to the Common Parts of a supplementary services document */ - - -/* XML Schema for data manipulation of Supplementary Services */ -type record Simservs -{ - record length (1..infinity) of XSD.String attr optional, - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - //record of AbsService absService_list, - record of AbsService_group absService_list, - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - record { - record of XSD.String elem_list - } extensions optional -}; - - -type SimservType AbsService; - - -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -type union AbsService_group { - AbsService absService, - Communication_diversion communication_diversion, - Originating_identity_presentation_restriction originating_identity_presentation_restriction, - Originating_identity_presentation originating_identity_presentation, - Terminating_identity_presentation_restriction terminating_identity_presentation_restriction, - Terminating_identity_presentation terminating_identity_presentation, - Incoming_communication_barring incoming_communication_barring, - Outgoing_communication_barring outgoing_communication_barring -}; -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - -type record SimservType -{ - XSD.Boolean active optional, - record length (1..infinity) of XSD.String attr optional -}; - - -type record Provisioned_type -{ - record length (1..infinity) of XSD.String attr optional, - XSD.Boolean provisioned optional -}; - - -type record Supported_media_type -{ - union { - Empty_element_type all_media, - Empty_element_type no_media, - record length(1 .. infinity) of record { - Media_type media - } sequence_list, - XSD.String elem - } choice -}; - - -type record Provisioned_target_type -{ - union { - Empty_element_type any_target_type, - Empty_element_type telephony_type, - XSD.String elem - } choice -}; - - -/* service specific IETF common policy condition elements */ - - -type Empty_element_type Anonymous; - - -type Presence_status_activity_type Presence_status; - - -type Media_type Media; - - -type Empty_element_type Communication_diverted; - - -type Empty_element_type Rule_deactivated; - - -type Empty_element_type Not_registered; - - -type Empty_element_type Busy; - - -type Empty_element_type No_answer; - - -type Empty_element_type Not_reachable; - - -type Empty_element_type Roaming; - - -type Empty_element_type International; - - -type Empty_element_type International_exHC; - - -/* service specific type declarations */ - - -type XSD.String Media_type; - - -type XSD.String Presence_status_activity_type; - - -type record Empty_element_type -{ - -}; - - -} diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_ietf_params_xml_ns_common_policy.ttcn b/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_ietf_params_xml_ns_common_policy.ttcn deleted file mode 100644 index ee3011e..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_ietf_params_xml_ns_common_policy.ttcn +++ /dev/null @@ -1,118 +0,0 @@ -module urn_ietf_params_xml_ns_common_policy { - - -import from XSD all; - - -/* /ruleset */ - - -type record Ruleset -{ - record of RuleType rule_list -}; - - -/* /ruleset/rule */ - - -type record RuleType -{ - XSD.ID id, - ConditionsType conditions optional, - ExtensibleType actions optional, - ExtensibleType transformations optional -}; - - -/* //rule/conditions */ - - -type record ConditionsType -{ - record length(1 .. infinity) of union { - record length(0 .. 1) of IdentityType identity_list, - record length(1) of SphereType sphere_list, - record length(1) of ValidityType validity_list, - record length(1 .. infinity) of XSD.String elem_list - } choice_list -}; - - -/* //conditions/identity */ - - -type record IdentityType -{ - record length(1 .. infinity) of union { - OneType one, - ManyType many, - XSD.String elem - } choice_list -}; - - -/* //identity/one */ - - -type record OneType -{ - XSD.AnyURI id, - XSD.String elem optional -}; - - -/* //identity/many */ - - -type record ManyType -{ - XSD.String domain optional, - record of union { - ExceptType except_, - record length(0 .. 1) of XSD.String elem_list - } choice_list -}; - - -/* //many/except */ - - -type record ExceptType -{ - XSD.String domain optional, - XSD.AnyURI id optional -}; - - -/* //conditions/sphere */ - - -type record SphereType -{ - XSD.String value_ -}; - - -/* //conditions/validity */ - - -type record ValidityType -{ - record length(1 .. infinity) of record { - XSD.DateTime from_, - XSD.DateTime until - } sequence_list -}; - - -/* //rule/actions or //rule/transformations */ - - -type record ExtensibleType -{ - record of XSD.String elem_list -}; - - -} diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_oma_xml_xdm_common_policy.ttcn b/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_oma_xml_xdm_common_policy.ttcn deleted file mode 100644 index fb40c5c..0000000 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/urn_oma_xml_xdm_common_policy.ttcn +++ /dev/null @@ -1,35 +0,0 @@ -module urn_oma_xml_xdm_common_policy { - - -import from XSD all; - - -/* OMA specific "conditions" child elements */ - - -type EmptyType Other_identity; - - -type record External_list -{ - record of AnchorType entry_list -}; - - -type EmptyType Anonymous_request; - - -type record AnchorType -{ - XSD.AnyURI anc optional, - record length ( 1 .. infinity ) of XSD.String attr optional -}; - - -type record EmptyType -{ - -}; - - -} diff --git a/IMS_PART4_IWD_14wk37/Common/Common/CommonDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/Common/CommonDefs.ttcn similarity index 96% rename from IMS_PART4_IWD_14wk37/Common/Common/CommonDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/Common/CommonDefs.ttcn index 47f1330..a6e74c0 100644 --- a/IMS_PART4_IWD_14wk37/Common/Common/CommonDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/Common/CommonDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:44:18 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12148 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 14:41:28 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13929 $ /******************************************************************************/ module CommonDefs { @@ -31,6 +31,7 @@ module CommonDefs { type bitstring B14_Type length(14); type bitstring B15_Type length(15); type bitstring B16_Type length(16); + type bitstring B18_Type length(18); type bitstring B20_Type length(20); type bitstring B24_Type length(24); type bitstring B27_Type length(27); @@ -99,6 +100,7 @@ module CommonDefs { type enumerated SinglePLMN_TestedType {SinglePLMN, MultiPLMN, MultiPLMNinPrimaryBand, MultiPLMNinSecondaryBand}; // @sic R5-123667 sic@ type enumerated EUTRA_ATTACH_TESTED_Type { EPS_ATTACH_ONLY, COMBINED_ATTACH}; type enumerated NAS_ATTACH_STATE_Type {ATTACHED, DETACHED}; + type enumerated EUTRA_FDD_TDD_Mode_Type {FDD, TDD}; type enumerated UTRAN_FDD_TDD_Type {UTRAN_FDD, UTRAN_TDD}; type enumerated RATComb_Tested_Type {EUTRA_UTRA, EUTRA_GERAN, EUTRA_Only}; @@ -188,6 +190,10 @@ module CommonDefs { gea4(4) }; + type O4_Type MessageAuthenticationCode; /* 24.301 cl. 9.5 */ + type O4_Type NasCount_Type; + + type enumerated IPCAN_RAN_Type { /* radio access network technology used by the IPCAN PTC */ GERAN, UTRAN_FDD, @@ -435,7 +441,7 @@ module CommonDefs { return -1; } - function fl_StringToLowerOrLower(boolean p_ToLower, + function fl_StringToUpperOrLower(boolean p_ToLower, charstring p_String) return charstring { var integer i; @@ -461,12 +467,12 @@ module CommonDefs { function f_StringToLower(charstring p_String) return charstring { - return fl_StringToLowerOrLower(true, p_String); + return fl_StringToUpperOrLower(true, p_String); } function f_StringToUpper(charstring p_String) return charstring { - return fl_StringToLowerOrLower(false, p_String); + return fl_StringToUpperOrLower(false, p_String); } //---------------------------------------------------------------------------- @@ -504,7 +510,7 @@ module CommonDefs { function f_StringJoin(CharStringList_Type p_StringList, charstring p_JoinString := " ") return charstring - { + { /* similar to TCL's join function, but skips empty strings */ var CharStringList_Type v_StringList; var charstring v_String := ""; var integer i; @@ -877,6 +883,19 @@ module CommonDefs { return (substr(p_Bitstring, p_Index, 1) == '1'B); } + //---------------------------------------------------------------------------- +// Moved here because now needed in Authentication_Init (i.e. GERAN and UTRAN PTCs too) + const integer tsc_KDF_HMAC_SHA_256 := 1; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const integer tsc_KDF_Spare3 := 4; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type integer KDF_Type ( tsc_KDF_HMAC_SHA_256 .. tsc_KDF_Spare3 ); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + external function fx_KeyDerivationFunction(KDF_Type p_KDF, + B256_Type p_Key, + octetstring p_String) return B256_Type; + /* External function to hashing function with algorithm as defined in 33.401; + SHA-256 encoding algorithm used as KEY Description Function + @status APPROVED (LTE) */ + //---------------------------------------------------------------------------- /* system time acc. to default C library (see time.h) */ diff --git a/IMS_PART4_IWD_14wk37/Common/Common/UpperTesterCommon.ttcn b/IMS_PART4_IWD_15wk38/Common/Common/UpperTesterCommon.ttcn similarity index 93% rename from IMS_PART4_IWD_14wk37/Common/Common/UpperTesterCommon.ttcn rename to IMS_PART4_IWD_15wk38/Common/Common/UpperTesterCommon.ttcn index 630d9ae..9252854 100644 --- a/IMS_PART4_IWD_14wk37/Common/Common/UpperTesterCommon.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/Common/UpperTesterCommon.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-28 13:27:35 +0200 (Sat, 28 Jun 2014) $ -// $Rev: 11783 $ +// @version: IWD_15wk38 +// $Date: 2015-06-10 16:35:18 +0200 (Wed, 10 Jun 2015) $ +// $Rev: 13728 $ /******************************************************************************/ module UpperTesterCommon { @@ -23,9 +23,8 @@ module UpperTesterCommon { type enumerated Ut_CnfReq_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ NO_CNF_REQUIRED, CNF_REQUIRED, /* to request CNF as got from the UE */ - LOCAL_CNF_REQUIRED, /* to request immediate CNF after SS has submitted the command to the UE (SS shall not wait for the UE is responding) + LOCAL_CNF_REQUIRED /* to request immediate CNF after SS has submitted the command to the UE (SS shall not wait for the UE is responding) @sic R5s110176 BASELINE MOVING 2011 sic@ */ - MULTIPLE_CNF // @sic R5s140316 sic@ }; type record UT_COMMON_CNF { /* Common confirmation triggered by the UE; @@ -112,7 +111,7 @@ module UpperTesterCommon { */ function f_UT_CommandRequiresCnf(template (value) Ut_CnfReq_Type p_CnfReq) return boolean { - return (match(CNF_REQUIRED, p_CnfReq) or match(LOCAL_CNF_REQUIRED, p_CnfReq) or match(MULTIPLE_CNF, p_CnfReq)); + return (match(CNF_REQUIRED, p_CnfReq) or match(LOCAL_CNF_REQUIRED, p_CnfReq)); // @sic R5-151792 sic@ } } diff --git a/IMS_PART4_IWD_14wk37/Common/Common/UpperTesterFunctions.ttcn b/IMS_PART4_IWD_15wk38/Common/Common/UpperTesterFunctions.ttcn similarity index 84% rename from IMS_PART4_IWD_14wk37/Common/Common/UpperTesterFunctions.ttcn rename to IMS_PART4_IWD_15wk38/Common/Common/UpperTesterFunctions.ttcn index df49bc3..18ebfaa 100644 --- a/IMS_PART4_IWD_14wk37/Common/Common/UpperTesterFunctions.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/Common/UpperTesterFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module UpperTesterFunctions { @@ -22,7 +22,11 @@ module UpperTesterFunctions { const integer tsc_ManualPLMN_EUTRA := 7; const integer tsc_ManualPLMN_None := -1; /* @status APPROVED (LTE, LTE_IRAT) */ - + // octet representation of type of number and numbering plan octet in 24.008 10.5.4.7. + // Put here as inbetween test cases and MTC + const O1_Type tsc_NumberingPlan_Oct := int2oct(tsc_NumberingPlan_Int, 1); /* @status APPROVED (SSNITZ) + @sic R5s150538 sic@ */ + //============================================================================ // TEMPLATES (used in this module only) //----------------------------------------------------------------------------- @@ -41,11 +45,11 @@ module UpperTesterFunctions { //----------------------------------------------------------------------------- template (value) Ut_Parameter_Type cs_Ut_Parameter_Cid(charstring p_Value) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Cid", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_QoS(charstring p_Value) := - /* @status APPROVED (LTE, LTE_IRAT, UTRAN) */ + /* @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("QoS", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_PLMN(charstring p_Value) := @@ -62,7 +66,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_OpMode(charstring p_Value) := - { /* @status */ + { /* @status APPROVED (UTRAN) */ cs_Ut_Parameter_Common("OPERATION MODE", p_Value) }; @@ -107,7 +111,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_DialNumber(charstring p_Value) := - { /* @status APPROVED (LTE, LTE_IRAT, SSNITZ, UTRAN) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("DIAL", p_Value) }; @@ -117,7 +121,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_InsertUsim(template (value) charstring p_Value) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ cs_Ut_Parameter_Common("USIM", p_Value) }; @@ -129,7 +133,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_PDP_Cid(charstring p_Cid) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Ut_Parameter_Cid(p_Cid) }; @@ -144,7 +148,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_RequestPDP(charstring p_PDPParams) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("RequestPDP", p_PDPParams) }; @@ -185,7 +189,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_TriggerMolr(charstring p_TypeMolr) := - { /* @status */ + { cs_Ut_Parameter_Common("TypeMolr", p_TypeMolr) }; @@ -216,7 +220,7 @@ module UpperTesterFunctions { charstring p_Toda, charstring p_Text) := { // @sic R5s110750 sic@ - /* @status APPROVED (LTE, UTRAN) */ + /* @status APPROVED (LTE, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Da", p_Da), cs_Ut_Parameter_Common("Toda", p_Toda), cs_Ut_Parameter_Common("Text", p_Text) @@ -224,13 +228,13 @@ module UpperTesterFunctions { template (value) Ut_ParameterList_Type cs_WriteMessageToMemory_PDU(charstring p_Len, charstring p_Pdu) := - { /* @status APPROVED (LTE, UTRAN) */ + { /* @status APPROVED (LTE, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Len", p_Len), cs_Ut_Parameter_Common("Text", p_Pdu) }; template (value) Ut_ParameterList_Type cs_SendMessageFromStorage(charstring p_Index) := - { /* @status APPROVED (LTE, UTRAN) */ + { /* @status APPROVED (LTE, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Index", p_Index) }; @@ -253,7 +257,7 @@ module UpperTesterFunctions { template (value) Ut_ParameterList_Type cs_SetTextModeParameters(charstring p_Fo, charstring p_Vp, charstring p_Pid) := - { /* @status APPROVED (LTE, UTRAN) */ + { /* @status APPROVED (LTE, SSNITZ, UTRAN) */ /* @sic R5s100606 sic@ */ cs_Ut_Parameter_Common("Fo", p_Fo), cs_Ut_Parameter_Common("Vp", p_Vp), @@ -266,20 +270,20 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_Chk_SSUserInd(charstring p_SuppService, charstring p_ToDisplay) := - { + { /* @status APPROVED (SSNITZ) */ cs_Ut_Parameter_Common("Supplementary Service", p_SuppService), cs_Ut_Parameter_Common("ToDisplay", p_ToDisplay) }; template (value) Ut_ParameterList_Type cs_QoS_Profile(charstring p_Cid, charstring p_QoSParams) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ cs_Ut_Parameter_Cid(p_Cid), cs_Ut_Parameter_QoS(p_QoSParams) }; template (value) Ut_ParameterList_Type cs_OperatorFormat(charstring p_Format) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, SSNITZ) */ cs_Ut_Parameter_Common("Format", p_Format) }; @@ -306,51 +310,51 @@ module UpperTesterFunctions { template (value) Ut_ParameterList_Type cs_MBMSServiceActive(charstring p_ServiceId, charstring p_SAI, charstring p_Active) := - { /* @status */ + { /* @status APPROVED (LTE_A) */ cs_Ut_Parameter_Common("Service Id", p_ServiceId), cs_Ut_Parameter_Common("SAI", p_SAI), cs_Ut_Parameter_Common("Active", p_Active) }; template (value) Ut_ParameterList_Type cs_MBMSPriority(charstring p_PriorityOverUnicast) := - { /* @status */ + { /* @status APPROVED (LTE_A) */ cs_Ut_Parameter_Common("Priority Over Unicast", p_PriorityOverUnicast) }; template (value) Ut_ParameterList_Type cs_CallIdNumber(charstring p_CallId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, SSNITZ) */ cs_Ut_Parameter_Common("Call Id", p_CallId) }; template (value) Ut_ParameterList_Type cs_IntegerString(charstring p_Value) := - { /* @status APPROVED (POS) */ + { /* @status APPROVED (LTE, POS, SSNITZ) */ cs_Ut_Parameter_Common("Integer", p_Value) }; template (value) Ut_Parameter_Type cs_Ut_Parameter_Uri(charstring p_Value) := cs_Ut_Parameter_Common("Uri", p_Value); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_SS_Mode(charstring p_Value) := cs_Ut_Parameter_Common("Mode", p_Value); /* @status APPROVED (IMS, SSNITZ) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_Number(charstring p_Value) := cs_Ut_Parameter_Common("Number", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_Password(charstring p_Value) := cs_Ut_Parameter_Common("Password", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_USSD(charstring p_Value) := cs_Ut_Parameter_Common("USSD", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_Number(charstring p_Value) := cs_Ut_Parameter_Common("Number", p_Value); /* @status APPROVED (SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_Password(charstring p_Value) := cs_Ut_Parameter_Common("Password", p_Value); /* @status APPROVED (SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_USSD(charstring p_Value) := cs_Ut_Parameter_Common("USSD", p_Value); /* @status APPROVED (SSNITZ) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryService(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryService", p_Value); /* @status APPROVED (IMS, SSNITZ) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryServiceCondition(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryServiceCondition", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryServiceTime(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryServiceTime", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryServiceTime(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryServiceTime", p_Value); /* @status APPROVED (SSNITZ) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_PublicUserId(charstring p_Value) := cs_Ut_Parameter_Common("PublicUserId", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_HomeDomain(charstring p_Value) := cs_Ut_Parameter_Common("HomeDomain", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_PrivateUserId(charstring p_Value) := cs_Ut_Parameter_Common("PrivateUSerId", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Check(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); // Value may not be needed, empty for now template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Confirm(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); // Value may not be needed, empty for now - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Year(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Month(charstring p_Value) := cs_Ut_Parameter_Common("Month: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Day(charstring p_Value) := cs_Ut_Parameter_Common("Day: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Hour(charstring p_Value) := cs_Ut_Parameter_Common("Hour: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Minutes(charstring p_Value) := cs_Ut_Parameter_Common("Minutes: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Seconds(charstring p_Value) := cs_Ut_Parameter_Common("Seconds: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_TimeZone(charstring p_Value) := cs_Ut_Parameter_Common("TimeZone: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_LocalTimeZone(charstring p_Value) := cs_Ut_Parameter_Common("LocalTimeZone: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_DaylightSavingTime(charstring p_Value) := cs_Ut_Parameter_Common("DaylightSavingTime: ", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_FullNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("FullNetworkName: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_ShortNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("ShortNetworkName: ", p_Value); /* @status APPROVED (LTE) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Year(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Month(charstring p_Value) := cs_Ut_Parameter_Common("Month: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Day(charstring p_Value) := cs_Ut_Parameter_Common("Day: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Hour(charstring p_Value) := cs_Ut_Parameter_Common("Hour: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Minutes(charstring p_Value) := cs_Ut_Parameter_Common("Minutes: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Seconds(charstring p_Value) := cs_Ut_Parameter_Common("Seconds: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_TimeZone(charstring p_Value) := cs_Ut_Parameter_Common("TimeZone: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_LocalTimeZone(charstring p_Value) := cs_Ut_Parameter_Common("LocalTimeZone: ", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_DaylightSavingTime(charstring p_Value) := cs_Ut_Parameter_Common("DaylightSavingTime: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_FullNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("FullNetworkName: ", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_ShortNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("ShortNetworkName: ", p_Value); //============================================================================ // local functions @@ -377,10 +381,10 @@ module UpperTesterFunctions { * @param p_Port * @param p_Cmd * @return UT_COMMON_CNF - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UT_ApplyCommandRetCnf(UT_PTC_MTC_PORT p_Port, - template (value) UT_COMMON_CMD p_Cmd) return UT_COMMON_CNF + template (value) UT_COMMON_CMD p_Cmd) return UT_COMMON_CNF { p_Port.send(p_Cmd); return fl_UT_RetCnf (p_Port); // @sic R5-140347 sic@ @@ -390,7 +394,7 @@ module UpperTesterFunctions { * @desc To wait for a response and return the CNF * @param p_Port * @return UT_COMMON_CNF - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UT_RetCnf(UT_PTC_MTC_PORT p_Port) return UT_COMMON_CNF { @@ -413,7 +417,7 @@ module UpperTesterFunctions { * To be used when the UE is switched off. * @param p_Port * @param p_UE_CS_PS_UsageSetting_Tested Whether UE is voice or data centric - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_UT_ConfigureCombinedAttach(UT_PTC_MTC_PORT p_Port, CS_PS_MODE p_UE_CS_PS_UsageSetting_Tested := px_UE_CS_PS_UsageSetting_Tested) @@ -497,9 +501,10 @@ module UpperTesterFunctions { * @desc To ask the configure the UTRAN Operation Mode * @param p_Port * @param p_UE_OperationMode - * @status + * @status APPROVED (UTRAN) */ - function f_UT_ConfigureUTRANOperationMode(UT_PTC_MTC_PORT p_Port, charstring p_UE_OperationMode) + function f_UT_ConfigureUTRANOperationMode(UT_PTC_MTC_PORT p_Port, + charstring p_UE_OperationMode) { fl_UT_ApplyCommand(p_Port, cas_UT_Req(CONFIGURE_OPERATIONMODE, CNF_REQUIRED, cs_OpMode(p_UE_OperationMode))); } @@ -535,7 +540,7 @@ module UpperTesterFunctions { * TTCN waits until operation is confirmed before continuing * @param p_Port * @param p_USIM_ID - * @status APPROVED (LTE, LTE_A, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ function f_UT_USIM_Insert(UT_PTC_MTC_PORT p_Port, template (omit) charstring p_USIM_ID) @@ -691,7 +696,7 @@ module UpperTesterFunctions { * TTCN waits until operation is confirmed before continuing * @param p_Port * @return boolean - * @status + * @status APPROVED (POS, SSNITZ) */ function f_UT_CheckDTCH_ThroughConn(UT_PTC_MTC_PORT p_Port) return boolean { @@ -910,7 +915,7 @@ module UpperTesterFunctions { * @desc To ask the operator to dial a CS call * @param p_Port * @param p_NumToDial (default value: "01234567890") - * @status APPROVED (LTE, LTE_IRAT, SSNITZ, UTRAN) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UT_RequestCSCall(UT_PTC_MTC_PORT p_Port, charstring p_NumToDial := "01234567890") @@ -923,13 +928,18 @@ module UpperTesterFunctions { * @desc To ask the operator to dial an IMS call * @param p_Port * @param p_NumToDial (default value: "01234567890") - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @return charstring + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ function f_UT_RequestIMSCall(UT_PTC_MTC_PORT p_Port, - charstring p_NumToDial := "01234567890") + charstring p_NumToDial := "01234567890") return charstring // @sic R5-145723 sic@ { + var UT_COMMON_CNF v_Cnf; + var charstring v_CallId := ""; // fl_UT_ApplyCommand(p_Port, cas_UT_Req(VOICE_CALL_MODE, CNF_REQUIRED, cs_IMSMode)); - fl_UT_ApplyCommand(p_Port, cas_UT_Req(REQUEST_IMS_VOICE_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_NumToDial)})); // @sic R5-134290 sic@ + v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(REQUEST_IMS_VOICE_CALL, CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_NumToDial)})); // @sic R5-134290, R5-145723 sic@ + v_CallId := regexp(v_Cnf.ResultString, "*CDU: ([1-9])", 0); + return v_CallId; } //---------------------------------------------------------------------------- @@ -950,12 +960,35 @@ module UpperTesterFunctions { * @desc Initiate a video call * @param p_Port * @param p_CalleeUri + * @return charstring * @status APPROVED (IMS) */ function f_UT_RequestIMSVideoCall(UT_PTC_MTC_PORT p_Port, - charstring p_CalleeUri) + charstring p_CalleeUri) return charstring + { + var UT_COMMON_CNF v_Cnf; + var charstring v_CallId := ""; + var charstring v_MediaId := ""; + v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(IMS_CONFIGURE_VIDEO_CALL, CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_CalleeUri)})); // @sic R5-145723 sic@ + v_MediaId := regexp(v_Cnf.ResultString, "*CDEFMP: ([1-9])", 0); + v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(INITIATE_VIDEO_CALL, CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_CalleeUri), + cs_Ut_Parameter_Common("MediaId", v_MediaId)})); // @sic R5-145723 sic@ + v_CallId := regexp(v_Cnf.ResultString, "*CDU: ([1-9])", 0); + return v_CallId; + } + + //---------------------------------------------------------------------------- + /* + * @desc Add video to speech call + * @param p_Port + * @param p_CDUIdentifier - returned from f_UT_RequestIMSCall + * @status + */ + function f_UT_AddVideoToIMSCall(UT_PTC_MTC_PORT p_Port, + charstring p_CDUIdentifier) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(INITIATE_VIDEO_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_CalleeUri)})); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(IMS_MODIFY_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Common("CallId", p_CDUIdentifier), + cs_Ut_Parameter_Common ("Media", "m=audio\0D\0Am=video")})); } //---------------------------------------------------------------------------- @@ -1109,14 +1142,14 @@ module UpperTesterFunctions { * @desc To request to activate MBMS Service * @param p_Port * @param p_Service_ID - * @param p_MBMS_SAI (default: omit) - * @param p_Active (allowed values: ON, OFF) - * @status + * @param p_Active + * @param p_MBMS_SAI (default value: omit) + * @status APPROVED (LTE_A) */ function f_UT_MBMS_SERVICE_Active(UT_PTC_MTC_PORT p_Port, - charstring p_Service_ID, - boolean p_Active, - template (omit) integer p_MBMS_SAI := omit) // @sic R5-135000 sic@ + charstring p_Service_ID, + boolean p_Active, + template (omit) integer p_MBMS_SAI := omit) // @sic R5-135000 sic@ { /* Objective: To ask the operator to join MBMS service */ var charstring v_Active := "ON"; var charstring v_SAI := ""; @@ -1135,10 +1168,10 @@ module UpperTesterFunctions { * @desc To request that the UE is configured such that MBMS services takes priority over unicast bearer transmissions * @param p_Port * @param p_PriorityOverUnicast - * @status + * @status APPROVED (LTE_A) */ function f_UT_MBMS_Unicast(UT_PTC_MTC_PORT p_Port, - boolean p_PriorityOverUnicast) + boolean p_PriorityOverUnicast) { var charstring v_PriorityOverUnicast := "FALSE"; @@ -1181,7 +1214,7 @@ module UpperTesterFunctions { v_QoSstring := v_QoSstring &","& int2str(fl_QoS_MaximumBitRate(v_QoS.guaranteedBitRateUl)); // @sic R5s100557 sic@ v_QoSstring := v_QoSstring &","& int2str(fl_QoS_MaximumBitRate(v_QoS.maxBitRateDl)); // @sic R5s100557 sic@ v_QoSstring := v_QoSstring &","& int2str(fl_QoS_MaximumBitRate(v_QoS.maxBitRateUl)); // @sic R5s100557 sic@ - // Extended rates are not dealt with at the moment (all set to 0 in current 36.508) FFS + // Extended rates are not dealt with at the moment (all set to 0 in current 36.508) fl_UT_ApplyCommand(p_Port, cas_UT_Req(REQUEST_DED_BEARER, CNF_REQUIRED, cs_SecondaryPDP(int2str(p_DedicatedId), int2str(p_DefaultId)))); // @sic R5s110570 sic@ fl_UT_ApplyCommand(p_Port, cas_UT_Req(DEFINE_EPS_QOS, CNF_REQUIRED, cs_EPSQoS(v_QoSstring))); // @sic R5s110570 sic@ @@ -1199,7 +1232,7 @@ module UpperTesterFunctions { * @desc To convert the maximum bit rate for the QoS * @param p_Val * @return integer - * @status APPROVED (LTE, LTE_IRAT, UTRAN) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_MaximumBitRate(B8_Type p_Val) return integer { @@ -1244,7 +1277,7 @@ module UpperTesterFunctions { * @desc To convert the transfer delay for the QoS * @param p_Val * @return integer - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_TransferDelay(B6_Type p_Val) return integer { @@ -1265,7 +1298,7 @@ module UpperTesterFunctions { * @desc To convert the SDU Error Ratio for the QoS * @param p_Val * @return charstring - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_SDUErrorRatio(B4_Type p_Val) return charstring { @@ -1285,7 +1318,7 @@ module UpperTesterFunctions { * @desc To convert the Residual BER for the QoS * @param p_Val * @return charstring - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_ResidualBER(B4_Type p_Val) return charstring { @@ -1363,7 +1396,7 @@ module UpperTesterFunctions { * @param p_QoSParams * @param p_APN (default value: "") * @param p_NSLPI - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function f_UT_ActivatePDPContextUG(UT_PTC_MTC_PORT p_Port, integer p_CId, @@ -1444,7 +1477,7 @@ module UpperTesterFunctions { { var charstring v_PDP_CtxtString := int2str(p_BearerId) & ",,,,,,,,,,"; - // most parameters are left blank - as bearer is already configured, only SIMTC params are included at the end FFS + // most parameters are left blank - as bearer is already configured, only SIMTC params are included at the end if (p_NSLPI >= 0) { v_PDP_CtxtString := v_PDP_CtxtString & int2str(p_NSLPI); } @@ -1513,7 +1546,7 @@ module UpperTesterFunctions { * @param p_Port * @param p_BearerId * @param p_RestOfCmd - * @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_RequestPDPContext(UT_PTC_MTC_PORT p_Port, integer p_BearerId, @@ -1541,7 +1574,7 @@ module UpperTesterFunctions { /* * @desc To attach for PS services * @param p_Port - * @status APPROVED (LTE, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UT_TriggerAttach(UT_PTC_MTC_PORT p_Port) { @@ -1552,7 +1585,7 @@ module UpperTesterFunctions { /* * @desc To detach * @param p_Port - * @status APPROVED (LTE) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_UT_InitiateDetach(UT_PTC_MTC_PORT p_Port) // @sic R5-113807 sic@ { @@ -1700,7 +1733,7 @@ module UpperTesterFunctions { * @param p_Toda * @param p_Text * @return charstring - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_WriteMessageToMemoryText(UT_PTC_MTC_PORT p_Port, charstring p_Da, @@ -1720,7 +1753,7 @@ module UpperTesterFunctions { * @param p_Len * @param p_Pdu * @return charstring - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_WriteMessageToMemoryPDU(UT_PTC_MTC_PORT p_Port, charstring p_Len, @@ -1737,7 +1770,7 @@ module UpperTesterFunctions { * @desc To send a stored SMS message * @param p_Port * @param p_Index - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_SendStoredOneMessage(UT_PTC_MTC_PORT p_Port, integer p_Index) @@ -1770,7 +1803,7 @@ module UpperTesterFunctions { * @param p_Vp * @param p_Pid * @return charstring - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_SetTextModeParameters(UT_PTC_MTC_PORT p_Port, integer p_Fo, @@ -1829,36 +1862,86 @@ module UpperTesterFunctions { * @param p_Port * @param p_ToDisplay * @return boolean - * @status + * @status APPROVED (SSNITZ) */ function f_UT_ChkResponseDisplayed(UT_PTC_MTC_PORT p_Port, charstring p_ToDisplay) return boolean { // To make the operator check the response displayed by the SS var UT_COMMON_CNF v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(CHECK_RESPONSE_DISPLAY, - CNF_REQUIRED, - cs_ChkCallDisplayed(p_ToDisplay))); + CNF_REQUIRED, + cs_ChkCallDisplayed(p_ToDisplay))); return v_Cnf.Result; } //---------------------------------------------------------------------------- /* - * @desc To check the UE provides the correct user indication + * @desc To send MMI command to check the UE returns appropriate CNAP response * @param p_Port - * @param p_SuppService * @param p_ToDisplay + * @status APPROVED (SSNITZ) + */ + function f_UT_TriggerCNAPResponse(UT_PTC_MTC_PORT p_Port, charstring p_ToDisplay) + { + fl_UT_ApplyCommand(p_Port, + cas_UT_Req(CNAP_DUMMY, + CNF_REQUIRED, + cs_ChkCallDisplayed(p_ToDisplay)), + true); // don't wait for CNF at this point @sic R5-153746 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc To check the UE returns appropriate CNAP response + * @param p_Port + * @param p_SS_Status + * @return boolean + */ + function f_UT_ChkCNAPQueryResponse(UT_PTC_MTC_PORT p_Port, + octetstring p_SS_Status) return boolean + { + var charstring v_Result := ""; + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + v_Result := regexp (v_Cnf.ResultString, "*CNAP: *,(*)*", 0); + + return match (v_Result, bit2str(substr(oct2bit(p_SS_Status), 4, 1))); + } + + //---------------------------------------------------------------------------- + /* + * @desc To check the UE returns appropriate Call Forwarding response + * @param p_Port + * @param p_SS_Status * @return boolean * @status */ + function f_UT_ChkCallForwardQueryResponse(UT_PTC_MTC_PORT p_Port, + boolean p_Active) return boolean + { + var charstring v_Result := ""; + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + v_Result := regexp (v_Cnf.ResultString, "*CCFCU: (*),*", 0); + + return match (v_Result, int2str(bit2int(f_ConvertBoolToBit(p_Active)))); + } + //---------------------------------------------------------------------------- + /* + * @desc To check the UE provides the correct user indication + * @param p_Port + * @param p_SuppService + * @param p_ToDisplay (default value: "") + * @return boolean + * @status APPROVED (SSNITZ) + */ function f_UT_ChkSuppServiceUserIndication(UT_PTC_MTC_PORT p_Port, - charstring p_SuppService, - charstring p_ToDisplay := "") return boolean + charstring p_SuppService, + charstring p_ToDisplay := "") return boolean { // To make the operator check the response displayed by the SS var UT_COMMON_CNF v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(CHECK_SS_USER_IND, - CNF_REQUIRED, - cs_Chk_SSUserInd(p_SuppService, p_ToDisplay))); + CNF_REQUIRED, + cs_Chk_SSUserInd(p_SuppService, p_ToDisplay))); return v_Cnf.Result; } @@ -1879,14 +1962,14 @@ module UpperTesterFunctions { //---------------------------------------------------------------------------- - type enumerated UT_OPERATOR_FORMAT { LONG_NAME, SHORT_NAME, NUMERIC_ONLY}; /* @status APPROVED (LTE) */ + type enumerated UT_OPERATOR_FORMAT { LONG_NAME, SHORT_NAME, NUMERIC_ONLY}; /* @status APPROVED (LTE, SSNITZ) */ /* * @desc To request the name of the operator currently camped on * @param p_Port * @param p_Format - Use the enumerated type defined just above to select the UE to return the operator name in long short or numeric only format * @return charstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, SSNITZ) */ function f_UT_ChkOperatorName(UT_PTC_MTC_PORT p_Port, UT_OPERATOR_FORMAT p_Format) return charstring @@ -1908,7 +1991,6 @@ module UpperTesterFunctions { * @param p_NITZ_Minutes * @param p_NITZ_Seconds * @param p_NITZ_TimeZone - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_UniversalTime(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_Year, @@ -1935,7 +2017,6 @@ module UpperTesterFunctions { * @desc To request the operator to check that the UE displays the correct NITZ information: Local Time and Timezone * @param p_Port * @param p_NITZ_LocalTimeZone - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_LocalTimeAndTimeZone(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_LocalTimeZone) @@ -1949,7 +2030,8 @@ module UpperTesterFunctions { /* * @desc To request the operator to check that the UE displays the correct NITZ information: Local Time and Timezone * @param p_Port - * @status + * @param p_NITZ_DaylightSavingTime + * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_DaylightSavingTime(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_DaylightSavingTime) @@ -1964,7 +2046,6 @@ module UpperTesterFunctions { * @desc To request the operator to check that the UE displays the correct NITZ information: Full Network Name * @param p_Port * @param p_NITZ_FullNetworkName - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_FullNetworkName(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_FullNetworkName) @@ -1979,7 +2060,6 @@ module UpperTesterFunctions { * @desc To request the operator to check that the UE displays the correct NITZ information: Short Network Name * @param p_Port * @param p_NITZ_ShortNetworkName - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_ShortNetworkName(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_ShortNetworkName) @@ -1993,7 +2073,7 @@ module UpperTesterFunctions { /* * @desc To answer a call * @param p_Port - * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, SSNITZ) */ function f_UT_AnswerCall(UT_PTC_MTC_PORT p_Port) { @@ -2004,7 +2084,7 @@ module UpperTesterFunctions { /* * @desc To hang up a call * @param p_Port - * @status + * @status APPROVED (SSNITZ) */ function f_UT_HangupCall(UT_PTC_MTC_PORT p_Port) { @@ -2030,7 +2110,7 @@ module UpperTesterFunctions { function f_UT_IMS_ActivateMWI(UT_PTC_MTC_PORT p_Port) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(ACTIVATE_MESSAGE_WAIT_INDICATION, NO_CNF_REQUIRED)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(ACTIVATE_MESSAGE_WAIT_INDICATION, CNF_REQUIRED)); } /* @@ -2073,11 +2153,13 @@ module UpperTesterFunctions { /* * @desc Remove a video call * @param p_Port - * @param p_CalleeUri + * @param p_CDUIdentifier */ - function f_UT_IMS_RemoveVideoCall(UT_PTC_MTC_PORT p_Port) + function f_UT_IMS_RemoveVideoMedia(UT_PTC_MTC_PORT p_Port, + charstring p_CDUIdentifier) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(REMOVE_VIDEO_CALL, NO_CNF_REQUIRED)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(IMS_MODIFY_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Common("CallId", p_CDUIdentifier), + cs_Ut_Parameter_Common ("Media", "m=audio")})); } //---------------------------------------------------------------------------- @@ -2106,31 +2188,33 @@ module UpperTesterFunctions { fl_UT_ApplyCommand(p_Port, cas_UT_Req(CONFIGURE_SMS_ONLY, CNF_REQUIRED, omit)); } //---------------------------------------------------------------------------- - type enumerated MOLR_Type {ASSISTED_GPS, ASSISTED_GANSS, ASSISTED_GPS_GANSS, POSITION_ESTIMATE} + + type enumerated MOLR_Type {ASSISTED_GPS, ASSISTED_GANSS, ASSISTED_GPS_GANSS, POSITION_ESTIMATE} /* @status APPROVED (POS) */ + /* * @desc To request the operator to trigger MO-LR for position estimate or assistance data * @param p_Port * @param p_TypeOfMolr - * @status + * @status APPROVED (POS) */ - function f_UT_InitMOLR(UT_PTC_MTC_PORT p_Port, - MOLR_Type p_TypeOfMolr) + MOLR_Type p_TypeOfMolr) { var charstring v_Method; + select (p_TypeOfMolr) { - case (ASSISTED_GPS) { - v_Method := "1"; - } - case (ASSISTED_GANSS) { - v_Method := "2"; - } - case (ASSISTED_GPS_GANSS) { - v_Method := "3"; - } - case (POSITION_ESTIMATE) { - v_Method := "4"; - } + case (ASSISTED_GPS) { + v_Method := "1"; + } + case (ASSISTED_GANSS) { + v_Method := "2"; + } + case (ASSISTED_GPS_GANSS) { + v_Method := "3"; + } + case (POSITION_ESTIMATE) { + v_Method := "4"; + } } fl_UT_ApplyCommand(p_Port, cas_UT_Req(TRIGGER_MOLR, NO_CNF_REQUIRED, cs_TriggerMolr(v_Method))); } @@ -2172,13 +2256,44 @@ module UpperTesterFunctions { if (not p_Enable) { v_Enable := cs_IntegerString ("0"); } - fl_UT_ApplyCommand(p_Port, cas_UT_Req(LOCATION_SUBSCRIBE, MULTIPLE_CNF, v_Enable)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(LOCATION_SUBSCRIBE, CNF_REQUIRED, v_Enable)); // @sic R5s150213 sic@ } //---------------------------------------------------------------------------- type enumerated LOCATION_REQUEST_Type { LOCATION_NOTIFICATION, LOCATION_REQ_ALLOWED, LOCATION_REQ_FORBIDDEN }; /* @status APPROVED (POS) */ + function fl_LocationEnum2Str (LOCATION_REQUEST_Type p_LR_Type) return charstring + { + var charstring v_String := ""; + select (p_LR_Type) + { + case (LOCATION_NOTIFICATION) { + v_String := "LOCATION_NOTIFICATION"; + } + case (LOCATION_REQ_ALLOWED) { + v_String := "LOCATION_REQ_ALLOWED"; + } + case (LOCATION_REQ_FORBIDDEN) { + v_String := "LOCATION_REQ_FORBIDDEN"; + } + } + return v_String; + } + + /* + * @desc To trigger the UE displays the correct notification + * @param p_Port + * @param p_LR_Type + * @status APPROVED (POS) + */ + function f_UT_AT_TriggerNotifyLocationRequest(UT_PTC_MTC_PORT p_Port, + LOCATION_REQUEST_Type p_LR_Type) + { + // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported + fl_UT_ApplyCommand (p_Port, cas_UT_Req(CMTLR_DUMMY, CNF_REQUIRED, cs_LocationNotify (fl_LocationEnum2Str (p_LR_Type))), true); // @sic R5s140777, R5-151792, R5-153746 sic@ + } + /* * @desc To check the UE displays the correct notification * @param p_Port @@ -2186,7 +2301,7 @@ module UpperTesterFunctions { * @return integer * @status APPROVED (POS) */ - function f_UT_AT_NotifyLocationRequest(UT_PTC_MTC_PORT p_Port, + function f_UT_AT_CheckNotifyLocationRequest(UT_PTC_MTC_PORT p_Port, LOCATION_REQUEST_Type p_LR_Type) return integer { var UT_COMMON_CNF v_Cnf; @@ -2194,9 +2309,7 @@ module UpperTesterFunctions { var charstring v_NotificationType := ""; var charstring v_HandleChar := ""; - // v_Cnf := fl_UT_RetCnf(p_Port); - // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported - v_Cnf := fl_UT_ApplyCommandRetCnf (p_Port, cas_UT_Req(LOCATION_MULTIPLE, CNF_REQUIRED)); // @sic R5s140777 sic@ + v_Cnf := fl_UT_RetCnf (p_Port); // @sic R5s140777, R5-151792, R5-153746 sic@ v_HandleChar := regexp(v_Cnf.ResultString, "*CMTLR: (*),", 0); v_NotificationType := regexp(v_Cnf.ResultString, "*CMTLR: [0-9]+,(*)", 0); @@ -2217,48 +2330,124 @@ module UpperTesterFunctions { fl_UT_ApplyCommand(p_Port, cas_UT_Req(LOCATION_INFO, CNF_REQUIRED)); } + //---------------------------------------------------------------------------- + /* + * @desc To enable AT time zone update + * @param p_Port + * @param p_Enable (default value: true) + * @status APPROVED (LTE) + */ + function f_UT_AT_TimeZoneUpdate(UT_PTC_MTC_PORT p_Port, + boolean p_Enable := true) + { + var template (value) Ut_ParameterList_Type v_Enable := cs_IntegerString(bit2str(f_ConvertBoolToBit(p_Enable))); + + fl_UT_ApplyCommand(p_Port, cas_UT_Req(TIMEZONE_UPDATE, CNF_REQUIRED, v_Enable)); + } + //---------------------------------------------------------------------------- /* * @desc To subscribe to AT response time zone reporting * @param p_Port - * @param p_Msg - * @status + * @param p_Enable (default value: true) + * @status APPROVED (LTE, SSNITZ) */ - function f_UT_AT_SubscribeTimeZoneReporting(UT_PTC_MTC_PORT p_Port, boolean p_Enable := true) + function f_UT_AT_SubscribeTimeZoneReporting(UT_PTC_MTC_PORT p_Port, + boolean p_Enable := true) { - var template (value) Ut_ParameterList_Type v_Enable := cs_IntegerString ("2"); // enable everything + var template (value) Ut_ParameterList_Type v_Enable := cs_IntegerString("2"); // enable everything if (not p_Enable) { - v_Enable := cs_IntegerString ("0"); + v_Enable := cs_IntegerString("0"); } - fl_UT_ApplyCommand(p_Port, cas_UT_Req(TIMEZONE_SUBSCRIBE, MULTIPLE_CNF, v_Enable)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(TIMEZONE_SUBSCRIBE, CNF_REQUIRED, v_Enable)); // @sic R5s150213 sic@ } //---------------------------------------------------------------------------- + /* + * @desc To receive a timezone report + * @param p_Port + * @param p_NITZ_Year + * @param p_NITZ_Month + * @param p_NITZ_Day + * @param p_NITZ_Hour + * @param p_NITZ_Minutes + * @param p_NITZ_Seconds + * @param p_NITZ_TimeZone + * @param p_DaylightSavingTime + * @status APPROVED (LTE, SSNITZ) + */ + function f_UT_AT_TriggerTimezoneReport(UT_PTC_MTC_PORT p_Port, + charstring p_NITZ_Year, + charstring p_NITZ_Month, + charstring p_NITZ_Day, + charstring p_NITZ_Hour, + charstring p_NITZ_Minutes, + charstring p_NITZ_Seconds, + charstring p_NITZ_TimeZone, + charstring p_DaylightSavingTime) + + { + var template (value) Ut_ParameterList_Type v_ParameterList; + v_ParameterList[0] := cs_Ut_Parameter_NITZ_Year(p_NITZ_Year); + v_ParameterList[1] := cs_Ut_Parameter_NITZ_Month(p_NITZ_Month); + v_ParameterList[2] := cs_Ut_Parameter_NITZ_Day(p_NITZ_Day); + v_ParameterList[3] := cs_Ut_Parameter_NITZ_Hour(p_NITZ_Hour); + v_ParameterList[4] := cs_Ut_Parameter_NITZ_Minutes(p_NITZ_Minutes); + v_ParameterList[5] := cs_Ut_Parameter_NITZ_Seconds(p_NITZ_Seconds); + v_ParameterList[6] := cs_Ut_Parameter_NITZ_TimeZone(p_NITZ_TimeZone); + v_ParameterList[7] := cs_Ut_Parameter_NITZ_DaylightSavingTime (p_DaylightSavingTime); + // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported + fl_UT_ApplyCommand(p_Port, cas_UT_Req(CTZE_DUMMY, CNF_REQUIRED, v_ParameterList), true); // @sic R5s140777, R5-153746 sic@ + } + /* * @desc To receive a timezone report * @param p_Port * @return charstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, SSNITZ) */ - function f_UT_AT_TimezoneReport(UT_PTC_MTC_PORT p_Port) return charstring + function f_UT_AT_CheckTimezoneReport(UT_PTC_MTC_PORT p_Port) return charstring { var UT_COMMON_CNF v_Cnf; - // v_Cnf := fl_UT_RetCnf(p_Port); - // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported - v_Cnf := fl_UT_ApplyCommandRetCnf (p_Port, cas_UT_Req(TIMEZONE_MULTIPLE, CNF_REQUIRED)); // @sic R5s140777 sic@ + v_Cnf := fl_UT_RetCnf (p_Port); // @sic R5s140777, R5-153746 sic@ return v_Cnf.ResultString; } //---------------------------------------------------------------------------- /* - * @desc To get the existing emergency numbers already in the UE + * @desc To dummy trigger MMI for a message waiting indication + * @param p_Port + */ + function f_UT_AT_TriggerMessageWaitInd(UT_PTC_MTC_PORT p_Port) + { + // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported + fl_UT_ApplyCommand (p_Port, cas_UT_Req(CMWN_DUMMY, CNF_REQUIRED), true); + } + + /* + * @desc To receive a message waiting indication + * @param p_Port + * @return charstring + */ + function f_UT_AT_CheckMessageWaitInd(UT_PTC_MTC_PORT p_Port) return charstring + { + var UT_COMMON_CNF v_Cnf; + + v_Cnf := fl_UT_RetCnf (p_Port); + return regexp (v_Cnf.ResultString, "*CMWN: (*)", 0); + } + + //---------------------------------------------------------------------------- + /* + * @desc To get the existing emergency numbers passed from the network + As this information is always available in the test case, this function is not currently used * @param p_Port * @return EmergencyNumList - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + * @status APPROVED (LTE) */ - function f_UT_GetEmergencyNumbers(UT_PTC_MTC_PORT p_Port) return EmergencyNumList +/* function f_UT_GetEmergencyNumbers(UT_PTC_MTC_PORT p_Port) return EmergencyNumList { var charstring v_Num; var charstring v_Answer; @@ -2282,7 +2471,7 @@ module UpperTesterFunctions { return v_ExistingNums; } - + */ //---------------------------------------------------------------------------- /* * @desc To trigger an HRPD PDN Connection @@ -2309,7 +2498,7 @@ module UpperTesterFunctions { /* * @desc To trigger non call related SS * @param p_Port - * @status APPROVED (UTRAN) + * @status APPROVED (SSNITZ, UTRAN) */ function f_UT_RequestNonCallRelatedSS(UT_PTC_MTC_PORT p_Port) { @@ -2320,53 +2509,55 @@ module UpperTesterFunctions { /* * @desc send coordination message to activate/deactivate supplementary service * @param p_Port - * @param p_Activate - * @param p_PublicUserIdentity * @param p_SupplementaryService + * @param p_Activate + * @param p_TargetURI (default value: omit) * @status APPROVED (IMS) */ function f_UT_IMS_ActivateDeactivateSupplementaryService(UT_PTC_MTC_PORT p_Port, + SS_Type p_SupplementaryService, boolean p_Activate, - charstring p_PublicUserIdentity, - SS_Type p_SupplementaryService) - { + template (omit) charstring p_TargetURI := omit) + { /* @sic R5s150244 change 2: p_PublicUserIdentity replace by template (omit) charstring p_TargetURI sic@ */ var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; + v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(fl_Convert_SS_Type (p_SupplementaryService)); if (p_Activate) { v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(tsc_UT_SS_ACTIVATE); } else { v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(tsc_UT_SS_DEACTIVATE); } - v_ParameterList[2] := cs_Ut_Parameter_Uri(p_PublicUserIdentity); - v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(fl_Convert_SS_Type (p_SupplementaryService)); + if (isvalue(p_TargetURI)) { + v_ParameterList[2] := cs_Ut_Parameter_Uri(valueof(p_TargetURI)); + } fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); } type enumerated SS_Type { SS_CLIP, SS_CLIR, SS_COLP, SS_TIR, SS_CNAP, SS_CALL_WAITING, SS_BAIC, SS_BAIC_ANONYMOUS, SS_BAIC_EXCEPT_SPECIFIC_USER, - SS_BIC_ROAM, SS_BAOC, SS_BOIC, SS_BOIC_EXHC, SS_ALL_BARRING_AB, SS_ALL_OUTGOING_BARRING_AG, SS_ALL_INCOMING_BARRING_AC, SS_BARRING_IN_AND_OUT_ROAM, - SS_CFU, SS_CFNRy, SS_CFB, SS_CFNL, SS_CFNRc, SS_CF_ALL, SS_CF_ALL_CONDITIONAL, SS_CD, SS_CDIVN, SS_USSD }; /* @status APPROVED (IMS) */ + SS_BIC_ROAM, SS_BAOC, SS_BOIC, SS_BOIC_EXHC, SS_ALL_BARRING_AB, SS_ALL_OUTGOING_BARRING_AG, SS_ALL_INCOMING_BARRING_AC, SS_BARRING_OUT_ROAM, // @sic R5-153995 sic@ + SS_CFU, SS_CFNRy, SS_CFB, SS_CFNL, SS_CFNRc, SS_CF_ALL, SS_CF_ALL_CONDITIONAL, SS_CD, SS_CDIVN, SS_USSD }; /* @status APPROVED (IMS, SSNITZ) */ type enumerated SS_Mode_Type {DEACTIVATE_MODE, ACTIVATE_MODE, QUERY_MODE, REGISTER_MODE, DELETE_MODE}; /* @status APPROVED (SSNITZ) */ - type enumerated SS_SERVICE_TYPE {SS_ALLSERVICES, SS_SPEECH, SS_SYNC} // There are others, but as not yet added as all UTRAN SS should only be relevant for speech - + type enumerated SS_SERVICE_TYPE {SS_ALLSERVICES, SS_SPEECH, SS_SYNC}; /* @status APPROVED (SSNITZ) + There are others, but as not yet added as all UTRAN SS should only be relevant for speech */ /* * @desc Converts the supplementary service service enum to a charstring * @param p_Service * @return charstring - * @status + * @status APPROVED (SSNITZ) */ function fl_Convert_SS_Service (SS_SERVICE_TYPE p_Service) return charstring { var charstring v_Service := "7"; select (p_Service) { - case (SS_SPEECH) { - v_Service := "1"; - } - case (SS_SYNC) { - v_Service := "17"; - } + case (SS_SPEECH) { + v_Service := "1"; + } + case (SS_SYNC) { + v_Service := "17"; + } } return v_Service; } @@ -2400,7 +2591,7 @@ module UpperTesterFunctions { * @desc Converts the supplementary service type enum to a charstring * @param p_SS_Type * @return charstring - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function fl_Convert_SS_Type (SS_Type p_SS_Type) return charstring { @@ -2438,8 +2629,8 @@ module UpperTesterFunctions { v_Type := tsc_UT_SS_ALL_OUTGOING_BARRING_SERVICES_AG; } case (SS_ALL_INCOMING_BARRING_AC) { v_Type := tsc_UT_SS_ALL_INCOMING_BARRING_SERVICES_AC; - } case (SS_BARRING_IN_AND_OUT_ROAM) { - v_Type := tsc_UT_SS_COMMUNICATION_BARRING_WHILE_ROAMING; + } case (SS_BARRING_OUT_ROAM) { // @sic R5-153995 sic@ + v_Type := tsc_UT_SS_OUTGOING_COMMUNICATION_BARRING_WHILE_ROAMING; } case (SS_CFU) { v_Type := tsc_UT_SS_CALL_FORWARDING_UNCONDITIONAL; } case (SS_CFNRy) { @@ -2486,17 +2677,64 @@ module UpperTesterFunctions { * @desc send coordination message to activate/deactivate supplementary service CNAP * @param p_Port * @param p_Mode - * @status + * @status APPROVED (SSNITZ) */ function f_UT_SupplementaryService_CNAP(UT_PTC_MTC_PORT p_Port, - SS_Mode_Type p_Mode) + SS_Mode_Type p_Mode) { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; + var Ut_CnfReq_Type v_Cnf := NO_CNF_REQUIRED; v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(fl_Convert_SS_Mode(p_Mode)); v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(tsc_UT_SS_CNAP); - fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); + if (p_Mode != QUERY_MODE) { // @sic R5s150084 sic@ + v_Cnf := CNF_REQUIRED; // @sic R5s150213 sic@ + } + + fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, v_Cnf, v_ParameterList)); + } + + /* + * @desc To check the UE displays the name provided + * @param p_Port + * @param p_ToDisplay + * @return boolean + * @status APPROVED (SSNITZ) + */ + function f_UT_ChkNameDisplayed(UT_PTC_MTC_PORT p_Port, + charstring p_ToDisplay) return boolean + { // To make the operator check the number/name of the call is displayed + // @sic R5s140990 sic@ + var charstring v_Result := ""; + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + v_Result := regexp (v_Cnf.ResultString, "*CNAP: (*),*", 0); + + return match (v_Result, p_ToDisplay); + } + + //---------------------------------------------------------------------------- + /* + * @desc To send MMI command to check the UE returns appropriate Call Forwarding response + * @param p_Port + */ + function f_UT_TriggerCallForwardResponse(UT_PTC_MTC_PORT p_Port) + { + fl_UT_ApplyCommand(p_Port, cas_UT_Req(CCFCU_DUMMY, + CNF_REQUIRED, + omit), + true); // don't wait for CNF at this point @sic R5-153746 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc To check the UE returns appropriate Call Forwarding response + * @param p_Port + */ + function f_UT_CheckCallForwardResponse(UT_PTC_MTC_PORT p_Port) return boolean + { + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + return v_Cnf.Result; } /* @@ -2505,8 +2743,9 @@ module UpperTesterFunctions { * @param p_Mode * @param p_CallForwardType * @param p_Number - * @param p_Time (used for CFNRy, default value: omit) - * @status + * @param p_Time (default value: omit; used for CFNRy) + * @param p_Service (default value: omit) + * @status APPROVED (SSNITZ) */ function f_UT_SupplementaryService_CallForward(UT_PTC_MTC_PORT p_Port, SS_Mode_Type p_Mode, @@ -2517,39 +2756,59 @@ module UpperTesterFunctions { { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; + var Ut_CnfReq_Type v_Cnf := NO_CNF_REQUIRED; var integer i:= 3; - + v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(fl_Convert_SS_Type(p_CallForwardType)); v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(fl_Convert_SS_Mode(p_Mode)); v_ParameterList[2] := cs_Ut_Parameter_Number(p_Number); if (isvalue(p_Service)) { - v_ParameterList[i] := cs_Ut_Parameter_Common ( "Service", fl_Convert_SS_Service (valueof(p_Service))); + v_ParameterList[i] := cs_Ut_Parameter_Common("Service", fl_Convert_SS_Service (valueof(p_Service))); i := i+1; } if (isvalue(p_Time)) { v_ParameterList[i] := cs_Ut_Parameter_SupplementaryServiceTime(valueof(p_Time)); } - fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); + if (p_Mode != QUERY_MODE) { // @sic R5s150084 sic@ + v_Cnf := CNF_REQUIRED; // @sic R5s150213 sic@ + } + fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, v_Cnf, v_ParameterList)); } + /* + * @desc + * @param p_Port + * @param p_Mode + * @param p_Service (default value: SS_ALLSERVICES) + * @status APPROVED (SSNITZ) + */ function f_UT_SupplementaryService_CallWaiting(UT_PTC_MTC_PORT p_Port, - SS_Mode_Type p_Mode, - SS_SERVICE_TYPE p_Service := SS_ALLSERVICES) + SS_Mode_Type p_Mode, + SS_SERVICE_TYPE p_Service := SS_ALLSERVICES) { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; - v_ParameterList[2] := cs_Ut_Parameter_Common ( "Service", fl_Convert_SS_Service (p_Service)); + v_ParameterList[2] := cs_Ut_Parameter_Common("Service", fl_Convert_SS_Service(p_Service)); v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(fl_Convert_SS_Mode(p_Mode)); v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(tsc_UT_SS_CALL_WAITING); fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); } + /* + * @desc To trigger Call Barring SS + * @param p_Port + * @param p_Mode + * @param p_CallBarringType + * @param p_NewPassword (default value: omit) + * @param p_Service (default value: omit) + * @status APPROVED (SSNITZ) + */ function f_UT_SupplementaryService_CallBarring(UT_PTC_MTC_PORT p_Port, - SS_Mode_Type p_Mode, - SS_Type p_CallBarringType, - template (omit) charstring p_NewPassword := omit, - template (omit) SS_SERVICE_TYPE p_Service := omit) + SS_Mode_Type p_Mode, + SS_Type p_CallBarringType, + template (omit) charstring p_NewPassword := omit, + template (omit) SS_SERVICE_TYPE p_Service := omit) { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; @@ -2571,7 +2830,10 @@ module UpperTesterFunctions { /* * @desc To trigger SS to change password * @param p_Port - * @status + * @param p_CallBarringType + * @param p_OldPassword + * @param p_NewPassword + * @status APPROVED (SSNITZ) */ function f_UT_SS_ChangePassword(UT_PTC_MTC_PORT p_Port, SS_Type p_CallBarringType, @@ -2593,9 +2855,9 @@ module UpperTesterFunctions { /* * @desc To send SS USSD * @param p_Port - * @param p_USSDString + * @param p_USSDString (default value: "Network Triggered") * @param p_CnfRequired (default: CNF_REQUIRED) Only set to NO_CNF_REQUIRED in 15.9.5 when UE to answer SS message - * @status + * @status APPROVED (SSNITZ) */ function f_UT_SupplementaryService_SendUSSD(UT_PTC_MTC_PORT p_Port, charstring p_USSDString := "Network Triggered", @@ -2607,12 +2869,12 @@ module UpperTesterFunctions { v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(tsc_UT_SS_USSD); v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(tsc_UT_SS_ACTIVATE); - v_ParameterList[2] := cs_Ut_Parameter_USSD(p_USSDString); + v_ParameterList[2] := cs_Ut_Parameter_USSD(""""& p_USSDString &""""); // @sic R5s150603 sic@ if (p_USSDString == "Network Triggered") { v_DontWaitForCnf := true; } - + fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, p_CnfRequired, v_ParameterList), v_DontWaitForCnf); } @@ -2630,11 +2892,10 @@ module UpperTesterFunctions { /* * @desc SS to trigger release of held call (actually uses AT command call hold = 0) * @param p_Port - * @status + * @status APPROVED (SSNITZ) */ function f_UT_CallHoldRelease(UT_PTC_MTC_PORT p_Port) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(CALL_HOLD_RELEASE, NO_CNF_REQUIRED, omit)); } @@ -2643,7 +2904,7 @@ module UpperTesterFunctions { * @desc To trigger SS call hold * @param p_Port * @param p_CallToHold (default value: omit) - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function f_UT_CallHold(UT_PTC_MTC_PORT p_Port, template (omit) integer p_CallToHold := omit) @@ -2660,7 +2921,7 @@ module UpperTesterFunctions { * @desc To trigger SS call resume (actually uses AT command call hold) * @param p_Port * @param p_CallToHold (default value: omit) - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function f_UT_CallResume(UT_PTC_MTC_PORT p_Port, template (omit) integer p_CallToHold := omit) @@ -2676,7 +2937,7 @@ module UpperTesterFunctions { /* * @desc To trigger SS Multiparty call (actually uses AT command call hold) * @param p_Port - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function f_UT_CallMPTY(UT_PTC_MTC_PORT p_Port) { @@ -2687,7 +2948,7 @@ module UpperTesterFunctions { /* * @desc To trigger SS Explicit Call Transfer (actually uses AT command call hold) * @param p_Port - * @status + * @status APPROVED (SSNITZ) */ function f_UT_ExplicitCallTransfer(UT_PTC_MTC_PORT p_Port) { @@ -2704,5 +2965,19 @@ module UpperTesterFunctions { { fl_UT_ApplyCommand(p_Port, cas_UT_Req(DEREGISTER, NO_CNF_REQUIRED)); // @sic R5-134290 sic@ } + //---------------------------------------------------------------------------- + /* + * @desc Invite UE to Conference Call, used in IMS conference test + * @param p_Port + * @param p_ReferToUri + * @status APPROVED (IMS) + */ + function f_UT_InviteToConference(UT_PTC_MTC_PORT p_Port, + charstring p_ReferToUri) + { + var template (value) Ut_ParameterList_Type v_ParameterList; + v_ParameterList[0] := cs_Ut_Parameter_Uri(p_ReferToUri); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(INVITE_TO_CONFERENCE, NO_CNF_REQUIRED, v_ParameterList)); + } } diff --git a/LTE_A_IWD_14wk37/Common/Common/UpperTesterPtcToMtcDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/Common/UpperTesterPtcToMtcDefs.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/Common/UpperTesterPtcToMtcDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/Common/UpperTesterPtcToMtcDefs.ttcn index aa25a95..fe9e143 100644 --- a/LTE_A_IWD_14wk37/Common/Common/UpperTesterPtcToMtcDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/Common/UpperTesterPtcToMtcDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ // Common type definitions, e.g. being used in ASP definitions as well as for NAS //------------------------------------------------------------------------------ @@ -31,6 +31,7 @@ module UpperTesterPtcToMtcDefs { CALL_RESUME, CALL_MPTY, CALL_ECT, + CCFCU_DUMMY, CHECK_CALL_DISPLAY, CHECK_CSG, CHECK_CLOCK, @@ -55,9 +56,13 @@ module UpperTesterPtcToMtcDefs { CHECK_NITZ_SHORT_NETWORK_NAME, CHECK_NITZ_UT, CLEAR_STORED_ASSISTANCE_DATA, + CMTLR_DUMMY, + CMWN_DUMMY, + CNAP_DUMMY, CONFIGURE_CEMODE, CONFIGURE_OPERATIONMODE, CONFIGURE_SMS_ONLY, + CTZE_DUMMY, DEACTIVATE_BEARER, DEFINE_EPS_QOS, DEFINE_QOS, @@ -71,11 +76,13 @@ module UpperTesterPtcToMtcDefs { GET_EMERGENCY_NUMS_1, GET_EMERGENCY_NUMS_2, HRPD_PDN_CONNECTION, + IMS_CONFIGURE_VIDEO_CALL, + IMS_MODIFY_CALL, INITIATE_VIDEO_CALL, + INVITE_TO_CONFERENCE, INSERT_USIM, LOCATION_ANSWER, LOCATION_INFO, - LOCATION_MULTIPLE, LOCATION_SUBSCRIBE, MBMS_PRIORITY_OVER_UNICAST, MBMS_SERVICE_ACTIVE, @@ -91,7 +98,6 @@ module UpperTesterPtcToMtcDefs { RELEASE_CALL, RELEASE_IMS_CALL, REMOVE_USIM, - REMOVE_VIDEO_CALL, REQUEST_CALL, REQUEST_DED_BEARER, REQUEST_IMS_EMERGENCY_CALL, @@ -110,7 +116,7 @@ module UpperTesterPtcToMtcDefs { SWITCH_OFF, SWITCH_ON, TIMEZONE_SUBSCRIBE, - TIMEZONE_MULTIPLE, + TIMEZONE_UPDATE, TRIGGER_2ND_IMPU, TRIGGER_3RD_IMPU, TRIGGER_MOLR, @@ -123,13 +129,13 @@ module UpperTesterPtcToMtcDefs { const charstring tsc_UT_SS_CLIP := "ORIGINATING IDENTIFICATION PRESENTATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CLIR := "ORIGINATING IDENTIFICATION RESTRICTION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_COLP := "TERMINATING IDENTIFICATION PRESENTATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_TERMINATING_IDENTIFICATION_RESTRICTION := "TERMINATING IDENTIFICATION RESTRICTION"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_TERMINATING_IDENTIFICATION_RESTRICTION := "TERMINATING IDENTIFICATION RESTRICTION"; /* @status APPROVED (IMS, SSNITZ) */ const charstring tsc_UT_SS_CNAP := "CALLING NAME PRESENTATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CALL_WAITING := "CALL WAITING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING := "INCOMING COMMUNICATION BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_ANONYMOUS := "INCOMING COMMUNICATION BARRING ANONYMOUS"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_ANONYMOUS := "INCOMING COMMUNICATION BARRING ANONYMOUS"; /* @status APPROVED (IMS, SSNITZ) */ const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_ROAMING := "INCOMING COMMUNICATION BARRING WHILE ROAMING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_COMMUNICATION_BARRING_WHILE_ROAMING := "COMMUNICATION BARRING WHILE ROAMING"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_OUTGOING_COMMUNICATION_BARRING_WHILE_ROAMING := "OUTGOING COMMUNICATION BARRING WHILE ROAMING"; /* @status APPROVED (IMS, SSNITZ) @sic R5-153995 sic@*/ const charstring tsc_UT_SS_OUTGOING_COMMUNICATION_BARRING := "OUTGOING COMMUNICATION BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_OUTGOING_INTERNATIONAL_BARRING := "OUTGOING INTERNATIONAL BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_OUTGOING_INTERNATIONAL_EX_HC_BARRING := "OUTGOING INTERNATIONAL EXCEPT HOME COUNTRY BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -145,7 +151,7 @@ module UpperTesterPtcToMtcDefs { const charstring tsc_UT_SS_CALL_FORWARDING_ALL_CONDITIONAL := "ALL CONDITIONAL CALL FORWARDING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CALL_FORWARDING_DEFLECTION := "COMMUNICATION DEFLECTION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CALL_FORWARDING_DIVERSION_NOTIFICATION := "COMMUNICATION DIVERSION NOTIFICATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_EXCEPT_SPECIFIC_USER := "INCOMING COMMUNICATION BARRING EXCEPT SPECIFIC USER"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_EXCEPT_SPECIFIC_USER := "INCOMING COMMUNICATION BARRING EXCEPT SPECIFIC USER"; /* @status APPROVED (IMS, SSNITZ) */ const charstring tsc_UT_SS_ALL_CALL_TYPES := "ALL CALL TYPES"; const charstring tsc_UT_SS_CALL_TYPE_VOICE := "CALL TYPE VOICE"; const charstring tsc_UT_SS_USSD := "USSD"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -183,6 +189,9 @@ module UpperTesterPtcToMtcDefs { // ----------------------------------------------------------------------------- //Templates: + const integer tsc_NumberingPlan_Int := 145; /* @status APPROVED (SSNITZ) + integer representation of type of number and numbering plan octet in 24.008 10.5.4.7. @sic R5s150538 sic@ */ + template (value) Ut_ParameterList_Type cs_EPSBearerParams ( charstring p_Id, charstring p_Type, charstring p_AccessPointName, diff --git a/IMS_PART4_IWD_14wk37/Common/CommonIP/CommonIP.ttcn b/IMS_PART4_IWD_15wk38/Common/CommonIP/CommonIP.ttcn similarity index 83% rename from IMS_PART4_IWD_14wk37/Common/CommonIP/CommonIP.ttcn rename to IMS_PART4_IWD_15wk38/Common/CommonIP/CommonIP.ttcn index f222ac6..0bf4fa9 100644 --- a/IMS_PART4_IWD_14wk37/Common/CommonIP/CommonIP.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/CommonIP/CommonIP.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:44:18 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12148 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module CommonIP { @@ -15,18 +15,18 @@ module CommonIP { import from Parameters all; const UInt8_Type tsc_IP_Protocol_ICMP := 1; /* @status APPROVED (LTE, LTE_IRAT) */ - const UInt8_Type tsc_IP_Protocol_UDP := 17; /* @status APPROVED (LTE) */ + const UInt8_Type tsc_IP_Protocol_UDP := 17; /* @status APPROVED (LTE, UTRAN) */ const UInt8_Type tsc_ICMP_Type_EchoReply := 0; /* @status APPROVED (LTE, LTE_IRAT) */ const UInt8_Type tsc_ICMPv6_Type_EchoReply := 129; /* @status APPROVED (LTE, LTE_IRAT) */ const UInt8_Type tsc_ICMP_Type_EchoRequest := 8; - const UInt8_Type tsc_IP_Protocol_TCP := 6; /* @status APPROVED (LTE) */ - const UInt8_Type tsc_IP_Protocol_IPSec := 50; /* @status APPROVED (LTE) */ + const UInt8_Type tsc_IP_Protocol_TCP := 6; /* @status APPROVED (LTE, UTRAN) */ + const UInt8_Type tsc_IP_Protocol_IPSec := 50; /* @status APPROVED (LTE, UTRAN) */ const UInt8_Type tsc_IP_Protocol_ICMPv6 := 58; /* @status APPROVED (LTE, LTE_IRAT) */ const integer tsc_IMS_PortNumber_5060 := 5060; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - const octetstring tsc_IP_AnyData := '00112233445566778899AABBCCDDEEFF'O; /* @status APPROVED (LTE, LTE_IRAT) */ + const octetstring tsc_IP_AnyData := '00112233445566778899AABBCCDDEEFF'O; /* @status APPROVED (LTE, LTE_IRAT, UTRAN) */ - type record PDN_AddressInfo_Type /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + type record PDN_AddressInfo_Type /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { charstring UE_IPAddressIPv4, charstring UE_IPAddressIPv6, @@ -38,10 +38,12 @@ module CommonIP { charstring PCSCF_IPAddressIPv6, //charstring PCSCF_DomainName, charstring DNS_ServerAddressIPv4, - charstring DNS_ServerAddressIPv6 + charstring DNS_ServerAddressIPv6, + charstring XCAP_ServerAddressIPv4, /* @sic R5s141051 change 8 sic@ */ + charstring XCAP_ServerAddressIPv6 /* @sic R5s141051 change 8 sic@ */ }; - const PDN_AddressInfo_Type tsc_PDN1_AddressInfo := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + const PDN_AddressInfo_Type tsc_PDN1_AddressInfo := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ UE_IPAddressIPv4 := px_IPv4_Address1_UE, UE_IPAddressIPv6 := px_IPv6_Address1_UE, Remote_IPAddressIPv4 := px_IPv4_Address1_RemoteUE, @@ -51,7 +53,9 @@ module CommonIP { PCSCF_IPAddressIPv4 := px_IPv4_Address1_NW, PCSCF_IPAddressIPv6 := px_IPv6_Address1_NW, DNS_ServerAddressIPv4 := px_IPv4_Address1_NW, - DNS_ServerAddressIPv6 := px_IPv6_Address1_NW + DNS_ServerAddressIPv6 := px_IPv6_Address1_NW, + XCAP_ServerAddressIPv4 := px_IPv4_Address1_NW, /* @sic R5s141051 change 8 sic@ */ + XCAP_ServerAddressIPv6 := px_IPv6_Address1_NW /* @sic R5s141051 change 8 sic@ */ }; const PDN_AddressInfo_Type tsc_PDN2_AddressInfo := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ UE_IPAddressIPv4 := px_IPv4_Address2_UE, @@ -63,34 +67,54 @@ module CommonIP { PCSCF_IPAddressIPv4 := px_IPv4_Address2_NW, PCSCF_IPAddressIPv6 := px_IPv6_Address2_NW, DNS_ServerAddressIPv4 := px_IPv4_Address2_NW, - DNS_ServerAddressIPv6 := px_IPv6_Address2_NW + DNS_ServerAddressIPv6 := px_IPv6_Address2_NW, + XCAP_ServerAddressIPv4 := px_IPv4_Address2_NW, /* @sic R5s141051 change 8 sic@ */ + XCAP_ServerAddressIPv6 := px_IPv6_Address2_NW /* @sic R5s141051 change 8 sic@ */ }; const PDN_AddressInfo_Type tsc_PDN_AddressInfo[2] := { tsc_PDN1_AddressInfo, tsc_PDN2_AddressInfo}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + /* - * @desc return PDN_AddressInfo corresponding to the given PdnIndex + * @desc return index of the IP address or IMS server corresponding to the given PdnIndex * @param p_PdnIndex - * @return PDN_AddressInfo_Type + * @return integer * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function f_PDN_AddressInfo_Get(PDN_Index_Type p_PdnIndex) return PDN_AddressInfo_Type + function f_PDN_PdnIndex2Integer(PDN_Index_Type p_PdnIndex) return integer { /* PDN_2a to support change of the IP address for IMS test case 19.5.1 */ - var PDN_AddressInfo_Type v_PDN_AddressInfo; + /* @sic R5s150031: fl_IP_ServerIndex -> f_PDN_PdnIndex2Integer sic@ */ var integer v_Index; - select (p_PdnIndex) { - case (PDN_1, PDN_2, PDN_Internet) { - v_Index := enum2int(p_PdnIndex); - v_PDN_AddressInfo := tsc_PDN_AddressInfo[v_Index]; + case (PDN_1) { + v_Index := 0; } - case (PDN_2a) { - FatalError(__FILE__, __LINE__, "PDN_2a is not supported yet"); + case (PDN_2, PDN_2a, PDN_Internet) { + v_Index := 1; } case else { FatalError(__FILE__, __LINE__, "Invalid PDN index"); } } + return v_Index; + } + + /* + * @desc return PDN_AddressInfo corresponding to the given PdnIndex + * @param p_PdnIndex + * @return PDN_AddressInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_PDN_AddressInfo_Get(PDN_Index_Type p_PdnIndex) return PDN_AddressInfo_Type + { /* PDN_2a to support change of the IP address for IMS test case 19.5.1 */ + var PDN_AddressInfo_Type v_PDN_AddressInfo; + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); + + v_PDN_AddressInfo := tsc_PDN_AddressInfo[v_Index]; + if (p_PdnIndex == PDN_2a) { + v_PDN_AddressInfo.UE_IPAddressIPv4 := px_IPv4_Address2a_UE; /* @sic implementation of IMS TC_19_5_1 sic@ */ + v_PDN_AddressInfo.UE_IPAddressIPv6 := px_IPv6_Address2a_UE; /* @sic implementation of IMS TC_19_5_1 sic@ */ + } return v_PDN_AddressInfo; } @@ -112,7 +136,7 @@ module CommonIP { * @desc Check whether given string is IPv6 address * @param p_IpAddress * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IpAddressIsIPv6(charstring p_IpAddress) return boolean { @@ -129,7 +153,7 @@ module CommonIP { for (i:=0; i 4) { return false; } if (not match(v_Field, pattern v_Pattern)) { return false; } @@ -143,7 +167,7 @@ module CommonIP { * e.g. "10.11.12.13" results in '0A0B0C0D'O * @param p_IPv4AddrChar * @return O4_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Convert_IPv4Addr2OctString(charstring p_IPv4AddrChar) return O4_Type { @@ -171,7 +195,7 @@ module CommonIP { * E.g. "2001::1" results in '20010000000000000000000000000001'O * @param p_IPv6AddrChar * @return O16_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Convert_IPv6Addr2OctString(charstring p_IPv6AddrChar) return O16_Type { @@ -229,7 +253,7 @@ module CommonIP { * @param p_Addr1 * @param p_Addr2 * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IPAddresses_Compare(charstring p_Addr1, charstring p_Addr2) return boolean diff --git a/IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn b/IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn new file mode 100644 index 0000000..a4b2788 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn @@ -0,0 +1,235 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-06-17 14:41:28 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13929 $ +/******************************************************************************/ + +module EPS_NAS_Constants { + + import from CommonDefs all; + import from NAS_CommonTypeDefs all; + import from EPS_NAS_TypeDefs all; + + const SecurityHeaderType tsc_SHT_NoSecurityProtection := '0000'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected := '0001'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected_Ciphered := '0010'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected_NewSecurityContext := '0011'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext := '0100'B; + const SecurityHeaderType tsc_SHT_ServiceRequest := '1100'B; + + const ProtocolDiscriminator tsc_PD_EMM := '0111'B; // from CR C1-085163 for 24.007 + const ProtocolDiscriminator tsc_PD_ESM := '0010'B; // from CR C1-085163 for 24.007 + + // NAS message types acc. 24.301 cl.9.8 + const MessageType tsc_MT_AttachRequest := '01000001'B; + const MessageType tsc_MT_AttachAccept := '01000010'B; + const MessageType tsc_MT_AttachComplete := '01000011'B; + const MessageType tsc_MT_AttachReject := '01000100'B; + const MessageType tsc_MT_DetachRequest := '01000101'B; + const MessageType tsc_MT_DetachAccept := '01000110'B; + const MessageType tsc_MT_TauRequest := '01001000'B; + const MessageType tsc_MT_TauAccept := '01001001'B; + const MessageType tsc_MT_TauComplete := '01001010'B; + const MessageType tsc_MT_TauReject := '01001011'B; + const MessageType tsc_MT_ExtServiceRequest := '01001100'B; + const MessageType tsc_MT_ServiceReject := '01001110'B; + const MessageType tsc_MT_GutiReallocCommand := '01010000'B; + const MessageType tsc_MT_GutiReallocComplete := '01010001'B; + const MessageType tsc_MT_AuthenticationRequest := '01010010'B; + const MessageType tsc_MT_AuthenticationResponse := '01010011'B; + const MessageType tsc_MT_AuthenticationReject := '01010100'B; + const MessageType tsc_MT_AuthenticationFailure := '01011100'B; + const MessageType tsc_MT_IdentityRequest := '01010101'B; + const MessageType tsc_MT_IdentityResponse := '01010110'B; + const MessageType tsc_MT_SecurityModeCommand := '01011101'B; + const MessageType tsc_MT_SecurityModeComplete := '01011110'B; + const MessageType tsc_MT_SecurityModeReject := '01011111'B; + const MessageType tsc_MT_EmmStatus := '01100000'B; + const MessageType tsc_MT_EmmInfo := '01100001'B; + const MessageType tsc_MT_DL_NASTransport := '01100010'B; + const MessageType tsc_MT_UL_NASTransport := '01100011'B; + const MessageType tsc_MT_CSServiceNotification := '01100100'B; + const MessageType tsc_MT_DL_GenericNASTransport := '01101000'B; + const MessageType tsc_MT_UL_GenericNASTransport := '01101001'B; + + const MessageType tsc_MT_ActivateDefaultEpsBearerContextRequest := '11000001'B; + const MessageType tsc_MT_ActivateDefaultEpsBearerContextAccept := '11000010'B; + const MessageType tsc_MT_ActivateDefaultEpsBearerContextReject := '11000011'B; + const MessageType tsc_MT_ActivateDedicatedEpsBearerContextRequest := '11000101'B; + const MessageType tsc_MT_ActivateDedicatedEpsBearerContextAccept := '11000110'B; + const MessageType tsc_MT_ActivateDedicatedEpsBearerContextReject := '11000111'B; + const MessageType tsc_MT_ModifyEpsBearerContextRequest := '11001001'B; + const MessageType tsc_MT_ModifyEpsBearerContextAccept := '11001010'B; + const MessageType tsc_MT_ModifyEpsBearerContextReject := '11001011'B; + const MessageType tsc_MT_DeactivateEpsBearerContextRequest := '11001101'B; + const MessageType tsc_MT_DeactivateEpsBearerContextAccept := '11001110'B; + const MessageType tsc_MT_PdnConnectivityRequest := '11010000'B; + const MessageType tsc_MT_PdnConnectivityReject := '11010001'B; + const MessageType tsc_MT_PdnDisconnectRequest := '11010010'B; + const MessageType tsc_MT_PdnDisconnectReject := '11010011'B; + const MessageType tsc_MT_BearerResourceAllocationRequest := '11010100'B; + const MessageType tsc_MT_BearerResourceAllocationReject := '11010101'B; + const MessageType tsc_MT_BearerResourceModificationRequest := '11010110'B; + const MessageType tsc_MT_BearerResourceModificationReject := '11010111'B; + const MessageType tsc_MT_EsmInformationRequest := '11011001'B; + const MessageType tsc_MT_EsmInformationResponse := '11011010'B; + const MessageType tsc_MT_EsmStatus := '11101000'B; + const MessageType tsc_MT_EsmNotification := '11011011'B; + + + const B8_Type tsc_SRVCC_HO_Canceled := '00000001'B; + + const IEI8_Type tsc_IEI_Guti := '50'O; // The same IEI value is used throughout 24.301 + + const ProcedureTransactionIdentifier tsc_PTI_1 := '01'O; + + const HalfOctet_Type tsc_EpsDefaultBearerId := '5'H; // EPS bearer identity (24.301 cl. 9.3.2); + const HalfOctet_Type tsc_EpsDefaultBearerId2ndPDN := 'C'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId := '6'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId2 := '7'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId3 := '8'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId4 := '9'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId5 := 'A'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId6 := 'B'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId7 := 'C'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId8 := 'D'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId9 := 'E'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId10 := 'F'H; + + const NAS_AttDetValue_Type tsc_EAttachType_EpsOnly := '001'B; + const NAS_AttDetValue_Type tsc_EAttachType_Combined := '010'B; + const NAS_AttDetValue_Type tsc_EAttachType_Emergency := '110'B; + + const EPS_UpdateTypeValue tsc_EpsUpdate_TaUpdate := '000'B; // TA updating + const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate := '001'B; // Combined TA/LA updating + const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_IMSIAttach := '010'B; // combined TA/LA updating with IMSI attach + const EPS_UpdateTypeValue tsc_EpsUpdate_Periodic := '011'B; // Periodic updating + const EPS_UpdateTypeValue tsc_EpsUpdate_TaLaUpdate_ISRActivated := '100'B; // TA updating with ISR activated + const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate_ISRActivated := '101'B; // Combined TA/LA updating with ISR activated + + const B1_Type tsc_EpsUpdate_Active := '1'B; + const B1_Type tsc_EpsUpdate_NotActive := '0'B; + + // GprsOnly & EpsOnly share the same value + const NAS_AttDetValue_Type tsc_DetachMO_GprsOnly := '001'B; + const NAS_AttDetValue_Type tsc_DetachMO_EpsOnly := '001'B; + const NAS_AttDetValue_Type tsc_DetachMO_Imsi := '010'B; + const NAS_AttDetValue_Type tsc_DetachMO_Combined := '011'B; + const NAS_AttDetValue_Type tsc_DetachMT_ReAttach := '001'B; + const NAS_AttDetValue_Type tsc_DetachMT_NoReAttach := '010'B; + const NAS_AttDetValue_Type tsc_DetachMT_Imsi := '011'B; + + const NAS_CauseValue_Type tsc_EmmCause_UnknownIMSI := '00000010'B; + const NAS_CauseValue_Type tsc_EmmCause_IllegalUe := '00000011'B; + const NAS_CauseValue_Type tsc_EmmCause_IllegalMe := '00000110'B; + const NAS_CauseValue_Type tsc_Cause_IMEINotAccepted := '00000101'B; + const NAS_CauseValue_Type tsc_Cause_EPSServNotAllowed := '00000111'B; + const NAS_CauseValue_Type tsc_Cause_EPSandNonEPSServNotAllowed := '00001000'B; + const NAS_CauseValue_Type tsc_EmmCause_UEIdentityNotDerived := '00001001'B; + const NAS_CauseValue_Type tsc_EmmCause_ImplicitlyDetached := '00001010'B; + const NAS_CauseValue_Type tsc_Cause_TA_NotAllowed := '00001100'B; + const NAS_CauseValue_Type tsc_Cause_Roaming_NotAllowed := '00001101'B; + const NAS_CauseValue_Type tsc_Cause_PLMN_NotAllowed := '00001011'B; + const NAS_CauseValue_Type tsc_Cause_EPSServNotAllowedInThisPLMN := '00001110'B; + const NAS_CauseValue_Type tsc_Cause_NoSuitableCells := '00001111'B; + const NAS_CauseValue_Type tsc_EmmCause_MSCnotReachable := '00010000'B; + const NAS_CauseValue_Type tsc_EmmCause_NetworkFailure := '00010001'B; + const NAS_CauseValue_Type tsc_Cause_CSDomainNotAvailable := '00010010'B; + const NAS_CauseValue_Type tsc_Cause_ESMFailure := '00010011'B; + const NAS_CauseValue_Type tsc_Cause_MAC_Failure := '00010100'B; // #20 + const NAS_CauseValue_Type tsc_Cause_SQN_Failure := '00010101'B; // #21 + const NAS_CauseValue_Type tsc_Cause_Congestion := '00010110'B; + const NAS_CauseValue_Type tsc_UeSecurityCapsMismatch := '00010111'B; + const NAS_CauseValue_Type tsc_SecurityModeRejUnspecified := '00011000'B; + const NAS_CauseValue_Type tsc_Cause_NotAuthorizedCSG := '00011001'B; + const NAS_CauseValue_Type tsc_Cause_nonEPS_AuthUnacceptable := '00011010'B; // #26 + const NAS_CauseValue_Type tsc_EmmCause_CsFbCallEstNotAllowed := '00100110'B; // @desc EMM Cause: CS fallback call establishment not allowed. + const NAS_CauseValue_Type tsc_Cause_CSDomainNotTemporarilyAvailable := '00100111'B; // #39 'CS domain temporarily not available' + const NAS_CauseValue_Type tsc_Cause_NoEPSBearerActive := '00101000'B; // #40 + const NAS_CauseValue_Type tsc_EmmCause_SemanticallyIncorrect := '01011111'B; + const NAS_CauseValue_Type tsc_EmmCause_InvalidMandatoryInformation := '01100000'B; + const NAS_CauseValue_Type tsc_EmmCause_MessageTypeNonExistentOrNotImplemented := '01100001'B; + const NAS_CauseValue_Type tsc_EmmCause_IENonExistentOrNotImplemented := '01100011'B; + const NAS_CauseValue_Type tsc_EmmCause_ProtocolErrorUnspecified := '01101111'B; + + const NAS_KsiValue tsc_NasKsi_NoKey := '111'B; + const B1_Type tsc_NasKsi_NativeSecurityContext := '0'B; + const B1_Type tsc_NasKsi_MappedSecurityContext := '1'B; + + const B3_Type tsc_PdnRequest_InitialAttach := '001'B; + const B3_Type tsc_PdnRequest_Handover := '010'B; + const B3_Type tsc_PdnRequest_Emergency := '100'B; + + // PLMN identities acc. to 36.508 Table 6.3.2.2-1 + const NAS_PlmnId tsc_PLMN1 := '00F110'O; // @desc NAS PLMN ID (MCC=001, MNC= 01) for NAS Cell(s) A-F,M. + const NAS_PlmnId tsc_PLMN2 := '00F120'O; // @desc NAS PLMN ID (MCC=001, MNC= 02) for NAS Cell(s) G,H. + const NAS_PlmnId tsc_PLMN3 := '001201'O; // @desc NAS PLMN ID (MCC=002, MNC=101) for NAS Cell(s) I,K,L. + const NAS_PlmnId tsc_PLMN4 := '001301'O; // @desc NAS PLMN ID (MCC=003, MNC=101) for NAS Cell(s) J. + + const EPS_MmeGi tsc_MMEGI1 := '0001'O; + const EPS_MmeGi tsc_MMEGI2 := '0002'O; + const EPS_MmeGi tsc_MMEGI3 := '0003'O; + const EPS_MmeGi tsc_MMEGI4 := '0004'O; + const EPS_MmeGi tsc_MMEGI5 := '0005'O; + const EPS_MmeGi tsc_MMEGI6 := '0006'O; + const EPS_MmeGi tsc_MMEGI7 := '0007'O; + const EPS_MmeGi tsc_MMEGI8 := '0008'O; + const EPS_MmeGi tsc_MMEGI9 := '0009'O; + const EPS_MmeGi tsc_MMEGI10 := '000A'O; + + const EPS_Mmec tsc_MMEC1to10 := '01'O; + + const NAS_Tac tsc_TAC1 := '0001'O; + const NAS_Tac tsc_TAC2 := '0002'O; + const NAS_Tac tsc_TAC3 := '0003'O; + const NAS_Tac tsc_TAC4 := '0004'O; + const NAS_Tac tsc_TAC5 := '0005'O; + const NAS_Tac tsc_TAC6 := '0006'O; + + const EPS_PartialTaiListType tsc_NonConsecutiveTacs := '00'B; + const EPS_PartialTaiListType tsc_ConsecutiveTacs := '01'B; + const EPS_PartialTaiListType tsc_MultiplePlmns := '10'B; + + const EPS_ServiceTypeValue tsc_EST_CsFallback_MO := '0000'B; // @desc Service Type: Mobile originating CS fallback or 1xCS fallback. + const EPS_ServiceTypeValue tsc_EST_CsFallback_MT := '0001'B; // @desc Service Type: Mobile terminating CS fallback or 1xCS fallback. + const EPS_ServiceTypeValue tsc_EST_CsFallback_EC := '0010'B; // @desc Service Type: Mobile originating CS fallback emergency call or 1xCS fallback emergency call. + + const ProcedureTransactionIdentifier tsc_PTI_Unassigned := '00'O; // TS 24.007 clause 11.2.3.1a + + const octetstring tsc_APN1 := '0541504E2D31'O; /* Access Point Name APN-1; + @status APPROVED (LTE) */ + const charstring tsc_APN1_String := "APN-1"; /* Access Point Name APN-1; @sic R5s100466 sic@ + @status APPROVED (LTE) */ + const octetstring tsc_APN2 := '0541504E2D32'O; /* Access Point Name APN-2; + @status APPROVED (LTE) */ + const charstring tsc_APN2_String := "APN-2"; /* Access Point Name APN-2; @sic R5s100748 sic@ + @status APPROVED (LTE) */ + const octetstring tsc_APN3 := '0541504E2D33'O; /* Access Point Name APN-3; + @status */ + const charstring tsc_APN3_String := "APN-3"; /* Access Point Name APN-3; @sic R5-143213 sic@ + @status */ + + const B8_Type tsc_ESM_Cause36_RegularDeactivation := '00100100'B; // @sic R5s141315 ch. 7 sic@ + const B8_Type tsc_ESM_Cause26_InsufficientResources := '00011010'B; + + + const float tsc_WaitforAttach := 1.5; // @sic R5s130634 sic@ + + //---------------------------------------------------------------------------- + /* + * @desc calculation of DRB_Identity associated to EpsBearerId + * @param p_EpsBearerId + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_EpsBearerAssociatedDRB(HalfOctet_Type p_EpsBearerId) return integer + { /* @sic R5s141351 change 5: returns integer instead of DRB_Identity sic@ */ + return (hex2int(p_EpsBearerId) - 4); + } + +} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn index 53109b1..dd2b890 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-04-09 21:44:58 +0200 (Tue, 09 Apr 2013) $ -// $Rev: 8515 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 16:58:12 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13504 $ /******************************************************************************/ module EPS_NAS_TypeDefs { @@ -23,10 +23,8 @@ import from NAS_CommonTypeDefs all; type B4_Type SecurityHeaderType; /* 24.301 cl. 9.3.1 */ type HalfOctet_Type EPS_BearerIdentity; /* 24.301 cl. 9.3.2 */ type Octet_Type ProcedureTransactionIdentifier; /* 24.301 cl. 9.4 */ -type O4_Type MessageAuthenticationCode; /* 24.301 cl. 9.5 */ type Octet_Type NAS_SequenceNumber; /* 24.301 cl. 9.6 */ -type O4_Type NasCount_Type; // Note: This IE is not needed when SECURITY PROTECTED NAS MESSAGE is // handled by the NAS emulation An alternative approach would be to @@ -139,7 +137,8 @@ type record ATTACH_ACCEPT { /* 24.301 cl. 8.2. EmergNumList emergencyNumberList optional, /* cl. 9.9.3.37 O TLV 5-50 IEI=0x34 */ EPS_NetworkFeatureSupport epsNetworkFeatureSupport optional, /* cl.9.9.3.12A O TLV 3 IEI=0x64 @sic R5s100135 sic@ */ AdditionalUpdateResult addUpdateResult optional, /* cl.9.9.3.0A O TV 1 IEI=0xF @sic R5s100135 sic@ */ - GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 t3412ExtdValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ }; type record ATTACH_COMPLETE { /* 24.301 cl. 8.2.2 @@ -160,7 +159,8 @@ type record ATTACH_REJECT { /* 24.301 cl. 8.2. EMM_Cause emmCause, /* cl. 9.9.3.9 M V 1 */ ESM_MessageContainer esmMessage optional, /* cl. 9.9.3.15 M TLV-E 6-n IEI=0x78 @sic R5s110176 Baseline Moving sic@ */ GPRS_Timer2 t3346 optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x5F @sic R5s120178 Baseline Moving sic@*/ - GPRS_Timer2 t3402 optional /* cl. 9.9.3.16A O TLV 3 IEI=0x16 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3402 optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x16 @sic R5s120178 Baseline Moving sic@*/ + Extd_EMM_Cause extdEMMCause optional /* cl. 9.9.3.26A O TV 1 IEI=0xA @sic R5s150329 Baseline Moving sic@ */ }; type record ATTACH_REQUEST { /* 24.301 cl. 8.2.4 @@ -189,7 +189,9 @@ type record ATTACH_REQUEST { /* 24.301 cl. 8.2. DeviceProperties deviceProperties optional, /* cl. 9.9.2.0A O TV 1 IEI=0xD- @sic R5s120178 Baseline Moving sic@*/ GUTI_Type oldGUTI_Type optional, /* cl. 9.9.3.45 O TV 1 IEI=0xE- @sic R5s120178 Baseline Moving sic@*/ MS_NetworkFeatureSupport msNetworkFeatureSupport optional, /* cl. 9.9.2.0A O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ - NwkResourceId tmsiBasedNRIContainer optional /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + NwkResourceId tmsiBasedNRIContainer optional, /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ + GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s150329 Baseline Moving sic@*/ }; type record AUTHENTICATION_FAILURE { /* 24.301 cl. 8.2.5 @@ -392,7 +394,6 @@ type record SECURITY_MODE_REJECT { /* 24.301 cl. 8.2. type record SECURITY_PROTECTED_NAS_MESSAGE { /* 24.301 cl. 8.2.23 Significance: dual Direction: both */ - /* Note: it is FFS whether this PDU is realy used in TTCN */ SecurityHeaderType securityHeaderType, /* cl. 9.3.1 M V 1/2 */ ProtocolDiscriminator protocolDiscriminator, /* cl. 9.2 M V 1/2 */ MessageAuthenticationCode messageAuthenticationCode, /* cl. 9.5 M V 4 */ @@ -442,7 +443,8 @@ type record TRACKING_AREA_UPDATE_ACCEPT { /* 24.301 cl. 8.2. EmergNumList emergencyNumberList optional, /* cl. 9.9.3.37 O TLV 5-50 IEI=0x34 */ EPS_NetworkFeatureSupport epsNetworkFeatureSupport optional, /* cl.9.9.3.12A O TLV 3 IEI=0x64 @sic R5s100135 sic@ */ AdditionalUpdateResult addUpdateResult optional, /* cl.9.9.3.0A O TV IEI=0xF @sic R5s100135 sic@ */ - GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 t3412ExtdValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ }; type record TRACKING_AREA_UPDATE_COMPLETE { /* 24.301 cl. 8.2.27 @@ -460,7 +462,8 @@ type record TRACKING_AREA_UPDATE_REJECT { /* 24.301 cl. 8.2. ProtocolDiscriminator protocolDiscriminator, /* cl. 9.2 M V 1/2 */ MessageType messageType, /* cl. 9.8 M V 1 */ EMM_Cause emmCause, /* cl. 9.9.3.9 M V 1 */ - GPRS_Timer2 t3346 optional /* cl. 9.9.3.16A O TLV 3 IEI=0x5F @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3346 optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x5F @sic R5s120178 Baseline Moving sic@*/ + Extd_EMM_Cause extdEMMCause optional /* cl. 9.9.3.26A O TV 1 IEI=0xA @sic R5s150329 Baseline Moving sic@ */ }; type record TRACKING_AREA_UPDATE_REQUEST { /* 24.301 cl. 8.2.29 @@ -493,7 +496,9 @@ type record TRACKING_AREA_UPDATE_REQUEST { /* 24.301 cl. 8.2. GUTI_Type oldGUTI_Type optional, /* cl. 9.9.3.45 O TV 1 IEI=0xE- @sic R5s120178 Baseline Moving sic@*/ DeviceProperties deviceProperties optional, /* cl. 9.9.2.0A O TV 1 IEI=0xD- @sic R5s120178 Baseline Moving sic@*/ MS_NetworkFeatureSupport msNetworkFeatureSupport optional, /* cl. 9.9.2.0A O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ - NwkResourceId tmsiBasedNRIContainer optional /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + NwkResourceId tmsiBasedNRIContainer optional, /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ + GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s150329 Baseline Moving sic@*/ }; type record UL_NAS_TRANSPORT { /* 24.301 cl. 8.2.30 @@ -568,7 +573,8 @@ type record ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. LLC_SAPI negotiatedLlcSapi optional, /* cl. 9.9.4.7 O TV 2 IEI=0x32 */ RadioPriority radioPriority optional, /* cl. 9.9.4.13 O TV 1 IEI=0x8- */ PacketFlowIdentifier packetFlowIdentifier optional, /* cl. 9.9.4.8 O TLV 3 IEI=0x34 */ - ProtocolConfigOptions protocolConfigurationOptions optional /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TLV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; type record ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT { /* 24.301 cl. 8.3.4 @@ -610,7 +616,8 @@ type record ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. APN_AMBR apnAggMaxBitRate optional, /* cl. 9.9.4.2 O TLV 4-8 IEI=0x5e */ ESM_Cause esmCause optional, /* cl. 9.9.4.4 O TV 2 IEI=0x58 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - ConnectivityType connectivityType optional /* cl. 9.9.2.0A O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + ConnectivityType connectivityType optional, /* cl. 9.9.2.0A O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; type record BEARER_RESOURCE_ALLOCATION_REJECT { /* 24.301 cl. 8.3.7 @@ -622,7 +629,8 @@ type record BEARER_RESOURCE_ALLOCATION_REJECT { /* 24.301 cl. 8.3. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396 optional /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178, R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 9.9.4.13A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; type record BEARER_RESOURCE_ALLOCATION_REQUEST { /* 24.301 cl. 8.3.8 @@ -649,7 +657,8 @@ type record BEARER_RESOURCE_MODIFICATION_REJECT { /* 24.301 cl. 8. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396 optional /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178, R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 9.9.4.13A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; type record BEARER_RESOURCE_MODIFICATION_REQUEST { /* 24.301 cl. 8.3.10 @@ -687,7 +696,8 @@ type record DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.8 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396Value optional /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer3 t3396Value optional, /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; type record ESM_INFORMATION_REQUEST { /* 24.301 cl. 8.3.13 @@ -755,7 +765,8 @@ type record MODIFY_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. RadioPriority radioPriority optional, /* cl. 9.9.4.13 O TV 1 IEI=0x8- */ PacketFlowIdentifier packetFlowIdentifier optional, /* cl. 9.9.4.5 O TLV 3 IEI=0x34 */ APN_AMBR apnAggMaxBitRate optional, /* cl. 9.9.4.2 O TLV 4-8 IEI=0x5e */ - ProtocolConfigOptions protocolConfigurationOptions optional /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; @@ -781,7 +792,8 @@ type record PDN_CONNECTIVITY_REJECT { /* 24.301 cl. 8.3. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396 optional /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178, R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 9.9.4.13A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; type record PDN_CONNECTIVITY_REQUEST { /* 24.301 cl. 8.3.20 @@ -880,6 +892,12 @@ type record EMM_Cause { /* 24.301 cl. 9.9. NAS_CauseValue_Type causeValue }; +type record Extd_EMM_Cause { /* 24.301 cl. 9.9.3.26A */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + B3_Type spare, + B1_Type eutranAllowed +}; + type record EPS_AttachResult { /* 24.301 cl. 9.9.3.10 */ // IEI is always skipped B1_Type spare, @@ -930,8 +948,7 @@ type record EPS_UpdateType { /* 24.301 cl. 9.9. type record ESM_MessageContainer { /* 24.301 cl. 9.9.3.15 */ IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ Type6Length_Type iel, - octetstring esmPdu /* ESM PDU without NAS security header; - type is FFS */ + octetstring esmPdu /* ESM PDU without NAS security header*/ }; type record KSIandSN { /* 24.301 cl. 9.9.3.19 */ diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_34229_SelectionExpressions.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_34229_SelectionExpressions.ttcn similarity index 77% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_34229_SelectionExpressions.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_34229_SelectionExpressions.ttcn index 347291f..f2f8917 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_34229_SelectionExpressions.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_34229_SelectionExpressions.ttcn @@ -2,18 +2,18 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 14:33:19 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12067 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_34229_SelectionExpressions { import from IMS_CommonParameters all; import from IMS_CC_Parameters all; - import from UTRAN_Parameters all; + // import from UTRAN_Parameters all; import from Parameters all; type enumerated Condition_Type { @@ -63,7 +63,15 @@ module IMS_34229_SelectionExpressions { IMS34_C73, IMS34_C74, IMS34_C75, - IMS34_C76 + IMS34_C76, + IMS34_C77, + IMS34_C78, + IMS34_C79, + IMS34_C80, //@sic R5s145157 sic@ + IMS34_C81, + IMS34_C82, //@sic R5-151964 sic@ + IMS34_C83, + IMS34_Cxx_R5153996 //@sic R5-153996 sic@ }; function f_SelectionExpr ( Condition_Type p_Condition) return boolean @@ -125,8 +133,8 @@ module IMS_34229_SelectionExpressions { v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Speech and pc_MTSI_CommHold ; } case (IMS34_C24) { - // MTSI and Communication Barring - v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_CB; + // MTSI and Incoming Communication Barring @sic R5-153996 sic@ + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Incoming_CB; //@sic R5-153996 sic@ } case (IMS34_C26) { // MTSI AND Initiating session AND preconditions AND MTSI text, RTP @@ -166,7 +174,7 @@ module IMS_34229_SelectionExpressions { } case (IMS34_C45) { //MTSI and Communication Barring and Anonymous Communication Rejection - v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_CB and pc_MTSI_ACR; + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Incoming_CB and pc_MTSI_ACR; //@sic R5-153996 sic@ } case (IMS34_C48) { // MTSI and Terminating Identification Presentation @@ -202,7 +210,7 @@ module IMS_34229_SelectionExpressions { } case (IMS34_C61) { //UE supporting MTSI and Conference and three way session - v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Conference; //FFS and A.16/14; + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Conference and pc_IMS_TWS; } case (IMS34_C62) { //IMS emergency services and emergency speech call and UTRAN or GERAN @@ -241,8 +249,8 @@ module IMS_34229_SelectionExpressions { v_ApplCond := pc_IMS_EmergencyCall and pc_MultimediaTelephonyService and pc_MTSI_Speech and pc_CommunicationHold_DuringEmergencyCall; } case (IMS34_C73) { - //UE supports IMS emergency services and Geolocation Information and MTSI and speech - v_ApplCond := pc_IMS_EmergencyCall and pc_IMS_Geolocation and pc_MultimediaTelephonyService and pc_MTSI_Speech; //@sic R5133708 sic@ + //UE supports IMS emergency services and MTSI and speech + v_ApplCond := pc_IMS_EmergencyCall and pc_MultimediaTelephonyService and pc_MTSI_Speech; //@sic R5133708 R5-151518 sic@ } case (IMS34_C74) { // UE supporting IMS emergency services and Emergency speech call over 1XRTT (NOTE 2) @@ -253,9 +261,41 @@ module IMS_34229_SelectionExpressions { v_ApplCond := pc_BidirecVoiceOverIMS and pc_Speech and (pc_EmergSpeech and pc_1xRTT); } case (IMS34_C76) { - // IMS emergency services and Geolocation Information + // IMS emergency services and capable of obtaining location Information v_ApplCond := pc_IMS_EmergencyCall and pc_IMS_Geolocation; } + case (IMS34_C77) { + // UE supporting MTSI and MTSI speech and MTSI video H.264 CBP Level 1.2 and Communication Hold + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Speech and pc_MTSI_Video and pc_VideoCodecH264CBP and pc_MTSI_CommHold; + } + case (IMS34_C78) { + // UE supporting MTSI and MTSI speech and MTSI video H.264 CBP Level 1.2 and Conference + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Speech and pc_MTSI_Video and pc_VideoCodecH264CBP and pc_MTSI_Conference; + } + case (IMS34_C79) { + // UE supporting MTSI and MTSI speech and MTSI video H.264 CBP Level 1.2 and Conference + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Speech and pc_MTSI_Video and pc_VideoCodecH264CBP and pc_MTSI_Conference and pc_IMS_TWS; + } + case (IMS34_C80) { //@sic R5s145157 sic@ + //IMS security and UE supporting IMS deregistration + v_ApplCond := pc_IMS_Sec and pc_IMS_Deregistration; + } + case (IMS34_C81) { + //MTSI and Originating Identification Presentation and GBA for XCAP authentication + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_OIP and pc_HttpGBAAuthentication; //@sic R5-151962 sic@ + } + case(IMS34_C82) { //@sic R5-151964 sic@ + // MTSI and speech and early media + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Speech and pc_EarlyMedia; + } + case(IMS34_C83){ + //MTSI and MTSI speech EVS. @sic R5-151970 sic@ + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Speech_EVS; + } + case(IMS34_Cxx_R5153996) { + //MTSI and Outgoing Communication Barring + v_ApplCond := pc_MultimediaTelephonyService and pc_MTSI_Outgoing_CB; + } case else { v_ApplCond := false; } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_ASP_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_ASP_Templates.ttcn similarity index 77% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_ASP_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_ASP_Templates.ttcn index 94e7d10..f951e73 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_ASP_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_ASP_Templates.ttcn @@ -2,39 +2,38 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /******************************************************************************/ module IMS_ASP_Templates { import from LibSip_SIPTypesAndValues all; import from IP_ASP_TypeDefs all; import from IMS_ASP_TypeDefs all; - import from CommonDefs all; //**************************************************************************** // ASPs to send/receive IMS messages //---------------------------------------------------------------------------- template (value) IMS_RoutingInfo_Type cs_IMS_RoutingInfo(InternetProtocol_Type p_Protocol, - template (omit) IMS_ProtectedUnprotected_Type p_ProtectedUnprotected := omit, + template (omit) IMS_SecurityContextEnum_Type p_SecurityContextEnum := omit, template (omit) IP_AddrInfo_Type p_UE_Address := omit, template (omit) IP_AddrInfo_Type p_NW_Address := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ Protocol := p_Protocol, - Security := p_ProtectedUnprotected, + Security := p_SecurityContextEnum, UE_Address := p_UE_Address, NW_Address := p_NW_Address }; template (present) IMS_RoutingInfo_Type cr_IMS_RoutingInfo(template (present) InternetProtocol_Type p_Protocol := ?, - template IMS_ProtectedUnprotected_Type p_ProtectedUnprotected := *) := // @sic R5s130133 additional change 1; R5s130187 sic@ - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template IMS_SecurityContextEnum_Type p_SecurityContextEnum := *) := // @sic R5s130133 additional change 1; R5s130187 sic@ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Protocol := p_Protocol, - Security := p_ProtectedUnprotected, + Security := p_SecurityContextEnum, UE_Address := *, // @sic R5s120907 change 1 sic@ NW_Address := * // @sic R5s120907 change 1 sic@ }; @@ -50,7 +49,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Register_Request(template (present) REGISTER_Request p_RegisterRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Register := p_RegisterRequest @@ -60,7 +59,7 @@ module IMS_ASP_Templates { template (present) IMS_DATA_RSP cr_IMS_DATA_RSP_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ template (present) IMS_DATA_REQ car_IMS_Subscribe_Request(template (present) SUBSCRIBE_Request p_SubscribeRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Subscribe := p_SubscribeRequest @@ -69,7 +68,7 @@ module IMS_ASP_Templates { template (value) IMS_DATA_REQ cas_IMS_Notify_Request(template (value) IMS_RoutingInfo_Type p_RoutingInfo, template (value) NOTIFY_Request p_NotifyRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := p_RoutingInfo, Request := { Notify := p_NotifyRequest @@ -102,7 +101,7 @@ module IMS_ASP_Templates { template (present) IMS_DATA_RSP car_IMS_DATA_RSP(template (present) IMS_RoutingInfo_Type p_RoutingInfo, template (present) IMS_Response_Type p_Response) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := p_RoutingInfo, Response := p_Response }; @@ -118,7 +117,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Prack_Request(template (present) PRACK_Request p_PrackRequest) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Prack := p_PrackRequest @@ -126,7 +125,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Refer_Request(template (present) REFER_Request p_ReferRequest) := - { + { /* @status APPROVED (IMS) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Refer := p_ReferRequest @@ -152,7 +151,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Update_Request(template (present) UPDATE_Request p_UpdateRequest := ?) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Update := p_UpdateRequest @@ -221,7 +220,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Message_Request(template (present) MESSAGE_Request p_MessageRequest := ?) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Message := p_MessageRequest @@ -230,7 +229,7 @@ module IMS_ASP_Templates { template (value) IMS_DATA_REQ cas_IMS_Message_Request(template (value) IMS_RoutingInfo_Type p_RoutingInfo, template (value) MESSAGE_Request p_MessageRequest ) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ RoutingInfo := p_RoutingInfo, Request := { Message := p_MessageRequest @@ -246,34 +245,4 @@ module IMS_ASP_Templates { } }; - //**************************************************************************** - // Auxiliary function - //---------------------------------------------------------------------------- - /* - * @desc get MessageHeader from given IMS request - * @param p_Request - * @return MessageHeader - * @status APPROVED (IMS_34229) - */ - function f_IMS_Request_GetMessageHeader(IMS_Request_Type p_Request) return MessageHeader - { - var MessageHeader v_MessageHeader; - - if (ischosen(p_Request.Register)) { v_MessageHeader := p_Request.Register.msgHeader; } - else if (ischosen(p_Request.Invite)) { v_MessageHeader := p_Request.Invite.msgHeader; } - else if (ischosen(p_Request.Options)) { v_MessageHeader := p_Request.Options.msgHeader; } - else if (ischosen(p_Request.Bye)) { v_MessageHeader := p_Request.Bye.msgHeader; } - else if (ischosen(p_Request.Cancel)) { v_MessageHeader := p_Request.Cancel.msgHeader; } - else if (ischosen(p_Request.Ack)) { v_MessageHeader := p_Request.Ack.msgHeader; } - else if (ischosen(p_Request.Prack)) { v_MessageHeader := p_Request.Prack.msgHeader; } - else if (ischosen(p_Request.Notify)) { v_MessageHeader := p_Request.Notify.msgHeader; } - else if (ischosen(p_Request.Subscribe)) { v_MessageHeader := p_Request.Subscribe.msgHeader; } - else if (ischosen(p_Request.Publish)) { v_MessageHeader := p_Request.Publish.msgHeader; } - else if (ischosen(p_Request.Update)) { v_MessageHeader := p_Request.Update.msgHeader; } - else if (ischosen(p_Request.Refer)) { v_MessageHeader := p_Request.Refer.msgHeader; } - else if (ischosen(p_Request.Message)) { v_MessageHeader := p_Request.Message.msgHeader; } - else { FatalError(__FILE__, __LINE__, "unknown SIP message"); } - - return v_MessageHeader; - } } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_ASP_TypeDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_ASP_TypeDefs.ttcn similarity index 89% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_ASP_TypeDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_ASP_TypeDefs.ttcn index f5de504..7b9699b 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_ASP_TypeDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_ASP_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-03-03 17:01:01 +0100 (Mon, 03 Mar 2014) $ -// $Rev: 10790 $ +// @version: IWD_15wk38 +// $Date: 2015-06-26 20:08:06 +0200 (Fri, 26 Jun 2015) $ +// $Rev: 13970 $ /******************************************************************************/ module IMS_ASP_TypeDefs { @@ -18,17 +18,17 @@ module IMS_ASP_TypeDefs { // Data ASPs //**************************************************************************** - type enumerated IMS_ProtectedUnprotected_Type {protected, unprotected}; + type enumerated IMS_SecurityContextEnum_Type {unprotected, protectedContext1, protectedContext2}; /* @sic R5-145732: support of second security context sic@ */ type record IMS_RoutingInfo_Type { InternetProtocol_Type Protocol, // UDP or TCP - IMS_ProtectedUnprotected_Type Security optional, // protected or unprotected (in DL omit when IP PTC shall decide what to do) + IMS_SecurityContextEnum_Type Security optional, // protected or unprotected (in DL omit when IP PTC shall decide what to do) IP_AddrInfo_Type UE_Address optional, // sent by the IP PTC when there is an initial request on unprotected connection IP_AddrInfo_Type NW_Address optional // sent by the IP PTC when there is an initial request on unprotected connection }; - type RequestUnion IMS_Request_Type with { encode "SIPCodec"}; // Alias for 'RequestUnion' as defined in LibSip_SIPTypesAndValues - type Response IMS_Response_Type with { encode "SIPCodec"}; // Alias for 'Response' as defined in LibSip_SIPTypesAndValues + type RequestUnion IMS_Request_Type with { encode "SIPCodec"}; // Alias for "RequestUnion" as defined in LibSip_SIPTypesAndValues + type Response IMS_Response_Type with { encode "SIPCodec"}; // Alias for "Response" as defined in LibSip_SIPTypesAndValues type record IMS_DATA_REQ { IMS_RoutingInfo_Type RoutingInfo, @@ -78,7 +78,7 @@ module IMS_ASP_TypeDefs { type record IMS_PortsAndSecurityConfigReq_Type { PortNumber_Type UnprotectedPort_us optional, // 5060 per default - IMS_RegistrationInfo_Type RegistrationInfo + IMS_RegistrationInfo_Type RegistrationInfo optional /* @sic R5s150268 change 3: optional sic@ */ }; type Null_Type IMS_PortsAndSecurityConfigCnf_Type; /* @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: sic@ @@ -88,7 +88,7 @@ module IMS_ASP_TypeDefs { type union IMS_CONFIG_REQ { IPsec_SecurityKeys_Type InstallKey, IMS_PortsAndSecurityConfigReq_Type PortsAndSecurityConfig, - IMS_SecurityInfo_Type SecurityRelease, + Null_Type SecurityRelease, Null_Type RegInfoRelease, /* @sic R5s140123 change 9 sic@ */ Null_Type CloseTCP /* @sic R5s130988 change 1 - MCC160 implementation sic@ */ }; diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonDefs.ttcn similarity index 73% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_CommonDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonDefs.ttcn index a80ae12..d4f0617 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonDefs.ttcn @@ -2,77 +2,70 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-24 13:09:45 +0200 (Sun, 24 Aug 2014) $ -// $Rev: 11892 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module IMS_CommonDefs { import from CommonDefs all; import from Parameters all; - import from IMS_CC_Parameters all; - type enumerated IMS_SecurityScheme_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_SecurityScheme_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ GIBA, /* 34.229-2 Table A.6a Item 1 */ IMS_Security /* 34.229-2 Table A.6a Item 2 */ }; + type enumerated IMS_Emergency_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + NO_EMERGENCY, /* No IMS emergency call */ + REGULAR_EMERGENCY, /* Regular IMS emergency call (normal or limited service) */ + ASSERTED_EMERGENCY /* Asserted emergency call (Non-UE detectable emergency call) */ + }; + type enumerated IMS_CallHoldResume_Type {HOLD, RESUME}; /* @status APPROVED (IMS) */ - const boolean tsc_IMS_SMSoverIMS := false; /* In previous releases 34.229-2 A.4.5/21 (Rel-8) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const boolean tsc_IMS_VideoFeature := false; /* A.12/zz - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - const B128_Type tsc_IMS_AuthRAND := px_eAuthRAND; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const B128_Type tsc_IMS_AuthRAND := px_eAuthRAND; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_Port_ps_NoSec := 5060; const integer tsc_IMS_Port_pc := 5061; /* client port at NW side for security protected IMS signalling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_Port_ps := 5062; /* server port at NW side for security protected IMS signalling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_Port_pc_2 := 5063; /* "new" client port at NW side for security protected IMS signalling: for re-authentication a new client port is needed - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_MediaPort_M1 := 60350; /* RTP port Speech @sic R5s130495 Change 19 sic@ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_MediaPort_M2 := 60352; /* RTP port Video @sic R5s130495 Change 19 sic@ * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const integer tsc_IMS_MediaPort_M3 := 60354; /* RTP port Text @sic R5s130495 Change 19 sic@ - * @status APPROVED (IMS, LTE_A) */ + * @status APPROVED (IMS, LTE, LTE_A) */ const charstring tsc_IMS_Scscf := "scscf@3gpp.org"; - const charstring tsc_IMS_Opaque := "5ccc069c403ebaf9f0171e9517f40e41"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_IMS_RegisterExpiration := "600"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_Opaque := "5ccc069c403ebaf9f0171e9517f40e41"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const charstring tsc_IMS_RegisterExpiration := "600"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5-153254: 600 -> 600000 sic@ */ const charstring tsc_IMS_FeatureParamId_3gpp_icsi_ref := "+g.3gpp.icsi-ref"; /* @sic R5s120530 change 3.6 sic@ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - const charstring tsc_IMS_FeatureParamValue_3gpp_icsi_ref := "urn:urn-7:3gpp-service.ims.icsi.mmtel"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) charstring cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref := f_URL_Encoding(tsc_IMS_FeatureParamValue_3gpp_icsi_ref); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + const charstring tsc_IMS_FeatureParamValue_3gpp_icsi_ref := "urn:urn-7:3gpp-service.ims.icsi.mmtel"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) charstring cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref := f_URL_Encoding(tsc_IMS_FeatureParamValue_3gpp_icsi_ref); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5-142247 URL encoding sic@ */ - const charstring tsc_IMS_UEInstanceId := """"""; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - const charstring tsc_IMS_FeatureCap_SrvccAlerting := "+g.3gpp.srvcc-alerting"; /* @sic R5-142287 change 1, 2 sic@ - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - const charstring tsc_IMS_FinalConferenceUri := "sip:Stf160FinalConf@3gpp.org"; // FFS px_FinalConferenceUri - const charstring tsc_IMS_ConferenceFactoryUri := "sip:Stf160ConfFactory@3gpp.org"; // FFS px_ConferenceFactoryUri - const charstring tsc_IMS_TemporaryConferenceUri := "sip:Stf160TempConf@3gpp.org"; // FFS px_TemporaryConferenceUri + const charstring tsc_IMS_FeatureCap_SrvccAlerting := "+g.3gpp.srvcc-alerting"; /* @sic R5-142287 change 1, 2 sic@ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_FeatureCap_SrvccPreAlerting := "+g.3gpp.ps2cs-srvcc-orig-pre-alerting"; /* @sic R5s140962 sic@ + @status APPROVED (IMS, LTE, LTE_A) */ - const charstring tsc_IMS_PSI_SMSC := "tel:+" & px_SMS_SMSC_InternationalNumber; /* @status APPROVED (IMS) */ - - template (value) charstring cs_IMS_ArbitraryValueFor_gr(charstring p_PublicUserIdentity) := """" & p_PublicUserIdentity & ";gr=urn%3Auuid%3Af81d4fae-7dec-11d0-a765-00a0c91e6bf6"""; /* FFS - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) charstring cs_IMS_TempGRUUForUE(charstring p_HomeDomainName) := """sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@" & p_HomeDomainName & ";gr"""; /* FFS - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_PubGRUU_UriParameterValue := "urn%3Auuid%3Af81d4fae-7dec-11d0-a765-00a0c91e6bf6"; /* arbitrary value @sic R5s150721 sic@ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_RSeqNumFor183 := 121; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE, LTE_IRAT) */ const charstring tsc_IMS_Emergency_TelUri := "tel:112"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const charstring tsc_IMS_CalleeTelUri := "tel:+4989364072"; //FFS - const charstring tsc_IMS_UrnServiceSos := "urn:service:sos"; /* @status APPROVED (IMS) */ + const charstring tsc_IMS_UrnServiceSos := "urn:service:sos"; /* @status APPROVED (IMS, IMS_IRAT) */ const charstring tsc_IMS_UrnServiceSos_Ambulance := tsc_IMS_UrnServiceSos & "." & "ambulance"; /* @status APPROVED (IMS) */ const charstring tsc_IMS_CallerDomain := "stf160.etsi.org"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ @@ -81,11 +74,11 @@ module IMS_CommonDefs { const charstring tsc_P_CSCF_DomainName := "3gpp.org"; - const charstring tsc_IMS_ExpiresDef := "600000"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_ExpiresDef := "600000"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const charstring tsc_IMS_Ecscf := "ecscf.other.com"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const float tsc_IMS_WaitForTcpClose := 3.0; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const float tsc_IMS_WaitForTcpClose := 3.0; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc build up receive template for (case-insensitve) token @@ -109,7 +102,7 @@ module IMS_CommonDefs { * @desc convert IPCAN_RAN_Type to charstring * @param p_RAN_Type * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RANType2Charstring(IPCAN_RAN_Type p_RAN_Type) return charstring { @@ -131,7 +124,7 @@ module IMS_CommonDefs { * @param p_Method * @param p_FromOrTo (default value: "To") * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_GenerateTag(charstring p_Method, charstring p_FromOrTo := "To") return charstring @@ -140,21 +133,6 @@ module IMS_CommonDefs { return "abc-" & p_Method & "-" & p_FromOrTo & "tag"; } - /* - * @desc return Security Scheme to be used - * @param p_IsGiba - * @return IMS_SecurityScheme_Type - * @status APPROVED (IMS) - */ - function f_IMS_SecurityScheme(boolean p_IsGiba) return IMS_SecurityScheme_Type - { - var IMS_SecurityScheme_Type v_SecurityScheme := IMS_Security; - if (p_IsGiba) { - v_SecurityScheme := GIBA; - } - return v_SecurityScheme; - } - /* * @desc restore URL-encoded (or "percent-encoded") URL: * replace all "%XY" with the the respective character corresponding to the hex code XY @@ -189,7 +167,7 @@ module IMS_CommonDefs { * @desc returns p_Char if it is not a reserved character or the encoded value * @param p_Char * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_URL_Encoding_SingleChar(Char1_Type p_Char) return charstring { @@ -210,7 +188,7 @@ module IMS_CommonDefs { * reserved characters acc. to RFC 3986 are replaced by their percent-code * @param p_Url * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_URL_Encoding(charstring p_Url) return charstring { @@ -222,5 +200,40 @@ module IMS_CommonDefs { } return v_EncodedUrl; } + + /* + * @desc returns p_Char if it is not a reserved character or the corresponding escape sequence + * @param p_Char + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_HTML_Encoding_SingleChar(Char1_Type p_Char) return charstring + { + var Char1List_Type v_ReservedChars := {"""", "&", "'", "<", ">"}; /* NOTE: may not be complete */ + var CharStringList_Type v_EscapeString := {"quot", "amp", "apos", "lt", "gt"}; + var integer i; + for (i:=0; i < lengthof(v_ReservedChars); i:=i+1) { + if (v_ReservedChars[i] == p_Char) { + return "&" & v_EscapeString[i] & ";"; + } + } + return p_Char; + } + /* + * @desc HTML encoding: reserved characters are replaced by their escape sequence + * @param p_String + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_HTML_Encoding(charstring p_String) return charstring + { + var charstring v_EncodedString := ""; + var integer i; + + for (i:=0; i < lengthof(p_String); i:=i+1) { + v_EncodedString := v_EncodedString & fl_HTML_Encoding_SingleChar(p_String[i]); + } + return v_EncodedString; + } } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonFunctions.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonFunctions.ttcn similarity index 86% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonFunctions.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonFunctions.ttcn index 04d9a89..6e800dd 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonFunctions.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-01 13:53:52 +0200 (Thu, 01 May 2014) $ -// $Rev: 11225 $ +// @version: IWD_15wk38 +// $Date: 2015-04-25 09:25:26 +0200 (Sat, 25 Apr 2015) $ +// $Rev: 13507 $ /******************************************************************************/ module IMS_CommonFunctions { @@ -32,7 +32,7 @@ module IMS_CommonFunctions { * Adapted from Java Base64 implementation in en.wikibooks.org * @param p_Bitstring * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Bitstring2Base64 (bitstring p_Bitstring) return charstring { @@ -71,7 +71,7 @@ module IMS_CommonFunctions { * @param p_Rand * @param p_AuthenticationError (default value: noError) * @return Common_AuthenticationParams_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_AuthenticationInit(template (value) B128_Type p_Rand, AuthenticationError_Type p_AuthenticationError := noError) return Common_AuthenticationParams_Type @@ -87,7 +87,7 @@ module IMS_CommonFunctions { * @param p_XRES * @param p_XRESLength .. length of XRES in octets * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Authorization_CheckDigestResponse(charstring p_Method := "REGISTER", CommaParam_List p_DigestResponse, @@ -154,7 +154,7 @@ module IMS_CommonFunctions { * @desc convert transport protocol to string to be used in IMS messages * @param p_Protocol * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_ConvertTransportProtocolToString(InternetProtocol_Type p_Protocol) return charstring { @@ -177,14 +177,14 @@ module IMS_CommonFunctions { * NOTE: in DL we never send any IP addresses * @param p_RoutingInfo_UL * @return template (value) IMS_RoutingInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RoutingInfo_ULtoDL(IMS_RoutingInfo_Type p_RoutingInfo_UL) return template (value) IMS_RoutingInfo_Type { return cs_IMS_RoutingInfo(p_RoutingInfo_UL.Protocol, p_RoutingInfo_UL.Security, - p_RoutingInfo_UL.UE_Address, // may be omit - p_RoutingInfo_UL.NW_Address); // may be omit + p_RoutingInfo_UL.UE_Address, // may be omit + p_RoutingInfo_UL.NW_Address); // may be omit } //---------------------------------------------------------------------------- @@ -225,13 +225,15 @@ module IMS_CommonFunctions { //---------------------------------------------------------------------------- /* - * @desc build up home network domain name derived from IMSI acc. to 23.003 clause 13.2 - * @param p_IMSI (default value: px_IMSI_Def) + * @desc build up a domain name derived from IMSI acc. to 23.003 + * @param p_FirstLabel + * @param p_IMSI * @param p_LengthOfMNC (default value: 2) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_HomeDomainNameDerivedFromIMSI(hexstring p_IMSI, + function f_IMS_3gppDomainNameDerivedFromIMSI(charstring p_FirstLabel, + hexstring p_IMSI, integer p_LengthOfMNC := 2) return charstring { /* NOTE: the length of the MNC in general cannot be derived from the IMSI (some countries have MNCs with 2 and 3 digits; see e.g "Annex to ITU Operational Bulletin No. 992 - 15.XI.2011") * instead the length of the MNC is stored in the EF-AD file on the SIM card (see 31.102 cl. 4.2.18) and acc. to 31.121 the MNC has 2 digits. */ @@ -242,7 +244,20 @@ module IMS_CommonFunctions { if (p_LengthOfMNC == 2) { v_MNC := "0" & v_MNC; } - return "ims.mnc" & v_MNC & ".mcc" & v_MCC & ".3gppnetwork.org"; + return p_FirstLabel & ".mnc" & v_MNC & ".mcc" & v_MCC & ".3gppnetwork.org"; + } + + /* + * @desc build up home network domain name derived from IMSI acc. to 23.003 clause 13.2 + * @param p_IMSI + * @param p_LengthOfMNC (default value: 2) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_HomeDomainNameDerivedFromIMSI(hexstring p_IMSI, + integer p_LengthOfMNC := 2) return charstring + { + return f_IMS_3gppDomainNameDerivedFromIMSI("ims", p_IMSI, p_LengthOfMNC); } /* @@ -250,7 +265,7 @@ module IMS_CommonFunctions { * @param p_IMSI (default value: px_IMSI_Def) * @param p_LengthOfMNC (default value: 2) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PrivateUserIdentityDerivedFromIMSI(hexstring p_IMSI, integer p_LengthOfMNC := 2) return charstring @@ -264,7 +279,7 @@ module IMS_CommonFunctions { * @param p_IMSI (default value: px_IMSI_Def) * @param p_LengthOfMNC (default value: 2) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_TemporaryPublicUserIdentity(hexstring p_IMSI, integer p_LengthOfMNC := 2) return charstring diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonTemplates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonTemplates.ttcn similarity index 63% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonTemplates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonTemplates.ttcn index f88f05a..0961019 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonTemplates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_CommonTemplates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-23 18:15:44 +0200 (Mon, 23 Jun 2014) $ -// $Rev: 11767 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 11:05:29 +0200 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module IMS_CommonTemplates { @@ -19,7 +19,7 @@ module IMS_CommonTemplates { * @param p_SemicolonParam_List1 * @param p_SemicolonParam_List2 * @return template (value) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SemicolonParam_List_Concat_TX(template (omit) SemicolonParam_List p_SemicolonParam_List1, template (value) SemicolonParam_List p_SemicolonParam_List2) return template (value) SemicolonParam_List @@ -43,7 +43,7 @@ module IMS_CommonTemplates { * @param p_SemicolonParam_List * @param p_GenericParam * @return template (value) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SemicolonParam_List_Add_TX(template (omit) SemicolonParam_List p_SemicolonParam_List, template (value) GenericParam p_GenericParam) return template (value) SemicolonParam_List @@ -51,6 +51,22 @@ module IMS_CommonTemplates { return f_SemicolonParam_List_Concat_TX(p_SemicolonParam_List, {p_GenericParam}); } + /* + * @desc Add element to semi colon seperated parameter list + * @param p_SemicolonParam_List + * @param p_GenericParam + * @return template (present) SemicolonParam_List + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_SemicolonParam_List_Add_RX(template (present) SemicolonParam_List p_SemicolonParam_List, + template (present) GenericParam p_GenericParam) return template (present) SemicolonParam_List + { /* NOTE: may need to be enhanced like f_SemicolonParam_List_Concat_TX/f_SemicolonParam_List_Add_TX */ + var template (present) SemicolonParam_List v_SemicolonParam_List := p_SemicolonParam_List; + var integer i := lengthof(p_SemicolonParam_List); + v_SemicolonParam_List[i] := p_GenericParam; + return v_SemicolonParam_List; + } + /******************************************************************************/ /* AuxiliaryTemplates */ /******************************************************************************/ @@ -58,7 +74,7 @@ module IMS_CommonTemplates { * @desc return parameter value ("" if none) * @param p_GenericParam * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_GenericParam_GetValue(template (omit) GenericParam p_GenericParam) return charstring { @@ -78,20 +94,20 @@ module IMS_CommonTemplates { // Generic parameter as used in SemicolonParam_List, AmpersandParam_List, CommaParam_List: - template (value) GenValue cs_GenValueToken(template (value) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) GenValue cs_GenValueQuoted(template (value) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenValue cr_GenValueToken(template (present) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenValue cr_GenValueQuoted(template (present) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenValue cr_GenValue(template (present) charstring p_ParamValue) := (cr_GenValueToken(p_ParamValue), cr_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) GenValue cs_GenValueToken(template (value) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) GenValue cs_GenValueQuoted(template (value) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) GenValue cr_GenValueToken(template (present) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) GenValue cr_GenValueQuoted(template (present) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) GenValue cr_GenValue(template (present) charstring p_ParamValue) := (cr_GenValueToken(p_ParamValue), cr_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template GenValue cr_GenValue_None := (cr_GenValue(""), omit); /* i.e. either an empty string or omit - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc build GenValue considering that value my be omit * @param p_ParamValue * @return template (omit) GenValue - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_GenValue_TX(template (omit) charstring p_ParamValue) return template (omit) GenValue { @@ -105,27 +121,27 @@ module IMS_CommonTemplates { template (value) GenericParam cs_GenericParam_Common(charstring p_Id, template (omit) GenValue p_GenValue := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ id := p_Id, paramValue := p_GenValue }; template (value) GenericParam cs_GenericParamQuoted(charstring p_Id, - charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) GenericParam cs_GenericParamToken(charstring p_Id, - charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueToken(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueToken(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) GenericParam cs_GenericParam(charstring p_Id, template (omit) charstring p_ParamValue := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cs_GenericParam_Common(p_Id, fl_GenValue_TX(p_ParamValue)); // @sic R5w140111 sic@ template (present) GenericParam cr_GenericParam_Common(template (present) charstring p_Id := ?, template GenValue p_GenValue := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ id := p_Id, paramValue := p_GenValue }; @@ -133,7 +149,7 @@ module IMS_CommonTemplates { template (present) GenericParam cr_GenericParam(template (present) charstring p_Id, template (present) charstring p_ParamValue) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_GenericParam_Common(p_Id, cr_GenValue(p_ParamValue)); // @sic R5w140111 sic@ template (present) GenericParam cr_GenericParam_Any := cr_GenericParam_Common(?, *); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ @@ -142,7 +158,7 @@ module IMS_CommonTemplates { * @desc build GenericParam to be used as receive template with same id and value as given send template * @param p_GenericParamTX * @return template (present) GenericParam - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_GenericParam_AsTX(template (value) GenericParam p_GenericParamTX) return template (present) GenericParam { @@ -162,57 +178,134 @@ module IMS_CommonTemplates { template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParam(charstring p_Id, template GenValue p_GenValue := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: GenValue sic@ */ cr_GenericParam_Common(p_Id, p_GenValue), * }; template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParamWithValue(charstring p_Id, - template (present) charstring p_ParamValue := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) charstring p_ParamValue := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParam(p_Id, cr_GenValue(p_ParamValue)); - template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParamNoValue(charstring p_Id) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParamNoValue(charstring p_Id) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParam(p_Id, omit); /******************************************************************************/ /* AuxiliaryFunctions */ /******************************************************************************/ - type set of GenericParam GenericParamList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type set of GenericParam GenericParamList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //**************************************************************************** // auxilliary functions to access comma, semicolon or ampersand separated lists //---------------------------------------------------------------------------- /* - * @desc common function to get specific parameter from GenericParamList + * @desc common function to get index of specific parameter from GenericParamList or -1 when the parameter has not been found * @param p_ParamList * @param p_ParamId - * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_StartIndex (default value: 0) + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function fl_SIP_GenericParamList_GetParam(GenericParamList_Type p_ParamList, - charstring p_ParamId) return template (omit) GenericParam + function fl_SIP_GenericParamList_GetParamIndex(GenericParamList_Type p_ParamList, + charstring p_ParamId, + integer p_StartIndex := 0) return integer { /* @sic R5w140111: GenValue sic@ */ var charstring v_ParamId; var integer v_NoOfParams := lengthof(p_ParamList); var integer i; - for (i:=0; i < v_NoOfParams; i := i+1) { + for ( i:= p_StartIndex; i < v_NoOfParams; i := i + 1) { v_ParamId := f_StringToLower(p_ParamList[i].id); if (v_ParamId == p_ParamId) { - return p_ParamList[i]; + return i; } } + return -1; + } + + /* + * @desc common function to get specific parameter from GenericParamList + * @param p_ParamList + * @param p_ParamId + * @return template (omit) GenericParam + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_SIP_GenericParamList_GetParam(GenericParamList_Type p_ParamList, + charstring p_ParamId) return template (omit) GenericParam + { /* @sic R5w140111: GenValue sic@ */ + var integer i := fl_SIP_GenericParamList_GetParamIndex(p_ParamList, p_ParamId); + + if (i >= 0) { + return p_ParamList[i]; + } return omit; } + /* + * @desc convert CommaParamList to GenericParamList + * @param p_ParamList + * @return GenericParamList_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_SIP_CommaParamList2GenericParamList(template (omit) CommaParam_List p_ParamList) return GenericParamList_Type + { + var CommaParam_List v_ParamList; + var GenericParamList_Type v_GenericParamList := {}; + var integer i; + + if (isvalue(p_ParamList)) { + v_ParamList := valueof(p_ParamList); + for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} + } + return v_GenericParamList; + } + + /* + * @desc convert SemicolonParamList to GenericParamList + * @param p_ParamList + * @return GenericParamList_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_SIP_SemicolonParamList2GenericParamList(template (omit) SemicolonParam_List p_ParamList) return GenericParamList_Type + { + var SemicolonParam_List v_ParamList; + var GenericParamList_Type v_GenericParamList := {}; + var integer i; + + if (isvalue(p_ParamList)) { + v_ParamList := valueof(p_ParamList); + for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} + } + return v_GenericParamList; + } + + /* + * @desc convert AmpersandParamList to GenericParamList + * @param p_ParamList + * @return GenericParamList_Type + * @status APPROVED (IMS) + */ + function fl_SIP_AmpersandParamList2GenericParamList(template (omit) AmpersandParam_List p_ParamList) return GenericParamList_Type + { + var AmpersandParam_List v_ParamList; + var GenericParamList_Type v_GenericParamList := {}; + var integer i; + + if (isvalue(p_ParamList)) { + v_ParamList := valueof(p_ParamList); + for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} + } + return v_GenericParamList; + } + /* * @desc common function to get value of specific parameter from GenericParamList * @param p_ParamId * @param p_GenericParam * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_SIP_GenericParamCheckAndGetValue(charstring p_ParamId, template (omit) GenericParam p_GenericParam) return charstring @@ -228,19 +321,12 @@ module IMS_CommonTemplates { * @param p_ParamList * @param p_ParamId * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_CommaParamList_GetParam(template (omit) CommaParam_List p_ParamList, charstring p_ParamId) return template (omit) GenericParam { /* @sic R5w140111: GenValue sic@ */ - var CommaParam_List v_ParamList; - var GenericParamList_Type v_GenericParamList := {}; - var integer i; - - if (isvalue(p_ParamList)) { - v_ParamList := valueof(p_ParamList); - for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} - } + var GenericParamList_Type v_GenericParamList := fl_SIP_CommaParamList2GenericParamList(p_ParamList); return fl_SIP_GenericParamList_GetParam(v_GenericParamList, p_ParamId); } @@ -249,7 +335,7 @@ module IMS_CommonTemplates { * @param p_ParamList * @param p_ParamId * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_CommaParamList_GetParamValue(template (omit) CommaParam_List p_ParamList, charstring p_ParamId) return charstring @@ -258,33 +344,86 @@ module IMS_CommonTemplates { return fl_SIP_GenericParamCheckAndGetValue(p_ParamId, v_GenericParam); } + + /* + * @desc Add element to Comma seperated parameter list + * @param p_CommaParam_List + * @param p_GenericParam + * @return template (value) CommaParam_List + */ + function f_CommaParam_List_Add_TX(template (value) CommaParam_List p_CommaParam_List, + template (value) GenericParam p_GenericParam) return template (value) CommaParam_List + { + var template (value) CommaParam_List v_CommaParam_List := p_CommaParam_List; + var integer i := lengthof(p_CommaParam_List); + v_CommaParam_List[i] := p_GenericParam; + return v_CommaParam_List; + } + + /* + * @desc Add element to comma seperated parameter list + * @param p_CommaParam_List + * @param p_GenericParam + * @return template (present) CommaParam_List + * @status APPROVED (IMS) + */ + function f_CommaParam_List_Add_RX(template (present) CommaParam_List p_CommaParam_List, + template (present) GenericParam p_GenericParam) return template (present) CommaParam_List + { + var template (present) CommaParam_List v_CommaParam_List := p_CommaParam_List; + var integer i := lengthof(p_CommaParam_List); + v_CommaParam_List[i] := p_GenericParam; + return v_CommaParam_List; + } + /* * @desc return given parameter in parameter list (or omit if not present) * @param p_ParamList * @param p_ParamId * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SemicolonParamList_GetParam(template (omit) SemicolonParam_List p_ParamList, charstring p_ParamId) return template (omit) GenericParam { /* @sic R5w140111: GenValue sic@ */ - var SemicolonParam_List v_ParamList; - var GenericParamList_Type v_GenericParamList := {}; - var integer i; - - if (isvalue(p_ParamList)) { - v_ParamList := valueof(p_ParamList); - for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} - } + var GenericParamList_Type v_GenericParamList := fl_SIP_SemicolonParamList2GenericParamList(p_ParamList); return fl_SIP_GenericParamList_GetParam(v_GenericParamList, p_ParamId); } + /* + * @desc Remove parameter from SemicolonParamList + * @param p_ParamList + * @param p_ParamId + * @return template (omit) SemicolonParam_List + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_SIP_SemicolonParamList_RemoveParam(template (omit) SemicolonParam_List p_ParamList, + charstring p_ParamId) return template (omit) SemicolonParam_List + { + var SemicolonParam_List v_SemicolonParamList; + var GenericParamList_Type v_GenericParamList := fl_SIP_SemicolonParamList2GenericParamList(p_ParamList); + var integer v_Index := fl_SIP_GenericParamList_GetParamIndex(v_GenericParamList, p_ParamId); + var integer i; + var integer k := 0; + + if (v_Index >= 0) { + for (i := 0; i < lengthof(v_GenericParamList); i := i + 1) { + if (i != v_Index) { + v_SemicolonParamList[k] := v_GenericParamList[i]; + k := k + 1; + } + } + return v_SemicolonParamList; + } + return p_ParamList; + } + /* * @desc return value of given parameter in parameter list * @param p_ParamList * @param p_ParamId * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SemicolonParamList_GetParamValue(template (omit) SemicolonParam_List p_ParamList, charstring p_ParamId) return charstring @@ -293,17 +432,17 @@ module IMS_CommonTemplates { return fl_SIP_GenericParamCheckAndGetValue(p_ParamId, v_GenericParam); } + /* + * @desc return given parameter in parameter list (or omit if not present) + * @param p_ParamList + * @param p_ParamId + * @return template (omit) GenericParam + * @status APPROVED (IMS) + */ function f_SIP_AmpersandParamList_GetParam(template (omit) AmpersandParam_List p_ParamList, charstring p_ParamId) return template (omit) GenericParam { /* @sic R5w140111: GenValue sic@ */ - var AmpersandParam_List v_ParamList; - var GenericParamList_Type v_GenericParamList := {}; - var integer i; - - if (isvalue(p_ParamList)) { - v_ParamList := valueof(p_ParamList); - for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} - } + var GenericParamList_Type v_GenericParamList := fl_SIP_AmpersandParamList2GenericParamList(p_ParamList); return fl_SIP_GenericParamList_GetParam(v_GenericParamList, p_ParamId); } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_Component.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Component.ttcn similarity index 74% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_Component.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_Component.ttcn index 576ef73..2d520a4 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_Component.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Component.ttcn @@ -2,16 +2,17 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_Component { import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; import from CommonDefs all; import from CommonIP all; import from Parameters all; @@ -27,22 +28,23 @@ module IMS_Component { import from NAS_AuthenticationCommon all; import from UpperTesterPtcToMtcDefs all; // all messages being defined to communicate with the upper tester; port definitions - type enumerated IMS_PTC_Handling_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_PTC_Handling_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ testcaseSpecificHandling, defaultHandling }; - type record IMS_PTC_Ctrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - default Default, /* default behaviour being activated on IMS PTC */ - boolean TestBody, /* true: => fail may be assigend - * false: => inconc is assigned instead of fail */ - boolean BlockUlDataInDefault /* @sic R5s140780 - MCC160 Implementation sic@ + type record IMS_PTC_Ctrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + default Default, /* default behaviour being activated on IMS PTC */ + boolean TestBody, /* true: => fail may be assigend + * false: => inconc is assigned instead of fail */ + boolean BlockUlDataInDefault, /* @sic R5s140780 - MCC160 Implementation sic@ * true: => ports IMS_Server and IMS_Client are not handle by default handler * i.e. any messages coming up at these ports are stored until there are explicit receive statements in the test case * false: => UL data may cause test case fail/inconc */ + boolean IgnoreReset /* @sic R5s150031: to deal with "Reset" sent from IPCAN to reset IMS in case of the UE being switched on after a switch-off during the test case sic@ */ }; - type record IMS_PTC_SecurityInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_SecurityInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IPsec_IntegrityAlgorithm_Type IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type CipheringAlgorithm, IMS_ProtectedPorts_Type ProtectedPorts optional, @@ -52,44 +54,61 @@ module IMS_Component { integer XRESLength optional // @sic R5s120907 sic@ }; - type enumerated IMS_UriInfo_UriType_Type { firstId, secondId, thirdId, defaultId, registrationId, emergencyId, dialogLocalId, dialogRemoteId, temporaryId }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type enumerated IMS_PTC_CseqType_Type { register, dialogRemote, dialogLocal }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type enumerated IMS_PTC_DialogIndex_Type {firstDialog, secondDialog, thirdDialog, referDialog}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_UriInfo_UriType_Type { firstId, secondId, thirdId, defaultId, registrationId, emergencyId, dialogLocalId, dialogRemoteId, temporaryId, gruu }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5-153760: gruu sic@ */ + type enumerated IMS_PTC_CseqType_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + register, /* CSeq used by the UE in any REGISTER message (registration, re-registration and de-registration */ + dialogRemote, /* CSeq to be used in requests which are sent MO requests */ + dialogLocal /* CSeq to be used in requests which are sent MT requests */ + }; + type enumerated IMS_PTC_DialogIndex_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + firstDialog, + secondDialog, + thirdDialog, + referDialog, + confEventDialog, /* @sic R5-153986: confEventDialog sic@ */ + regEventDialog, /* @sic R5-153756: needed to unsubscribe (to get the correct CSeq for the NOTIFY) sic@ */ + msgSummayDialog /* @sic R5-153756: needed to unsubscribe (to get the correct CSeq for the NOTIFY) sic@ */ + }; - type record IMS_PTC_RegistrationInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_RegistrationInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ charstring Uri optional, /* SIP URI used for registration (can be temporary SIP URI when the UE does not have an ISIM) */ charstring CallId optional, /* CallId used for registration (needed to check against CallId of INVITE) */ integer Cseq }; - type record IMS_DialogInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + type record IMS_DialogInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s140092 change 1.5: RemoteURI, RemoteCseq, LocalURI, LocalCseq stored in this structure sic@ */ boolean MobileOriginated optional, /* needed e.g. to get the right route-set for re-INVITE */ - charstring RemoteTag optional, /* acc. to RFC 3261 when creating a dialog in first request there is a From tag but no To tag; + charstring RemoteTag optional, /* acc. to RFC 3261 when creating a dialog in first request there is a From tag but no To tag; the To tag is chosen by the other send and sent in a response; in all further messages within the dialogthe same From and To tags shall be used (=> especially in request messages (e.g. BYE) it may be necessary to use this stored value whereas in responses the values can be used as sent in the request); NOTE: in general outside a dialog (e.g. registration) requests get a new From tag and the corresponding reponses contain a new To tag */ - charstring RemoteURI optional, /* URI of the remote side in a dialog created by INVITE */ - integer RemoteCseq optional, /* @sic R5s140235: changed to optional sic@ */ - charstring LocalTag optional, - charstring LocalURI optional, /* URI of the UE in a dialog created by INVITE */ + charstring RemoteURI optional, /* URI of the remote side in a dialog created by INVITE */ + integer RemoteCseq optional, /* @sic R5s140235: changed to optional sic@ */ + charstring LocalTag optional, + charstring LocalURI optional, /* URI of the UE in a dialog created by INVITE */ integer LocalCseq, - charstring CallId optional, - charstring SessionId optional + charstring CallId optional, + charstring SessionId optional, + charstring SdpSessionIdTX, /* @sic R5-150707 sic@ */ + integer SdpSessionVersionTX, /* current SDP session version for the DL @sic R5-150707 sic@ */ + SDP_Message SdpMessagePrevRX optional /* previous SDP message sent by the UE @sic R5-150702 sic@ */ }; - const integer tsc_IMS_NoOfDialogs := 4; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type record length(tsc_IMS_NoOfDialogs) of IMS_DialogInfo_Type IMS_PTC_DialogInfoList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const integer tsc_IMS_NoOfDialogs := 6; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type record length(tsc_IMS_NoOfDialogs) of IMS_DialogInfo_Type IMS_PTC_DialogInfoList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - type record IMS_PTC_DialogList_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_DialogList_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ integer CurrentIndex, IMS_PTC_DialogInfoList_Type Info }; - type record IMS_PTC_ImsInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_ImsInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ CharStringList_Type IMPUList, /* list of all Public User Ids acc. to ISIM setting (31.121) or as stored in the HSS */ IP_AddrInfo_Type UE_Address optional, IP_AddrInfo_Type NW_Address optional, + charstring P_CSCF_Address optional, /* @sic R5s140934 sic@ */ InternetProtocol_Type TransportProtocol, /* transport protocol to be used for requests sent in DL * @sic R5s120530 change 1.7 sic@ * NOTE: in contrast to R5s120530 and acc. to rejection of R5-130765 at RAN WG5 Meeting #58 in Malta UDP is used for all requests in DL; @@ -108,14 +127,14 @@ module IMS_Component { IMS_SecurityScheme_Type SecurityScheme /* IMS security or GIBA acc. to 34.229-2 Table A.6a; depends on PICS setting and may depend on test case */ }; - type record IMS_Global_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_Global_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ PDN_Index_Type PdnIndex, /* @sic R5s130651: new variable sic@ */ IMS_PTC_Ctrl_Type Ctrl, IMS_PTC_SecurityInfo_Type Security, IMS_PTC_ImsInfo_Type ImsInfo }; - type component IMS_PTC { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type component IMS_PTC { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ var IMS_Global_Type vc_IMS_Global; @@ -138,7 +157,7 @@ module IMS_Component { //---------------------------------------------------------------------------- template (value) IMS_PTC_SecurityInfo_Type cs_IMS_SecurityInfo_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IntegrityAlgorithm := px_IMS_IPSecAlgorithm, CipheringAlgorithm := px_IMS_CiphAlgo_Def, ProtectedPorts := omit, @@ -149,29 +168,32 @@ module IMS_Component { }; template (value) IMS_PTC_RegistrationInfo_Type cs_IMS_RegistrationInfo_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Uri := omit, CallId := omit, Cseq := 0 }; template (value) IMS_DialogInfo_Type cs_IMS_DialogInfo_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ MobileOriginated := omit, RemoteTag := omit, RemoteURI := omit, - RemoteCseq := omit, /* @sic R5s140235: changed to omit sic@ */ + RemoteCseq := omit, /* @sic R5s140235: changed to omit sic@ */ LocalTag := omit, LocalURI := omit, LocalCseq := 0, CallId := omit, - SessionId := omit + SessionId := omit, + SdpSessionIdTX := "1111111111", /* @sic R5-150707: new variable replacing tsc_SDP_SessionId sic@ */ + SdpSessionVersionTX := 1111111110, /* @sic R5-150702: new variable; intialised with 1111111110 as being incremented firstly (see f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX) sic@ */ + SdpMessagePrevRX := omit }; /* * @desc initialise dialog status information * @return template (value) IMS_PTC_DialogList_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_DialogList_Init() return template (value) IMS_PTC_DialogList_Type { @@ -188,11 +210,14 @@ module IMS_Component { template (omit) integer p_UE_Release, charstring p_HomeDomainName := px_IMS_HomeDomainName, charstring p_PrivateUserId := px_IMS_Private_UserId, - IMS_SecurityScheme_Type p_SecurityScheme) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + IMS_SecurityScheme_Type p_SecurityScheme, + integer p_BranchIndex := 0) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic R5s140802: new parameter p_BranchIndex sic@ */ IMPUList := {px_IMS_PublicUserIdentity1, px_IMS_PublicUserIdentity2, px_IMS_PublicUserIdentity3}, UE_Address := omit, NW_Address := omit, + P_CSCF_Address := omit, TransportProtocol := udp, RanType := p_RanType, UE_Release := p_UE_Release, @@ -200,7 +225,7 @@ module IMS_Component { HomeDomainName := p_HomeDomainName, PrivateUserId := p_PrivateUserId, ContactUrl := omit, - BranchIndex := 0, + BranchIndex := p_BranchIndex, CallIdCnt := 0, Registration := cs_IMS_RegistrationInfo_Init, Dialog := fl_IMS_PTC_DialogList_Init(), @@ -211,7 +236,7 @@ module IMS_Component { PortNumber_Type p_Port_uc, PortNumber_Type p_Port_ps, PortNumber_Type p_Port_pc) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Port_us := p_Port_us, Port_uc := p_Port_uc, Port_ps := p_Port_ps, @@ -220,7 +245,7 @@ module IMS_Component { template (value) IMS_SPIs_Type cs_IMS_SPIs_Init(IPsec_SPI_Type p_SPI_us, IPsec_SPI_Type p_SPI_uc) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ SPI_us := p_SPI_us, SPI_uc := p_SPI_uc, SPI_ps := omit, @@ -239,7 +264,7 @@ module IMS_Component { * @param p_PrevSPI_ps (default value: omit) * @param p_PrevSPI_pc (default value: omit) * @return IMS_SPIs_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_SPIs_Init(integer p_NewSPI_us, integer p_NewSPI_uc, @@ -278,7 +303,7 @@ module IMS_Component { * @param p_Port_uc * @param p_SPI_us * @param p_SPI_uc - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_Init(template (omit) Common_AuthenticationParams_Type p_AuthenticationParams := omit, PortNumber_Type p_Port_us, @@ -311,19 +336,10 @@ module IMS_Component { vc_IMS_Global.Security.ProtectedPorts := valueof(cs_IMS_ProtectedPorts(p_Port_us, p_Port_uc, tsc_IMS_Port_ps, v_Port_pc)); } - /* - * @desc release IMS security info on protected ports - * @status APPROVED (IMS, IMS_IRAT) - */ - function f_IMS_PTC_Security_Release() runs on IMS_PTC - { - vc_IMS_Global.Security := valueof(cs_IMS_SecurityInfo_Init); - } - /* * @desc return true when IMS security is started on protected ports * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_IsStarted() runs on IMS_PTC return boolean { @@ -333,7 +349,7 @@ module IMS_Component { /* * @desc return integrity algorithm stored at the IMS PTC * @return IPsec_IntegrityAlgorithm_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetIntegrityAlgorithm() runs on IMS_PTC return IPsec_IntegrityAlgorithm_Type { @@ -343,7 +359,7 @@ module IMS_Component { /* * @desc return ciphering algorithm stored at the IMS PTC * @return IPsec_CipheringAlgorithm_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetCipheringAlgorithm() runs on IMS_PTC return IPsec_CipheringAlgorithm_Type { @@ -353,7 +369,7 @@ module IMS_Component { /* * @desc return NONCE stored at the IMS PTC * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetNonce() runs on IMS_PTC return charstring { @@ -363,7 +379,7 @@ module IMS_Component { /* * @desc return XRES stored at the IMS PTC * @return B32_128_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetXRES() runs on IMS_PTC return B32_128_Type { @@ -373,7 +389,7 @@ module IMS_Component { /* * @desc return length of XRES as stored at the IMS PTC * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetXRESLength() runs on IMS_PTC return integer // @sic R5s120907 sic@ { @@ -383,7 +399,7 @@ module IMS_Component { /* * @desc set info retrieved from IPCAN * @param p_IpcanInfo - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_SetIpcanInfo(IPCAN_INFO_Type p_IpcanInfo) runs on IMS_PTC { /* @sic R5s120907 R5s130133 additional changes sic@ */ @@ -395,27 +411,53 @@ module IMS_Component { /* * @desc set RAN type * @param p_RanType - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_IMS_PTC_SetRanType(IPCAN_RAN_Type p_RanType) runs on IMS_PTC { vc_IMS_Global.ImsInfo.RanType := p_RanType; } + /* + * @desc reset RAN type to omit + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_PTC_ResetRanType() runs on IMS_PTC + { + vc_IMS_Global.ImsInfo.RanType := omit; + } + /* * @desc get UE release * @return template (omit) integer - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_GetUE_Release() runs on IMS_PTC return template (omit) integer { return vc_IMS_Global.ImsInfo.UE_Release; } + /* + * @desc return true when UE release is >= given release + * @param p_Release + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_PTC_UE_ReleaseGreaterOrEqual(integer p_Release) runs on IMS_PTC return boolean + { + var template (omit) integer v_UERelease := f_IMS_PTC_GetUE_Release(); + var boolean v_Result := false; + + if (isvalue(v_UERelease)) { + v_Result := (valueof(v_UERelease) >= p_Release); + } + return v_Result; + } + /* * @desc get SPIs stored at IMS PTC * @return IMS_SPIs_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetSPIs() runs on IMS_PTC return IMS_SPIs_Type { @@ -425,7 +467,7 @@ module IMS_Component { /* * @desc return security information as stored at the IMS PTC * @return IMS_ProtectedPorts_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetProtectedPorts() runs on IMS_PTC return IMS_ProtectedPorts_Type { @@ -435,7 +477,7 @@ module IMS_Component { /* * @desc Build SecurityMechanism list template from the stored security configuration to be used for sending * @return template (value) SecurityMechanism_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_BuildSecurityServerParam() runs on IMS_PTC return template (value) SecurityMechanism_List { @@ -452,7 +494,7 @@ module IMS_Component { /* * @desc Build SecurityVerify heaader template from the stored security configuration to be used for sending * @return template (present) SecurityVerify - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_BuildSecurityVerifyHeader() runs on IMS_PTC return template (present) SecurityVerify { @@ -469,7 +511,7 @@ module IMS_Component { /* * @desc return true when GIBA * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_SecurityScheme_IsGiba() runs on IMS_PTC return boolean { @@ -492,7 +534,7 @@ module IMS_Component { * @param p_NW_Address * @param p_RegisterReq * @param p_SigCompStarted (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_Init(IP_AddrInfo_Type p_UE_Address, IP_AddrInfo_Type p_NW_Address, @@ -507,6 +549,8 @@ module IMS_Component { v_TransportProtocol := tcp; } + vc_IMS_Global.Ctrl.IgnoreReset := false; /* @sic R5s150031: f_IMS_PTC_ImsInfo_Init is called e.g. after the UE has send the initial REGISTER => from now on we need to care about any reset sic@ */ + vc_IMS_Global.ImsInfo.UE_Address := p_UE_Address; vc_IMS_Global.ImsInfo.NW_Address := p_NW_Address; vc_IMS_Global.ImsInfo.TransportProtocol := v_TransportProtocol; @@ -525,7 +569,7 @@ module IMS_Component { * @desc Get dialog index value related to given enumerated * @param p_Index * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_ImsInfo_GetDialogIndexValue(template (omit) IMS_PTC_DialogIndex_Type p_Index) runs on IMS_PTC return integer { @@ -533,9 +577,13 @@ module IMS_Component { if (isvalue(p_Index)) { select (valueof(p_Index)) { - case (firstDialog) { i := 0; } - case (secondDialog) { i := 1; } - case (referDialog) { i := 2; } + case (firstDialog) { i := 0; } + case (secondDialog) { i := 1; } + case (thirdDialog, + referDialog) { i := 2; } + case (confEventDialog) { i := 3; } /* @sic R5-153986 sic@ */ + case (regEventDialog) { i := 4; } /* @sic R5-153756 sic@ */ + case (msgSummayDialog) { i := 6; } /* @sic R5-153756 sic@ */ case else { FatalError(__FILE__, __LINE__, "invalid dialog"); } } } else { @@ -549,7 +597,7 @@ module IMS_Component { * @desc Get dialog status information for the currenct dialog * @param p_DialogIndex * @return IMS_DialogInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_ImsInfo_GetDialog(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex) runs on IMS_PTC return IMS_DialogInfo_Type { @@ -561,7 +609,7 @@ module IMS_Component { * @desc Set dialog status information for the currenct dialog * @param p_DialogIndex * @param p_DialogInfo - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_ImsInfo_SetDialog(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex, IMS_DialogInfo_Type p_DialogInfo) runs on IMS_PTC @@ -573,7 +621,7 @@ module IMS_Component { /* * @desc return IP address which is used by the UE for IMS signalling (IPv4 or IPv6) * @return IP_AddrInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_UE_Address_Get() runs on IMS_PTC return IP_AddrInfo_Type { @@ -583,7 +631,7 @@ module IMS_Component { /* * @desc return network address stored at the IMS PTC * @return IP_AddrInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_NW_Address_Get() runs on IMS_PTC return IP_AddrInfo_Type { @@ -603,7 +651,7 @@ module IMS_Component { /* * @desc return network address stored at the IMS PTC as charstring * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_NW_Address_GetAddrStr() runs on IMS_PTC return charstring { @@ -635,11 +683,41 @@ module IMS_Component { /* * @desc return P-CSCF address (FQDN) stored at the IMS PTC * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Pcscf_Get() runs on IMS_PTC return charstring { /* @sic R5-144747 removal of px_IMS_Pcscf and px_IMS_Pcscf_Emg sic@ */ - return f_IMS_PTC_NW_Address_GetAddrStr(); + /* @sic R5s140934: P_CSCF_Address sic@ */ + var charstring v_P_CSCF_Address; + + if (ispresent(vc_IMS_Global.ImsInfo.P_CSCF_Address)) { + v_P_CSCF_Address := vc_IMS_Global.ImsInfo.P_CSCF_Address; + } else { + v_P_CSCF_Address := f_IMS_PTC_NW_Address_GetAddrStr(); + } + return v_P_CSCF_Address; + } + + /* + * @desc Check P-CSCF address; + * NOTE: the P-CSCF address is the same address as the NW_Address but in case of IPv6 it may be a different notation + * typically the UE may use the canonical format acc. to RFC 5952 + * @param p_P_CSCF_Address + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_PTC_Pcscf_CheckAndSet(charstring p_P_CSCF_Address) runs on IMS_PTC return boolean + { + var charstring v_P_CSCF_Address := f_IMS_PTC_Pcscf_Get(); + + if (v_P_CSCF_Address != p_P_CSCF_Address) { + if (f_IPAddresses_Compare(v_P_CSCF_Address, p_P_CSCF_Address)) { + vc_IMS_Global.ImsInfo.P_CSCF_Address := p_P_CSCF_Address; + } else { + return false; + } + } + return true; } /* @@ -648,7 +726,7 @@ module IMS_Component { * @param p_Port (default value: *) * @param p_AllowFQDN (default value: true) * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_CheckHostPortForIPAddrOrFQDN(HostPort p_HostPort, template integer p_Port := *, @@ -666,17 +744,18 @@ module IMS_Component { * @desc Check SipUrl (e.g. in Contact header) to be "SIP URI with IP address or FQDN and protected server port of UE or GRUU as returned by the SS in registration" * @param p_SipUrl * @param p_Port (default value: *) - * @param p_AllowGRUU (default value: false) + * @param p_GRUUsInSIP (default value: pc_IMS_GRUUsInSIP) * @param p_AllowFQDN (default value: true) * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_CheckSipUrlForIPAddrOrFQDNOrGRUU(SipUrl p_SipUrl, template integer p_Port := *, - boolean p_AllowGRUU := false, + boolean p_GRUUsInSIP := pc_IMS_GRUUsInSIP, boolean p_AllowFQDN := true) runs on IMS_PTC return boolean { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ - var template (present) SipUrl v_ExpectedSipUrlGRUU; + /* @sic R5-153760: p_GRUUsInSIP := pc_IMS_GRUUsInSIP sic@ */ + var template (present) SipUrl v_ExpectedSipUrl; var HostPort v_HostPort; if (not ischosen(p_SipUrl.components.sip)) { @@ -684,22 +763,20 @@ module IMS_Component { } v_HostPort := p_SipUrl.components.sip.hostPort; - if (p_AllowGRUU and false) { // @sic R5s130133 additional change 4; FFS sic@ - v_ExpectedSipUrlGRUU := f_SIP_BuildSipUri_RX("???", p_Port); - /* !!!! acc. to 24.229 cl. 5.4.7A.2 it seems that GRUU is a SIP URI of a 'normal' public user id with specific SIP URI parameter "gr"; - * !!!! => we need a GRUU specific template for the SipUrl with appropriate parameters; furthermore the GRUU information needs to be stored at the IMS PTC - * !!!! FFS !!!!*/ - if (match(p_SipUrl, v_ExpectedSipUrlGRUU)) { - return true; - } + if (p_GRUUsInSIP) { // @sic R5-153760 sic@ + v_ExpectedSipUrl := f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(gruu), -, cr_UriParameters_gruu); /* when "obtaining and using GRUUs in SIP" the UE shall use the public GRUU in the Contact header + => SIP URI as used during registration + "gr" uri-parameter + @sic R5s150721, R5-153760 sic@ */ + return match(p_SipUrl, v_ExpectedSipUrl); + } else { // No GRUU + return f_IMS_PTC_CheckHostPortForIPAddrOrFQDN(v_HostPort, p_Port, p_AllowFQDN); } - return f_IMS_PTC_CheckHostPortForIPAddrOrFQDN(v_HostPort, p_Port, p_AllowFQDN); } /* * @desc RAN type as stored at the IMS PTC; at the beginning the RAN type is omit => '?' is returned in this case * @return template (present) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_RanType_GetString() runs on IMS_PTC return template (present) charstring { // when RanType is not explicitly initialised it is omit as initialised; => we check for presence only @@ -712,7 +789,7 @@ module IMS_Component { /* * @desc return true when SigComp is started * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_SigCompStarted() runs on IMS_PTC return boolean { @@ -722,7 +799,7 @@ module IMS_Component { /* * @desc return sig comp parameters or omit when sig comp is not started * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetSigCompParam() runs on IMS_PTC return template (omit) GenericParam { @@ -739,7 +816,7 @@ module IMS_Component { * @param p_IdType * @param p_DialogIndex (default value: omit) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetURI(IMS_UriInfo_UriType_Type p_IdType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return charstring @@ -756,7 +833,7 @@ module IMS_Component { case (thirdId) { return vc_IMS_Global.ImsInfo.IMPUList[2]; } - case (registrationId) { + case (registrationId, gruu) { /* @sic R5-153760: support of gruu; same URI as used by the UE in the To header of the REGISTER message sic@ */ if (ispresent(vc_IMS_Global.ImsInfo.Registration.Uri)) { return vc_IMS_Global.ImsInfo.Registration.Uri; } @@ -783,32 +860,36 @@ module IMS_Component { * @desc return SipUrl to be used in DL * @param p_IdType * @param p_Port (default value: omit) + * @param p_DialogIndex (default value: omit) * @return template (value) SipUrl - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetSipUriTX(IMS_UriInfo_UriType_Type p_IdType, - template (omit) integer p_Port := omit) runs on IMS_PTC return template (value) SipUrl - { - return f_SIP_BuildSipUri_TX(f_IMS_PTC_ImsInfo_GetURI(p_IdType), p_Port); + template (omit) integer p_Port := omit, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) SipUrl + { /* @sic R5s150382 change 1: p_DialogIndex sic@ */ + return f_SIP_BuildSipUri_TX(f_IMS_PTC_ImsInfo_GetURI(p_IdType, p_DialogIndex), p_Port); } /* * @desc return SipUrl to be used in UL * @param p_IdType * @param p_Port (default value: omit) + * @param p_DialogIndex (default value: omit) * @return template (present) SipUrl * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_PTC_ImsInfo_GetSipUriRX(IMS_UriInfo_UriType_Type p_IdType, - template integer p_Port := omit) runs on IMS_PTC return template (present) SipUrl - { - return f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(p_IdType), p_Port); + template integer p_Port := omit, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) SipUrl + { /* @sic R5s150382 change 1: p_DialogIndex sic@ */ + return f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(p_IdType, p_DialogIndex), p_Port); } /* * @desc return all PublicUserIds for which the UE is registered or shall be registered * @return CharStringList_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetAllIMPUs() runs on IMS_PTC return CharStringList_Type { @@ -819,7 +900,7 @@ module IMS_Component { * @desc return SipUrl as used for subscription * @param p_Port (default value: omit) * @return template (present) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(template integer p_Port := omit) runs on IMS_PTC return template (present) SipUrl { @@ -839,18 +920,18 @@ module IMS_Component { * @desc Initialise structure of type IMS_DialogInfo_Type * @param p_DialogInfo * @param p_CseqType - * @param p_MessageHeader_InviteOrRefer + * @param p_MessageHeader_InviteOrReferOrSubscribe * @return IMS_DialogInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_DialogInfo_Init(IMS_DialogInfo_Type p_DialogInfo, IMS_PTC_CseqType_Type p_CseqType, - MessageHeader p_MessageHeader_InviteOrRefer) return IMS_DialogInfo_Type + MessageHeader p_MessageHeader_InviteOrReferOrSubscribe) return IMS_DialogInfo_Type { - var charstring v_FromURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrRefer.fromField.addressField)); - var charstring v_ToURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrRefer.toField.addressField)); - var charstring v_FromTag := f_MessageHeader_GetFromTag(p_MessageHeader_InviteOrRefer); - var integer v_CseqValue := p_MessageHeader_InviteOrRefer.cSeq.seqNumber; + var charstring v_FromURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrReferOrSubscribe.fromField.addressField)); + var charstring v_ToURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrReferOrSubscribe.toField.addressField)); + var charstring v_FromTag := f_MessageHeader_GetFromTag(p_MessageHeader_InviteOrReferOrSubscribe); + var integer v_CseqValue := p_MessageHeader_InviteOrReferOrSubscribe.cSeq.seqNumber; var IMS_DialogInfo_Type v_Dialog := p_DialogInfo; select (p_CseqType) { @@ -866,7 +947,7 @@ module IMS_Component { v_Dialog.LocalURI := v_ToURI; /* @sic R5s140121 change 2.2: needs to be v_ToURI instead of v_FromURI sic@ */ v_Dialog.RemoteURI := v_FromURI; /* @sic R5s140121 change 2.2: needs to be v_FromURI instead of v_ToURI sic@ */ v_Dialog.MobileOriginated := true; - v_Dialog.LocalTag := omit; /* @sic R5s130497 change 1 - MCC160 implementation sic@ */ + v_Dialog.LocalTag := omit; /* @sic R5s130497 change 1 - MCC160 implementation sic@ */ v_Dialog.RemoteTag := v_FromTag; v_Dialog.RemoteCseq := v_CseqValue; } @@ -875,9 +956,9 @@ module IMS_Component { } } - v_Dialog.CallId := p_MessageHeader_InviteOrRefer.callId.callid; - if (ispresent(p_MessageHeader_InviteOrRefer.sessionId)) { - v_Dialog.SessionId := p_MessageHeader_InviteOrRefer.sessionId.sessid; + v_Dialog.CallId := p_MessageHeader_InviteOrReferOrSubscribe.callId.callid; + if (ispresent(p_MessageHeader_InviteOrReferOrSubscribe.sessionId)) { + v_Dialog.SessionId := p_MessageHeader_InviteOrReferOrSubscribe.sessionId.sessid; } return v_Dialog; } @@ -885,22 +966,33 @@ module IMS_Component { /* * @desc Initialise global variables for SIP dialog * @param p_CseqType - * @param p_MessageHeader_InviteOrRefer + * @param p_MessageHeader_InviteOrReferOrSubscribe * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogInit(IMS_PTC_CseqType_Type p_CseqType, - MessageHeader p_MessageHeader_InviteOrRefer, + MessageHeader p_MessageHeader_InviteOrReferOrSubscribe, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC { /* @sic R5s140017 MCC160 implementation: ToTag replaced by RemoteTag and LocalTag; additional state variables: CallId, SessionId sic@ */ /* @sic R5sXXXXXX function may be used for REFER dialog as well (-> e.g. test case 15.21) sic@ */ var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); - v_Dialog := f_IMS_DialogInfo_Init(v_Dialog, p_CseqType, p_MessageHeader_InviteOrRefer); /* @sic R5sXXXXXX new function f_IMS_DialogInfo_Init to use IMS_PTC_DialogIndex_Type as local context - e.g. in f_IMS_InviteUserToConference_AnnexC19 sic@ */ + v_Dialog := f_IMS_DialogInfo_Init(v_Dialog, p_CseqType, p_MessageHeader_InviteOrReferOrSubscribe); fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); } + /* + * @desc check whether given dialog is started + * @param p_DialogIndex (default value: omit) + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogIsStarted(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return boolean + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return ispresent(v_Dialog.CallId); + } + /* * @desc release a SIP dialog * @param p_DialogIndex (default value: omit) @@ -911,6 +1003,12 @@ module IMS_Component { fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, valueof(cs_IMS_DialogInfo_Init)); } + /* + * @desc returns true if a dialog is released already + * @param p_DialogIndex (default value: omit) + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ function f_IMS_PTC_ImsInfo_DialogIsReleased(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return boolean { var template (omit) charstring v_LocalTag := f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex); @@ -932,7 +1030,7 @@ module IMS_Component { * @desc function to set local tag acc. to response for INVITE (MO call setup) * @param p_Tag * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogSetLocalTag(charstring p_Tag, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC @@ -960,7 +1058,7 @@ module IMS_Component { * @desc function to be used to get local tag for sending any request to a UE within a dialog (e.g. PRACK, BYE etc.) * @param p_DialogIndex (default value: omit) * @return template (omit) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetLocalTag(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) charstring { @@ -972,7 +1070,7 @@ module IMS_Component { * @desc function to be used to get remote tag for sending any request to a UE within a dialog (e.g. PRACK, BYE etc.) * @param p_DialogIndex (default value: omit) * @return template (omit) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetRemoteTag(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) charstring { @@ -984,7 +1082,7 @@ module IMS_Component { * @desc function to get call id of the current dialog * @param p_DialogIndex (default value: omit) * @return template (value) CallId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetCallId(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) CallId { @@ -997,7 +1095,7 @@ module IMS_Component { * @desc function to be used to get remote tag for sending any request to a UE within a dialog (e.g. PRACK, BYE etc.) * @param p_DialogIndex (default value: omit) * @return template (omit) SessionId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetSessionId(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) SessionId { @@ -1009,6 +1107,104 @@ module IMS_Component { return v_SessionId; } + /* + * @desc get previous SDP message (sent by the UE) + * @param p_DialogIndex (default value: omit) + * @return template (omit) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogGetPrevSdpMessageRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) SDP_Message + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return v_Dialog.SdpMessagePrevRX; + } + + /* + * @desc store SDP message (sent by the UE) + * @param p_SDP_Message + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogSetPrevSdpMessageRX(template (omit) SDP_Message p_SDP_Message, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + if (isvalue(p_SDP_Message)) { /* @sic R5s150666, R5-153525 sic@ */ + v_Dialog.SdpMessagePrevRX := valueof(p_SDP_Message); + } else { + v_Dialog.SdpMessagePrevRX := omit; + } + fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); + } + + /* + * @desc set SDP session version to be used in DL + * @param p_SessVersion + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogSetSessVersionTX(integer p_SessVersion, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { /* @sic R5-150707: new function to allow to set session version needs to specific values by a test case sic@ */ + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + v_Dialog.SdpSessionVersionTX := p_SessVersion; + fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); + } + + /* + * @desc get SDP session version to be used in DL + * @param p_DialogIndex (default value: omit) + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogGetSessVersionTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return integer + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return v_Dialog.SdpSessionVersionTX; + } + + /* + * @desc get next session version for DL + * @param p_DialogIndex (default value: omit) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return charstring + { /* @sic R5-150707: replaces f_IMS_PTC_SDP_SessVersionIndex_GetNext and f_IMS_SDP_SessVersion_GetNext sic@ + NOTE: when session version needs to be set to specific values by a test case we cannot use an index anymore to increment the value */ + + var integer v_SdpSessionVersionTX := f_IMS_PTC_ImsInfo_DialogGetSessVersionTX(p_DialogIndex) + 1; + f_IMS_PTC_ImsInfo_DialogSetSessVersionTX(v_SdpSessionVersionTX, p_DialogIndex); + + return int2str(v_SdpSessionVersionTX); + } + + /* + * @desc set SDP session id to be used in DL + * @param p_SessId + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS) + */ + function f_IMS_PTC_ImsInfo_DialogSetSessIdTX(charstring p_SessId, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { /* @sic R5-150707: new function sic@ */ + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + v_Dialog.SdpSessionIdTX := p_SessId; + fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); + } + + /* + * @desc set SDP session id to be used in DL + * @param p_DialogIndex (default value: omit) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogGetSessIdTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return charstring + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return v_Dialog.SdpSessionIdTX; + } + /* * @desc returns true when the current dialog is MO * @param p_DialogIndex (default value: omit) @@ -1028,7 +1224,7 @@ module IMS_Component { /* * @desc return contact address as provided in contact header of the REGISTER message * @return SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetContactUrl() runs on IMS_PTC return SipUrl { @@ -1038,7 +1234,7 @@ module IMS_Component { /* * @desc return Contact header as stored * @param p_ContactUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_SetContactUrl(SipUrl p_ContactUrl) runs on IMS_PTC { /* shall be used when subsequent REGISTER has been received during registration */ @@ -1072,7 +1268,7 @@ module IMS_Component { /* * @desc return transport protocol (UDP/TCP) to be used for requests in DL * @return InternetProtocol_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetTransportProtocol() runs on IMS_PTC return InternetProtocol_Type { @@ -1084,7 +1280,7 @@ module IMS_Component { * @param p_CseqType * @param p_DialogIndex (default value: omit) * @return template (omit) integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqGet(IMS_PTC_CseqType_Type p_CseqType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) integer @@ -1106,7 +1302,7 @@ module IMS_Component { * @param p_CseqType * @param p_DialogIndex (default value: omit) * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqGetValue(IMS_PTC_CseqType_Type p_CseqType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return integer @@ -1124,7 +1320,7 @@ module IMS_Component { * @param p_CseqType * @param p_CseqValue * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqSet(IMS_PTC_CseqType_Type p_CseqType, integer p_CseqValue, @@ -1145,7 +1341,7 @@ module IMS_Component { * @param p_CseqType * @param p_DialogIndex (default value: omit) * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqIncr(IMS_PTC_CseqType_Type p_CseqType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return integer @@ -1158,7 +1354,7 @@ module IMS_Component { /* * @desc return appropriate branch value * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetNextBranch() runs on IMS_PTC return charstring { /* @sic R5s130561 change 4: addtional branch values sic@ */ @@ -1182,7 +1378,7 @@ module IMS_Component { /* * @desc provide latest HomeDomainName * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetHomeDomainName() runs on IMS_PTC return charstring { @@ -1192,7 +1388,7 @@ module IMS_Component { /* * @desc provide latest HomeDomainName * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetPrivateUserId() runs on IMS_PTC return charstring { @@ -1209,23 +1405,26 @@ module IMS_Component { } /* - * @desc reset ImsInfo as it is before initial registration - * @status APPROVED (IMS) + * @desc reset ImsInfo, Security and 'IgnoreReset' flag as it is before initial registration + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_PTC_ImsInfo_Reset() runs on IMS_PTC - { + function f_IMS_PTC_Reset() runs on IMS_PTC + { /* @sic R5s150031: new common function sic@ */ vc_IMS_Global.ImsInfo := valueof(cs_IMS_ImsInfo_Init(vc_IMS_Global.ImsInfo.RanType, vc_IMS_Global.ImsInfo.UE_Release, vc_IMS_Global.ImsInfo.HomeDomainName, vc_IMS_Global.ImsInfo.PrivateUserId, - vc_IMS_Global.ImsInfo.SecurityScheme)); + vc_IMS_Global.ImsInfo.SecurityScheme, + vc_IMS_Global.ImsInfo.BranchIndex)); /* @sic R5s140802 sic@ */ + vc_IMS_Global.Security := valueof(cs_IMS_SecurityInfo_Init); + vc_IMS_Global.Ctrl.IgnoreReset := true; } //**************************************************************************** /* * @desc to deal with entry and exit of the test body * @param p_TestBodyFlag - * @status APPROVED (IMS_IRAT, IMS, LTE) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_TestBody_Set(boolean p_TestBodyFlag) runs on IMS_PTC { @@ -1235,7 +1434,7 @@ module IMS_Component { /* * @desc check whether test body is active * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_TestBody_Check() runs on IMS_PTC return boolean { @@ -1244,8 +1443,8 @@ module IMS_Component { /* * @desc to block UL data from default handling - * @param p_TestBodyFlag - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_BlockUlDataInDefault + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_BlockUlDataInDefault_Set(boolean p_BlockUlDataInDefault) runs on IMS_PTC { @@ -1257,7 +1456,7 @@ module IMS_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SetVerdictFailOrInconc(charstring p_FileName, LineNo_Type p_LineNo, @@ -1289,14 +1488,19 @@ module IMS_Component { //**************************************************************************** - template (present) IMS_CONFIG_CNF cr_IMS_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) IMS_CONFIG_CNF cr_IMS_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc Default behaviour for test cases when the IMS behaviour is matter of the test purpose - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ altstep a_IMS_PTC_DefaultBehaviour_TestcaseSpecificImsHandling() runs on IMS_PTC { + var boolean v_IgnoreReset := vc_IMS_Global.Ctrl.IgnoreReset; + + [v_IgnoreReset] IPCAN.receive(cmr_IPCAN_IMS_Reset) { + repeat; + } [] IMS_CTRL.receive(cr_IMS_CONFIG_CNF_Any) { all timer.stop; f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "unexpected receive event at the IMS_CTRL port"); @@ -1319,7 +1523,7 @@ module IMS_Component { * @desc Default behaviour for default IMS handling * when IMS PTC shall only deal with IMS messages as for the initial registration * but IMS behavour is not matter of the test purpose - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ altstep a_IMS_PTC_DefaultBehaviour_DefaultImsHandling() { @@ -1349,7 +1553,7 @@ module IMS_Component { /* * @desc to activate the standard default behaviour or default behaviour for test case specific IMS handling * @param p_Handling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ActivateDefault(IMS_PTC_Handling_Type p_Handling) runs on IMS_PTC { @@ -1376,7 +1580,7 @@ module IMS_Component { * @param p_SecurityScheme (default value: omit) * @param p_RanType (default value: omit) * @param p_UE_Release (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Init(PDN_Index_Type p_PdnIndex := PDN_1, IMS_PTC_Handling_Type p_Handling := testcaseSpecificHandling, @@ -1411,6 +1615,7 @@ module IMS_Component { vc_IMS_Global.PdnIndex := p_PdnIndex; vc_IMS_Global.Ctrl.TestBody := false; vc_IMS_Global.Ctrl.BlockUlDataInDefault := false; /* @sic R5s140780 - MCC160 Implementation sic@ */ + vc_IMS_Global.Ctrl.IgnoreReset := true; /* @sic R5s150031: IMS is already reset after initialisation sic@ */ vc_IMS_Global.Ctrl.Default := null; vc_IMS_Global.Security := valueof(cs_IMS_SecurityInfo_Init); vc_IMS_Global.ImsInfo := valueof(cs_IMS_ImsInfo_Init(p_RanType, p_UE_Release, v_HomeDomainName, v_PrivateUserId, v_SecurityScheme)); @@ -1421,7 +1626,7 @@ module IMS_Component { /* * @desc create IMS component * @return IMS_PTC - * @status APPROVED (LTE, IMS_IRAT, LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Create() return IMS_PTC { diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_EmgFunctions.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_EmgFunctions.ttcn similarity index 90% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_EmgFunctions.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_EmgFunctions.ttcn index d3d4a4c..82b7113 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_EmgFunctions.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_EmgFunctions.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-08-10 11:24:52 +0200 (Sun, 10 Aug 2014) $ // $Rev: 11869 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_IP_Config.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_IP_Config.ttcn similarity index 75% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_IP_Config.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_IP_Config.ttcn index bdf8eb4..53de7b0 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_IP_Config.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_IP_Config.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-04-25 09:25:26 +0200 (Sat, 25 Apr 2015) $ +// $Rev: 13507 $ /******************************************************************************/ module IMS_IP_Config { @@ -24,7 +24,7 @@ module IMS_IP_Config { template (value) IMS_SPIs_Type p_SPIs, IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ ProtectedPorts := p_ProtectedPorts, SPIs := p_SPIs, IntegrityAlgorithm := p_IntegrityAlgorithm, @@ -33,16 +33,16 @@ module IMS_IP_Config { template (value) IMS_RegistrationInfo_Type cs_IMS_RegistrationInfo(IP_AddrInfo_Type p_NW_Address, IP_AddrInfo_Type p_UE_Address, - template (omit) IMS_SecurityInfo_Type p_SecurityInfo) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (omit) IMS_SecurityInfo_Type p_SecurityInfo := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ NW_Address := p_NW_Address, UE_Address := p_UE_Address, SecurityInfo := p_SecurityInfo }; template (value) IMS_PortsAndSecurityConfigReq_Type cs_IMS_PortsAndSecurityConfig(template (omit) PortNumber_Type p_UnprotectedPort_us, - template (value) IMS_RegistrationInfo_Type p_RegistrationInfo) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (omit) IMS_RegistrationInfo_Type p_RegistrationInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ UnprotectedPort_us := p_UnprotectedPort_us, RegistrationInfo := p_RegistrationInfo }; @@ -51,7 +51,7 @@ module IMS_IP_Config { bitstring p_SHA_1_96Key, bitstring p_DES_EDE3_CBCKey, bitstring p_AES_CBCKey) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ MD5_96Key := p_MD5_96Key, SHA_1_96Key := p_SHA_1_96Key, DES_EDE3_CBCKey := p_DES_EDE3_CBCKey, @@ -59,35 +59,36 @@ module IMS_IP_Config { }; template (value) IMS_CONFIG_REQ cas_IMS_InstallKey_REQ(template (value) IPsec_SecurityKeys_Type p_InstallKey) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ InstallKey := p_InstallKey }; template (value) IMS_CONFIG_REQ cas_IMS_PortsAndSecurityConfig_REQ(template (value) IMS_PortsAndSecurityConfigReq_Type p_PortsAndSecurityConfig) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ PortsAndSecurityConfig := p_PortsAndSecurityConfig }; - template (value) IMS_CONFIG_REQ cas_IMS_SecurityRelease_REQ(template (value) IMS_SecurityInfo_Type p_SecurityInfo) := + template (value) IMS_CONFIG_REQ cas_IMS_SecurityRelease_REQ := { /* @status APPROVED (IMS) */ - SecurityRelease := p_SecurityInfo + /* @sic R5w150015: SecurityRelease gets Null_Type sic@ */ + SecurityRelease := true }; - template (value) IMS_CONFIG_REQ cas_IMS_CloseTCP_REQ := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) IMS_CONFIG_REQ cas_IMS_RegInfoRelease_REQ := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT) */ + template (value) IMS_CONFIG_REQ cas_IMS_CloseTCP_REQ := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) IMS_CONFIG_REQ cas_IMS_RegInfoRelease_REQ := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) IMS_CONFIG_CNF car_IMS_InstallKey_CNF := {InstallKey := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) IMS_CONFIG_CNF car_IMS_PortsAndSecurityConfig_CNF := {PortsAndSecurityConfig := ?}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) IMS_CONFIG_CNF car_IMS_InstallKey_CNF := {InstallKey := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) IMS_CONFIG_CNF car_IMS_PortsAndSecurityConfig_CNF := {PortsAndSecurityConfig := ?}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (present) IMS_CONFIG_CNF car_IMS_SecurityRelease_CNF := {SecurityRelease := true}; /* @status APPROVED (IMS) */ - template (present) IMS_CONFIG_CNF car_IMS_CloseTCP_CNF := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) IMS_CONFIG_CNF car_IMS_RegInfoRelease_CNF := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT) */ + template (present) IMS_CONFIG_CNF car_IMS_CloseTCP_CNF := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) IMS_CONFIG_CNF car_IMS_RegInfoRelease_CNF := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc Common function to configure the IP PTC (send IMS_CONFIG_REQ, receive IMS_CONFIG_CNF) * @param p_IMS_CONFIG_REQ * @param p_IMS_CONFIG_CNF - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_ConfigureIP(template (value) IMS_CONFIG_REQ p_IMS_CONFIG_REQ, template (present) IMS_CONFIG_CNF p_IMS_CONFIG_CNF) runs on IMS_PTC @@ -106,7 +107,7 @@ module IMS_IP_Config { * the keys are sent to the SS via the IP PTC * @param p_IK * @param p_CK - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_InstallIPsecKeys(B128_Type p_IK, B128_Type p_CK) runs on IMS_PTC @@ -125,44 +126,40 @@ module IMS_IP_Config { /* * @desc configure ports and security at the SS * @param p_UnprotectedPort_us - * @param p_NW_Address - * @param p_UE_Address - * @param p_SecurityInfo (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_RegistrationInfo + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PortsAndSecurityConfig(template (omit) PortNumber_Type p_UnprotectedPort_us, - IP_AddrInfo_Type p_NW_Address, - IP_AddrInfo_Type p_UE_Address, - template (omit) IMS_SecurityInfo_Type p_SecurityInfo := omit) runs on IMS_PTC + template (omit) IMS_RegistrationInfo_Type p_RegistrationInfo := omit) runs on IMS_PTC { /* configure IMS security; the IP PTC returns SPIs which it has assigned; * p_SecurityInfo is omit in case of GIBA * @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: SPIs for re-authentication sic@ */ + /* @sic R5s150268 change 2: p_RegistrationInfo instead of p_NW_Address, p_UE_Address, p_SecurityInfo sic@ */ - if (isvalue(p_SecurityInfo)) { - if (valueof(p_SecurityInfo.SPIs.SPI_us) == valueof(p_SecurityInfo.SPIs.SPI_uc)) { + if (isvalue(p_RegistrationInfo.SecurityInfo)) { + if (valueof(p_RegistrationInfo.SecurityInfo.SPIs.SPI_us) == valueof(p_RegistrationInfo.SecurityInfo.SPIs.SPI_uc)) { FatalError(__FILE__, __LINE__, "SPI_us and SPI_uc shall have different values"); } } - fl_IMS_ConfigureIP(cas_IMS_PortsAndSecurityConfig_REQ(cs_IMS_PortsAndSecurityConfig(p_UnprotectedPort_us, cs_IMS_RegistrationInfo(p_NW_Address, p_UE_Address, p_SecurityInfo))), + fl_IMS_ConfigureIP(cas_IMS_PortsAndSecurityConfig_REQ(cs_IMS_PortsAndSecurityConfig(p_UnprotectedPort_us, p_RegistrationInfo)), car_IMS_PortsAndSecurityConfig_CNF); /* @sic R5s140780 - MCC160 Implementation sic@ */ } /* * @desc trigger IP PTC to release security related to this IMS PTC - * @param p_SecurityInfo * @status APPROVED (IMS) */ - function f_IMS_Register_SecurityRelease(template (value) IMS_SecurityInfo_Type p_SecurityInfo) runs on IMS_PTC - { - fl_IMS_ConfigureIP(cas_IMS_SecurityRelease_REQ(p_SecurityInfo), + function f_IMS_Register_SecurityRelease() runs on IMS_PTC + { /* @sic R5w150015: p_SecurityInfo removed sic@ */ + fl_IMS_ConfigureIP(cas_IMS_SecurityRelease_REQ, car_IMS_SecurityRelease_CNF); /* @sic R5s140780 - MCC160 Implementation sic@ */ } /* * @desc trigger IP PTC to release registration info related to this IMS PTC - * @status APPROVED (IMS, IMS_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterInfo_Release() runs on IMS_PTC { @@ -172,7 +169,7 @@ module IMS_IP_Config { /* * @desc trigger IP PTC to close TCP connections related to this IMS PTC - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_CloseTCP() runs on IMS_PTC { diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_MessageBody_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_MessageBody_Templates.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_MessageBody_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_MessageBody_Templates.ttcn index 265da12..4429227 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_MessageBody_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_MessageBody_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-24 23:07:55 +0200 (Sat, 24 May 2014) $ -// $Rev: 11321 $ +// @version: IWD_15wk38 +// $Date: 2015-06-01 18:14:24 +0200 (Mon, 01 Jun 2015) $ +// $Rev: 13618 $ /******************************************************************************/ module IMS_MessageBody_Templates { @@ -52,7 +52,7 @@ module IMS_MessageBody_Templates { }; template (value) MessageBody cs_MessageBody_RegInfo(template (value) Reginfo_Type p_RegInfo) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ xmlBody := oct2char(bit2oct(encvalue(p_RegInfo))) /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ }; @@ -82,13 +82,24 @@ module IMS_MessageBody_Templates { }; template (value) MessageBody cs_MessageBody_SipFrag(charstring p_SipFrag) := - { + { /* @status APPROVED (IMS) */ sipfrag := p_SipFrag }; - template (value) MessageBody cs_MessageBody_XML(template (value) TIMS3GPP_Type p_TIMS3GPP) := - { /* @status APPROVED (IMS) */ - xmlBody := oct2char(bit2oct(encvalue(p_TIMS3GPP))) + // @sic R5s141138 sic@ + template (value) MessageBody cs_MessageBody_XML(template (value) Ims_3gpp_Type p_Ims3gpp) := + { /* @status APPROVED (IMS, IMS_IRAT) */ + xmlBody := oct2char(bit2oct(encvalue(p_Ims3gpp))) + }; + + template (value) MessageBody cs_MessageBody_XML_SRVCC(template (value) State_and_event_info_Type p_State_and_event_info) := + { + xmlBody := oct2char(bit2oct(encvalue(p_State_and_event_info))) + }; + + template (present) MessageBody cr_MessageBody_XML_SRVCC(template (present) State_and_event_info_Type p_State_and_event_info) := + { + xmlBody := oct2char(bit2oct(encvalue(p_State_and_event_info))) }; //**************************************************************************** diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_PTC_CoordMsg.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_PTC_CoordMsg.ttcn similarity index 85% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_PTC_CoordMsg.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_PTC_CoordMsg.ttcn index 8ee8ace..d703408 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_PTC_CoordMsg.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_PTC_CoordMsg.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 18:07:49 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12192 $ +// @version: IWD_15wk38 +// $Date: 2015-08-26 09:14:31 +0200 (Wed, 26 Aug 2015) $ +// $Rev: 14113 $ /******************************************************************************/ module IMS_PTC_CoordMsg { @@ -19,6 +19,7 @@ module IMS_PTC_CoordMsg { // parameters type enumerated IMS_TestProcedure_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @sic R5s141286 change 9: new field IPCAN_MO_Speech_EmergencyCall sic@ */ IPCAN_InitialRegistration, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5.2.3 without RRC Connection Release at the end of the procedure * NOTE: As working assumption the UE does IMS REGISTRATION automatically after RRC/NAS registration; * if that is not the case the IMS PTC may trigger release of the connection after some time and initiate manual IMS registration (FFS) */ @@ -28,9 +29,13 @@ module IMS_PTC_CoordMsg { IPCAN_MT_SpeechCall, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.7.3 */ IPCAN_MO_VideoCall, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.8.3 */ IPCAN_MT_VideoCall, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.9.3 */ + IPCAN_MO_AddVideo, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.11.3 */ + IPCAN_MT_AddVideo, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.12.3 */ + IPCAN_ReleaseVideo, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.15.3 */ IPCAN_MO_IMS_Signalling, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5.3.3 with m = n = 0; used e.g. for MT SMS test case 18.2 */ IPCAN_MT_IMS_Signalling, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5.3.3 Steps 3 to 9 with m = n = 0; used e.g. for MT SMS test case 18.1 */ - IPCAN_XCAP_Signalling /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.14 */ + IPCAN_XCAP_Signalling, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.14 */ + IPCAN_MO_Speech_EmergencyCall /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.4.3 and 4.5A.6.3 */ }; type enumerated IMS_TestConfiguration_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -49,9 +54,8 @@ module IMS_PTC_CoordMsg { SIB2_TC_12_19b, /* SIB2 configuration acc. to test case 12.19b */ SIB2_TC_12_20, /* SIB2 configuration acc. to test case 12.20 */ SIB2_TC_12_20a, /* SIB2 configuration acc. to test case 12.20a */ - IPCAN_UpdateUELocationInformation, /* EUTRA: set UELocationInformation acc. to 36.509 */ - IPCAN_EmergencyBearers /* EUTRA: configure 2 bearers for emergency (test case 19.3.3) */ - }; + IPCAN_UpdateUELocationInformation /* EUTRA: set UELocationInformation acc. to 36.509 */ + }; type record IPCAN_INFO_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120907 R5s130133 additional changes sic@ */ @@ -71,7 +75,7 @@ module IMS_PTC_CoordMsg { * depending on the connection type triggers may need to be sent from IPCAN to IMS or from IMS to IPCAN to synchronise establishment * of dedicated DRBs (EUTRA) or secondary PDP contexts (UTRAN) */ IPCAN_ENDPROCEDURE, /* trigger RRC connection release by the IPCAN_PTC; - * as a SIP may be sent out just before end of the procedure in general a delay of 2s shall be added before sending IPCAN_ENDPROCEDURE to IPCAN; + * as a SIP message may be sent out just before end of the procedure in general a delay of 2s shall be added before sending IPCAN_ENDPROCEDURE to IPCAN; * for UTRAN it is up to IPCAN and SS implementation to cope with possible/necessary release of (secondary) PDP context; * a trigger shall be sent from IPCAN to IMS to indicate when RRC connection is released */ IPCAN_RELEASE, /* Detach UE and release cell (postamble); @@ -108,9 +112,11 @@ module IMS_PTC_CoordMsg { type union IMS_IPCAN_Coordination_MSG { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ Null_Type TriggerEvent, // any trigger of confirmation Null_Type AbortEvent, // sent instead of TriggerEvent if procedure shall be aborted + Null_Type Reset, // IMS <- IPCAN: to reset IMS after UE has been switched off and gets switched on again IMS_IPCAN_Command_Type IMS_IPCAN_Command, // IMS -> IPCAN: command to be done at IPCAN IPCAN_IMS_Response_Type IPCAN_IMS_Response, // IMS <- IPCAN: response for previous command - NAS_ProtocolConfigOptions_Type ProtocolConfigOptions // IMS <-> IPCAN: PCOs to be used in NAS signalling + NAS_ProtocolConfigOptions_Type ProtocolConfigOptions, // IMS <-> IPCAN: PCOs to be used in NAS signalling + charstring IPCAN_IMS_Data // IMS <- IPCAN: to send data from IPCAN to IMS @sic R5-151607 sic@ }; type port IMS_IPCAN_CO_ORD_PORT message @@ -120,11 +126,11 @@ module IMS_PTC_CoordMsg { }; - type union IMS_IMS_Coordination_MSG { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type union IMS_IMS_Coordination_MSG { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Null_Type TriggerEvent }; - type port IMS_IMS_CO_ORD_PORT message { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type port IMS_IMS_CO_ORD_PORT message { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ out IMS_IMS_Coordination_MSG; in IMS_IMS_Coordination_MSG; }; @@ -155,7 +161,7 @@ module IMS_PTC_CoordMsg { template (omit) IMS_TestConfiguration_Type p_TestConfiguration := omit, template (omit) IMS_TestProcedure_Type p_TestProcedure := omit, template (omit) IMS_CellConfiguration_Type p_CellConfiguration := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IMS_IPCAN_Command := { Name := p_CommandName, TestConfiguration := p_TestConfiguration, @@ -197,9 +203,31 @@ module IMS_PTC_CoordMsg { @sic R5s130133 additional changes sic@ */ template (present) IMS_IPCAN_Coordination_MSG cmr_IPCAN_IMS_Response := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IPCAN_IMS_Response := ? }; + + template (value) IMS_IPCAN_Coordination_MSG cms_IPCAN_IMS_Reset := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + Reset := true + }; + + template (present) IMS_IPCAN_Coordination_MSG cmr_IPCAN_IMS_Reset := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + Reset := true + }; + + template (value) IMS_IPCAN_Coordination_MSG cms_IPCAN_IMS_Data (charstring p_Data):= + { /* @status APPROVED (LTE_A) */ + /* @sic R5-151607 sic@ */ + IPCAN_IMS_Data := p_Data + }; + + template (present) IMS_IPCAN_Coordination_MSG cmr_IPCAN_IMS_Data (template (present) charstring p_Data := ?):= + { /* @status APPROVED (LTE_A) */ + /* @sic R5-151607 sic@ */ + IPCAN_IMS_Data := p_Data + }; //---------------------------------------------------------------------------- @@ -218,7 +246,7 @@ module IMS_PTC_CoordMsg { * @desc query IPCAN specific information from IPCAN PTC * @param p_ImsCoorPort * @return IPCAN_INFO_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_IPCAN_Query(IMS_IPCAN_CO_ORD_PORT p_ImsCoorPort) return IPCAN_INFO_Type { @@ -271,6 +299,19 @@ module IMS_PTC_CoordMsg { return v_Result; } + /* + * @desc Wait for a synchonisation message from IMS/IPCAN PTC + * @param p_Port + * @return charstring + * @status APPROVED (LTE_A) + */ + function f_IMS_IPCAN_WaitForData(IMS_IPCAN_CO_ORD_PORT p_Port) return charstring + { /* @sic R5-151607 sic@ */ + var IMS_IPCAN_Coordination_MSG v_IMS_IPCAN_CoordMsg; + p_Port.receive(cmr_IPCAN_IMS_Data) -> value v_IMS_IPCAN_CoordMsg; // @sic R5s150704 sic@ + return v_IMS_IPCAN_CoordMsg.IPCAN_IMS_Data; + } + //---------------------------------------------------------------------------- /* * @desc send message to IMS/IPCAN PTC diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_CallControl.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallControl.ttcn similarity index 76% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_CallControl.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallControl.ttcn index 3915b07..6062a61 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_CallControl.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallControl.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 15:45:52 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12207 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 13:17:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14487 $ /******************************************************************************/ module IMS_Procedures_CallControl { @@ -14,6 +14,7 @@ module IMS_Procedures_CallControl { import from CommonDefs all; import from CommonIP all; import from IP_ASP_TypeDefs all; + import from IMS_IP_Config all; import from IMS_Component all; import from IMS_ASP_TypeDefs all; import from IMS_ASP_Templates all; @@ -43,7 +44,7 @@ module IMS_Procedures_CallControl { A_2_1_A7 /* INVITE for creating an emergency session within an emergency registration */ }; - type record IMS_InviteRequestWithSdp_Type { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) + type record IMS_InviteRequestWithSdp_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5w140112: new type sic@ */ IMS_RoutingInfo_Type RoutingInfo, INVITE_Request Invite, @@ -69,7 +70,7 @@ module IMS_Procedures_CallControl { * @param p_IMS_DATA_REQ * @param p_SdpOffer * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_InviteRequestWithSdpMO(IMS_DATA_REQ p_IMS_DATA_REQ, SDP_Message p_SdpOffer) return IMS_InviteRequestWithSdp_Type @@ -114,51 +115,39 @@ module IMS_Procedures_CallControl { } /* - * @desc check session version of given SDP message to be greater than previous session version - * @param p_CurrentSDP_Message - * @param p_PreviousSDP_Message - * @param p_PreviousSessionVersion (default value: omit) - * @status APPROVED (IMS, LTE_A) + * @desc Check max-red parameter in fmtp line + * @param p_AttributeList + * @param p_Fmt + * @param p_FormatSpecificParameters (default value: cr_AMR_Fmtp_DefaultParameters) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_IMS_SDP_CheckSessionVersion(SDP_Message p_CurrentSDP_Message, - template (omit) SDP_Message p_PreviousSDP_Message, - template (omit) integer p_PreviousSessionVersion := omit) runs on IMS_PTC - { /* @sic R5s140686, R5-144755: parameter p_PreviousSDP_Message; check whether current and previous SDP message are identically sic@ */ - var integer v_PreviousSessionVersion; - var integer v_CurrentSessionVersion := str2int(p_CurrentSDP_Message.origin.session_version); - var template SDP_Message v_PreviousSDP_Template; - - if (isvalue(p_PreviousSDP_Message)) { - v_PreviousSessionVersion := str2int(valueof(p_PreviousSDP_Message.origin.session_version)); - if (v_PreviousSessionVersion == v_CurrentSessionVersion) { - v_PreviousSDP_Template := p_PreviousSDP_Message; - v_PreviousSDP_Template.origin.session_version := ?; - if (not match(p_CurrentSDP_Message, v_PreviousSDP_Template)) { /* => previous and current message are not indentical */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "session version is the same as in previous SDP message but content has changed"); + function fl_IMS_SDP_Fmtp_CheckMaxRed(template (omit) SDP_attribute_list p_AttributeList, + charstring p_Fmt, + template (present) SDP_attribute_fmtp_format_specific_params p_FormatSpecificParameters := cr_AMR_Fmtp_DefaultParameters) runs on IMS_PTC + { + var template (omit) SDP_attribute v_Attribute; + var charstring v_RedMaxValStr; + var integer v_RedMaxVal; + + v_Attribute := f_SDP_AttributeList_GetAttribute(p_AttributeList, cr_SDP_Attribute_fmtp(p_Fmt, p_FormatSpecificParameters)); + if (isvalue(v_Attribute)) { + v_RedMaxValStr := f_SIP_SemicolonParamList_GetParamValue(v_Attribute.fmtp.params.paramList, "max-red"); // @sic R5w140113, R5w140009 sic@ + if (v_RedMaxValStr != "") { + v_RedMaxVal := str2int(v_RedMaxValStr); + if (not match(v_RedMaxVal, (0..220))) { /* @sic R5-141114sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid value for red-max parameter"); } - return; } - } else if (isvalue(p_PreviousSessionVersion)) { - v_PreviousSessionVersion := valueof(p_PreviousSessionVersion); - } else { - FatalError(__FILE__, __LINE__, ""); - } - // check session version for subsequent SDP message being different: - if (v_CurrentSessionVersion != v_PreviousSessionVersion + 1) { /* @sic R5-143201 sic@ */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "session version not incremented"); } } /* * @desc Check whether given media description contains default AMR codec * @param p_SDP_Media_Desc - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_SDP_CheckMediaDescr_AMR_8000_1(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC { - var template (omit) SDP_attribute v_Attribute; - var integer v_RedMaxVal; - var charstring v_RedMaxValStr; var charstring v_Fmt := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_Desc); if (v_Fmt == "") { /* @sic R5-141114: tsc_AMR_Fmtp_DefaultParameters -> tsc_AMR_Fmtp_DefaultParameters_RX_Pattern sic@ */ @@ -166,18 +155,48 @@ module IMS_Procedures_CallControl { } /* check of the red-max parameter: @sic R5-141114sic@ */ - v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_Media_Desc.attributes, cr_SDP_Attribute_fmtp(v_Fmt, cr_AMR_Fmtp_DefaultParameters)); - if (isvalue(v_Attribute)) { - v_RedMaxValStr := f_SIP_SemicolonParamList_GetParamValue(v_Attribute.fmtp.params.paramList, "max-red"); // @sic R5w140113, R5w140009 sic@ - if (v_RedMaxValStr != "") { - v_RedMaxVal := str2int(v_RedMaxValStr); - if (not match(v_RedMaxVal, (0..220))) { /* @sic R5-141114sic@ */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid value for red-max parameter"); - } - } + fl_IMS_SDP_Fmtp_CheckMaxRed(p_SDP_Media_Desc.attributes, v_Fmt); + } + + /* + * @desc Check whether given media description contains AMR-WB/16000 codec + * @param p_SDP_Media_Desc + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_IMS_SDP_CheckMediaDescr_AMR_16000_1(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC + { + var charstring v_Fmt := f_SDP_MediaDescr_GetAMR_16000_1(p_SDP_Media_Desc); + + if (v_Fmt == "") { /* @sic R5-141114: tsc_AMR_Fmtp_DefaultParameters -> tsc_AMR_Fmtp_DefaultParameters_RX_Pattern sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "AMR/WB/1 not found in given media description"); + } + + /* check of the red-max parameter: */ + fl_IMS_SDP_Fmtp_CheckMaxRed(p_SDP_Media_Desc.attributes, v_Fmt); + } + + /* + * @desc Check whether given media description contains EVS/16000 codec + * @param p_SDP_Media_Desc + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_IMS_SDP_CheckMediaDescr_EVS_16000_1(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC + { + var charstring v_Fmt := f_SDP_MediaDescr_GetEVS_16000_1(p_SDP_Media_Desc); + + if (v_Fmt == "") { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "EVS/16000/1 not found in given media description"); } + + /* check of the red-max parameter: */ + fl_IMS_SDP_Fmtp_CheckMaxRed(p_SDP_Media_Desc.attributes, v_Fmt); } + /* + * @desc Check whether given media description contains default video codec + * @param p_SDP_Media_Desc + * @status APPROVED (IMS) + */ function f_IMS_SDP_CheckMediaDescr_H264_90000(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC { if (f_SDP_MediaDescr_GetH264_90000(p_SDP_Media_Desc) == "") { @@ -188,7 +207,7 @@ module IMS_Procedures_CallControl { /* * @desc DTMF Digits, Telephony Tones, and Telephony Signals (RFC 4733) * @param p_SDP_Media_Desc - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_SDP_CheckMediaDescr_DTMF(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC { @@ -207,10 +226,9 @@ module IMS_Procedures_CallControl { function f_IMS_SIP_Reason_RX(integer p_CauseValue, template charstring p_Text := omit) runs on IMS_PTC return template (present) Reason { - var template (omit) integer v_UE_Release := f_IMS_PTC_GetUE_Release(); var template charstring v_ReasonText := p_Text; - if (not (ispresent(v_UE_Release) and (valueof(v_UE_Release) >= 10))) { // @sic R5s140234 change 1; R5-142948; R5-142287 change 3 sic@ + if (not f_IMS_PTC_UE_ReleaseGreaterOrEqual(10)) { // @sic R5s140234 change 1; R5-142948; R5-142287 change 3; R5s150630: f_IMS_PTC_UE_ReleaseGreaterOrEqual sic@ v_ReasonText := omit; } return cr_Reason(p_CauseValue, v_ReasonText); @@ -255,27 +273,48 @@ module IMS_Procedures_CallControl { /* * @desc returns expected route-set depending on whether the dialog is MO or MT - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_DialogIndex (default value: omit) * @return template (present) RouteBody_List * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function fl_RouteSet_RouteBodyList_RX(boolean p_IsEmergency := false) runs on IMS_PTC return template (present) RouteBody_List - { + function f_RouteSet_RouteBodyList_RX(IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) RouteBody_List + { /* @sic R5s150692 change 6: parameter p_EmergencyType sic@ */ var template (present) RouteBody_List v_RouteBodyList := {}; - if (f_IMS_PTC_ImsInfo_DialogIsMO()) { - v_RouteBodyList := fl_RouteSet_ReverseOrder(f_IMS_RouteSet_MO_Call_TX(p_IsEmergency)); + if (f_IMS_PTC_ImsInfo_DialogIsMO(p_DialogIndex)) { + v_RouteBodyList := fl_RouteSet_ReverseOrder(f_IMS_RouteSet_MO_Call_TX(p_EmergencyType)); /* @sic R5s150692 change 6 sic@ */ } else { v_RouteBodyList := f_IMS_RouteSet_MT_Call_TX(); } return v_RouteBodyList; } + /* + * @desc returns given RecordRoute but with address information of the first entry being set to ? + * this is needed as the first entry may be the IP address of the P-CSCF which may be represented differently + * @param p_Invite_RecordRoute + * @return template RecordRoute + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_RecordRoute_AsInInvite_RX(template (omit) RecordRoute p_Invite_RecordRoute) return template RecordRoute + { + var template RecordRoute v_RecordRoute := omit; + + if (ispresent(p_Invite_RecordRoute)) { + v_RecordRoute := p_Invite_RecordRoute; + v_RecordRoute.routeBody[0].nameAddr.addrSpec.components := ?; /* as the PCSCF address may be an IPv6 address in may be represented differently by the UE than sent to the UE + the address needs to be checked explicitly after receiving (@sic R5s150039 sic@) */ + } + return v_RecordRoute; + } + /* * @desc revert entries of Route header * @param p_RecordRoute * @return template (present) Route - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function fl_Route_ReverseOrderOfRecordRouteRX(template (omit) RecordRoute p_RecordRoute) return template (present) Route { @@ -361,12 +400,13 @@ module IMS_Procedures_CallControl { /* * @desc build up Via header to be received from the UE in the INVITE request + * @param p_Port_us (default value: *) * @return template (present) Via * @status APPROVED (LTE, IMS_IRAT, IMS, LTE_A, LTE_IRAT) */ - function f_IMS_InviteRequest_ViaRX() runs on IMS_PTC return template (present) Via - { - var template integer v_Port_us := *; + function f_IMS_InviteRequest_ViaRX(template integer p_Port_us := *) runs on IMS_PTC return template (present) Via + { /* @sic R5-150745: still in A.2.10 the port number is mandatory for GIBA (in crast to A.2.1) => parameter p_Port_us sic@ */ + var template integer v_Port_us := p_Port_us; if (f_IMS_PTC_Security_IsStarted()) { v_Port_us := f_IMS_PTC_GetPort_us(); @@ -401,104 +441,6 @@ module IMS_Procedures_CallControl { return cs_Via(v_ViaBodyList); } - //---------------------------------------------------------------------------- - /* - * @desc returns either next Cseq value of ? if there has been no request sent by the UE so far - * @param p_CseqType (default value: dialogRemote) - * @param p_DialogIndex (default value: omit) - * @return template (present) integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_CSeqValueRX(IMS_PTC_CseqType_Type p_CseqType := dialogRemote, - template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) integer - { - var template (present) integer v_CSeqValue := ?; - - if (isvalue(f_IMS_PTC_ImsInfo_CseqGet(p_CseqType, p_DialogIndex))) { - v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(p_CseqType, p_DialogIndex); - } - return v_CSeqValue; - } - - /* - * @desc Build the From header for requests being received within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (present) From - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_FromHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) From - { /* @sic R5s140017 MCC160 implementation sic@ */ - /* @sic R5s140121 change 2.1: "runs on" added sic@ */ - var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogRemoteId); - return cr_FromWithTag(v_SipUrl, v_FromTag); - } - - /* - * @desc Build the To header for requests being received within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (present) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_ToHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) To - { /* @sic R5s140017 MCC160 implementation sic@ */ - var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogLocalId); - return cr_ToWithTag(v_SipUrl, v_ToTag); - } - - /* - * @desc Build the From header for requests being sent within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (value) From - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_FromHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) From - { /* @sic R5s140017 MCC160 implementation sic@ */ - /* @sic R5s140121 change 4.1: "runs on" added sic@ */ - var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogLocalId); - return cs_From(v_SipUrl, v_FromTag); - } - - /* - * @desc Build the To header for requests being sent within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (value) To - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_ToHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) To - { /* @sic R5s140017 MCC160 implementation sic@ */ - var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogRemoteId); - return cs_ToWithTag(v_SipUrl, v_ToTag); - } - - /* - * @desc check to-tag of received response and store value if necessary (mainly called after receiving 180 or 183 response) - * @param p_ResponseMessageHeader - * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_Dialog_SetRemoteTag(MessageHeader p_ResponseMessageHeader, - template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC - { /* @sic R5s140017 MCC160 implementation: f_IMS_PTC_ImsInfo_DialogGetToTag, f_IMS_PTC_ImsInfo_DialogSetToTag replaced by f_IMS_PTC_ImsInfo_DialogGetRemoteTag, f_IMS_PTC_ImsInfo_DialogSetRemoteTag sic@ */ - var template (omit) charstring v_DialogRemoteTag := f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex); - var template (omit) charstring v_ReceivedToTag := f_MessageHeader_GetToTag(p_ResponseMessageHeader); - var charstring v_ReceivedToTagValue; - - if (ispresent(v_ReceivedToTag)) { - v_ReceivedToTagValue := valueof(v_ReceivedToTag); - if (ispresent(v_DialogRemoteTag)) { // @sic R5s140173 sic@ - if (not match(v_ReceivedToTagValue, v_DialogRemoteTag)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid To-tag"); - } - } else { - f_IMS_PTC_ImsInfo_DialogSetRemoteTag(v_ReceivedToTagValue); - } - } - } - //============================================================================ // Functions to build responses to be sent to the UE //---------------------------------------------------------------------------- @@ -528,7 +470,7 @@ module IMS_Procedures_CallControl { * @param p_InviteRequest * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_PrackRequested (default value: true) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @return template (value) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @@ -536,17 +478,17 @@ module IMS_Procedures_CallControl { function f_IMS_InviteResponse_180_MessageHeaderTX(INVITE_Request p_InviteRequest, charstring p_ContactUri := px_IMS_CalleeContactUri, boolean p_PrackRequested := true, - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC return template (value) MessageHeader { // p_PrackRequested .. condition A3; needs to be true when the 180 response shall be acknowleged with a PRACK i.e. is "sent reliably" acc. to A.2.6 A3 - // p_IsEmergency .. condition A4 // p_SrvccAlertingSupported .. if voice call => condition A6; needs to be set to false for non-voice calls /* @sic R5s130333 change 2: new parameter p_PrackRequested sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5s140370 change 6: new parameter p_SrvccAlertingSupported sic@ */ + /* @sic R5s150692 change 11: parameter p_EmergencyType sic@ */ var MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; - var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_IsEmergency); /* @sic R5s130756 change 8: p_IsEmergency sic@ */ + var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_EmergencyType); /* @sic R5s150692 change 11 sic@ */ v_MessageHeader_Response.recordRoute := cs_RecordRoute(v_RouteBodyList); v_MessageHeader_Response.via := v_MessageHeader_Invite.via; @@ -560,11 +502,11 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.require := cs_Require(tsc_OptionTagList_100rel); /* -> reliable provisional responses acc. RFC 3262 */ v_MessageHeader_Response.rSeq := cs_RSeq(tsc_IMS_RSeqNumFor183 + 1); } - if (p_IsEmergency) { // Condition A4 + if (p_EmergencyType != NO_EMERGENCY) { // Condition A4 @sic R5s150692 change 11 sic@ v_MessageHeader_Response.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_lr_TX(tsc_IMS_Emergency_TelUri)); } if (p_SrvccAlertingSupported) { - v_MessageHeader_Response.featureCaps := cs_FeatureCaps(tsc_IMS_FeatureCap_SrvccAlerting); + v_MessageHeader_Response.featureCaps := cs_FeatureCaps({ cs_GenericParam(tsc_IMS_FeatureCap_SrvccAlerting)}); // @sic R5-145796 sic@ } return v_MessageHeader_Response; } @@ -599,23 +541,27 @@ module IMS_Procedures_CallControl { * @param p_AdditionalOptionTagsForRequire (default value: tsc_OptionTagList_Empty) * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_AditionalContactParams (default value: omit) - * @param p_IsEmergency (default value: false) - * @param p_Video (default value: tsc_IMS_VideoFeature) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_A6 (default value: pc_IMS_Video_FeatureTag) + * @param p_Earlymedia (default value: false) * @return template (value) MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_InviteResponse_183_MessageHeaderTX(INVITE_Request p_InviteRequest, OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty, charstring p_ContactUri := px_IMS_CalleeContactUri, template (omit) SemicolonParam_List p_AditionalContactParams := omit, - boolean p_IsEmergency := false, - boolean p_Video := tsc_IMS_VideoFeature) runs on IMS_PTC return template (value) MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_A6 := pc_IMS_Video_FeatureTag, + boolean p_Earlymedia := false) runs on IMS_PTC return template (value) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ + /* @sic R5s150692 change 7: parameter p_EmergencyType sic@ */ var MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; var template (omit) SemicolonParam_List v_ContactParams := p_AditionalContactParams; var OptionTag_List v_OptionTag_List := tsc_OptionTagList_100rel & p_AdditionalOptionTagsForRequire; // @sic R5-133629 sic@ - var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_IsEmergency); /* @sic R5s130756 change 8: p_IsEmergency sic@ */ + var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_EmergencyType); /* @sic R5s150692 change 7 sic@ */ v_MessageHeader_Response.recordRoute := cs_RecordRoute(v_RouteBodyList); v_MessageHeader_Response.via := v_MessageHeader_Invite.via; @@ -627,14 +573,19 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Response.cSeq := v_MessageHeader_Invite.cSeq; v_MessageHeader_Response.contentType := cs_ContentTypeSDP; - if (p_IsEmergency) { // Condition A5 + if (p_EmergencyType == ASSERTED_EMERGENCY) { // Condition A5 @sic R5s150692 change 7 sic@ v_MessageHeader_Response.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_lr_TX(tsc_IMS_Emergency_TelUri)); } - if (p_Video) { // @sic R5s130109 sic@ + if (pc_BSRVCC) { // @sic R5s140962 sic@ + v_MessageHeader_Response.featureCaps := cs_FeatureCaps({ cs_GenericParam(tsc_IMS_FeatureCap_SrvccPreAlerting)}); // @sic R5-145796 sic@ + } + if (p_A6) { // @sic R5s130109 sic@ v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("video")); } v_MessageHeader_Response.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_ContactUri), v_ContactParams); - + if (p_Earlymedia) { // @sic R5-151953 sic@ + v_MessageHeader_Response.pEarlyMedia := cs_PEarlyMedia({c_sendonly}) + } return v_MessageHeader_Response; } @@ -644,26 +595,43 @@ module IMS_Procedures_CallControl { * @param p_ContentType (default value: omit) * @param p_EmergencyTelURI (default value: omit) * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @param p_AdditionalOptionTagsForRequire (default value: tsc_OptionTagList_Empty) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @return template (value) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_OtherResponse_200_MessageHeaderTX(template (value) MessageHeader p_MessageHeader_Request, template (omit) ContentType p_ContentType := omit, template (omit) charstring p_EmergencyTelURI := omit, - charstring p_ContactUri := px_IMS_CalleeContactUri) runs on IMS_PTC return template (value) MessageHeader + charstring p_ContactUri := px_IMS_CalleeContactUri, + OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) + runs on IMS_PTC return template (value) MessageHeader { /* @sic R5-130683: common handling for INVITE and UPDATE sic@ */ /* p_EmergencyTelURI .. shall be set e.g. to tsc_IMS_Emergency_TelUri for condition A6 in A.3.1 */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150237: parameter p_AdditionalOptionTagsForRequire sic@ */ + /* @sic R5s150692 change 17: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; var charstring v_Method := valueof(p_MessageHeader_Request.cSeq.method); var boolean v_A1A3 := false; var template (value) RouteBody_List v_RouteBodyList; - var boolean v_IsEmergency := ispresent(p_EmergencyTelURI); // Condition A6 @sic R5s130756 change 10 sic@ + var IMS_Emergency_Type v_EmergencyType := p_EmergencyType; + var template (omit) Require v_Require := omit; + + if (lengthof(p_AdditionalOptionTagsForRequire) > 0) { + v_Require := cs_Require(p_AdditionalOptionTagsForRequire); + } + + if ((p_EmergencyType == ASSERTED_EMERGENCY) and (not (ispresent(p_EmergencyTelURI)))) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "EmergencyTelURI not provided for Asserted Emergency"); /* @sic R5s150692 change 17 sic@ */ + } select (v_Method) { case ("INVITE", "UPDATE") { v_A1A3 := true; } } v_MessageHeader_Response.via := p_MessageHeader_Request.via; + v_MessageHeader_Response.require := v_Require; /* @sic R5s150237 change 1 sic@ */ v_MessageHeader_Response.fromField := p_MessageHeader_Request.fromField; v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_MessageHeader_Request); /* @sic R5-131897, R5-132063 - generic handling of to-tags sic@ */ v_MessageHeader_Response.callId := p_MessageHeader_Request.callId; @@ -672,11 +640,11 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.contentType := p_ContentType; if (v_A1A3) { - v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(v_IsEmergency); /* @sic R5s130756 change 8: p_IsEmergency sic@ */ + v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(v_EmergencyType); /* @sic R5s150692 change 17 sic@ */ v_MessageHeader_Response.recordRoute := cs_RecordRoute(v_RouteBodyList); v_MessageHeader_Response.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_ContactUri)); } - if (v_IsEmergency) { // Condition A6 + if (v_EmergencyType != NO_EMERGENCY) { // Condition A6 v_MessageHeader_Response.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_lr_TX(valueof(p_EmergencyTelURI))); } return v_MessageHeader_Response; @@ -771,32 +739,36 @@ module IMS_Procedures_CallControl { return v_MessageHeader_Response; } - + /* * @desc 180 Ringing for INVITE (see TS 34.229, A.2.6) * @param p_InviteRequest - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_ContentType (default value: *) * @param p_ContentLength (default value: ?) * @return template (present) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_InviteResponse_180_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, template ContentType p_ContentType := *, template (present) ContentLength p_ContentLength := ?) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5-140975: new parameters p_ContentType, p_ContentLength to ensure that the content type is omit in case of C.11 sic@ */ + /* @sic R5s150692 change 22: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Response := cr_MessageHeader_Dummy; var integer v_Port_us := f_IMS_PTC_GetPort_us(); - v_MessageHeader_Response.recordRoute := v_MessageHeader_Invite.recordRoute; /* @sic R5s130510 change 9 sic@ */ + v_MessageHeader_Response.recordRoute := f_IMS_RecordRoute_AsInInvite_RX(v_MessageHeader_Invite.recordRoute); /* @sic R5s130510 change 9 sic@ + @sic R5s150039 change 2 sic@ */ + v_MessageHeader_Response.via := f_Via_ResponseRX(v_MessageHeader_Invite.via); /* @sic R5s140350 sic@ */ - v_MessageHeader_Response.fromField := f_IMS_Response_FromHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ - v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ + v_MessageHeader_Response.fromField := f_IMS_Response_FromHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ - v_MessageHeader_Response.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us), cr_FeatureParam_3gpp_icsi_ref); // host address needs to be checked after receiving + v_MessageHeader_Response.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us), cr_FeatureParamList_3gpp_icsi_ref); /* host address needs to be checked after receiving + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ v_MessageHeader_Response.callId := v_MessageHeader_Invite.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Response.cSeq := v_MessageHeader_Invite.cSeq; @@ -804,7 +776,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.contentLength := p_ContentLength; /* @sic R5-140975 sic@ */ v_MessageHeader_Response.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); // NOTE: acc. A.2.6 there is no condition regarding GIBA - if (p_IsEmergency) { // Condition A4 + if (p_EmergencyType == ASSERTED_EMERGENCY) { // Condition A4 @sic R5s150692 change 22 sic@ v_MessageHeader_Response.pAssertedID := cr_PAssertedId(f_SIP_BuildSipUri_lr_RX(tsc_IMS_Emergency_TelUri)); } return v_MessageHeader_Response; @@ -814,24 +786,33 @@ module IMS_Procedures_CallControl { * @desc 183 Session Progress for INVITE (see TS 34.229, A.2.3) * @param p_InviteRequest * @param p_AdditionalOptionTagsForRequire (default value: tsc_OptionTagList_Empty) + * @param p_A7 (default value: pc_IMS_Video_FeatureTag) * @return template (present) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_InviteResponse_183_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, - OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty) + OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty, + boolean p_A7 := pc_IMS_Video_FeatureTag) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Response := cr_MessageHeader_Dummy; var integer v_Port_us := f_IMS_PTC_GetPort_us(); var OptionTag_List v_OptionTag_List := tsc_OptionTagList_100rel & p_AdditionalOptionTagsForRequire; // @sic R5-133629 sic@ - + var template (present) SemicolonParam_List v_ContactParams := { cr_FeatureParam_3gpp_icsi_ref }; + + if (p_A7) { /* @sic R5s150180 sic@ */ + v_ContactParams := f_SemicolonParam_List_Add_RX(v_ContactParams, cr_FeatureParam_Video); + } + v_MessageHeader_Response.via := f_Via_ResponseRX(v_MessageHeader_Invite.via); /* @sic R5s140350 sic@ */ - v_MessageHeader_Response.recordRoute := v_MessageHeader_Invite.recordRoute; /* @sic R5s130510 change 6.1, R5-135004 change 1 sic@ */ + v_MessageHeader_Response.recordRoute := f_IMS_RecordRoute_AsInInvite_RX(v_MessageHeader_Invite.recordRoute); /* @sic R5s130510 change 6.1, R5-135004 change 1 sic@ + @sic R5s150039 change 2 sic@ */ v_MessageHeader_Response.require := cr_Require(v_OptionTag_List); v_MessageHeader_Response.fromField := f_IMS_Response_FromHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ - v_MessageHeader_Response.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us), cr_FeatureParam_3gpp_icsi_ref); // host address needs to be checked after receiving + v_MessageHeader_Response.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us), superset(all from v_ContactParams)); /* host address needs to be checked after receiving + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ v_MessageHeader_Response.rSeq := cr_RSeq(?); /* @sic R5s130510 sic@ */ v_MessageHeader_Response.callId := v_MessageHeader_Invite.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ @@ -860,7 +841,7 @@ module IMS_Procedures_CallControl { * @desc 380 Alternative Service (see TS 34.229, A.4.1) * @param p_InviteRequest * @return template (value) MessageHeader - * @status APPROVED (IMS) + * @status APPROVED (IMS, IMS_IRAT) */ function f_IMS_InviteResponse_380_MessageHeaderTX(INVITE_Request p_InviteRequest) runs on IMS_PTC return template (value) MessageHeader { @@ -869,7 +850,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.via := v_MessageHeader_Invite.via; v_MessageHeader_Response.fromField := v_MessageHeader_Invite.fromField; - v_MessageHeader_Response.toField := cs_ToDef(f_Addr_Union_GetSipUrl(v_MessageHeader_Invite.toField.addressField)); + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(v_MessageHeader_Invite); /* @sic R5s140788 change 16 - MCC160 Implementation sic@ */ v_MessageHeader_Response.pAssertedID := cs_PAssertedId(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get())); /* @sic R5-144747: removal of px_IMS_Pcscf_Emg => f_IMS_PTC_Pcscf_Get sic@ */ v_MessageHeader_Response.callId := v_MessageHeader_Invite.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ @@ -908,8 +889,8 @@ module IMS_Procedures_CallControl { * @param p_Context (default value: A_2_1_A4) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @param p_MTSI (default value: pc_MultimediaTelephonyService) - * @param p_Video (default value: tsc_IMS_VideoFeature) - * @param p_SessionIdSupported (default value: false) + * @param p_Video (default value: pc_IMS_Video_FeatureTag) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @param p_CSeqValue (default value: 4711) * @return template (value) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) @@ -918,12 +899,15 @@ module IMS_Procedures_CallControl { INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert, boolean p_MTSI := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ - boolean p_Video := tsc_IMS_VideoFeature, - boolean p_SessionIdSupported := false, + boolean p_Video := pc_IMS_Video_FeatureTag, + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported, integer p_CSeqValue := 4711) runs on IMS_PTC return template (value) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5-140915 MT call hold requires re-INVITE => new parameter p_Context for A4/A5 sic@ */ /* @sic R5s140385 change 6: new parameter p_SrvccAlertingSupported sic@ */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ + var template (value) MessageHeader v_MessageHeader_Invite := cs_MessageHeader_Dummy; var template (value) SipUrl v_PublicUserId_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); // @sic R5-133304: use default public user id sic@ var template (omit) SemicolonParam_List v_ContactParams := omit; @@ -996,7 +980,7 @@ module IMS_Procedures_CallControl { if (p_Context != A_2_1_A5) { if (p_SrvccAlertingSupported) { /* @sic R5s140385 change 6 - NOTE: feature caps shall only be inserted when creating a voice call sic@ */ - v_MessageHeader_Invite.featureCaps := cs_FeatureCaps(tsc_IMS_FeatureCap_SrvccAlerting); + v_MessageHeader_Invite.featureCaps := cs_FeatureCaps({ cs_GenericParam(tsc_IMS_FeatureCap_SrvccAlerting)}); // @sic R5-145796 sic@ } f_IMS_PTC_ImsInfo_DialogInit(dialogLocal, valueof(v_MessageHeader_Invite)); @@ -1057,6 +1041,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Update.cSeq := cs_CseqDef(v_CSeqValue, "UPDATE"); v_MessageHeader_Update.maxForwards := cs_MaxForwardsDef; v_MessageHeader_Update.contentType := cs_ContentTypeSDP; + v_MessageHeader_Update.contact := v_MessageHeader_Invite.contact; /* @sic R5-150692 sic@ */ return v_MessageHeader_Update; } @@ -1137,7 +1122,7 @@ module IMS_Procedures_CallControl { * @param p_Context (default value: A_2_1_A4) * @param p_A3 (default value: pc_MultimediaTelephonyService) * @param p_A8 (default value: pc_IMS_Geolocation) - * @param p_A9 (default value: false) + * @param p_A9 (default value: pc_IMS_SessionIdSupported) * @param p_A11 (default value: false) * @return template (present) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @@ -1148,12 +1133,12 @@ module IMS_Procedures_CallControl { INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, boolean p_A3 := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ boolean p_A8 := pc_IMS_Geolocation, - boolean p_A9 := false, + boolean p_A9 := pc_IMS_SessionIdSupported, boolean p_A11 := false) runs on IMS_PTC return template (present) MessageHeader { /* p_A3: MTSI p_A8: UE uses Geolocation header to provide its geographical location for emergency session setup, has obtained its location and is setting up an emergency session - p_A9: UE supports Session-ID + p_A9: UE supports Session-ID @sic R5s150086: pc_IMS_SessionIdSupported per default sic@ p_A11: INVITE for creating a video call and UE supports video media feature tag NOTE1: If SigComp shall be applied the param "comp=sigcomp" is optional for Via, Route and Contact NOTE2: condition A5 (re-INVITE within a dialog) is not considered yet and will have impact e.g. on checking of the From/To headers */ @@ -1170,14 +1155,20 @@ module IMS_Procedures_CallControl { var template DisplayName v_DisplayName := *; var template (present) SipUrl v_SipUrlFrom := ?; /* per default any SIP URI is accepted in the From header in the first place; further checks may be applied in f_IMS_A_2_1_Invite_CommonChecks (depending on the conditions acc. to A.2.1 */ + var template (present) charstring v_Pcscf; var template (present) charstring v_MediaType := "application/sdp"; var template (present) CallId v_CallId; var template (present) integer v_CSeqValue := ?; var template (present) From v_From; var template (present) To v_To; var template SessionId v_SessionId; + var template AcceptBody_List v_AcceptBodyList := {}; var OptionTag_List v_OptionTag_List := tsc_OptionTagList_100rel & p_AdditionalOptionTagsForSupported; + if (pc_IMS_CS_PS_SRVCCMidCall or pc_IMS_CS_PS_SRVCCAlert) { // @sic R5-145746 sic@ + v_OptionTag_List := v_OptionTag_List & tsc_OptionTagList_norefersub; + } + if (p_Context == A_2_1_A6) { // INVITE for creating an emergency session in case of no registration // Via, Route, Contact: ports to be used v_Port_us := ?; @@ -1195,7 +1186,7 @@ module IMS_Procedures_CallControl { } if (p_Context == A_2_1_A5) { /* re-invite @sic R5s140017 MCC160 implementation sic@ */ - v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(); + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(); v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); v_From := f_IMS_RequestInDialog_FromHeaderRX(); v_To := f_IMS_RequestInDialog_ToHeaderRX(); @@ -1204,8 +1195,13 @@ module IMS_Procedures_CallControl { } else { /* normal case: no re-invite */ // route body acc. to conditions in A.2.1 - v_RouteBodyList[0] := cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)); - if (not match(p_Context, (A_2_1_A6, A_2_1_A7))) { // => no emergency call + v_Pcscf := ?; /* @sic R5s140934 change 6: P-CSCF address is checked later on sic@ */ + + + if (match(p_Context, (A_2_1_A6, A_2_1_A7))) { // => emergency call + v_RouteBodyList[0] := cr_RouteBody(*, cr_SipUri_HostPort(v_Pcscf, v_Port_ps)); /* @sic R5s150817: "loose routing" parameter not mandatory for emergency call sic@ */ + } else { + v_RouteBodyList[0] := cr_RouteBody(*, cr_SipUri_HostPort_lr(v_Pcscf, v_Port_ps)); /* @sic R5s140873: v_Pcscf; R5s140934 change 6 sic@ */ v_RouteBodyList[1] := cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)); } if (p_A8) { @@ -1228,7 +1224,8 @@ module IMS_Procedures_CallControl { v_MessageHeader_Invite.sessionId := v_SessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Invite.cSeq := cr_CseqDef(v_CSeqValue, "INVITE"); /* additional checks in f_IMS_A_2_1_Invite_CommonChecks: A5 */ v_MessageHeader_Invite.supported := cr_Supported(v_OptionTag_List); - v_MessageHeader_Invite.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us)); /* additional checks in f_IMS_A_2_1_Invite_CommonChecks: check of FQDN or IP address, check of feature-param for A3, A6, A10, A12 */ + v_MessageHeader_Invite.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* additional checks in f_IMS_A_2_1_Invite_CommonChecks: check of FQDN or IP address, check of feature-param for A3, A6, A10, A12 + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ v_MessageHeader_Invite.contentType := cr_ContentType(v_MediaType); v_MessageHeader_Invite.maxForwards := cr_MaxForwardsDef; @@ -1250,9 +1247,21 @@ module IMS_Procedures_CallControl { if (not v_IsGiba) { v_MessageHeader_Invite.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); } + if (p_Context == A_2_1_A4) { /* @sic R5s140017 change 9.3 sic@ */ - v_MessageHeader_Invite.accept := cr_Accept({cr_AcceptBody("application/sdp"), cr_AcceptBody("application/3gpp-ims+xml"), *}); + v_AcceptBodyList := {cr_AcceptBody("application/sdp"), cr_AcceptBody("application/3gpp-ims+xml")}; + } + if (pc_IMS_CS_PS_SRVCCMidCall) { // @sic R5-145746 sic@ + v_AcceptBodyList[lengthof(v_AcceptBodyList)] := cr_AcceptBody("application/vnd.3gpp.mid-call+xml"); // add another element in the array + } + if (pc_IMS_CS_PS_SRVCCAlert) { // @sic R5-145746 sic@ + v_AcceptBodyList[lengthof(v_AcceptBodyList)] := cr_AcceptBody("application/vnd.3gpp.state-and-event-info+xml"); // add another element in the array + v_MessageHeader_Invite.recvInfo := cr_RecvInfo ({cr_InfoPackage_Type("g.3gpp.state-and-event")}); // @sic R5-145746, R5s150704 sic@ } + if (lengthof(v_AcceptBodyList) > 0) { + v_MessageHeader_Invite.accept := cr_Accept(superset(all from v_AcceptBodyList)); + } + if (p_A8) { v_MessageHeader_Invite.geolocation := cr_GeolocationAny; // Checked in f_IMS_A_2_1_Invite_CommonChecks v_MessageHeader_Invite.geolocationRouting := cr_GeolocationRoutingAny; // Checked in f_IMS_A_2_1_Invite_CommonChecks @sic R5-133151 sic@ @@ -1278,7 +1287,7 @@ module IMS_Procedures_CallControl { * @param p_MessageHeader_PrevReliableResponse * @param p_ContentType (default value: *) * @return template (present) MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_PrackRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, template (value) MessageHeader p_MessageHeader_PrevReliableResponse, @@ -1308,18 +1317,20 @@ module IMS_Procedures_CallControl { /* * @desc UPDATE (see TS 34.229, A.2.5) * @param p_InviteRequest + * @param p_EmergencyType (default value: NO_EMERGENCY) * @return template (present) MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ - function f_IMS_UpdateRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest) + function f_IMS_UpdateRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150692 change 8: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Update := cr_MessageHeader_Dummy; var template (present) integer v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(); - var template (present) RouteBody_List v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(); /* @sic R5s140385 change 3 - MCC160 Implementation: sic@ - In case of MO call establishment the results in f_IMS_PTC_ImsInfo_DialogIsMO - what is the same as used in f_IMS_InviteResponse_183_MessageHeaderTX */ + var template (present) RouteBody_List v_RouteBodyList := f_RouteSet_RouteBodyList_RX(p_EmergencyType); /* @sic R5s140385 change 3 - MCC160 Implementation: sic@ + @sic R5s150692 change 8 sic@ */ var template (present) Via v_Via; if (f_IMS_PTC_ImsInfo_DialogIsMO()) { /* @sic R5s140385 change 3 - MCC160 Implementation sic@ */ @@ -1337,6 +1348,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Update.cSeq := cr_CseqDef(v_CSeqValue, "UPDATE"); v_MessageHeader_Update.maxForwards := cr_MaxForwardsDef; v_MessageHeader_Update.contentType := cr_ContentTypeSDP; + v_MessageHeader_Update.contact := cr_Contact(?); /* @sic R5-150692 sic@ */ if (not f_IMS_PTC_SecurityScheme_IsGiba()) { v_MessageHeader_Update.require := cr_RequireSecAgree; @@ -1354,20 +1366,20 @@ module IMS_Procedures_CallControl { * @desc ACK (see TS 34.229, A.2.7) * @param p_InviteRequest * @param p_StatusLine_PrevResponse - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_IsReInvite (default value: false) * @return template (present) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_AckRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, template (value) StatusLine p_StatusLine_PrevResponse, - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, boolean p_IsReInvite := false) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130684: p_StatusLine_PrevResponse made mandatory, p_MessageHeader_PrevResponse removed, new parameter p_IsGiba sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ - /* @sic R5s130897 change 2: new parameter p_IsEmergency sic@ */ /* @sic R5-141115: new parameter p_IsReInvite sic@ */ + /* @sic R5s150692 change 18: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Ack := cr_MessageHeader_Dummy; var integer v_CSeqValue := f_MessageHeader_GetCseqValue(v_MessageHeader_Invite); @@ -1378,9 +1390,10 @@ module IMS_Procedures_CallControl { if (p_IsReInvite or not v_Is2xxResponse) { /* @sic R5-141115 sic@ */ v_RouteBodyList := p_InviteRequest.msgHeader.route.routeBody; /* @sic R5-134958, R5s130885: use the Route header of the INVITE in case of e.g. 5XX responses (see RFC 3261 cl. 17.1.1.3) sic@ */ } else { - v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(p_IsEmergency); /* @sic R5s130684: same as for 180 or 183 response in reverse order sic@ + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(p_EmergencyType); /* @sic R5s130684: same as for 180 or 183 response in reverse order sic@ @sic R5s130897 change 3 sic@ - @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ */ + @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ + @sic R5s150692 change 18 sic@ */ } if (v_Is2xxResponse) { /* @sic R5-130682: ACK for 2xx response sic@ */ @@ -1404,17 +1417,19 @@ module IMS_Procedures_CallControl { /* * @desc BYE (see TS 34.229, A.2.8) * @param p_InviteRequest - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_DialogIndex (default value: omit) * @return template (present) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_ByeRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, - boolean p_IsEmergency := false) runs on IMS_PTC return template (present) MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ - /* @sic R5s130754 change 3: p_IsEmergency sic@ */ + /* @sic R5s150692 change 19: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Bye := cr_MessageHeader_Dummy; - var integer v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote); + var integer v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote, p_DialogIndex); var boolean v_SecurityIsStarted := f_IMS_PTC_Security_IsStarted(); /* @sic R5s130988 Change 2-5 - MCC160 Implementation sic@ */ var template (present) RouteBody_List v_RouteBodyList; var template (present) Via v_Via; @@ -1425,14 +1440,15 @@ module IMS_Procedures_CallControl { } else { /* in case of MO call establishment the route set as for the 183 response shall be used (in reverse order) */ v_Via := fl_Via_AsInPrevInvite(v_MessageHeader_Invite.via) } - v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(p_IsEmergency); /* @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ */ + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(p_EmergencyType, p_DialogIndex); /* @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ + @sic R5s150692 change 19 sic@ */ v_MessageHeader_Bye.via := v_Via; v_MessageHeader_Bye.route := cr_Route(v_RouteBodyList); - v_MessageHeader_Bye.toField := f_IMS_RequestInDialog_ToHeaderRX(); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ - v_MessageHeader_Bye.fromField := f_IMS_RequestInDialog_FromHeaderRX(); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ + v_MessageHeader_Bye.toField := f_IMS_RequestInDialog_ToHeaderRX(p_DialogIndex); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ + v_MessageHeader_Bye.fromField := f_IMS_RequestInDialog_FromHeaderRX(p_DialogIndex); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ v_MessageHeader_Bye.callId := v_MessageHeader_Invite.callId; - v_MessageHeader_Bye.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ + v_MessageHeader_Bye.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Bye.cSeq := cr_CseqDef(v_CSeqValue, "BYE"); v_MessageHeader_Bye.maxForwards := cr_MaxForwardsDef; @@ -1475,7 +1491,7 @@ module IMS_Procedures_CallControl { * @param p_Context (default value: A_2_1_A4) * @param p_A3 (default value: false) * @param p_A8 (default value: false) - * @param p_A10 (default value: false) + * @param p_A10 (default value: pc_IMS_Video_FeatureTag) * @param p_A11 (default value: false) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @@ -1484,12 +1500,13 @@ module IMS_Procedures_CallControl { INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, boolean p_A3 := false, boolean p_A8 := false, - boolean p_A10 := false, + boolean p_A10 := pc_IMS_Video_FeatureTag, boolean p_A11 := false, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC { // p_A12 .. shall be pc_IMS_SRVCCAlert for voice call; needs to be set to false for non-voice calls /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s140370 change 7: pc_IMS_SRVCCAlert default value for p_A12, p_A12 renamed to p_SrvccAlertingSupported sic@ */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ var MessageHeader v_MessageHeader := p_IMS_INVITE_REQ.Request.Invite.msgHeader; var SemicolonParam_List v_ContactParams := {}; var SemicolonParam_List v_AcceptContactParams := {}; @@ -1503,7 +1520,6 @@ module IMS_Procedures_CallControl { var boolean v_CheckRport := (p_Context == A_2_1_A6); var boolean v_A12 := p_SrvccAlertingSupported and (p_Context != A_2_1_A5); /* @sic R5s140370 change 7 sic@ */ var integer i; - var charstring v_IMEI; var template (present) GenValue v_SipInstanceValue; if (ispresent(v_MessageHeader.contact.contactBody.contactAddresses[0].contactParams)) { @@ -1515,9 +1531,10 @@ module IMS_Procedures_CallControl { // **** Common checks **** f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol, v_AllowFQDN, v_CheckRport); // check whether via contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) if (p_Context != A_2_1_A5) { - f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // check that there is no To tag + f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // check that there is no To tag + f_IMS_MessageHeader_Request_CheckRoute(v_MessageHeader); // @sic R5s140934 change 7 sic@ } // **** Check URIs in From header, P-Preferred-Identity header and further headers **** @@ -1545,8 +1562,7 @@ module IMS_Procedures_CallControl { /* @sic R5s140017 MCC160 implementation: no further checks for A5 are needed in this function anymore sic@ */ } case (A_2_1_A6) { - v_IMEI := hex2str(px_IMEI_Def); // @sic R5s130756 change 11 sic@ - v_SipInstanceValue := cr_GenValueQuoted(""); /* @sic R5w140111: GenValue sic@ */ + v_SipInstanceValue := cr_GenValueQuoted(f_SIP_InstanceId()); /* @sic R5s130756 change 11; R5w140111: GenValue; R5s141212 sic@ */ if (not match(v_ContactParams, cr_SemicolonParam_List_OneSpecificParam("+sip.instance", v_SipInstanceValue))) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "IMEI code of the UE, coded as specified in draft-montemurro-gsma-imei-urn, not matching"); } @@ -1569,11 +1585,11 @@ module IMS_Procedures_CallControl { // **** Check further Contact feature-param acc. to further conditions of A.2.1: **** // if (p_A3) { // A.1.2 condition A3: MTSI - if (not match(v_ContactParams, cr_FeatureParam_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ + if (not match(v_ContactParams, cr_FeatureParamList_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A3: Missing feature-param in Contact header"); } if (p_Context == A_2_1_A4) { // @sic R5-142949 sic@ - if (not match(v_AcceptContactParams, cr_FeatureParam_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ + if (not match(v_AcceptContactParams, cr_FeatureParamList_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A3: Missing feature-param in AcceptContact header"); } } @@ -1585,14 +1601,14 @@ module IMS_Procedures_CallControl { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A8: Wrong geolocation-routing"); } } - if (p_A10) { // A.1.2 condition A10: UE indicates video media feature tag in REGISTER and INVITE request + if (p_A10 and p_A11 and (p_Context != A_2_1_A6) and (p_Context != A_2_1_A7)) { /* A.1.2 condition A10: UE supports video + A.1.2 condition A11: INVITE for creating a video call and UE supports video + @sic R5-153766: "p_A10 and p_A11 and (p_Context != A_2_1_A6) and (p_Context != A_2_1_A7)" sic@ */ if (not match(v_ContactParams, cr_VideoInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A10: Missing feature-param"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A10, A11: Missing feature-param in Contact header"); } - } - if (p_A11) { // A.1.2 condition A11: INVITE for creating a video call and UE supports video media feature tag if (not match(v_AcceptContactParams, cr_VideoInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A11: Missing feature-param"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A10, A11: Missing feature-param in Accept-Contact header"); } } if (v_A12) { // A.1.2 condition A12: INVITE for creating a voice call and UE supports g.3gpp.srvcc-alerting media feature tag @@ -1655,7 +1671,7 @@ module IMS_Procedures_CallControl { else { v_Status_ElemList := v_Presence.tuple_list[0].status.elem_list; } - v_BitStr := oct2bit(char2oct(v_Status_ElemList[0])); // first of 1 or more geopriv elements + v_BitStr := oct2bit(str2oct(v_Status_ElemList[0])); // first of 1 or more geopriv elements if (decvalue(v_BitStr, v_Geolocation) != 0) { FatalError(__FILE__, __LINE__, "Geolocation cannot be decoded"); @@ -1687,38 +1703,40 @@ module IMS_Procedures_CallControl { * @param p_A3 (default value: pc_MultimediaTelephonyService) * @param p_A8 (default value: pc_IMS_Geolocation) * @param p_A9 (default value: false) - * @param p_A10 (default value: false) * @param p_A11 (default value: false) - * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) + * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @return template (omit) IMS_DATA_REQ * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_INVITE_ReceiveRequest_Common(INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, template (present) MessageHeader p_MessageHeader := cr_MessageHeader_Dummy, OptionTag_List p_AdditionalOptionTagsForSupported := tsc_OptionTagList_Empty, - template (omit) charstring p_OtherCalleeUri := omit, + template SipUrl p_OtherCalleeUri := omit, template (omit) float p_WaitDuration := omit, boolean p_A3 := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ boolean p_A8 := pc_IMS_Geolocation, boolean p_A9 := false, - boolean p_A10 := false, boolean p_A11 := false, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC return template (omit) IMS_DATA_REQ - { /* p_OtherCalleeUri .. if present to be used as CalleeUri; if omit default CalleeUri is used acc. to PIXITs and cntext */ + { /* p_OtherCalleeUri .. if present to be used as CalleeUri; if omit default CalleeUri is used acc. to PIXITs and context */ /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5-140799: additional parameter p_MessageHeader to deal with Reason header sic@ */ /* @sic R5s140370 change 7: pc_IMS_SRVCCAlert default value for p_A12, p_A12 renamed to p_SrvccAlertingSupported sic@ */ + /* @sic R5s150180: p_A10 removed sic@ */ + /* @sic R5s150177 change 9, R5s150204: p_OtherCalleeUri changed to "template SipUrl p_OtherCalleeUri"; NOTE: p_OtherCalleeUri shall either omit or "template (present)" (but not e.g. "*") sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; var template (present) MessageBody v_MessageBody := f_SIP_MessageBodySDP_RX(p_A8); /* @sic R5w140112 sic@ */ var template (present) MessageHeader v_MessageHeader_Invite; var template (present) SipUrl v_ExpectedCalleeUri; + var INVITE_Request v_InviteRequest; + var SipUrl v_ContactUrl; var boolean v_TimerControl := ispresent(p_WaitDuration); timer t_Timer; if (ispresent(p_OtherCalleeUri)) { - v_ExpectedCalleeUri := f_SIP_BuildSipUri_RX(valueof(p_OtherCalleeUri)); + v_ExpectedCalleeUri := p_OtherCalleeUri; /* @sic R5s150204 sic@ */ } else { select (p_Context) { case (A_2_1_A4) { // A4: INVITE creating a dialog @@ -1744,15 +1762,18 @@ module IMS_Procedures_CallControl { [] IMS_Server.receive(car_IMS_Invite_Request(cr_INVITE_Request(v_ExpectedCalleeUri, v_MessageHeader_Invite, v_MessageBody))) -> value v_IMS_DATA_REQ { t_Timer.stop; + v_InviteRequest := v_IMS_DATA_REQ.Request.Invite; if (p_Context == A_2_1_A6) { // emergency call without registration @sic R5s130756 change 14 sic@ + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_InviteRequest.msgHeader); /* @sic R5s150268 change 1 sic@ */ f_IMS_PTC_ImsInfo_Init(v_IMS_DATA_REQ.RoutingInfo.UE_Address, v_IMS_DATA_REQ.RoutingInfo.NW_Address); + f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl)); /* @sic R5s150268 change 1 sic@ */ } - f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, p_Context, p_A3, p_A8, p_A10, p_A11, p_SrvccAlertingSupported); + f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, p_Context, p_A3, p_A8, -, p_A11, p_SrvccAlertingSupported); if (p_Context != A_2_1_A5) { /* @sic R5s140020 change 8.2 sic@ */ - f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_IMS_DATA_REQ.Request.Invite.msgHeader); + f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_InviteRequest.msgHeader); } else { if (not isvalue(f_IMS_PTC_ImsInfo_CseqGet(dialogRemote))) { /* @sic R5s140235 sic@ */ - f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_IMS_DATA_REQ.Request.Invite.msgHeader.cSeq.seqNumber); + f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_InviteRequest.msgHeader.cSeq.seqNumber); } } return v_IMS_DATA_REQ; @@ -1770,27 +1791,27 @@ module IMS_Procedures_CallControl { * @param p_A3 (default value: pc_MultimediaTelephonyService) * @param p_A8 (default value: pc_IMS_Geolocation) * @param p_A9 (default value: false) - * @param p_A10 (default value: false) * @param p_A11 (default value: false) - * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) + * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @return IMS_DATA_REQ * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) */ function f_IMS_INVITE_ReceiveRequest(INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, OptionTag_List p_AdditionalOptionTagsForSupported := tsc_OptionTagList_Empty, - template (omit) charstring p_OtherCalleeUri := omit, + template SipUrl p_OtherCalleeUri := omit, boolean p_A3 := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ boolean p_A8 := pc_IMS_Geolocation, boolean p_A9 := false, - boolean p_A10 := false, boolean p_A11 := false, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC return IMS_DATA_REQ { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5s140370 change 7: pc_IMS_SRVCCAlert default value for p_A12, p_A12 renamed to p_SrvccAlertingSupported sic@ */ + /* @sic R5s150180: p_A10 removed sic@ */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ var template (omit) float v_WaitDuration := omit; // no wait duration var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; - v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(p_Context, -, p_AdditionalOptionTagsForSupported, p_OtherCalleeUri, v_WaitDuration, p_A3, p_A8, p_A9, p_A10, p_A11, p_SrvccAlertingSupported); + v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(p_Context, -, p_AdditionalOptionTagsForSupported, p_OtherCalleeUri, v_WaitDuration, p_A3, p_A8, p_A9, p_A11, p_SrvccAlertingSupported); return valueof(v_IMS_DATA_REQ); // as we don't have any WaitDuration f_IMS_INVITE_ReceiveRequest_Common returns a value (omit could only occur when a timer expires) } @@ -1816,52 +1837,71 @@ module IMS_Procedures_CallControl { f_IMS_PTC_ImsInfo_DialogRelease(); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ } + /* + * @desc MO Call release scc. to 34.229-1 C.32 + * @param p_DialogIndex (default value: omit) + * @param p_ContactSipUrl + * @param p_MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + altstep a_IMS_ReceiveByeSendOK(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit, + template (present) SipUrl p_ContactSipUrl, + template (present) MessageHeader p_MessageHeader) runs on IMS_PTC + { + var IMS_DATA_REQ v_IMS_DATA_REQ; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo; + + // --- Receive BYE + [] IMS_Server.receive(car_IMS_Bye_Request(cr_BYE_Request(p_ContactSipUrl, p_MessageHeader))) -> value v_IMS_DATA_REQ + { + if (f_IMS_PTC_ImsInfo_DialogIsReleased(p_DialogIndex)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Dialog has already been released"); + } + f_IMS_MessageHeader_Request_CheckVia(v_IMS_DATA_REQ.Request.Bye.msgHeader, v_IMS_DATA_REQ.RoutingInfo.Protocol); /* @sic R5-134116: additional check of Via header sic@ */ + + // --- Send 200 OK + v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Bye.msgHeader)))); + + f_IMS_PTC_ImsInfo_DialogRelease(p_DialogIndex); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ + } + } + /* * @desc MO Call release scc. to 34.229-1 C.32 * @param p_InviteRequest * @param p_ContactSipUrl (default value: f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri)) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_AutonomousCallRelease (default value: false) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_CallReleaseMO(template (value) INVITE_Request p_InviteRequest, template (present) SipUrl p_ContactSipUrl := f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri), - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, boolean p_AutonomousCallRelease := false) runs on IMS_PTC { /* @sic R5s130333 change 6 - new parameter p_ContactUri sic@ */ /* @sic R5-134116: parameter p_RecordRouteOfPrevResponse removed sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ - /* @sic R5s130754 change 3: p_IsEmergency sic@ */ /* @sic R5s140370 change 14: p_AutonomousCallRelease sic@ */ - var IMS_DATA_REQ v_IMS_DATA_REQ; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - var template (present) MessageHeader v_MessageHeader_Bye; + /* @sic R5s150692 change 20: parameter p_EmergencyType sic@ */ + var template (present) MessageHeader v_MessageHeader_Bye := f_IMS_ByeRequest_MessageHeaderRX(p_InviteRequest, p_EmergencyType); /* @sic R5s150692 change 20 sic@ */ if (not p_AutonomousCallRelease) { f_UT_HangupIMSCall(MMI); /* @sic R5s130333 change 20, R5-134290 sic@ */ } - - // --- Receive BYE - v_MessageHeader_Bye := f_IMS_ByeRequest_MessageHeaderRX(p_InviteRequest, p_IsEmergency); - IMS_Server.receive(car_IMS_Bye_Request(cr_BYE_Request(p_ContactSipUrl, v_MessageHeader_Bye))) -> value v_IMS_DATA_REQ; - f_IMS_MessageHeader_Request_CheckVia(v_IMS_DATA_REQ.Request.Bye.msgHeader, v_IMS_DATA_REQ.RoutingInfo.Protocol); /* @sic R5-134116: additional check of Via header sic@ */ - - // --- Send 200 OK - v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Bye.msgHeader)))); - - f_IMS_PTC_ImsInfo_DialogRelease(); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ + a_IMS_ReceiveByeSendOK(-, p_ContactSipUrl, v_MessageHeader_Bye); /* @sic R5s150382 - Additional Change by MCC160 sic@ */ } - /* * @desc Emergency Call release (wrapper function) * @param p_InviteRequest + * @param p_AutonomousCallRelease (default value: false) * @status APPROVED (IMS, IMS_IRAT, LTE) */ - function f_IMS_EmergencyCallRelease(INVITE_Request p_InviteRequest) runs on IMS_PTC - { - f_IMS_CallReleaseMO(p_InviteRequest, -, true); + function f_IMS_EmergencyCallRelease(INVITE_Request p_InviteRequest, + boolean p_AutonomousCallRelease := false) runs on IMS_PTC + { /* @sic R5s141286 change 2: new parameter p_AutonomousCallRelease sic@ */ + f_IMS_CallReleaseMO(p_InviteRequest, -, REGULAR_EMERGENCY, p_AutonomousCallRelease); f_IMS_TCP_CloseHandling(waitAndClose); /* @sic R5s130988 change 1 - MCC160 implementation sic@ * @sic R5s140219 - additional changes sic@ * NOTE: for emergency call there is no user-initiated emergency deregistration (see 24.229 cl. 5.1.6.6); @@ -1881,7 +1921,7 @@ module IMS_Procedures_CallControl { */ function f_IMS_EmergencyCallSetup_AnnexC22(INVITE_A_2_1_Context_Type p_Context := A_2_1_A7, boolean p_GeolocationInfoAvailable := false, - template (omit) charstring p_OtherCalleeUri := omit) runs on IMS_PTC return INVITE_Request + template SipUrl p_OtherCalleeUri := omit) runs on IMS_PTC return INVITE_Request { /* p_Context .. A_2_1_A6 (INVITE for creating an emergency session in case of no registration) or * A_2_1_A7 (INVITE for creating an emergency session within an emergency registration) */ /* @sic R5s130988 change 6/7: sic@ @@ -1889,6 +1929,7 @@ module IMS_Procedures_CallControl { * => we cannot setup any address information before we have received the INVITE * => as the SDP message at step 1 contains address information we cannot build up the template in advance but need to match after the INVITE has been received */ /* @sic R5-140920: additional parameter p_OtherCalleeUri sic@ */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; var template(value) IMS_RoutingInfo_Type v_RoutingInfo_DL; var template (present) SipUrl v_CalleeContactSipUri; @@ -1899,7 +1940,7 @@ module IMS_Procedures_CallControl { var template (present) SDP_Message v_SDP_Message_Step1; var template (value) SDP_Message v_SDP_Message_Step4; var SDP_Message v_SDP_Message; - var boolean v_IsEmergency := true; + var IMS_Emergency_Type v_EmergencyType := REGULAR_EMERGENCY; var boolean v_PrackRequiredFor180Ringing := false; /* => there is no PRACK expected to acknowledge the 180 response */ var charstring v_FmtAudio; @@ -1920,16 +1961,16 @@ module IMS_Procedures_CallControl { IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); // Step 3. SS sends a 180 Ringing. - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine180, f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, -, v_PrackRequiredFor180Ringing, v_IsEmergency)))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine180, f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, -, v_PrackRequiredFor180Ringing, v_EmergencyType)))); // Step 4. SS responds to the invite INVITE with 200 OK including the SDP record. - v_SDP_Message_Step4 := f_IMS_BuildSDP_AnnexC22_Step4(v_FmtAudio, v_SDP_Message.origin.addr); - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP, tsc_IMS_Emergency_TelUri); + v_SDP_Message_Step4 := f_IMS_BuildSDP_AnnexC22_Step4(v_FmtAudio); /* @sic R5s141244: no origin address to be handed over anymore sic@ */ + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP, tsc_IMS_Emergency_TelUri, -, -, v_EmergencyType); v_CalleeContactSipUri := f_Addr_Union_GetSipUrl(v_MessageHeader_InviteResponse_200.contact.contactBody.contactAddresses[0].addressField); IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200, cs_MessageBody_SDP(v_SDP_Message_Step4)))); // Step 5. Finally, UE acknowledges call setup. - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, v_IsEmergency); // @sic R5s130897 change 2 sic@ + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, v_EmergencyType); // @sic R5s130897 change 2 sic@ IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactSipUri, v_MessageHeader_Ack))); return v_InviteRequest; } @@ -1943,28 +1984,30 @@ module IMS_Procedures_CallControl { * @param p_InviteRequestStep1 * @param p_SDP_MessageStep4 * @param p_Protocol + * @param p_AllowTrying (default value: true) * @return IMS_ResponseWithSdp_Type * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_MTCallSetup_Common_Steps3_4(template (value) INVITE_Request p_InviteRequestStep1, template (present) SDP_Message p_SDP_MessageStep4, - InternetProtocol_Type p_Protocol) runs on IMS_PTC return IMS_ResponseWithSdp_Type + InternetProtocol_Type p_Protocol, + boolean p_AllowTrying := true) runs on IMS_PTC return IMS_ResponseWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: returns IMS_ResponseWithSdp_Type instead of IMS_Response_Type sic@ */ var IMS_DATA_RSP v_IMS_DATA_RSP; - var boolean v_Trying := false; + var boolean v_AllowTrying := p_AllowTrying; var MessageHeader v_MessageHeader; var SDP_Message v_SDP_Message; var IMS_Response_Type v_SessionInProgress183; alt { // Step 3 - Receive optional 100 Trying - [not v_Trying] a_IMS_ReceiveResponse(p_InviteRequestStep1.msgHeader, - p_Protocol, - cr_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderRX(p_InviteRequestStep1)), - v_IMS_DATA_RSP) /* @sic R5s140350: v_IMS_DATA_RSP is 'out' parameter sic@ */ + [v_AllowTrying] a_IMS_ReceiveResponse(p_InviteRequestStep1.msgHeader, + p_Protocol, + cr_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderRX(p_InviteRequestStep1)), + v_IMS_DATA_RSP) /* @sic R5s140350: v_IMS_DATA_RSP is 'out' parameter sic@ */ { - v_Trying := true; + v_AllowTrying := false; repeat; } // Step 4 - Receive 183 Session in Progress @@ -1977,6 +2020,7 @@ module IMS_Procedures_CallControl { { v_SessionInProgress183 := v_IMS_DATA_RSP.Response; v_MessageHeader := v_SessionInProgress183.msgHeader; + f_IMS_MessageHeader_Response_CheckRecordRoute(v_MessageHeader); /* @sic R5s150039 Change 4 sic@ */ f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) f_IMS_Dialog_SetRemoteTag(v_MessageHeader); // check SDP message: @@ -2104,6 +2148,7 @@ module IMS_Procedures_CallControl { } } if (isbound(v_MessageHeader_Ringing)) { + f_IMS_MessageHeader_Response_CheckRecordRoute (v_MessageHeader_Ringing); /* @sic R5s150039 Change 5 sic@ */ f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader_Ringing); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) if (p_SrvccAlerting) { /* @sic R5s140385 change 8 sic@ */ @@ -2180,18 +2225,20 @@ module IMS_Procedures_CallControl { //---------------------------------------------------------------------------- /* * @desc Build INVITE to be used for MO call estblishment (C.11) + * @param p_IsC45 (default value: false) * @return IMS_InviteRequestWithSdp_Type * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - function f_IMS_MTCallSetup_AnnexC11_INVITE() runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + function f_IMS_MTCallSetup_AnnexC11_INVITE(boolean p_IsC45:= false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ; initialisation of routing info sic@ */ + /* @sic R5-153798: p_IsC45 sic@ */ var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); var template (value) INVITE_Request v_InviteRequest; var template (value) MessageHeader v_MessageHeader_Invite; var template (value) SDP_Message v_SDP_MessageStep1; - v_SDP_MessageStep1 := f_IMS_BuildSDP_AnnexC11_Step1or7("step 1"); + v_SDP_MessageStep1 := f_IMS_BuildSDP_AnnexC11_Step1or7(-, p_IsC45); v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(tsc_OptionTagList_precondition); v_InviteRequest := cs_INVITE_Request(v_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_SDP_MessageStep1)); @@ -2202,10 +2249,12 @@ module IMS_Procedures_CallControl { * @desc MT speech call setup according to 34.229-1 Annex C.11, steps 1 to 4. * return p_SessionInProgress183 received in step 4 * @param p_InviteRequestWithSdp + * @param p_IsC45 (default value: false) * @return IMS_ResponseWithSdp_Type * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - function f_IMS_MTCallSetup_AnnexC11_Steps1_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC return IMS_ResponseWithSdp_Type + function f_IMS_MTCallSetup_AnnexC11_Steps1_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + boolean p_IsC45:= false) runs on IMS_PTC return IMS_ResponseWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequestWithSdp instead of p_InviteRequest sic@ */ /* @sic R5w140112: returns IMS_ResponseWithSdp_Type instead of IMS_Response_Type sic@ */ @@ -2219,7 +2268,7 @@ module IMS_Procedures_CallControl { // Step 2 - Void // Step 3 .. 4 - v_SDP_MessageStep4 := f_IMS_BuildSDP_AnnexC11_Step4or8("step 4"); + v_SDP_MessageStep4 := f_IMS_BuildSDP_AnnexC11_Step4or8("step 4", p_IsC45); return f_IMS_MTCallSetup_Common_Steps3_4(v_InviteRequest, v_SDP_MessageStep4, v_Protocol); } @@ -2227,28 +2276,25 @@ module IMS_Procedures_CallControl { /* * @desc MT speech call setup according to 34.229-1 Annex C.11, steps 7..11 * @param p_InviteRequestWithSdp + * @param p_SessionInProgress183 + * @param p_IsC45 (default value: false) * @return template (omit) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - function f_IMS_MTCallSetup_AnnexC11_Steps7_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC return template (omit) MessageHeader + function f_IMS_MTCallSetup_AnnexC11_Steps7_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + IMS_ResponseWithSdp_Type p_SessionInProgress183, + boolean p_IsC45:= false) runs on IMS_PTC return template (omit) MessageHeader { /* @sic R5w140112: p_InviteRequestWithSdp instead of p_InviteRequest sic@ */ + /* @sic R5-153798: new parameter p_SessionInProgress183, p_IsC45 sic@ */ var template (value) INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var InternetProtocol_Type v_ProtocolUsedForInvite := p_InviteRequestWithSdp.RoutingInfo.Protocol; - var SDP_Message v_SDP_Message := p_InviteRequestWithSdp.SdpOffer; - var charstring v_Direction; + var SDP_Message v_SDP_Message183 := p_SessionInProgress183.SdpMessage; var template (value) SDP_Message v_Tx_SDP; var template (present) SDP_Message v_Rx_SDP; // Step 7 - 8. Send UPDATE, Receive 200 OK - // get curr:qos remote for SDP message in step 7 - if (isvalue(v_SDP_Message.media_list[0]) and - f_SDP_AttributeList_CheckAttribute(v_SDP_Message.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, c_none))) { // see C.11 step 7 Note 1 - v_Direction := c_none; - } else { - v_Direction := c_sendrecv; - } - v_Tx_SDP := f_IMS_BuildSDP_AnnexC11_Step1or7("step 7", cs_SDP_Attribute_curr_qos(c_remote, v_Direction)); - v_Rx_SDP := f_IMS_BuildSDP_AnnexC11_Step4or8("step 8"); // @sic R5s120530 change 3.16 sic@ + v_Tx_SDP := f_IMS_BuildSDP_AnnexC11_Step1or7(v_SDP_Message183, p_IsC45); /* @sic R5-153798 sic@*/ + v_Rx_SDP := f_IMS_BuildSDP_AnnexC11_Step4or8("step 8", p_IsC45); // @sic R5s120530 change 3.16 sic@ @sic R5-153798 sic@ return f_IMS_MTCallSetup_Common_Steps7_11(v_InviteRequest, v_Tx_SDP, v_Rx_SDP, v_ProtocolUsedForInvite, pc_IMS_SRVCCAlert); } @@ -2256,19 +2302,23 @@ module IMS_Procedures_CallControl { * @desc MT speech call setup according to 34.229-1 Annex C.11, steps 5 to 13 * @param p_InviteRequestWithSdp * @param p_SessionInProgress183 + * @param p_IsC45 (default value: false) * @status APPROVED (IMS, LTE_IRAT) */ function f_IMS_MTCallSetup_AnnexC11_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - IMS_Response_Type p_SessionInProgress183) runs on IMS_PTC + IMS_ResponseWithSdp_Type p_SessionInProgress183, + boolean p_IsC45 := false ) runs on IMS_PTC { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequestWithSdp instead of p_InviteRequest sic@ */ - var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.msgHeader; + /* @sic R5-153798: p_SessionInProgress183 changed to IMS_ResponseWithSdp_Type sic@ */ + /* @sic R5-153798: p_IsC45 sic@ */ + var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.Response.msgHeader; // Step 5 - 6. Send PRACK, Receive 200 OK f_IMS_MTCallSetup_SendPRACK_ReceiveOK(p_InviteRequestWithSdp.Invite, v_MessageHeader_PrevReliableResponse); // Step 7 - 11. Send UPDATE, Receive 200 OK, Receive optional 180 Ringing and send PRACK if requested - f_IMS_MTCallSetup_AnnexC11_Steps7_11(p_InviteRequestWithSdp); + f_IMS_MTCallSetup_AnnexC11_Steps7_11(p_InviteRequestWithSdp, p_SessionInProgress183, p_IsC45); /* @sic R5-153798 sic@ */ // Step 11A - Make UE accept the speech AMR offer f_UT_AnswerCall(MMI); // @sic R5-134290 sic@ @@ -2277,139 +2327,104 @@ module IMS_Procedures_CallControl { f_IMS_MTCallSetup_Common_Steps12_13(p_InviteRequestWithSdp); } - //============================================================================ - /* - * @desc 34.229-1 Annex C.24 - Step 1: INVITE with condition A5 - * @param p_WaitDuration (default value: omit) - * @param p_GeolocationInfoAvailable (default value: false) - * @return template (omit) IMS_InviteRequestWithSdp_Type - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_SRVCC_ReInvite_AnnexC24_Step1(template (omit) float p_WaitDuration := omit, - boolean p_GeolocationInfoAvailable := false) - runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type - { /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer sic@ */ - /* @sic R5s140331 change 8: parameter p_WaitDuration sic@ */ - var template (present) SDP_Message v_SDP_MessageRX := f_IMS_BuildSDP_AnnexC24_Step1(); - var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; - var IMS_DATA_REQ v_IMS_DATA_REQ_Val; - var SDP_Message v_SDP_Message; - - v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A5, -, -, -, p_WaitDuration, -, p_GeolocationInfoAvailable); - if (isvalue(v_IMS_DATA_REQ)) { - v_IMS_DATA_REQ_Val := valueof(v_IMS_DATA_REQ); - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ_Val.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); - - return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ_Val, v_SDP_Message); - } - return omit; - } - - //============================================================================ - /* - * @desc 34.229-1 Annex C.31 - Step 1: INVITE with condition A5 - * @param p_GeolocationInfoAvailable (default value: false) - * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_SRVCC_ReInvite_AnnexC31_Step1(boolean p_GeolocationInfoAvailable := false) - runs on IMS_PTC return IMS_InviteRequestWithSdp_Type - { /* @sic R5s140020, R5-140799: new function sic@ */ - /* @sic R5-140799 sic@ */ - /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - var template (omit) float v_WaitDuration := omit; // no wait duration - var template (present) SDP_Message v_SDP_MessageRX := f_IMS_BuildSDP_AnnexC31_Step1(); - var template (present) MessageHeader v_MessageHeader := cr_MessageHeader_Dummy; - var IMS_DATA_REQ v_IMS_DATA_REQ; - var SDP_Message v_SDP_Message; - - v_MessageHeader.reason := f_IMS_SIP_Reason487_RX(); // @sic R5s140370 change 3 - MCC160 implementation sic@ - - v_IMS_DATA_REQ := valueof(f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A5, v_MessageHeader, -, -, v_WaitDuration, -, p_GeolocationInfoAvailable)); - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); - - return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ, v_SDP_Message); - } - //============================================================================ /* * @desc 34.229-1 Annex C.21 - Step 2: receive INVITE acc. to A.2.1; * if the INVITE is optional a wait duration shall be given + * @param p_SDP_Message_Step2 * @param p_OtherCalleeUri (default value: omit) * @param p_A_2_1_Context (default value: A_2_1_A4) * @param p_WaitDuration (default value: omit) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_IsC44 (default value: false) * @return template (omit) IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_IMS_MOCallSetup_AnnexC21_Step2_Optional(template (omit) charstring p_OtherCalleeUri := omit, + function f_IMS_MOCallSetup_AnnexC21_Step2_Optional(template (present) SDP_Message p_SDP_Message_Step2, + template SipUrl p_OtherCalleeUri := omit, INVITE_A_2_1_Context_Type p_A_2_1_Context := A_2_1_A4, template (omit) float p_WaitDuration := omit, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type + boolean p_GeolocationInfoAvailable := false, + boolean p_IsC44 := false) runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type { /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - var template (present) SDP_Message v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC21_Step2(); + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150704 - additional changes: parameter p_SDP_Message_Step2 sic@ */ var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; var template (omit) IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp := omit; var IMS_DATA_REQ v_IMS_DATA_REQ_Value; var SDP_Message v_SDP_Message; var INVITE_Request v_InviteRequest; - + // Step 2. Receive INVITE Request v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(p_A_2_1_Context, -, tsc_OptionTagList_precondition, p_OtherCalleeUri, p_WaitDuration, -, p_GeolocationInfoAvailable); if (isvalue(v_IMS_DATA_REQ)) { v_IMS_DATA_REQ_Value := valueof(v_IMS_DATA_REQ); v_InviteRequest := v_IMS_DATA_REQ_Value.Request.Invite; - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_InviteRequest.messageBody, v_SDP_Message_Step2, p_GeolocationInfoAvailable); - + v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_InviteRequest.messageBody, p_SDP_Message_Step2, p_GeolocationInfoAvailable); + // check media description: + if (p_IsC44) { + f_IMS_SDP_CheckMediaDescr_EVS_16000_1(v_SDP_Message.media_list[0]); /* @sic R5-151968 sic@ */ + f_IMS_SDP_CheckMediaDescr_AMR_16000_1(v_SDP_Message.media_list[0]); /* @sic R5-151968 sic@ */ + } f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); f_IMS_SDP_CheckMediaDescr_DTMF(v_SDP_Message.media_list[0]); - + v_InviteRequestWithSdp := f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ_Value, v_SDP_Message); } return v_InviteRequestWithSdp; } - + /* - * @desc 34.229-1 Annex C.21 - Step 2: receive INVITE acc. to A.2.1 + * @desc 34.229-1 Annex C.21 and C.44 - Step 2: receive INVITE acc. to A.2.1 * @param p_OtherCalleeUri (default value: omit) * @param p_A_2_1_Context (default value: A_2_1_A4) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_IsC44 (default value: false) * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_IMS_MOCallSetup_AnnexC21_Step2_Common(template (omit) charstring p_OtherCalleeUri := omit, + function f_IMS_MOCallSetup_AnnexC21_Step2_Common(template SipUrl p_OtherCalleeUri := omit, INVITE_A_2_1_Context_Type p_A_2_1_Context := A_2_1_A4, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + boolean p_GeolocationInfoAvailable := false, + boolean p_IsC44 := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type { /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ var template (omit) float v_WaitDuration := omit; var template (omit) IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Optional(p_OtherCalleeUri, p_A_2_1_Context, v_WaitDuration, p_GeolocationInfoAvailable); + var template (present) SDP_Message v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC21_Step2(); /* @sic R5s150704 - additional changes sic@ */ + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Optional(v_SDP_Message_Step2, p_OtherCalleeUri, p_A_2_1_Context, v_WaitDuration, p_GeolocationInfoAvailable, p_IsC44); return valueof(v_InviteRequestWithSdp); } /* - * @desc 34.229-1 Annex C.21 - Step 2: Wrapper function for A.2.1 condition A4 (INVITE creating a dialog) + * @desc 34.229-1 Annex C.21 C.44 - Step 2: Wrapper function for A.2.1 condition A4 (INVITE creating a dialog) * @param p_OtherCalleeUri (default value: omit) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_IsC44 (default value: false) * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ - function f_IMS_MOCallSetup_AnnexC21_Step2_A4(template (omit) charstring p_OtherCalleeUri := omit, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + function f_IMS_MOCallSetup_AnnexC21_Step2_A4(template SipUrl p_OtherCalleeUri := omit, + boolean p_GeolocationInfoAvailable := false, + boolean p_IsC44 := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - return f_IMS_MOCallSetup_AnnexC21_Step2_Common(p_OtherCalleeUri, A_2_1_A4, p_GeolocationInfoAvailable); + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + return f_IMS_MOCallSetup_AnnexC21_Step2_Common(p_OtherCalleeUri, A_2_1_A4, p_GeolocationInfoAvailable, p_IsC44); } /* * @desc 34.229-1 Annex C.21 - Step 3: send 100 Trying * @param p_InviteRequestWithSdp - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21_Step3(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC { @@ -2417,58 +2432,72 @@ module IMS_Procedures_CallControl { IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(p_InviteRequestWithSdp.Invite)))); } - + /* * @desc 34.229-1 Annex C.21 - Step 3: send 183 Session In Progress * return MessageHeader of the 183 response * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_AditionalContactParams (default value: omit) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsC44 (default value: false) + * @param p_CodecName (default value: "AMR-8000") * @return MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21_Step4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_ContactUri := px_IMS_CalleeContactUri, template (omit) SemicolonParam_List p_AditionalContactParams := omit, - boolean p_IsEmergency := false) runs on IMS_PTC return MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsC44 := false, + charstring p_CodecName := "AMR-8000") runs on IMS_PTC return MessageHeader { /* @sic R5-142951: tsc_OptionTagList_precondition to be added to the Require header instead of the Supported header sic@ */ + /* @sic R5-151968 new parameter: p_IsC44 sic@ */ + /* @sic R5s150692 change 13: parameter p_EmergencyType sic@ */ + /* @sic R5-153950 parameter p_CodecName sic@ */ var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var SDP_Message v_SDP_MessageInvite := p_InviteRequestWithSdp.SdpOffer; /* @sic R5w140112 sic@ */ var template (value) MessageHeader v_MessageHeader_Response183; - var template (value) SDP_Message v_SDP_MessageTx := f_IMS_BuildSDP_AnnexC21_Step4(v_SDP_MessageInvite); /* @sic R5-135020 sic@ */ + var template (value) SDP_Message v_SDP_MessageTx := f_IMS_BuildSDP_AnnexC21_Step4(v_SDP_MessageInvite, p_IsC44, p_CodecName); /* @sic R5-135020 sic@ */ // Step 4. Send 183 Session In Progress. - v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri, p_AditionalContactParams, p_IsEmergency); /* @sic R5-142951 sic@ */ + v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri, p_AditionalContactParams, p_EmergencyType); /* @sic R5-142951 sic@ @sic R5s150692 change 13 sic@*/ IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_MessageTx)))); return valueof(v_MessageHeader_Response183); } /* - * @desc 34.229-1 Annex C.21 - Step 3..4 + * @desc 34.229-1 Annex C.21 and C.44 - Step 3..4 * return MessageHeader of the 183 response * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_AditionalContactParams (default value: omit) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsC44 (default value: false) + * @param p_CodecName (default value: "AMR-8000") * @return MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21_Step3_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_ContactUri := px_IMS_CalleeContactUri, template (omit) SemicolonParam_List p_AditionalContactParams := omit, - boolean p_IsEmergency := false) runs on IMS_PTC return MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsC44 := false, + charstring p_CodecName := "AMR-8000") runs on IMS_PTC return MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequestWithSdp instead of p_RoutingInfo_DL, p_InviteRequest sic@ */ /* @sic R5s140359 - Additional Changes: split (f_IMS_MOCallSetup_AnnexC21_Step3, f_IMS_MOCallSetup_AnnexC21_Step4) sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150692 change 12: parameter p_EmergencyType sic@ */ + /* @sic R5s153535, R5-153950 parameter p_CodecName sic@ */ var MessageHeader v_MessageHeader_Response183; - + // Step 3. SS sends a 100 Trying provisional response. f_IMS_MOCallSetup_AnnexC21_Step3(p_InviteRequestWithSdp); - + // Step 4. Send 183 Session In Progress. - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step4(p_InviteRequestWithSdp, p_ContactUri, p_AditionalContactParams, p_IsEmergency); + v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step4(p_InviteRequestWithSdp, p_ContactUri, p_AditionalContactParams, p_EmergencyType, p_IsC44, p_CodecName); /* @sic R5s150692 change 12 sic@ @sic R5s153535, R5-153950 sic@*/ return v_MessageHeader_Response183; } @@ -2481,21 +2510,30 @@ module IMS_Procedures_CallControl { * @param p_GeolocationInfoAvailable (default value: false) * @param p_SDP_Message_Step5or7 (default value: omit) * @param p_PrevSDP_Message (default value: omit) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsCAT (default value: false) + * @param p_IsC44 (default value: false) * @return SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_MOCallSetup_AnnexC21_Steps5_8(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - template (value) MessageHeader p_MessageHeader_Prev183Response, - boolean p_GeolocationInfoAvailable := false, - template SDP_Message p_SDP_Message_Step5or7 := omit, - template (omit) SDP_Message p_PrevSDP_Message := omit) runs on IMS_PTC return SDP_Message - { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_MOCallSetup_AnnexC21C25_Steps5_8(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + template (value) MessageHeader p_MessageHeader_Prev183Response, + boolean p_GeolocationInfoAvailable := false, + template SDP_Message p_SDP_Message_Step5or7 := omit, + template (omit) SDP_Message p_PrevSDP_Message := omit, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsCAT := false, + boolean p_IsC44 := false) runs on IMS_PTC return SDP_Message + { /* p_SDP_Message_Step5or7 .. used in case of video (C.25) */ + /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequest changed to p_InviteRequestWithSdp */ /* @sic R5s140686, R5-144755: parameter p_PrevSDP_Message sic@ */ + /* @sic R5-151953 new parameter: p_IsCAT sic@ */ + /* @sic R5-151968 new parameter: p_IsC44 sic@ */ + /* @sic R5s150692 change 16: parameter p_EmergencyType sic@ */ var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader_Prev183Response); /* @sic R5s130333 change 8.2 - acc. to A.2.4, A.2.5 same as in previous response sic@ */ var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var SDP_Message v_SDP_Message := p_InviteRequestWithSdp.SdpOffer; /* @sic R5w140112 sic@ */ - var charstring v_FmtAudio; var template (present) SDP_Message v_SDP_Message_Step5or7; var template (present) MessageBody v_MessageBody; var boolean v_MediaConfigured := false; @@ -2514,10 +2552,10 @@ module IMS_Procedures_CallControl { } if (not ispresent(p_SDP_Message_Step5or7)) { - v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Message.media_list[0]); - v_SDP_Message_Step5or7 := f_IMS_BuildSDP_AnnexC21_Step5or7(v_FmtAudio); + v_SDP_Message_Step5or7 := f_IMS_BuildSDP_AnnexC21_Step5or7(v_SDP_Message, p_IsCAT, p_IsC44); /* => use speech per default */ } else { - v_SDP_Message_Step5or7 := p_SDP_Message_Step5or7; // NOTE: compiler warning cannot be avoided here + v_SDP_Message_Step5or7 := p_SDP_Message_Step5or7; /* In case of video the SDP message needs to be handed over + NOTE: compiler warning cannot be avoided here */ } // Step 5. Receive PRACK @@ -2532,27 +2570,30 @@ module IMS_Procedures_CallControl { if (ispresent(v_PrackRequest.messageBody)) { v_SDP_LatestOffer := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_PrackRequest.messageBody, v_SDP_Message_Step5or7); // @sic R5w140112 sic@ - // check session version increased - f_IMS_SDP_CheckSessionVersion(v_SDP_LatestOffer, v_SDP_Message); + // check session version increased @sic R5-150702: done in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ v_ContentType := cs_ContentTypeSDP; - v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestOffer)); /* NOTE: f_IMS_BuildSDP_AnnexC21_Step6or8 is not specific for C.21 but can be used for C.25 as well - @sic R5w140112 sic@ */ + v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21C25_Step6or8(v_SDP_LatestOffer)); /* @sic R5w140112 sic@ */ v_MediaConfigured := true; } - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_PrackRequest.msgHeader, v_ContentType), v_MessageBodyTx))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_PrackRequest.msgHeader, v_ContentType, -, -, tsc_OptionTagList_precondition, p_EmergencyType), /* @sic R5s150237 change 2 sic@ @sic R5s150692 change 16 sic@ */ + v_MessageBodyTx))); // Step 7 Optional. Receive Update // Note: UE will send Update if Media is not yet configured if (not v_MediaConfigured) { - v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(v_InviteRequest); + v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(v_InviteRequest, p_EmergencyType); /* @sic R5s150692 change 16 sic@ */ v_MessageBody := f_SIP_MessageBodySDP_RX(p_GeolocationInfoAvailable); if (p_GeolocationInfoAvailable) { v_MessageHeader_Update.geolocation := cr_GeolocationAny; v_MessageHeader_Update.geolocationRouting := cr_GeolocationRoutingSupported; // @sic R5-134798 sic@ v_MessageHeader_Update.contentType := cr_ContentType("multipart/mixed"); } + if (testcasename() == "TC_19_3_1") { // @sic !!!! R5-153760: DIRTY HACK - PROSE CR REQUIRED to correct Content-Type !!!! sic@ + v_MessageHeader_Update.contentType := cr_ContentType("multipart/mixed"); + } IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_ContactUrl, v_MessageHeader_Update, v_MessageBody))) -> value v_IMS_DATA_REQ; v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); @@ -2560,38 +2601,71 @@ module IMS_Procedures_CallControl { //fl_IMS_Params_CheckSigComp(v_UpdateRequest.msgHeader.route.routeBody[0].rrParam); // acc. to 34.229-1 cl. 13.2.4 step 6 (UPDATE) "comp=sigcomp" is optional for Via and Route - // check session version increased - f_IMS_SDP_CheckSessionVersion(v_SDP_LatestOffer, v_SDP_Message); + // check session version increased @sic R5-150702: done in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ v_ContentType := cs_ContentTypeSDP; - v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestOffer)); /* NOTE: f_IMS_BuildSDP_AnnexC21_Step6or8 is not specific for C.21 but can be used for C.25 as well - @sic R5w140112 sic@ */ - v_MediaConfigured := true; + v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21C25_Step6or8(v_SDP_LatestOffer)); /* @sic R5w140112 sic@ */ + + if (testcasename() == "TC_19_3_1") { // @sic !!!! R5-153760: DIRTY HACK - PROSE CR REQUIRED to remove checking of Route_header from UPDATE !!!! sic@ */ + f_IMS_MessageHeader_CheckContactAddr(v_UpdateRequest.msgHeader); // @sic R5-153760: check route header sic@ + } + // Step 8 Optional. Send 200 OK - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_UpdateRequest.msgHeader, v_ContentType), v_MessageBodyTx))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_UpdateRequest.msgHeader, v_ContentType, -, -, tsc_OptionTagList_precondition, p_EmergencyType), /* @sic R5s150237 change 2 sic@ @sic R5s150692 change 16 sic@ */ + v_MessageBodyTx))); } return v_SDP_LatestOffer; } - + + /* + * @desc wrapper function: 34.229-1 Annex C.21 and C.44 - Step 5..8 + * returns the "latest SDP offer" received from the UE + * @param p_InviteRequestWithSdp + * @param p_MessageHeader_Prev183Response + * @param p_GeolocationInfoAvailable (default value: false) + * @param p_PrevSDP_Message (default value: omit) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsCAT (default value: false) + * @param p_IsC44 (default value: false) + * @return SDP_Message + * @status APPROVED (IMS, LTE_A) + */ + function f_IMS_MOCallSetup_AnnexC21_Steps5_8(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + template (value) MessageHeader p_MessageHeader_Prev183Response, + boolean p_GeolocationInfoAvailable := false, + template (omit) SDP_Message p_PrevSDP_Message := omit, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsCAT := false, + boolean p_IsC44 := false) runs on IMS_PTC return SDP_Message + { /* @sic R5-151953 new parameter: p_IsCAT sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150692 change 15: parameter p_EmergencyType sic@ */ + return f_IMS_MOCallSetup_AnnexC21C25_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfoAvailable, -, p_PrevSDP_Message, p_EmergencyType, p_IsCAT, p_IsC44); /* @sic R5s150692 change 15 sic@ */ + } /* * @desc 34.229-1 Annex C.21 - Step 9..11 * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) - * @status APPROVED (IMS, LTE_A) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21C25_Step9_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_ContactUri := px_IMS_CalleeContactUri, - boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC + boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC { // p_SrvccAlertingSupported .. if voice call => condition A6 of A.2.6; needs to be set to false for non-voice calls /* @sic R5s130333 change 9.2 - parameter p_ContactUri: acc. to see A.2.4 contact in request line of PRACK shall be the same in as in previous response (180 Ringing) sic@ */ /* @sic R5w140112: p_IMS_INVITE_REQ changed to p_InviteRequestWithSdp */ /* @sic R5s140370 change 6: new parameter p_SrvccAlertingSupported sic@ */ + /* @sic R5s150692 change 10: parameter p_EmergencyType sic@ */ var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); - var template (value) MessageHeader v_MessageHeader_180Response := f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, p_ContactUri, -, -, p_SrvccAlertingSupported); + var template (value) MessageHeader v_MessageHeader_180Response := f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, p_ContactUri, -, p_EmergencyType, p_SrvccAlertingSupported); /* @sic R5s150667 change 2 sic@ + @sic R5s150692 change 3, 10 sic@ */ var template (value) MessageHeader v_MessageHeader_PrackResponse_200; var template (present) MessageHeader v_MessageHeader_Prack; var IMS_DATA_REQ v_IMS_DATA_REQ; @@ -2618,337 +2692,125 @@ module IMS_Procedures_CallControl { * @desc 34.229-1 Annex C.21 - Step 12..13 * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) - * @status APPROVED (IMS, LTE_A) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21C25_Step12_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - charstring p_ContactUri := px_IMS_CalleeContactUri) runs on IMS_PTC + charstring p_ContactUri := px_IMS_CalleeContactUri, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC { /* @sic R5s130333 change 9.3 - parameter p_ContactUri: acc. to A.2.7 contact in request line of ACK shall be the same in as PRACK sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_IMS_INVITE_REQ changed to p_InviteRequestWithSdp */ + /* @sic R5s150692 change 21: parameter p_EmergencyType sic@ */ var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); var template (value) MessageHeader v_MessageHeader_InviteResponse_200; var template (present) MessageHeader v_MessageHeader_Ack; + var template (omit) charstring v_EmergencyTelURI := omit; /* @sic R5s150739 sic@ */ + + if(p_EmergencyType == ASSERTED_EMERGENCY) { /* @sic R5s150739 sic@ */ + v_EmergencyTelURI := tsc_IMS_Emergency_TelUri; + } // Step 12. Send 200 OK (response to INVITE) - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, -, v_EmergencyTelURI, p_ContactUri, -, p_EmergencyType); /* @sic R5s150692 change 21 sic@ @sic R5s150739 sic@ */ IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); // Step 13. Finally, UE acknowledges call setup. - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, p_EmergencyType); /* @sic R5s150692 change 21 sic@ */ IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(f_SIP_BuildSipUri_RX(p_ContactUri), v_MessageHeader_Ack))); //fl_IMS_Params_CheckSigComp(v_IMS_DATA_REQ.Request.Ack.msgHeader.route.routeBody[0].rrParam); // acc. to 34.229-1 cl. 13.2.4 step 12 (ACK) "comp=sigcomp" is optional for Route } /* - * @desc wrapper for steps 5..13 of C.21; + * @desc wrapper for steps 5..13 of C.21 and C.44; * returns the "latest SDP offer" received from the UE * @param p_InviteRequestWithSdp * @param p_MessageHeader_Prev183Response + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsC44 (default value: false) * @return SDP_Message * @status APPROVED (IMS) */ function f_IMS_MOCallSetup_AnnexC21_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, MessageHeader p_MessageHeader_Prev183Response, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return SDP_Message + charstring p_ContactUri := px_IMS_CalleeContactUri, + boolean p_GeolocationInfoAvailable := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsC44 := false) runs on IMS_PTC return SDP_Message { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_IMS_INVITE_REQ changed to p_InviteRequestWithSdp */ - var SDP_Message v_SDP_Message := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfoAvailable); - - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp); - f_IMS_MOCallSetup_AnnexC21C25_Step12_13(p_InviteRequestWithSdp); - + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150692 change 9: parameter p_EmergencyType sic@ */ + var SDP_Message v_SDP_Message := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfoAvailable, -, p_EmergencyType, p_IsC44); //@sic R5s141155 change 3 sic@ + + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp, p_ContactUri, -, p_EmergencyType); /* @sic R5s150692 ch. 2 sic@ @sic R5s150692 change 9 sic@ */ + f_IMS_MOCallSetup_AnnexC21C25_Step12_13(p_InviteRequestWithSdp, p_ContactUri, p_EmergencyType); /* @sic R5s150692 change 9 sic@ */ return v_SDP_Message; } //============================================================================ - /* - * @desc check all media streams to have the given attribute - * @param p_Media_Desc_List - * @param p_Attribute - * @return boolean - * @status APPROVED (IMS) - */ - function f_IMS_SDP_CheckMediaListAttributes(template (value) SDP_media_desc_list p_Media_Desc_List, - template (present) SDP_attribute p_Attribute) return boolean - { - var integer i; - - for (i := 0; i < lengthof(p_Media_Desc_List); i:=i+1) { - if (not f_SDP_AttributeList_CheckAttribute(p_Media_Desc_List[i].attributes, p_Attribute)) { - return false; - } - } - return true; - } - - /* - * @desc Check recv mode for call hold/resume acc. to C.8 - * @param p_HoldResume - * @param p_HoldResumeOffer - * @param p_OriginalOffer - * @status APPROVED (IMS) - */ - function fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(IMS_CallHoldResume_Type p_HoldResume, - SDP_Message p_HoldResumeOffer, - SDP_Message p_OriginalOffer) runs on IMS_PTC - { - var SDP_attribute_list v_HoldResumeOffer_AttributeList; - var SDP_attribute_list v_OriginalOffer_AttributeList; - var template (omit) SDP_attribute v_SendRecvAttribute; - var SDP_attribute v_SendRecvAttributeVal; - var integer i; - - v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(p_HoldResumeOffer.attributes, cr_SDP_Attribute_AnySendRecvMode); // session attribute - if (ispresent(v_SendRecvAttribute)) { - // Hold/Resume offer has session attribute for send/recv mode - v_SendRecvAttributeVal := valueof(v_SendRecvAttribute); - select (p_HoldResume) { - case (HOLD) { - if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_inactive)) { // => check all media streams of the original offer to be recvonly - if (not f_IMS_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_recvonly)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'inactive' and but not all media streams of the original offer have been 'recvonly' "); - return; - } - } else if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_sendonly)) { // => check all media streams of the original offer to be sendrecv - if (not f_IMS_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_sendrecv)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'sendonly' and but not all media streams of the original offer have been 'sendrecv' "); - return; - } - } else { // send/recv mode is neither inactive nor sendonly - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute being neither 'sendonly' not 'inactive'"); - return; - } - } - case (RESUME) { // all media streams of the original offer shall be the same and the same as in the "RESUME offer" - if (not f_IMS_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, v_SendRecvAttributeVal)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call resume has session attribute not matching with all media streams of the original offer"); - return; - } - } - } - // check that Hold/Resume offer does not have further send/recv mode attributes in any media stream - if (f_IMS_SDP_CheckMediaListAttributes(p_HoldResumeOffer.media_list, cr_SDP_Attribute_AnySendRecvMode)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has session attribute for send/recv mode but also send/recv mode attributes for media streams"); - return; - } - } else { - // Hold/Resume offer has no session attribute for send/recv mode => check stream by stream - if (lengthof(p_HoldResumeOffer.media_list) != lengthof(p_OriginalOffer.media_list)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has different number of media streams than the original offer"); - return; - } - for (i := 0; i < lengthof(p_HoldResumeOffer.media_list); i:=i+1) { - v_HoldResumeOffer_AttributeList := p_HoldResumeOffer.media_list[i].attributes; - v_OriginalOffer_AttributeList := p_OriginalOffer.media_list[i].attributes; - select (p_HoldResume) { - case (HOLD) { - if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_inactive)) { - v_SendRecvAttribute := cs_SDP_Attribute_recvonly; - } - else if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_sendonly)) { - v_SendRecvAttribute := cs_SDP_Attribute_sendrecv; - } - } - case (RESUME) { - v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(v_HoldResumeOffer_AttributeList, cr_SDP_Attribute_AnySendRecvMode); - } - } - if (not ispresent(v_SendRecvAttribute) or not f_SDP_AttributeList_CheckAttribute(v_OriginalOffer_AttributeList, v_SendRecvAttribute)) { // compiler warning cannot be avoided for v_SendRecvAttribute - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has invalid send/recv mode attribute for single media stream"); - return; - } - } - } - } - - /* - * @desc Check bandwidth for call hold/resume acc. to C.8 - * @param p_HoldResume - * @param p_SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(IMS_CallHoldResume_Type p_HoldResume, - SDP_Message p_SDP_Message) runs on IMS_PTC - { - var integer i; - var charstring v_Modifier; - var integer v_Bandwidth; - - for (i := 0; i < lengthof(p_SDP_Message.bandwidth); i := i+1) { - v_Modifier := p_SDP_Message.bandwidth[i].modifier; - v_Bandwidth := p_SDP_Message.bandwidth[i].bandwidth; - select (v_Modifier) { - case ("RR", "RS") { - if ((p_HoldResume == HOLD) and not (v_Bandwidth > 0)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call hold: " & v_Modifier & " bandwidth shall be greater than zero"); - return; - } - else if ((p_HoldResume == RESUME) and (v_Bandwidth > 0)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call resume: " & v_Modifier & " bandwidth shall be zero"); - return; - } - } - } - } - } - - /* - * @desc MO call hold according to Annex C.8 (TS 34.229-1) - * @param p_HoldResume - * @param p_PrevInviteRequest - * @param p_MessageHeader_Prev183Response - * @param p_SDP_OriginalOffer - * @param p_PrevSessionVersion (default value: omit) - * @return SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_MOCallHoldResume_AnnexC8(IMS_CallHoldResume_Type p_HoldResume, - INVITE_Request p_PrevInviteRequest, - MessageHeader p_MessageHeader_Prev183Response, - SDP_Message p_SDP_OriginalOffer, - template (omit) integer p_PrevSessionVersion := omit) runs on IMS_PTC return SDP_Message - { - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; - var template (present) MessageHeader v_MessageHeader_Invite; - var template (present) MessageHeader v_MessageHeader_Update; - var template (present) MessageHeader v_MessageHeader_Ack; - var template (value) SDP_Message v_SDP_HoldResumeResponse; - var MessageBody v_MessageBody; - var IMS_DATA_REQ v_IMS_DATA_REQ; - var INVITE_Request v_InviteRequest; - var UPDATE_Request v_UpdateRequest; - var MessageHeader v_MessageHeader; - var SDP_Message v_SDP_HoldResumeOffer; - var integer v_PrevSessionVersion; - var SipUrl v_RequestSipUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader_Prev183Response); // get the contact URI out of the Contact header being sent to the UE in the earlier 183 response - var SipUrl v_ToHeaderSipUrl := f_Addr_Union_GetSipUrl(p_PrevInviteRequest.msgHeader.toField.addressField); // SIP URI in the To header of the INVITE needs to be the same SIP URI as been used in the previous INVITE - var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqGetValue(dialogRemote); /* @sic R5s140121 change 7: CSeq Value is incremented in f_IMS_InviteRequest_MessageHeaderRX and in f_IMS_UpdateRequest_MessageHeaderRX but shall be the same for both sic@ */ - - // Steps 1 and 2 - Receive Invite Request or Update Request - v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderRX(-, v_ToHeaderSipUrl, -, A_2_1_A5); - f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_CseqValue); /* @sic R5s140121 change 7: restore CSeq Value sic@ */ - v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(p_PrevInviteRequest); - - alt { - // INVITE - [] IMS_Server.receive(car_IMS_Invite_Request(cr_INVITE_Request(v_RequestSipUrl, v_MessageHeader_Invite, cr_MessageBody_SDP))) - -> value v_IMS_DATA_REQ - { - v_InviteRequest := v_IMS_DATA_REQ.Request.Invite; - v_MessageHeader := v_InviteRequest.msgHeader; - v_MessageBody := v_InviteRequest.messageBody; - - f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, A_2_1_A5); - } - // UPDATE - [] IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_RequestSipUrl, v_MessageHeader_Update, cr_MessageBody_SDP))) - -> value v_IMS_DATA_REQ - { - v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; - v_MessageHeader := v_UpdateRequest.msgHeader; - v_MessageBody := v_UpdateRequest.messageBody; - } - } - f_IMS_PreliminaryPass(__FILE__, __LINE__, "Annex C.8 step 1"); - - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - v_SDP_HoldResumeOffer := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_MessageBody, f_IMS_BuildSDP_AnnexC8_Step1(p_SDP_OriginalOffer)); /* @sic R5s140324 - additional change 2 sic@ */ - - // Check version number: - if (isvalue(p_PrevSessionVersion)) { - v_PrevSessionVersion := valueof(p_PrevSessionVersion); - } else { - v_PrevSessionVersion := str2int(p_SDP_OriginalOffer.origin.session_version); - } - f_IMS_SDP_CheckSessionVersion(v_SDP_HoldResumeOffer, omit, v_PrevSessionVersion); - - // Check bandwidth - f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(p_HoldResume, v_SDP_HoldResumeOffer); - - // Check send/receive mode - fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(p_HoldResume, v_SDP_HoldResumeOffer, p_SDP_OriginalOffer); - - if (isbound(v_InviteRequest)) { - // Step 2. Send 100 Trying - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); - } - - // Step 3. Respond with 200 OK (A.3.1 condition A5: Any response sent by the UE within a dialog - v_SDP_HoldResumeResponse := f_IMS_BuildSDP_AnnexC8_Step3(p_HoldResume, v_SDP_HoldResumeOffer); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, - f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader, cs_ContentTypeSDP), - cs_MessageBody_SDP(v_SDP_HoldResumeResponse)))); - if (isbound(v_InviteRequest)) { - // Step 4. Receive ACK - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); - IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_RequestSipUrl, v_MessageHeader_Ack))); - } - - return v_SDP_HoldResumeOffer; - } - //============================================================================ - - group HandlingOfPublishMessage { +/* group HandlingOfPublishMessage { */ - function f_IMS_PublishRequest_MessageHeaderRX(template (present) SipUrl p_SipUrlPublicUserId, - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader - { /* PUBLISH (see TS 34.229, A.4.3) */ - /* !!!! NOTE: Checks may need to be enhanced !!!!*/ - var template (present) MessageHeader v_MessageHeader_Publish := cr_MessageHeader_Dummy; +/* function f_IMS_PublishRequest_MessageHeaderRX(template (present) SipUrl p_SipUrlPublicUserId, */ +/* boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader */ +/* { /\* PUBLISH (see TS 34.229, A.4.3) *\/ */ +/* /\* !!!! NOTE: Checks may need to be enhanced !!!!*\/ */ +/* var template (present) MessageHeader v_MessageHeader_Publish := cr_MessageHeader_Dummy; */ - v_MessageHeader_Publish.route := cr_RouteSubs(f_IMS_PTC_Pcscf_Get(), *, px_IMS_Scscf); - v_MessageHeader_Publish.via := cr_ViaDef(-, cr_HostPort(?)); - v_MessageHeader_Publish.toField := cr_ToDef(p_SipUrlPublicUserId); // NOTE: absence of the To tag needs to be checked separately - v_MessageHeader_Publish.fromField := cr_FromWithTag(p_SipUrlPublicUserId); - v_MessageHeader_Publish.cSeq := cr_CseqDef(?, "PUBLISH"); - v_MessageHeader_Publish.callId := cr_CallId(?); - v_MessageHeader_Publish.sessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ - v_MessageHeader_Publish.maxForwards := cr_MaxForwardsDef; - v_MessageHeader_Publish.event := cr_EventDef(?); - if (not f_IMS_PTC_SecurityScheme_IsGiba()) { - v_MessageHeader_Publish.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); - v_MessageHeader_Publish.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); - } - return v_MessageHeader_Publish; - } +/* v_MessageHeader_Publish.route := cr_RouteSubs(f_IMS_PTC_Pcscf_Get(), *, px_IMS_Scscf); */ +/* v_MessageHeader_Publish.via := cr_ViaDef(-, cr_HostPort(?)); */ +/* v_MessageHeader_Publish.toField := cr_ToDef(p_SipUrlPublicUserId); // NOTE: absence of the To tag needs to be checked separately */ +/* v_MessageHeader_Publish.fromField := cr_FromWithTag(p_SipUrlPublicUserId); */ +/* v_MessageHeader_Publish.cSeq := cr_CseqDef(?, "PUBLISH"); */ +/* v_MessageHeader_Publish.callId := cr_CallId(?); */ +/* v_MessageHeader_Publish.sessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); /\* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ *\/ */ +/* v_MessageHeader_Publish.maxForwards := cr_MaxForwardsDef; */ +/* v_MessageHeader_Publish.event := cr_EventDef(?); */ +/* if (not f_IMS_PTC_SecurityScheme_IsGiba()) { */ +/* v_MessageHeader_Publish.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); */ +/* v_MessageHeader_Publish.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); */ +/* } */ +/* return v_MessageHeader_Publish; */ +/* } */ - function f_IMS_PublishResponse_200_MessageHeaderTX(PUBLISH_Request p_PublishRequest) runs on IMS_PTC return template (value) MessageHeader - { // 200 OK for PUBLISH (see TS 34.229, A.4.4) - var MessageHeader v_MessageHeader_Publish := p_PublishRequest.msgHeader; - var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; +/* function f_IMS_PublishResponse_200_MessageHeaderTX(PUBLISH_Request p_PublishRequest) runs on IMS_PTC return template (value) MessageHeader */ +/* { // 200 OK for PUBLISH (see TS 34.229, A.4.4) */ +/* var MessageHeader v_MessageHeader_Publish := p_PublishRequest.msgHeader; */ +/* var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; */ - v_MessageHeader_Response.via := v_MessageHeader_Publish.via; - v_MessageHeader_Response.fromField := v_MessageHeader_Publish.fromField; - v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(v_MessageHeader_Publish); - v_MessageHeader_Response.callId := v_MessageHeader_Publish.callId; - v_MessageHeader_Response.sessionId := v_MessageHeader_Publish.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ - v_MessageHeader_Response.cSeq := v_MessageHeader_Publish.cSeq; - v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(px_IMS_Scscf)); - v_MessageHeader_Response.expires := cs_Expires ("600000"); - v_MessageHeader_Response.sipETag := cs_SIP_ETag("dx200xyz"); /* @sic R5s130195 BASELINE MOVING 2013 - SIP-ETag (RFC 3903) sic@ */ - - return v_MessageHeader_Response; - } - - // FFS: Code not yet used, but may be needed - altstep a_IMS_DefaultPublish() runs on IMS_PTC - { /* acc. to 34.229-1 C.5 Default handling of PUBLISH requests */ - var IMS_DATA_REQ v_IMS_DATA_REQ; - var template (present) SipUrl v_SipUrlPublicUserId := ?; /* acc. to A.4.3 in the PUBLISH request the public user id to be used in the Request-Line, From and To is "any IMPU within the set of IMPUs" - => needs to be checked after receiving as well as the tag for From and To - !!!! check function needs to be implemented !!!! */ +/* v_MessageHeader_Response.via := v_MessageHeader_Publish.via; */ +/* v_MessageHeader_Response.fromField := v_MessageHeader_Publish.fromField; */ +/* v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(v_MessageHeader_Publish); */ +/* v_MessageHeader_Response.callId := v_MessageHeader_Publish.callId; */ +/* v_MessageHeader_Response.sessionId := v_MessageHeader_Publish.sessionId; /\* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ *\/ */ +/* v_MessageHeader_Response.cSeq := v_MessageHeader_Publish.cSeq; */ +/* v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(px_IMS_Scscf)); */ +/* v_MessageHeader_Response.expires := cs_Expires ("600000"); */ +/* v_MessageHeader_Response.sipETag := cs_SIP_ETag("dx200xyz"); /\* @sic R5s130195 BASELINE MOVING 2013 - SIP-ETag (RFC 3903) sic@ *\/ */ + +/* return v_MessageHeader_Response; */ +/* } */ + +/* // FFS: Code not yet used, but may be needed */ +/* altstep a_IMS_DefaultPublish() runs on IMS_PTC */ +/* { /\* acc. to 34.229-1 C.5 Default handling of PUBLISH requests *\/ */ +/* var IMS_DATA_REQ v_IMS_DATA_REQ; */ +/* var template (present) SipUrl v_SipUrlPublicUserId := ?; /\* acc. to A.4.3 in the PUBLISH request the public user id to be used in the Request-Line, From and To is "any IMPU within the set of IMPUs" */ +/* => needs to be checked after receiving as well as the tag for From and To */ +/* !!!! check function needs to be implemented !!!! *\/ */ - [] IMS_Server.receive(car_IMS_Publish_Request(cr_PUBLISH_Request(v_SipUrlPublicUserId, f_IMS_PublishRequest_MessageHeaderRX(v_SipUrlPublicUserId)))) - -> value v_IMS_DATA_REQ - { - IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), - cs_Response(c_statusLine200, f_IMS_PublishResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Publish)))); - } - } +/* [] IMS_Server.receive(car_IMS_Publish_Request(cr_PUBLISH_Request(v_SipUrlPublicUserId, f_IMS_PublishRequest_MessageHeaderRX(v_SipUrlPublicUserId)))) */ +/* -> value v_IMS_DATA_REQ */ +/* { */ +/* IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), */ +/* cs_Response(c_statusLine200, f_IMS_PublishResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Publish)))); */ +/* } */ +/* } */ - } // group +/* } // group */ } diff --git a/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn new file mode 100644 index 0000000..31f129c --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn @@ -0,0 +1,380 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-11 10:39:38 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14283 $ +/******************************************************************************/ + +module IMS_Procedures_CallHold { + + import from LibSip_SDPTypes all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_MessageBodyTypes all; + + import from IMS_Component all; + import from IMS_CommonDefs all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_SDP_MessagesVideo all; + import from IMS_MessageBody_Templates all; + import from IMS_SIP_Templates all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_CommonFunctions all; + + import from IMS_Procedures_CallControl all; + import from IMS_Procedures_Common all; + import from IMS_CommonParameters all; + + //============================================================================ + // Annex C8 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Acc. to 34.229-1 C.8 the UE shall use the same SDP body as for step 5 of C.21 or C.25 except from + * - direction-tag for the current-status remote segment shall be "sendrecv" (handled in f_IMS_BuildSDP_AnnexC21_Step5or7/f_IMS_BuildSDP_MOCallAudioVideo_Step5or7) + * - specific bandwith values in case of pc_SendRTCPOnlyOnHold==true: + * this is checked by f_IMS_CallHoldResume_AnnexC8_CheckBandwidth after the message has been received + * (=> no changes needed compared to step 5 of C.21 or C.25) + * - specific direction attribute (either on session level or on media description level) + * this is checked by fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode after the message has been received + * (=> no changes needed compared to step 5 of C.21 or C.25) + * @param p_SDP_Message_PrevOffer + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AnnexC8_Step1(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-145726: use of f_IMS_BuildSDP_AnnexC21_Step5or7, f_IMS_BuildSDP_MOCallAudioVideo_Step5or7 sic@ */ + var template (present) SDP_Message v_SDP_Message; + var boolean v_CallHoldC8 := true; + + if (lengthof(p_SDP_Message_PrevOffer.media_list) == 1) { // => audio only + v_SDP_Message := f_IMS_BuildSDP_AnnexC21_Step5or7(p_SDP_Message_PrevOffer, v_CallHoldC8); + } else { + v_SDP_Message := f_IMS_BuildSDP_MOCallAudioVideo_Step5or7(CallHold, p_SDP_Message_PrevOffer); + } + return v_SDP_Message; + } + + /* + * @desc build up SDP message for step 3 of C.8 + * @param p_HoldResume + * @param p_SDP_Message_PrevOffer + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AnnexC8_Step3(IMS_CallHoldResume_Type p_HoldResume, + SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message + { + var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); + + if (p_HoldResume == HOLD) { + // invert "sendonly" to "recvonly" in the session attributes (if the UE uses session attribute to hold the call) + v_SDP_Message.attributes := f_SDP_ExchangeAttribute(v_SDP_Message.attributes, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change session attributes + v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change media lines + } + return v_SDP_Message; + } + + //---------------------------------------------------------------------------- + /* + * @desc Check recv mode for call hold/resume acc. to C.8 + * @param p_HoldResume + * @param p_HoldResumeOffer + * @param p_OriginalOffer + * @status APPROVED (IMS) + */ + function fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(IMS_CallHoldResume_Type p_HoldResume, + SDP_Message p_HoldResumeOffer, + SDP_Message p_OriginalOffer) runs on IMS_PTC + { + var SDP_attribute_list v_HoldResumeOffer_AttributeList; + var SDP_attribute_list v_OriginalOffer_AttributeList; + var template (omit) SDP_attribute v_SendRecvAttribute; + var SDP_attribute v_SendRecvAttributeVal; + var integer i; + + v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(p_HoldResumeOffer.attributes, cr_SDP_Attribute_AnySendRecvMode); // session attribute + if (ispresent(v_SendRecvAttribute)) { + // Hold/Resume offer has session attribute for send/recv mode + v_SendRecvAttributeVal := valueof(v_SendRecvAttribute); + select (p_HoldResume) { + case (HOLD) { + if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_inactive)) { // => check all media streams of the original offer to be recvonly + if (not f_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_recvonly)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'inactive' and but not all media streams of the original offer have been 'recvonly' "); + return; + } + } else if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_sendonly)) { // => check all media streams of the original offer to be sendrecv + if (not f_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_sendrecv)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'sendonly' and but not all media streams of the original offer have been 'sendrecv' "); + return; + } + } else { // send/recv mode is neither inactive nor sendonly + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute being neither 'sendonly' not 'inactive'"); + return; + } + } + case (RESUME) { // all media streams of the original offer shall be the same and the same as in the "RESUME offer" + if (not f_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, v_SendRecvAttributeVal)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call resume has session attribute not matching with all media streams of the original offer"); + return; + } + } + } + // check that Hold/Resume offer does not have further send/recv mode attributes in any media stream + if (f_SDP_CheckMediaListAttributes(p_HoldResumeOffer.media_list, cr_SDP_Attribute_AnySendRecvMode)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has session attribute for send/recv mode but also send/recv mode attributes for media streams"); + return; + } + } else { + // Hold/Resume offer has no session attribute for send/recv mode => check stream by stream + if (lengthof(p_HoldResumeOffer.media_list) != lengthof(p_OriginalOffer.media_list)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has different number of media streams than the original offer"); + return; + } + for (i := 0; i < lengthof(p_HoldResumeOffer.media_list); i:=i+1) { + v_HoldResumeOffer_AttributeList := p_HoldResumeOffer.media_list[i].attributes; + v_OriginalOffer_AttributeList := p_OriginalOffer.media_list[i].attributes; + select (p_HoldResume) { + case (HOLD) { + if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_inactive)) { + v_SendRecvAttribute := cs_SDP_Attribute_recvonly; + } + else if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_sendonly)) { + v_SendRecvAttribute := cs_SDP_Attribute_sendrecv; + } + } + case (RESUME) { + v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(v_HoldResumeOffer_AttributeList, cr_SDP_Attribute_AnySendRecvMode); + } + } + if (not ispresent(v_SendRecvAttribute) or not f_SDP_AttributeList_CheckAttribute(v_OriginalOffer_AttributeList, v_SendRecvAttribute)) { // compiler warning cannot be avoided for v_SendRecvAttribute + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has invalid send/recv mode attribute for single media stream"); + return; + } + } + } + } + + /* + * @desc Check bandwidth for call hold/resume acc. to C.8 + * @param p_HoldResume + * @param p_BandwidthList + * @param p_RtcpDuringHold (default value: pc_SendRTCPOnlyOnHold) + * @status APPROVED (IMS) + */ + function f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList(IMS_CallHoldResume_Type p_HoldResume, + template (omit) SDP_bandwidth_list p_BandwidthList, + boolean p_RtcpDuringHold := pc_SendRTCPOnlyOnHold) runs on IMS_PTC + { /* @sic R5-145730: new parameter p_RtcpDuringHold sic@ */ + var integer i; + var SDP_bandwidth_list v_BandwidthList; + var charstring v_Modifier; + var integer v_Bandwidth; + + if (isvalue(p_BandwidthList)) { + v_BandwidthList := valueof(p_BandwidthList); + for (i := 0; i < lengthof(v_BandwidthList); i := i+1) { + v_Modifier := v_BandwidthList[i].modifier; + v_Bandwidth := v_BandwidthList[i].bandwidth; + select (p_HoldResume) { + case (HOLD) { + select (v_Modifier) { + case ("RR") { /* @sic R5-145730: bandwith shall be changed for RR only sic@ */ + if (p_RtcpDuringHold and not (v_Bandwidth > 0)) { /* @sic R5-145730: p_RtcpDuringHold sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call hold: " & v_Modifier & " bandwidth shall be greater than zero"); + return; + } + } + } + } + case (RESUME) { + select (v_Modifier) { + case ("RR", "RS") { + if (p_RtcpDuringHold and (v_Bandwidth != 0)) { /* @sic R5-145730: p_RtcpDuringHold sic@ + @sic R5s150153 change 2 sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call resume: " & v_Modifier & " bandwidth shall be zero"); + return; + } + } + } + } + } + } + } + } + + /* + * @desc Check bandwidth for call hold/resume acc. to C.8 + * @param p_HoldResume + * @param p_SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(IMS_CallHoldResume_Type p_HoldResume, + SDP_Message p_SDP_Message) runs on IMS_PTC + { /* @sic R5-145730: new local function f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList to check media level bandwidth sic@ */ + var integer i; + + f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList(p_HoldResume, p_SDP_Message.bandwidth); + for (i:=0; i < lengthof(p_SDP_Message.media_list); i:=i+1) { + f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList(p_HoldResume, p_SDP_Message.media_list[i].bandwidth); + } + } + + /* + * @desc MO call hold according to Annex C.8 (TS 34.229-1) + * @param p_HoldResume + * @param p_PrevInviteRequest + * @param p_MessageHeader_Prev183Response + * @param p_SDP_OriginalOffer + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @return SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_MOCallHoldResume_AnnexC8(IMS_CallHoldResume_Type p_HoldResume, + INVITE_Request p_PrevInviteRequest, + MessageHeader p_MessageHeader_Prev183Response, + SDP_Message p_SDP_OriginalOffer, + charstring p_ContactUri := px_IMS_CalleeContactUri) runs on IMS_PTC return SDP_Message + { /* @sic R5-150702: p_PrevSessionVersion removed; session version now is checked in generic way in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var template (present) MessageHeader v_MessageHeader_Invite; + var template (present) MessageHeader v_MessageHeader_Update; + var template (present) MessageHeader v_MessageHeader_Ack; + var template (value) SDP_Message v_SDP_HoldResumeResponse; + var MessageBody v_MessageBody; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var INVITE_Request v_InviteRequest; + var UPDATE_Request v_UpdateRequest; + var MessageHeader v_MessageHeader; + var SDP_Message v_SDP_HoldResumeOffer; + var SipUrl v_RequestSipUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader_Prev183Response); // get the contact URI out of the Contact header being sent to the UE in the earlier 183 response + var SipUrl v_ToHeaderSipUrl := f_Addr_Union_GetSipUrl(p_PrevInviteRequest.msgHeader.toField.addressField); // SIP URI in the To header of the INVITE needs to be the same SIP URI as been used in the previous INVITE + var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqGetValue(dialogRemote); /* @sic R5s140121 change 7: CSeq Value is incremented in f_IMS_InviteRequest_MessageHeaderRX and in f_IMS_UpdateRequest_MessageHeaderRX but shall be the same for both sic@ */ + + // Steps 1 and 2 - Receive Invite Request or Update Request + v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderRX(-, v_ToHeaderSipUrl, -, A_2_1_A5); + f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_CseqValue); /* @sic R5s140121 change 7: restore CSeq Value sic@ */ + v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(p_PrevInviteRequest); + + alt { + // INVITE + [] IMS_Server.receive(car_IMS_Invite_Request(cr_INVITE_Request(v_RequestSipUrl, v_MessageHeader_Invite, cr_MessageBody_SDP))) + -> value v_IMS_DATA_REQ + { + v_InviteRequest := v_IMS_DATA_REQ.Request.Invite; + v_MessageHeader := v_InviteRequest.msgHeader; + v_MessageBody := v_InviteRequest.messageBody; + + f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, A_2_1_A5); + } + // UPDATE + [] IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_RequestSipUrl, v_MessageHeader_Update, cr_MessageBody_SDP))) + -> value v_IMS_DATA_REQ + { + v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; + v_MessageHeader := v_UpdateRequest.msgHeader; + v_MessageBody := v_UpdateRequest.messageBody; + } + } + f_IMS_PreliminaryPass(__FILE__, __LINE__, "Annex C.8 step 1"); + + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); + v_SDP_HoldResumeOffer := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_MessageBody, f_IMS_BuildSDP_AnnexC8_Step1(p_SDP_OriginalOffer)); /* @sic R5s140324 - additional change 2 sic@ */ + + /* @sic R5-150702: session version is checked in generic way in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ + + // Check bandwidth + f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(p_HoldResume, v_SDP_HoldResumeOffer); + + // Check send/receive mode + fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(p_HoldResume, v_SDP_HoldResumeOffer, p_SDP_OriginalOffer); + + if (isbound(v_InviteRequest)) { + // Step 2. Send 100 Trying + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); + } + + // Step 3. Respond with 200 OK (A.3.1 condition A5: Any response sent by the UE within a dialog + v_SDP_HoldResumeResponse := f_IMS_BuildSDP_AnnexC8_Step3(p_HoldResume, v_SDP_HoldResumeOffer); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader, + cs_ContentTypeSDP, + -, + p_ContactUri, + tsc_OptionTagList_precondition), /* @sic R5s150274: tsc_OptionTagList_precondition sic@ */ + cs_MessageBody_SDP(v_SDP_HoldResumeResponse)))); + if (isbound(v_InviteRequest)) { + // Step 4. Receive ACK + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_RequestSipUrl, v_MessageHeader_Ack))); + } + + return v_SDP_HoldResumeOffer; + } + + function f_IMS_ReferRequest_MessageHeaderTX(boolean p_ReferCreatingDialog := true, + charstring p_CallerSipAddrStr, + charstring p_ConferenceURI, + template (omit) charstring p_ReferredByURI := omit, + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported, + integer p_CSeqValue := 1234) runs on IMS_PTC return template (value) MessageHeader + { /* REFER acc. to see TS 34.229, A.2.12 - MT REFER: + p_CallerSipAddrStr .. Address of the remote UE + p_ConferenceURI .. URI of the conference focus as defined in RFC 4353 */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ + /* Prose issues (-> A.2.12): + * - acc to prose there shall be P-Access-Network-Info (does not make sense for MT) + * - Via is not exactly the same as for INVITE (A.2.9) but there seems to be no reason for any difference + */ + var template (value) MessageHeader v_MessageHeader_Refer := cs_MessageHeader_Dummy; + var template (value) SipUrl v_PublicUserId_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); // as for INVITE + var template (omit) SessionId v_SessionId := omit; + var charstring v_CallIdString; + var template (value) From v_From; + var template (value) To v_To; + var template (value) CallId v_CallId; + var integer v_CSeqValue; + + if (p_ReferCreatingDialog) { + v_CSeqValue := p_CSeqValue; + v_From := cs_From(f_SIP_BuildSipUri_TX(p_CallerSipAddrStr), f_IMS_GenerateTag("REFER", "From")); + v_To := cs_ToDef(v_PublicUserId_SipUrl); + v_CallIdString := f_IMS_PTC_GenerateCallId("REFER"); + v_CallId := cs_CallId(v_CallIdString); + if (p_SessionIdSupported) { + v_SessionId := cs_SessionId(f_IMS_SessionId_TX_Generate(v_CallIdString)); + } + } else { /* no dialog is active => there has been no previous INVITE (e.g. test case 15.21) + => REFER creates dialog between the remote UE (p_CallerSipAddrStr) and the UE (addressed with default IMPU) - see RFC 3515 clause 2 */ + // !!!! this branch needs to be checked !!!! + v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal); + v_To := f_IMS_RequestInDialog_ToHeaderTX(); + v_From := f_IMS_RequestInDialog_FromHeaderTX(); + v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); + v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); + } + + v_MessageHeader_Refer.via := f_IMS_InviteRequest_ViaTX(); // same as for INVITE + v_MessageHeader_Refer.fromField := v_From; + v_MessageHeader_Refer.toField := v_To; + v_MessageHeader_Refer.callId := v_CallId; + v_MessageHeader_Refer.sessionId := v_SessionId; + v_MessageHeader_Refer.cSeq := cs_CseqDef(v_CSeqValue, "REFER"); + v_MessageHeader_Refer.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_CallerSipAddrStr, tsc_IMS_CallerPort)); /* same as for INVITE: this is the address to which the UE shall send the notifications */ + v_MessageHeader_Refer.referTo := cs_ReferTo(f_SIP_BuildSipUri_TX(p_ConferenceURI)); /* NOTE: acc. to 24.147 cl. 5.3.1.5.2 when inviting another user there shall be a "method=INVITE" + * or the "method parameter shall be omitted => we don't need to include the "method" parameter */ + v_MessageHeader_Refer.maxForwards := cs_MaxForwardsDef; + + if (ispresent(p_ReferredByURI)) { + v_MessageHeader_Refer.referredBy := cs_ReferredBy(f_SIP_BuildSipUri_TX(valueof(p_ReferredByURI))); /* NOTE: acc. to 24.147 cl. 5.3.1.5.2 this shall be the "URI of the conference participant that is sending the REFER request" + * => it might not be necessary to use a different URI than as for the From header */ + } + return v_MessageHeader_Refer; + } + +} diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_Common.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Common.ttcn similarity index 60% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_Common.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Common.ttcn index 1293130..fabc236 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_Common.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Common.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-02 15:47:20 +0200 (Tue, 02 Sep 2014) $ -// $Rev: 11984 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module IMS_Procedures_Common { @@ -25,12 +25,13 @@ module IMS_Procedures_Common { import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; - type enumerated IMS_TCP_CloseHandling_Type { justWait, waitAndClose }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_TCP_CloseHandling_Type { justWait, waitAndClose, dontWait }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5s140801: dontWait sic@ */ /* * @desc common function to handle closing down TCP connections used for SIP signalling * @param p_Handling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_TCP_CloseHandling(IMS_TCP_CloseHandling_Type p_Handling) runs on IMS_PTC { @@ -46,13 +47,25 @@ module IMS_Procedures_Common { } } + //---------------------------------------------------------------------------- + /* + * @desc Release of IMS registration and security plus resetting of IMS information + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_GlobalRelease() runs on IMS_PTC + { + f_IMS_RegisterInfo_Release(); /* release registration information at IPCAN */ + f_IMS_PTC_Reset(); /* reset ImsInfo and release security + @sic R5s150031: common function f_IMS_PTC_Reset sic@ */ + } + //---------------------------------------------------------------------------- /* * @desc check whether public user id matches with any public user id in the given list * @param p_PublicUserIdentityList * @param p_SipUrl * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PublicUserId_Match(CharStringList_Type p_PublicUserIdentityList, SipUrl p_SipUrl) return boolean @@ -71,7 +84,7 @@ module IMS_Procedures_Common { /* * @desc return server port of the network side depending on whether it is protected or not * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_GetPort_ps() runs on IMS_PTC return integer { /* @sic R5s130756 additional changes: p_IsProtected removed (f_IMS_PTC_Security_IsStarted used instead) sic@ */ @@ -88,7 +101,7 @@ module IMS_Procedures_Common { /* * @desc return server port of the UE side depending on whether it is protected or not * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_GetPort_us() runs on IMS_PTC return integer { @@ -110,7 +123,7 @@ module IMS_Procedures_Common { * when there still no to-tag a new to-tag is generated for the reponse * @param p_RequestMessageHeader * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Response_ToTagTX(template (value) MessageHeader p_RequestMessageHeader) runs on IMS_PTC return charstring { /* @sic R5-131897, R5-132063 - new generic function sic@ */ @@ -138,13 +151,21 @@ module IMS_Procedures_Common { /* * @desc Generate To header to be used in a response: in general the To header consists of the address and the to-tag * @param p_RequestMessageHeader + * @param p_ToTag (default value: omit) * @return template (value) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_Response_ToHeaderTX(template (value) MessageHeader p_RequestMessageHeader) runs on IMS_PTC return template (value) To - { - var charstring v_ToTag := f_IMS_Response_ToTagTX(p_RequestMessageHeader); + function f_IMS_Response_ToHeaderTX(template (value) MessageHeader p_RequestMessageHeader, + template (omit) charstring p_ToTag := omit) runs on IMS_PTC return template (value) To + { /* @sic R5-153986: parameter p_ToTag to allow different ToTags for different dialogs created by subscription to even packages sic@ */ var SipUrl v_SipUrl := f_Addr_Union_GetSipUrl(p_RequestMessageHeader.toField.addressField); + var charstring v_ToTag; + + if (ispresent(p_ToTag)) { + v_ToTag := valueof(p_ToTag); + } else { + v_ToTag := f_IMS_Response_ToTagTX(p_RequestMessageHeader); + } return cs_ToWithTag(v_SipUrl, v_ToTag); } @@ -154,7 +175,7 @@ module IMS_Procedures_Common { * @param p_RequestMessageHeader * @param p_Is100Response (default value: false) * @return template (present) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Response_ToHeaderRX(template (value) MessageHeader p_RequestMessageHeader, boolean p_Is100Response := false) return template (present) To @@ -179,7 +200,7 @@ module IMS_Procedures_Common { * @desc generate template for From header (the from-tag has to be the same as in the corresponding request) * @param p_RequestMessageHeader * @return template (present) From - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Response_FromHeaderRX(template (value) MessageHeader p_RequestMessageHeader) return template (present) From { @@ -192,12 +213,12 @@ module IMS_Procedures_Common { //---------------------------------------------------------------------------- /* * @desc Route set acc. A.2.3 and A.3.1 - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @return template (value) RouteBody_List * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function f_IMS_RouteSet_MO_Call_TX(boolean p_IsEmergency := false) runs on IMS_PTC return template (value) RouteBody_List - { /* @sic R5s130756 change 8: new parameter p_IsEmergency sic@ */ + function f_IMS_RouteSet_MO_Call_TX(IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC return template (value) RouteBody_List + { /* @sic R5s150692 change 5: parameter p_EmergencyType sic@ */ var template (omit) GenericParam v_SigCompParam := f_IMS_PTC_ImsInfo_GetSigCompParam(); // Compression parameter to be included in the last route parameter (see 34.229-1 cl. 13.2.4) var template (omit) integer v_Port_ps := omit; var template (value) RouteBody_List v_RouteBodyList; @@ -206,19 +227,21 @@ module IMS_Procedures_Common { v_Port_ps := f_IMS_PTC_GetPort_ps(); } // else: in case of GIBA or emergency call without registration SS server port in unprotected (and therefore left out) - if (p_IsEmergency) { /* @sic R5s130756 change 8 sic@ - !!!! PROSE ISSUE: acc. to R5-134955 the normal emergency call would not be routed to the E-CSCF but as a normal call !!!! */ - v_RouteBodyList := { - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & tsc_IMS_Ecscf)), - f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) - }; - } else { - v_RouteBodyList := { - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:pcscf.other.com")), - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:scscf.other.com")), - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & px_IMS_Scscf)), - f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) - }; + select (p_EmergencyType) { + case (NO_EMERGENCY) { + v_RouteBodyList := { + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:pcscf.other.com")), + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:scscf.other.com")), + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & px_IMS_Scscf)), + f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) + }; + } + case else { /* @sic R5s150692 change 5, R5-153472 sic@ */ + v_RouteBodyList := { + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & tsc_IMS_Ecscf)), + f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) + }; + } } return v_RouteBodyList; } @@ -248,13 +271,13 @@ module IMS_Procedures_Common { // Check functions //---------------------------------------------------------------------------- - type enumerated CheckToTag_Type {noToTag, dialogToTag}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated CheckToTag_Type {noToTag, dialogToTag}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc check the To header e.g. whether it has unexpected tag * @param p_MessageHeader * @param p_CheckType - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_CheckTo(MessageHeader p_MessageHeader, CheckToTag_Type p_CheckType) runs on IMS_PTC @@ -291,7 +314,7 @@ module IMS_Procedures_Common { * @param p_Protocol * @param p_AllowFQDN (default value: true) * @param p_CheckRport (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_Request_CheckVia(MessageHeader p_MessageHeader, InternetProtocol_Type p_Protocol, @@ -320,7 +343,7 @@ module IMS_Procedures_Common { * (taking into consideration that the format of IP address representation may change) * @param p_RequestHeader * @param p_ResponseHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_Response_CheckVia(MessageHeader p_RequestHeader, MessageHeader p_ResponseHeader) runs on IMS_PTC @@ -345,28 +368,178 @@ module IMS_Procedures_Common { } } + /* + * @desc check whether the first entry in the route body matches the P-CSCF address + * @param p_RouteBodyList + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_RouteBody_CheckPcscfAddr(RouteBody_List p_RouteBodyList) runs on IMS_PTC + { /* @sic R5s150039: new function to deal with RecordRoute header as well as with Route header sic@ */ + var charstring v_PcscfAddr := p_RouteBodyList[0].nameAddr.addrSpec.components.sip.hostPort.host; + + if (not f_IMS_PTC_Pcscf_CheckAndSet(v_PcscfAddr)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid host in 'route body'"); + } + } + + /* + * @desc Check Route header of a given request sent by the UE: + * The first entry has to correspond to the IP address of the P-CSCF + * => in case of IPv6 the presentation of the address may differ from the address stored at the IMS PTC + * @param p_RequestHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_MessageHeader_Request_CheckRoute(MessageHeader p_RequestHeader) runs on IMS_PTC + { + fl_RouteBody_CheckPcscfAddr(p_RequestHeader.route.routeBody); /* @sic R5s150039: fl_RouteBody_CheckPcscfAddr sic@ */ + } + + /* + * @desc Check RecordRoute header of a given request sent by the UE: + * The first entry has to correspond to the IP address of the P-CSCF + * => in case of IPv6 the presentation of the address may differ from the address stored at the IMS PTC + * @param p_RequestHeader + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_MessageHeader_Response_CheckRecordRoute(MessageHeader p_RequestHeader) runs on IMS_PTC + { + fl_RouteBody_CheckPcscfAddr(p_RequestHeader.recordRoute.routeBody); /* @sic R5s150039: fl_RouteBody_CheckPcscfAddr sic@ */ + } + /* * @desc Check Contact header * @param p_MessageHeader - * @param p_AllowGRUU (default value: false) - * @param p_AllowFQDN (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_MessageHeader_CheckContactAddr(MessageHeader p_MessageHeader, - boolean p_AllowGRUU := false, - boolean p_AllowFQDN := true) runs on IMS_PTC - { + function f_IMS_MessageHeader_CheckContactAddr(MessageHeader p_MessageHeader) runs on IMS_PTC + { /* @sic R5-153760: p_AllowGRUU, p_AllowFQDN removed sic@ */ var template integer v_Port := *; var SipUrl v_SipUrl; if (not match(p_MessageHeader.contact, cr_Contact_Wildcard)) { // contact may be wildcard for de-registration v_SipUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader); - if (not f_IMS_PTC_CheckSipUrlForIPAddrOrFQDNOrGRUU(v_SipUrl, v_Port, p_AllowGRUU, p_AllowFQDN)) { + if (not f_IMS_PTC_CheckSipUrlForIPAddrOrFQDNOrGRUU(v_SipUrl, v_Port)) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SipUrl in 'contact'"); } } } + /* + * @desc Check CSeq of a MessageHeader against expected value + * @param p_MessageHeader + * @param p_ExpectedCSeqValue + * @status APPROVED (IMS) + */ + function f_IMS_MessageHeader_CheckCSeq(template (value) MessageHeader p_MessageHeader, + integer p_ExpectedCSeqValue) runs on IMS_PTC + { + var integer v_CSeqValue := f_MessageHeader_GetCseqValue(p_MessageHeader); + if (v_CSeqValue != p_ExpectedCSeqValue) { // @sic R5s150276 change 2: "==" replaced by "!=" sic@ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid CSeqValue"); + } + } + + //============================================================================ + // Dialog handling + //---------------------------------------------------------------------------- + /* + * @desc returns either next Cseq value of ? if there has been no request sent by the UE so far + * @param p_CseqType (default value: dialogRemote) + * @param p_DialogIndex (default value: omit) + * @return template (present) integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_RequestInDialog_CSeqValueRX(IMS_PTC_CseqType_Type p_CseqType := dialogRemote, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) integer + { + var template (present) integer v_CSeqValue := ?; + + if (isvalue(f_IMS_PTC_ImsInfo_CseqGet(p_CseqType, p_DialogIndex))) { + v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(p_CseqType, p_DialogIndex); + } + return v_CSeqValue; + } + + /* + * @desc Build the From header for requests being received within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (present) From + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_RequestInDialog_FromHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) From + { /* @sic R5s140017 MCC160 implementation sic@ */ + /* @sic R5s140121 change 2.1: "runs on" added sic@ */ + var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before + var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogRemoteId); + return cr_FromWithTag(v_SipUrl, v_FromTag); + } + + /* + * @desc Build the To header for requests being received within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (present) To + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_RequestInDialog_ToHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) To + { /* @sic R5s140017 MCC160 implementation sic@ */ + var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); /* will cause a runtime error when to-tag has not been set before + NOTE: this runtime error is intended as something else is wrong */ + var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogLocalId, -, p_DialogIndex); /* @sic R5s150382 change 1: p_DialogIndex sic@ */ + return cr_ToWithTag(v_SipUrl, v_ToTag); + } + + /* + * @desc Build the From header for requests being sent within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (value) From + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_RequestInDialog_FromHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) From + { /* @sic R5s140017 MCC160 implementation sic@ */ + /* @sic R5s140121 change 4.1: "runs on" added sic@ */ + var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before + var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogLocalId); + return cs_From(v_SipUrl, v_FromTag); + } + + /* + * @desc Build the To header for requests being sent within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (value) To + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_RequestInDialog_ToHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) To + { /* @sic R5s140017 MCC160 implementation sic@ */ + var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before + var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogRemoteId); + return cs_ToWithTag(v_SipUrl, v_ToTag); + } + + /* + * @desc check to-tag of received response and store value if necessary (mainly called after receiving 180 or 183 response) + * @param p_ResponseMessageHeader + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_Dialog_SetRemoteTag(MessageHeader p_ResponseMessageHeader, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { /* @sic R5s140017 MCC160 implementation: f_IMS_PTC_ImsInfo_DialogGetToTag, f_IMS_PTC_ImsInfo_DialogSetToTag replaced by f_IMS_PTC_ImsInfo_DialogGetRemoteTag, f_IMS_PTC_ImsInfo_DialogSetRemoteTag sic@ */ + var template (omit) charstring v_DialogRemoteTag := f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex); + var template (omit) charstring v_ReceivedToTag := f_MessageHeader_GetToTag(p_ResponseMessageHeader); + var charstring v_ReceivedToTagValue; + + if (ispresent(v_ReceivedToTag)) { + v_ReceivedToTagValue := valueof(v_ReceivedToTag); + if (ispresent(v_DialogRemoteTag)) { // @sic R5s140173 sic@ + if (not match(v_ReceivedToTagValue, v_DialogRemoteTag)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid To-tag"); + } + } else { + f_IMS_PTC_ImsInfo_DialogSetRemoteTag(v_ReceivedToTagValue); + } + } + } + //============================================================================ // Generic Common Messages //---------------------------------------------------------------------------- @@ -375,7 +548,7 @@ module IMS_Procedures_Common { * @param p_MessageHeader_Request * @param p_ContentType (default value: omit) * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_OtherResponse_200_MessageHeaderRX(template (value) MessageHeader p_MessageHeader_Request, template ContentType p_ContentType := omit) runs on IMS_PTC return template (present) MessageHeader @@ -429,7 +602,8 @@ module IMS_Procedures_Common { } if (v_A2A4) { v_Port_us := f_IMS_PTC_GetPort_us(); /* @sic R5s130985 Change 2 sic@ */ - v_MessageHeader_Response.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us)); // host address needs to be checked after receiving + v_MessageHeader_Response.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* host address needs to be checked after receiving + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ } return v_MessageHeader_Response; } @@ -440,7 +614,7 @@ module IMS_Procedures_Common { * @param p_Protocol * @param p_Response * @param p_IMS_DATA_RSP_ByRef (by reference) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ altstep a_IMS_ReceiveResponse(template (value) MessageHeader p_RequestHeader, template (present) InternetProtocol_Type p_Protocol, @@ -461,7 +635,7 @@ module IMS_Procedures_Common { * @param p_Protocol * @param p_Response * @return IMS_DATA_RSP - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_ReceiveResponse(template (value) MessageHeader p_RequestHeader, template (present) InternetProtocol_Type p_Protocol, @@ -472,4 +646,23 @@ module IMS_Procedures_Common { return v_IMS_DATA_RSP_ByRef; } + /* + * @desc wrapper altstep to receive 200 OK + * @param p_RequestHeader + * @param p_Protocol + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + altstep a_IMS_ReceiveResponse200OK(template (value) MessageHeader p_RequestHeader, + template (present) InternetProtocol_Type p_Protocol) runs on IMS_PTC + { // NOTE: in general the responses e.g. for different NOTIFY messages differ in the CSeq value only + var template (present) MessageHeader v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(p_RequestHeader); + var IMS_DATA_RSP v_IMS_DATA_RSP_ByRef; // Dummy + + [] a_IMS_ReceiveResponse(p_RequestHeader, p_Protocol, cr_Response(c_statusLine200, v_MessageHeader_Response), v_IMS_DATA_RSP_ByRef); + } + + + + + } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_Registration.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Registration.ttcn similarity index 70% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_Registration.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Registration.ttcn index 0d7c5fd..79ddafc 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_Registration.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Registration.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 12:36:16 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12204 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:40:16 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14433 $ /******************************************************************************/ module IMS_Procedures_Registration { @@ -30,13 +30,41 @@ module IMS_Procedures_Registration { import from NAS_AuthenticationCommon all; import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; + import from Parameters all; + + + //---------------------------------------------------------------------------- + + template (value) charstring cs_IMS_PubGRUU(charstring p_PublicUserIdentity) := p_PublicUserIdentity & ";gr=" & tsc_IMS_PubGRUU_UriParameterValue; /* @sic R5s150721, R5-153760 sic@ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + /* + * @desc to get a unique and distinct temp gruu (see RFC 5627) for a given URI; + * "sip:user@3gpp.org" shall result in "sip:tgruu.736970-75736572-33677070-6f7267@" &p_HomeDomainName & ";gr"; + * NOTE: for each AOR used in the NOTIFY for reg-event package and/or the 200 OK for REGISTER there shall be a distinct temp-gruu + * @param p_PublicUserIdentity + * @param p_HomeDomainName + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_IMS_TempGRUU(charstring p_PublicUserIdentity, + charstring p_HomeDomainName) return charstring + { /* @sic R5s150721, R5-153760: replaces cs_IMS_TempGRUUForUE sic@ */ + var CharStringList_Type v_CharStringList := f_StringSplit(p_PublicUserIdentity, {":", ".", "@"}); + var CharStringList_Type v_HexStringList; + var integer i; + for (i:=0; i < lengthof(v_CharStringList); i:=i+1) { + v_HexStringList[i] := oct2str(char2oct(v_CharStringList[i])); + } + return "sip:tgruu." & f_StringJoin(v_HexStringList, "-") & "@" & p_HomeDomainName & ";gr"; + } //---------------------------------------------------------------------------- /* * @desc return security parameters out of register request message * @param p_RegisterRequest * @return SecurityClientParams_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_GetSecurityClientParams(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return SecurityClientParams_Type { @@ -65,56 +93,23 @@ module IMS_Procedures_Registration { return v_SecurityClientParams; } - /* - * @desc Acc. to A.1.6 the To header is derived from the From header of the previous SUBSCRIBE message - * NOTE: in fact the URIs in From and To are the same - * @param p_SubscribeMessageHeader - * @return template (value) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_Notify_ToHeaderTX(MessageHeader p_SubscribeMessageHeader) return template (value) To - { - var charstring v_ToTag := f_MessageHeader_GetFromTag(p_SubscribeMessageHeader); - var SipUrl v_SipUrl := f_Addr_Union_GetSipUrl(p_SubscribeMessageHeader.fromField.addressField); /* @sic R5s130133 additional change 3 sic@ */ - - return cs_ToWithTag(v_SipUrl, v_ToTag); /* @sic R5-130750: same URI as in previous SUBSCRIBE's From header sic@ */ - } - - /* - * @desc Acc. to A.1.6 the From header is derived from the To header of the previous SUBSCRIBE message - * NOTE: in fact the URIs in From and To are the same - * @param p_SubscribeMessageHeader - * @return template (value) From - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_Notify_FromHeaderTX(MessageHeader p_SubscribeMessageHeader) runs on IMS_PTC return template (value) From - { - var SipUrl v_SipUrl := f_Addr_Union_GetSipUrl(p_SubscribeMessageHeader.toField.addressField); /* @sic R5s130133 additional change 3 sic@ */ - var charstring v_FromTag := f_IMS_Response_ToTagTX(p_SubscribeMessageHeader); /* NOTE: RFC 3265 explicitly requires the to-tag of the NOTIFY to be the same as the from-tag of the SUBSCRIBE (see clause 3.3.4) - * but in general SUBSCRIBE generates a dialog or is sent on a pre-existing dialog - * => NOTIFY needs to be sent on this dialog and has to use the tags of this dialog - * @sic R5-131897, R5-132063 - generic handling of to-tags sic@ - * @sic R5s130660 sic@ */ - return cs_From(v_SipUrl, v_FromTag); /* @sic R5-130750: same URI as in previous SUBSCRIBE's To header sic@ */ - } - /* * @desc Build Contact header template to be used for sending * @param p_RegisterRequestMessageHeader - * @param p_GRUUsInSIP * @param p_Expires + * @param p_GRUUsInSIP (default value: pc_IMS_GRUUsInSIP) * @return template (value) Contact - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_RegisterResponse_BuildContactHeader(MessageHeader p_RegisterRequestMessageHeader, - boolean p_GRUUsInSIP, - charstring p_Expires) runs on IMS_PTC return template (value) Contact + charstring p_Expires, + boolean p_GRUUsInSIP := pc_IMS_GRUUsInSIP) runs on IMS_PTC return template (value) Contact { /* @sic R5-130750 change 6: for now all parameters will be taken over from the REGISTER's Contact (i.e. without checking whether a particular parameter is really a feature parameter) sic@ */ /* @sic R5s130274: wildcard in contact header of de-registration sic@ */ - var SipUrl v_ContactUrl; - var template (omit) SemicolonParam_List v_ContactParams := omit; - var charstring v_PublicUserIdForGRUU; var boolean v_WildcardedContact := match(p_RegisterRequestMessageHeader.contact, cr_Contact_Wildcard); + var template (omit) SemicolonParam_List v_ContactParams := omit; + var charstring v_SipUriForGruu; + var SipUrl v_ContactUrl; if (v_WildcardedContact) { // contact may be wildcard for de-registration v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); @@ -129,16 +124,13 @@ module IMS_Procedures_Registration { } else { v_ContactParams := p_RegisterRequestMessageHeader.contact.contactBody.contactAddresses[0].contactParams; /* @sic R5-130750 change 6 sic@ */ + v_ContactParams := f_SIP_SemicolonParamList_RemoveParam(v_ContactParams, "expires"); /* @sic R5s150342 sic@ */ } - if (p_GRUUsInSIP) { // Add pub-gruu and temp-gruu parameters - v_PublicUserIdForGRUU := f_SIP_SipUrl_GetPublicUserIdentity(f_Addr_Union_GetSipUrl(p_RegisterRequestMessageHeader.toField.addressField)); - v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("pub-gruu", cs_IMS_ArbitraryValueFor_gr(v_PublicUserIdForGRUU))); - v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("temp-gruu", cs_IMS_TempGRUUForUE(f_IMS_PTC_ImsInfo_GetHomeDomainName()))); /* !!!! acc. to 34.229-1 A.1.3: - !!!! "with an arbitrary value in the user part and the host part matching - !!!! with the domain of the To header of the REGISTER and - !!!! gr parameter without any value" - !!!! => shall not use px_IMS_HomeDomainName ??? */ + if (p_GRUUsInSIP) { // Add pub-gruu and temp-gruu parameters @sic R5-153760 sic@ + v_SipUriForGruu := f_IMS_PTC_ImsInfo_GetURI(gruu); + v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParamQuoted("pub-gruu", cs_IMS_PubGRUU(v_SipUriForGruu))); + v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParamQuoted("temp-gruu", fl_IMS_TempGRUU(v_SipUriForGruu, f_IMS_PTC_ImsInfo_GetHomeDomainName()))); } } v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("expires", p_Expires)); @@ -151,25 +143,57 @@ module IMS_Procedures_Registration { group CheckFunctions { /* - * @desc check the parameters of the Contact header + * @desc check given contact parametes to contain parameter with given p_ParamId and its value (comma separated list) containing the given p_TagValue + * @param p_ContactParams + * @param p_ParamId + * @param p_TagValue + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_IMS_ContactParams_CheckValueList(SemicolonParam_List p_ContactParams, + charstring p_ParamId, + template (present) charstring p_TagValue) return boolean + { + var integer i; + var integer k; + var charstring v_TagValueString; + var CharStringList_Type v_TagValueList; + + for (i:=0; i < lengthof(p_ContactParams); i:=i+1) { + if (match(p_ContactParams[i], cr_GenericParam_Common(p_ParamId, cr_GenValueQuoted(?)))) { + v_TagValueString := p_ContactParams[i].paramValue.quotedString; + v_TagValueList := f_StringSplit(v_TagValueString, {","}); + for (k:=0; k < lengthof(v_TagValueList); k:=k+1) { + if (match(v_TagValueList[k], p_TagValue)) { + return true; + } + } + } + } + return false; + } + + /* + * @desc check the parameters of the Contact header of REGISTER messsage * @param p_ContactAddress * @param p_CondA7 (default value: false) * @param p_IMS_MTSI (default value: pc_MultimediaTelephonyService) - * @param p_IMS_GRUUsInSIP (default value: pc_IMS_GRUUsInSIP) - * @param p_IMS_SMSoverIMS (default value: tsc_IMS_SMSoverIMS) - * @param p_Video (default value: tsc_IMS_VideoFeature) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_IMS_SMSoverIMS (default value: pc_SMS_MT) + * @param p_Video (default value: pc_IMS_Video_FeatureTag) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function fl_IMS_Register_ContactAddress_CheckParams(ContactAddress p_ContactAddress, - boolean p_CondA7 := false, - boolean p_IMS_MTSI := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ - boolean p_IMS_GRUUsInSIP := pc_IMS_GRUUsInSIP, - boolean p_IMS_SMSoverIMS := tsc_IMS_SMSoverIMS, - boolean p_Video := tsc_IMS_VideoFeature) runs on IMS_PTC + function fl_IMS_Register_ContactHeader_CheckParams(ContactAddress p_ContactAddress, + boolean p_CondA7 := false, + boolean p_IMS_MTSI := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ + boolean p_IMS_SMSoverIMS := pc_SMS_MT, + boolean p_Video := pc_IMS_Video_FeatureTag) runs on IMS_PTC { /* NOTE: 'Expires' can only be checked in context with the 'Expires' header field */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ + /* @sic R5-153766: p_IMS_SMSoverIMS := pc_SMS_MT, check of instance id for gruu removed as this is done in f_IMS_A_1_1_MessageHeader_CommonChecks now sic@ */ var SemicolonParam_List v_ContactParams := {}; var SemicolonParam_List v_UrlParams := {}; var SipUrl v_SipUrl; + var boolean v_Rel11OrGreater := f_IMS_PTC_UE_ReleaseGreaterOrEqual(11); /* @sic R5s150630 sic@ */ if (ispresent(p_ContactAddress.contactParams)) { v_ContactParams := p_ContactAddress.contactParams; @@ -181,32 +205,39 @@ module IMS_Procedures_Registration { v_UrlParams := v_SipUrl.urlParameters; } if (not match(v_UrlParams, cr_SemicolonParam_List_OneSpecificParam("sos"))) { // @sic R5s130495 change 10 sic@ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sos URI parameter for 'ContactAddress'"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sos URI parameter for Contact header"); } } // Rel-7 specific, @sic R5-073440 sic@ - if (p_IMS_MTSI) { // check 'feature-param' - if (not match(v_ContactParams, cr_FeatureParam_3gpp_icsi_ref)) { // @sic R5s130109, R5s130738: string needs to be quoted; R5-142247 sic@ + if (p_IMS_MTSI) { // check 'feature-param' + if (not fl_IMS_ContactParams_CheckValueList(v_ContactParams, tsc_IMS_FeatureParamId_3gpp_icsi_ref, cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref)) { /* @sic R5s130109, R5s130738: string needs to be quoted; R5-142247 sic@ + @sic R5-153987: fl_IMS_ContactParams_CheckValueList sic@ */ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid params in 'Contact Feature Params'"); } } - if (p_IMS_GRUUsInSIP) { // check 'c-p-instance' - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // @sic R5-134659 sic@ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - if (not match(v_ContactParams, cr_CPInstanceInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid params in 'ContactAddress'"); - } - } - if (p_IMS_SMSoverIMS) { // check 'feature-param' + if (p_IMS_SMSoverIMS and not p_CondA7) { // check 'feature-param' @sic R5-153766: "and not p_CondA7" sic@ if (not match(v_ContactParams, cr_SMSParamInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SMS params in 'ContactAddress'"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SMS params in Contact header"); } } - if (p_Video) { // check 'feature-param' + if (p_Video and not p_CondA7) { // check 'feature-param' @sic R5-153766: "and not p_CondA7" sic@ if (not match(v_ContactParams, cr_VideoInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid video params in 'ContactAddress'"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid video params in Contact header"); + } + } + if (v_Rel11OrGreater and pc_IMS_CS_PS_SRVCC) { // check 'feature-param' @sic R5-145796; R5s150630 sic@ + if (not match(v_ContactParams, cr_RSRVCCInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid rSRVCC params in Contact header"); + } + } + if (v_Rel11OrGreater and pc_IMS_CS_PS_SRVCCAlert) { // check 'feature-param' @sic R5-145796; R5s150630 sic@ + if (not match(v_ContactParams, cr_RSRVCCAlertInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid rSRVCC Alerting params in Contact header"); + } + } + if (v_Rel11OrGreater and pc_SRVCC_GERAN_UTRAN) { // check 'feature-param' @sic R5-151242; R5s150630 sic@ + if (not match(v_ContactParams, cr_AccessTypeInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "feature parameter 'g.3gpp.accesstype' missing in Contact header"); } } } @@ -215,7 +246,7 @@ module IMS_Procedures_Registration { * @desc Check the address of the Contact header * @param p_ContactAddress * @param p_UE_Address - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_ContactAddress_CheckHostname(ContactAddress p_ContactAddress, IP_AddrInfo_Type p_UE_Address) runs on IMS_PTC @@ -257,7 +288,7 @@ module IMS_Procedures_Registration { /* * @desc Check the SecurityClient header * @param p_SecClient - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_SecurityClient_Check(SecurityClient p_SecClient) runs on IMS_PTC { /* @sic R5s130710 - MCC160 Implementation: p_Confidentiality removed sic@ */ @@ -294,7 +325,7 @@ module IMS_Procedures_Registration { /* * @desc check Authorization header sent by the UE * @param p_Authorization - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_Authorization_Check(Authorization p_Authorization) runs on IMS_PTC { @@ -317,7 +348,7 @@ module IMS_Procedures_Registration { * NOTE: 'contact' may be wildcard e.g. in case of de-registration * @param p_MessageHeader * @param p_ExplicitExpiry (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_MessageHeader_CheckExpires(MessageHeader p_MessageHeader, template (omit) charstring p_ExplicitExpiry := omit) runs on IMS_PTC @@ -359,7 +390,7 @@ module IMS_Procedures_Registration { * @param p_UE_Address (default value: omit) * @param p_ExplicitExpiry (default value: omit) * @param p_CheckAuthorization (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_A_1_1_MessageHeader_CommonChecks(MessageHeader p_MessageHeader, InternetProtocol_Type p_Protocol, @@ -377,12 +408,20 @@ module IMS_Procedures_Registration { // Check 'To' f_IMS_MessageHeader_CheckTo(p_MessageHeader, noToTag); - // Check 'ContactAddress' + // Check Contact header if (ispresent(p_MessageHeader.contact.contactBody.contactAddresses[0])) { /* NOTE: is not be present when 'contact' is wildcard e.g. in case of de-registration * but in this case the respective receive template needs to allow 'cr_ContactWildcard' */ v_ContactAddress := p_MessageHeader.contact.contactBody.contactAddresses[0]; + + if (pc_IMS_GRUUsInSIP) { // check 'c-p-instance' + // @sic R5-153766: Check of instance-id shall be done for GRUU too sic@ + if (not match(v_ContactAddress.contactParams, cr_CPInstanceInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid instance id in Contact header"); + } + } + if (not v_IsDeregistration) { /* @sic R5-142956: in case of deregistration no further contact parameters need to be checked sic@ */ - fl_IMS_Register_ContactAddress_CheckParams(v_ContactAddress, p_CondA7); + fl_IMS_Register_ContactHeader_CheckParams(v_ContactAddress, p_CondA7); } if (isvalue(p_UE_Address)) { fl_IMS_ContactAddress_CheckHostname(v_ContactAddress, valueof(p_UE_Address)); @@ -405,7 +444,7 @@ module IMS_Procedures_Registration { /* * @desc Check whether message header contains parameter for sig compression * @param p_MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_CheckSigComp(MessageHeader p_MessageHeader) runs on IMS_PTC { @@ -429,7 +468,7 @@ module IMS_Procedures_Registration { * @param p_CondA7 (default value: false) * @param p_CondA3 (default value: false) * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_PublicUserIdentity_Check(SipUrl p_SipUrl, boolean p_CondA7 := false, @@ -461,7 +500,7 @@ module IMS_Procedures_Registration { * @param p_MessageHeader * @param p_CondA7 (default value: false) * @param p_CondA3 (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_A_1_1_MessageHeader_CheckPublicUserIdentity(MessageHeader p_MessageHeader, boolean p_CondA7 := false, @@ -491,7 +530,7 @@ module IMS_Procedures_Registration { * @desc wait for REGISTER when it has not been received yet * @param p_IMS_DATA_REQ * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_ReceiveOrGetRegisterRequest(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ) runs on IMS_PTC return IMS_DATA_REQ { @@ -512,12 +551,14 @@ module IMS_Procedures_Registration { * @param p_RegisterRequest * @param p_CondA3 (default value: false) * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) + * @param p_CondA4 (default value: (pc_IMS_CS_PS_SRVCCAlert or pc_IMS_CS_PS_SRVCC)) * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterResponse_200_MessageHeaderTX(REGISTER_Request p_RegisterRequest, boolean p_CondA3 := false, - charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return template (value) MessageHeader + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration, + boolean p_CondA4 := (pc_IMS_CS_PS_SRVCCAlert or pc_IMS_CS_PS_SRVCC)) runs on IMS_PTC return template (value) MessageHeader { /* p_CondA3 .. condition A3 (Response for an emergency registration) */ /* @sic R5-130750 change 1, 4: specific IMPU for messages sent in DL; P-Associated-URI sic@ */ var MessageHeader v_MessageHeader_Register := p_RegisterRequest.msgHeader; @@ -550,10 +591,15 @@ module IMS_Procedures_Registration { v_MessageHeader_Response.callId := v_MessageHeader_Register.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Register.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Response.cSeq := v_MessageHeader_Register.cSeq; - v_MessageHeader_Response.contact := f_SIP_RegisterResponse_BuildContactHeader(v_MessageHeader_Register, pc_IMS_GRUUsInSIP, p_RegisterExpiration); + v_MessageHeader_Response.contact := f_SIP_RegisterResponse_BuildContactHeader(v_MessageHeader_Register, p_RegisterExpiration); v_MessageHeader_Response.pAssociatedURI := cs_PAssociatedURI(v_NameAddrParamList); v_MessageHeader_Response.serviceRoute := v_ServiceRoute; v_MessageHeader_Response.path := cs_PathDef(f_IMS_PTC_Pcscf_Get()); + + if (p_CondA4) { // @sic R5-145796 sic@ + v_MessageHeader_Response.featureCaps := cs_FeatureCaps({ cs_GenericParam_Common("+g.3gpp.atcf", cs_GenValueQuoted("tel:+1-237-888-999")), + cs_GenericParam_Common("+g.3gpp.cs2ps-srvcc", cs_GenValueQuoted(""))}); + } return v_MessageHeader_Response; } @@ -563,7 +609,7 @@ module IMS_Procedures_Registration { * @param p_RegisterRequest * @param p_Nonce (default value: omit) * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterResponse_401_MessageHeaderTX(REGISTER_Request p_RegisterRequest, template (omit) charstring p_Nonce := omit) runs on IMS_PTC return template (value) MessageHeader @@ -595,7 +641,7 @@ module IMS_Procedures_Registration { * @desc 403 Forbidden (see TS 34.229, A.3.2) * @param p_RegisterRequest * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT) + * @status APPROVED (IMS_IRAT) */ function f_IMS_RegisterResponse_403_MessageHeaderTX(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) MessageHeader { @@ -617,25 +663,28 @@ module IMS_Procedures_Registration { * @param p_SubscribeRequest * @param p_RecordRoute * @param p_ExpireTime (default value: "600000") - * @param p_ContactAddr (default value: px_IMS_Scscf) + * @param p_ContactHostname (default value: px_IMS_Scscf) + * @param p_ToTag (default value: omit) * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SubscribeResponse_200_MessageHeaderTX(SUBSCRIBE_Request p_SubscribeRequest, template (value) RecordRoute p_RecordRoute, charstring p_ExpireTime := "600000", - charstring p_ContactAddr := px_IMS_Scscf) runs on IMS_PTC return template (value) MessageHeader + charstring p_ContactHostname := px_IMS_Scscf, + template (omit) charstring p_ToTag := omit) runs on IMS_PTC return template (value) MessageHeader { /* NOTE: acc. to A.1.5 this message does not have a Session-ID */ + /* @sic R5-153986: parameter p_ToTag to allow different ToTags for different dialogs created by subscription to even packages sic@ */ var MessageHeader v_MessageHeader_Subscribe := p_SubscribeRequest.msgHeader; var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; v_MessageHeader_Response.via := v_MessageHeader_Subscribe.via; - v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_SubscribeRequest.msgHeader); /* @sic R5-130750 same as in SUBSCRIBE, R5s130235 additional changes sic@ - @sic R5-131897, R5-132063 - generic handling of to-tags sic@ */ + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_SubscribeRequest.msgHeader, p_ToTag); /* @sic R5-130750 same as in SUBSCRIBE, R5s130235 additional changes sic@ + @sic R5-131897, R5-132063 - generic handling of to-tags sic@ */ v_MessageHeader_Response.fromField := v_MessageHeader_Subscribe.fromField; v_MessageHeader_Response.callId := v_MessageHeader_Subscribe.callId; v_MessageHeader_Response.cSeq := v_MessageHeader_Subscribe.cSeq; - v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(p_ContactAddr)); // @sic R5s120727 change 3 sic@ + v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(p_ContactHostname)); // @sic R5s120727 change 3 sic@ v_MessageHeader_Response.expires := cs_Expires (p_ExpireTime); // @sic R5-130548 sic@ v_MessageHeader_Response.recordRoute := p_RecordRoute; @@ -670,14 +719,14 @@ module IMS_Procedures_Registration { * @desc used for initialisation of f_IMS_RegisterRequest_MessageHeaderRX_Initial/Subsequent with headers being common * @param p_CondA3 * @param p_CseqValue - * @param p_SessionIdSupported (default value: false) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_RegisterRequest_MessageHeaderRX_Base(boolean p_CondA3, template (present) integer p_CseqValue, - boolean p_SessionIdSupported := false) return template (present) MessageHeader - { + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) return template (present) MessageHeader + { /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ var template (present) MessageHeader v_MessageHeader_Register := cr_MessageHeader_Dummy; v_MessageHeader_Register.cSeq := cr_CseqDef(p_CseqValue, "REGISTER"); @@ -706,7 +755,7 @@ module IMS_Procedures_Registration { * @desc initial REGISTER (condition A1 or A3) acc. to 34.229-1 Annex A.1.1 * @param p_Protocol * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterRequest_MessageHeaderRX_Initial(InternetProtocol_Type p_Protocol) runs on IMS_PTC return template (present) MessageHeader { /* NOTE: several checks are done explicitly in the respective check functions applied on the receive messages (the same for sigcomp) */ @@ -731,7 +780,7 @@ module IMS_Procedures_Registration { v_MessageHeader_Register.route := omit; // @sic R5-134659 sic@ v_MessageHeader_Register.fromField := cr_FromWithTag(v_SipUrlPublicUserId); // checked in f_IMS_A_1_1_MessageHeader_CheckPublicUserIdentity v_MessageHeader_Register.toField := cr_ToDef(v_SipUrlPublicUserId); // checked in f_IMS_A_1_1_MessageHeader_CheckPublicUserIdentity - v_MessageHeader_Register.contact := cr_Contact(cr_SipUri_HostPort(?, *)); // checked in fl_IMS_Register_ContactAddress_CheckParams, f_IMS_A_1_1_MessageHeader_CommonChecks + v_MessageHeader_Register.contact := cr_Contact(cr_SipUri_HostPort(?, *)); // checked in fl_IMS_Register_ContactHeader_CheckParams, f_IMS_A_1_1_MessageHeader_CommonChecks v_MessageHeader_Register.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()) ifpresent; // optional for A1, A3; cellId is not checked @@ -745,13 +794,15 @@ module IMS_Procedures_Registration { /* * @desc subsequent REGISTER (condition A2) acc. to 34.229-1 Annex A.1.1 * @param p_NonceCount + * @param p_Protocol * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(integer p_NonceCount) runs on IMS_PTC return template (present) MessageHeader + function f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(integer p_NonceCount, + InternetProtocol_Type p_Protocol) runs on IMS_PTC return template (present) MessageHeader { /* p_NonceCount .. Acc. to A.1.1 "counter to indicate how many times UE has sent the same value of nonce within successive REGISTERs, initial value shall be 1" * => during initial registration "1" is used per default; for each re-authentication (=> new nonce) the nonce-counter is reset to "1" - */ + * @sic R5-142727: new parameter p_Protocol sic@ */ var template (present) MessageHeader v_MessageHeader_Register; var template (present) SipUrl v_SipUrlPublicUserId; var charstring v_Nonce := f_IMS_PTC_Security_GetNonce(); @@ -759,6 +810,11 @@ module IMS_Procedures_Registration { var IMS_ProtectedPorts_Type v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqIncr(register); var boolean v_IsGiba := false; + var template integer v_ViaPort := *; + + if (p_Protocol == udp) { // @sic R5-145727 sic@ + v_ViaPort := v_Protected.Port_us; + } v_SipUrlPublicUserId := f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(registrationId)); /* public user identity is checked against what the UE has sent in initial REGISTER (in case the UE does not have an ISIM this is the temporary user id) @@ -766,7 +822,7 @@ module IMS_Procedures_Registration { v_MessageHeader_Register := fl_IMS_RegisterRequest_MessageHeaderRX_Base(v_IsGiba, v_CseqValue); v_MessageHeader_Register.route := omit; // @sic R5-134659 sic@ - v_MessageHeader_Register.via := cr_ViaDef(-, cr_HostPort(?, v_Protected.Port_us)); // @sic R5s120727 change 7 sic@ + v_MessageHeader_Register.via := cr_ViaDef(-, cr_HostPort(?, v_ViaPort)); // @sic R5s120727 change 7; R5-145727 sic@ v_MessageHeader_Register.fromField := cr_FromWithTag(v_SipUrlPublicUserId); v_MessageHeader_Register.toField := cr_ToDef(v_SipUrlPublicUserId); v_MessageHeader_Register.contact := cr_Contact(cr_SipUri_HostPort(?, v_Protected.Port_us)); // checked in f_IMS_A_1_1_MessageHeader_CommonChecks; @sic R5s120727 change 7 sic@ @@ -781,7 +837,7 @@ module IMS_Procedures_Registration { /* * @desc REGISTER to de-register * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterRequest_MessageHeaderRX_Derregister() runs on IMS_PTC return template (present) MessageHeader { @@ -820,31 +876,34 @@ module IMS_Procedures_Registration { } //---------------------------------------------------------------------------- - /* * @desc SUBSCRIBE acc. to 34.229-1 Annex A.1.4, A.5.1 or A.6.1 * @param p_EventType (default value: "reg") * @param p_SipUrlTo (default value: omit) * @param p_ExpireTime (default value: "600000") - * @param p_SessionIdSupported (default value: false) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SubscribeRequest_MessageHeaderRX(EventType p_EventType := "reg", template SipUrl p_SipUrlTo := omit, template (present) charstring p_ExpireTime := "600000", - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) runs on IMS_PTC return template (present) MessageHeader { /* p_EventType: * "reg" - normal case acc. A.1.4 * "conference" - "SUBSCRIBE for conference event package" acc. annex A.5.1; NOTE in this case p_SipUrlTo shall be present and set acc. to "px_FinalConferenceUri" * "message-summary" - "SUBSCRIBE for Message Waiting Indication package" acc. annex A.6.1 */ /* @sic R5-130750 change 4: specific IMPU for messages sent in DL sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ var template (present) MessageHeader v_MessageHeader_Subscribe := cr_MessageHeader_Dummy; var IMS_ProtectedPorts_Type v_Protected; var template (present) PAccessNetworkInfo v_PAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); var template (present) SipUrl v_SipUrlFrom := f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(); var template (present) SipUrl v_SipUrlTo; + var template integer v_Port_ps := *; + var template integer v_Port_us_Via := *; + var template integer v_Port_us_Contact := ?; if (ispresent(p_SipUrlTo)) { v_SipUrlTo := p_SipUrlTo; // NOTE: compiler warning cannot be avoided here @@ -862,11 +921,6 @@ module IMS_Procedures_Registration { v_MessageHeader_Subscribe.event := cr_EventDef(p_EventType); if (f_IMS_PTC_SecurityScheme_IsGiba()) { - v_MessageHeader_Subscribe.route := cr_RouteSubs (f_IMS_PTC_Pcscf_Get(), *, px_IMS_Scscf); - v_MessageHeader_Subscribe.via := cr_ViaDef(-, cr_HostPort(?)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ */ - v_MessageHeader_Subscribe.contact := cr_Contact(cr_SipUri_HostPort(?, ?)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ - @sic R5s130925 change 1: UE may use any port as server port sic@ */ - v_MessageHeader_Subscribe.require := omit; v_MessageHeader_Subscribe.proxyRequire := omit; v_MessageHeader_Subscribe.securityVerify := omit; @@ -874,16 +928,20 @@ module IMS_Procedures_Registration { } else { v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); - v_MessageHeader_Subscribe.route := cr_RouteSubs (f_IMS_PTC_Pcscf_Get(), v_Protected.Port_ps, px_IMS_Scscf); - v_MessageHeader_Subscribe.via := cr_ViaDef(-, cr_HostPort(?, v_Protected.Port_us)); // host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ - v_MessageHeader_Subscribe.contact := cr_Contact(cr_SipUri_HostPort(?, v_Protected.Port_us)); // host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ - + v_Port_ps := v_Protected.Port_ps; + v_Port_us_Via := v_Protected.Port_us; + v_Port_us_Contact := v_Protected.Port_us; v_MessageHeader_Subscribe.require := cr_RequireSecAgree; v_MessageHeader_Subscribe.proxyRequire := cr_ProxyRequireDef; v_MessageHeader_Subscribe.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); v_MessageHeader_Subscribe.pAccessNetworkInfo := v_PAccessNetworkInfo } + v_MessageHeader_Subscribe.route := cr_Route(cr_RouteBodyList_InitialReq(v_Port_ps)); /* @sic R5s140934 change 1 sic@ */ + v_MessageHeader_Subscribe.via := cr_ViaDef(-, cr_HostPort(?, v_Port_us_Via)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ */ + v_MessageHeader_Subscribe.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us_Contact)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ + @sic R5s130925 change 1: UE may use any port as server port sic@ + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ select (p_EventType) { case ("reg") { // normal case v_MessageHeader_Subscribe.accept := cr_AcceptDef(c_xmlreginfoApplication) ifpresent; @@ -900,6 +958,13 @@ module IMS_Procedures_Registration { return v_MessageHeader_Subscribe; } + + + + + + + } // group //============================================================================ @@ -914,7 +979,7 @@ module IMS_Procedures_Registration { * @param p_CondA7 (default value: false) * @param p_CondA3 (default value: false) * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_REGISTER_InitialRequest(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, template (omit) charstring p_ExplicitExpiry := omit, @@ -967,7 +1032,7 @@ module IMS_Procedures_Registration { * @desc local initialisation of ports and spis at the IMS PTC * @param p_RegisterReq * @param p_AuthenticationParams - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_SecurityInitPortsAndSPIs(REGISTER_Request p_RegisterReq, Common_AuthenticationParams_Type p_AuthenticationParams) runs on IMS_PTC @@ -984,7 +1049,7 @@ module IMS_Procedures_Registration { * @param p_RegisterReq * @param p_Rand (default value: tsc_IMS_AuthRAND) * @param p_Unprotected (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_SecurityInit(REGISTER_Request p_RegisterReq, B128_Type p_Rand := tsc_IMS_AuthRAND, @@ -997,9 +1062,8 @@ module IMS_Procedures_Registration { var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_RegisterReq.msgHeader); if (p_Unprotected) { - f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl), // may be omit in which case 5060 is chosen by the IP PTC - v_NW_Address, - v_UE_Address); + f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl), // may be omit in which case 5060 is chosen by the IP PTC + cs_IMS_RegistrationInfo(v_NW_Address, v_UE_Address)); // @sic R5s150268 change 2 sic@ } else { f_IMS_InstallIPsecKeys(v_AuthenticationParams.IK, v_AuthenticationParams.CK); @@ -1010,12 +1074,12 @@ module IMS_Procedures_Registration { * NOTE: release of the security context is not done at the end of the deregistration since it is not sure that the deregistration really happens and * when realeasing the security directly after sending the deregistration it may lead to timing issues */ f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl), // may be omit in which case 5060 is chosen by the IP PTC - v_NW_Address, - v_UE_Address, - cs_IMS_SecurityInfo(f_IMS_PTC_Security_GetProtectedPorts(), - f_IMS_PTC_Security_GetSPIs(), - f_IMS_PTC_Security_GetIntegrityAlgorithm(), - f_IMS_PTC_Security_GetCipheringAlgorithm())); + cs_IMS_RegistrationInfo(v_NW_Address, // @sic R5s150268 change 2 sic@ + v_UE_Address, + cs_IMS_SecurityInfo(f_IMS_PTC_Security_GetProtectedPorts(), + f_IMS_PTC_Security_GetSPIs(), + f_IMS_PTC_Security_GetIntegrityAlgorithm(), + f_IMS_PTC_Security_GetCipheringAlgorithm()))); } } @@ -1027,7 +1091,7 @@ module IMS_Procedures_Registration { * @param p_NonceCount (default value: 1) * @param p_ExplicitExpiry (default value: omit) * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_REGISTER_SubsequentRequest(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, boolean p_CondA7 := false, @@ -1050,7 +1114,7 @@ module IMS_Procedures_Registration { v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; v_MessageHeader := v_RegisterReq.msgHeader; - v_Match := match(v_MessageHeader, f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(p_NonceCount)); + v_Match := match(v_MessageHeader, f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(p_NonceCount, v_Protocol)); if (not v_Match) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid REGISTER Request"); } @@ -1072,7 +1136,7 @@ module IMS_Procedures_Registration { * @param p_SigCompIsActive (default value: false) * @param p_IsEmergency (default value: false) * @return REGISTER_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_NonGIBA(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration, @@ -1102,7 +1166,7 @@ module IMS_Procedures_Registration { * @param p_IMS_DATA_REQ (default value: omit) * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_GIBA(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request @@ -1127,33 +1191,86 @@ module IMS_Procedures_Registration { * @desc common function for IMS registration * @param p_IMS_DATA_REQ (default value: omit) * @param p_SigCompIsActive (default value: false) + * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, - boolean p_SigCompIsActive := false) runs on IMS_PTC return REGISTER_Request + boolean p_SigCompIsActive := false, + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5-151769 additional parameter p_RegisterExpiration sic@ */ var REGISTER_Request v_RegisterRequest; if (f_IMS_PTC_SecurityScheme_IsGiba()) { if (p_SigCompIsActive) { FatalError(__FILE__, __LINE__, "sigcomp is not supported for GIBA"); } - v_RegisterRequest := f_IMS_Register_GIBA(p_IMS_DATA_REQ); + v_RegisterRequest := f_IMS_Register_GIBA(p_IMS_DATA_REQ, p_RegisterExpiration); } else { - v_RegisterRequest := f_IMS_Register_NonGIBA(p_IMS_DATA_REQ, -, p_SigCompIsActive); + v_RegisterRequest := f_IMS_Register_NonGIBA(p_IMS_DATA_REQ, p_RegisterExpiration, p_SigCompIsActive); } return v_RegisterRequest; } //============================================================================ + /* + * @desc Receive SUBSCRIBE acc. to 34.229-1 Annex A.1.4 + * @param p_IMS_DATA_REQ (by reference) + * @param p_EventType + * @param p_SipUrlRequestUri + * @param p_SipUrlTo (default value: omit) + * @param p_ExpireTime (default value: "600000") + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + altstep a_IMS_SUBSCRIBE_Request(out IMS_DATA_REQ p_IMS_DATA_REQ, + EventType p_EventType, + template (present) SipUrl p_SipUrlRequestUri, + template SipUrl p_SipUrlTo := omit, + template (present) charstring p_ExpireTime := "600000") runs on IMS_PTC + { /* NOTE: applicable only if the SUBSCRIBE creates a new dialog (i.e. is ot sent within existing dialog */ + var IMS_DATA_REQ v_IMS_DATA_REQ; + var MessageHeader v_MessageHeader; + var InternetProtocol_Type v_Protocol; + var charstring v_ToTag := f_IMS_GenerateTag("SUBSCRIBE-to-" & p_EventType & "-package"); /* @sic R5-153756: dialog for subscribe sic@ */ + var template (present) MessageHeader v_ExpectedMessageHeader := f_IMS_SubscribeRequest_MessageHeaderRX(p_EventType, p_SipUrlTo, p_ExpireTime); + var IMS_PTC_DialogIndex_Type v_DialogIndex; + + [] IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(p_SipUrlRequestUri, v_ExpectedMessageHeader))) -> value v_IMS_DATA_REQ + { + v_MessageHeader := v_IMS_DATA_REQ.Request.Subscribe.msgHeader; + v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; + + f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // This cannot be checked in the template + + f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // @sic R5s120727 change 9 sic@ + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // @sic R5s120727 change 9 sic@ + f_IMS_MessageHeader_Request_CheckRoute(v_MessageHeader); // @sic R5s140934 change 2 sic@ + + if (f_IMS_PTC_ImsInfo_SigCompStarted()) { + f_IMS_MessageHeader_CheckSigComp(v_MessageHeader); + } + + select (p_EventType) { + case ("reg") { v_DialogIndex := regEventDialog; } + case ("message-summary") { v_DialogIndex := msgSummayDialog; } + case ("conference") { v_DialogIndex := confEventDialog; } + case else { FatalError(__FILE__, __LINE__, "invalid event type"); } + } + f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_MessageHeader, v_DialogIndex); /* @sic R5-153756: dialog for subscribe sic@ */ + f_IMS_PTC_ImsInfo_DialogSetLocalTag(v_ToTag, v_DialogIndex); /* @sic R5-153756: dialog for subscribe sic@ */ + + p_IMS_DATA_REQ := v_IMS_DATA_REQ; + } + } + /* * @desc Receive SUBSCRIBE acc. to 34.229-1 Annex A.1.4 * @param p_EventType (default value: "reg") * @param p_SipUrlTo (default value: omit) * @param p_ExpireTime (default value: "600000") * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SUBSCRIBE_Request(EventType p_EventType := "reg", template SipUrl p_SipUrlTo := omit, @@ -1161,98 +1278,76 @@ module IMS_Procedures_Registration { { /* @sic R5-130750 change 4: specific IMPU for messages sent in DL sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; - var MessageHeader v_MessageHeader; - var InternetProtocol_Type v_Protocol; var template (present) SipUrl v_SipUrlRequestUri := f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(); - var template (present) MessageHeader v_ExpectedMessageHeader; - - v_ExpectedMessageHeader := f_IMS_SubscribeRequest_MessageHeaderRX(p_EventType, p_SipUrlTo, p_ExpireTime); - IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(v_SipUrlRequestUri, v_ExpectedMessageHeader))) -> value v_IMS_DATA_REQ; - v_MessageHeader := v_IMS_DATA_REQ.Request.Subscribe.msgHeader; - v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; - - f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // This cannot be checked in the template - f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // @sic R5s120727 change 9 sic@ - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader, true); // @sic R5s120727 change 9 sic@ + a_IMS_SUBSCRIBE_Request(v_IMS_DATA_REQ, p_EventType, v_SipUrlRequestUri, p_SipUrlTo, p_ExpireTime); /* @sic R5-150705: altstep a_IMS_SUBSCRIBE_Request sic@ */ - if (f_IMS_PTC_ImsInfo_SigCompStarted()) { - f_IMS_MessageHeader_CheckSigComp(v_MessageHeader); - } return v_IMS_DATA_REQ; } /* * @desc Send 200 OK for SUBSCRIBE acc. to 34.229-1 Annex A.1.5 or Annex 5.2 + * @param p_DialogIndex * @param p_IMS_Subscribe_Request * @param p_ExpireTime (default value: "600000") - * @param p_ContactAddr (default value: px_IMS_Scscf) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_ContactHostname (default value: px_IMS_Scscf) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_SUBSCRIBE_Response(IMS_DATA_REQ p_IMS_Subscribe_Request, + function f_IMS_SUBSCRIBE_Response(IMS_PTC_DialogIndex_Type p_DialogIndex, + IMS_DATA_REQ p_IMS_Subscribe_Request, charstring p_ExpireTime := "600000", - charstring p_ContactAddr := px_IMS_Scscf) runs on IMS_PTC + charstring p_ContactHostname := px_IMS_Scscf) runs on IMS_PTC { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5-153756, R5-153986: new parameter p_DialogIndex to use to-tag as stored for the respective "subscribe-dialog" sic@ */ var IMS_RoutingInfo_Type v_RoutingInfo_UL; var SUBSCRIBE_Request v_SubscribeRequest; var template (value) RouteBody_List v_RouteBodyList; var charstring v_RouteHost := f_IMS_PTC_Pcscf_Get(); var integer v_Port_ps := f_IMS_PTC_GetPort_ps(); var template (omit) GenericParam v_SigCompParam := f_IMS_PTC_ImsInfo_GetSigCompParam(); - + var template (omit) charstring v_ToTag := f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex); /* @sic R5-153756, R5-153986 sic@ */ + v_RoutingInfo_UL := p_IMS_Subscribe_Request.RoutingInfo; v_SubscribeRequest := p_IMS_Subscribe_Request.Request.Subscribe; v_RouteBodyList := { f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(v_RouteHost, v_Port_ps), v_SigCompParam) }; - IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_RoutingInfo_UL), cs_Response(c_statusLine200, f_IMS_SubscribeResponse_200_MessageHeaderTX(v_SubscribeRequest, - cs_RecordRoute(v_RouteBodyList), - p_ExpireTime, - p_ContactAddr)))); + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_RoutingInfo_UL), + cs_Response(c_statusLine200, f_IMS_SubscribeResponse_200_MessageHeaderTX(v_SubscribeRequest, + cs_RecordRoute(v_RouteBodyList), + p_ExpireTime, + p_ContactHostname, + v_ToTag)))); } /* * @desc receive SUBSCRIBE and send response * @return SUBSCRIBE_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_Subscribe() runs on IMS_PTC return SUBSCRIBE_Request { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; v_IMS_DATA_REQ := f_IMS_SUBSCRIBE_Request(); - f_IMS_SUBSCRIBE_Response(v_IMS_DATA_REQ); + f_IMS_SUBSCRIBE_Response(regEventDialog, v_IMS_DATA_REQ); return v_IMS_DATA_REQ.Request.Subscribe; } //---------------------------------------------------------------------------- /* - * @desc Common function for NOTIFY message - * @param p_SubscribeRequest + * @desc Generate Via header for NOTIFY request * @param p_ViaAddressList - * @param p_ContactSipUrl - * @param p_EventType - * @param p_CseqValue - * @param p_SubscriptionState - * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @return template (value) Via + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_NotifyRequest_MessageHeader_Common(SUBSCRIBE_Request p_SubscribeRequest, - CharStringList_Type p_ViaAddressList, - template (value) SipUrl p_ContactSipUrl, - EventType p_EventType, - integer p_CseqValue, - template (value) SubscriptionState p_SubscriptionState) - runs on IMS_PTC return template (value) MessageHeader - { /* NOTE: acc. to A.1.6 this message does not have a Session-ID */ - /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ - var template (value) MessageHeader v_MessageHeader_Notify := cs_MessageHeader_Dummy; + function f_IMS_NotifyRequest_ViaTX(CharStringList_Type p_ViaAddressList) runs on IMS_PTC return template (value) Via + { var charstring v_ProtocolString := f_IMS_ConvertTransportProtocolToString(f_IMS_PTC_ImsInfo_GetTransportProtocol()); var template (omit) integer v_Port_ps := f_IMS_PTC_GetPort_ps(); // @sic R5s120907 change 5 - Port_ps instead of Port_us sic@ var template (omit) GenericParam v_SigCompParam := f_IMS_PTC_ImsInfo_GetSigCompParam(); var template (value) ViaBody_List v_ViaBodyList; var charstring v_NextBranch; - var charstring v_ContentType; var integer i; for (i:=0; i < lengthof(p_ViaAddressList); i:=i+1) { @@ -1263,21 +1358,48 @@ module IMS_Procedures_Registration { v_SigCompParam := omit; } } - select (p_EventType) { - case ("reg") { v_ContentType := c_xmlreginfoApplication; } - case ("message-summary") { v_ContentType := "application/simple-message-summary"; } - case ("conference") { v_ContentType := "application/conference-info+xml"; } - case else { FatalError(__FILE__, __LINE__, "unknown event type"); } - } - - v_MessageHeader_Notify.via := cs_Via(v_ViaBodyList); - v_MessageHeader_Notify.fromField := f_IMS_Notify_FromHeaderTX(p_SubscribeRequest.msgHeader); - v_MessageHeader_Notify.toField := f_IMS_Notify_ToHeaderTX(p_SubscribeRequest.msgHeader); - v_MessageHeader_Notify.callId := p_SubscribeRequest.msgHeader.callId; - // v_MessageHeader_Notify.sessionId := p_SubscribeRequest.msgHeader.sessionId; to be added by appropriate CR - v_MessageHeader_Notify.cSeq := cs_CseqDef(p_CseqValue, "NOTIFY"); + return cs_Via(v_ViaBodyList); + } + + /* + * @desc Common function for NOTIFY message + * @param p_DialogIndex + * @param p_Via + * @param p_ContactSipUrl + * @param p_EventType + * @param p_SubscriptionState + * @param p_ContentType + * @return template (value) MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_NotifyRequest_MessageHeader_Common(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex, + template (value) Via p_Via, + template (value) SipUrl p_ContactSipUrl, + EventType p_EventType, + template (value) SubscriptionState p_SubscriptionState, + template (omit) ContentType p_ContentType) + runs on IMS_PTC return template (value) MessageHeader + { /* NOTE: acc. to A.1.6 this message does not have a Session-ID */ + /* NOTE: function is independent of whether the subscription has been done creating a new dialog or within an existing dialog + * => in general p_DialogIndex and p_EventType are not correlated to each other */ + /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ + /* @sic R5-153756, R5-153986: new parameter p_DialogIndex to use respective dialog; p_SubscribeRequest and p_CseqValue removed sic@ */ + /* @sic R5-153756, R5-153986: dialog information as stored at the IMS PTC is used rather than SUBSCRIBE sic@ */ + /* @sic R5-153756, R5-153986: p_Via instead of p_ViaAddressList sic@ */ + /* @sic R5-153756: p_ContentType sic@ */ + var template (value) MessageHeader v_MessageHeader_Notify := cs_MessageHeader_Dummy; + var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal, p_DialogIndex); + + v_MessageHeader_Notify.via := p_Via; /* @sic R5-153986: p_Via sic@ */ + v_MessageHeader_Notify.toField := f_IMS_RequestInDialog_ToHeaderTX(p_DialogIndex); + v_MessageHeader_Notify.fromField := f_IMS_RequestInDialog_FromHeaderTX(p_DialogIndex); + v_MessageHeader_Notify.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(p_DialogIndex); + if (p_EventType != "reg") { /* PROSE ISSUE: session id is not specified in A.1.6 => to be added by appropriate CR */ + v_MessageHeader_Notify.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(p_DialogIndex); + } + v_MessageHeader_Notify.cSeq := cs_CseqDef(v_CseqValue, "NOTIFY"); v_MessageHeader_Notify.contact := cs_Contact(p_ContactSipUrl); - v_MessageHeader_Notify.contentType := cs_ContentType(v_ContentType); + v_MessageHeader_Notify.contentType := p_ContentType; v_MessageHeader_Notify.event := cs_EventDef(p_EventType); v_MessageHeader_Notify.maxForwards := cs_MaxForwardsDef(69); v_MessageHeader_Notify.subscriptionState := p_SubscriptionState; @@ -1287,48 +1409,42 @@ module IMS_Procedures_Registration { /* * @desc Send NOTIFY acc. to 34.229-1 Annex A.1.6 - * @param p_SubscribeRequest - * @param p_CseqValue * @param p_SubscriptionState * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_NotifyRequest_MessageHeader_A16(SUBSCRIBE_Request p_SubscribeRequest, - integer p_CseqValue, - template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader + function f_IMS_NotifyRequest_MessageHeader_A16(template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader { /* NOTE: acc. to A.1.6 this message does not have a Session-ID */ /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ /* @sic R5s130768 additional MCC160 change: use of new function f_IMS_NotifyRequest_MessageHeader_Common sic@ */ + /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); /* @sic R5s130133 change 6: f_IMS_PTC_NW_Address_GetHostFormat replaced by f_IMS_PTC_NW_Address_GetAddrStr sic@ */ - var charstring v_Scscf := px_IMS_Scscf; - var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, v_Scscf}; - var template (value) SipUrl v_ContactSipUrl := cs_SipUri_HostPort(v_Scscf); // @sic R5s120727 change 10 sic@ - var EventType v_EventType := "reg"; + var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, px_IMS_Scscf}; + var template (value) Via v_Via := f_IMS_NotifyRequest_ViaTX(v_ViaAddressList); /* @sic R5-153986: new function f_IMS_NotifyRequest_ViaTX sic@ */ + var template (value) SipUrl v_ContactSipUrl := cs_SipUri_HostPort(px_IMS_Scscf); /* @sic R5s120727 change 10 sic@ */ + var template (value) ContentType v_ContentType := cs_ContentType(c_xmlreginfoApplication); /* @sic R5-153756 sic@ */ - return f_IMS_NotifyRequest_MessageHeader_Common(p_SubscribeRequest, v_ViaAddressList, v_ContactSipUrl, v_EventType, p_CseqValue, p_SubscriptionState); + return f_IMS_NotifyRequest_MessageHeader_Common(regEventDialog, v_Via, v_ContactSipUrl, "reg", p_SubscriptionState, v_ContentType); } //---------------------------------------------------------------------------- /* * @desc Send NOTIFY acc. to 34.229-1 Annex A.1.6 * @param p_ContactUrl - * @param p_SubscribeRequest * @param p_XmlMessage - * @param p_CseqValue (default value: 1) * @param p_SubscriptionState (default value: cs_SubscriptionState_Active) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_Notify(SipUrl p_ContactUrl, - SUBSCRIBE_Request p_SubscribeRequest, template (value) Reginfo_Type p_XmlMessage, - integer p_CseqValue := 1, template (value) SubscriptionState p_SubscriptionState := cs_SubscriptionState_Active) runs on IMS_PTC { /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ + /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ var template (value) MessageHeader v_MessageHeader_Notify; var template (present) MessageHeader v_MessageHeader_Response; var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); - v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A16(p_SubscribeRequest, p_CseqValue, p_SubscriptionState); + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A16(p_SubscriptionState); /* @sic R5-153756, R5-153986 sic@ */ IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_Protocol), cs_NOTIFY_Request(p_ContactUrl, v_MessageHeader_Notify, cs_MessageBody_RegInfo(p_XmlMessage)))); v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Notify); @@ -1339,7 +1455,7 @@ module IMS_Procedures_Registration { /* * @desc return RegInfo.Registration * @param p_RegisterRequest - * @param p_Uri + * @param p_Aor * @param p_RegistrationId * @param p_ContactId * @param p_ContactState (default value: active) @@ -1348,10 +1464,10 @@ module IMS_Procedures_Registration { * @param p_ApplyGRUU (default value: pc_IMS_GRUUsInSIP) * @param p_IsTelUri (default value: false) * @return template (value) RegInfo_Registration_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_XML_RegistrationInfo(REGISTER_Request p_RegisterRequest, - charstring p_Uri, + charstring p_Aor, charstring p_RegistrationId, charstring p_ContactId, RegInfo_Contact_State_Type p_ContactState := active, @@ -1368,6 +1484,7 @@ module IMS_Procedures_Registration { var template (omit) TempGruu_Type v_TempGruu := omit; var template (value) RegInfo_Contact_UnknownParams_Type v_UnknownParams := {}; var RegInfo_Registration_State_Type v_RegistrationState; + var charstring v_InstanceId; if (p_ContactState == active) { v_RegistrationState := active; @@ -1375,29 +1492,30 @@ module IMS_Procedures_Registration { v_RegistrationState := terminated; } - if (p_ApplyGRUU) { - v_PubGruu := cs_PubGruu(p_Uri); /* !!!! "public GRUU for the UE" acc. to 34.229-1 A.1.6; !!!! - !!!! NOTE: it is not specified what the public GRUU really is and which URI to be used; !!!! - !!!! assumption: it is the same URI as for this registration !!!! */ - v_TempGruu := cs_TempGruu(f_IMS_PTC_ImsInfo_GetHomeDomainName(), p_RegisterRequest.msgHeader.cSeq.seqNumber); /* !!!! acc. to 34.229-1 A.1.6 "temporary GRUU for the UE" !!!! - !!!! -> open issue: how to build up the temp GRUU; where to take the domain name from !!!! */ - v_UnknownParams := { cs_XML_UEInstance }; + if (p_ApplyGRUU) { /* @sic R5-153760: support of GRUU sic@ */ + v_PubGruu := cs_XML_PubGruu(cs_IMS_PubGRUU(p_Aor)); /* !!!! PROSE ISSUE: acc. to RFC 5628 each contact (i.e. aor) has its own pub-gruu !!!! + !!!! but 34.229-1 A.1.6 says "public GRUU for the UE" for all entries !!!! */ + v_TempGruu := cs_XML_TempGruu(fl_IMS_TempGRUU(p_Aor, f_IMS_PTC_ImsInfo_GetHomeDomainName()), + p_RegisterRequest.msgHeader.cSeq.seqNumber); /* !!!! PROSE ISSUE: acc. to RFC 5628 each contact (i.e. aor) has its own temp-gruu !!!! + !!!! but 34.229-1 A.1.6 says "temporary GRUU for the UE" !!!! */ + v_InstanceId := f_SIP_InstanceId(); + v_UnknownParams := { cs_XML_UEInstance(v_InstanceId) }; if (not p_IsTelUri) { v_CallId := p_RegisterRequest.msgHeader.callId.callid; // Call-Id of most recent REGISTER v_Cseq := p_RegisterRequest.msgHeader.cSeq.seqNumber; // CSeq value of most recent REGISTER } } - return cs_RegistrationInfo(cs_RegistrationContact(v_ContactUri, p_ContactId, p_ContactState, p_ContactEvent, v_CallId, v_Cseq, p_Expires, v_UnknownParams, v_PubGruu, v_TempGruu), - p_Uri, - p_RegistrationId, - v_RegistrationState); + return cs_XML_RegistrationInfo(cs_XML_RegistrationContact(v_ContactUri, p_ContactId, p_ContactState, p_ContactEvent, v_CallId, v_Cseq, p_Expires, v_UnknownParams, v_PubGruu, v_TempGruu), + p_Aor, + p_RegistrationId, + v_RegistrationState); } template (value) RegInfo_RegistrationList_Type cs_RegistrationList (template (value) RegInfo_Registration_Type p_Reg1, template (value) RegInfo_Registration_Type p_Reg2, template (value) RegInfo_Registration_Type p_Reg3, template (value) RegInfo_Registration_Type p_Reg4) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { p_Reg1, p_Reg2, p_Reg3, p_Reg4 }; template (value) RegInfo_RegistrationList_Type cs_RegistrationListOf3 (template (value) RegInfo_Registration_Type p_Reg1, @@ -1409,7 +1527,7 @@ module IMS_Procedures_Registration { * @desc return default Reginfo for NOTIFY message * @param p_RegisterRequest * @return template (value) Reginfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_XmlMessageForNotify_Def(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) Reginfo_Type { /* @sic R5-130750 sic@ */ @@ -1428,7 +1546,7 @@ module IMS_Procedures_Registration { * This is the second half of the generic Registration procedure (Steps 8 to 11) * @param p_RegisterRequest * @return SUBSCRIBE_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_SubscribeNotify(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return SUBSCRIBE_Request { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ @@ -1439,7 +1557,7 @@ module IMS_Procedures_Registration { v_SubscribeReq := f_IMS_Register_Subscribe(); // Steps 10 and 11 - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_IMS_XmlMessageForNotify_Def(p_RegisterRequest)); + f_IMS_Register_Notify(v_ContactUrl, f_IMS_XmlMessageForNotify_Def(p_RegisterRequest)); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ return v_SubscribeReq; } @@ -1448,7 +1566,7 @@ module IMS_Procedures_Registration { /* * @desc procedure to de-register UE acc. to 34.229-1 C.30 * @param p_IMS_DATA_REQ (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Deregistration(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit) runs on IMS_PTC { /* @sic R5-140902: no delay needed anymore to wait for TCP close sic@ */ @@ -1479,7 +1597,7 @@ module IMS_Procedures_Registration { //============================================================================ // re-registration: used e.g. for test cases 8.2 and 11.2 - type record SecurityClientParams_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record SecurityClientParams_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ PortNumber_Type Port_us, PortNumber_Type Port_uc, IPsec_SPI_Type SPI_us, @@ -1578,17 +1696,19 @@ module IMS_Procedures_Registration { * @desc Generic procedure to register IMS * @param p_IMS_DATA_REQ (default value: omit) * @param p_SigCompIsActive (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Registration(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, - boolean p_SigCompIsActive := false) runs on IMS_PTC + boolean p_SigCompIsActive := false, + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC { /* NOTE: * - In case the the function is called in a default handler, the Register message has been already received * - When used in the IMS CC tests, the PTC needs to wait for the reception of the Register message */ /* @sic R5s130756 additional changes: p_IsGIBA removed as security scheme is managed at the IMS PTC (-> f_IMS_PTC_SecurityScheme_IsGiba()) sic@ */ var REGISTER_Request v_RegisterRequest; - v_RegisterRequest := f_IMS_Register(p_IMS_DATA_REQ, p_SigCompIsActive); + v_RegisterRequest := f_IMS_Register(p_IMS_DATA_REQ, p_SigCompIsActive, p_RegisterExpiration); f_IMS_Register_SubscribeNotify(v_RegisterRequest); } @@ -1597,7 +1717,7 @@ module IMS_Procedures_Registration { * @param p_IMS_DATA_REQ (default value: omit) * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request - * @status APPROVED (IMS, LTE) + * @status APPROVED (IMS_IRAT, IMS, LTE) */ function f_IMS_EmergencyRegistration_C20(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request @@ -1631,31 +1751,175 @@ module IMS_Procedures_Registration { return v_IMS_DATA_REQ.Request.Register; } + //---------------------------------------------------------------------------- + /* + * @desc Unsubscribe from event package for given dialog + * @param p_DialogIndex + * @return template (present) MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SubscribeRequest_MessageHeaderRX_C30(IMS_PTC_DialogIndex_Type p_DialogIndex) runs on IMS_PTC return template (present) MessageHeader + { /* !!!! PROSE ISSUE: + !!!! R5-153756 has specified for SUBSCRIBE (step 0A) + !!!! "Use the default message 'SUBSCRIBE for reg-event package' in annex A.1.4 or + !!!! 'SUBSCRIBE for conference event package' in annex A.5.1 or + !!!! 'SUBSCRIBE for message-summary event package' in annex A.6.1 with the following exceptions ..." + !!!! => at least for reg-event package and message-summary event package this does not work as there will be a To-tag. + !!!! Furthermore it should be clearly specified up to which degree the SUBSCRIBE shall be checked + !!!! => for now we keep it simple but check for the To-tag to be absent to force a fail */ + var template (present) MessageHeader v_MessageHeader_Subscribe := cr_MessageHeader_Dummy; + var template (present) integer v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(dialogRemote, p_DialogIndex); + var EventType v_EventType; + + select (p_DialogIndex) { + case (confEventDialog) { v_EventType := "conference"; } + case (regEventDialog) { v_EventType := "reg"; } + case (msgSummayDialog) { v_EventType := "message-summary"; } + case else { FatalError(__FILE__, __LINE__, "invalid dialog"); } + } + + v_MessageHeader_Subscribe.cSeq := cr_CseqDef(v_CSeqValue, "SUBSCRIBE"); + v_MessageHeader_Subscribe.fromField := f_IMS_RequestInDialog_FromHeaderRX(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.toField := f_IMS_RequestInDialog_ToHeaderRX(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.expires := cr_Expires("0"); + v_MessageHeader_Subscribe.event := cr_EventDef(v_EventType); + + return v_MessageHeader_Subscribe; + } + + /* + * @desc Notfiy the UE of being unsubscribed + * @param p_DialogIndex + * @param p_SubscribeRequest + * @return template (value) MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_NotifyRequest_MessageHeader_C30(IMS_PTC_DialogIndex_Type p_DialogIndex, + SUBSCRIBE_Request p_SubscribeRequest) runs on IMS_PTC return template (value) MessageHeader + { + var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); + var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, px_IMS_Scscf}; + var template (value) SubscriptionState v_SubscriptionState := cs_SubscriptionState_Terminated; + var template (omit) ContentType v_ContentType := omit; + var template (value) SipUrl v_ContactSipUrl; + var template (value) Via v_Via; + var EventType v_EventType; + + select (p_DialogIndex) { + case (regEventDialog) { // A3 + v_EventType := "reg"; + v_ContactSipUrl := cs_SipUri_HostPort(px_IMS_Scscf); + } + case (confEventDialog) { // A4 + v_EventType := "conference"; + v_ContactSipUrl := p_SubscribeRequest.requestLine.requestUri; /* the UE shall use the FinalConferenceUri in the request line of the SUBSCRIBE message */ + } + case (msgSummayDialog) { // A5 + v_EventType := "message-summary"; + // v_ViaAddressList[lengthof(v_ViaAddressList)] := f_IMS_PTC_ImsInfo_GetHomeDomainName(); !!!! PROSE ISSUE: acc. to A.6.2 the via header for message-summary has 3 entries !!!! + v_ContactSipUrl := cs_SipUri_HostPort(px_IMS_Scscf); + } + case else { + FatalError(__FILE__, __LINE__, "invalid dialog"); + } + } + v_Via := f_IMS_NotifyRequest_ViaTX(v_ViaAddressList); + + return f_IMS_NotifyRequest_MessageHeader_Common(p_DialogIndex, v_Via, v_ContactSipUrl, v_EventType, v_SubscriptionState, v_ContentType); + } + + /* + * @desc to let the UE unsubscribe from event package before de-registration + * @param p_DialogIndex + * @param p_Protocol + * @param p_MessageHeader_Notify (by reference) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + altstep a_IMS_Deregister_Unsubcribe(IMS_PTC_DialogIndex_Type p_DialogIndex, + InternetProtocol_Type p_Protocol, + out template (value) MessageHeader p_MessageHeader_Notify) runs on IMS_PTC + { + var template (present) SipUrl v_SubscribeRequestUri := ?; /* @sic R5s150647 sic@ */ + var template (present) MessageHeader v_MessageHeader_Subscribe := f_IMS_SubscribeRequest_MessageHeaderRX_C30(p_DialogIndex); + var template (value) MessageHeader v_MessageHeader_Notify; + var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ; + var SUBSCRIBE_Request v_SubscribeRequest; + var SipUrl v_ContactUrl; + + [] IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(v_SubscribeRequestUri, v_MessageHeader_Subscribe))) /* @sic R5s150647 sic@ */ + -> value v_IMS_SUBSCRIBE_REQ + { + v_SubscribeRequest := v_IMS_SUBSCRIBE_REQ.Request.Subscribe; + f_IMS_MessageHeader_CheckTo(v_SubscribeRequest.msgHeader, noToTag); /* !!!! PROSE ISSUE: + !!!! acc. to R5-153756 the SUBSCRIBE shall be as e.g. in A.1.4 + !!!! => it shall not have a To-tag what seems to be wrong */ + f_IMS_SUBSCRIBE_Response(p_DialogIndex, v_IMS_SUBSCRIBE_REQ, "0"); + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_C30(p_DialogIndex, v_SubscribeRequest); + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SubscribeRequest.msgHeader); + IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(p_Protocol), cs_NOTIFY_Request(v_ContactUrl, v_MessageHeader_Notify))); + p_MessageHeader_Notify := v_MessageHeader_Notify; + } + } + //---------------------------------------------------------------------------- /* * @desc handle optional de-registration * @param p_Port * @param p_AllowRetransmission (default value: false) * @param p_WaitForDeRegistration (default value: true) + * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(IMS_IPCAN_CO_ORD_PORT p_Port, boolean p_AllowRetransmission := false, - boolean p_WaitForDeRegistration := true) runs on IMS_PTC + boolean p_WaitForDeRegistration := true) runs on IMS_PTC return boolean { /* @sic R5s140710 - MCC160 Implementation: parameter p_AllowRetransmission sic@ */ - var IMS_DATA_REQ v_IMS_DATA_REQ; + var IMS_DATA_REQ v_IMS_REGISTER_REQ; var template (present) SipUrl v_SipUrl := cr_SipUri_HostPort(f_IMS_PTC_ImsInfo_GetHomeDomainName()); + var InternetProtocol_Type v_ProtocolForRequestInDL := f_IMS_PTC_ImsInfo_GetTransportProtocol(); var boolean v_WaitForDeRegistration := p_WaitForDeRegistration; + var boolean v_WaitForUnsubscribe_RegEvent := f_IMS_PTC_ImsInfo_DialogIsStarted(regEventDialog); /* @sic R5-153756 sic@ */ + var boolean v_WaitForUnsubscribe_MsgSummary := f_IMS_PTC_ImsInfo_DialogIsStarted(msgSummayDialog); /* @sic R5-153756 sic@ */ + var boolean v_WaitForUnsubscribe_ConfEvent := f_IMS_PTC_ImsInfo_DialogIsStarted(confEventDialog); /* @sic R5-153756 sic@ */ + var template (value) MessageHeader v_MessageHeader_Notify_ByRef; + var default v_RetransmissionHandler := null; + var default v_NotifyResponseHandler_RegEvent := null; /* @sic R5-153756 sic@ */ + var default v_NotifyResponseHandler_ConfEvent := null; /* @sic R5-153756 sic@ */ + var default v_NotifyResponseHandler_MsgSummary := null; /* @sic R5-153756 sic@ */ alt { // @sic R5-141113: de-registration is not mandatory sic@ - [v_WaitForDeRegistration] IMS_Server.receive(car_IMS_Register_Request(cr_REGISTER_Request(v_SipUrl))) -> value v_IMS_DATA_REQ + [v_WaitForDeRegistration and v_WaitForUnsubscribe_RegEvent] a_IMS_Deregister_Unsubcribe(regEventDialog, v_ProtocolForRequestInDL, v_MessageHeader_Notify_ByRef) /* @sic R5-153756 sic@ */ + { + v_NotifyResponseHandler_RegEvent := activate(a_IMS_ReceiveResponse200OK(v_MessageHeader_Notify_ByRef, v_ProtocolForRequestInDL)); + v_WaitForUnsubscribe_RegEvent := false; + repeat; + } + [v_WaitForDeRegistration and v_WaitForUnsubscribe_ConfEvent] a_IMS_Deregister_Unsubcribe(confEventDialog, v_ProtocolForRequestInDL, v_MessageHeader_Notify_ByRef) /* @sic R5-153756 sic@ */ + { + v_NotifyResponseHandler_ConfEvent := activate(a_IMS_ReceiveResponse200OK(v_MessageHeader_Notify_ByRef, v_ProtocolForRequestInDL)); + v_WaitForUnsubscribe_ConfEvent := false; + repeat; + } + [v_WaitForDeRegistration and v_WaitForUnsubscribe_MsgSummary] a_IMS_Deregister_Unsubcribe(msgSummayDialog, v_ProtocolForRequestInDL, v_MessageHeader_Notify_ByRef) /* @sic R5-153756 sic@ */ + { + v_NotifyResponseHandler_MsgSummary := activate(a_IMS_ReceiveResponse200OK(v_MessageHeader_Notify_ByRef, v_ProtocolForRequestInDL)); + v_WaitForUnsubscribe_MsgSummary := false; + repeat; + } + [v_WaitForDeRegistration] IMS_Server.receive(car_IMS_Register_Request(cr_REGISTER_Request(v_SipUrl))) + -> value v_IMS_REGISTER_REQ { if (p_AllowRetransmission) { - v_RetransmissionHandler := activate(a_IMS_RetransmissionHandler(v_IMS_DATA_REQ)); /* when re-transmissions are allowed they may colide with f_Delay in f_IMS_TCP_CloseHandling - or with the confirmation in f_IMS_CloseTCP (if any); */ + v_RetransmissionHandler := activate(a_IMS_RetransmissionHandler(v_IMS_REGISTER_REQ)); /* when re-transmissions are allowed they may colide with f_Delay in f_IMS_TCP_CloseHandling + or with the confirmation in f_IMS_CloseTCP (if any); */ } - f_IMS_PTC_Deregistration(v_IMS_DATA_REQ); + deactivate(v_NotifyResponseHandler_RegEvent); + deactivate(v_NotifyResponseHandler_MsgSummary); + deactivate(v_NotifyResponseHandler_ConfEvent); + f_IMS_PTC_Deregistration(v_IMS_REGISTER_REQ); v_WaitForDeRegistration := false; repeat; /* @sic R5s140175 sic@ */ } @@ -1664,27 +1928,30 @@ module IMS_Procedures_Registration { } } deactivate(v_RetransmissionHandler); + return not v_WaitForDeRegistration; // @sic R5-154047 sic@ } /* * @desc handle optional de-registration * @param p_WaitForDeRegistration (default value: true) + * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function f_IMS_IpcanReleaseWithOptionalDeregistration(boolean p_WaitForDeRegistration := true) runs on IMS_PTC + function f_IMS_IpcanReleaseWithOptionalDeregistration(boolean p_WaitForDeRegistration := true) runs on IMS_PTC return boolean { - f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(IPCAN, -, p_WaitForDeRegistration); + return f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(IPCAN, -, p_WaitForDeRegistration); // @sic R5-154047 sic@ } /* * @desc handle optional de-registration on "other RAT" * @param p_WaitForDeRegistration (default value: true) - * @status APPROVED (LTE_A, LTE_IRAT) + * @return boolean + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ - function f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(boolean p_WaitForDeRegistration := true) runs on IMS_PTC + function f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(boolean p_WaitForDeRegistration := true) runs on IMS_PTC return boolean { var boolean v_AllowRetransmission := true; - f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(OtherIPCAN, v_AllowRetransmission, p_WaitForDeRegistration); + return f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(OtherIPCAN, v_AllowRetransmission, p_WaitForDeRegistration); // @sic R5-154047 sic@ } diff --git a/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Video.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Video.ttcn new file mode 100644 index 0000000..52fa637 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_Procedures_Video.ttcn @@ -0,0 +1,248 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-08 19:13:26 +0200 (Tue, 08 Sep 2015) $ +// $Rev: 14241 $ +/******************************************************************************/ + +module IMS_Procedures_Video { + import from LibSip_Common all; + import from LibSip_SDPTypes all; + import from LibSip_SIPTypesAndValues all; + import from IMS_Component all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_SDP_MessagesVideo all; + import from IMS_MessageBody_Templates all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_SIP_Templates all; + import from IMS_CommonFunctions all; + import from IMS_Procedures_CallControl all; + import from IMS_CommonParameters all; + + //============================================================================ + /* + * @desc Check whether media description contains valid attributes for tcap and pcfg + * @param p_SDP_Media_Desc + * @status APPROVED (IMS) + */ + function f_IMS_SDP_CheckMediaDescr_TcapPcfg(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC + { + var template (omit) SDP_attribute v_Attribute; + if (fl_IMS_Video_TcapPcfgRequired(p_SDP_Media_Desc)) { + v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_Media_Desc.attributes, cr_SDP_Attribute_tcap(1, c_rtpAvpf)); + if (not isvalue (v_Attribute)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "missing tcap attribute"); + } + v_Attribute := f_SDP_AttributeList_GetAttribute (p_SDP_Media_Desc.attributes, cr_SDP_Attribute_pcfg(1, "t=1")); + if (not isvalue (v_Attribute)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "missing pcfg attribute"); + } + } + } + //============================================================================ + // Video - MO Call setup + //---------------------------------------------------------------------------- + /* + * @desc Step 2 of C.25 or test case 17.1 + * @param p_VideoCallType + * @param p_OtherCalleeUri (default value: omit) + * @return IMS_InviteRequestWithSdp_Type + * @status APPROVED (IMS) + */ + function f_IMS_MOCallSetup_Video_Step2(VideoCallTypeMO_Type p_VideoCallType, + template SipUrl p_OtherCalleeUri := omit) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + var template (present) SDP_Message v_SDP_Message_Step2; + var INVITE_A_2_1_Context_Type v_Context; + var IMS_DATA_REQ v_IMS_INVITE_REQ; + var SDP_Message v_SDP_Message; + var boolean v_A11 := pc_IMS_Video_FeatureTag; + var boolean v_A12 := false; // as we have video but not voice + + select (p_VideoCallType) { + case (C25) { + v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC25_Step2(); + v_Context := A_2_1_A4; + } + case (AddVideo) { + v_SDP_Message_Step2 := f_IMS_BuildSDP_AddVideoMO_Step2(); + v_Context := A_2_1_A5; + } + } + + // Step 2. Receive INVITE Request + v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(v_Context, tsc_OptionTagList_precondition, p_OtherCalleeUri, -, -, -, v_A11, v_A12); /* @sic R5s150180: p_A10 removed sic@ */ + v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_IMS_INVITE_REQ.Request.Invite.messageBody, v_SDP_Message_Step2); + + // check media description: + f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); + f_IMS_SDP_CheckMediaDescr_H264_90000(v_SDP_Message.media_list[1]); + f_IMS_SDP_CheckMediaDescr_TcapPcfg(v_SDP_Message.media_list[1]); + + return f_IMS_InviteRequestWithSdpMO(v_IMS_INVITE_REQ, v_SDP_Message); + } + + //---------------------------------------------------------------------------- + /* + * @desc Steps 3..4 of C.25 or test case 17.1 + * @param p_VideoCallType + * @param p_InviteRequestWithSdp + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @param p_AditionalContactParams (default value: omit) + * @return MessageHeader + * @status APPROVED (IMS) + */ + function f_IMS_MOCallSetup_Video_Step3_4(VideoCallTypeMO_Type p_VideoCallType, + IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_ContactUri := px_IMS_CalleeContactUri, + template (omit) SemicolonParam_List p_AditionalContactParams := omit) runs on IMS_PTC return MessageHeader + { /* return MessageHeader of the 183 response */ + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var SDP_Message v_SDP_MessageStep2 := p_InviteRequestWithSdp.SdpOffer; + var SDP_media_desc v_SDP_Media_AudioRx := v_SDP_MessageStep2.media_list[0]; + var SDP_media_desc v_SDP_Media_VideoRx := v_SDP_MessageStep2.media_list[1]; + var template (value) SDP_Message v_SDP_MessageStep4 := f_IMS_BuildSDP_MOCallAudioVideo_Step4(p_VideoCallType, v_SDP_Media_AudioRx, v_SDP_Media_VideoRx); + var template (value) MessageHeader v_MessageHeader_Response183; + + // Step 3. SS sends a 100 Trying provisional response. + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); + + // Step 4. Send 183 Session In Progress. + + select (p_VideoCallType) { + case (C25) { + v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri, p_AditionalContactParams); /* @sic R5-142951 sic@ */ + } + case (AddVideo) { + v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, -, p_ContactUri, p_AditionalContactParams); + v_MessageHeader_Response183.supported := cs_Supported(tsc_OptionTagList_precondition); + } + } + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_MessageStep4)))); + + return valueof(v_MessageHeader_Response183); + } + + /* + * @desc steps 5-8 of video call setup procedure acc. to C.25 + * @param p_VideoCallType + * @param p_InviteRequestWithSdp + * @param p_MessageHeader_Prev183Response + * @return SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_MOCallSetup_Video_Steps5_8(VideoCallTypeMO_Type p_VideoCallType, + IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + template (value) MessageHeader p_MessageHeader_Prev183Response) + runs on IMS_PTC return SDP_Message + { + var SDP_Message v_SDP_LatestOffer; + var SDP_Message v_SDP_Offer := p_InviteRequestWithSdp.SdpOffer; + var template (present) SDP_Message v_SDP_Message_Step5or7 := f_IMS_BuildSDP_MOCallAudioVideo_Step5or7(p_VideoCallType, v_SDP_Offer); + + v_SDP_LatestOffer := f_IMS_MOCallSetup_AnnexC21C25_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, -, v_SDP_Message_Step5or7); + return v_SDP_LatestOffer; + } + + //============================================================================ + // Annex C25 - Steps + //---------------------------------------------------------------------------- + /* + * @desc steps 5..13 of C.25 + * @param p_InviteRequestWithSdp + * @param p_MessageHeader_Prev183Response + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @return SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_MOCallSetup_AnnexC25_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + MessageHeader p_MessageHeader_Prev183Response, + charstring p_ContactUri := px_IMS_CalleeContactUri) + runs on IMS_PTC return SDP_Message + { + var SDP_Message v_SDP_LatestOffer; + var boolean v_SrvccAlerting := false; /* as we have no voice call */ + + v_SDP_LatestOffer := f_IMS_MOCallSetup_Video_Steps5_8(C25, p_InviteRequestWithSdp, p_MessageHeader_Prev183Response); + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp, p_ContactUri, v_SrvccAlerting); + f_IMS_MOCallSetup_AnnexC21C25_Step12_13(p_InviteRequestWithSdp, p_ContactUri); + return v_SDP_LatestOffer; + } + + //============================================================================ + // Video - MT Call setup + //---------------------------------------------------------------------------- + /* + * @desc send INVITE for MT video call + * @param p_VideoCallType + * @param p_MessageType + * @param p_FmtAudio + * @param p_FmtVideo + * @param p_ContactUrl (default value: omit) + * @return IMS_InviteRequestWithSdp_Type + * @status APPROVED (IMS) + */ + function f_IMS_MTCallSetup_Video_SendInvite(VideoCallTypeMT_Type p_VideoCallType, + VideoCallMT_MessageTX_Type p_MessageType, + charstring p_FmtAudio, + charstring p_FmtVideo, + template (omit) SipUrl p_ContactUrl := omit) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { + var boolean v_SrvccAlerting := false; + var SipUrl v_ContactUrl; + var template (value) SDP_Message v_SDP_Message_Invite; + var template (value) MessageHeader v_MessageHeader_Invite; + var template (value) INVITE_Request v_InviteRequest; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var INVITE_A_2_1_Context_Type v_Context := A_2_1_A4; + + select (p_VideoCallType) { + case (C26) { v_Context := A_2_1_A4; } + case else { v_Context := A_2_1_A5; } + } + if (isvalue(p_ContactUrl)) { + v_ContactUrl := valueof(p_ContactUrl); + } else { + v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + } + + v_SDP_Message_Invite := f_IMS_BuildSDP_MTCallAudioVideo_TX(p_VideoCallType, p_MessageType, p_FmtAudio, p_FmtVideo); + v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(tsc_OptionTagList_precondition, v_Context, v_SrvccAlerting); + v_InviteRequest := cs_INVITE_Request(v_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_SDP_Message_Invite)); + v_InviteRequestWithSdp := f_IMS_InviteRequestWithSdpMT(v_InviteRequest, v_SDP_Message_Invite); + + // Step 1 - Send INVITE + IMS_Client.send(cas_IMS_Invite_Request(v_InviteRequestWithSdp.RoutingInfo, v_InviteRequest)); + + return v_InviteRequestWithSdp; + } + + /* + * @desc return SessionInProgress183 and its SDP message received in step 4 (C.26) or step 3 (17.2) + * @param p_VideoCallType + * @param p_InviteRequestWithSdp + * @param p_FmtAudio + * @param p_FmtVideo + * @return IMS_ResponseWithSdp_Type + * @status APPROVED (IMS) + */ + function f_IMS_MTCallSetup_Video_Receive183(VideoCallTypeMT_Type p_VideoCallType, + IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_FmtAudio, + charstring p_FmtVideo) runs on IMS_PTC return IMS_ResponseWithSdp_Type + { + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var template (present) SDP_Message v_SDP_Message183 := f_IMS_BuildSDP_MTCallAudioVideo_RX(p_VideoCallType, Response183, p_FmtAudio, p_FmtVideo); + + return f_IMS_MTCallSetup_Common_Steps3_4(v_InviteRequest, v_SDP_Message183, p_InviteRequestWithSdp.RoutingInfo.Protocol); + } + +} diff --git a/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn new file mode 100644 index 0000000..44e1af7 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn @@ -0,0 +1,782 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ +/******************************************************************************/ + +module IMS_SDP_Messages { + import from LibSip_SDPTypes all; + import from IMS_CommonDefs all; + import from IMS_Component all; + import from CommonDefs all; + import from IMS_SDP_Templates all; + import from IMS_CommonTemplates all; + import from IMS_CommonParameters all; + import from LibSip_MessageBodyTypes all; + + type enumerated SDP_Message_Check_Type {asPreviousSDP, newSDP}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + + /* + * @desc Wrapper function to encode SDP message + * @param p_SDP_Message + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + + function f_IMS_SDP_Message_Encode(template (value) SDP_Message p_SDP_Message) return charstring + { + var bitstring v_BitStr := encvalue(p_SDP_Message); + return oct2char(bit2oct(v_BitStr)); + } + + /* + * @desc Wrapper function to decode SDP message and to assign fail verdict in case of syntactically wrong SDP message + * @param p_SdpBody + * @return SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function fl_IMS_SDP_Message_Decode(SdpBody p_SdpBody) runs on IMS_PTC return SDP_Message + { + var SDP_Message v_SDP_Message; + var bitstring v_BitStr := oct2bit(char2oct(p_SdpBody)); + var integer v_Result := decvalue(v_BitStr, v_SDP_Message); + + if (v_Result != 0) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SDP message"); + } + return v_SDP_Message; + } + + /* + * @desc check that 'Connections' is included either at the top level or in the media description(s) or in both + * @param p_SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SDP_CheckConnections(SDP_Message p_SDP_Message) runs on IMS_PTC + { + var boolean v_ConnectionFound := false; + var integer i; + + if (ispresent(p_SDP_Message.connection)) { + v_ConnectionFound := true; + } + + if (not v_ConnectionFound) { + // no connection specified in session description => there shall be at least one connection per media description + v_ConnectionFound := true; + for (i := 0; i < lengthof(p_SDP_Message.media_list); i := i + 1) { + if (not ispresent(p_SDP_Message.media_list[i].connections)) { // @sic R5s130586 change 12 sic@ + v_ConnectionFound := false; + break; + } + } + } + + if (not v_ConnectionFound) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "'Connections found neither in session description nor in media description"); + } + } + + /* + * @desc Wrapper function to decode and match SDP message + * @param p_SdpBody + * @param p_SDP_Message_Template + * @param p_SdpCheck (default value: newSDP) + * @param p_CheckConnections (default value: true) + * @return SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SIP_DecodeMatchAndCheckSDP(template (omit) SdpBody p_SdpBody, + template SDP_Message p_SDP_Message_Template, + SDP_Message_Check_Type p_SdpCheck := newSDP, + boolean p_CheckConnections := true) runs on IMS_PTC return SDP_Message + { /* @sic R5-150702: generic check of origin sic@ */ + var SDP_Message v_SDP_Message; + var template (omit) SDP_Message v_PrevSdpMessage; + var integer v_CurrSessionVersion; + var integer v_PrevSessionVersion; + var template SDP_Origin v_ExpectedOrigin := *; + + if (not ispresent(p_SdpBody)) { /* there is no SDP message */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sdpMessageBody"); + } + else { /* => MessageBody is present and contains an SDP message */ + v_SDP_Message := fl_IMS_SDP_Message_Decode(valueof(p_SdpBody)); + if (not match(v_SDP_Message, p_SDP_Message_Template)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "received sdpMessageBody does not match"); + } + + /* @sic R5-150702: sic@ */ + v_PrevSdpMessage := f_IMS_PTC_ImsInfo_DialogGetPrevSdpMessageRX(); + select (p_SdpCheck) { /* @sic R5-150702 sic@ */ + case (asPreviousSDP) { /* current SDP shall be identically as previous SDP (i.e. even the session version has to be the same) */ + if (not match(v_SDP_Message, v_PrevSdpMessage)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "received SDP message is different than previous one"); + } + } + case (newSDP) { + if (p_CheckConnections) { // check at least one connections field is sent + f_IMS_SDP_CheckConnections(v_SDP_Message); + } + if (ispresent(v_PrevSdpMessage)) { + if (not match(v_SDP_Message, v_PrevSdpMessage)) { /* @sic R5s150497: SDP may be the same as previous SDP sic@ + NOTE: whether or not it shall be allowed to have the same SDP depends on the given template */ + v_CurrSessionVersion := str2int(v_SDP_Message.origin.session_version); + v_PrevSessionVersion := str2int(valueof(v_PrevSdpMessage.origin.session_version)); + v_ExpectedOrigin := v_PrevSdpMessage.origin; + v_ExpectedOrigin.session_version := int2str(v_PrevSessionVersion + 1); + + if (not match(v_SDP_Message.origin, v_ExpectedOrigin)) { /* @sic R5-143201, R5-151684 sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "session version not incremented or o-line changed"); + } + } + } + f_IMS_PTC_ImsInfo_DialogSetPrevSdpMessageRX(v_SDP_Message); + } + } + } + return v_SDP_Message; + } + + /* + * @desc wrapper function to decode and match optional SDP message + * @param p_MessageBody + * @param p_SDP_Message_Template + * @return template (omit) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(template (omit) MessageBody p_MessageBody, + template SDP_Message p_SDP_Message_Template) runs on IMS_PTC return template (omit) SDP_Message + { + var template (omit) SdpBody v_SdpBody := omit; + var SDP_Message v_SDP_Message; + + if (ischosen(p_MessageBody.sdpMessageBody)) { /* there is an SDP message */ + v_SdpBody := p_MessageBody.sdpMessageBody; + } + if (not ispresent(v_SdpBody) and not ispresent(p_SDP_Message_Template)) { /* NOTE: + not ispresent(p_SDP_Message_Template) does not mean that p_SDP_Message_Template is omit + but p_SDP_Message_Template can be e.g. "cr_SomeSDP ifpresent" + nevertheless when we have "not ispresent(p_SDP_Message_Template)" the SDP message may be omitted */ + return omit; + } else { + v_SDP_Message := f_IMS_SIP_DecodeMatchAndCheckSDP(v_SdpBody, p_SDP_Message_Template); + return v_SDP_Message; + } + } + + /* + * @desc wrapper function to decode and match SDP message + * @param p_MessageBody + * @param p_SDP_Message_Template + * @return SDP_Message + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(template (omit) MessageBody p_MessageBody, + template (present) SDP_Message p_SDP_Message_Template) runs on IMS_PTC return SDP_Message + { + var template (omit) SDP_Message v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(p_MessageBody, p_SDP_Message_Template); + return valueof(v_SDP_Message); + } + + //============================================================================ + // Common functions + //---------------------------------------------------------------------------- + /* + * @desc build SDP message to be sent as response to an offer e.g. at the end of C.21 or C.8 + * the function does + * "IP address on "c=" lines and transport port on "m=" lines changed to indicate to which IP address and port the UE should send the media" + * "o-line as in preceding SDP sent by SS, but with sess-version being incremented" + * @param p_SDP_Message_PrevOffer + * @param p_SessionVersion (default value: omit) + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_CommonResponseToOfferTX(SDP_Message p_SDP_Message_PrevOffer, + template (omit) charstring p_SessionVersion := omit) runs on IMS_PTC return template (value) SDP_Message + { + var integer i; + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); + var IntegerList_Type v_IMS_MediaPortList := {tsc_IMS_MediaPort_M1, tsc_IMS_MediaPort_M2, tsc_IMS_MediaPort_M3}; + var template (value) SDP_Message v_SDP_Message := p_SDP_Message_PrevOffer; + var template (value) SDP_media_desc_list v_Media_Desc_List := p_SDP_Message_PrevOffer.media_list; + var template (value) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrOrigin); + var template (value) SDP_media_desc v_SDP_Media_Desc; + var charstring v_SessionVersion; + var charstring v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessIdTX(); /* @sic R5-150707 sic@ */ + + if (ispresent(p_SessionVersion)) { + v_SessionVersion := valueof(p_SessionVersion); + } else { + v_SessionVersion := f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(); + } + + v_SDP_Message.origin := cs_SDP_Origin(v_SessionId, v_SessionVersion, v_AddrType, v_IPAddrOrigin); // @sic R5s141244: "o=" line sic@ + v_SDP_Message.connection := v_SDP_Connection; // IP address on "c=" line + + for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { + v_SDP_Media_Desc := v_Media_Desc_List[i]; + v_SDP_Media_Desc.media_field.ports.port_number := v_IMS_MediaPortList[i]; + v_SDP_Media_Desc.connections := { v_SDP_Connection }; // IP address on "c=" line + v_Media_Desc_List[i] := v_SDP_Media_Desc; + } + v_SDP_Message.media_list := v_Media_Desc_List; + return v_SDP_Message; + } + + /* + * @desc exchange attribute in all media streams of the given media list + * @param p_Media_Desc_List + * @param p_AttributeToBeChanged + * @param p_NewAttribute + * @return template (omit) SDP_media_desc_list + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_SDP_MediaList_ExchangeAttribute(template (omit) SDP_media_desc_list p_Media_Desc_List, + template (present) SDP_attribute p_AttributeToBeChanged, + template (value) SDP_attribute p_NewAttribute) return template (omit) SDP_media_desc_list + { + var template (omit) SDP_media_desc_list v_Media_Desc_List := p_Media_Desc_List; + var integer i; + + if (ispresent(p_Media_Desc_List)) { + for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { + v_Media_Desc_List[i].attributes := f_SDP_ExchangeAttribute(v_Media_Desc_List[i].attributes, p_AttributeToBeChanged, p_NewAttribute); + } + } + return v_Media_Desc_List; + } + + //============================================================================ + // Common SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc generic function to build up SDP message + * @param p_TimeDescription (default value: cr_SDP_Time_0_0) + * @param p_SDP_Media_Field + * @param p_SDP_MediaAttributes + * @param p_SDP_PrecondionAttributes + * @param p_MediaBW_AS + * @param p_MediaBW_RS + * @param p_MediaBW_RR + * @return template (present) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_RX(template (present) SDP_time p_TimeDescription := cr_SDP_Time_0_0, + template (present) SDP_media_field p_SDP_Media_Field, + template (present) SDP_attribute_list p_SDP_MediaAttributes := {}, + template (present) SDP_attribute_list p_SDP_PrecondionAttributes := {}, + template (present) integer p_MediaBW_AS := ?, + template (present) integer p_MediaBW_RS := ?, + template (present) integer p_MediaBW_RR := ?) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150704, R5s150751 - additional changes: new parameters p_MediaBW_AS, p_MediaBW_RS, p_MediaBW_RR sic@ */ + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var template (present) charstring v_IPAddrOrigin := ?; + var template (present) charstring v_IPAddrConnection := ?; + var template SDP_attribute_list v_SDP_Attribute_List := f_SDP_Attributes_Concat_RX(p_SDP_MediaAttributes, p_SDP_PrecondionAttributes); + var template SDP_bandwidth_list v_Media_Desc_BandwidthList := f_SDP_SDP_Media_Desc_BandwidthList(p_SDP_Media_Field, p_MediaBW_AS, p_MediaBW_RS, p_MediaBW_RR); /* results in * if the stream shall be released (port number == 0) + @sic R5s150704, R5s150751 - additional changes sic@ */ + var template (present) SDP_media_desc v_SDP_Media_Desc; + var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; + + if (lengthof(v_SDP_Attribute_List) > 0) { + v_SDP_Attribute_List := superset(all from v_SDP_Attribute_List); + } else { + v_SDP_Attribute_List := *; + } + + v_SDP_Media_Desc := cr_SDP_Media_Desc(p_SDP_Media_Field, + cr_SDP_Connection(v_AddrType, v_IPAddrConnection), + v_Media_Desc_BandwidthList, + v_SDP_Attribute_List); + v_SDP_Media_Desc_List := { v_SDP_Media_Desc }; + + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, -, p_TimeDescription, v_SDP_Media_Desc_List); + } + + /* + * @desc generic function to build up SDP message + * @param p_Media + * @param p_MediaBandwidth_List + * @param p_SDP_MediaAttributes + * @param p_SDP_PrecondionAttributes + * @param p_SessionBandwidthAS (default value: omit) + * @param p_ConnectionInSessionDesc (default value: true) + * @return template (value) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_TX(template (value) SDP_media_field p_Media, + template (omit) SDP_bandwidth_list p_MediaBandwidth_List, + template (omit) SDP_attribute_list p_SDP_MediaAttributes, + template (omit) SDP_attribute_list p_SDP_PrecondionAttributes, + template (omit) integer p_SessionBandwidthAS := omit, + boolean p_ConnectionInSessionDesc := true) runs on IMS_PTC return template (value) SDP_Message + { + var charstring v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessIdTX(); /* @sic R5-150707 sic@ */ + var charstring v_SessionVersion := f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(); + var template (omit) SDP_attribute_list v_SDP_Attribute_List := f_SDP_Attributes_Concat_TX(p_SDP_MediaAttributes, p_SDP_PrecondionAttributes); + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); + var charstring v_IPAddrOrigin := v_IPAddrConnection; + var template (omit) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrConnection); + var template (omit) SDP_connection v_SDP_ConnectionInSession := omit; + var template (omit) SDP_connection_list v_SDP_ConnectionListInMedia := omit; + var template (omit) SDP_bandwidth_list v_SessionBandwidthList := omit; + var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; + var integer v_SessionBandwidthAS; + + if (isvalue(p_SessionBandwidthAS)) { + v_SessionBandwidthList := cs_SDP_Bandwidth_List_AS(valueof(p_SessionBandwidthAS)); + } else if (isvalue(p_MediaBandwidth_List)) { /* @sic R5s150704, R5s150751 - Additional changes: p_MediaBandwidth_List may be omit sic@ */ + v_SessionBandwidthAS := f_SDP_BandwidthList_GetBandwidth(valueof(p_MediaBandwidth_List), "AS"); + v_SessionBandwidthList := cs_SDP_Bandwidth_List_AS(v_SessionBandwidthAS); + } + + if (p_ConnectionInSessionDesc) { + v_SDP_ConnectionInSession := v_SDP_Connection; + } else { + v_SDP_ConnectionListInMedia := { v_SDP_Connection }; + } + v_SDP_Media_Desc_List := { cs_SDP_Media_Desc(p_Media, p_MediaBandwidth_List, v_SDP_Attribute_List, v_SDP_ConnectionListInMedia) }; + + return cs_SDP_Message_Common(cs_SDP_Origin(v_SessionId, v_SessionVersion, v_AddrType, v_IPAddrOrigin), /* Session description - o=line */ + v_SDP_ConnectionInSession, /* Session description - c=line */ + v_SessionBandwidthList, /* Session description - b=line */ + -, /* Time description - t=line */ + v_SDP_Media_Desc_List); /* Media description */ + } + + //============================================================================ + // Annex C11 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.11 + * @param p_SDP_Message183 (default value: omit) + * @param p_IsC45 (default value: false) + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC11_Step1or7(template (omit) SDP_Message p_SDP_Message183 := omit, + boolean p_IsC45:= false) + runs on IMS_PTC + return template (value) SDP_Message + { /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + /* @sic R5-153610: "sendrecv" media attribute removed from SDP message for C.11 step 7 sic@ */ + /* @sic R5-153798: p_SDP_Message183 replacing p_SDP_Attribute_curr_qos_remote and p_Step; p_IsC45 sic@ */ + var boolean v_IsUPDATE := isvalue(p_SDP_Message183); /* @sic R5-153798: if there has been a 183 response it must be UPDATE (but not INVITE) sic@ */ + var charstring v_FmtAudio := tsc_SDP_FmtAudio; + var charstring v_FmtEVS := "97"; + var SDP_fmt_list v_FmtList; + var template (value) SDP_bandwidth_list v_MediaBandwidth_List; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := {}; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes; + var charstring v_DirectionRemote := c_none; + var charstring v_DirectionLocal := c_none; + var template (omit) SDP_attribute v_FmtpAttributeEVS; + var charstring v_BrSendVal; + var charstring v_BrRecvVal; + + if (p_IsC45) { /* @sic R5-153798 sic@*/ + v_MediaBandwidth_List := cs_SDP_Bandwidth_List_Media(65, 0, 2000); + + if (not v_IsUPDATE) { /* => INVITE */ + v_FmtList := {v_FmtEVS, "98", "99"}; + f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, f_SDP_MediaAttributes_EVS_AudioCommon(v_FmtEVS, cs_EVS_Fmtp_AudioParamsExt)); + f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, f_SDP_MediaAttributes_AMR_WB_AudioCommon("98")); + f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, f_SDP_MediaAttributes_AudioDef("99")); + } + else { /* => UPDATE */ + v_FmtpAttributeEVS := f_SDP_AttributeList_GetAttribute(p_SDP_Message183.media_list[0].attributes, cr_SDP_Attribute_fmtp(v_FmtEVS)); + v_BrSendVal := f_SIP_SemicolonParamList_GetParamValue(v_FmtpAttributeEVS.fmtp.params.paramList, "br-send"); + v_BrRecvVal := f_SIP_SemicolonParamList_GetParamValue(v_FmtpAttributeEVS.fmtp.params.paramList, "br-recv"); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_EVS_AudioDef(v_FmtEVS, cs_EVS_Fmtp_AudioParamsExt(v_BrSendVal, v_BrRecvVal)); + } + } + else { /* => C.11 */ + v_MediaBandwidth_List := cs_SDP_Bandwidth_List_Media(37, 0, 2500); /* @sic R5-130751; R5-134270: RR=2500; R5-144700: AS=37 sic@ */ + v_FmtList := {v_FmtAudio}; + v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + } + + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_sendrecv, v_IsUPDATE); + + + // Pre condition attributes: + if (v_IsUPDATE) { // @sic R5-153798: step 7 (C.11) or step 6 (C.45) + + v_DirectionLocal := c_sendrecv; + + // get curr:qos remote for SDP message in step 7 + if (isvalue(p_SDP_Message183.media_list[0]) and + f_SDP_AttributeList_CheckAttribute(p_SDP_Message183.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, c_none))) { // see C.11 step 7 Note 1 + v_DirectionRemote := c_none; + } else { + v_DirectionRemote := c_sendrecv; + } + } + + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(v_DirectionLocal, v_DirectionRemote, c_mandatory, c_optional); /* @sic R5-153798: usage of cs_SDP_PrecondionAttributes sic@*/ + + return f_IMS_BuildSDP_TX(cs_SDP_Media_MultiAudio(v_FmtList), v_MediaBandwidth_List, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //---------------------------------------------------------------------------- + /* + * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 + * @param p_Step + * @param p_IsC45 (default value: false) + * @return template (present) SDP_Message + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC11_Step4or8(charstring p_Step, + boolean p_IsC45:= false) + runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ + /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_Def sic@ */ + /* @sic R5-153798: p_IsC45 sic@ */ + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes; + var template (present) SDP_attribute_list v_SDP_MediaAttributes; + var template (present) SDP_attribute_rtpmap_codec v_RtpmapCodec; + + if (p_IsC45) { /* @sic R5-153798 sic@*/ + v_RtpmapCodec := cr_RTPMAP_EVS_16000; + } else{ + v_RtpmapCodec := cr_RTPMAP_AMR_8000; + } + + v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, v_RtpmapCodec), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr) + }; + + select (p_Step) { + case ("step 4") { + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes((c_none, c_sendrecv), c_none, c_mandatory, c_mandatory); // @sic R5s120530 change 3.15 sic@ + v_SDP_PrecondionAttributes := f_SDP_Attributes_Add_RX(v_SDP_PrecondionAttributes, cr_SDP_Attribute_conf_qos); // @sic R5s140204 sic@ + } + case ("step 8") { + /* @sic R5-150709: cr_SDP_Attribute_sendrecv removed sic@ */ + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //============================================================================ + // Annex C21 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc return template for SDP message at step 2 according to 34.229-1 Annex C.21 + * @param p_RtcpDuringVoiceSession (default value: pc_IMS_RtcpDuringVoiceSession) + * @param p_PreconditionsRequired (default value: true) + * @return template (present) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21_Step2(boolean p_RtcpDuringVoiceSession := pc_IMS_RtcpDuringVoiceSession, + boolean p_PreconditionsRequired := true) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-135020, R5-135021: new PICS pc_IMS_RtcpDuringVoiceSession sic@ */ + /* @sic R5w140113, R5w140009: new SDP type definitions */ + /* @sic R5s150704, R5s150751 - Additional changes: parameter p_PreconditionsRequired, f_IMS_BuildSDP_RX used instead of cr_SDP_Message_AnySession sic@ */ + var template (present) integer v_BandwidthRS := 0; + var template (present) integer v_BandwidthRR := 0; + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), /* @sic R5w140113, R5w140009: cr_AMR_Fmtp_DefaultParameters replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ */ + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), // @sic R5s130333 change 14.2 - pattern needs to include a rate; R5s130798 change 5 - MCC160 Comment: rate is optional sic@ + cr_SDP_Attribute_ptime, + cr_SDP_Attribute_maxptime + /* @sic R5-150709: cr_SDP_Attribute_inactive removed sic@ */ + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := {}; + + if (p_PreconditionsRequired) { /* @sic R5s150704, R5s150751 - Additional changes sic@ */ + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + } + if (p_RtcpDuringVoiceSession) { /* @sic R5-135020 sic@ */ + v_BandwidthRS := ?; + v_BandwidthRR := (1..infinity); + } + return f_IMS_BuildSDP_RX(cr_SDP_Time_Any, cr_SDP_Media_Audio, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes, -, v_BandwidthRS, v_BandwidthRR); + } + + //---------------------------------------------------------------------------- + /* + * @desc return template for SDP message at step 4 according to 34.229-1 Annex C.21 and C.44 + * @param p_SDP_MessageInvite + * @param p_PreconditionsRequired (default value: true) + * @param p_CodecName (default value: "AMR-8000") + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21_Step4(SDP_Message p_SDP_MessageInvite, + boolean p_PreconditionsRequired := true, + charstring p_CodecName := "AMR-8000") + runs on IMS_PTC + return template (value) SDP_Message + { /* @sic R5-135020: parameter p_SDP_MessageInvite to get RR and RS values sic@ */ + /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ + /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150704, R5s150751 - Additional changes: p_PreconditionsRequired sic@ */ + /* @sic R5-153999: p_IsC44 renamed to p_CodecName sic@ */ + var integer i; + var template (omit) SDP_attribute v_Attribute; + var SDP_media_desc v_SDP_Media_Invite := p_SDP_MessageInvite.media_list[0]; + var charstring v_FmtAudio; + var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RS"); + var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RR"); + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); // @sic R5-123505, R5-135020; R5-144700: AS=37 sic@ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes; + var template (value) SDP_attribute_list v_AdditionalOptionalAttributes; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := omit; + + + select (p_CodecName) { // @sic R5-151968, R5-153999 sic@ + case ("EVS-16000"){ // @sic R5-153999 sic@ + /* !!!! prose acc to R5-153999 says: "All present br, br-send and br-recv parameter=value pairs are copied from step 2" !!!! + !!!! this is missing so far (FFS) !!!! */ + v_FmtAudio := f_SDP_MediaDescr_GetEVS_16000_1(v_SDP_Media_Invite); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_EVS_AudioDef(v_FmtAudio); + } + case ("AMR-WB"){ // @sic R5-153950 sic@ + v_FmtAudio := f_SDP_MediaDescr_GetAMR_16000_1(v_SDP_Media_Invite); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_EVS_AudioDef(v_FmtAudio); + v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(38, v_BandwidthRS, v_BandwidthRR); + } + case ("AMR-8000"){ + v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Invite); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + } + case else { + FatalError(__FILE__, __LINE__, "") + } + } + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_Invite.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-150694 sic@ */ + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_inactive); + } + + // additional attributes to be added (using f_SDP_Attributes_Add_TX): + // a=ecn-capable-rtp: leap; ect=0 [Note 3] + // a=rtcp-fb:* nack ecn [Note 3] + // a=rtcp-xr:ecn-sum [Note 3] + // a=3ge2ae: requested [Note 1] + // a=crypto:1 AES_CM_128_HMAC_SHA1_80inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4 [Note 4] + v_AdditionalOptionalAttributes := { /* @sic R5s140359 - Additional Changes sic@ */ + cs_SDP_Attribute_ecn_capable_rtp("leap", "ect=0"), + cs_SDP_Attribute_rtcp_fb("*", "nack ecn"), + cs_SDP_Attribute_rtcp_xr("ecn-sum"), + cs_SDP_Attribute_3ge2ae("requested"), + cs_SDP_Attribute_crypto("1", "AES_CM_128_HMAC_SHA1_80", "inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4") + }; + for (i := 0; i < lengthof(v_AdditionalOptionalAttributes); i := i + 1) { + v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_MessageInvite.attributes, v_AdditionalOptionalAttributes[i]); + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, v_Attribute); + } + + if (p_PreconditionsRequired) { /* @sic R5s150704, R5s150751 - Additional changes sic@ */ + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory); + v_SDP_PrecondionAttributes := f_SDP_Attributes_Add_TX(v_SDP_PrecondionAttributes, cs_SDP_Attribute_conf_qos); // @sic R5s120530 change 3.5 sic@ + } + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //---------------------------------------------------------------------------- + /* + * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21/C.44 step 5/7 + * @param p_SDP_MessageInvite + * @param p_CallHoldC8 (default value: true) + * @param p_IsC44 (default value: true) + * @return template (present) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21_Step5or7(SDP_Message p_SDP_MessageInvite, + boolean p_CallHoldC8 := false, + boolean p_IsC44 := false) + runs on IMS_PTC + return template (present) SDP_Message + { /* @sic R5-145726: function restructured to allow it to be used by e.g. f_IMS_BuildSDP_AnnexC8_Step1; new parameter p_CallHoldC8 sic@ */ + /* @sic R5-151968 new parameter: p_IsC44 sic@ */ + /* @sic R5-153610: p_SDP_MessageInvite instead of p_Fmt sic@ */ + var SDP_media_desc v_SDP_Media_Invite := p_SDP_MessageInvite.media_list[0]; + var charstring v_Fmt := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Invite); // @sic R5-153610 sic@ + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio(v_Fmt); + var template (present) SDP_attribute_list v_SDP_MediaAttributes; + var template (present) charstring v_DirectionRemote; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes; + var template (present) SDP_attribute_rtpmap_codec v_RtpmapAttr; + + if (not p_IsC44) { /* @sic R5-1551968 sic@ */ + v_RtpmapAttr := cr_RTPMAP_AMR_8000; + } + else { + v_RtpmapAttr := cr_RTPMAP_EVS_16000; + } + + v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(v_Fmt, v_RtpmapAttr), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(v_Fmt) /* @sic R5s130497 change 2: format parameters added; R5s130586 change 4: format parameters changed back to any parameters sic@ */ + }; + + if (not p_CallHoldC8) { + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_Invite.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-153610 sic@ */ + v_SDP_MediaAttributes := f_SDP_Attributes_Add_RX(v_SDP_MediaAttributes, cr_SDP_Attribute_sendrecv); + } + v_DirectionRemote := c_none; + } else { + v_DirectionRemote := c_sendrecv; + } + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, v_DirectionRemote, c_mandatory, (c_optional, c_mandatory)); + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //---------------------------------------------------------------------------- + /* + * @desc build SDP message to be sent in step 6 or 8 of 34.229-1 Annex C.21 + * NOTE: function is not specific for C.21 but can be used for C.25 as well + * @param p_SDP_Message_PrevOffer + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21C25_Step6or8(SDP_Message p_SDP_Message_PrevOffer) + runs on IMS_PTC + return template (value) SDP_Message + { + var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); + + v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, + cs_SDP_Attribute_curr_qos(c_remote, c_none), // value sent by the UE in step 5/7 + cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv)); // ... to be replaced + return v_SDP_Message; + } + + //============================================================================ + // Annex C22 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be received from the UE at step 1 according to 34.229-1 Annex C.22 + * @return template (present) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC22_Step1() runs on IMS_PTC return template (present) SDP_Message + { + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var template (present) charstring v_IPAddrOrigin := ?; + var template (present) charstring v_IPAddrConnection := ?; + var template (present) SDP_media_desc v_SDP_Media_Desc; + var template SDP_bandwidth_list v_Bandwidth := *; + var template SDP_attribute_list v_SDP_Attribute_List := *; //acc. to annex C.22 there shall be at least one AMR codec ("AMR/*" of "AMR-WB/*"); + // this will be checked later-on when the fmt value for the AMR codec is extracted (-> f_IMS_EmergencyCallSetup_AnnexC22, f_SDP_MediaDescr_GetAMR_Any) + v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, + cr_SDP_Connection(v_AddrType, v_IPAddrOrigin), + cr_SDP_Bandwidth_List_AS, + v_SDP_Attribute_List); + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_Bandwidth, cr_SDP_Time_Any, { v_SDP_Media_Desc }); /* @sic R5s130495 change 21 sic@ */ + } + + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.22 + * NOTE: the "payload type" of the rtpmap attribute and the "format" of the fmtp atribute refer to the format in the media description (RFC 4566) + * => as long as there is only one media description, the fmt, payload type and format have the same value + * @param p_Fmt + * @return template (value) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC22_Step4(charstring p_Fmt) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s141244: use of f_IMS_BuildSDP_TX; p_IPAddrOrigin removed sic@ */ + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, 0, 0); /* @sic R5-144700: AS=37 sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(p_Fmt); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := omit; + + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(p_Fmt), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //============================================================================ + // Annex C24 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP message to be received from the UE according to 34.229-1 Annex C.24 step 1 + * @return template (present) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC24_Step1() runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_AnySession sic@ */ + var integer v_PortNumber := 0; + return f_IMS_BuildSDP_RX(cr_SDP_Time_Any, cr_SDP_Media_Audio(-, v_PortNumber)); + } + + /* + * @desc Build SDP answer to be sent to the UE according to 34.229-1 Annex C.24 step 3 + * @param p_SDP_Offer + * @return template (value) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC24_Step3(SDP_Message p_SDP_Offer) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s150704, R5s150751 - Additional changes, R5-153755: use of f_IMS_BuildSDP_TX sic@ */ + + var template (omit) SDP_bandwidth_list v_MediaBandwidth_List := omit; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := omit; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := omit; + var SDP_media_desc v_SDP_Media_Offer := p_SDP_Offer.media_list[0]; + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Offer); + var integer v_LocalPort := 0; + var integer v_SessionBandwidthAS := 37; /* @sic R5s150704, R5s150751 - Additional changes sic@ */ + + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio, v_LocalPort), v_MediaBandwidth_List, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes, v_SessionBandwidthAS); + } + + //============================================================================ + // Annex C31 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.31 + * @return template (present) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC31_Step1() runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_AnySession sic@ */ + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := {}; // precondition attributes: none @sic R5s140263 change 4, R5-142995 sic@ + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp + // @sic R5-153610: "sendrecv" media attribute removed sic@ + }; + return f_IMS_BuildSDP_RX(cr_SDP_Time_Any, cr_SDP_Media_Audio, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + /* + * @desc Build SDP to be sent to the UE at step 3 according to 34.229-1 Annex C.31 + * @param p_SDP_Offer + * @return template (value) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC31_Step3(SDP_Message p_SDP_Offer) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + var SDP_media_desc v_SDP_Media_Offer := p_SDP_Offer.media_list[0]; + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Offer); + var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RS"); + var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RR"); + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); /* @sic R5-144700: AS=37 sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioCommon(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioCommon sic@ */ + var template (value) SDP_attribute_list v_SDP_PrecondionAttributes; + + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_Offer.attributes, cr_SDP_Attribute_sendrecv)) { /* @sic R5-153610: "sendrecv" only if included in the INVITE too sic@ */ + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_sendrecv); + } + + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); /* @sic R5s150704, R5s150751 - Additional changes: cs_SDP_PrecondionAttributes sic@ */ + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + +} diff --git a/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn new file mode 100644 index 0000000..57eaad9 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn @@ -0,0 +1,477 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ +/******************************************************************************/ + +module IMS_SDP_MessagesVideo { + import from LibSip_Common all; + import from LibSip_SDPTypes all; + import from IMS_Component all; + import from IMS_SDP_Templates all; + + type enumerated VideoCallTypeMO_Type {C25, AddVideo, CallHold}; /* @status APPROVED (IMS) */ + type enumerated VideoCallTypeMT_Type {C26, AddVideo}; /* @status APPROVED (IMS) */ + type enumerated VideoCallMT_MessageTX_Type {Invite, Update, InviteRemoveVideo}; /* @status APPROVED (IMS) */ + type enumerated VideoCallMT_MessageRX_Type {Response183, Response200}; /* @status APPROVED (IMS) */ + + /* + * @desc returns true if media attributes for tcap and pcfg are needed in DL + * @param p_SDP_Media_Desc + * @return boolean + * @status APPROVED (IMS) + */ + function fl_IMS_Video_TcapPcfgRequired(SDP_media_desc p_SDP_Media_Desc) return boolean + { + return (p_SDP_Media_Desc.media_field.transport == c_rtpAvp); + } + + //============================================================================ + // Video - SDP Messages Common + //---------------------------------------------------------------------------- + /* + * @desc Common function for video SDP messges in UL + * @param p_TimeDescription (default value: cr_SDP_Time_0_0) + * @param p_SDP_Media_Field_Audio + * @param p_SDP_MediaAttributes_Audio + * @param p_SDP_PrecondionAttributes_Audio + * @param p_SDP_Media_Field_Video + * @param p_SDP_MediaAttributes_Video + * @param p_SDP_PrecondionAttributes_Video + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AudioVideo_RX(template (present) SDP_time p_TimeDescription := cr_SDP_Time_0_0, + template (present) SDP_media_field p_SDP_Media_Field_Audio, + template (present) SDP_attribute_list p_SDP_MediaAttributes_Audio, + template (present) SDP_attribute_list p_SDP_PrecondionAttributes_Audio, + template (present) SDP_media_field p_SDP_Media_Field_Video, + template (present) SDP_attribute_list p_SDP_MediaAttributes_Video, + template (present) SDP_attribute_list p_SDP_PrecondionAttributes_Video) runs on IMS_PTC return template (present) SDP_Message + { + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var template (present) charstring v_IPAddrOrigin := ?; + var template (present) charstring v_IPAddrAudio := ?; + var template (present) charstring v_IPAddrVideo := ?; + var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio := f_SDP_Attributes_Concat_RX(p_SDP_MediaAttributes_Audio, p_SDP_PrecondionAttributes_Audio); + var template (present) SDP_attribute_list v_SDP_Attribute_List_Video := f_SDP_Attributes_Concat_RX(p_SDP_MediaAttributes_Video, p_SDP_PrecondionAttributes_Video); + var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; + var template (present) SDP_media_desc v_SDP_Media_Desc_Video; + var template SDP_bandwidth_list v_BandwidthList_Audio := f_SDP_SDP_Media_Desc_BandwidthList(p_SDP_Media_Field_Audio); /* results in * if the audio stream shall be released */ + var template SDP_bandwidth_list v_BandwidthList_Video := f_SDP_SDP_Media_Desc_BandwidthList(p_SDP_Media_Field_Video); /* results in * if the video stream shall be released */ + var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; + + v_SDP_Attribute_List_Audio := superset(all from v_SDP_Attribute_List_Audio); + v_SDP_Attribute_List_Video := superset(all from v_SDP_Attribute_List_Video); + + v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(p_SDP_Media_Field_Audio, + cr_SDP_Connection(v_AddrType, v_IPAddrAudio), + v_BandwidthList_Audio, + v_SDP_Attribute_List_Audio); + v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(p_SDP_Media_Field_Video, + cr_SDP_Connection(v_AddrType, v_IPAddrVideo), + v_BandwidthList_Video, + v_SDP_Attribute_List_Video); + v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; + + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, p_TimeDescription, v_SDP_Media_Desc_List); + } + + /* + * @desc Common function for video SDP messges in DL + * @param p_SessionBandwidthAS (default value: 30) + * @param p_MediaAudio + * @param p_Bandwidth_List_Audio + * @param p_SDP_MediaAttributes_Audio + * @param p_SDP_PrecondionAttributes_Audio + * @param p_MediaVideo + * @param p_Bandwidth_List_Video + * @param p_SDP_MediaAttributes_Video + * @param p_SDP_PrecondionAttributes_Video + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AudioVideo_TX(integer p_SessionBandwidthAS := 30, + template (value) SDP_media_field p_MediaAudio, + template (value) SDP_bandwidth_list p_Bandwidth_List_Audio, + template (omit) SDP_attribute_list p_SDP_MediaAttributes_Audio, + template (omit) SDP_attribute_list p_SDP_PrecondionAttributes_Audio, + template (value) SDP_media_field p_MediaVideo, + template (value) SDP_bandwidth_list p_Bandwidth_List_Video, + template (omit) SDP_attribute_list p_SDP_MediaAttributes_Video, + template (omit) SDP_attribute_list p_SDP_PrecondionAttributes_Video) + runs on IMS_PTC + return template (value) SDP_Message + { + var charstring v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessIdTX(); /* @sic R5-150707 sic@ */ + var charstring v_SessionVersion := f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(); + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); + var charstring v_IPAddrOrigin := v_IPAddrConnection; + var template (omit) SDP_attribute_list v_SDP_Attribute_List_Audio := f_SDP_Attributes_Concat_TX(p_SDP_MediaAttributes_Audio, p_SDP_PrecondionAttributes_Audio); + var template (omit) SDP_attribute_list v_SDP_Attribute_List_Video := f_SDP_Attributes_Concat_TX(p_SDP_MediaAttributes_Video, p_SDP_PrecondionAttributes_Video); + var template (value) SDP_media_desc v_SDP_Media_Desc_AudioTx; + var template (value) SDP_media_desc v_SDP_Media_Desc_VideoTx; + var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; + + v_SDP_Media_Desc_AudioTx := cs_SDP_Media_Desc(p_MediaAudio, + p_Bandwidth_List_Audio, + v_SDP_Attribute_List_Audio); + v_SDP_Media_Desc_VideoTx := cs_SDP_Media_Desc(p_MediaVideo, + p_Bandwidth_List_Video, + v_SDP_Attribute_List_Video); + + v_SDP_Media_Desc_List := { v_SDP_Media_Desc_AudioTx, v_SDP_Media_Desc_VideoTx }; + + return cs_SDP_Message_Common(cs_SDP_Origin(v_SessionId, v_SessionVersion, v_AddrType, v_IPAddrOrigin), + cs_SDP_Connection(v_AddrType, v_IPAddrConnection), + cs_SDP_Bandwidth_List_AS(p_SessionBandwidthAS), + -, + v_SDP_Media_Desc_List); + } + + //============================================================================ + // Video - SDP Messages MO Call (C.25 and 17.1) + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be received from the UE at step 2 according to 34.229-1 Annex C.25 + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AnnexC25_Step2() runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-151796: "a=inactive" removed from media attributes for audio and video sic@ */ + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), + cr_SDP_Attribute_ptime, + cr_SDP_Attribute_maxptime + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + // The tcap/pcfg attributes need to be checked later when we know whether we have RTP/AVP or RTP/AVPF + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(-, cr_Video_Fmtp_DefaultParametersMO) + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + + return f_IMS_BuildSDP_AudioVideo_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes, + cr_SDP_Media_Video(-, (c_rtpAvp, c_rtpAvpf)), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes); + } + + /* + * @desc Build SDP record to be received from the UE at step 2 according to 34.229-1 test case 17.1 + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AddVideoMO_Step2() runs on IMS_PTC return template (present) SDP_Message + { + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp // => any parameters for audio + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_optional); + + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + // The tcap/pcfg attributes need to be checked later when we know whether we have RTP/AVP or RTP/AVPF + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(-, cr_Video_Fmtp_DefaultParametersMO) + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + + return f_IMS_BuildSDP_AudioVideo_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media_Video(-, (c_rtpAvp, c_rtpAvpf)), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.25 or test case 17.1 + * @param p_VideoCallType + * @param p_SDP_Media_AudioRx + * @param p_SDP_Media_VideoRx + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MOCallAudioVideo_Step4(VideoCallTypeMO_Type p_VideoCallType, + SDP_media_desc p_SDP_Media_AudioRx, + SDP_media_desc p_SDP_Media_VideoRx) + runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ + var boolean v_TcapPcfg := fl_IMS_Video_TcapPcfgRequired(p_SDP_Media_VideoRx); + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_AudioRx); + var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(p_SDP_Media_VideoRx); + var template (omit) SDP_attribute v_FmtpAttributeVideo; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio := p_SDP_Media_AudioRx.bandwidth; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Video := p_SDP_Media_VideoRx.bandwidth; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Audio := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Video := {}; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + var template (value) SemicolonParam_List v_FmtpParamListVideo := {}; + + v_SDP_PrecondionAttributes_Video := f_SDP_Attributes_Add_TX(cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory), cs_SDP_Attribute_conf_qos); + + select (p_VideoCallType) { + case (C25) { + v_SDP_PrecondionAttributes_Audio := v_SDP_PrecondionAttributes_Video; // same preconditions for audio and video + } + case (AddVideo) { + v_SDP_PrecondionAttributes_Audio := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + } + + v_FmtpAttributeVideo := f_SDP_AttributeList_GetAttribute(p_SDP_Media_VideoRx.attributes, cr_SDP_Attribute_fmtp(v_FmtVideo)); // @sic R5s141336 change 2.2 - MCC160 implementation sic@ */ + if (isvalue(v_FmtpAttributeVideo)) { + v_FmtpParamListVideo := valueof(v_FmtpAttributeVideo.fmtp.params.paramList); /* @sic R5-150734, R5-150736 sic@ */ + } + + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtpmap(v_FmtVideo, cs_RTPMAP_H264_90000)); + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_fmtp(v_FmtVideo, cs_Fmtp_ParamList(v_FmtpParamListVideo))); + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_acfg(1, "t=1"), v_TcapPcfg); + + if (p_VideoCallType == C25) { /* NOTE: there is nothing specified in 17.1 regarding "a=inactive" yet */ + if (f_SDP_AttributeList_CheckAttribute(p_SDP_Media_VideoRx.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-150694 sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_inactive); + } + if (f_SDP_AttributeList_CheckAttribute(p_SDP_Media_AudioRx.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-151796/R5-151797 sic@ */ + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_inactive); + } + } + + return f_IMS_BuildSDP_AudioVideo_TX(-, + cs_SDP_Media_Audio(v_FmtAudio), + v_Bandwidth_List_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cs_SDP_Media_Video(v_FmtVideo), + v_Bandwidth_List_Video, + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + //---------------------------------------------------------------------------- + /* + * @desc to receive 2nd SDP answer sent by the UE in C.25 step 5/7 + * @param p_VideoCallType + * @param p_SDP_MessageInvite + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MOCallAudioVideo_Step5or7(VideoCallTypeMO_Type p_VideoCallType, + SDP_Message p_SDP_MessageInvite) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-153610: p_SDP_MessageInvite instead of p_FmtAudio, p_FmtVideo sic@ */ + + var SDP_media_desc v_SDP_Media_InviteAudio := p_SDP_MessageInvite.media_list[0]; + var SDP_media_desc v_SDP_Media_InviteVideo := p_SDP_MessageInvite.media_list[1]; + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_InviteAudio); // @sic R5-153610 sic@ + var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(v_SDP_Media_InviteVideo); // @sic R5-153610 sic@ + + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(v_FmtAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(v_FmtAudio) + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + var template (present) charstring v_DirectionRemote_Audio; + var template (present) charstring v_DirectionRemote_Video; + var template (present) charstring v_StrengthRemote := c_optional; + + v_SDP_MediaAttributes_Video := { /* @sic R5s141336 change 3 sic@ */ + cr_SDP_Attribute_rtpmap(v_FmtVideo, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(v_FmtVideo, cr_Video_Fmtp_DefaultParametersMO) /* @sic R5-150734, R5-150736: same parameters for C.25 and 17.1 sic@ */ + }; + + select (p_VideoCallType) { + case (C25) { + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_InviteAudio.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-153610 sic@ */ + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_RX(v_SDP_MediaAttributes_Audio, cr_SDP_Attribute_sendrecv); + } + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_InviteVideo.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-153610 sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_RX(v_SDP_MediaAttributes_Video, cr_SDP_Attribute_sendrecv); + } + v_DirectionRemote_Audio := c_none; + v_DirectionRemote_Video := c_none; + v_StrengthRemote := (c_optional, c_mandatory); /* @sic R5s141221 change 4.1; R5s150236 sic@ */ + } + case (AddVideo) { + v_DirectionRemote_Audio := c_sendrecv; + v_DirectionRemote_Video := c_none; + } + case (CallHold) { + v_DirectionRemote_Audio := c_sendrecv; + v_DirectionRemote_Video := c_sendrecv; + v_StrengthRemote := (c_optional, c_mandatory); /* @sic R5s150775 sic@ */ + } + } + v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_sendrecv, v_DirectionRemote_Audio, c_mandatory, v_StrengthRemote); + v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, v_DirectionRemote_Video, c_mandatory, v_StrengthRemote); + + return f_IMS_BuildSDP_AudioVideo_RX(-, + cr_SDP_Media_Audio(v_FmtAudio), + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media_Video(v_FmtVideo), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + //============================================================================ + // Video - SDP Messages MT Call (C.26 and 17.2) + //---------------------------------------------------------------------------- + /* + * @desc Build SDP message to be sent to the UE at step 1/7 of Annex C.26 or at step 1/6 of 17.2 + * @param p_VideoCallType + * @param p_MessageType + * @param p_FmtAudio + * @param p_FmtVideo + * @param p_DirectionRemote (default value: c_none) + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MTCallAudioVideo_TX(VideoCallTypeMT_Type p_VideoCallType, + VideoCallMT_MessageTX_Type p_MessageType, + charstring p_FmtAudio, + charstring p_FmtVideo, + charstring p_DirectionRemote := c_none) + runs on IMS_PTC + return template (value) SDP_Message + { + var template (value) SDP_media_field v_MediaVideo := cs_SDP_Media_Video(p_FmtVideo); + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Audio := f_SDP_MediaAttributes_AudioCommon(p_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioCommon sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Video := { + cs_SDP_Attribute_rtpmap(p_FmtVideo, cs_RTPMAP_H264_90000), + cs_SDP_Attribute_fmtp(p_FmtVideo, cs_Fmtp_ParamList(cs_Fmtp_VideoParamsDef)) + }; + var integer v_SessionBandwidthAS; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Video := cs_SDP_Bandwidth_List_Media(315, 0, 2500); + var template (value) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (value) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + var boolean v_IsNotRemoveVideo := (p_MessageType != InviteRemoveVideo); + var boolean v_IsUpdate := false; + + if (p_MessageType != InviteRemoveVideo) { + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "trr-int 5000"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "nack"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "nack pli"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "ccm fir"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "ccm tmmbr"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + } + + select (p_MessageType) { + case (Invite) { + v_SDP_PrecondionAttributes_Video := cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory); + } + case (Update) { + v_SDP_PrecondionAttributes_Video := cs_SDP_PrecondionAttributes(c_sendrecv, p_DirectionRemote, c_mandatory, c_mandatory); + v_IsUpdate := true; + } + case (InviteRemoveVideo) { + v_SDP_PrecondionAttributes_Video := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + v_MediaVideo.ports.port_number := 0; + } + } + + if (not (v_IsUpdate and (p_VideoCallType == AddVideo))) { // @sic R5-151956: there are no ptime, maxptime for UPDATE of 17.2 sic@ + // additional attributes for audio: ptime, maxptime + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_ptime); + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_maxptime); + } + + select (p_VideoCallType) { + case (C26) { + v_SessionBandwidthAS := 30; // @sic R5-151956 sic@ + v_Bandwidth_List_Audio := cs_SDP_Bandwidth_List_Media(30, 0, 2000); // @sic R5-151956 sic@ + // @sic R5-153610: "sendrecv" media attribute removed from UPDATE (Step 7) for audio and Video sic@ + v_SDP_PrecondionAttributes_Audio := v_SDP_PrecondionAttributes_Video; // same precondions for video and audio + } + case (AddVideo) { + v_SessionBandwidthAS := 37; // @sic R5-151956 sic@ + v_Bandwidth_List_Audio := cs_SDP_Bandwidth_List_Media(37, 0, 2500); // @sic R5-151956 sic@ + // acc. 34.229-1 in contrast to C.26 there is no sendrecv attribute for audio or video + v_SDP_PrecondionAttributes_Audio := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); // audio is already there + } + } + + return f_IMS_BuildSDP_AudioVideo_TX(v_SessionBandwidthAS, + cs_SDP_Media_Audio(p_FmtAudio), + v_Bandwidth_List_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + v_MediaVideo, + v_Bandwidth_List_Video, + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + /* + * @desc SDP message received in step 4 (C.26) or step 3 (17.2) + * @param p_VideoCallType + * @param p_MessageType + * @param p_FmtAudio + * @param p_FmtVideo + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MTCallAudioVideo_RX(VideoCallTypeMT_Type p_VideoCallType, + VideoCallMT_MessageRX_Type p_MessageType, + charstring p_FmtAudio, + charstring p_FmtVideo) + runs on IMS_PTC + return template (present) SDP_Message + { + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(p_FmtAudio, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(p_FmtAudio) + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + cr_SDP_Attribute_rtpmap(p_FmtVideo, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(p_FmtVideo, cr_Video_Fmtp_DefaultParametersMT) /* @sic R5s141329 - MCC160 implementation sic@ + @sic R5-150703: same parameters for C.26 and 17.2 sic@ */ + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + + select (p_MessageType) { + case (Response183) { + v_SDP_PrecondionAttributes_Video := f_SDP_Attributes_Add_RX(cr_SDP_PrecondionAttributes((c_none, c_sendrecv), c_none, c_mandatory, c_mandatory), cr_SDP_Attribute_conf_qos); + } + case (Response200) { + v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + } + + select (p_VideoCallType) { + case (C26) { + v_SDP_PrecondionAttributes_Audio := v_SDP_PrecondionAttributes_Video; + } + case (AddVideo) { + v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + } + + return f_IMS_BuildSDP_AudioVideo_RX(-, + cr_SDP_Media_Audio(p_FmtAudio), + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media_Video(p_FmtVideo), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + +} diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Templates.ttcn similarity index 63% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Templates.ttcn index 24d67e7..72824d5 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SDP_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 13:17:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14487 $ /******************************************************************************/ module IMS_SDP_Templates { @@ -33,15 +33,16 @@ module IMS_SDP_Templates { template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_AnyCodec := cr_RTPMAP_Codec(pattern "AMR*"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) any AMR codec ("AMR[/]*" or "AMR-WB[/]*") @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_Any_RX_Pattern sic@ */ - template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_8000 := cr_RTPMAP_Codec("AMR", "8000", "1" ifpresent); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_8000 := cr_RTPMAP_Codec("AMR", "8000", "1" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_8000_RX_Pattern sic@ */ - template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_16000 := cr_RTPMAP_Codec("AMR-WB", "16000", "1" ifpresent); /* @status APPROVED (IMS) + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_16000 := cr_RTPMAP_Codec("AMR-WB", "16000", "1" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_16000_RX_Pattern sic@ */ + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_EVS_16000 := cr_RTPMAP_Codec("EVS", "16000", "1" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_TelephoneEvent := - cr_RTPMAP_Codec("telephone-event", pattern "([0-9]+)", pattern "([0-9]+)" ifpresent); /* @status APPROVED (IMS, LTE_A) + cr_RTPMAP_Codec("telephone-event", pattern "([0-9]+)", pattern "([0-9]+)" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) @sic R5s130798 change 5 - MCC160 Comment sic@ @sic R5w140113, R5w140009: replaces tsc_CODEC_TelephoneEvent_RX_Pattern sic@ */ - template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_H264_90000 := cr_RTPMAP_Codec("H264", "90000"); + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_H264_90000 := cr_RTPMAP_Codec("H264", "90000"); /* @status APPROVED (IMS) */ template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_Codec(template (value) charstring p_Encoding, template (value) charstring p_ClockRate, @@ -54,50 +55,92 @@ module IMS_SDP_Templates { template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_AMR_8000 := cs_RTPMAP_Codec("AMR", "8000", "1"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_8000_TX sic@ */ - template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_AMR_16000 := cs_RTPMAP_Codec("AMR-WB", "16000", "1"); /* @status APPROVED (IMS) + template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_AMR_16000 := cs_RTPMAP_Codec("AMR-WB", "16000", "1"); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_16000_TX sic@ */ - template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_H264_90000 := cs_RTPMAP_Codec("H264", "90000"); + template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_H264_90000 := cs_RTPMAP_Codec("H264", "90000"); /* @status APPROVED (IMS) */ + + template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_EVS_16000 := cs_RTPMAP_Codec("EVS", "16000", "1"); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ // FMTP: template (value) SDP_attribute_fmtp_format_specific_params cs_Fmtp_ParamList(template (value) SemicolonParam_List p_ParamList) := {paramList := p_ParamList}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SDP_attribute_fmtp_format_specific_params cr_Fmtp_ParamList(template (present) SemicolonParam_List p_ParamList) := {paramList := p_ParamList}; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (present) SDP_attribute_fmtp_format_specific_params cr_Fmtp_ParamList(template (present) SemicolonParam_List p_ParamList) := {paramList := p_ParamList}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (value) SDP_attribute_fmtp_format_specific_params crs_Fmtp_UnstructuredParams(charstring p_ParamString) := {unstructured := p_ParamString}; // audio - format specific parameters template (value) GenericParam cs_AMR_ModeChangeCapability := cs_GenericParam("mode-change-capability", "2"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenericParam cr_AMR_ModeChangeCapability := f_GenericParam_AsTX(cs_AMR_ModeChangeCapability); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (present) GenericParam cr_AMR_ModeChangeCapability := f_GenericParam_AsTX(cs_AMR_ModeChangeCapability); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (value) GenericParam cs_AMR_MaxRed := cs_GenericParam("max-red", "220"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenericParam cr_AMR_MaxRed := cr_GenericParam("max-red", pattern "[0-9]+"); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) + template (present) GenericParam cr_AMR_MaxRed := cr_GenericParam("max-red", pattern "[0-9]+"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5-141114: in UL max-red can be any value within 0..220 sic@ */ + template (value) GenericParam cs_EVS_BrSend(charstring p_Value) := cs_GenericParam("br-send", p_Value); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_BrRecv(charstring p_Value) := cs_GenericParam("br-recv", p_Value); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_Bw := cs_GenericParam("bw", "swb"); /* @sic R5-153999 sic@ + @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_BwSend := cs_GenericParam("bw-send", "swb"); /* @sic R5-153999 sic@ + @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_BwRecv := cs_GenericParam("bw-recv", "swb"); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) SemicolonParam_List cs_Fmtp_AudioParamsDef := {cs_AMR_ModeChangeCapability, cs_AMR_MaxRed}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SemicolonParam_List cr_Fmtp_AudioParamsDef := {cr_AMR_ModeChangeCapability, cr_AMR_MaxRed, *}; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (value) SemicolonParam_List cs_EVS_Fmtp_AudioParamsDef := {cs_EVS_Bw, cs_EVS_BwSend, cs_EVS_BwRecv, cs_AMR_MaxRed}; /* @sic R5-153999 sic@ + @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) SemicolonParam_List cs_EVS_Fmtp_AudioParamsExt(charstring p_BrSendVal := "8-48", + charstring p_BrRecvVal := "32-48") := + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + cs_EVS_BrSend(p_BrSendVal), + cs_EVS_BrRecv(p_BrRecvVal), + cs_EVS_Bw, + cs_EVS_BwSend, + cs_EVS_BwRecv, + cs_AMR_MaxRed + }; + + template (present) SemicolonParam_List cr_Fmtp_AudioParamsDef := {cr_AMR_ModeChangeCapability, cr_AMR_MaxRed, *}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_EVS_Fmtp_AudioParamsDef := {cr_AMR_MaxRed, *}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ template (value) SDP_attribute_fmtp_format_specific_params cs_AMR_Fmtp_DefaultParameters := cs_Fmtp_ParamList(cs_Fmtp_AudioParamsDef); /* @sic R5w140113, R5w140009: replaces tsc_AMR_Fmtp_DefaultParameters_TX sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT)*/ + template (present) SDP_attribute_fmtp_format_specific_params cr_AMR_Fmtp_DefaultParameters := cr_Fmtp_ParamList(cr_Fmtp_AudioParamsDef); /* @sic R5w140113, R5w140009: replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ - @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SDP_attribute_fmtp_format_specific_params cr_EVS_Fmtp_DefaultParameters := cr_Fmtp_ParamList(cr_EVS_Fmtp_AudioParamsDef); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ // video - format specific parameters - const charstring tsc_IMS_Video_Fmtp_ProfileLevelId_Def := "42e00c"; - template (value) GenericParam cs_Video_Fmtp_ProfileLevelId := cs_GenericParam("profile-level-id", tsc_IMS_Video_Fmtp_ProfileLevelId_Def); - template (present) GenericParam cr_Video_Fmtp_ProfileLevelId(template (present) charstring p_ProfileLevelId) := cr_GenericParam("profile-level-id", p_ProfileLevelId); /* @sic R5-144595 sic@ */ - template (value) GenericParam cs_Video_Fmtp_SpropParameterSets := cs_GenericParam("sprop-parameter-sets", "J0LgDJWgUH6Af1A=,KM46gA=="); - template (present) GenericParam cr_Video_Fmtp_SpropParameterSets := f_GenericParam_AsTX(cs_Video_Fmtp_SpropParameterSets); - template (value) GenericParam cs_Video_Fmtp_PacketizationMode := cs_GenericParam("packetization-mode", "0"); - template (present) GenericParam cr_Video_Fmtp_PacketizationMode := f_GenericParam_AsTX(cs_Video_Fmtp_PacketizationMode); - template (value) SemicolonParam_List cs_Fmtp_VideoParamsDef := {cs_Video_Fmtp_ProfileLevelId, cs_Video_Fmtp_SpropParameterSets}; - template (present) SemicolonParam_List cr_Fmtp_VideoParamsDef := {cr_Video_Fmtp_ProfileLevelId(?), cr_Video_Fmtp_SpropParameterSets, *}; - template (value) SemicolonParam_List cs_Fmtp_VideoParamsWithPacketizationMode := {cs_Video_Fmtp_PacketizationMode, cs_Video_Fmtp_ProfileLevelId, cs_Video_Fmtp_SpropParameterSets}; - template (present) SemicolonParam_List cr_Fmtp_VideoParamsWithPacketizationMode := {cr_Video_Fmtp_PacketizationMode, cr_Video_Fmtp_ProfileLevelId(tsc_IMS_Video_Fmtp_ProfileLevelId_Def), cr_Video_Fmtp_SpropParameterSets, *}; - template (present) SDP_attribute_fmtp_format_specific_params cr_Video_Fmtp_DefaultParameters := cr_Fmtp_ParamList(cr_Fmtp_VideoParamsDef); + const charstring tsc_IMS_Video_Fmtp_ProfileLevelId_Def := "42e00c"; /* @status APPROVED (IMS) */ + const charstring tsc_IMS_Video_Fmtp_SpropParameterSets_Def := "J0LgDJWgUH6Af1A=,KM46gA=="; /* @status APPROVED (IMS) */ + const charstring tsc_IMS_Video_Fmtp_PacketizationMode_Def := "0"; /* @status APPROVED (IMS) */ - const charstring tsc_SDP_FmtAudio := "97"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - const charstring tsc_SDP_FmtVideo := "98"; + template (value) GenericParam cs_Video_Fmtp_ProfileLevelId(charstring p_Value := tsc_IMS_Video_Fmtp_ProfileLevelId_Def) := cs_GenericParam("profile-level-id", p_Value); /* @status APPROVED (IMS) */ + template (present) GenericParam cr_Video_Fmtp_ProfileLevelId(template (present) charstring p_Value := ?) := cr_GenericParam("profile-level-id", p_Value); /* @sic R5-144595 sic@ + @status APPROVED (IMS)*/ + template (value) GenericParam cs_Video_Fmtp_SpropParameterSets(charstring p_Value := tsc_IMS_Video_Fmtp_SpropParameterSets_Def) := cs_GenericParam("sprop-parameter-sets", p_Value); /* @status APPROVED (IMS) */ + + template (value) GenericParam cs_Video_Fmtp_PacketizationMode(charstring p_Value := tsc_IMS_Video_Fmtp_PacketizationMode_Def) := cs_GenericParam("packetization-mode", p_Value); /* @status APPROVED (IMS) */ + template (present) GenericParam cr_Video_Fmtp_PacketizationMode(template (present) charstring p_Value := ?) := cr_GenericParam("packetization-mode", p_Value); /* @status APPROVED (IMS) */ + + template (value) SemicolonParam_List cs_Fmtp_VideoParamsDef := {cs_Video_Fmtp_PacketizationMode, cs_Video_Fmtp_ProfileLevelId, cs_Video_Fmtp_SpropParameterSets}; /* @status APPROVED (IMS) */ + + template (present) SemicolonParam_List cr_Fmtp_VideoParamsMO_Def := + { /* @status APPROVED (IMS) + @sic R5-150703: any ProfileLevelId; all other parameters are optional sic@ */ + cr_Video_Fmtp_ProfileLevelId, + * + }; + + template (present) SemicolonParam_List cr_Fmtp_VideoParamsMT_Def := + { /* @status APPROVED (IMS) */ + /* @sic R5s141329 - MCC160 implementation sic@ + @sic R5-150703: any ProfileLevelId; SpropParameterSets not mandatory sic@ */ + cr_Video_Fmtp_PacketizationMode(tsc_IMS_Video_Fmtp_PacketizationMode_Def), + cr_Video_Fmtp_ProfileLevelId, + * + }; + + template (present) SDP_attribute_fmtp_format_specific_params cr_Video_Fmtp_DefaultParametersMO := cr_Fmtp_ParamList(cr_Fmtp_VideoParamsMO_Def); /* @status APPROVED (IMS) */ + template (present) SDP_attribute_fmtp_format_specific_params cr_Video_Fmtp_DefaultParametersMT := cr_Fmtp_ParamList(cr_Fmtp_VideoParamsMT_Def); /* @status APPROVED (IMS) */ - const charstring tsc_SDP_SessionId := "1111111111"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_SDP_SessionVersion1 := "1111111111"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_SDP_SessionVersion2 := "1111111112"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + const charstring tsc_SDP_FmtAudio := "97"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + const charstring tsc_SDP_FmtVideo := "98"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ template (present) charstring cr_SDP_AnyMediaFormatDescr := pattern "[0-9]#(2,3)"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ @@ -108,7 +151,7 @@ module IMS_SDP_Templates { * @param p_SDP_Attribute * @param p_Condition (default value: true) * @return template (omit) SDP_attribute_list - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_SDP_Attributes_Add_TX(template (omit) SDP_attribute_list p_SDP_Attribute_List, template (omit) SDP_attribute p_SDP_Attribute, @@ -127,6 +170,73 @@ module IMS_SDP_Templates { } return v_SDP_Attribute_List; } + + /* + * @desc concatinate list of SDP attributes + * @param p_SDP_Attribute_List1 + * @param p_SDP_Attribute_List2 + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_Attributes_Concat_TX(template (omit) SDP_attribute_list p_SDP_Attribute_List1, + template (omit) SDP_attribute_list p_SDP_Attribute_List2) return template (omit) SDP_attribute_list + { + var template (omit) SDP_attribute_list v_SDP_Attribute_List := p_SDP_Attribute_List1; + var SDP_attribute_list v_SDP_Attribute_List2; + var integer n; + var integer k; + + if (isvalue(p_SDP_Attribute_List2)) { + v_SDP_Attribute_List2 := valueof(p_SDP_Attribute_List2); + n := lengthof(v_SDP_Attribute_List2); + for (k:=0; k < n; k:=k+1) { + v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, v_SDP_Attribute_List2[k]); + } + } + return v_SDP_Attribute_List; + } + + /* + * @desc add attribute to list of attributes + * @param p_SDP_Attribute_List + * @param p_SDP_Attribute + * @param p_Condition (default value: true) + * @return template (present) SDP_attribute_list + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_Attributes_Add_RX(template (present) SDP_attribute_list p_SDP_Attribute_List, + template (present) SDP_attribute p_SDP_Attribute, + boolean p_Condition := true) return template (present) SDP_attribute_list + { + var template (present) SDP_attribute_list v_SDP_Attribute_List := p_SDP_Attribute_List; + var integer i := 0; + + if (p_Condition) { + i := lengthof(v_SDP_Attribute_List); + v_SDP_Attribute_List[i] := p_SDP_Attribute; + } + return v_SDP_Attribute_List; + } + + /* + * @desc concatinate list of SDP attributes + * @param p_SDP_Attribute_List1 + * @param p_SDP_Attribute_List2 + * @return template (present) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_Attributes_Concat_RX(template (present) SDP_attribute_list p_SDP_Attribute_List1, + template (present) SDP_attribute_list p_SDP_Attribute_List2) return template (present) SDP_attribute_list + { + var template (present) SDP_attribute_list v_SDP_Attribute_List := p_SDP_Attribute_List1; + var integer i := lengthof(p_SDP_Attribute_List1); + var integer k; + + for (k:=0; k < lengthof(p_SDP_Attribute_List2); k:=k+1) { + v_SDP_Attribute_List[i+k] := p_SDP_Attribute_List2[k]; + } + return v_SDP_Attribute_List; + } /* * @desc exchange attribute in given attribute list @@ -134,7 +244,7 @@ module IMS_SDP_Templates { * @param p_AttributeToBeChanged * @param p_NewAttribute * @return template (omit) SDP_attribute_list - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_SDP_ExchangeAttribute(template (omit) SDP_attribute_list p_AttributeList, template (present) SDP_attribute p_AttributeToBeChanged, @@ -159,7 +269,7 @@ module IMS_SDP_Templates { * @param p_AttributeList * @param p_Attribute * @return template (omit) SDP_attribute - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_SDP_AttributeList_GetAttribute(template (omit) SDP_attribute_list p_AttributeList, template (present) SDP_attribute p_Attribute) return template (omit) SDP_attribute @@ -198,6 +308,26 @@ module IMS_SDP_Templates { return v_Result; } + /* + * @desc check all media streams to have the given attribute + * @param p_Media_Desc_List + * @param p_Attribute + * @return boolean + * @status APPROVED (IMS) + */ + function f_SDP_CheckMediaListAttributes(template (value) SDP_media_desc_list p_Media_Desc_List, + template (present) SDP_attribute p_Attribute) return boolean + { + var integer i; + + for (i := 0; i < lengthof(p_Media_Desc_List); i:=i+1) { + if (not f_SDP_AttributeList_CheckAttribute(p_Media_Desc_List[i].attributes, p_Attribute)) { + return false; + } + } + return true; + } + /* * @desc get a specific fmt out of the fmts list in a media description of the initial request (in general INVITE) of the dialog; * when p_RtpmapCodecInfo == omit => rtpmap attributes are not checked @@ -246,7 +376,7 @@ module IMS_SDP_Templates { * @param p_SDP_Media_Desc * @param p_FmtpParameters (default value: cr_AMR_Fmtp_DefaultParameters) * @return charstring - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_SDP_MediaDescr_GetAMR_8000_1(SDP_media_desc p_SDP_Media_Desc, template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_AMR_Fmtp_DefaultParameters) return charstring @@ -254,6 +384,33 @@ module IMS_SDP_Templates { return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_AMR_8000, p_FmtpParameters); } + /* + * @desc get AMR-WB/16000 audio codec + * @param p_SDP_Media_Desc + * @param p_FmtpParameters (default value: cr_AMR_Fmtp_DefaultParameters) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_SDP_MediaDescr_GetAMR_16000_1(SDP_media_desc p_SDP_Media_Desc, + template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_AMR_Fmtp_DefaultParameters) return charstring + { /* @sic R5w140113, R5w140009: cr_AMR_Fmtp_DefaultParameters replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ */ + return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_AMR_16000, p_FmtpParameters); + } + + /* + * @desc get EVS audio codec + * @param p_SDP_Media_Desc + * @param p_FmtpParameters (default value: cr_EVS_Fmtp_DefaultParameters) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_SDP_MediaDescr_GetEVS_16000_1(SDP_media_desc p_SDP_Media_Desc, + template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_EVS_Fmtp_DefaultParameters) + return charstring + { + return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_EVS_16000, p_FmtpParameters); + } + /* * @desc return (first) AMR of given media description * @param p_SDP_Media_Desc @@ -265,8 +422,15 @@ module IMS_SDP_Templates { return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_AMR_AnyCodec); } + /* + * @desc return video codec of given media description + * @param p_SDP_Media_Desc + * @param p_FmtpParameters (default value: cr_Video_Fmtp_DefaultParametersMO) + * @return charstring + * @status APPROVED (IMS) + */ function f_SDP_MediaDescr_GetH264_90000(SDP_media_desc p_SDP_Media_Desc, - template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_Video_Fmtp_DefaultParameters) return charstring + template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_Video_Fmtp_DefaultParametersMO) return charstring { /* get default video codec */ return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_H264_90000, p_FmtpParameters); } @@ -278,7 +442,7 @@ module IMS_SDP_Templates { * @param p_BandwidthList * @param p_Modifier * @return integer - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_SDP_BandwidthList_GetBandwidth(SDP_bandwidth_list p_BandwidthList, charstring p_Modifier) return integer @@ -294,6 +458,33 @@ module IMS_SDP_Templates { return 0; } + //---------------------------------------------------------------------------- + /* + * @desc return BandwidthList: if the given SDP_media_field refers to a port number of 0 (=> release of the media stream) the UE does not need to provide and bandwidth information + * @param p_SDP_Media_Field + * @param p_AS + * @param p_RS + * @param p_RR + * @return template SDP_bandwidth_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_SDP_Media_Desc_BandwidthList(template (present) SDP_media_field p_SDP_Media_Field, + template (present) integer p_AS := ?, + template (present) integer p_RS := ?, + template (present) integer p_RR := ?) return template SDP_bandwidth_list + { /* @sic R5s150704, R5s150751 - additional changes: new parameters p_AS, p_RS, p_RR sic@ */ + var template SDP_bandwidth_list v_BandwidthList := cr_SDP_Bandwidth_List_Media(p_AS, p_RS, p_RR); + var integer v_PortNumber; + + if (isvalue(p_SDP_Media_Field.ports.port_number)) { + v_PortNumber := valueof(p_SDP_Media_Field.ports.port_number); + if (v_PortNumber == 0) { // => release of the media stream + v_BandwidthList := *; + } + } + return v_BandwidthList; + } + //---------------------------------------------------------------------------- template (value) SDP_attribute cs_SDP_Attribute_rtpmap(charstring p_PayloadType, @@ -342,7 +533,7 @@ module IMS_SDP_Templates { }; template (present) SDP_attribute cr_SDP_Attribute_ptime(template (present) charstring p_Value := "20") := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ ptime := { attr_value := p_Value } @@ -357,7 +548,7 @@ module IMS_SDP_Templates { }; template (present) SDP_attribute cr_SDP_Attribute_maxptime(template (present) charstring p_Value := "240") := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ /* @sic R5w140113, R5w140009 sic@ */ maxptime := { attr_value := p_Value @@ -380,12 +571,21 @@ module IMS_SDP_Templates { }; template (value) SDP_attribute cs_SDP_Attribute_inactive := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ inactive := {} }; + template (value) SDP_attribute cs_SDP_Attribute_content(template (value) charstring p_Value) := + { /* @status APPROVED (IMS) */ + content := { + { + p_Value + } + } + }; + template (present) SDP_attribute cr_SDP_Attribute_sendrecv := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ sendrecv := {} // @sic R5s130586 change 2 sic@ }; @@ -400,17 +600,19 @@ module IMS_SDP_Templates { }; template (present) SDP_attribute cr_SDP_Attribute_inactive := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ inactive := {} // @sic R5s130586 change 1 sic@ }; template (present) SDP_attribute cr_SDP_Attribute_AnySendRecvMode := (cr_SDP_Attribute_sendrecv, cr_SDP_Attribute_recvonly, cr_SDP_Attribute_sendonly, cr_SDP_Attribute_inactive); /* @status APPROVED (IMS) */ + //---------------------------------------------------------------------------- + // precondition attributes //---------------------------------------------------------------------------- template (value) SDP_attribute cs_SDP_Attribute_conf_qos(charstring p_StatusType := c_remote, charstring p_Direction := c_sendrecv) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ conf := { preconditionType := c_qos, statusType := p_StatusType, @@ -430,7 +632,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_curr_qos(charstring p_StatusType, charstring p_Direction := c_none) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ curr := { preconditionType := c_qos, statusType := p_StatusType, @@ -440,7 +642,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_curr_qos(template (present) charstring p_StatusType, template (present) charstring p_Direction := c_none) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ curr := { preconditionType := c_qos, statusType := p_StatusType, @@ -451,7 +653,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_des_qos(charstring p_Strength, charstring p_StatusType, charstring p_Direction := c_sendrecv) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ des := { preconditionType := c_qos, strength := p_Strength, // @sic R5s120530 change 3.4 sic@ @@ -463,7 +665,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_des_qos(template (present) charstring p_Strength, template (present) charstring p_StatusType, template (present) charstring p_Direction := c_sendrecv) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ des := { preconditionType := c_qos, strength := p_Strength, @@ -472,9 +674,120 @@ module IMS_SDP_Templates { } }; + template (value) SDP_attribute_list cs_SDP_PrecondionAttributes(charstring p_DirectionLocal, + charstring p_DirectionRemote, + charstring p_StrengthLocal := c_mandatory, + charstring p_StrengthRemote := c_mandatory) := + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + cs_SDP_Attribute_curr_qos(c_local, p_DirectionLocal), + cs_SDP_Attribute_curr_qos(c_remote, p_DirectionRemote), + cs_SDP_Attribute_des_qos(p_StrengthLocal, c_local), + cs_SDP_Attribute_des_qos(p_StrengthRemote, c_remote) + }; + + template (present) SDP_attribute_list cr_SDP_PrecondionAttributes(template (present) charstring p_DirectionLocal, + template (present) charstring p_DirectionRemote, + template (present) charstring p_StrengthLocal := c_mandatory, + template (present) charstring p_StrengthRemote := c_mandatory) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + cr_SDP_Attribute_curr_qos(c_local, p_DirectionLocal), + cr_SDP_Attribute_curr_qos(c_remote, p_DirectionRemote), + cr_SDP_Attribute_des_qos(p_StrengthLocal, c_local), + cr_SDP_Attribute_des_qos(p_StrengthRemote, c_remote) + }; + + /* + * @desc returns default attributes for audio (at least rtpmap, fmtp) + * @param p_FmtAudio + * @param p_AddMediaAttributes (default value: omit) + * @return template (value) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_AudioCommon(charstring p_FmtAudio, + template (omit) SDP_attribute_list p_AddMediaAttributes := omit) return template (value) SDP_attribute_list + { + var template (value) SDP_attribute_list v_MediaAttributes := { + cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_AMR_8000), + cs_SDP_Attribute_fmtp(p_FmtAudio, cs_AMR_Fmtp_DefaultParameters) + }; + return valueof(f_SDP_Attributes_Concat_TX(v_MediaAttributes, p_AddMediaAttributes)); + } + + /* + * @desc returns default attributes for EVS audio (at least rtpmap, fmtp) + * @param p_FmtAudio + * @param p_FmtpParameterList (default value: cs_EVS_Fmtp_AudioParamsDef) + * @param p_AddMediaAttributes (default value: omit) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_EVS_AudioCommon(charstring p_FmtAudio, + template (value) SemicolonParam_List p_FmtpParameterList := cs_EVS_Fmtp_AudioParamsDef, + template (omit) SDP_attribute_list p_AddMediaAttributes := omit) return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_MediaAttributes; + var template (value) SDP_attribute_fmtp_format_specific_params v_FmtpParameters := cs_Fmtp_ParamList(p_FmtpParameterList); + + v_MediaAttributes:= { + cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_EVS_16000), + cs_SDP_Attribute_fmtp(p_FmtAudio, v_FmtpParameters) + }; + return f_SDP_Attributes_Concat_TX(v_MediaAttributes, p_AddMediaAttributes); + } + + /* + * @desc returns default media attributes for audio (rtpmap, fmtp, ptime, maxptime) + * @param p_FmtAudio + * @param p_FmtpParameterList (default value: cs_EVS_Fmtp_AudioParamsDef) + * @param p_FmtpParameters (default value: cs_EVS_Fmtp_DefaultParameters) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_AudioDef(charstring p_FmtAudio) return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_AddMediaAttributes := {cs_SDP_Attribute_ptime, cs_SDP_Attribute_maxptime}; + return f_SDP_MediaAttributes_AudioCommon(p_FmtAudio, v_AddMediaAttributes); + } + + /* + * @desc returns default media attributes for audio (rtpmap, fmtp, ptime, maxptime) + * @param p_FmtAudio + * @param p_FmtpParameters (default value: cs_EVS_Fmtp_DefaultParameters) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_SDP_MediaAttributes_EVS_AudioDef(charstring p_FmtAudio, + template (value) SemicolonParam_List p_FmtpParameterList := cs_EVS_Fmtp_AudioParamsDef) return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_AddMediaAttributes := {cs_SDP_Attribute_ptime, cs_SDP_Attribute_maxptime}; + return f_SDP_MediaAttributes_EVS_AudioCommon(p_FmtAudio, p_FmtpParameterList, v_AddMediaAttributes); + } + + /* + * @desc returns default attributes for audio (at least rtpmap, fmtp) + * @param p_FmtAudio + * @param p_AddMediaAttributes (default value: omit) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_AMR_WB_AudioCommon(charstring p_FmtAudio, + template (omit) SDP_attribute_list p_AddMediaAttributes := omit) + return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_MediaAttributes := { + cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_AMR_16000), + cs_SDP_Attribute_fmtp(p_FmtAudio, cs_AMR_Fmtp_DefaultParameters) + }; + return f_SDP_Attributes_Concat_TX(v_MediaAttributes, p_AddMediaAttributes); + } + + //---------------------------------------------------------------------------- + // other attributes + //---------------------------------------------------------------------------- + template (value) SDP_attribute cs_SDP_Attribute_ecn_capable_rtp(charstring p_InitVal, charstring p_ParmVal) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ ecn_capable_rtp := { init_list := { p_InitVal }, parm_list := { p_ParmVal } @@ -483,7 +796,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_rtcp_fb(charstring p_Rtcp_fb_pt, charstring p_Rtcp_fb_val) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ rtcp_fb := { rtcp_fb_pt := p_Rtcp_fb_pt, rtcp_fb_val := p_Rtcp_fb_val @@ -491,7 +804,7 @@ module IMS_SDP_Templates { }; template (value) SDP_attribute cs_SDP_Attribute_rtcp_xr(charstring p_XR_Format) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ rtcp_xr := { xr_format_list := { p_XR_Format @@ -500,7 +813,7 @@ module IMS_SDP_Templates { }; template (value) SDP_attribute cs_SDP_Attribute_3ge2ae(charstring p_Indicator) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ e2ae := { indicator := p_Indicator } @@ -509,7 +822,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_crypto(charstring p_Tag, charstring p_Suite, charstring p_KeyParams) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ crypto := { tag := p_Tag, crypto_suite := p_Suite, @@ -529,7 +842,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_pcfg(integer p_ConfigNumber, charstring p_PotCfg) := - { + { /* @status APPROVED (IMS) */ pcfg := { config_number := p_ConfigNumber, pot_cfg_list := { p_PotCfg, * } @@ -538,7 +851,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_tcap(integer p_TrprCapNumber, charstring p_Proto) := - { + { /* @status APPROVED (IMS) */ tcap := { trpr_cap_num := p_TrprCapNumber, proto_list := { p_Proto, * } @@ -547,7 +860,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_acfg(integer p_ConfigNumber, charstring p_SelCfg) := - { + { /* @status APPROVED (IMS) */ acfg := { config_number := p_ConfigNumber, sel_cfg_list := { p_SelCfg } @@ -583,7 +896,7 @@ module IMS_SDP_Templates { template (present) SDP_bandwidth_list cr_SDP_Bandwidth_List_Media(template (present) integer p_AS := ?, template (present) integer p_RS := ?, template (present) integer p_RR := ?) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ cr_SDP_Bandwidth("AS", p_AS), cr_SDP_Bandwidth("RS", p_RS), cr_SDP_Bandwidth("RR", p_RR) @@ -669,7 +982,9 @@ module IMS_SDP_Templates { template (value) SDP_media_field cs_SDP_Media_Video(charstring p_Fmt, integer p_LocalPort := tsc_IMS_MediaPort_M2, - charstring p_Transport := c_rtpAvp) := + charstring p_Transport := c_rtpAvpf) := + /* @status APPROVED (IMS) */ + /* @sic R5s141329 change 2.1 and R5s141336 change 2.3: c_rtpAvpf instead of c_rtpAvp as default value for p_Transport sic@ */ cs_SDP_Media(c_video, p_LocalPort, p_Transport, {p_Fmt}); @@ -703,16 +1018,21 @@ module IMS_SDP_Templates { template (present) charstring p_Fmt2 := cr_SDP_AnyMediaFormatDescr) := cr_SDP_Media(c_text, -, -, cr_SDP_FmtList_AtLeastTwo(p_Fmt1, p_Fmt2)); - template (present) SDP_media_field cr_SDP_Media_Video(template (present) charstring p_Fmt := cr_SDP_AnyMediaFormatDescr) := - cr_SDP_Media(c_video, -, -, cr_SDP_FmtList_AtLeastOne(p_Fmt)); + template (present) SDP_media_field cr_SDP_Media_Video(template (present) charstring p_Fmt := cr_SDP_AnyMediaFormatDescr, + template (present) charstring p_Transport := c_rtpAvpf) := + /* @status APPROVED (IMS) */ + /* @sic R5s141221 change 2.3: p_Transport sic@ */ + /* @sic R5s141329 change 1 and R5s141336 change 1: c_rtpAvpf as default value for p_Transport sic@ */ + cr_SDP_Media(c_video, -, p_Transport, cr_SDP_FmtList_AtLeastOne(p_Fmt)); //---------------------------------------------------------------------------- - template (value) SDP_Origin cs_SDP_Origin(charstring p_SessionId := tsc_SDP_SessionId, - charstring p_SessionVersion := tsc_SDP_SessionVersion1, + template (value) SDP_Origin cs_SDP_Origin(charstring p_SessionId, + charstring p_SessionVersion, template (value) charstring p_AddrType, template (value) charstring p_IPAddr) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @sic R5-150707: new parameter p_SessionId sic@ */ user_name := "-", session_id := p_SessionId, session_version := p_SessionVersion, @@ -721,8 +1041,8 @@ module IMS_SDP_Templates { addr := p_IPAddr }; - template (present) SDP_Origin cr_SDP_Origin(template (present) charstring p_AddrType, - template (present) charstring p_IPAddr) := + template (present) SDP_Origin cr_SDP_Origin(template (present) charstring p_AddrType := ?, + template (present) charstring p_IPAddr := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ user_name := ?, session_id := ?, @@ -761,8 +1081,8 @@ module IMS_SDP_Templates { //============================================================================ template (value) SDP_media_desc cs_SDP_Media_Desc(template (value) SDP_media_field p_SDP_Media_Field, - template (value) SDP_bandwidth_list p_SDP_Bandwidth_List, - template (omit) SDP_attribute_list p_SDP_Attribute_List, + template (omit) SDP_bandwidth_list p_SDP_Bandwidth_List := omit, + template (omit) SDP_attribute_list p_SDP_Attribute_List := omit, template (omit) SDP_connection_list p_SDP_Connection_List := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ media_field := p_SDP_Media_Field, @@ -790,16 +1110,16 @@ module IMS_SDP_Templates { template (value) SDP_Message cs_SDP_Message_Common(template (value) SDP_Origin p_SDP_Origin, template (omit) SDP_connection p_SDP_Connection, - charstring p_Sessionname := tsc_SDP_NoSessionname, - template (value) SDP_bandwidth_list p_Bandwidth, + template (omit) SDP_bandwidth_list p_Bandwidth, template (value) SDP_time p_Time := cs_SDP_Time_0_0, template (omit) SDP_media_desc_list p_SDP_Media_Desc_List := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ /* @sic R5s130510 change 4 - additional change sic@ */ /* @sic R5-144700: default value removed for p_Bandwidth sic@ */ + /* @sic R5-150386: there is no reason anymore to provide a parameter for session_name anymore sic@ */ protocol_version := 0, // v-line origin := p_SDP_Origin, // o-line - session_name := p_Sessionname, // s-line + session_name := tsc_SDP_NoSessionname, // s-line information := omit, uri := omit, emails := omit, @@ -813,28 +1133,17 @@ module IMS_SDP_Templates { media_list := p_SDP_Media_Desc_List }; - template (value) SDP_Message cs_SDP_Message_Def(template (value) SDP_Origin p_SDP_Origin, - template (omit) SDP_connection p_SDP_Connection, - charstring p_Sessionname := tsc_SDP_NoSessionname, - integer p_BandwidthAS := 37, - template (value) SDP_media_desc p_SDP_Media_Desc) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - /* @sic R5s130510 change 4 - additional change sic@ */ - /* @sic R5-144700: new parameter p_BandwidthAS set to 37 per default sic@ */ - cs_SDP_Message_Common(p_SDP_Origin, p_SDP_Connection, p_Sessionname, cs_SDP_Bandwidth_List_AS(p_BandwidthAS), -, { p_SDP_Media_Desc }); - - template (present) SDP_Message cr_SDP_Message_Common(template (present) charstring p_AddrType := ?, template (present) charstring p_IPAddrOrigin := ?, template (present) charstring p_IPAddrConnection := ?, - template (present) charstring p_Sessionname := ?, // @sic R5-130751 sic@ template SDP_bandwidth_list p_Bandwidth := cr_SDP_Bandwidth_List_AS, template (present) SDP_time p_Time := cr_SDP_Time_0_0, template SDP_media_desc_list p_SDP_Media_Desc_List := *) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @sic R5-150386: there is no reason anymore to provide a parameter for session_name anymore sic@ */ protocol_version := 0, // v-line origin := cr_SDP_Origin(p_AddrType, p_IPAddrOrigin), // o-line - session_name := p_Sessionname, // s-line + session_name := ?, // s-line information := omit, uri := omit, emails := omit, @@ -848,18 +1157,4 @@ module IMS_SDP_Templates { media_list := p_SDP_Media_Desc_List }; - template (present) SDP_Message cr_SDP_Message_Def(template (present) charstring p_AddrType := ?, - template (present) charstring p_IPAddrOrigin := ?, - template (present) charstring p_IPAddrConnection := ?, - template (present) SDP_media_desc p_SDP_Media_Desc) := - /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - cr_SDP_Message_Common(p_AddrType, p_IPAddrOrigin, p_IPAddrConnection, -, -, -, { p_SDP_Media_Desc }); - - template (present) SDP_Message cr_SDP_Message_AnySession(template (present) charstring p_AddrType := ?, - template (present) charstring p_IPAddrOrigin := ?, - template (present) charstring p_IPAddrConnection := ?, - template (present) SDP_media_desc p_SDP_Media_Desc) := - /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - cr_SDP_Message_Common(p_AddrType, p_IPAddrOrigin, p_IPAddrConnection, -, -, cr_SDP_Time_Any, { p_SDP_Media_Desc }); - } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_SIP_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SIP_Templates.ttcn similarity index 82% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_SIP_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_SIP_Templates.ttcn index 072b383..b782402 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_SIP_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SIP_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 12:36:16 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12204 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_SIP_Templates { @@ -16,44 +16,77 @@ module IMS_SIP_Templates { import from IMS_CommonDefs all; import from IMS_CommonTemplates all; import from IP_ASP_TypeDefs all; + import from Parameters all; import from LibSip_Common all; import from LibSip_MessageBodyTypes all; import from LibSip_SIPTypesAndValues all; const charstring tsc_SEC_MECHANISM := "ipsec-3gpp"; /* Security Mechanism name - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ // Securiity algorithms for IPSEC - const charstring tsc_HMAC_MD5_96 := "hmac-md5-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_HMAC_SHA_1_96 := "hmac-sha-1-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_AKAv1_MD5 := "AKAv1-MD5"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_HMAC_MD5_96 := "hmac-md5-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const charstring tsc_HMAC_SHA_1_96 := "hmac-sha-1-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const charstring tsc_AKAv1_MD5 := "AKAv1-MD5"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const charstring tsc_HTTP_MD5 := "MD5"; /* @status APPROVED (IMS) */ - const octetstring tsc_COLON_HEX := '3A'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const octetstring tsc_COLON_HEX := '3A'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) SemicolonParam_List cr_SemicolonParam_List_WithAnyTag := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const integer tsc_MESSAGE_CSeqValue := 42; /* @status APPROVED (IMS, LTE_A) */ + + /* + * @desc generate URN acc. to rules given by RFC 7254 + * @param p_IMEI (default value: px_IMEI_Def) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_SIP_InstanceId(hexstring p_IMEI := px_IMEI_Def) return charstring + { + var charstring v_ImeiString := hex2str(p_IMEI); + var charstring v_InstanceId := ""; + + return v_InstanceId; + } + + template (present) GenericParam cr_FeatureParam_3gpp_icsi_ref := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_GenericParam_Common(tsc_IMS_FeatureParamId_3gpp_icsi_ref, cr_GenValueQuoted(cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref)); // @sic R5s120530 change 3.1, R5w140111, R5-142247 sic@ + + template (present) GenericParam cr_FeatureParam_Video := cr_GenericParam_Common("video", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) SemicolonParam_List cr_SemicolonParam_List_WithAnyTag := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParam(c_tagId, *); - template (present) SemicolonParam_List cr_ExpiresInContactParams(template (present) charstring p_Expires := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_ExpiresInContactParams(template (present) charstring p_Expires := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParamWithValue("expires", p_Expires); - template (present) SemicolonParam_List cr_CPInstanceInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_SemicolonParam_List_OneSpecificParamWithValue("c-p-instance", "sip.instance=" & tsc_IMS_UEInstanceId); + template (present) SemicolonParam_List cr_CPInstanceInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamWithValue("+sip.instance", f_SIP_InstanceId()); /* @sic R5s141212, R5s150446 sic@ */ template (present) SemicolonParam_List cr_SMSParamInContactParams := /* @sic R5s120530 change 2.1 sic@ - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParamNoValue("+g.3gpp.smsip"); - template (present) SemicolonParam_List cr_VideoInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_SemicolonParam_List_OneSpecificParamNoValue("video"); + template (present) SemicolonParam_List cr_VideoInContactParams := superset(cr_FeatureParam_Video); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) SemicolonParam_List cr_UriParameters_lr := superset(cr_GenericParam_Common("lr", omit)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SemicolonParam_List cr_UriParameters_gruu := superset(cr_GenericParam_Common("gr", cr_GenValueQuoted(tsc_IMS_PubGRUU_UriParameterValue))); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + - template (present) SemicolonParam_List cr_FeatureParam_3gpp_icsi_ref := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_SemicolonParam_List_OneSpecificParam(tsc_IMS_FeatureParamId_3gpp_icsi_ref, cr_GenValueQuoted(cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref)); // @sic R5s120530 change 3.1, R5w140111, R5-142247 sic@ + template (present) SemicolonParam_List cr_FeatureParamList_3gpp_icsi_ref := superset(cr_FeatureParam_3gpp_icsi_ref); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) SemicolonParam_List cr_SigCompParam := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_RSRVCCInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamNoValue("+g.3gpp.cs2ps-srvcc"); + + template (present) SemicolonParam_List cr_RSRVCCAlertInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamNoValue("+g.3gpp.cs2ps-srvcc-alerting"); + + template (present) SemicolonParam_List cr_AccessTypeInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamWithValue("+g.3gpp.accesstype", "cellular2"); + + template (present) SemicolonParam_List cr_SigCompParam := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParamWithValue("comp", "sigcomp"); template (present) SemicolonParam_List cr_SecurityMechParams_IPsec(charstring p_Algorithm) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_GenericParam("alg", p_Algorithm), cr_GenericParam("spi-c", ?), cr_GenericParam("spi-s", ?), @@ -62,43 +95,30 @@ module IMS_SIP_Templates { * }; - template (value) GenericParam cs_SigCompParam := cs_GenericParam("comp", "sigcomp"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_SigCompParam := cs_GenericParam("comp", "sigcomp"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //---------------------------------------------------------------------------- + const charstring c_norefersub := "norefersub"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const OptionTag_List tsc_OptionTagList_norefersub := {c_norefersub}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const OptionTag_List tsc_OptionTagList_100rel := {c_tag100rel}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ -// const OptionTag_List tsc_OptionTagList_geolocation := {"geolocation"}; /* @status APPROVED (IMS, LTE) */ - const OptionTag_List tsc_OptionTagList_precondition := {c_tagPrecond}; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - const OptionTag_List tsc_OptionTagList_sec_agree := {"sec-agree"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + // const OptionTag_List tsc_OptionTagList_geolocation := {"geolocation"}; /* @status APPROVED (IMS, LTE) */ + const OptionTag_List tsc_OptionTagList_precondition := {c_tagPrecond}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const OptionTag_List tsc_OptionTagList_sec_agree := {"sec-agree"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const OptionTag_List tsc_OptionTagList_Empty := {}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - + /* * @desc generate receive template expection all given option tags and any further ones * @param p_RequestedTags * @return template (present) OptionTag_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_OptionTagListRX(OptionTag_List p_RequestedTags) return template (present) OptionTag_List - { + { /* @sic R5s141020 - MCC160 change: workarounds for "superset(all from p_TagList)" removed sic@ */ var template (present) OptionTag_List v_TagList; - // v_TagList := superset(all from p_TagList); // this is the solution acc. to V4.5.1 of the core language ... - // ... WORKAROUND: - - select (lengthof(p_RequestedTags)) { -/* case (1) { v_TagList := superset(p_RequestedTags[0]); } */ -/* case (2) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1]); } */ -/* case (3) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2]); } */ -/* case (4) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3]); } */ -/* case (4) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3], p_RequestedTags[4]); } */ - // workaround: - case (1) { v_TagList := {p_RequestedTags[0], *}; } - case (2) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], *}; } - case (3) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], *}; } - case (4) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3], *}; } - case (4) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3], p_RequestedTags[4], *}; } - case else { FatalError(__FILE__, __LINE__, ""); } - } + v_TagList := superset(all from p_RequestedTags); // this is the solution acc. to V4.5.1 of the core language ... + return v_TagList; } @@ -111,7 +131,7 @@ module IMS_SIP_Templates { template (present) NameAddr cr_NameAddr(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: p_DisplayName - type changed from charstring to DisplayName sic@ */ displayName := p_DisplayName, addrSpec := p_SipUrl @@ -120,7 +140,7 @@ module IMS_SIP_Templates { template (present) NameAddr cr_NameAddr_NoDisplayName(template (present) SipUrl p_SipUrl) := cr_NameAddr(omit, p_SipUrl); template (value) NameAddr cs_NameAddr(template (value) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ displayName := omit, addrSpec := p_SipUrl }; @@ -132,7 +152,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Accept cr_AcceptDef (charstring p_MediaRange) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := ACCEPT_E, acceptArgs := { { @@ -196,12 +216,12 @@ module IMS_SIP_Templates { template (present) Addr_Union cr_Addr_Union_NameAddr(template (present) SipUrl p_SipUrl, template DisplayName p_DisplayName := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cr_NameAddr(p_DisplayName, p_SipUrl) }; template (present) Addr_Union cr_Addr_Union_AddrSpecUnion(template (present) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ addrSpecUnion := p_SipUrl }; @@ -210,7 +230,7 @@ module IMS_SIP_Templates { * @param p_SipUrl * @param p_DisplayName (default value: *) * @return template (present) Addr_Union - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Addr_Union_RX(template (present) SipUrl p_SipUrl, template DisplayName p_DisplayName := *) return template (present) Addr_Union @@ -229,7 +249,7 @@ module IMS_SIP_Templates { * @desc get SipUrl from 'Addr_Union' union * @param p_Addr_Union * @return SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Addr_Union_GetSipUrl(template (omit) Addr_Union p_Addr_Union) return SipUrl { @@ -276,7 +296,7 @@ module IMS_SIP_Templates { charstring p_Realm, template GenValue p_Nonce := cr_GenValue_None, template GenValue p_Response := cr_GenValue_None) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: GenValue sic@ */ fieldName := AUTHORIZATION_E, body := { @@ -303,7 +323,7 @@ module IMS_SIP_Templates { charstring p_Qop := "auth", template (present) charstring p_Cnonce := ?, template (present) charstring p_Response := ?) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130794 change 2: new parameters p_Algorithm, p_Uri; renamed to cr_AuthorizationCommon sic@ */ fieldName := AUTHORIZATION_E, body := { @@ -329,20 +349,20 @@ module IMS_SIP_Templates { charstring p_Realm, charstring p_Nonce, template (present) charstring p_Nc) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130794 change 2: wrapper template sic@ */ cr_AuthorizationCommon(p_UserName, p_Realm, p_Nonce, "sip:" & p_Realm, tsc_AKAv1_MD5, p_Nc); //---------------------------------------------------------------------------- template (present) CallId cr_CallId (template (present) charstring p_CallId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CALL_ID_E, callid := p_CallId }; template (value) CallId cs_CallId (charstring p_CallId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CALL_ID_E, callid := p_CallId }; @@ -352,7 +372,7 @@ module IMS_SIP_Templates { template (present) ContactAddress cr_ContactAddress(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl, template SemicolonParam_List p_ContactParams := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s140676 Change 1 sic@ */ addressField := f_Addr_Union_RX(p_SipUrl, p_DisplayName), contactParams := p_ContactParams @@ -360,7 +380,7 @@ module IMS_SIP_Templates { template (present) Contact cr_Contact(template (present) SipUrl p_SipUrl, template SemicolonParam_List p_ContactParams := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTACT_E, contactBody := { contactAddresses := { @@ -372,7 +392,7 @@ module IMS_SIP_Templates { template (value) Contact cs_Contact(template (value) SipUrl p_SipUrl, template (omit) SemicolonParam_List p_ContactParams := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTACT_E, contactBody := { contactAddresses := { @@ -387,7 +407,7 @@ module IMS_SIP_Templates { }; template (present) Contact cr_Contact_Wildcard := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTACT_E, contactBody := { wildcard := "*" @@ -404,7 +424,7 @@ module IMS_SIP_Templates { template (value) ContentLength cs_ContentLength(integer p_Length := -1) := { // Note: The actual length shall be set by the encoder, see 34.229-3 clause 7.3.4 - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTENT_LENGTH_E, len := p_Length }; @@ -417,10 +437,10 @@ module IMS_SIP_Templates { mediaType := p_MediaType }; - template (present) ContentType cr_ContentTypeSDP := cr_ContentType("application/sdp"); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (present) ContentType cr_ContentTypeSDP := cr_ContentType("application/sdp"); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ template (value) ContentType cs_ContentType(charstring p_MediaType) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTENT_TYPE_E, mediaType := p_MediaType }; @@ -431,7 +451,7 @@ module IMS_SIP_Templates { template (present) CSeq cr_CseqDef(template (present) integer p_SeqNo, charstring p_Method) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CSEQ_E, seqNumber := p_SeqNo, method := p_Method @@ -439,7 +459,7 @@ module IMS_SIP_Templates { template (value) CSeq cs_CseqDef(template (value) integer p_SeqNo, charstring p_Method) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CSEQ_E, seqNumber := p_SeqNo, method := p_Method @@ -448,14 +468,14 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Event cr_EventDef (template (present) EventType p_EventType) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EVENT_E, eventType := p_EventType, eventParams := omit }; template (value) Event cs_EventDef (template (value) EventType p_EventType) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EVENT_E, eventType := p_EventType, eventParams := omit @@ -464,26 +484,26 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Expires cr_Expires(template (present) charstring p_DeltaSec) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EXPIRES_E, deltaSec := p_DeltaSec }; template (value) Expires cs_Expires(charstring p_DeltaSec) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EXPIRES_E, deltaSec := p_DeltaSec }; //---------------------------------------------------------------------------- - template (value) FeatureCaps cs_FeatureCaps(charstring p_FeatureCap) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) FeatureCaps cs_FeatureCaps(template (value) SemicolonParam_List p_ParamList) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := FEATURE_CAPS_E, fcValues := { { wildcard := c_WILDCARD, - fcParams := { cs_GenericParam(p_FeatureCap) } + fcParams := p_ParamList // @sic R5-145796 sic@ } } }; @@ -493,18 +513,18 @@ module IMS_SIP_Templates { template (present) From cr_From(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl, template (present) charstring p_Tag := ?) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := FROM_E, addressField := f_Addr_Union_RX(p_SipUrl, p_DisplayName), /* @sic R5s130378 change 3 sic@ */ fromParams := { cr_GenericParam(c_tagId, p_Tag), * } }; template (present) From cr_FromWithTag(template (present) SipUrl p_SipUrl, - template (present) charstring p_Tag := ?) := cr_From(*, p_SipUrl, p_Tag); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5s130256 sic@ */ + template (present) charstring p_Tag := ?) := cr_From(*, p_SipUrl, p_Tag); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130256 sic@ */ template (value) From cs_From(template (value) SipUrl p_SipUrl, template (omit) charstring p_Tag := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := FROM_E, addressField := { nameAddr := cs_NameAddr(p_SipUrl) @@ -542,7 +562,7 @@ module IMS_SIP_Templates { template (value) HistoryInfoEntry cs_HistoryInfoEntry(template (value) SipUrl p_SipUrl) := { /* @status APPROVED (IMS) */ nameAddr := cs_NameAddr(p_SipUrl), - hiIndex := { 1 }, /* @sic R5s130195 BASELINE MOVING 2013 sic@ + hiIndex := { 1 }, /* @sic R5s130195 BASELINE MOVING 2013 sic@ @sic LibSip v.3.0.0: hiIndex changed to IntegerList sic@ */ hiExtention := omit }; @@ -559,14 +579,14 @@ module IMS_SIP_Templates { template (present) HostPort cr_HostPort(template (present) charstring p_Host := ?, template integer p_Port := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ host := p_Host, portField := p_Port }; template (value) HostPort cs_HostPort(charstring p_Host, template (omit) integer p_Port := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ host := p_Host, portField := p_Port }; @@ -574,21 +594,21 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) MaxForwards cr_MaxForwardsDef(template (present) integer p_Value := (1..255)) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := MAX_FORWARDS_E, forwards := p_Value }; template (value) MaxForwards cs_MaxForwardsDef (template (value) integer p_Value := 67) := { // p_Value := 67 -> any value - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := MAX_FORWARDS_E, forwards := p_Value }; //---------------------------------------------------------------------------- template (value) NameAddrParam cs_NameAddrParam(template (value) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cs_NameAddr(p_SipUrl), genericParams := omit }; @@ -597,7 +617,7 @@ module IMS_SIP_Templates { template (present) PAccessNetworkInfo cr_PAccessNetworkInfoDef (template (present) charstring p_AccessType, template GenValue p_GenValueCellId := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := P_ACCESS_NETWORK_INFO_E, accessType := p_AccessType, genericParams := { @@ -641,7 +661,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) PAssociatedURI cs_PAssociatedURI(template (value) NameAddrParam_List p_NameAddrParam) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := P_ASSOCIATED_URI_E, nameAddrList := p_NameAddrParam }; @@ -649,7 +669,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) Path cs_PathDef(charstring p_Host) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := PATH_E, pathValues := { { @@ -669,6 +689,14 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- + template (value) PEarlyMedia cs_PEarlyMedia(template (value) EM_List p_EmList) := + { /* @status APPROVED (IMS, LTE, LTE_A) */ + fieldName := P_EARLY_MEDIA_E, + em_param := p_EmList + }; + + //---------------------------------------------------------------------------- + template (present) PPreferredID cr_PPreferredID(template (present) PPreferredIDValue_List p_PPreferredIDList := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ fieldName := P_PREFERRED_ID_E, @@ -686,7 +714,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) ProxyRequire cr_ProxyRequireDef := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := PROXY_REQUIRE_E, optionsTags := { "sec-agree", *} }; @@ -706,7 +734,7 @@ module IMS_SIP_Templates { template (present) RAck cr_RAckDef(template (present) integer p_RSeq, template (present) integer p_CSeq, template (present) charstring p_Method) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ fieldName := RACK_E, responseNum := p_RSeq, seqNumber := p_CSeq, @@ -760,7 +788,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) RecordRoute cs_RecordRoute(template (value) RouteBody_List p_RouteBodyList) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := RECORD_ROUTE_E, routeBody := p_RouteBodyList }; @@ -773,6 +801,33 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- + template (value) InfoPackage_Type cs_InfoPackage_Type(charstring p_Name, + template (omit) SemicolonParam_List p_InfoPackageParams := omit) := + { + infoPackageName := p_Name, + infoPackageParams := p_InfoPackageParams + }; + + template (value) RecvInfo cs_RecvInfo (template (value) InfoPackage_List p_InfoPackage_List) := + { + fieldName := RECV_INFO_E, + infoPackageList := p_InfoPackage_List + }; + + template (present) InfoPackage_Type cr_InfoPackage_Type(charstring p_Name, + template SemicolonParam_List p_InfoPackageParams := *) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + infoPackageName := p_Name, + infoPackageParams := p_InfoPackageParams + }; + + template (present) RecvInfo cr_RecvInfo (template (present) InfoPackage_List p_InfoPackage_List) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + fieldName := RECV_INFO_E, + infoPackageList := p_InfoPackage_List + }; + + //---------------------------------------------------------------------------- template (value) ReferredBy cs_ReferredBy (template (value) SipUrl p_SipUrl) := { fieldName := REFERRED_BY_E, @@ -790,7 +845,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) ReferTo cr_ReferTo(template (present) SipUrl p_SipUrl) := - { + { /* @status APPROVED (IMS) */ fieldName := REFER_TO_E, nameAddr := cr_NameAddr(*, p_SipUrl), referToParams := omit @@ -803,7 +858,7 @@ module IMS_SIP_Templates { nameAddr := cs_NameAddr(p_SipUrl), referToParams := p_ReferToParams }; - + //---------------------------------------------------------------------------- template (present) RequestDisposition cr_RequestDisposition(template (present) Directive_List p_Directives) := @@ -811,18 +866,18 @@ module IMS_SIP_Templates { fieldName := REQUEST_DISPOSITION_E, directives := p_Directives }; - + template (value) RequestDisposition cs_RequestDisposition(template (value) Directive_List p_Directives) := { /* @status APPROVED (IMS) */ fieldName := REQUEST_DISPOSITION_E, directives := p_Directives }; - + //---------------------------------------------------------------------------- template (present) RequestLine cr_RequestLineSip(Method p_Method, template (present) SipUrl p_URI) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ method := p_Method, requestUri := p_URI, sipVersion := c_sipNameVersion @@ -830,7 +885,7 @@ module IMS_SIP_Templates { template (value) RequestLine cs_RequestLineSip(Method p_Method, template (value) SipUrl p_URI) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ method := p_Method, requestUri := p_URI, sipVersion := c_sipNameVersion @@ -839,12 +894,12 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Require cr_Require(OptionTag_List p_OptionTags) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := REQUIRE_E, optionsTags := f_SIP_OptionTagListRX(p_OptionTags) // @sic R5-133629 sic@ }; - template (present) Require cr_RequireSecAgree := cr_Require(tsc_OptionTagList_sec_agree); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + template (present) Require cr_RequireSecAgree := cr_Require(tsc_OptionTagList_sec_agree); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5-133629 sic@ */ template (value) Require cs_Require(OptionTag_List p_OptionTags) := @@ -868,14 +923,22 @@ module IMS_SIP_Templates { template (present) RouteBody cr_RouteBody(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl, template SemicolonParam_List p_RRParam := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cr_NameAddr(p_DisplayName, p_SipUrl), rrParam := p_RRParam }; + template (present) RouteBody_List cr_RouteBodyList_InitialReq(template integer p_PcscfPort := *, + template (present) charstring p_PcscfHost := ?, + charstring p_ScscfHost := px_IMS_Scscf) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_PcscfHost, p_PcscfPort)), + cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_ScscfHost)) + }; + template (value) RouteBody cs_RouteBody(template (value) SipUrl p_SipUrl, template (omit) SemicolonParam_List p_RRParam := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cs_NameAddr(p_SipUrl), rrParam := p_RRParam }; @@ -885,7 +948,7 @@ module IMS_SIP_Templates { * @param p_SipUrl * @param p_SigCompParam (default value: omit) * @return template (value) RouteBody - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_RouteBodyWithParamsTX(template (value) SipUrl p_SipUrl, template (omit) GenericParam p_SigCompParam := omit) return template (value) RouteBody @@ -900,26 +963,11 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Route cr_Route(template RouteBody_List p_RouteBodyList) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := ROUTE_E, routeBody := p_RouteBodyList }; - template (present) Route cr_RouteRegDef(template (present) charstring p_Host, - template integer p_Port) := - cr_Route( {cr_RouteBody(*, cr_SipUri_HostPort_lr(p_Host, p_Port))} ); - - template (present) Route cr_RouteSubs(charstring p_Host1, - template integer p_Port, - charstring p_Host2) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_Route( { cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_Host1, p_Port)), cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_Host2)) } ); - - template (present) Route cr_RouteReReg (charstring p_Host, - template integer p_Port, - charstring p_Host2) := - ( cr_RouteRegDef(p_Host, p_Port), cr_RouteSubs(p_Host, p_Port, p_Host2) ); - template (value) Route cs_Route(template (value) RouteBody_List p_RouteBodyList) := { fieldName := ROUTE_E, @@ -943,7 +991,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) SecurityClient cr_SecClientMandatoryFields := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SECURITY_CLIENT_E, securityMech := { // cr_SecurityMechanism(cr_SecurityMechParams_IPsec(tsc_HMAC_MD5_96)), @sic R5-144131 sic@ @@ -954,7 +1002,7 @@ module IMS_SIP_Templates { template (present) SecurityClient cr_SecClientOptionalFields(charstring p_Id, template GenValue p_GenValue := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: GenValue sic@ */ fieldName := SECURITY_CLIENT_E, securityMech := { @@ -964,18 +1012,18 @@ module IMS_SIP_Templates { } }; - template (present) SecurityClient cr_SecClientOptionalProt := cr_SecClientOptionalFields("prot", cr_GenValue("esp")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientOptionalProtAny := cr_SecClientOptionalFields("prot"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientOptionalMod := cr_SecClientOptionalFields("mod", cr_GenValue("trans")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientOptionalModAny := cr_SecClientOptionalFields("mod"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientEalg := cr_SecClientOptionalFields("ealg", cr_GenValue(("des-ede3-cbc", "aes-cbc"))); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientEalgNull := cr_SecClientOptionalFields("ealg", cr_GenValue("null")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientEalgAny := cr_SecClientOptionalFields("ealg"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SecurityClient cr_SecClientOptionalProt := cr_SecClientOptionalFields("prot", cr_GenValue("esp")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientOptionalProtAny := cr_SecClientOptionalFields("prot"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientOptionalMod := cr_SecClientOptionalFields("mod", cr_GenValue("trans")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientOptionalModAny := cr_SecClientOptionalFields("mod"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientEalg := cr_SecClientOptionalFields("ealg", cr_GenValue(("des-ede3-cbc", "aes-cbc"))); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientEalgNull := cr_SecClientOptionalFields("ealg", cr_GenValue("null")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientEalgAny := cr_SecClientOptionalFields("ealg"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //---------------------------------------------------------------------------- template (present) SecurityMechanism cr_SecurityMechanism(template SemicolonParam_List p_MechParams) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ mechName := tsc_SEC_MECHANISM, mechParams := p_MechParams }; @@ -983,7 +1031,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) SecurityServer cs_SecServerDef(template (value) SecurityMechanism_List p_SecurityMech) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SECURITY_SERVER_E, securityMech := p_SecurityMech }; @@ -991,7 +1039,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) SecurityVerify cr_SecVerifyDef (template (present) SecurityMechanism_List p_SecurityMech) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SECURITY_VERIFY_E, securityMech := p_SecurityMech }; @@ -999,7 +1047,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) ServiceRoute cs_ServiceRouteDef (charstring p_Host) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SERVICE_ROUTE_E, routeBody := { cs_RouteBody(cs_SipUri_HostPort_lr(p_Host)) @@ -1008,10 +1056,10 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- - template (present) SessIdString cr_SessIdString_Any := pattern "[0-9a-f]#32"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SessIdString cr_SessIdString_Any := pattern "[0-9a-f]#32"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (present) SessionId cr_SessionId(template (present) SessIdString p_SessIdString := cr_SessIdString_Any) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SESSION_ID_E, sessid := p_SessIdString, sessidParam := * @@ -1021,7 +1069,7 @@ module IMS_SIP_Templates { * @desc return either omit or cr_SessionId (any session id) * @param p_SessionIdSupported * @return template SessionId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SessionId_RX_IfSupported(boolean p_SessionIdSupported) return template SessionId { @@ -1033,22 +1081,38 @@ module IMS_SIP_Templates { } template (value) SessionId cs_SessionId(SessIdString p_SessIdString) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SESSION_ID_E, sessid := p_SessIdString, sessidParam := omit }; /* - * @desc return Session-ID derived from Call-ID based on SHA-1 hashing acc. to draft-kaplan-dispatch-session-id-03 clause 4.1 + * @desc return Session-ID (see RFC 7329) * @param p_CallId * @return SessIdString * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_SessionId_TX_Generate(charstring p_CallId) return SessIdString - { /* T.B.D. */ - FatalError(__FILE__, __LINE__, "f_IMS_SessionId_TX_Generate: not implemented yet"); - return "0123456789abcdef0123456789abcdef"; + { /* NOTE: in terms of UE conformance testing there seems to be no requirement on the session ID rather than that is is unique for different call ids + * => we use a simplified algorithm to get the 32 digit session id out from the given call id (rather than SHA-1 hashing acc. to RFC 7329) */ + /* @sic R5s150086 sic@ */ + var B128_Type v_B128 := int2bit(0, 128); + var octetstring v_OctetString := char2oct(p_CallId); + var SessIdString v_SessIdString; + var integer v_Len; + var integer i; + + for (i := 0; i < 15; i := i + 1) { v_OctetString := v_OctetString & '5C'O; } // 15 octets padding + + while (true) { + v_Len := lengthof(v_OctetString); + if (v_Len < 16) {break;} + v_B128 := v_B128 xor4b oct2bit(substr(v_OctetString, 0, 16)); + v_OctetString := substr(v_OctetString, 16, v_Len - 16); + } + v_SessIdString := oct2str(bit2oct(v_B128)); + return f_StringToLower(v_SessIdString); // acc. RFC 7329 the Session-ID Value has to be lowercase hex representation } //---------------------------------------------------------------------------- @@ -1063,7 +1127,7 @@ module IMS_SIP_Templates { template (present) UriComponents cr_SipUriComponent(template UserInfo p_UserInfo := *, template (present) charstring p_Host, template integer p_Port := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sip := { userInfo := p_UserInfo, hostPort := { @@ -1084,7 +1148,7 @@ module IMS_SIP_Templates { template (present) SipUrl cr_SipUrl_Common(template (present) charstring p_Scheme, template (present) UriComponents p_UriComponents, template SemicolonParam_List p_Params := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ scheme := p_Scheme, components := p_UriComponents, urlParameters := p_Params, @@ -1093,20 +1157,38 @@ module IMS_SIP_Templates { template (present) SipUrl cr_SipUri_HostPort_lr(template (present) charstring p_Host, template integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ - cr_SipUrl_Common(c_sipScheme, cr_SipUriComponent(*, p_Host, p_Port), {cr_GenericParam_Common("lr"), *}); /* @sic R5s120858 change 4, 5 sic@ */ + cr_SipUrl_Common(c_sipScheme, cr_SipUriComponent(*, p_Host, p_Port), cr_UriParameters_lr); /* @sic R5s120858 change 4, 5 sic@ + @sic R5-153760: cr_UriParameters_lr sic@ */ template (present) SipUrl cr_SipUri_HostPort(template (present) charstring p_Host, template integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ cr_SipUrl_Common(c_sipScheme, cr_SipUriComponent(*, p_Host, p_Port)); /* @sic R5s120858 change 4, 5 sic@ */ + /* + * @desc Build up SipUri to be used in Contact header depending on whether or not GRUU shall be used by the UE + * @param p_Host + * @param p_Port + * @return template (present) SipUrl + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_Contact_SipUri_HostPortRX(template (present) charstring p_Host, + template integer p_Port := *) return template (present) SipUrl + { + var template integer v_Port := p_Port; + if (pc_IMS_GRUUsInSIP) { + v_Port := *; + } + return cr_SipUri_HostPort(p_Host, v_Port); + } + template (value) UriComponents cs_SipUriComponent(template (omit) UserInfo p_UserInfo := omit, template (value) charstring p_Host, template (omit) integer p_Port := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sip := { userInfo := p_UserInfo, hostPort := { @@ -1117,7 +1199,7 @@ module IMS_SIP_Templates { }; template (value) UriComponents cs_TelUriComponent(template (value) charstring p_Subscriber) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ tel := { subscriber := p_Subscriber } @@ -1125,7 +1207,7 @@ module IMS_SIP_Templates { template (value) UriComponents cs_UrnUriComponent(template (value) charstring p_NamespaceId, template (value) charstring p_NamespaceSpecificString) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ urn := { namespaceId := p_NamespaceId, namespaceSpecificString := p_NamespaceSpecificString @@ -1133,14 +1215,14 @@ module IMS_SIP_Templates { }; template (value) UriComponents cs_OtherComponent(charstring p_Other) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ other := p_Other }; template (value) SipUrl cs_SipUrl_Common(template (value) charstring p_Scheme, template (value) UriComponents p_UriComponents, template (omit) SemicolonParam_List p_Params := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ scheme := p_Scheme, components := p_UriComponents, urlParameters := p_Params, @@ -1149,13 +1231,13 @@ module IMS_SIP_Templates { template (value) SipUrl cs_SipUri_HostPort_lr(template (value) charstring p_Host, template (omit) integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ cs_SipUrl_Common(c_sipScheme, cs_SipUriComponent(-, p_Host, p_Port), {cs_GenericParam("lr")} ); template (value) SipUrl cs_SipUri_HostPort(template (value) charstring p_Host, template (omit) integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ cs_SipUrl_Common(c_sipScheme, cs_SipUriComponent(-, p_Host, p_Port)); @@ -1167,37 +1249,41 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- - template (value) SubscriptionState cs_SubscriptionStateDef(charstring p_SubstateValue, - charstring p_Expires) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) SubscriptionState cs_SubscriptionState(charstring p_SubstateValue, + template (value) SemicolonParam_List p_SubStateParams) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SUBSCRIPTION_STATE_E, subState := p_SubstateValue, - substateParams := { - cs_GenericParam("expires", p_Expires) - } + substateParams := p_SubStateParams }; - template (value) SubscriptionState cs_SubscriptionState_Active(charstring p_Expires := "600000") := cs_SubscriptionStateDef("active", p_Expires); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) SubscriptionState cs_SubscriptionState_Terminated := cs_SubscriptionStateDef("terminated", "0"); /* @status APPROVED (IMS) */ + template (value) SubscriptionState cs_SubscriptionStateDef(charstring p_SubstateValue, + charstring p_Expires) := + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cs_SubscriptionState(p_SubstateValue, { cs_GenericParam("expires", p_Expires) } ); + + template (value) SubscriptionState cs_SubscriptionState_Active(charstring p_Expires := "600000") := cs_SubscriptionStateDef("active", p_Expires); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) SubscriptionState cs_SubscriptionState_Terminated := cs_SubscriptionStateDef("terminated", "0"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SubscriptionState cr_SubscriptionState(charstring p_SubstateValue, - template SemicolonParam_List p_SubexpParams) := + template SemicolonParam_List p_SubStateParams) := { fieldName := SUBSCRIPTION_STATE_E, subState := p_SubstateValue, - substateParams := p_SubexpParams + substateParams := p_SubStateParams }; //---------------------------------------------------------------------------- template (present) Supported cr_Supported(OptionTag_List p_RequestedTags) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5-133629: handling of option tags in Supported and Require headers sic@ */ fieldName := SUPPORTED_E, optionsTags := f_SIP_OptionTagListRX(p_RequestedTags) }; - template (present) Supported cr_Supported_Register := cr_Supported(f_SIP_Register_SupportedTagList(pc_IMS_GRUUsInSIP)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) Supported cr_Supported_Register := cr_Supported(f_SIP_Register_SupportedTagList(pc_IMS_GRUUsInSIP)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) Supported cs_Supported(template (value) OptionTag_List p_TagList) := { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ @@ -1209,23 +1295,23 @@ module IMS_SIP_Templates { template (present) To cr_ToCommon(template (present) SipUrl p_SipUrl, template SemicolonParam_List p_Params := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := TO_E, addressField := f_Addr_Union_RX(p_SipUrl), toParams := p_Params }; template (present) To cr_ToDef(template (present) SipUrl p_SipUrl, - template SemicolonParam_List p_Params := *) := cr_ToCommon(p_SipUrl, p_Params); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + template SemicolonParam_List p_Params := *) := cr_ToCommon(p_SipUrl, p_Params); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130378 change 3 sic@ */ template (present) To cr_ToWithTag(template (present) SipUrl p_SipUrl, - template (present) charstring p_Tag := ?) := cr_ToCommon(p_SipUrl, {cr_GenericParam(c_tagId, p_Tag), *}); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + template (present) charstring p_Tag := ?) := cr_ToCommon(p_SipUrl, {cr_GenericParam(c_tagId, p_Tag), *}); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130183 sic@ */ template (value) To cs_ToDef(template (value) SipUrl p_SipUrl, template (omit) SemicolonParam_List p_Params := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := TO_E, addressField := { nameAddr := cs_NameAddr(p_SipUrl) @@ -1235,7 +1321,7 @@ module IMS_SIP_Templates { template (value) To cs_ToWithTag(template (value) SipUrl p_SipUrl, template (value) charstring p_Tag) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cs_ToDef(p_SipUrl, { cs_GenericParam(c_tagId, p_Tag) }); //---------------------------------------------------------------------------- @@ -1243,7 +1329,7 @@ module IMS_SIP_Templates { * @desc build up receive template for paramter list to be used in the Via header * @param p_Rport (default value: omit) * @return template (present) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_ViaParamsRX(template GenericParam p_Rport := omit) return template (present) SemicolonParam_List { /* @sic R5s130187 change 6: "*" needed at the end of the list sic@ */ @@ -1262,7 +1348,7 @@ module IMS_SIP_Templates { template (present) ViaBody cr_ViaBody(template (present) charstring p_Transport, template (present) HostPort p_SendBy, template (present) SemicolonParam_List p_ViaParams := f_ViaParamsRX()) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sentProtocol := { protocolName := c_sipName, protocolVersion := c_sipVersion, @@ -1276,7 +1362,7 @@ module IMS_SIP_Templates { template (present) HostPort p_HostPort := cr_HostPort(?, *), template GenericParam p_Rport := omit) := { /* for initial request p_Rport may need to be set to "cr_GenericParam("rport", ?)" see 34.229-1 A.1.1 condition A1 */ - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := VIA_E, viaBody := { cr_ViaBody(p_Transport, p_HostPort, f_ViaParamsRX(p_Rport)) @@ -1285,7 +1371,7 @@ module IMS_SIP_Templates { template (present) Via cr_ViaInitialReg(template (present) charstring p_Transport := ?, template (present) HostPort p_HostPort := cr_HostPort(?, *)) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_ViaDef(p_Transport, p_HostPort, cr_GenericParam_Common("rport", omit)); // @sic R5s120907 change 8 - rport has no value sic@ @@ -1293,7 +1379,7 @@ module IMS_SIP_Templates { * @desc Via header to be used for responses sent by the UE * @param p_ViaRequest * @return template (present) Via - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Via_ResponseRX(template (value) Via p_ViaRequest) return template (present) Via { /* @sic R5s140350: as format of IPv6 addresses may change we need to check host addresses seperately sic@ */ @@ -1311,7 +1397,7 @@ module IMS_SIP_Templates { * @param p_Branch * @param p_SigCompParam (default value: omit) * @return template (value) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_ViaParamsTX(template (value) charstring p_Branch, template (omit) GenericParam p_SigCompParam := omit) return template (value) SemicolonParam_List @@ -1327,7 +1413,7 @@ module IMS_SIP_Templates { template (value) ViaBody cs_ViaBody(template (value) charstring p_Transport, template (value) HostPort p_SendBy, template (omit) SemicolonParam_List p_ViaParams := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sentProtocol := { protocolName := c_sipName, protocolVersion := c_sipVersion, @@ -1338,7 +1424,7 @@ module IMS_SIP_Templates { }; template (value) Via cs_Via(template (value) ViaBody_List p_BodyList) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := VIA_E, viaBody := p_BodyList }; @@ -1349,7 +1435,7 @@ module IMS_SIP_Templates { charstring p_Nonce, charstring p_Opaque := tsc_IMS_Opaque, charstring p_Algorithm := tsc_AKAv1_MD5) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130794 change 2: new parameter p_Algorithm sic@ */ fieldName := WWW_AUTHENTICATE_E, challenge := { @@ -1371,7 +1457,7 @@ module IMS_SIP_Templates { * @desc returns the tag from the From header (NOTE: there has to be a from-tag) * @param p_MessageHeader * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_MessageHeader_GetFromTag(template (value) MessageHeader p_MessageHeader) return charstring { @@ -1383,7 +1469,7 @@ module IMS_SIP_Templates { * (in contrast to the From header the tag may be missing in the To header) * @param p_MessageHeader * @return template (omit) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_MessageHeader_GetToTag(template (value) MessageHeader p_MessageHeader) return template (omit) charstring { /* @sic R5w140111: GenValue sic@ */ @@ -1403,7 +1489,7 @@ module IMS_SIP_Templates { * @desc return string representing given IntegrityAlgorithm * @param p_IntegrityAlgorithm * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_IntegrityAlgorithm_String(IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm) return charstring { @@ -1424,7 +1510,7 @@ module IMS_SIP_Templates { * @desc return string representing given CipheringAlgorithm * @param p_CipheringAlgorithm * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_CipheringAlgorithm_String(IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm) return charstring { @@ -1448,14 +1534,14 @@ module IMS_SIP_Templates { template (value) UserInfo cs_UserInfo(charstring p_UserName, template (omit) charstring p_Password := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ userOrTelephoneSubscriber := p_UserName, password := p_Password }; template (present) UserInfo cr_UserInfo(charstring p_UserName, template charstring p_Password := *) := - { /* @status APPROVED (IMS) */ + { userOrTelephoneSubscriber := p_UserName, password := p_Password }; @@ -1469,7 +1555,7 @@ module IMS_SIP_Templates { * see RFC 3986 for URIs in general) * @param p_URI * @return template (value) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_SIP_ParseURI(charstring p_URI) return template (value) SipUrl { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1522,13 +1608,15 @@ module IMS_SIP_Templates { * @desc Built receive template for SipUrl * @param p_URI * @param p_Port (default value: omit) - * @param p_LrParam (default value: omit) + * @param p_UrlParameters (default value: *) + * @param p_Headers (default value: omit) * @return template (present) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSipUri_RX(charstring p_URI, template integer p_Port := omit, - template GenericParam p_LrParam := omit) return template (present) SipUrl + template SemicolonParam_List p_UrlParameters := *, + template AmpersandParam_List p_Headers := omit) return template (present) SipUrl { var template (present) SipUrl v_SipUrl := fl_SIP_ParseURI(p_URI); @@ -1536,11 +1624,8 @@ module IMS_SIP_Templates { @sic R5s140020 change 11: p_Port may be * therefore shall not be checked to be present sic@ */ v_SipUrl.components.sip.hostPort.portField := p_Port; } - if (ispresent(p_LrParam)) { - v_SipUrl.urlParameters := {p_LrParam, *}; - } else { - v_SipUrl.urlParameters := *; - } + v_SipUrl.urlParameters := p_UrlParameters; + v_SipUrl.headers := p_Headers; /* @sic R5s150382 change 4 sic@ */ return v_SipUrl; } @@ -1556,7 +1641,7 @@ module IMS_SIP_Templates { function f_SIP_BuildSipUri_lr_RX(charstring p_URI, template integer p_Port := omit) return template (present) SipUrl { - return f_SIP_BuildSipUri_RX(p_URI, p_Port, cr_GenericParam_Common("lr", omit)); + return f_SIP_BuildSipUri_RX(p_URI, p_Port, cr_UriParameters_lr); /* @sic R5-153760: cr_UriParameters_lr sic@ */ } /* @@ -1565,7 +1650,7 @@ module IMS_SIP_Templates { * @param p_Port (default value: omit) * @param p_LrParam (default value: omit) * @return template (value) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSipUri_TX(charstring p_URI, template (omit) integer p_Port := omit, @@ -1602,7 +1687,7 @@ module IMS_SIP_Templates { * @desc convert SipUrl to string * @param p_SipUrl * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SipUrl2Str(SipUrl p_SipUrl) return charstring { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1640,7 +1725,7 @@ module IMS_SIP_Templates { * @desc encode SipUrl as string * @param p_SipUrl * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SipUrl_GetPublicUserIdentity(SipUrl p_SipUrl) return charstring { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1662,6 +1747,20 @@ module IMS_SIP_Templates { return v_PublicUserIdentity; } + + /* + * @desc Compare two URLs + * @param p_SipUrl1 + * @param p_SipUrl2 + * @return boolean + * @status APPROVED (IMS) + */ + function f_SIP_SipUrl_Compare(SipUrl p_SipUrl1, + SipUrl p_SipUrl2) return boolean + { + return match(p_SipUrl1, cr_SipUrl_Common(p_SipUrl2.scheme, p_SipUrl2.components, p_SipUrl2.urlParameters)); + } + /* * @desc return sequence number of given message * @param p_MessageHeader @@ -1677,7 +1776,7 @@ module IMS_SIP_Templates { * @desc get SipUrl from Contact header * @param p_MessageHeader * @return SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_MessageHeader_GetContactSipUrl(template (value) MessageHeader p_MessageHeader) return SipUrl { @@ -1709,7 +1808,7 @@ module IMS_SIP_Templates { * @param p_SSProtClientPort * @param p_SSProtServerPort * @return template (value) SecurityMechanism_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSecurityServerParam(IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm, @@ -1785,7 +1884,7 @@ module IMS_SIP_Templates { * @param p_SSProtClientPort * @param p_SSProtServerPort * @return template (present) SecurityVerify - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSecurityVerifyHeader(IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm, @@ -1808,19 +1907,18 @@ module IMS_SIP_Templates { * @desc Return the correct tag to be included in the Supported header of REGISTER messages * @param p_GRUUsInSIP * @return OptionTag_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_Register_SupportedTagList(boolean p_GRUUsInSIP) return OptionTag_List { /* @sic R5-133629: handling of option tags in Supported and Require headers sic@ */ - var charstring v_SupportedTag; - + /* @sic R5s150721 - Additional change: "path" shall always be included sic@ */ + var OptionTag_List v_SupportedTagList; + + v_SupportedTagList[0] := "path"; if (p_GRUUsInSIP) { - v_SupportedTag := "gruu"; - } - else { - v_SupportedTag := "path"; + v_SupportedTagList[1] := "gruu"; } - return {v_SupportedTag}; + return v_SupportedTagList; } //**************************************************************************** @@ -1830,7 +1928,7 @@ module IMS_SIP_Templates { * @desc return portnumber given in ContactUrl (if any) * @param p_ContactUrl * @return template (omit) PortNumber_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_ContactUrl_GetPort(SipUrl p_ContactUrl) return template (omit) PortNumber_Type { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1850,7 +1948,7 @@ module IMS_SIP_Templates { * @param p_UriString * @param p_SipUrl * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_MatchURI(charstring p_UriString, SipUrl p_SipUrl) return boolean @@ -1863,7 +1961,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) MessageHeader cs_MessageHeader_Dummy := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ accept := omit, acceptContact := omit, acceptEncoding := omit, @@ -1891,6 +1989,7 @@ module IMS_SIP_Templates { geolocation := omit, geolocationRouting := omit, // @sic R5-133151 sic@ historyInfo := omit, + infoPackage := omit, // @sic R5s150339 sic@ inReplyTo := omit, maxForwards := c_maxForwards70, mimeVersion := omit, @@ -1919,6 +2018,7 @@ module IMS_SIP_Templates { rSeq := omit, reason := omit, recordRoute := omit, + recvInfo := omit, // @sic R5s150339 sic@ requestDisposition := omit, referredBy := omit, referTo := omit, @@ -1952,7 +2052,7 @@ module IMS_SIP_Templates { }; template (present) MessageHeader cr_MessageHeader_Dummy := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ accept := *, acceptContact := *, acceptEncoding := *, @@ -1980,6 +2080,7 @@ module IMS_SIP_Templates { geolocation := *, geolocationRouting := *, // @sic R5-133151 sic@ historyInfo := *, + infoPackage := *, // @sic R5s150339 sic@ inReplyTo := *, maxForwards := *, mimeVersion := *, @@ -2008,6 +2109,7 @@ module IMS_SIP_Templates { rSeq := *, reason := *, recordRoute := *, + recvInfo := *, // @sic R5s150339 sic@ requestDisposition := *, referredBy := *, referTo := *, @@ -2048,7 +2150,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := omit, template Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ requestLine := cr_RequestLineSip(REGISTER_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2059,7 +2161,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := omit, template Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ requestLine := cr_RequestLineSip(SUBSCRIBE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2092,7 +2194,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := *, template Payload p_Payload := *) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ requestLine := cr_RequestLineSip(PRACK_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2103,7 +2205,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := ?, template Payload p_Payload := *) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ requestLine := cr_RequestLineSip(UPDATE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2133,7 +2235,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := ?, template Payload p_Payload := *) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ requestLine := cr_RequestLineSip(MESSAGE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2142,7 +2244,7 @@ module IMS_SIP_Templates { template (present) REFER_Request cr_REFER_Request(template (present) SipUrl p_SipUrl, template (present) MessageHeader p_MessageHeader := ?) := - { + { /* @status APPROVED (IMS) */ requestLine := cr_RequestLineSip(REFER_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := omit, @@ -2173,8 +2275,8 @@ module IMS_SIP_Templates { template (value) NOTIFY_Request cs_NOTIFY_Request(template (value) SipUrl p_SipUrl, template (value) MessageHeader p_MessageHeader, - template (value) MessageBody p_MessageBody) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (omit) MessageBody p_MessageBody := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ requestLine := cs_RequestLineSip(NOTIFY_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2232,7 +2334,7 @@ module IMS_SIP_Templates { template (value) MESSAGE_Request cs_MESSAGE_Request(template (value) SipUrl p_SipUrl, template (value) MessageHeader p_MessageHeader, template (value) MessageBody p_MessageBody) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ requestLine := cs_RequestLineSip(MESSAGE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2256,7 +2358,7 @@ module IMS_SIP_Templates { template (value) MessageHeader p_MessageHeader, template (omit) MessageBody p_MessageBody := omit, template (omit) Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ statusLine := p_StatusLine, msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2268,7 +2370,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader, template MessageBody p_MessageBody := omit, template Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ statusLine := p_StatusLine, msgHeader := p_MessageHeader, messageBody := p_MessageBody, diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SMS_Messages.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SMS_Messages.ttcn similarity index 56% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_SMS_Messages.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_SMS_Messages.ttcn index a25f455..4e22159 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SMS_Messages.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_SMS_Messages.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-24 11:27:42 +0200 (Sat, 24 May 2014) $ -// $Rev: 11320 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_SMS_Messages { @@ -23,26 +23,19 @@ module IMS_SMS_Messages { import from IMS_CommonFunctions all; import from IMS_Procedures_CallControl all; import from IMS_Procedures_Common all; - import from IMS_CommonParameters all; import from IMS_ASP_TypeDefs all; import from IMS_ASP_Templates all; import from IMS_MessageBody_Templates all; import from IP_ASP_TypeDefs all; import from IMS_CC_Parameters all; - - const integer tsc_MESSAGE_CSeqValue := 42; /* @status APPROVED (IMS) */ + import from IMS_CommonParameters all; //============================================================================ - template (present) SMS_SUBMIT_Type cr_SMS_SUBMIT_NoValidityPeriod := cr_SMS_SUBMIT('00'B, omit); /* @status APPROVED (IMS) */ - template (present) SMS_SUBMIT_Type cr_SMS_SUBMIT_AnyValidityPeriod := cr_SMS_SUBMIT(-, ?); /* @status APPROVED (IMS) */ - - template (present) SMS_SUBMIT_Type cr_SMS_SUBMIT_IMS := (cr_SMS_SUBMIT_NoValidityPeriod, cr_SMS_SUBMIT_AnyValidityPeriod); /* @sic R5s130235 change 5 sic@ - @status APPROVED (IMS) */ template (present) RP_DATA_ul_Type cr_SMS_RP_DATA_ul_SUBMIT_IMS := /* @status APPROVED (IMS) */ /* @sic R5-133632 change 7: px_SMS_SMSC_InternationalNumber sic@ */ - cr_RP_DATA_ul_SUBMIT(cr_RP_UserData_SUBMIT(cr_SMS_SUBMIT_IMS), f_CharPacking_IA5toBCD(px_SMS_SMSC_InternationalNumber)); + cr_RP_DATA_ul_SUBMIT(cr_RP_UserData_SUBMIT(cr_SMS_SUBMIT), f_CharPacking_IA5toBCD(px_SMS_SMSC_InternationalNumber)); // @sic R5s141400 sic@ //============================================================================ @@ -65,6 +58,56 @@ module IMS_SMS_Messages { cs_GenericParam("explicit") }; + template (value) RP_DATA_dl_Type cs_RP_DATA_dl_STATUS_REPORT(TP_MessageReference_Type p_MessageRef, + TP_Address_Type p_RecipientAddress, + template (omit) TP_ServiceCentreTimeStamp_Type p_SCTP) := + { /* @status APPROVED (IMS) */ + spare5 := '00000'B, + rP_MessageTypeIndicator := tsc_MT_RP_DATA_dl, + rP_MessageReference := '00'O, + rP_OriginatorAddress := cs_RP_OriginatorAddress_dl, + rP_DestinationAddress := cs_RP_DestinationAddress_dl, + rP_UserData := cs_RP_UserData_STATUS_REPORT (p_MessageRef, p_RecipientAddress, p_SCTP) + }; + + template (omit) RP_UserData cs_RP_UserData_STATUS_REPORT(TP_MessageReference_Type p_MessageRef, + TP_Address_Type p_RecipientAddress, + template (omit) TP_ServiceCentreTimeStamp_Type p_SCTP) := + { /* @status APPROVED (IMS) */ + // @sic R5s120530 change 2.9 sic@ + spare := omit, + iei := omit, + iel := int2oct(lengthof(p_RecipientAddress.digits) + 21, 1), + tP_PDU := { + SMS_STATUS_REPORT := cs_SMS_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP) + } + }; + + template (value) SMS_STATUS_REPORT_Type cs_SMS_STATUS_REPORT(TP_MessageReference_Type p_MessageRef, + TP_Address_Type p_RA, + template (omit) TP_ServiceCentreTimeStamp_Type p_SCTP):= + { // TS 34.229-1 clause A.7.5 + /* @status APPROVED (IMS) */ + spare1 := '0'B, + tP_UserDataHeaderIndicator := '0'B, + tP_StatusReportQualifier := '0'B, + spare2 := '00'B, + tP_MoreMessagesToSend := '0'B, + tP_MessageTypeIndicator := tsc_MT_SMS_STATUS_REPORT, + tP_MessageReference := p_MessageRef, + tP_RecipientAddress := p_RA, + tP_ServiceCentreTimeStamp := p_SCTP, + tP_DischargeTime := '00000000000000'H, + tP_Status := { + reserved := '0'B, + status := '0000000'B + }, + tP_ParameterIndicator := cs_TP_ParameterIndicator, + tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier, + tP_DataCodingScheme_Type := omit, + tP_UserDataLength := omit, + tP_UserData := omit + }; //============================================================================ /* @@ -144,15 +187,17 @@ module IMS_SMS_Messages { * @param p_Protocol * @param p_CSeqValue * @param p_RequestDispositionDirective - * @param p_SessionIdSupported (default value: false) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @return template (value) MessageHeader * @status APPROVED (IMS) */ function f_IMS_MessageRequest_MessageHeaderTX_Common(InternetProtocol_Type p_Protocol, integer p_CSeqValue, Directive p_RequestDispositionDirective, - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (value) MessageHeader + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) + runs on IMS_PTC return template (value) MessageHeader { /* @sic R5-131269: new function to be used for A.7.1, A.7.4, A.7.5; R5-133705 sic@ */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ var charstring v_P_CSCF_Address := f_IMS_PTC_Pcscf_Get(); var template (value) SipUrl v_IP_SM_GW_SipUrl := cs_SipUri_UserHostPort("SMSGateway", v_P_CSCF_Address); var template (value) SipUrl v_SipUrlTo := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); @@ -201,20 +246,22 @@ module IMS_SMS_Messages { /* * @desc MESSAGE acc. to TS 34.229 A.7.4 * @param p_Protocol + * @param p_SipUrl_PAssertedId * @param p_CallIdMO * @param p_CSeqValue (default value: tsc_MESSAGE_CSeqValue) * @return template (value) MessageHeader * @status APPROVED (IMS) */ function f_IMS_MessageRequest_MessageHeaderTX_SubmissionReport(InternetProtocol_Type p_Protocol, + template (value) SipUrl p_SipUrl_PAssertedId, CallidString p_CallIdMO, integer p_CSeqValue := tsc_MESSAGE_CSeqValue) runs on IMS_PTC return template (value) MessageHeader { /* @sic R5-131269 R5-133705 sic@ */ - var template (value) SipUrl v_SipUrl_PAssertedId := f_SIP_BuildSipUri_TX(tsc_IMS_PSI_SMSC); + /* @sic R5-152094: parameter p_SipUrl_PAssertedId sic@ */ var template (value) MessageHeader v_MessageHeader_Message; v_MessageHeader_Message := f_IMS_MessageRequest_MessageHeaderTX_Common(p_Protocol, p_CSeqValue, "fork"); - v_MessageHeader_Message.pAssertedID := cs_PAssertedId(v_SipUrl_PAssertedId); + v_MessageHeader_Message.pAssertedID := cs_PAssertedId(p_SipUrl_PAssertedId); v_MessageHeader_Message.inReplyTo := cs_InReplyTo(p_CallIdMO); /* @sic R5-131269: The value of the Call-Id received in the original MO SMS sic@ */ return v_MessageHeader_Message; @@ -223,18 +270,20 @@ module IMS_SMS_Messages { /* * @desc MESSAGE acc. to TS 34.229 A.7.5 * @param p_Protocol + * @param p_SipUrl_PAssertedId * @param p_CSeqValue * @return template (value) MessageHeader * @status APPROVED (IMS) */ function f_IMS_MessageRequest_MessageHeaderTX_StatusReport(InternetProtocol_Type p_Protocol, + template (value) SipUrl p_SipUrl_PAssertedId, integer p_CSeqValue) runs on IMS_PTC return template (value) MessageHeader { /* @sic R5-131269 R5-133705 sic@ */ - var template (value) SipUrl v_SipUrl_PAssertedId := f_SIP_BuildSipUri_TX(tsc_IMS_PSI_SMSC); + /* @sic R5-152094: parameter p_SipUrl_PAssertedId sic@ */ var template (value) MessageHeader v_MessageHeader_Message; v_MessageHeader_Message := f_IMS_MessageRequest_MessageHeaderTX_Common(p_Protocol, p_CSeqValue, "no-fork"); - v_MessageHeader_Message.pAssertedID := cs_PAssertedId(v_SipUrl_PAssertedId); + v_MessageHeader_Message.pAssertedID := cs_PAssertedId(p_SipUrl_PAssertedId); v_MessageHeader_Message.acceptContact := cs_AcceptContact(cs_AcRcParamsSMS); return v_MessageHeader_Message; @@ -244,13 +293,14 @@ module IMS_SMS_Messages { /* * @desc common MESSAGE for A.7.2, A.7.3, A.7.6 * @param p_SipUrl_To - * @param p_SessionIdSupported (default value: false) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @return template (present) MessageHeader * @status APPROVED (IMS) */ function f_IMS_MessageRequest_MessageHeaderRX_Common(template (present) SipUrl p_SipUrl_To, - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130370 change 3 - additional parameter p_SipUrl_To; R5-133705 sic@ */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ var template (present) MessageHeader v_MessageHeader_Message := cr_MessageHeader_Dummy; var integer v_Port_us := f_IMS_PTC_GetPort_us(); // @sic R5s120530 changes 2.3, 2.5, 2.6 sic@ @@ -268,11 +318,11 @@ module IMS_SMS_Messages { /* * @desc MESSAGE for MO SMS (see TS 34.229, A.7.3) - * @param p_SipUrl_To + * @param p_SipUrl_To (default value: ?) * @return template (present) MessageHeader * @status APPROVED (IMS) */ - function f_IMS_MessageRequest_MessageHeaderRX_MO_SMS(template (present) SipUrl p_SipUrl_To) runs on IMS_PTC return template (present) MessageHeader + function f_IMS_MessageRequest_MessageHeaderRX_MO_SMS(template (present) SipUrl p_SipUrl_To := ?) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130370 change 3 - additional parameter p_SipUrl_To; R5-133705 sic@ */ var template (present) MessageHeader v_MessageHeader_Message; var integer v_Port_ps := f_IMS_PTC_GetPort_ps(); @@ -283,7 +333,7 @@ module IMS_SMS_Messages { if (f_IMS_PTC_SecurityScheme_IsGiba()) { v_MessageHeader_Message.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); } - v_MessageHeader_Message.route := cr_RouteSubs(v_Pcscf, v_Port_ps, px_IMS_Scscf); + v_MessageHeader_Message.route := cr_Route(cr_RouteBodyList_InitialReq(v_Port_ps, v_Pcscf)); return v_MessageHeader_Message; } @@ -300,10 +350,9 @@ module IMS_SMS_Messages { CallidString p_CallidString) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130370 change 3 - additional parameter p_SipUrl_To; R5-133705: "InReplyTo" sic@ */ var template (present) MessageHeader v_MessageHeader_Message; - var template (omit) integer v_UE_Release := f_IMS_PTC_GetUE_Release(); v_MessageHeader_Message := f_IMS_MessageRequest_MessageHeaderRX_Common(p_SipUrl_To); - if (ispresent(v_UE_Release) and (valueof(v_UE_Release) >= 11)) { /* @sic R5s130739 MCC160 implementation sic@ */ + if (f_IMS_PTC_UE_ReleaseGreaterOrEqual(11)) { /* @sic R5s130739 MCC160 implementation; R5s150630: f_IMS_PTC_UE_ReleaseGreaterOrEqual sic@ */ v_MessageHeader_Message.inReplyTo := cr_InReplyTo(p_CallidString); } @@ -312,7 +361,7 @@ module IMS_SMS_Messages { //---------------------------------------------------------------------------- /* - * @desc To receive and check INVITE for MO call establishment + * @desc To receive and check MESSAGE request * @param p_SipUrlRequestLine * @param p_MessageHeader * @param p_PrevCallIdList (default value: {}) @@ -336,4 +385,125 @@ module IMS_SMS_Messages { return v_IMS_DATA_REQ; } + /* + * @desc To receive and check MESSAGE request + * @return IMS_DATA_REQ + * @status APPROVED (IMS) + */ + function f_IMS_MO_SMS_Step1() runs on IMS_PTC return IMS_DATA_REQ + { + var IMS_DATA_REQ v_IMS_DATA_REQ; + var MessageHeader v_MessageHeader; + var MESSAGE_Request v_MESSAGE_RequestRX; + var RP_DATA_ul_Type v_MoSMS; + var octetstring v_EncodedSMS; + var template (present) SipUrl v_SipUrl_PsiSmsc := ?; /* @sic R5s140304, R5-142157 sic@ + @sic R5-152094: Request URI not to be checked sic@ */ + var SipUrl v_RequestURI_MO; + + // Step 1. UE sends a short message + // @siclog "Step 1" siclog@ + // Contents in 34.229-1 Annex A.7.3 + v_IMS_DATA_REQ := f_IMS_MessageRequest_Receive(v_SipUrl_PsiSmsc, f_IMS_MessageRequest_MessageHeaderRX_MO_SMS(v_SipUrl_PsiSmsc)); /* @sic R5s130370 change 4 sic@ */ + v_MESSAGE_RequestRX := v_IMS_DATA_REQ.Request.Message; + v_MessageHeader := v_MESSAGE_RequestRX.msgHeader; + v_RequestURI_MO := v_MESSAGE_RequestRX.requestLine.requestUri; + + if (not f_SIP_SipUrl_Compare(v_RequestURI_MO, f_Addr_Union_GetSipUrl(v_MessageHeader.toField.addressField))) { /* @sic R5-152094: Request URI and To URI shall be the same sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "addr-spec of To header shall be the same as Request URI") + } + v_EncodedSMS := v_MESSAGE_RequestRX.messageBody.smsMessage; + v_MoSMS := f_SMS_PDU_DecodeAndMatchRPDATA(v_EncodedSMS, cr_SMS_RP_DATA_ul_SUBMIT_IMS); + return v_IMS_DATA_REQ; + } + + /* + * @desc To continue expected sequence of 18.1 after initial MESSAGE request + * @param p_IMS_DATA_REQ + * @status APPROVED (IMS) + */ + function f_IMS_MO_SMS_Step2to8(IMS_DATA_REQ p_IMS_DATA_REQ) runs on IMS_PTC + { + var IMS_DATA_REQ v_IMS_DATA_REQ; + var MESSAGE_Request v_MESSAGE_RequestRX := p_IMS_DATA_REQ.Request.Message; + var template (value) MessageHeader v_MessageHeader_MessageMT; + var MessageHeader v_MessageHeader := v_MESSAGE_RequestRX.msgHeader; + var RP_DATA_ul_Type v_MoSMS; + var template (value) RP_ACK_Type v_RPAck_TX; + var RP_ACK_Type v_RPAck; + var octetstring v_EncodedSMS; + var template (value) RP_DATA_dl_Type v_SMSdl_StatusReport; + var SipUrl v_ContactUrl; + var integer v_Port_us; + var InternetProtocol_Type v_Protocol; + var SipUrl v_PAssertedIDUrl; + var bitstring v_Bitstring; + var integer v_CSeqValue := tsc_MESSAGE_CSeqValue; + var SipUrl v_RequestURI_MO := v_MESSAGE_RequestRX.requestLine.requestUri; + var CallidString v_PrevCallId := v_MessageHeader.callId.callid; + var CharStringList_Type v_PrevCallIdList := {}; + + v_PrevCallIdList := f_CharStringList_Add(v_PrevCallIdList, v_PrevCallId); + + v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + v_Port_us := f_IMS_PTC_GetPort_us(); + + v_EncodedSMS := v_MESSAGE_RequestRX.messageBody.smsMessage; + v_Bitstring := oct2bit(v_EncodedSMS); + if (decvalue(v_Bitstring, v_MoSMS) != 0) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "cannot decode v_MoSMS"); + } + + // Step 2. SS responds with 202 Accepted + // @siclog "Step 2" siclog@ + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(p_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine202, f_IMS_Accepted_202_MessageHeaderTX(v_MessageHeader)))); + + // Step 3. SS sends a short message submission report indicating + // a positive acknowledgement of the short message sent by the UE at Step 1 + // Contents in 34.229-1 Annex A.7.4 + // @siclog "Step 3" siclog@ + v_RPAck_TX := cs_RP_ACK_SUBMIT_REPORT(v_MoSMS.rP_MessageReference); + v_EncodedSMS := f_SMS_PDU_EncodeRPACK(v_RPAck_TX); + v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); // @sic R5s130514 change 2 sic@ + v_MessageHeader_MessageMT := f_IMS_MessageRequest_MessageHeaderTX_SubmissionReport(v_Protocol, v_RequestURI_MO, v_PrevCallId, v_CSeqValue); /* @sic R5s130235 change 4a R5-131269 sic@ */ + IMS_Client.send(cas_IMS_Message_Request(cs_IMS_RoutingInfo(v_Protocol), cs_MESSAGE_Request(v_ContactUrl, v_MessageHeader_MessageMT, cs_MessageBody_SMS(v_EncodedSMS)))); + v_PrevCallId := valueof(v_MessageHeader_MessageMT.callId.callid); + v_PrevCallIdList := f_CharStringList_Add(v_PrevCallIdList, v_PrevCallId); + + // Step 4. UE responds with 200 OK + // @siclog "Step 4" siclog@ + f_IMS_ReceiveResponse(v_MessageHeader_MessageMT, v_Protocol, cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_MessageMT))); /* @sic R5s140350 sic@ */ + + // Step 5. SS sends a SIP MESSAGE request including a vnd.3gpp.sms payload that contains a status report + // Contents in 34.229-1 Annex A.7.5 + // @siclog "Step 5" siclog@ + v_SMSdl_StatusReport := cs_RP_DATA_dl_STATUS_REPORT(v_MoSMS.rP_UserData.tP_PDU.SMS_SUBMIT.tP_MessageReference, // Use reference of SMS received in step 1 + v_MoSMS.rP_UserData.tP_PDU.SMS_SUBMIT.tP_DestinationAddress, + v_RPAck_TX.rP_UserData.tP_PDU.SMS_SUBMIT_REPORT.tP_ServiceCentreTimeStamp); + v_EncodedSMS := f_SMS_PDU_EncodeRPDATA(v_SMSdl_StatusReport); + v_MessageHeader_MessageMT := f_IMS_MessageRequest_MessageHeaderTX_StatusReport(v_Protocol, v_RequestURI_MO, v_CSeqValue + 1); /* @sic R5s130235 change 4 R5-131269 sic@ */ + IMS_Client.send(cas_IMS_Message_Request(cs_IMS_RoutingInfo(v_Protocol), cs_MESSAGE_Request(v_ContactUrl, v_MessageHeader_MessageMT, cs_MessageBody_SMS(v_EncodedSMS)))); + v_PrevCallId := valueof(v_MessageHeader_MessageMT.callId.callid); + v_PrevCallIdList := f_CharStringList_Add(v_PrevCallIdList, v_PrevCallId); + + // @siclog "Step 6" siclog@ + f_IMS_ReceiveResponse(v_MessageHeader_MessageMT, v_Protocol, cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_MessageMT))); /* @sic R5s140350 sic@ */ + + // Step 7. UE sends a delivery report for the status report sent at Step 5 + // Contents in 34.229-1 Annex A.7.6 + // @siclog "Step 7" siclog@ + v_PAssertedIDUrl := f_Addr_Union_GetSipUrl(v_MessageHeader_MessageMT.pAssertedID.pAssertedIDValueList[0]); // @sic R5-130685 R5s130235 sic@ + v_IMS_DATA_REQ := f_IMS_MessageRequest_Receive(v_PAssertedIDUrl, + f_IMS_MessageRequest_MessageHeaderRX_DeliveryReport(v_PAssertedIDUrl, v_PrevCallId), + v_PrevCallIdList); /* @sic R5s130235 change 4d R5-131269 sic@ */ + v_MESSAGE_RequestRX := v_IMS_DATA_REQ.Request.Message; + v_MessageHeader := v_MESSAGE_RequestRX.msgHeader; + v_EncodedSMS := v_MESSAGE_RequestRX.messageBody.smsMessage; + v_RPAck := f_SMS_PDU_DecodeAndMatchRPACK(v_EncodedSMS, cr_RP_ACK_ul); // @sic R5-130685 sic@ + f_IMS_PreliminaryPass(__FILE__, __LINE__, "Step 7"); + + // Step 8. SS responds with 202 Accepted + // @siclog "Step 8" siclog@ + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine202, f_IMS_Accepted_202_MessageHeaderTX(v_MessageHeader)))); + } } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_XML_PIDF_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_XML_PIDF_Templates.ttcn similarity index 73% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_XML_PIDF_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_XML_PIDF_Templates.ttcn index 84df9c6..5d2ea42 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_XML_PIDF_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_XML_PIDF_Templates.ttcn @@ -2,18 +2,18 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 17:10:15 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12171 $ +// @version: IWD_15wk38 +// $Date: 2015-05-22 21:31:08 +0200 (Fri, 22 May 2015) $ +// $Rev: 13593 $ /******************************************************************************/ module IMS_XML_PIDF_Templates { -// import from urn_ietf_params_xml_ns_pidf language "XSD" all; - // import from urn_ietf_params_xml_ns_pidf_geopriv10 language "XSD" all; - import from urn_ietf_params_xml_ns_pidf all; - import from urn_ietf_params_xml_ns_pidf_geopriv10 all; + import from urn_ietf_params_xml_ns_pidf language "XSD" all; + import from urn_ietf_params_xml_ns_pidf_geopriv10 language "XSD" all; + // import from urn_ietf_params_xml_ns_pidf all; +// import from urn_ietf_params_xml_ns_pidf_geopriv10 all; import from XSD all; group Alias_Definitions { @@ -23,11 +23,11 @@ module IMS_XML_PIDF_Templates { type Presence_1 PIDF_Presence_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ type Tuple PIDF_Tuple_Type; /* @status */ type Tuple.note_list PIDF_Tuple_Note_List_Type; /* @status */ - type Presence.tuple_list PIDF_Presence_Tuple_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + // type Presence.tuple_list PIDF_Presence_Tuple_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ type Status PIDF_Status_Type; /* @status */ type Status.elem_list PIDF_Status_ElemList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ type Basic PIDF_Basic_Type; /* @status */ - type Presence.note_list PIDF_Presence_Note_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + // type Presence.note_list PIDF_Presence_Note_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ @@ -67,13 +67,11 @@ module IMS_XML_PIDF_Templates { timestamp := p_Timestamp }; - template (present) PIDF_Presence_Type cr_PIDF_Presence_Any (template AnyURI p_Entity := ?, - template (present) PIDF_Presence_Tuple_List_Type p_PIDF_Tuples := ?, - template (present) PIDF_Presence_Note_List_Type p_PIDF_Notes := ?) := + template (present) PIDF_Presence_Type cr_PIDF_Presence_Any (template AnyURI p_Entity := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ entity := p_Entity, - tuple_list := p_PIDF_Tuples, - note_list := p_PIDF_Notes, + tuple_list := ?, + note_list := ?, elem_list := {} }; diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_XML_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_XML_Templates.ttcn similarity index 54% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_XML_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS/IMS_XML_Templates.ttcn index 49de506..64a0504 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_XML_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS/IMS_XML_Templates.ttcn @@ -2,58 +2,59 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-04 18:05:38 +0200 (Fri, 04 Sep 2015) $ +// $Rev: 14182 $ /******************************************************************************/ module IMS_XML_Templates { import from CommonDefs all; import from IMS_CommonDefs all; - // import from urn_ietf_params_xml_ns_reginfo language "XSD" all; -// import from urn_ietf_params_xml_ns_gruuinfo language "XSD" all; -// import from urn_ietf_params_xml_ns_conference_info language "XSD" all; -// import from NoTargetNamespace language "XSD" all; - import from urn_ietf_params_xml_ns_reginfo all; - import from urn_ietf_params_xml_ns_gruuinfo all; - import from NoTargetNamespace all; + import from urn_ietf_params_xml_ns_reginfo language "XSD" all; + import from urn_ietf_params_xml_ns_gruuinfo language "XSD" all; + import from NoTargetNamespace language "XSD" all; +// import from urn_ietf_params_xml_ns_reginfo all; +// import from urn_ietf_params_xml_ns_gruuinfo all; +// import from NoTargetNamespace all; group Alias_Definitions { - type TIMS3GPP TIMS3GPP_Type; /* @status APPROVED (IMS) */ + type Ims_3gpp Ims_3gpp_Type; /* @status APPROVED (IMS, IMS_IRAT) + @sic R5s141138 sic@ */ + type Tstate_and_event_info State_and_event_info_Type; - type Contact.state RegInfo_Contact_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.event RegInfo_Contact_Event_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.unknown_param_list RegInfo_Contact_UnknownParams_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.unknown_param_list[-] RegInfo_Contact_UnknownParam_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.elem_list RegInfo_Contact_ElemList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - type Reginfo.registration_list RegInfo_RegistrationList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Registration RegInfo_Registration_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Reginfo Reginfo_Type with { encode "XML"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + type Contact.state RegInfo_Contact_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.event RegInfo_Contact_Event_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.unknown_param_list RegInfo_Contact_UnknownParams_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.unknown_param_list[-] RegInfo_Contact_UnknownParam_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.elem_list RegInfo_Contact_ElemList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + type Reginfo.registration_list RegInfo_RegistrationList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Registration RegInfo_Registration_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Reginfo Reginfo_Type with { encode "XML"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130474: encoding rule sic@ */ - type Reginfo_Type.state Reginfo_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Registration.state RegInfo_Registration_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type Reginfo_Type.state Reginfo_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Registration.state RegInfo_Registration_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - type PubGruu PubGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type TempGruu TempGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type PubGruu PubGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type TempGruu TempGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ } with { encode "XML"}; // @sic R5s130474 sic@ //---------------------------------------------------------------------------- - template (value) Pub_gruu cs_PubGruu(charstring p_PublicUserId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - uri := cs_IMS_ArbitraryValueFor_gr(p_PublicUserId) + template (value) Pub_gruu cs_XML_PubGruu(template (value) charstring p_PubGruuUri) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + uri := p_PubGruuUri }; - template (value) Temp_gruu cs_TempGruu(charstring p_HomeDomainName, - integer p_Cseq) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) Temp_gruu cs_XML_TempGruu(template (value) charstring p_TempGruuUri, + integer p_Cseq) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ first_cseq := p_Cseq, - uri := cs_IMS_TempGRUUForUE(p_HomeDomainName) + uri := p_TempGruuUri }; /* @@ -61,7 +62,7 @@ module IMS_XML_Templates { * @param p_PubGruu (default value: omit) * @param p_TempGruu (default value: omit) * @return RegInfo_Contact_ElemList_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_RegInfo_GruuExtension(template (omit) PubGruu_Type p_PubGruu := omit, template (omit) TempGruu_Type p_TempGruu := omit) return RegInfo_Contact_ElemList_Type @@ -80,19 +81,19 @@ module IMS_XML_Templates { //---------------------------------------------------------------------------- - template (value) RegInfo_Contact_UnknownParam_Type cs_XML_UEInstance(charstring p_UEInstanceId := tsc_IMS_UEInstanceId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - /* NOTE: p_UEInstanceId may need to be URL encoded (-> f_URL_Encoding) */ - name := p_UEInstanceId, - base := "+sip.instance" + template (value) RegInfo_Contact_UnknownParam_Type cs_XML_UEInstance(charstring p_UEInstanceId) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic R5-153760 - Support of GRUU: base is the content, name is "+sip.instance" sic@ */ + name := "+sip.instance", + base := f_HTML_Encoding(p_UEInstanceId) /* @sic R5-153760: f_HTML_Encoding sic@ */ }; - template (value) Registration cs_RegistrationInfo(template (value) Contact p_Contact, - charstring p_PublicUserId, - charstring p_Id, - RegInfo_Registration_State_Type p_State) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - aor := p_PublicUserId, + template (value) Registration cs_XML_RegistrationInfo(template (value) Contact p_Contact, + charstring p_Aor, + charstring p_Id, + RegInfo_Registration_State_Type p_State) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + aor := p_Aor, id := p_Id, state := p_State, contact_list := { @@ -103,17 +104,17 @@ module IMS_XML_Templates { //---------------------------------------------------------------------------- - template (value) Contact cs_RegistrationContact(charstring p_ContactUri, - charstring p_Id, - RegInfo_Contact_State_Type p_State, - RegInfo_Contact_Event_Type p_Event, - template (omit) charstring p_CallId := omit, - template (omit) integer p_Cseq := omit, - template (omit) integer p_Expires := omit, - template (value) RegInfo_Contact_UnknownParams_Type p_UnknownParams := {}, - template (omit) Pub_gruu p_PubGruu := omit, - template (omit) Temp_gruu p_TempGruu := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) Contact cs_XML_RegistrationContact(charstring p_ContactUri, + charstring p_Id, + RegInfo_Contact_State_Type p_State, + RegInfo_Contact_Event_Type p_Event, + template (omit) charstring p_CallId := omit, + template (omit) integer p_Cseq := omit, + template (omit) integer p_Expires := omit, + template (value) RegInfo_Contact_UnknownParams_Type p_UnknownParams := {}, + template (omit) Pub_gruu p_PubGruu := omit, + template (omit) Temp_gruu p_TempGruu := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ callid := p_CallId, cseq := p_Cseq, duration_registered := omit, @@ -134,7 +135,7 @@ module IMS_XML_Templates { template (value) Reginfo cs_XML_Reginfo(Reginfo_State_Type p_State, integer p_Version, template (value) RegInfo_RegistrationList_Type p_Registrations) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ state := p_State, version := p_Version, registration_list := p_Registrations, @@ -147,7 +148,7 @@ module IMS_XML_Templates { * @param p_Version (default value: 0) * @param p_Registrations * @return template (value) Reginfo - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_XML_RegInfo(Reginfo_State_Type p_State := full, integer p_Version := 0, @@ -162,26 +163,25 @@ module IMS_XML_Templates { * @param p_Type * @param p_Reason (default value: "") * @param p_Action (default value: omit) - * @return template (value) TIMS3GPP_Type - * @status APPROVED (IMS) + * @return template (value) Ims_3gpp_Type + * @status APPROVED (IMS, IMS_IRAT) */ - function f_IMS_TIMS3GPP_TX(Type p_Type, + function f_IMS_Ims_3gpp_TX(Type p_Type, charstring p_Reason := "", - template (omit) Action p_Action := omit) return template (value) TIMS3GPP_Type - { - var template (value) TIMS3GPP_Type v_TIMS3GPP; + template (omit) Action p_Action := omit) return template (value) Ims_3gpp_Type + { // @sic R5s141138 sic@ + var template (value) Ims_3gpp_Type v_Ims3gpp; var TAlternativeService.elem_list v_AnyElements := {}; if (ispresent(p_Action)) { - v_AnyElements := {"" & valueof(p_Action) & ""} // @sic R5s140490 sic@ + v_AnyElements := {oct2char(bit2oct(encvalue(p_Action)))}; // @sic R5s140490 sic@ @sic R5s140856r1 sic@ } - v_TIMS3GPP := { + v_Ims3gpp := { version := 1.0, attr := omit, choice := { - alternative_service := - { + alternative_service := { attr := omit, type_ := p_Type, reason := p_Reason, @@ -190,10 +190,25 @@ module IMS_XML_Templates { }, elem_list := {} }; - return v_TIMS3GPP; + return v_Ims3gpp; } + + // @sic R5s141138 sic@ + template (value) Ims_3gpp_Type cs_Ims_3gpp_Emergency(template (omit) Action p_Action := omit) := f_IMS_Ims_3gpp_TX("emergency", -, p_Action); /* @status APPROVED (IMS, IMS_IRAT) */ + template (value) Ims_3gpp_Type cs_Ims_3gpp_Restoration(template (omit) Action p_Action := "initial-registration") := f_IMS_Ims_3gpp_TX("restoration", -, p_Action); /* @status APPROVED (IMS) */ - template (value) TIMS3GPP_Type cs_TIMS3GPP_Emergency(template (omit) Action p_Action := omit) := f_IMS_TIMS3GPP_TX("emergency", -, p_Action); /* @status APPROVED (IMS) */ - template (value) TIMS3GPP_Type cs_TIMS3GPP_Restoration(template (omit) Action p_Action := "initial-registration") := f_IMS_TIMS3GPP_TX("restoration", -, p_Action); /* @status APPROVED (IMS) */ + template (value) State_and_event_info_Type cs_State_and_event_info(template (omit) charstring p_State, + template (value) DirectionType p_Direction, + template (omit) charstring p_Event) := + { + attr := omit, + state_info := p_State, + direction := p_Direction, + event := p_Event, + anyExt := omit, + elem_list := {} + } + template (value) DirectionType cs_DirectionReceiver := receiver; + template (present) DirectionType cr_DirectionInitiator := initiator; } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_Common.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_Common.ttcn similarity index 68% rename from IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_Common.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_Common.ttcn index 52b1a73..c12a83b 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_Common.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_Common.ttcn @@ -2,18 +2,20 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ - +/** + * @author STF160, STF471 + * @version $Id: LibSip_Common.ttcn 12281 2014-09-23 14:32:36Z seka $ + * @desc This module provides the common definitions for SIP messages. + * This module is part of LibSipV3. +*/ module LibSip_Common { - type set length (1..infinity) of charstring Charstring_List; // @sic R5w140113, R5w140009: new common definition sic@ - - //------------------------------------------------------------------------------ - // @sic R5w140113, R5w140009: moved from LibSip_SIPTypesAndValues: sic@ + type set length (1..infinity) of charstring Charstring_List; // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31, // 20.33, 20.34, 20.39, 20.42, 20.44] @@ -40,5 +42,7 @@ module LibSip_Common { type set of GenericParam CommaParam_List; //------------------------------------------------------------------------------ - } +with { + encode "LibSip V3"; +} // end module LibSip_Common diff --git a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn index 37bd398..8272599 100644 --- a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn @@ -2,16 +2,15 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-04-11 22:35:20 +0200 (Fri, 11 Apr 2014) $ -// $Rev: 11180 $ +// @version: IWD_15wk38 +// $Date: 2014-09-19 10:54:18 +0200 (Fri, 19 Sep 2014) $ +// $Rev: 12255 $ /******************************************************************************/ module LibSip_MessageBodyTypes { - import from LibSip_SDPTypes all; import from LibSip_SimpleMsgSummaryTypes all; type charstring XmlBody; diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SDPTypes.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SDPTypes.ttcn similarity index 92% rename from IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SDPTypes.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SDPTypes.ttcn index a69769a..6e1f691 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SDPTypes.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SDPTypes.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ /** * @author STF 346, STF366, STF368, STF369, STF450, STF471 - * @version $Id: LibSip_SDPTypes.ttcn 620 2014-07-10 07:26:06Z nikolajev $ + * @version $Id: LibSip_SDPTypes.ttcn 636 2014-09-18 11:44:10Z rennoch $ * @desc This module defines message, attribute, structured and simple * SDP types as well constants used by LipSip constructs.
* Note that any changes made to the definitions in this module @@ -18,12 +18,9 @@ * module regarding their modifications or additions * This module is part of LibSipV3. * @remark Adding of new attributes types is ok; Adding of new optional attributes in @see SDP_attribute type is ok; Existing attribute types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org - * @remark Changes done by MCC160: - * - import statements changed to avoid circular imports: import of LibSip_SIPTypesAndValues replaced by LibSip_Common */ module LibSip_SDPTypes { - //import from LibSip_SIPTypesAndValues all; MCC160: causes circuler imports - import from LibSip_Common all; // MCC160: to avoid circuler imports + import from LibSip_Common all; group Constants { group SimpleConstants { // SDP net_type @@ -174,53 +171,57 @@ module LibSip_SDPTypes { charstring attr_value optional } - type record SDP_attribute_maxptime { + type record SDP_attribute_maxptime { charstring attr_value } - type record SDP_attribute_tcap { + type record SDP_attribute_tcap { integer trpr_cap_num, Charstring_List proto_list } - type record SDP_attribute_pcfg { + type record SDP_attribute_pcfg { integer config_number, Charstring_List pot_cfg_list optional } - type record SDP_attribute_acfg { + type record SDP_attribute_acfg { integer config_number, Charstring_List sel_cfg_list optional } - type record SDP_attribute_ecn_capable_rtp { + type record SDP_attribute_ecn_capable_rtp { Charstring_List init_list, Charstring_List parm_list optional } - type record SDP_attribute_rtcp_fb { + type record SDP_attribute_rtcp_fb { charstring rtcp_fb_pt, charstring rtcp_fb_val } - type record SDP_attribute_rtcp_xr { + type record SDP_attribute_rtcp_xr { Charstring_List xr_format_list optional } - type record SDP_attribute_rtcp_rsize { + type record SDP_attribute_rtcp_rsize { } - type record SDP_attribute_3ge2ae { + type record SDP_attribute_3ge2ae { charstring indicator } - type record SDP_attribute_crypto { + type record SDP_attribute_crypto { charstring tag, charstring crypto_suite, charstring key_params, Charstring_List session_params optional } + type record SDP_attribute_content { + Charstring_List content_params + } + type union SDP_attribute { SDP_attribute_cat cat, SDP_attribute_keywds keywds, @@ -254,6 +255,7 @@ module LibSip_SDPTypes { SDP_attribute_rtcp_rsize rtcp_rsize, SDP_attribute_3ge2ae e2ae, SDP_attribute_crypto crypto, + SDP_attribute_content content, //* unknown has to be the last else encoding/decoding won't work! SDP_attribute_unknown unknown } diff --git a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn index f7f5b06..7351179 100644 --- a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ /** - * @author STF 346, STF366, STF368, STF369, STF450, STF471 - * @version $Id: LibSip_SIPTypesAndValues.ttcn 623 2014-08-18 12:22:28Z rennoch $ + * @author STF 346, STF366, STF368, STF369, STF450, STF471, STF160 + * @version $Id: LibSip_SIPTypesAndValues.ttcn 636 2014-09-18 11:44:10Z rennoch $ * @desc This module defines message, header, structured and simple SIP * types as well constants used by LipSip constructs.
* Note that any changes made to the definitions in this module @@ -19,22 +19,10 @@ * This module is part of LibSipV3. * @remark Adding of new message and header types is ok; Adding of new optional header fields in * @see MessageHeader type is ok but should be done at same time as dummy template updates; Existing message or header types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org - * @remark Changes done by MCC160: - * - import statements changed to avoid circular imports - * - import of LibSip_Common - * - types of LibSip_Common are commented out (Charstring_List, GenValue, GenericParam, SemicolonParam_List, AmpersandParam_List, CommaParam_List) - * - import statements changed to avoid dependency of PIXITs - * - import of LibSip_PIXITS commented out - * - c_mimeMultipart commented out - * - definition of DisplayName added - * - NameAddr changed to use DisplayName instead charstring (acc. to R5w140111) - * - featureCaps restored in MessageHeader - * - encoding rule "SIPCodec" added to types Request, *_Request, RequestUnion, Response (note: how to deal with this in the future is FFS) */ module LibSip_SIPTypesAndValues { import from LibSip_MessageBodyTypes all; - //import from LibSip_PIXITS all; MCC160: type definitions shall not import PIXITs - import from LibSip_Common all; // MCC160: to avoid circuler imports + import from LibSip_Common all; group Constants { group SimpleConstants { @@ -95,9 +83,6 @@ module LibSip_SIPTypesAndValues { // XML name resource-list const charstring c_xmlresourcelistApplication := "application/resource-lists+xml"; -/* // MIME name application */ -/* const charstring c_mimeMultipart := "multipart/mixed;boundary=""" & PX_SIP_MIME_BOUNDARY & """"; */ - // IMS 3GPP name application const charstring c_ims3gppApplication := "application/3gpp-ims+xml"; @@ -125,8 +110,7 @@ module LibSip_SIPTypesAndValues { // text content of 1300 bytes for messages with message body const charstring c_longMessageContent_1300Bytes := "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & - "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & oct2char('0D'O) & oct2char('0A'O); - // CRLF + "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & oct2char('0D'O) & oct2char('0A'O); // CRLF // Default SIP port number : 5060 const integer c_defaultSipPort := 5060; @@ -169,8 +153,7 @@ module LibSip_SIPTypesAndValues { const PrivacyValue c_privacy_session := "session"; // - const charstring c_AT := "@"; - // MRO + const charstring c_AT := "@"; // MRO const charstring c_SP := oct2char('20'O); const charstring c_SLASH := oct2char('2F'O); const charstring c_LT := oct2char('3C'O); @@ -291,8 +274,7 @@ module LibSip_SIPTypesAndValues { headers := omit }; - const To c_empty_To := { - // value of To header + const To c_empty_To := { // value of To header fieldName := TO_E, addressField := { nameAddr := { @@ -538,7 +520,10 @@ module LibSip_SIPTypesAndValues { SESSION_ID_E, SIP_ETAG_E, SIP_IF_MATCH_E, - FEATURE_CAPS_E + FEATURE_CAPS_E, + // 6086 + RECV_INFO_E, + INFO_PACKAGE_E } // [7.1 ] @@ -567,35 +552,10 @@ module LibSip_SIPTypesAndValues { UNKNOWN_METHOD_E } -/* type union GenValue { */ -/* charstring tokenOrHost, */ -/* charstring quotedString */ -/* } */ - -/* // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31, */ -/* // 20.33, 20.34, 20.39, 20.42, 20.44 ] */ -/* type record GenericParam { */ -/* charstring id, */ -/* GenValue paramValue optional */ -/* } */ - -/* // [? ] */ -/* type set of GenericParam SemicolonParam_List; */ - -/* // [? ] */ -/* type set of GenericParam AmpersandParam_List; */ - -/* // [? ] */ -/* type set of GenericParam CommaParam_List; */ - -/* type set length (1..infinity) of charstring Charstring_List; */ - // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43 ] type record HostPort { - charstring host optional, - // hostname, IPv4 or IPv6 - integer portField - optional // represented as an integer + charstring host optional, // hostname, IPv4 or IPv6 + integer portField optional // represented as an integer } // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ] @@ -618,41 +578,30 @@ module LibSip_SIPTypesAndValues { * @member urlParameters Contains either SIP or TEL URL parameters, separated by semicolons, e.g. transport=tcp or user=phone * @member headers Additional information added after the parameters, e.g. priority=urgent */ - type record SipUriComponents { - // sip-uri acc. to RFC 3261 cl. 19.1 + type record SipUriComponents { // sip-uri acc. to RFC 3261 cl. 19.1 UserInfo userInfo optional, HostPort hostPort } - type record TelUriComponents { - // tel-uri acc. to RFC 3966 + type record TelUriComponents { // tel-uri acc. to RFC 3966 charstring subscriber } - type record UrnUriComponents { - // urn-uri acc. to RFC 2141 - charstring namespaceId, - // e.g. "service" as acc. to RFC 5031 - charstring - namespaceSpecificString // e.g. "sos" + type record UrnUriComponents { // urn-uri acc. to RFC 2141 + charstring namespaceId, // e.g. "service" as acc. to RFC 5031 + charstring namespaceSpecificString // e.g. "sos" } type union UriComponents { - SipUriComponents sip, - // scheme: "sip" or sips" - TelUriComponents tel, - // scheme: "tel" - UrnUriComponents urn, - // scheme: "urn" - charstring - other // scheme: none of the above schemes + SipUriComponents sip, // scheme: "sip" or sips" + TelUriComponents tel, // scheme: "tel" + UrnUriComponents urn, // scheme: "urn" + charstring other // scheme: none of the above schemes } type record SipUrl { - charstring scheme, - // e.g "sip" or "tel" - UriComponents components, - // corresponding to the scheme + charstring scheme, // e.g "sip" or "tel" + UriComponents components, // corresponding to the scheme SemicolonParam_List urlParameters optional, AmpersandParam_List headers optional } @@ -668,8 +617,7 @@ module LibSip_SIPTypesAndValues { // [20.4 ] type record AlertInfoBody { - charstring url, - // any URI + charstring url, // any URI SemicolonParam_List genericParams optional } @@ -684,8 +632,7 @@ module LibSip_SIPTypesAndValues { // [20.9 ] type record CallInfoBody { - charstring url, - // any URI + charstring url, // any URI SemicolonParam_List infoParams optional } @@ -699,24 +646,22 @@ module LibSip_SIPTypesAndValues { } // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ] - type union DisplayName // MCC160: missing type + type union DisplayName { charstring token, charstring quotedString } - + // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ] type record NameAddr { - DisplayName displayName optional, // MCC160: type corected -/* charstring displayName optional, */ + DisplayName displayName optional, SipUrl addrSpec } // [20.10, 20.20, 20.31, 20.39 ] type union Addr_Union { NameAddr nameAddr, - SipUrl - addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field + SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field } // [20.10 ] @@ -726,8 +671,7 @@ module LibSip_SIPTypesAndValues { } // [20.10 ] - type set of ContactAddress ContactAddress_List; - // 1 or more elements + type set of ContactAddress ContactAddress_List; // 1 or more elements // [20.10 ] type union ContactBody { charstring wildcard, @@ -750,12 +694,10 @@ module LibSip_SIPTypesAndValues { type record of Credentials CredentialsList; // [20.19, 20.23, 20.33 ] - type charstring DeltaSec; - // an external operation can handle this field + type charstring DeltaSec; // an external operation can handle this field // [20.18 ] type record ErrorInfoBody { - charstring uri, - // any URI + charstring uri, // any URI SemicolonParam_List genericParams optional } @@ -780,14 +722,12 @@ module LibSip_SIPTypesAndValues { // [20.5 ] type set of charstring Method_List; - // [20.29, 20.32, 20.37, 20.40 ] type charstring OptionTag; // [20.29, 20.32, 20.37, 20.40 ] type set of OptionTag OptionTag_List; - // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2 ] type record OtherAuth { charstring authScheme, @@ -823,10 +763,8 @@ module LibSip_SIPTypesAndValues { // [20.38 ] type record TimeValue { - integer majorDigit, - // represented as an integer - integer minorDigit - optional // represented as an integer + integer majorDigit, // represented as an integer + integer minorDigit optional // represented as an integer } // [20.42 ] @@ -847,8 +785,7 @@ module LibSip_SIPTypesAndValues { // [20.43 ] type record WarningValue { - integer warnCode, - // represented as an integer + integer warnCode, // represented as an integer WarnAgent warnAgent, charstring warnText } @@ -922,8 +859,7 @@ module LibSip_SIPTypesAndValues { // [20.7 RFC2617 3.2.2 ] type record Authorization { FieldName fieldName (AUTHORIZATION_E) , - CredentialsList - body // changed from Credentials to allow multiple Authorization headers + CredentialsList body // changed from Credentials to allow multiple Authorization headers } // [20.8 ] @@ -966,8 +902,7 @@ module LibSip_SIPTypesAndValues { // [20.14 ] type record ContentLength { FieldName fieldName (CONTENT_LENGTH_E) , - integer - len // this field is represented as an integer + integer len // this field is represented as an integer } // [20.15 ] @@ -979,8 +914,7 @@ module LibSip_SIPTypesAndValues { // [20.16 ] type record CSeq { FieldName fieldName (CSEQ_E) , - integer seqNumber, - // this field is represented as an integer + integer seqNumber, // this field is represented as an integer charstring method } @@ -1024,8 +958,7 @@ module LibSip_SIPTypesAndValues { // [20.22 ] type record MaxForwards { FieldName fieldName (MAX_FORWARDS_E) , - integer - forwards // this field is represented as an integer + integer forwards // this field is represented as an integer } // [20.23 ] @@ -1037,10 +970,8 @@ module LibSip_SIPTypesAndValues { // [20.24 RFC2616 19.4.1 ] type record MimeVersion { FieldName fieldName (MIME_VERSION_E) , - integer majorNumber, - // this field is represented as an integer - integer - minorNumber // this field is represented as an integer + integer majorNumber, // this field is represented as an integer + integer minorNumber // this field is represented as an integer } // [20.25 ] @@ -1080,6 +1011,26 @@ module LibSip_SIPTypesAndValues { RouteBody_List routeBody } + type set of InfoPackage_Type InfoPackage_List; + + type record InfoPackage_Type { + charstring infoPackageName, + SemicolonParam_List infoPackageParams optional + + } + + //[6086] + type record RecvInfo { + FieldName fieldName(RECV_INFO_E), + InfoPackage_List infoPackageList + } + + //[6086] + type record InfoPackage { + FieldName fieldName(INFO_PACKAGE_E), + InfoPackage_Type infoPackageType + } + // [20.31 ] type record ReplyTo { FieldName fieldName (REPLY_TO_E) , @@ -1230,8 +1181,7 @@ module LibSip_SIPTypesAndValues { PMediaAuthorization_List pMediaAuthorizations } - type charstring PMediaAuthValue; - // HEXDIG "0"-"9", "A"-"F" + type charstring PMediaAuthValue; // HEXDIG "0"-"9", "A"-"F" type record of PMediaAuthValue PMediaAuthorization_List; @@ -1607,6 +1557,7 @@ module LibSip_SIPTypesAndValues { // @sic R5-133151 update of header fields sic@ HistoryInfo historyInfo optional, // 4244 + InfoPackage infoPackage optional, //6086 InReplyTo inReplyTo optional, // only in requests MaxForwards maxForwards optional, @@ -1659,6 +1610,7 @@ module LibSip_SIPTypesAndValues { Reason reason optional, // 3326 RecordRoute recordRoute optional, + RecvInfo recvInfo optional, //6086 RequestDisposition requestDisposition optional, // 3841 ReferredBy referredBy optional, @@ -1930,7 +1882,8 @@ module LibSip_SIPTypesAndValues { PUBLISH_Request Publish, UPDATE_Request Update, REFER_Request Refer, - MESSAGE_Request Message + MESSAGE_Request Message, + INFO_Request Info// [2976 ] } with { encode "SIPCodec"} } // end group RequestTypes diff --git a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn rename to IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn index c874318..c037246 100644 --- a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ /** diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/AlternativeService.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/AlternativeService.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/AlternativeService.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/AlternativeService.xsd diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC3680_reginfo.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC3680_reginfo.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC3680_reginfo.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC3680_reginfo.xsd diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC3863_pdif.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC3863_pdif.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC3863_pdif.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC3863_pdif.xsd diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC4575_conference_info.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC4575_conference_info.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC4575_conference_info.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC4575_conference_info.xsd diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC5628_gruuinfo.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC5628_gruuinfo.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/RFC5628_gruuinfo.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/RFC5628_gruuinfo.xsd diff --git a/IMS_PART4_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd new file mode 100644 index 0000000..e70917b --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/xml.xsd b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/xml.xsd similarity index 95% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/xml.xsd rename to IMS_PART4_IWD_15wk38/Common/IMS_XSD/xml.xsd index 3e391d7..5f9b416 100644 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/xml.xsd +++ b/IMS_PART4_IWD_15wk38/Common/IMS_XSD/xml.xsd @@ -1,5 +1,5 @@ - + diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn similarity index 63% rename from LTE_A_IWD_14wk37/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn index 95bca81..c7a868d 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn @@ -2,21 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-17 14:36:46 +0200 (Tue, 17 Jun 2014) $ -// $Rev: 11745 $ +// @version: IWD_15wk38 +// $Date: 2015-06-04 19:23:42 +0200 (Thu, 04 Jun 2015) $ +// $Rev: 13657 $ /******************************************************************************/ -/** - * Note: 'Thin' Http type defs describing the structures relevant - * for the supplementary services test cases 34.229-1 section 15. - */ - module HTTP_ASP_TypeDefs { import from CommonDefs all; - import from IP_ASP_TypeDefs all; // TLSInfo_Type + import from IP_ASP_TypeDefs all; import from LibSip_SIPTypesAndValues all; // NOTE: the same header definitions are used for HTTP as for SIP (Authorization, ContentType, WwwAuthenticate, AuthenticationInfo, Expires) group HTTP_ASP_Definitions { @@ -24,25 +19,18 @@ module HTTP_ASP_TypeDefs { //---------------------------------------------------------------------------- // HTTP Control - type record HttpRoutingInfo_Type { /* Routing info to distinguish HTTP data for XCAP server and BSF */ - charstring serverAddr, /* IP address of simulated server */ - integer serverPort /* Port number of simulated server */ + type record HttpServerInfo_Type { + IP_AddrInfo_Type serverAddr, /* IP address of simulated server */ + PortNumber_Type serverPort, /* Port number of simulated server */ + IP_DrbInfo_Type drbInfo, /* DRB info as used by the IP PTC (LTE model, see TS 36.523-3 [30]) */ + TLSInfo_Type tlsInfo optional /* Description of the TLS connection to be used */ }; - type enumerated HttpAuthenticationMechanism_Type { - noAuthentication, /* no authentication (NOTE: In general "no authentication" is not applicable to conformance testing) */ - httpDigestAuthentication, /* HTTP digest authentication according to 24.623[36] clause 5.2.3.2 and RFC 2617 [37] */ - gaaAuthentication /* GAA based authentication according to 33.222 [35] and 24.109 [33] */ - }; - + type record length (1 .. infinity) of HttpServerInfo_Type HttpServerList_Type; type record HTTP_CTRL_REQ { /* ASP type to configure the http layer; when any of the optional fields is omitted the previous configuration of this field is kept */ - HttpAuthenticationMechanism_Type authenticationMechanism optional, /* Authentication mechanism */ - TLSInfo_Type tlsInfo optional, /* Description of the TLS connection to be used */ - HttpRoutingInfo_Type xcapServer optional, /* IP address and port of simulated XCAP server */ - HttpRoutingInfo_Type bsfServer optional, /* IP address and port of simulated BSF server */ - IP_DrbInfo_Type drbInfo optional /* DRB info as used by the IP PTC (LTE model, see TS 36.523-3 [30]) */ + HttpServerList_Type httpServerList optional /* IP address and port of simulated HTTP servers */ }; type record HTTP_CTRL_CNF { /* ASP type to confirm HTTP_CTRL_REQ */ @@ -54,12 +42,14 @@ module HTTP_ASP_TypeDefs { type record HTTP_DATA_IND { /* ASP type for sending a message from the http layer to TTCN; it transports relevant information of a http Request from the UE to the Tester */ - HttpRoutingInfo_Type routingInfo, /* to distinguish BSF and XCAP server */ + IP_Connection_Type routingInfo, /* TCP connection from which the request has been received; + => response shall use the same */ HttpRequest_Type httpRequest }; type record HttpRequest_Type { HttpRequestLine_Type requestLine, /* RFC 2616 clause 5.1 */ + UserAgent userAgent optional, /* User Agent according to RFC 2616 [27] clause 14.43 */ Authorization authorization optional, /* Authorization in RFC 2616 [27] clause 14.8 (optional; NOTE: Same type definition as for SIP type definitions) */ ContentType contentType optional, /* Content-Type in RFC 2616 [27] clause 14.17 (optional, NOTE: Same type definition as for SIP type definitions) */ charstring x3GPPIntendedIdentity optional, /* 3GPP TS 24.109 [33] clause G.2 */ @@ -68,16 +58,20 @@ module HTTP_ASP_TypeDefs { type record HttpResponse_Type { HttpStatusLine_Type statusLine, /* Status-Line in RFC 2616 [27] clause 6.1 */ + Date date optional, /* Date according to RFC 2616 [27] clause 14.18 */ + SIP_ETag eTag optional, /* ETag according to RFC 2616 [27] clause 14.19 */ + Server server optional, /* Server according to RFC 2616 [27] clause 14.38 */ WwwAuthenticate wwwauthenticate optional, /* WWW-Authenticate in RFC 2616 [27] clause 14.47 (NOTE: Same type definition as for SIP type definitions) */ AuthenticationInfo authenticationInfo optional, /* Authentication-Info in RFC 2617 [37] clause 3.2.3 (NOTE: Same type definition as for SIP type definitions) */ ContentType contentType optional, /* Content-Type in RFC 2616 [27] clause 14.17 (NOTE: Same type definition as for SIP type definitions) */ + ContentLength contentLength optional, /* Content-Length in RFC 2616 [27] clause 14.13 (NOTE: Same type definition as for SIP type definitions) */ Expires expires optional, /* Expires in RFC 2616 [27] clause 14.21 (NOTE: Same type definition as for SIP type definitions) */ charstring messageBody optional /* MTSI XCAP Message (XML document or XML fragment) */ }; type record HTTP_DATA_REQ { /* ASP type for sending messages from TTCN to the http layer; it transports information needed by the http layer to generate a http Response to the UE */ - HttpRoutingInfo_Type routingInfo, /* to distinguish BSF and XCAP server */ + IP_Connection_Type routingInfo, /* TCP connection to be used in DL: shall be the same as for corresponding request */ HttpResponse_Type httpResponse }; @@ -96,24 +90,8 @@ module HTTP_ASP_TypeDefs { } with { encode "HttpCodec" } //============================================================================ - // Common templates: - template (present) HttpRoutingInfo_Type cr_HttpRoutingInfo(template (present) charstring p_ServerAddr := ?, - template (present) integer p_ServerPort := ?) := - { /* @status APPROVED (IMS) */ - serverAddr := p_ServerAddr, - serverPort := p_ServerPort - }; - - template (value) HttpRoutingInfo_Type cs_HttpRoutingInfo(charstring p_ServerAddr, - integer p_ServerPort) := - { /* @status APPROVED (IMS) */ - serverAddr := p_ServerAddr, - serverPort := p_ServerPort - }; - - //============================================================================ - // Port definitions + group HTTP_Port_Definitions { type port HTTP_CTRL_PORT message { @@ -139,4 +117,6 @@ module HTTP_ASP_TypeDefs { in HTTP_DATA_REQ; }; + } // group HTTP_Port_Definitions + } diff --git a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_ASP_Common.ttcn b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_ASP_Common.ttcn similarity index 94% rename from IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_ASP_Common.ttcn rename to IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_ASP_Common.ttcn index 1a09306..72aeda3 100644 --- a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_ASP_Common.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_ASP_Common.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-08-25 20:30:56 +0200 (Sun, 25 Aug 2013) $ // $Rev: 9371 $ /******************************************************************************/ diff --git a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_ASP_TypeDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_ASP_TypeDefs.ttcn similarity index 93% rename from IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_ASP_TypeDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_ASP_TypeDefs.ttcn index 00288be..6b61403 100644 --- a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_ASP_TypeDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_ASP_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-26 19:34:53 +0200 (Mon, 26 May 2014) $ -// $Rev: 11335 $ +// @version: IWD_15wk38 +// $Date: 2015-09-09 14:11:58 +0200 (Wed, 09 Sep 2015) $ +// $Rev: 14251 $ /******************************************************************************/ module IP_ASP_TypeDefs { @@ -61,6 +61,8 @@ module IP_ASP_TypeDefs { IP_AddrInfo_Type IpAddr optional, /* IP address */ PortNumber_Type Port optional /* port number */ }; + + type record of IP_Socket_Type IP_SocketList_Type; type enumerated InternetProtocol_Type { udp, @@ -135,35 +137,42 @@ module IP_ASP_TypeDefs { * => for L2 testing in general (and apart from the preamble) there is no need to use/configure the IP_PTC; the configuration of the RAT specific U-plane stacks is not affected */ + type enumerated IP_DataMode_Type { + discard, + loopbackRTP, + loopbackRTCP + }; + type record IP_RoutingInfo_Type { - IP_Connection_Type IpInfo, /* IP connection tuple: protocol, local socket, remote socket - * depending on the role the SS plays the following information may be provided - * (informative; even less information can be sufficient): - * 1. TCP/UDP server - * - local IP addr -- provided - * - local port -- provided - * - remote IP addr -- omit - * - remote port -- omit - * 2. TCP/UDP client - * - local IP addr -- provided - * (to inform SS about the local IP addr for this service) - * - local port -- omit; - * for UDP a well-defined port may be defined - * (protocol dependent, e.g. DHCP) - * - remote IP addr -- provided - * - remote port -- provided - * 3. ICMP (in general ICMP may be mapped only to a single DRB) - * - local IP addr -- provided - * (to inform SS about the local IP addr for this service) - * - local port -- n/a (shall be set to omit) - * - remote IP addr -- omit - * - remote port -- n/a (shall be set to omit) - * - * NOTE: - * In case of broadcasts in UL the broadcast address shall match any local IP address; - * in DL for broadcast services typically no remote IP address is specified in the routing table - */ - IP_DrbInfo_Type DRB + IP_Connection_Type IpInfo, /* IP connection tuple: protocol, local socket, remote socket + * depending on the role the SS plays the following information may be provided + * (informative; even less information can be sufficient): + * 1. TCP/UDP server + * - local IP addr -- provided + * - local port -- provided + * - remote IP addr -- omit + * - remote port -- omit + * 2. TCP/UDP client + * - local IP addr -- provided + * (to inform SS about the local IP addr for this service) + * - local port -- omit; + * for UDP a well-defined port may be defined + * (protocol dependent, e.g. DHCP) + * - remote IP addr -- provided + * - remote port -- provided + * 3. ICMP (in general ICMP may be mapped only to a single DRB) + * - local IP addr -- provided + * (to inform SS about the local IP addr for this service) + * - local port -- n/a (shall be set to omit) + * - remote IP addr -- omit + * - remote port -- n/a (shall be set to omit) + * + * NOTE: + * In case of broadcasts in UL the broadcast address shall match any local IP address; + * in DL for broadcast services typically no remote IP address is specified in the routing table + */ + IP_DrbInfo_Type DRB, + IP_DataMode_Type DataMode optional /* present when IP packets matching this entry shall be discarded or be looped back to the UE as defined for RTP or RTCP */ }; type record of IP_RoutingInfo_Type IP_RoutingTable_Type; /* NOTE: configurations of DRBs within the same cell shall be mutual exclusive */ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn similarity index 59% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn rename to IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn index 97efa7f..74a8357 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ @@ -30,6 +30,10 @@ module IP_PTC_CtrlMsgs { PDN_Index_Type PdnId }; + type record IP_ChangeDrbInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + PDN_Index_Type PdnId, + IP_DrbInfo_Type DrbInfo + }; type record IP_SendRouterAdvertisement_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ PDN_Index_Type PdnId @@ -41,9 +45,11 @@ module IP_PTC_CtrlMsgs { IP_Start_Type StartIP, IP_Stop_Type StopIP, /* @sic R5s131000: Null_Type replaced by IP_Stop_Type sic@ */ Null_Type GeranCnf, /* e.g. to confirm GeranTrigger */ - IP_DrbInfo_Type ChangeCell, /* @sic R5-125676: enhancement for IRAT sic@ */ + IP_ChangeDrbInfo_Type ChangeDrbInfo, /* @sic R5s150648 Change 5.1 sic@ */ + EUTRA_CellId_Type ChangeEutraCell, /* @sic R5s150648 Change 5.1 sic@ */ IP_SendRouterAdvertisement_Type SendRouterAdvertisement, - IP_RoutingInfo_Type Routing /* @sic R5s130681 change 3: handling of RTP data sic@ */ + IP_RoutingInfo_Type ExplicitRouting, /* @sic R5s130681 change 3: handling of RTP data sic@ */ + Null_Type ChangeToRawmode /* @sic R5s150074 - Additional change sic@ */ }; type record IP_GeranTrigger_Type { @@ -83,40 +89,34 @@ module IP_PTC_CtrlMsgs { } }; - template (value) IP_Stop_Type cs_IP_StopAll := {All := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (value) IP_Stop_Type cs_IP_StopPDN(PDN_Index_Type p_PdnId) := {PdnId := p_PdnId}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT, POS) */ + template (value) IP_ConfigReq_Type cs_IP_ChangeToRawmode := {ChangeToRawmode := true}; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + + template (value) IP_Stop_Type cs_IP_StopAll := {All := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) IP_Stop_Type cs_IP_StopPDN(PDN_Index_Type p_PdnId) := {PdnId := p_PdnId}; /* @status APPROVED (IMS, LTE_A, IMS_IRAT, LTE, LTE_IRAT, POS) */ template (value) IP_ConfigReq_Type cs_IP_StopReq(template (value) IP_Stop_Type p_IP_Stop) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s131000: new parameter p_IP_Stop sic@ */ StopIP := p_IP_Stop }; template (value) IP_ConfigReq_Type cs_IP_GeranCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ GeranCnf := true }; - template (value) IP_ConfigReq_Type cs_IP_ChangeEutraCellReq(EUTRA_CellId_Type p_EutraCellId, - template (omit) IP_DrbId_Type p_DrbId := omit) := + template (value) IP_ConfigReq_Type cs_IP_ChangeEutraCellReq(EUTRA_CellId_Type p_EutraCellId) := { /* @sic R5-125676: new parameter p_DrbId sic@ */ /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - ChangeCell := { - Eutra := { - CellId := p_EutraCellId, - DrbId := p_DrbId - } - } + ChangeEutraCell := p_EutraCellId /* @sic R5s150648 Change 5.2 sic@ */ }; - template (value) IP_ConfigReq_Type cs_IP_ChangeUtranCellReq(integer p_UtranCellId, - IP_DrbId_Type p_DrbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ - ChangeCell := { - Utran := { - CellId := p_UtranCellId, - DrbId := p_DrbId - } + template (value) IP_ConfigReq_Type cs_IP_ChangeDrbInfoReq(PDN_Index_Type p_PdnId, + template (value) IP_DrbInfo_Type p_DrbInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + ChangeDrbInfo := { + PdnId := p_PdnId, + DrbInfo := p_DrbInfo } }; @@ -127,21 +127,25 @@ module IP_PTC_CtrlMsgs { } }; - template (value) IP_ConfigReq_Type cs_IP_ConfigureRoutingReq(InternetProtocol_Type p_Protocol, - PortNumber_Type p_MediaPort, - template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, - template (value) IP_DrbInfo_Type p_DrbInfo) := - { /* NOTE: p_IpAddrRemoteUE the IP address of the simulated remote UE (i.e. a 'local' address in terms of the routing table) */ - Routing := { + template (value) IP_ConfigReq_Type cs_IP_ConfigureDiscardDataLoopbackDataReq(InternetProtocol_Type p_Protocol, + PortNumber_Type p_MediaPort, + template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, + template (value) IP_DrbInfo_Type p_DrbInfo, + IP_DataMode_Type p_DataMode) := + { /* NOTE: p_IpAddrRemoteUE the IP address of the simulated remote UE (i.e. a 'local' (SS) address in terms of the routing table) */ + /* @sic R5-153746: p_DataMode (discard, loopbackRTP, loopbackRTCP) sic@ */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + ExplicitRouting := { IpInfo := cs_IP_ConnectionId(p_Protocol, cs_IP_Socket(p_IpAddrRemoteUE, p_MediaPort)), - DRB := p_DrbInfo + DRB := p_DrbInfo, + DataMode := p_DataMode // @sic R5-150356, R5w150008; R5-153746 sic@ } }; template (present) IP_Indication_Type cr_IP_CommonCnf := {Cnf := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ template (present) IP_Indication_Type cr_IP_GeranTrigger := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ GeranTrigger := { Geran := ? } @@ -175,7 +179,7 @@ module IP_PTC_CtrlMsgs { template (value) IP_DrbInfo_Type cs_DrbInfo_UTRAN(UTRAN_CellId_Type p_CellId, IP_DrbId_Type p_DrbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ Utran := { CellId := f_UtranCellId2Int(p_CellId), DrbId := p_DrbId @@ -184,7 +188,7 @@ module IP_PTC_CtrlMsgs { template (value) IP_DrbInfo_Type cs_DrbInfo_GERAN(integer p_CellId, IP_DrbId_Type p_DrbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Geran := { CellId := p_CellId, DrbId := p_DrbId @@ -214,7 +218,7 @@ module IP_PTC_CtrlMsgs { * @desc RAT independent function to stop all DHCP and ICMPv6 servers * @param p_Port * @param p_IP_Stop (default value: cs_IP_StopAll) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_IP_Handling_Stop(IP_RAT_CTRL_PORT p_Port, template (value) IP_Stop_Type p_IP_Stop := cs_IP_StopAll) @@ -224,21 +228,63 @@ module IP_PTC_CtrlMsgs { p_Port.receive(cr_IP_CommonCnf); } + /* + * @desc to remove all entries in the routing table + * NOTE: this has no impact on any existing sockets + * @param p_Port + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_IP_Routing_ChangeToRawmode(IP_RAT_CTRL_PORT p_Port) + { + p_Port.send(cs_IP_ChangeToRawmode); + p_Port.receive(cr_IP_CommonCnf); + } + /* * @desc Function to change the EUTRA cell for all entries of the routing table * @param p_Port * @param p_EutraCellId .. new cell - * @param p_DrbId (default value: omit) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IP_ChangeEutraCell(IP_RAT_CTRL_PORT p_Port, - EUTRA_CellId_Type p_EutraCellId, - template (omit) IP_DrbId_Type p_DrbId := omit) + EUTRA_CellId_Type p_EutraCellId) { /* @sic R5-125676: new parameter p_DrbId sic@ */ - p_Port.send(cs_IP_ChangeEutraCellReq(p_EutraCellId, p_DrbId)); + /* @sic R5s150648 Change 5.3: p_DrbId removed sic@ */ + p_Port.send(cs_IP_ChangeEutraCellReq(p_EutraCellId)); p_Port.receive(cr_IP_CommonCnf); } + /* + * @desc change DRB mapping for given PDN + * @param p_Port + * @param p_DrbInfo + * @param p_PdnIndex (default value: PDN_1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IP_ChangeDrbMapping(IP_RAT_CTRL_PORT p_Port, + template (value) IP_DrbInfo_Type p_DrbInfo, + PDN_Index_Type p_PdnIndex := PDN_1) + { + p_Port.send(cs_IP_ChangeDrbInfoReq(p_PdnIndex, p_DrbInfo)); + p_Port.receive(cr_IP_CommonCnf); + } + + /* + * @desc EUTRA: change DRB mapping for given PDN + * @param p_Port + * @param p_EutraCellId + * @param p_DrbId + * @param p_PdnIndex (default value: PDN_1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IP_ChangeDrbMappingEUTRA(IP_RAT_CTRL_PORT p_Port, + EUTRA_CellId_Type p_EutraCellId, + IP_DrbId_Type p_DrbId, + PDN_Index_Type p_PdnIndex := PDN_1) + { /* @sic R5s150648 Change 5.3 sic@ */ + f_IP_ChangeDrbMapping(p_Port, cs_DrbInfo_EUTRA(p_EutraCellId, p_DrbId), p_PdnIndex); + } + /* * @desc Function to change the UTRAN cell for all entries of the routing table * @param p_Port @@ -246,12 +292,24 @@ module IP_PTC_CtrlMsgs { * @param p_DrbId * @status APPROVED (LTE_A, LTE_IRAT) */ - function f_IP_ChangeUtranCell(IP_RAT_CTRL_PORT p_Port, - integer p_UtranCellId, - IP_DrbId_Type p_DrbId) + function f_IP_ChangeDrbMappingUTRAN(IP_RAT_CTRL_PORT p_Port, + UTRAN_CellId_Type p_UtranCellId, + IP_DrbId_Type p_DrbId) + { /* @sic R5s150648 Change 5.3 sic@ */ + f_IP_ChangeDrbMapping(p_Port, cs_DrbInfo_UTRAN(p_UtranCellId, p_DrbId)); + } + + /* + * @desc Function to change the GERAN cell for all entries of the routing table + * @param p_Port + * @param p_GeranCellId + * @param p_DrbId + */ + function f_IP_ChangeDrbMappingGERAN(IP_RAT_CTRL_PORT p_Port, + integer p_GeranCellId, + IP_DrbId_Type p_DrbId) { - p_Port.send(cs_IP_ChangeUtranCellReq(p_UtranCellId, p_DrbId)); - p_Port.receive(cr_IP_CommonCnf); + f_IP_ChangeDrbMapping(p_Port, cs_DrbInfo_GERAN(p_GeranCellId, p_DrbId)); } /* @@ -267,13 +325,24 @@ module IP_PTC_CtrlMsgs { p_Port.receive(cr_IP_CommonCnf); } - function f_IP_ConfigureRTP_EUTRA(IP_RAT_CTRL_PORT p_Port, - PortNumber_Type p_MediaPort, - template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, - EUTRA_CellId_Type p_EutraCellId, - IP_DrbId_Type p_DrbId) - { /* configure routing of e.g. RTP data on media port */ - p_Port.send(cs_IP_ConfigureRoutingReq(udp, p_MediaPort, p_IpAddrRemoteUE, cs_DrbInfo_EUTRA(p_EutraCellId, p_DrbId))); + /* + * @desc configure routing of e.g. RTP data on media port + * @param p_Port + * @param p_MediaPort + * @param p_IpAddrRemoteUE + * @param p_EutraCellId + * @param p_DrbId + * @param p_DataMode + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP_RAT_CTRL_PORT p_Port, + PortNumber_Type p_MediaPort, + template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, + EUTRA_CellId_Type p_EutraCellId, + IP_DrbId_Type p_DrbId, + IP_DataMode_Type p_DataMode) + { /* @sic R5-153746: p_DataMode (discard, loopbackRTP, loopbackRTCP) sic@ */ + p_Port.send(cs_IP_ConfigureDiscardDataLoopbackDataReq(udp, p_MediaPort, p_IpAddrRemoteUE, cs_DrbInfo_EUTRA(p_EutraCellId, p_DrbId), p_DataMode)); p_Port.receive(cr_IP_CommonCnf); } diff --git a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_PTC_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_PTC_Templates.ttcn similarity index 96% rename from IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_PTC_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_PTC_Templates.ttcn index 621311d..debab26 100644 --- a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_PTC_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/IP_PTC/IP_PTC_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-28 15:21:40 +0200 (Thu, 28 Aug 2014) $ -// $Rev: 11943 $ +// @version: IWD_15wk38 +// $Date: 2014-11-23 16:30:47 +0100 (Sun, 23 Nov 2014) $ +// $Rev: 12502 $ /******************************************************************************/ module IP_PTC_Templates { @@ -321,11 +321,12 @@ module IP_PTC_Templates { } }; - template (present) IP_SOCKET_IND cr_UDP_DATA_IND(template IP_Socket_Type p_LocalSocket) := + template (present) IP_SOCKET_IND cr_UDP_DATA_IND(template IP_Socket_Type p_LocalSocket, + template IP_Socket_Type p_RemoteSocket := cr_IP_Socket_Any) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5-113734 change 8 sic@ */ DATA := { - ConnectionId := cr_UDP_ConnectionId(p_LocalSocket, cr_IP_Socket_Any), + ConnectionId := cr_UDP_ConnectionId(p_LocalSocket, p_RemoteSocket), Ind := { UDP := { RecvFrom := ? @@ -399,10 +400,11 @@ module IP_PTC_Templates { } }; - template (present) IP_SOCKET_IND cr_TCP_ACCEPT_IND(template IP_Socket_Type p_LocalSocket) := + template (present) IP_SOCKET_IND cr_TCP_ACCEPT_IND(template IP_Socket_Type p_LocalSocket, + template IP_Socket_Type p_RemoteSocket := cr_IP_Socket_Any) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ CTRL := { - ConnectionId := cr_TCP_ConnectionId(p_LocalSocket, cr_IP_Socket_Any), + ConnectionId := cr_TCP_ConnectionId(p_LocalSocket, p_RemoteSocket), Ind := { TCP := { Accept := true diff --git a/IMS_PART4_IWD_14wk37/Common/NAS/NAS_AuthenticationCommon.ttcn b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_AuthenticationCommon.ttcn similarity index 78% rename from IMS_PART4_IWD_14wk37/Common/NAS/NAS_AuthenticationCommon.ttcn rename to IMS_PART4_IWD_15wk38/Common/NAS/NAS_AuthenticationCommon.ttcn index 35f05bf..209a5c6 100644 --- a/IMS_PART4_IWD_14wk37/Common/NAS/NAS_AuthenticationCommon.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_AuthenticationCommon.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-28 16:53:02 +0200 (Mon, 28 Jul 2014) $ -// $Rev: 11851 $ +// @version: IWD_15wk38 +// $Date: 2015-09-07 11:13:33 +0200 (Mon, 07 Sep 2015) $ +// $Rev: 14196 $ /******************************************************************************/ module NAS_AuthenticationCommon { @@ -19,6 +19,7 @@ module NAS_AuthenticationCommon { B128_Type AUTN, B32_128_Type XRES, B64_Type KcGSM, + B128_Type Kc128, // @sic R5s150121 sic@ B3_Type KeySeq, B128_Type CK, B128_Type IK, @@ -37,12 +38,31 @@ module NAS_AuthenticationCommon { AUTN := tsc_AuthUndefinedB128, XRES := tsc_AuthUndefinedB128, KcGSM := tsc_AuthUndefinedB32 & tsc_AuthUndefinedB32, + Kc128 := tsc_AuthUndefinedB128, // @sic R5s150121 sic@ KeySeq := '111'B, CK := tsc_AuthUndefinedB128, IK := tsc_AuthUndefinedB128, XRESLength := omit // @sic R5s120907 sic@ }; + //---------------------------------------------------------------------------- + /* + * @desc auxiliary function to increment KeySeq and deal with wrap around + * @param p_KeySeq + * @return B3_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_Authentication_IncrementKeySeq(B3_Type p_KeySeq) return B3_Type + { + var B3_Type v_KeySeq := int2bit(((bit2int(p_KeySeq)+1) mod 8), 3); //@sic R5s140298 R5s140503 sic@ + // The mod 8 is used as initial value is 7, hence results in first value of 0. + // But if in a test case authentication is performed 7th time, it becomes 7 which is an undefined value, hence the check below added to avoid it. + if (v_KeySeq == '111'B) { + v_KeySeq := '000'B; + } + return v_KeySeq; + } + //---------------------------------------------------------------------------- /* * @desc Calculation is done according to 34.108, clause 8.1.2 and 33.102, clause 6.8.1.2 @@ -101,8 +121,9 @@ module NAS_AuthenticationCommon { if (p_AuthenticationError == noError) { // ((CK1 XOR CK2) XOR (IK1 XOR IK2)) v_Auth_Params.KcGSM := (substr( v_Auth_Params.CK, 0, 64) xor4b substr( v_Auth_Params.CK, 64, 64)) xor4b (substr( v_Auth_Params.IK, 0, 64) xor4b substr( v_Auth_Params.IK, 64, 64)); - v_Auth_Params.KeySeq := int2bit(((bit2int(v_Auth_Params.KeySeq)+1) mod 7), 3); // @sic R5s140447 sic@ + v_Auth_Params.KeySeq := f_Authentication_IncrementKeySeq(v_Auth_Params.KeySeq); // @sic R5s140894 sic@ + v_Auth_Params.Kc128 := substr (fx_KeyDerivationFunction ( tsc_KDF_HMAC_SHA_256, (v_Auth_Params.CK & v_Auth_Params.IK), '32'O ), 0, 128); // @sic R5s150121, R5s150796 sic@ } - return (v_Auth_Params); + return v_Auth_Params; } } diff --git a/LTE_A_IWD_14wk37/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn similarity index 63% rename from LTE_A_IWD_14wk37/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn rename to IMS_PART4_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn index f5a4434..a3c00eb 100644 --- a/LTE_A_IWD_14wk37/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 16:20:52 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12210 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 14:46:41 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14494 $ /******************************************************************************/ module NAS_AuxiliaryDefsAndFunctions { @@ -47,57 +47,140 @@ module NAS_AuxiliaryDefsAndFunctions { /* * @desc Function used to check whether the UE requests a P-CSCF address or DNS server address in its PCO * If the UE does not support IMS, or doesn't request a P-CSCF address, the function returns the default PCO, PPP - * @param p_Pco + * @param p_ConfigOptionsRX * @param p_PdnIndex (default value: PDN_1) - * @return template (value) ProtocolConfigOptions + * @param p_IgnoreIM_CN_SubsystemSignalingFlag (default value: true) + * @return template (value) NAS_ProtocolConfigOptions_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_GetDefaultProtocolConfigOptions(template (omit) ProtocolConfigOptions p_Pco, - PDN_Index_Type p_PdnIndex := PDN_1) return template (value) ProtocolConfigOptions - { /* @sic R5s130362 - MCC160 Implementation sic@ */ + function f_NAS_GetProtocolConfigOptionList(NAS_ProtocolConfigOptions_Type p_ConfigOptionsRX, + PDN_Index_Type p_PdnIndex := PDN_1, + boolean p_IgnoreIM_CN_SubsystemSignalingFlag := true) return template (value) NAS_ProtocolConfigOptions_Type + { var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); var template (value) NAS_ProtocolConfigOptions_Type v_ProtocolContainerList := {}; var integer v_PcoCnt := 0; - var ProtocolConfigOptions v_Rcvd; var O2_Type v_ProtocolId; var octetstring v_Contents; var integer i; - if (isvalue(p_Pco)) { - v_Rcvd := valueof (p_Pco); - for (i := 0; i < lengthof(v_Rcvd.pco); i := i + 1) { - - v_ProtocolId := v_Rcvd.pco[i].protocolID; - v_Contents := ''O; - - select (v_ProtocolId) { // See 24.008 Table 10.5.154 - case ('0001'O) { // P-CSCF IPv6 address - if (pc_IMS) { - v_Contents := f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.PCSCF_IPAddressIPv6); - } - } - case ('0003'O) { // DNS Server IPv6 address - v_Contents := f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.DNS_ServerAddressIPv6); + for (i := 0; i < lengthof(p_ConfigOptionsRX); i := i + 1) { + + v_ProtocolId := p_ConfigOptionsRX[i].protocolID; + v_Contents := ''O; + + select (v_ProtocolId) { // See 24.008 Table 10.5.154 + case ('0001'O) { // P-CSCF IPv6 address + if (pc_IMS) { + v_Contents := f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.PCSCF_IPAddressIPv6); } - case ('000C'O) { // P-CSCF IPv4 address - if (pc_IMS) { - v_Contents := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.PCSCF_IPAddressIPv4); - } + } + case ('0002'O) { // IM CN Subsystem Signalling Flag, reply with an empty container + if (not p_IgnoreIM_CN_SubsystemSignalingFlag) { + v_ProtocolContainerList[v_PcoCnt] := cs_ProtocolContainer_Common(v_ProtocolId); + v_PcoCnt := v_PcoCnt + 1; + continue; } - case ('000D'O) { // DNS Server IPv4 address - v_Contents := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.DNS_ServerAddressIPv4); + } + case ('0003'O) { // DNS Server IPv6 address + v_Contents := f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.DNS_ServerAddressIPv6); + } + case ('000C'O) { // P-CSCF IPv4 address + if (pc_IMS) { + v_Contents := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.PCSCF_IPAddressIPv4); } } - - if (lengthof(v_Contents) > 0) { - v_ProtocolContainerList[v_PcoCnt] := cs_ProtocolContainer(v_ProtocolId, v_Contents); - v_PcoCnt := v_PcoCnt + 1; + case ('000D'O) { // DNS Server IPv4 address + v_Contents := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.DNS_ServerAddressIPv4); } } + + if (lengthof(v_Contents) > 0) { + v_ProtocolContainerList[v_PcoCnt] := cs_ProtocolContainer(v_ProtocolId, v_Contents); + v_PcoCnt := v_PcoCnt + 1; + } } + return v_ProtocolContainerList; + } + + /* + * @desc wrapper for f_GetDefaultProtocolConfigOptionList + * @param p_Pco + * @param p_PdnIndex (default value: PDN_1) + * @return template (value) ProtocolConfigOptions + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_GetDefaultProtocolConfigOptions(template (omit) ProtocolConfigOptions p_Pco, + PDN_Index_Type p_PdnIndex := PDN_1) return template (value) ProtocolConfigOptions + { /* @sic R5s130362 - MCC160 Implementation sic@ */ + /* @sic R5s141127 change 4 - MCC160 Comments: split into f_GetDefaultProtocolConfigOptions and f_GetDefaultProtocolConfigOptionList sic@ */ + var template (value) NAS_ProtocolConfigOptions_Type v_ProtocolContainerList := {}; + var ProtocolConfigOptions v_ProtocolConfigOptionsRX; + + if (isvalue(p_Pco)) { + v_ProtocolConfigOptionsRX := valueof(p_Pco); + v_ProtocolContainerList := f_NAS_GetProtocolConfigOptionList(v_ProtocolConfigOptionsRX.pco, p_PdnIndex); + } + return f_NAS_ProtocolConfigOptionsTX(v_ProtocolContainerList); } + /* + * @desc Decode APN acc. to TS 23.003 cl. 9.1 and RFC 1035 cl. 4.1.2 + * @param p_APN + * @return Charstring + * @status + */ + function f_DomainName_Decode(octetstring p_APN) return charstring + { + var CharStringList_Type v_LabelList; + var integer v_Length; + var integer i; + var integer k := 0; + + for (i := 0; i < lengthof(p_APN); i := i + 1) { + v_Length := oct2int(p_APN[i]); + v_LabelList[k] := oct2char(substr(p_APN, i+1, v_Length)); + i := i + v_Length; + k := k + 1; + } + + return f_StringJoin(v_LabelList, "."); + } + + /* + * @desc Encode APN acc. to TS 23.003 cl. 9.1 and RFC 1035 cl. 4.1.2 + * @param p_LabelList + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_DomainName_EncodeLabels(CharStringList_Type p_LabelList) return octetstring + { + var octetstring v_EncodedAPN := ''O; + var octetstring v_LabelOctets; + var integer v_Length; + var integer i; + + for (i := 0; i < lengthof(p_LabelList); i := i + 1) { + v_LabelOctets := char2oct(p_LabelList[i]); + v_Length := lengthof(v_LabelOctets); + v_EncodedAPN := v_EncodedAPN & int2oct(v_Length, 1) & v_LabelOctets; + } + return v_EncodedAPN; + } + + /* + * @desc Encode APN acc. to TS 23.003 cl. 9.1 and RFC 1035 cl. 4.1.2 + * @param p_DomainName + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_DomainName_Encode(charstring p_DomainName) return octetstring + { + var CharStringList_Type v_LabelList := f_StringSplit(p_DomainName, {"."}); + return f_DomainName_EncodeLabels(v_LabelList); + } + //============================================================================ //---------------------------------------------------------------------------- @@ -105,7 +188,7 @@ module NAS_AuxiliaryDefsAndFunctions { * @desc Convert from IMSI, IMEI or IMEISV of type hexstring to octetstring (to be used in f_Imsi2MobileIdentity, f_Imei2MobileIdentity and f_Imeisv2MobileIdentity) * @param p_MobileId * @return octetstring - * @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_ImsiImei2Octetstring(hexstring p_MobileId) return octetstring { @@ -136,7 +219,7 @@ module NAS_AuxiliaryDefsAndFunctions { * @desc Convert from IMSI of type hexstring to NAS MobileIdentity * @param p_IMSI * @return template (value) MobileIdentity - * @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Imsi2MobileIdentity(hexstring p_IMSI) return template (value) MobileIdentity { @@ -260,10 +343,10 @@ module NAS_AuxiliaryDefsAndFunctions { * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Get_EmergencyNumList(integer p_NoOfNums, - EmergencyNumList p_ExistingNums) return EmergencyNumList + template (omit) EmergencyNumList p_ExistingNums) return EmergencyNumList { var EmergencyNumList v_NewNumbers; - var integer v_Number := 120; // start as implied by LTE test case 11.2.6 + var integer v_Number := 115; // start as implied by LTE test case 11.2.6 @sic R5s141315 sic@ var boolean v_NumberExists; var hexstring v_NumberDigits; var integer i; @@ -293,38 +376,53 @@ module NAS_AuxiliaryDefsAndFunctions { * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function fl_CheckEmergencyNum(EmergencyNumList p_ExistingNums, hexstring p_NewNum) return boolean + function fl_CheckEmergencyNum(template (omit) EmergencyNumList p_ExistingNums, hexstring p_NewNum) return boolean { var integer i; // @sic R5s130748 sic@ - for (i := 0; i the text between the most inner quotes is returned */ + var charstring v_Expression := p_Expression; var charstring v_Result; var template charstring v_ExpectedString := pattern p_ExpectedString; - - v_Expression := "*[""]([^""]+)[""]*"; /* TTCN-3 regular expression: anything + quote + no quote (at least one character) + quote + anything; - => the text between the most inner quotes is returned */ - v_Result := regexp(p_AT_Response, v_Expression, 0); - - return match(v_Result, v_ExpectedString); + var boolean v_MatchResult; + var charstring v_CRLF := oct2char('0D'O) & oct2char('0A'O); + + v_Result := regexp(p_AT_Response, v_Expression, p_Group); + + v_MatchResult := match(v_Result, v_ExpectedString); + + if (v_MatchResult == true) { + f_SetVerdict(pass,__FILE__, __LINE__, p_Text); + } else { + f_ErrorLog(__FILE__, __LINE__, v_CRLF & "Value expected: " & p_ExpectedString & v_CRLF & "Value received: " & v_Result); // if anything went wrong, show it + f_SetVerdict(fail,__FILE__, __LINE__, p_Text); + } } } diff --git a/LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTemplates.ttcn b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTemplates.ttcn rename to IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn index 6a7a825..722a493 100644 --- a/LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTemplates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 14:17:18 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14392 $ /******************************************************************************/ module NAS_CommonTemplates { @@ -17,19 +17,19 @@ module NAS_CommonTemplates { //============================================================================== group NAS_CommonConstants { // Constants being used for NAS_CommonTemplates - const B1_Type tsc_Spare1 := '0'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const B1_Type tsc_Spare1 := '0'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B2_Type tsc_Spare2 := '00'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const B3_Type tsc_Spare3 := '000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B4_Type tsc_Spare4 := '0000'B; const B5_Type tsc_Spare5 := '00000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - const B6_Type tsc_Spare6 := '000000'B; /* @status APPROVED (LTE) */ - const B7_Type tsc_Spare7 := '0000000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B6_Type tsc_Spare6 := '000000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B7_Type tsc_Spare7 := '0000000'B; const B8_Type tsc_Spare8 := '00000000'B; const SpareHalfOctet tsc_SpareHalfOctet := '0'H; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const NAS_IdType tsc_IdType_NoId := '000'B; const NAS_IdType tsc_IdType_IMSI := '001'B; /* suitable for identity type 24.008 cl. 10.5.3.4 and identiy type 2 24.008 cl. 10.5.5.9 - @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const NAS_IdType tsc_IdType_IMEI := '010'B; /* suitable for identity type 24.008 cl. 10.5.3.4 and identiy type 2 24.008 cl. 10.5.5.9 @status APPROVED (LTE, LTE_A) */ const NAS_IdType tsc_IdType_IMEI_24301 := '011'B; /* suitable for identity type 24.301 cl. 9.9.3.12.1 @@ -49,8 +49,8 @@ module NAS_CommonTemplates { const TmsiStatusValue tsc_NoValidTmsi := '0'B; const GprsTimerUnit tsc_GprsTimerUnit_2sec := '000'B; /* @status APPROVED (LTE) */ - const GprsTimerUnit tsc_GprsTimerUnit_1min := '001'B; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ - const GprsTimerUnit tsc_Gprs3TimerUnit_1min := '101'B; /* @status APPROVED (LTE_A, SSNITZ, UTRAN) */ + const GprsTimerUnit tsc_GprsTimerUnit_1min := '001'B; /* @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ + const GprsTimerUnit tsc_Gprs3TimerUnit_1min := '101'B; /* @status APPROVED (IMS, LTE_A, SSNITZ, UTRAN) */ const GprsTimerUnit tsc_GprsTimerUnit_6min := '010'B; /* @status APPROVED (LTE, LTE_IRAT) */ const GprsTimerUnit tsc_GprsTimerUnit_deact := '111'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const O2_Type tsc_PCO_Id_DSMIPv6 := '0007'O; @@ -89,7 +89,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (present) AddUpdateParams cr_AddUpdateParams_Any := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := ?, // '1100'B spare:=?, csmo := ?, // @sic R5s120178 Baseline Moving sic@ @@ -107,14 +107,14 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (present) AuthenticationFailureParameter cr_AuthFailParam_Any := { /* TLV format to be used in Authentication_Failure */ - /* @status APPROVED (LTE_A, IMS_IRAT, LTE, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '30'O, // version 110, and value used in GMM iel := '0E'O, auts := ? }; template (present) AuthenticationFailureParameter cdr_AuthFailParamGSM_Any modifies cr_AuthFailParam_Any := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '22'O }; @@ -125,7 +125,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (value) RAND cs_GMM_AuthRAND(B128_Type p_Rand) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '21'O, randValue := p_Rand }; @@ -138,14 +138,14 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (value) AUTN cs_GSM_AUTN(template (value) B128_Type p_AUTN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '20'O, iel := '10'O, // Length of 16 octets aUTN := p_AUTN // value of Authentication Parameter AUTN }; template (value) AUTN cs_GMM_AUTN(B128_Type p_Autn) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '28'O, iel := '10'O, aUTN := p_Autn @@ -153,7 +153,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (value) CiphKeySeqNum cs_CiphKeySeqNum(template (omit) IEI4_Type p_IEI, template (value) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, spare1 := '0'B, keySeq := p_KeySeq @@ -205,7 +205,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; typeOfDetach := p_TypeOfDetach }; - template (present) DetachType cr_DetachTypeOnSwitchOff := cr_DetachType('1'B, ?); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) DetachType cr_DetachTypeOnSwitchOff := cr_DetachType('1'B, ?); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (present) DeviceProperties cr_DeviceProperties(IEI4_Type p_IEI, template (present) B1_Type p_LowPriority := ?) := @@ -239,7 +239,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; // 3GPP 24.008 / 10.5.4.33 // ----------------------------------------------------------------------------- template (present) EmergServCat cr_EmergServCatAny := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT, POS, UTRAN) */ spare := '0'B, emergSCValue := ? // Emergency Service Category value }; @@ -297,7 +297,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (present) LocAreaId cr_LAI_Any := cr_LAI('13'O); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) LocAreaId cr_LAI_Any_v := cr_LAI(omit); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) LocAreaId cr_LAI_Any_v := cr_LAI(omit); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) LocAreaId cs_LAI(template (omit) IEI8_Type p_IEI, template (value) octetstring p_PLMN, @@ -319,7 +319,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (value) LLC_SAPI cs_LLC_SAPI_11 (template (omit) IEI8_Type p_IEI := omit) := cs_LLC_SAPI(p_IEI, '1011'B); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) LLC_SAPI cs_LLC_SAPI_03 (template (omit) IEI8_Type p_IEI := omit) := cs_LLC_SAPI(p_IEI, '0011'B); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - template (present) MobileIdentity cr_MobileIdAny (template (omit) IEI8_Type p_IEI) := + template (present) MobileIdentity cr_MobileIdAny(template (omit) IEI8_Type p_IEI := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, iel := ?, @@ -345,7 +345,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (value) MobileIdentity cs_MobileIdentityImsi(B4_Type p_FirstDigit, B1_Type p_OddEvenInd, octetstring p_OtherDigits) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '17'O, iel := int2oct(lengthof(p_OtherDigits) + 1, 1), idDigit1 := p_FirstDigit, // 4 bits @@ -358,7 +358,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; B1_Type p_OddEvenInd, octetstring p_OtherDigits) modifies cs_MobileIdentityImsi := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := omit }; @@ -375,11 +375,11 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (value) MobileIdentity cs_MobileIdTMSI(template (omit) IEI8_Type p_IEI, // iei can be '17' (MM) or '13' (GMM) or omit O4_Type p_Tmsi) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (LTE_IRAT, SSNITZ) */ cs_MobileIdTMSIorPTMSI(p_IEI, p_Tmsi); template (present) MobileIdentity cr_MobileIdTMSI_lv(template (present) octetstring p_Tmsi := ?) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := omit, iel := '05'O, // TMSI consists of 4 octets idDigit1 := '1111'B, // special coding for TMSI @@ -391,7 +391,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (present) MobileIdentity cdr_MobileIdTMSI_tlv(template (present) octetstring p_Tmsi := ?, IEI8_Type p_IEI := '18'O) modifies cr_MobileIdTMSI_lv := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI }; @@ -447,7 +447,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (present) MS_Clsmk2 cr_MS_Clsmk2_Any := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cr_MS_Clsmk2_Any_tlv (omit); template (present) MS_Clsmk3 cr_MSCLSMK3_Any := @@ -509,10 +509,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; etxDTM_EGPRS_MultiSlotSubclass := *, /* not present if maskB14 = 0 */ mask15 := *, highMultislotCap := *, /* not present if mask15 = 0 */ - mask16 := *, - gERANIuModeLength := *, /* not present if maskB16 = 0 */ - gERANFLOIuCap := *, - gERANIuModeSpareBits := *, /* not present if maskB16 = 0 */ + spare2 := tsc_Spare1, // @sic R5s150329 Baseline Moving sic@ gERANFeatPack2 := *, gMSKMultislotPowerProfile := *, pSKMultislotPowerProfile := *, @@ -544,11 +541,17 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; selectCipheringDLSACCH := *, // @sic R5s120178 Baseline Moving sic@ csPS_SRVCC_G2U := *, // @sic R5s130195 Baseline Moving sic@ csPS_SRVCC_G2E := *, // @sic R5s130195 Baseline Moving sic@ + geranNwkSharing := *, // @sic R5s150329 Baseline Moving sic@ + eutraWidebandRSRQMeas := *, // @sic R5s150329 Baseline Moving sic@ + erBandSupport := *, // @sic R5s150329 Baseline Moving sic@ + utraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + eutraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + xtdTSCSetCap := *, // @sic R5s150329 Baseline Moving sic@ spareBits2 := * }; template (present) MS_Clsmk3 cdr_MSCLSMK3_EutraCheck (template (omit) IEI8_Type p_IEI) modifies cr_MSCLSMK3_Any := - { /* @status APPROVED (LTE, LTE_IRAT) */ + { /* @status APPROVED (LTE) */ iei := p_IEI, // @sic R5s110244, R5s140493 sic@ iel := omit, // @sic R5s110244 sic@ eutraFDDSupport := ?, @@ -593,7 +596,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (present) MS_NetworkCap cdr_MS_NetworkCapAss_lv modifies cr_MS_NetworkCap_Any := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := omit }; @@ -611,7 +614,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; iei := p_IEI, iel := ?, nriContainerValue := ?, - spareBits := tsc_Spare7 + spareBits := tsc_Spare6 // @sic R5s140778 sic@ }; template (value) PacketFlowIdentifier cs_PktFlowId := @@ -651,14 +654,21 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; /* @status APPROVED (LTE) */ cs_PLMN_List({p_Plmn1, p_Plmn2, p_Plmn3, p_Plmn4}); - template (value) ProtocolContainer cs_ProtocolContainer(O2_Type p_ProtocolId, - octetstring p_Content) := + template (value) ProtocolContainer cs_ProtocolContainer_Common(O2_Type p_ContainerId, + integer p_ContainerLength := 0, + template (omit) octetstring p_Content := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - protocolID := p_ProtocolId, - protocolLength := int2oct(lengthof(p_Content), 1), + protocolID := p_ContainerId, + protocolLength := int2oct(p_ContainerLength, 1), content := p_Content }; + template (value) ProtocolContainer cs_ProtocolContainer(O2_Type p_ProtocolId, + octetstring p_Content) := + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @sic R5s141127 change 4 - MCC160 Comments: cs_ProtocolContainer_Common sic@ */ + cs_ProtocolContainer_Common(p_ProtocolId, lengthof(p_Content), p_Content); + template (value) ProtocolConfigOptions cs_ProtocolConfigOptions_Common(Type4Length_Type p_Type4Length := '01'O, template (omit) ProtocolConfigOptions.pco p_ProtocolContainers := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ @@ -709,7 +719,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (value) PTMSI_Signature cs_PTMSI_Signature(octetstring p_Ptmsi) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '19'O, iel := omit, signatureValue := p_Ptmsi @@ -727,7 +737,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; cr_PTMSI_Signature(?); template (present) PTMSI_Signature cr_PTMSI_Signature2Any := // Only used in Detach Request MO - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '19'O, iel := '03'O, signatureValue := ? @@ -906,7 +916,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; levelValue := p_Val }; - template (value) RadioPriority cs_RadioPriorityHigh (template (omit) IEI4_Type p_IEI) := cs_RadioPriority (p_IEI, '001'B); /* @status APPROVED (LTE_IRAT, UTRAN) */ + template (value) RadioPriority cs_RadioPriorityHigh (template (omit) IEI4_Type p_IEI) := cs_RadioPriority (p_IEI, '001'B); /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ template (value) RadioPriority cs_RadioPriorityLow (template (omit) IEI4_Type p_IEI) := cs_RadioPriority (p_IEI, '100'B); /* @status APPROVED (LTE_IRAT) */ template (present) TMSI_Status cr_TMSI_Status(template (present) TmsiStatusValue p_TmsiStatus := ?) := @@ -925,7 +935,8 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; eiaCap := ?, // @sic R5s100135 sic@ ueaCap := *, // @sic R5s100135 sic@ uiaCap := *, // @sic R5s100135 sic@ - srvccCap := *, // @sic R5s100135 sic@ + srvcc_LPP_ProSeCap := *, // @sic R5s100135, R5s150329 Baseline Moving sic@ + proSeCap := *, // @sic R5s150329 Baseline Moving sic@ spare := * // @sic R5s100135 sic@ }; @@ -938,29 +949,30 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; voiceDomainPrefEUTRA := ? }; - template (value) GPRS_Timer2 cs_GPRS_Timer2(IEI8_Type p_IEI, - B3_Type p_Unit, - B5_Type p_Value) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) GPRS_Timer2 cs_GPRS_Timer2_3_IEI(template (omit) IEI8_Type p_IEI, // @sic R5s150329 Baseline Moving sic@ + B3_Type p_Unit, + B5_Type p_Value) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, iel := '01'O, // length unit := p_Unit, // Unit gprsTimerValue := p_Value // Timer value }; - template (value) GPRS_Timer3 cs_GprsTimer3_IEI(O1_Type p_IEI, - GprsTimerUnit p_Unit, - B5_Type p_Value) := + template (value) GPRS_Timer3 cs_GprsTimer3(template (omit) IEI8_Type p_IEI := '5E'O, // @sic R5s150745 sic@ + GprsTimerUnit p_Unit, + B5_Type p_Value) := cs_GPRS_Timer2_3_IEI(p_IEI, p_Unit, p_Value); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) GPRS_Timer2 cr_GPRS_Timer2_3(IEI8_Type p_IEI, // @sic R5s150329 Baseline Moving sic@ + template (present) B3_Type p_Unit := ?, + template (present) B5_Type p_Value := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - iei := p_IEI, - iel := '01'O, - unit := p_Unit, - gprsTimerValue := p_Value + iei := p_IEI, + iel := '01'O, // length + unit := p_Unit, // Unit + gprsTimerValue := p_Value // Timer value }; - template (value) GPRS_Timer3 cs_GprsTimer3(GprsTimerUnit p_Unit, - B5_Type p_Value) := cs_GprsTimer3_IEI('5E'O, p_Unit, p_Value); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (value) TimeZoneAndTime cs_TimeZoneAndTime (O1_Type p_Year, O1_Type p_Month, O1_Type p_Day, @@ -968,7 +980,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; O1_Type p_Minute, O1_Type p_Second, O1_Type p_TimeZone):= - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, SSNITZ) */ iei := '47'O, // @sic R5s110439 sic@ year := p_Year, month := p_Month, @@ -980,7 +992,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; }; template (value) TimeZone cs_TimeZone (O1_Type p_TimeZone):= - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, SSNITZ) */ iei := '46'O, timeZone := p_TimeZone }; @@ -989,7 +1001,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; charstring p_Name, Gsm7BitPacking_Type p_Packing := SMS_Packing, // default: GSM default 7 B1_Type p_AddCI := '0'B) := // default: do not include the CI - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, SSNITZ) */ iei := p_Iei, iel := int2oct((lengthof(f_CharPacking_IA5toGsm7Bit(p_Name, p_Packing)) + 1),1), ext := '1'B, @@ -1004,7 +1016,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; * @desc Conversion of the packing type per TS 23.040 into the coding scheme parameter used in the Network Name IE * @param p_Gsm7BitPacking_Type * @return B3_Type - * @status APPROVED (LTE) + * @status APPROVED (LTE, SSNITZ) */ function f_ConvertPackingToCodingScheme(Gsm7BitPacking_Type p_Gsm7BitPacking_Type) return B3_Type { @@ -1019,7 +1031,7 @@ const TmsiStatusValue tsc_NoValidTmsi := '0'B; template (value) DaylightSavingTime cs_DaylightSavingTime_tlv (B2_Type p_DaylightSavingTime) := { /* 24.301 cl. 9.9.3.6; */ - /* @status APPROVED (LTE) */ + /* @status APPROVED (LTE, SSNITZ) */ iei := '49'O, iel := '01'O, // @sic R5s120508 sic@ spare := tsc_Spare6, diff --git a/IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn new file mode 100644 index 0000000..c27d45b --- /dev/null +++ b/IMS_PART4_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn @@ -0,0 +1,897 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 16:18:39 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14465 $ +/******************************************************************************/ + +module NAS_CommonTypeDefs { + /* Module containing type definitions for EPS, UTRAN and/or GERAN */ + + import from CommonDefs all; + + //**************************************************************************** + // Common Type definitions: + //---------------------------------------------------------------------------- + + //**************************************************************************** + //**************************************************************************** + + type O1_Type Octet_Type; + type hexstring HalfOctet_Type length(1); + + type HalfOctet_Type IEI4_Type; /* 4 bit info element identifier for type 1 IEs */ + type Octet_Type IEI8_Type; /* 8 bit info element identifier */ + + type O1_Type Type4Length_Type; + type O2_Type Type6Length_Type; + + type HalfOctet_Type SpareHalfOctet; + + type hexstring NAS_Mcc length(3); //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). + + type record of hexstring EmergencyNumList; + //**************************************************************************** + // NAS PROTOCOL DEFINITIONS: IEs + //---------------------------------------------------------------------------- + // General Info Elements (24.301 cl. 9) + //---------------------------------------------------------------------------- + + type B4_Type ProtocolDiscriminator; /* 24.301 cl. 9.2 and 24.007 cl. 11.2.3.1.1 */ + type B4_Type SkipIndicator; /* 24.007 cl. 11.2.3.1.2 */ + type B8_Type MessageType; /* 24.301 cl. 9.8 */ + + type B3_Type NAS_AttDetValue_Type; + type B3_Type KeySeq; /* ciphering key sequence + 3G TS 24008 cl. 10.5.1.2 */ + type O3_Type NAS_PlmnId; + + type O4_Type NAS_Tmsi; + type O4_Type NAS_P_Tmsi; + + type O2_Type NAS_Lac; + type O1_Type NAS_Rac; + + type hexstring BcdDigit_Hex length(1); + type bitstring BcdDigit_Bit length(4); + + type B3_Type NAS_IdType; + type B8_Type NAS_CauseValue_Type; + + type B1_Type TmsiStatusValue; + + type enumerated PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status @sic R5s120274 sic@ */ + type enumerated CS_PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status APPROVED */ + // This is here because it's the best place for it + const NAS_Lac tsc_LAC_Def := '0001'O ; /* Default NAS LAC, the value may need to be updated in CS combined/CS fallback test cases + @status APPROVED + @sic R5s090180 sic@ */ + + + //----------------------------------------------------------------------------- + // Defined in 24.008, but also referenced from 24.301 + //----------------------------------------------------------------------------- + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008, section 10.5.6.1 + // ----------------------------------------------------------------------------- + type record AccessPointName { /* 24.301 cl. 9.9.4.1 -> 24.008 cl. 10.5.6.1 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + octetstring nameValue length(1..100) + }; + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008, section 10.5.3.14 + // ----------------------------------------------------------------------------- + type record AddUpdateParams { + IEI4_Type iei optional, + B2_Type spare, // @sic R5s120178 Baseline Moving sic@ + B1_Type csmo, // @sic R5s120178 Baseline Moving sic@ + B1_Type csmt + }; + + type record AdditionalUpdateType { /* 24.301 cl. 9.9.3.0B @sic R5s100135 sic@ */ + IEI4_Type iei, // currently only used as TV + B3_Type spare3, + B1_Type addUpdateTypeValue + }; + + // ============================================================================= + // Structured Type Definition + // Ciphering Key Sequence Number + // 3G TS 24.008 cl. 10.5.1.2 + // ----------------------------------------------------------------------------- + type record CiphKeySeqNum { + IEI4_Type iei optional, // '1000'B + B1_Type spare1, + KeySeq keySeq + }; + + // ============================================================================= + // Structured Type Definition + // Priority Level + // 3G TS 24.008 cl. 10.5.6.19 / 24.301 9.9.4.2A + // ----------------------------------------------------------------------------- + type record ConnectivityType { + IEI4_Type iei, + B4_Type connectivityValue + }; + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008, section 10.5.5.5/ 24.301 cl. 9.9.3.7 + // ----------------------------------------------------------------------------- + type record DetachType { + // IEI is always skipped + B1_Type switchOff, + NAS_AttDetValue_Type typeOfDetach + }; + + // ============================================================================= + // Structured Type Definition + // Device Properties + // 3G TS 24.008 cl. 10.5.7.8 + // ----------------------------------------------------------------------------- + type record DeviceProperties { + IEI4_Type iei, + B3_Type spare, + B1_Type lowPriority + }; + + // ============================================================================= + // Structured Type Definition + // DRX paramter + // 3GPP 24.008 / 10.5.5.6 + // ----------------------------------------------------------------------------- + type record DRXparameter { + IEI8_Type iei optional, // '00100111'B (hex 27) + B8_Type splitPGcycleCode, // Split PG cycle code + B4_Type cnDRXcoef, // CN specific DRX cycle length coefficient + B1_Type splitOnCCCH, // Split on CCCCH + B3_Type nonDRXtimer // non-DRX timer + }; + + // ============================================================================= + // Structured Type Definition + // Emergency Service Category + // 3GPP 24.008 / 10.5.4.33 + // ----------------------------------------------------------------------------- + type record EmergServCat { + B1_Type spare, + B7_Type emergSCValue // Emergency Service Category value + }; + + type record length (1..10) of charstring EmergencyLocalNumberList; + // ============================================================================= + // Structured Type Definition + // Emergency Number + // 3G TS 24.008 cl. 10.5.3.13 + // ----------------------------------------------------------------------------- + type record EmergNum { + Type4Length_Type len, // length + EmergServCat emergServCat, // Emergency Service Category + octetstring digits length(0..10) // BCD numbers + }; + + // ============================================================================= + // Structured Type Definition + // Emergency Number List + // 3G TS 24.008 cl. 10.5.3.13 + // ----------------------------------------------------------------------------- + type record EmergNumList { + IEI8_Type iei, // '00110100'B (34 hex) @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + record length (1..10) of EmergNum emergNum // Emergency Number + }; + + // ============================================================================= + // Structured Type Definition + // GPRS timer + // 3GPP 24.008 / 10.5.7.3 + // ----------------------------------------------------------------------------- + type record GPRS_Timer { /* 24.301 cl. 9.9.3.14 -> 24.008 cl. 10.5.7.3 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + GprsTimerUnit unit, + B5_Type timerValue + }; + + type B3_Type GprsTimerUnit; + + // ============================================================================= + // Structured Type Definition + // GPRS timer 2 or GPRS timer 3 (definition is identical) + // 3GPP 24.008 / 10.5.7.4(a) + // ----------------------------------------------------------------------------- + type record GPRS_Timer2 { + IEI8_Type iei optional, // @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + GprsTimerUnit unit, // Unit + B5_Type gprsTimerValue // Timer value + }; + + type GPRS_Timer2 GPRS_Timer3; // definition is identical @sic R5s150329 Baseline Moving sic@ + + // ============================================================================= + // Structured Type Definition + // IMEISV Request + // 3GPP 24.008 / 10.5.5.10 + // ----------------------------------------------------------------------------- + type record IMEISV_Request { /* 24.301 cl. 9.9.3.16 -> 24.008 cl. 10.5.5.10 */ + IEI4_Type iei optional, /* present in case of TV; omit in case of V */ + B1_Type spare, + B3_Type requestValue + }; + + // ============================================================================= + // Structured Type Definition + // Location Area Identification Value + // 3G TS 24.008 cl. 10.5.1.3 + // ----------------------------------------------------------------------------- + type record LocAreaId { + IEI8_Type iei optional, + NAS_PlmnId plmn, // MCC + MNC 3 digits each + NAS_Lac lac // LAC + }; + + // ============================================================================= + // Structured Type Definition + // RoutingAreaId + // 3GPP 24.008 / 10.5.5.15 + // ----------------------------------------------------------------------------- + type record RoutingAreaId { /* 24.301 cl. 9.9.3.24 -> 24.008 cl. 10.5.5.15 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + LocAreaId lai, /* MCC + MNC + LAC */ + O1_Type rac /* RAC */ + }; + + // ============================================================================= + // Structured Type Definition + // 24.007, clause 10.5.6.9 + // ----------------------------------------------------------------------------- + type record LLC_SAPI { /* 24.301 cl. 9.9.4.4 -> 24.008 cl. 10.5.6.9 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + B4_Type spare, + B4_Type llcSapiValue + }; + + // ============================================================================= + // Structured Type Definition + // Mobile Identity + // 3G TS 24.008 cl. 10.5.1.4 + // Maximum number of digits is 16 (IMEISV). Filler may be used. + // ----------------------------------------------------------------------------- + type record MobileIdentity { + IEI8_Type iei optional, // '00100011'B + Type4Length_Type iel, + BcdDigit_Bit idDigit1, // 1st identitity digit + B1_Type oddEvenInd, // Odd/even indicator + NAS_IdType typeOfId, // Type of identity + octetstring otherDigits length(0..10) // Other identity digits (10 octets rather than 8 to cover Guti as well) + }; + + // ============================================================================= + // Structured Type Definition + // Mobile Station Classmark 2 + // 3G TS 24.008 cl. 10.5.1.6 + // ----------------------------------------------------------------------------- + type record MS_Clsmk2 { + IEI8_Type iei optional, + Type4Length_Type iel, // @sic R5s110420 sic@ + B1_Type spare1_1, // Spare bit + B2_Type revLvl, // Revision Level + B1_Type eSIND, // Early Sending Indication + B1_Type a5_1, // Algorithm A5/1 Support + B3_Type rFPwrCap, // RF Power Capability + B1_Type spare1_2, // Spare bit + B1_Type pSCap, // Pseudo Synchronisation Capability + B2_Type sSSI, // SS Screen Indicator + B1_Type sMCap, // Short Message Capability + B1_Type vBS, // VBS Capability + B1_Type vGCS, // VGCS Capability + B1_Type fC, // Frequency Capability + B1_Type cM3, // Classmark 3 Indicator + B1_Type spare1_3, // Spare bit + B1_Type lCSVA, // LCS VA Capability + B1_Type uCS2, // UCS2 Encoding Support + B1_Type soLSA, // SoLSA Support + B1_Type cMSP, // CM Service Prompt Support + B1_Type a5_3, // Algorithm A5/3 Support + B1_Type a5_2 // Algorithm A5/2 Support + }; + + // ============================================================================= + // Structured Type Definition + // Mobile station classmark 3 + // 3GPP TS 24.008 clause 10.5.1.7 + // The information element has 34 octets maximum length + // ----------------------------------------------------------------------------- + type record MS_Clsmk3 { + IEI8_Type iei optional, // 0x20 + Type4Length_Type iel optional, // OCTETSTRING [1] + B1_Type spareBit, // spare bit @sic R5s120178 Baseline Moving sic@ + B3_Type multibandSupported, // @sic R5s120178 Baseline Moving sic@ + B1_Type a5_7, // a5/7 algorithm supported @sic R5s120178 Baseline Moving sic@ + B1_Type a5_6, // a5/6 algorithm supported @sic R5s120178 Baseline Moving sic@ + B1_Type a5_5, // a5/5 algorithm supported @sic R5s120178 Baseline Moving sic@ + B1_Type a5_4, // a5/4 algorithm supported @sic R5s120178 Baseline Moving sic@ + B4_Type associatedRadioCapabilty2 optional, // present if multibandSupported = 101 or 110 + B4_Type spareBits1 optional, // present if multibandSupported = 001 or 010 or 100 + B4_Type associatedRadioCapabilty1 optional, // present if multibandSupported = 001 or 010 or 100 or 101 or 110 + B1_Type maskBit1 optional, + B3_Type rGSM_RadioCapability optional, // R-GSM band associated radio capability not present if maskBit1 = 0 + B1_Type maskBit2 optional, + B5_Type multiSlotClass optional, // multi slot class not present if multiSlotClass = 0 + B1_Type uCS2Treatment optional, + B1_Type extMeasurementCapability optional, // extended measurement capability + B1_Type maskBit3 optional, + MS_MeasCapability msMeasurementCapability optional, // MS measurement capability + // not present if maskBit3 = 0 + B1_Type maskBit4 optional, + B5_Type msPositioningMethod optional, // MS positioning method capability + // not present if maskBit4 = 0 + B1_Type maskBit5 optional, + B5_Type eDGE_MultiSlot optional, // EDGE multi slot capability + // not present if maskB5_Type = 0 + B1_Type maskBit6 optional, + EDGE_Struct psk8_Struct optional, // 8PSK struct + // not present if maskB6_Type = 0 + B1_Type maskBit7 optional, + B2_Type gSM400BandsSupported optional, // not present if maskBIt7 = 0 + B4_Type gSM400AssociatedRadioCapability optional, // not present if gSM400BandsSupported = 00 or maskB7_Type = 0 + B1_Type maskBit8 optional, + B4_Type gSM850AssociatedRadiioCapability optional, // not present if maskBIt8 = 0 + B1_Type maskBit9 optional, + B4_Type pCS1900AssociatedRadiioCapability optional, // not present if maskBIt9 = 0 + B1_Type uMTS_FDD_RAT_Capability optional, + B1_Type uMTS384TDD_RAT_Capability optional, + B1_Type cDMA2000_RAT_Capability optional, + B1_Type maskBit10 optional, + B2_Type dTM_GPRS_MultiSlotSubclass optional, // not present if maskBit10 = 0 + B1_Type singleSlotDTM optional, // not present if maskBit10 = 0 + B1_Type maskBit11 optional, // not present if maskBit10 = 0 + B2_Type dTM_EGPRS_MultiSlorSubclass optional, // not present if maskBit10 = 0 or maskBit11 = 0 + B1_Type maskBit12 optional, + B4_Type singleBandSupport optional, // not present if maskBit12 = 0 + B1_Type maskBit13 optional, + B4_Type gSM700AssociatedRadioCapability optional, // not present if maskBit13 = 0 + B1_Type uMTS128TDD_RAT_Capability optional, + B1_Type gERANFeatPack1 optional, + B1_Type mask14 optional, + B2_Type extDTM_GPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 + B2_Type etxDTM_EGPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 + B1_Type mask15 optional, + B2_Type highMultislotCap optional, // not present if mask15 = 0 + B1_Type spare2 optional, // value '1' indicated GERAN Iu Mode Capabilities in earlier versions @sic R5s150329 Baseline Moving sic@ + B1_Type gERANFeatPack2 optional, + B2_Type gMSKMultislotPowerProfile optional, + B2_Type pSKMultislotPowerProfile optional, + B1_Type mask17 optional, // rel 6 features + B2_Type tGSM400BandsSupported optional, // not present if maskBit17 = 0 + B4_Type tGSM400AssocRadioCap optional, // not present if maskBit17 = 0 + B1_Type spare optional, // Set to 0 @sic R5s110176 Baseline Moving sic@ + B2_Type dlAdvancedRxPerf optional, + B1_Type dTMEhancCap optional, + B1_Type mask19 optional, + B3_Type dTMGPRSHighMultislotClass optional, // not present if maskBit19 = 0 + B1_Type offsetReq optional, // not present if maskBit19 = 0 + B1_Type mask20 optional, // not present if maskBit19 = 0 + B3_Type dTMEGPRSHighMultislotClass optional, // not present if maskBit19 and maskBit20 = 0 + B1_Type rptdACCHCap optional, + B1_Type mask21 optional, + B4_Type gsm710AssocRadioCap optional, // not present if maskBit21 = 0 + B1_Type mask22 optional, + B4_Type tgsm810AssocRadioCap optional, // not present if maskBit22 = 0 + B1_Type cipheringModeSettingCap optional, + B1_Type addPositionCap optional, + B1_Type eutraFDDSupport optional, // rel 8 features + B1_Type eutraTDDSupport optional, + B1_Type eutraMeasAndReporting optional, // @sic R5s100135 sic@ + B1_Type priorityBasedReselection optional, // @sic R5s110176 Baseline Moving sic@ + B1_Type utraCSGCellsReporting optional, // @sic R5s110176 Baseline Moving sic@ + B2_Type vamosLevel optional, // @sic R5s110176 Baseline Moving sic@ + B2_Type tighterCap optional, // @sic R5s120178 Baseline Moving sic@ + B1_Type selectCipheringDLSACCH optional, // @sic R5s120178 Baseline Moving sic@ + B2_Type csPS_SRVCC_G2U optional, // @sic R5s130195 Baseline Moving sic@ + B2_Type csPS_SRVCC_G2E optional, // @sic R5s130195 Baseline Moving sic@ + B1_Type geranNwkSharing optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type eutraWidebandRSRQMeas optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type erBandSupport optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type utraMultipleFreqBandInd optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type eutraMultipleFreqBandInd optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type xtdTSCSetCap optional, // @sic R5s150329 Baseline Moving sic@ + bitstring spareBits2 optional + }; + + // ============================================================================= + // Structured Type Definition + // Reference : 3GPP TS 24.008 clause 10.5.1.7 + // ----------------------------------------------------------------------------- + type record EDGE_Struct { + B1_Type modulationCapability, + B1_Type pwrMask1, + B2_Type eDGE_RF_PowerCapability1 optional, // not present if pwrMask1 = 0 + B1_Type pwrMask2, + B2_Type eDGE_RF_PowerCapability2 optional // not present if pwrMask2 = 0 + }; + + // ============================================================================= + // Structured Type Definition + // Reference : 3GPP TS 24.008 clause 10.5.1.7 + // ----------------------------------------------------------------------------- + type record MS_MeasCapability { + B4_Type sMS_VALUE, + B4_Type sM_VALUE + }; + + // ============================================================================= + // Structured Type Definition + // MS network capability + // 3GPP 24.008 / 10.5.5.12 + // ----------------------------------------------------------------------------- + type record MS_NetworkCap { /* 24.301 cl. 9.9.3.18 -> 24.008 cl. 10.5.5.12 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + Type4Length_Type iel, // @sic R5s110420 sic@ + B1_Type gea1, + B1_Type smCapDedicated, + B1_Type smCapGPRS, + B1_Type ucs2, + B2_Type ssScreeningIndicator, + B1_Type soLSACap, + B1_Type revLevelIndicator, + B1_Type pfcFeatureMode, + B1_Type gea2, + B1_Type gea3, + B1_Type gea4, + B1_Type gea5, + B1_Type gea6, + B1_Type gea7, + B1_Type lcsVACap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type psHOtoUTRAN_IuModeCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type psHOtoEUTRAN_S1ModeCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type emmCombinedCap optional, // @sic R5s110176 Baseline Moving, R5s130477 not present for r99 sic@ + B1_Type isrSupport optional, // @sic R5s130477 not present for r99 sic@ + B1_Type srvccToGERAN_UTRANCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type epcCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type nfCap optional, // @sic R5s110176 Baseline Moving, not present for Rel-8 R5s110242 sic@ + B1_Type gERANNtwkShareCap optional, // @sic R5s130195 Baseline Moving, not present for Rel-8 sic@ + bitstring spareBits length (0..43) optional + }; + + // ============================================================================= + // Structured Type Definition + // Additional Network Feature Support + // 3G TS 24.008 cl. 10.5.5.31 + // ----------------------------------------------------------------------------- + type record NwkResourceId { + IEI8_Type iei, // + Type4Length_Type iel, // + B10_Type nriContainerValue, // @sic R5s140778 sic@ + B6_Type spareBits // @sic R5s140778 sic@ + }; + + // ============================================================================= + // Structured Type Definition + // PacketFlowIdentifier + // 24.008, section 10.5.6.11 + // ----------------------------------------------------------------------------- + type record PacketFlowIdentifier { /* 24.301 cl. 9.9.4.5 -> 24.008 cl. 10.5.6.11 */ + IEI8_Type iei, // @sic R5s110420 sic@ + Type4Length_Type iel, // @sic R5s110420 sic@ + B1_Type spare, + B7_Type idValue + }; + + // ============================================================================= + // Structured Type Definition + // PLMN list + // 3G TS 24.008 cl. 10.5.1.13 + // ----------------------------------------------------------------------------- + type record PLMN_List { /* 24.301 cl. 9.9.2.4 -> 24.008 cl. 10.5.1.13 */ + IEI8_Type iei, // @sic R5s110420 sic@ + Type4Length_Type iel, // @sic R5s110420 sic@ + record length(1..15) of + NAS_PlmnId plmnList /* list of PLMNs */ + }; + + // ============================================================================= + // Structured Type Definition + // MS network feature support + // 3GPP 24.008 / 10.5.5.15 + // ----------------------------------------------------------------------------- + type record MS_NetworkFeatureSupport { /* 24.301 cl. 9.9.2.0A -> 24.008 cl. 10.5.5.15 */ + IEI4_Type iei, + B3_Type spare, + B1_Type extdPeriodicTimers + }; + + type PLMN_List.plmnList NAS_PlmnIdList_Type; + + // ============================================================================= + // Structured Type Definition + // ProtocolConfigOptions + // 3G TS 24.008 cl. 10.5.6.3 + // ----------------------------------------------------------------------------- + type record ProtocolConfigOptions { /* 24.301 cl. 9.9.4.8 -> 24.008 cl. 10.5.6.3 */ + IEI8_Type iei, // @sic R5s110420 sic@ + Type4Length_Type iel, + B1_Type ext, + B4_Type spare, + B3_Type configProtocol, + record length (0..83) of + ProtocolContainer pco optional + }; + + type record ProtocolContainer { + O2_Type protocolID, /* id is always 2 octets */ + Type4Length_Type protocolLength, + octetstring content optional + }; + + type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; + + // ============================================================================= + // Structured Type Definition + // P-TMSI signature + // 3GPP 24.008 / 10.5.5.8 + // ----------------------------------------------------------------------------- + type record PTMSI_Signature { /* 24.301 cl. 9.9.3.23 -> 24.008 cl. 10.5.5.8 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + Type4Length_Type iel optional, // only present in 24.008 version of DETACH REQUEST message + O3_Type signatureValue + }; + + // ============================================================================= + // Structured Type Definition + // 24.008, clause 10.5.6.5 + // ----------------------------------------------------------------------------- + type record QualityOfService { /* 24.301 cl. 9.9.4.9 -> 24.008 cl. 10.5.6.5 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + B2_Type spare1, + B3_Type delayClass, + B3_Type relabilityClass, + B4_Type peakThroughput, + B1_Type spare2, + B3_Type precedenceClass, + B3_Type spare3, + B5_Type meanThroughput, + B3_Type trafficClass, + B2_Type deliveryOrder, + B3_Type deliveryErrorSDU, + B8_Type maxSduSize, + B8_Type maxBitRateUL, + B8_Type maxBitRateDL, + B4_Type residualBER, + B4_Type sduErrorRatio, + B6_Type transferDelay, + B2_Type trafficHandlingPrio, + B8_Type guaranteedBitRateUL, + B8_Type guaranteedBitRateDL, + B3_Type spare4, + B1_Type signallingInd, + B4_Type sourceStatisticsDescriptor, + B8_Type maxBitRateDL_Ext optional, + B8_Type guaranteedBitRateDL_Ext optional, + B8_Type maxBitRateUL_Ext optional, + B8_Type guaranteedBitRateUL_Ext optional, + B8_Type maxBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ + B8_Type guaranteedBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ + B8_Type maxBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ + B8_Type guaranteedBitRateUL_Ext2 optional // @sic R5s1300195 Baseline Moving sic@ + }; + + // ============================================================================= + // Structured Type Definition + // Radio priority + // 3GPP 24.008 / 10.5.7.2 + // ----------------------------------------------------------------------------- + type record RadioPriority { /* 24.301 cl. 9.9.4.10 -> 24.008 cl. 10.5.7.2 */ + IEI4_Type iei optional, /* present in case of TV; omit in case of V */ + B1_Type spare, + B3_Type levelValue + }; + + // ============================================================================= + // Structured Type Definition + // Codec + // 3G TS 24.008 cl. 10.5.4.32 + // ----------------------------------------------------------------------------- + type record Codec { + O1_Type sysId, // system identifcation + Type4Length_Type len, // length + B8_Type bitMap1to8, // codec bitmap bits 1-8 + B8_Type bitMap9to16 optional // codec bitmap bits 9-16 + }; + + // ============================================================================= + // Structured Type Definition + // Supported Codec List + // 3G TS 24.008 cl. 10.5.4.32 + // ----------------------------------------------------------------------------- + type record CodecList { + IEI8_Type iei, // '01000000'B (40 hex) @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + record of Codec codec// list of codecs + }; + + // ============================================================================= + // Structured Type Definition + // TMSI status + // 3GPP 24.008 cl. 10.5.6.17 + // ----------------------------------------------------------------------------- + type record Request_Type { /* 24.301 cl. 9.9.4.11 */ + // IEI is always skipped + B1_Type spare, + B3_Type typeValue + }; + + // ============================================================================= + // Structured Type Definition + // TMSI status + // 3GPP 24.008 cl. 10.5.5.4 + // ----------------------------------------------------------------------------- + type record TMSI_Status { + IEI4_Type iei optional, + B3_Type spare3, + TmsiStatusValue flag // Flag + }; + + // ============================================================================= + // Structured Type Definition + // TrafficFlowTemplate + // 3GPP 24.008 / 10.5.6.12 + // ----------------------------------------------------------------------------- + type record TrafficFlowTemplate { /* 24.301 cl. 9.9.4.13 -> 24.008 cl. 10.5.6.12 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + B3_Type tftOperationCode, + B1_Type eBit, + B4_Type noOfPktFilter, + record of PacketFilter packetFilterList optional, + record of TftParameter parameterList optional + }; + + type record TftParameter { + IEI8_Type iei, + Type4Length_Type iel, + octetstring contents + }; + + type record PacketFilter { + B2_Type spare, // @sic R5s130195 Baseline Moving sic@ + B2_Type direction, // @sic R5s130195 Baseline Moving sic@ + IEI4_Type iei, // @sic R5s130195 Baseline Moving sic@ + B8_Type precedence optional, + Type4Length_Type iel optional, + PacketFilterContents contents optional + }; + + type record of PacketFilterComponent PacketFilterContents; + + type record PacketFilterComponent { + O1_Type id, + PacketFilterComponentValue packetFilterComponentValue + }; + + type union PacketFilterComponentValue { + O8_Type ipv4RemoteAddress, + O32_Type ipv6RemoteAddress, + O1_Type protocolIdNextHeader, + O2_Type singleLocalPort, + O4_Type localPortRange, + O2_Type singleRemotePort, + O4_Type remotePortRange, + O4_Type securityParameterIndex, + O2_Type typeOfServiceTrafficClass, + O3_Type flowLabel + }; + + type record UE_NetworkCap { // 24.301 cl. 9.9.3.34 + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ + O1_Type eeaCap, // @sic R5s100135 sic@ + O1_Type eiaCap, // @sic R5s100135 sic@ + O1_Type ueaCap optional, // @sic R5s100135 sic@ + O1_Type uiaCap optional, // @sic R5s100135 sic@ + O1_Type srvcc_LPP_ProSeCap optional, // @sic R5s150329 Baseline Moving sic@ + O1_Type proSeCap optional, // @sic R5s150329 Baseline Moving sic@ + octetstring spare optional // @sic R5s100135 sic@ + }; + + type record ReAttemptIndicator { // 24.301 cl. 9.9.4.13A, 24.008 cl. 10.5.6.5A + // The two definitions are exactly the same. + // The only difference is the meaning of the ratcValue bit + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ + B7_Type spare, + B1_Type ratcValue +}; + + // ============================================================================= + // Structured Type Definition + // Authentication Parameter AUTN + // 3G TS 24.008 cl. 10.5.3.1.1 + // ----------------------------------------------------------------------------- + type record AUTN { /* 24.301 cl. 9.9.3.2 -> 24.008 cl. 10.5.3.1.1 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, // @sic R5s110420 sic@ + B128_Type aUTN /* (as for UMTS) */ + }; + + // ============================================================================= + // Structured Type Definition + // Authentication Failure Parameter (TLV) + // 3G TS 24.008 cl. 10.5.3.2.2 + // ----------------------------------------------------------------------------- + type record AuthenticationFailureParameter { + IEI8_Type iei, // '00100010'B for MM (22 hex) + // '00110000'B for GMM (30 hex) + Type4Length_Type iel, // M 1 octet + B112_Type auts // AUTS, 14 octets + }; + + // ============================================================================= + // Structured Type Definition + // Authentication Parameter RAND (TV, 17 octets) + // 3G TS 24.008 cl. 10.5.3.1 + // ----------------------------------------------------------------------------- + type record RAND { + IEI8_Type iei optional, // '00100001'B (21 hex) + B128_Type randValue // Authentication Parameter RAND value + }; + + type record DaylightSavingTime { /* 24.301 cl. 9.9.3.5 -> 24.008 cl. 10.5.3.12 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ + B6_Type spare, + B2_Type val + }; + + type record NetworkName { /* 24.301 cl. 9.9.3.21 -> 24.008 cl. 10.5.3.5a */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + B1_Type ext, + B3_Type codingScheme, + B1_Type addCI, + B3_Type spareBitCnt, + octetstring text + }; + + type record TimeZone { /* 24.301 cl. 9.9.3.26 -> 24.008 cl. 10.5.3.8 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + O1_Type timeZone + }; + + type record TimeZoneAndTime { /* 24.301 cl. 9.9.3.27 -> 24.008 cl. 10.5.3.9 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + O1_Type year, + O1_Type month, + O1_Type day, + O1_Type hour, + O1_Type minute, + O1_Type second, + O1_Type timeZone + }; + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008 cl. 10.5.5.28 + // @sic R5s110176 Baseline Moving sic@ + // ----------------------------------------------------------------------------- + type record VoiceDomainPref { + IEI8_Type iei optional, // 01111110'B + Type4Length_Type iel optional, // length + B5_Type spareBits, + B1_Type ueUsageSetting, + B2_Type voiceDomainPrefEUTRA // @sic R5s110233 sic@ + }; + + type record IdentityType { /* 24.301 cl. 9.9.3.15 -> 24.008 cl. 10.5.3.4 */ + // IEI is always skipped + B1_Type spare, + NAS_IdType typeOfId + }; + + // ============================================================================= + // Structured Type Definition + // REGISTER + // ue->n or n->ue, 3GPPP TS 24.080, 2.4 + // ----------------------------------------------------------------------------- + type record REGISTER { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] + MessageType msgType, // message type BITSTRING [8] + FacilityIE facility_Str, // M, BER enconded ASN.1 object + SS_VersionInd sS_VersionInd optional // O for ue->n, N/A for n->ue + }; + + // ============================================================================= + // Structured Type Definition + // FACILITY + // n->ue, 3GPPP TS 24.080, 2.3 and 24.008, 10.4 + // ----------------------------------------------------------------------------- + type record FACILITY { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] + MessageType msgType, // message type BITSTRING [8], for n->ue "00111010", for ue->n "xx111010" (see 24.007) + FacilityIE facility_Str // M, BER enconded ASN.1 object + }; + + // ============================================================================= + // Structured Type Definition + // FACILITY + // ue->n 3GPPP TS 24.080, 2.3 and 24.008, 10.4 + // ----------------------------------------------------------------------------- + type record FACILITYul { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] + MessageType msgType, // message type BITSTRING [8], for n->ue "00111010", for ue->n "xx111010" (see 24.007) + FacilityIE facility_Str, // M, BER enconded ASN.1 object + SS_VersionInd sS_VersionInd optional // O @sic R5s140989 sic@ + }; + // ============================================================================= + // Structured Type Definition + // Facility Information Element + // 3GPPP TS 24.080, 3.6 / 24.008, 10.5.4.15 + // ----------------------------------------------------------------------------- + type record FacilityIE { + IEI8_Type iei optional, // Facility IE identifier + Type4Length_Type iel, // length of Facility contents + octetstring components // ASN.1 definitions BER encoded + }; + + // ============================================================================= + // Structured Type Definition + // Transaction identifier + // 3G TS 24.007 cl. 11.2.3.1.3 + // ----------------------------------------------------------------------------- + type record TI { + B1_Type tiFlag, // Flag + B3_Type tiVal // TIO + }; + + // ============================================================================= + // Structured Type Definition + // SS version indicator + // 3G TS 24.008 cl. 10.5.4.24 + // 1. Usually this IE has only one octet of content. + // Exact definition see TS 24.080 + // ----------------------------------------------------------------------------- + type record SS_VersionInd { + IEI8_Type iei, // '01111111'B @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + O1_Type sS_VersionInfo // ss version information + }; + + // ============================================================================= + // Structured Type Definition + // RESETUEPOSITIONINGSTOREDINFORMATION + // n->ue, 3GPPP TS 34.109, 6.10/36.509 6.9 + // ----------------------------------------------------------------------------- + type record RESETUEPOSITIONINGSTOREDINFORMATION { + SkipIndicator skipIndicator, // "0000" skip indicator BITSTRING [4] + ProtocolDiscriminator protocolDiscriminator, // M, "1111" Protocol discriminator for test procedure messages BITSTRING [4] + MessageType msgType, // M, message type BITSTRING [8] + B8_Type uePositioningTech // M, BITSTRING [8] + }; + + // ============================================================================= + // Structured Type Definition + // WLANOffloadAcceptability + // 3GPPP TS 24.008 10.5.6.20 + // ----------------------------------------------------------------------------- + type record WLANOffloadAcceptability { + IEI4_Type iei, + B2_Type spare, + B1_Type utranOffload, + B1_Type eutranOffload +}; + +} with { encode "NAS Types" } diff --git a/IMS_PART4_IWD_14wk37/Common/NAS/SMS_Templates.ttcn b/IMS_PART4_IWD_15wk38/Common/NAS/SMS_Templates.ttcn similarity index 95% rename from IMS_PART4_IWD_14wk37/Common/NAS/SMS_Templates.ttcn rename to IMS_PART4_IWD_15wk38/Common/NAS/SMS_Templates.ttcn index 00c20d5..0b05c69 100644 --- a/IMS_PART4_IWD_14wk37/Common/NAS/SMS_Templates.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/NAS/SMS_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-08-28 23:57:22 +0200 (Wed, 28 Aug 2013) $ -// $Rev: 9492 $ +// @version: IWD_15wk38 +// $Date: 2015-09-07 11:40:07 +0200 (Mon, 07 Sep 2015) $ +// $Rev: 14197 $ /******************************************************************************/ module SMS_Templates { @@ -440,8 +440,8 @@ module SMS_Templates { }; template (present) SMS_SUBMIT_Type cr_SMS_SUBMIT(template (present) B2_Type p_ValidityPeriodFormat := '??'B, - template TP_ValidityPeriod_Type p_ValidityPeriod := *, - template (present) TP_UserDataLength_Type p_UserDataLength := ?) := + template TP_ValidityPeriod_Type p_ValidityPeriod := *, + template (present) TP_UserDataLength_Type p_UserDataLength := ?) := { /* @status APPROVED (IMS, LTE) */ tP_ReplyPath := '?'B, tP_UserDataHeaderIndicator := '?'B, @@ -459,6 +459,8 @@ module SMS_Templates { }; template (present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_REF := cr_SMS_SUBMIT('10'B, {TP_ValidityPeriodRelative := int2oct(167,1)}, int2oct(160,1)); /* @status APPROVED (IMS, LTE) */ + template (present) SMS_SUBMIT_Type cr_SMS_SUBMIT_AnyVP := cr_SMS_SUBMIT(-, *); /* @status APPROVED (LTE) + @sic R5s141400 sic@ @sic R5s150777 sic@ */ template (value) SMS_SUBMIT_REPORT_Type cs_SMS_SUBMIT_REPORT := { /* @status APPROVED (IMS) */ diff --git a/IMS_PART4_IWD_14wk37/Common/NAS/SMS_TypeDefs.ttcn b/IMS_PART4_IWD_15wk38/Common/NAS/SMS_TypeDefs.ttcn similarity index 99% rename from IMS_PART4_IWD_14wk37/Common/NAS/SMS_TypeDefs.ttcn rename to IMS_PART4_IWD_15wk38/Common/NAS/SMS_TypeDefs.ttcn index 210d08d..e5a26a7 100644 --- a/IMS_PART4_IWD_14wk37/Common/NAS/SMS_TypeDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/Common/NAS/SMS_TypeDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-04-02 16:00:54 +0200 (Tue, 02 Apr 2013) $ // $Rev: 8411 $ /******************************************************************************/ diff --git a/IMS_PART4_IWD_14wk37/IMS/10/IMS_CC_SubscriptionTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/10/IMS_CC_SubscriptionTestcases.ttcn similarity index 83% rename from IMS_PART4_IWD_14wk37/IMS/10/IMS_CC_SubscriptionTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/10/IMS_CC_SubscriptionTestcases.ttcn index bdb245c..cd6084a 100644 --- a/IMS_PART4_IWD_14wk37/IMS/10/IMS_CC_SubscriptionTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/10/IMS_CC_SubscriptionTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-02-26 18:34:54 +0100 (Wed, 26 Feb 2014) $ -// $Rev: 10686 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module IMS_CC_SubscriptionTestcases { @@ -16,8 +16,6 @@ module IMS_CC_SubscriptionTestcases { import from IMS_Component all; import from IMS_ASP_TypeDefs all; import from IMS_ASP_Templates all; - import from IMS_CommonParameters all; - import from IMS_CommonDefs all; import from IMS_SIP_Templates all; import from IMS_CC_CommonFunctions all; @@ -25,7 +23,6 @@ module IMS_CC_SubscriptionTestcases { import from IMS_Procedures_Registration all; import from IMS_PTC_CoordMsg all; - import from IMS_CC_Parameters all; //============================================================================ /* @@ -38,10 +35,9 @@ module IMS_CC_SubscriptionTestcases { var REGISTER_Request v_RegisterReq; var SUBSCRIBE_Request v_SubscribeReq; var charstring v_CallId; - var IMS_SecurityScheme_Type v_SecurityScheme := f_IMS_SecurityScheme((pc_IMS_GIBA_Sec and not pc_IMS_Sec) or px_UEwithSIM); var integer v_RetryT := 60; // seconds - f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL, v_SecurityScheme); + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL); // @sic R5s150786 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); if (f_IMS_PTC_SecurityScheme_IsGiba()) { diff --git a/IMS_PART4_IWD_14wk37/IMS/11/IMS_CC_NotificationTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/11/IMS_CC_NotificationTestcases.ttcn similarity index 78% rename from IMS_PART4_IWD_14wk37/IMS/11/IMS_CC_NotificationTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/11/IMS_CC_NotificationTestcases.ttcn index f726304..457828c 100644 --- a/IMS_PART4_IWD_14wk37/IMS/11/IMS_CC_NotificationTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/11/IMS_CC_NotificationTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-11 10:39:38 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14283 $ /******************************************************************************/ module IMS_CC_NotificationTestcases { @@ -24,7 +24,7 @@ module IMS_CC_NotificationTestcases { import from IMS_CommonFunctions all; import from IMS_PTC_CoordMsg all; import from IMS_IP_Config all; - import from urn_ietf_params_xml_ns_reginfo all; + import from IMS_Procedures_Common all; //============================================================================ /* @@ -34,11 +34,10 @@ module IMS_CC_NotificationTestcases { function f_TC_11_1_IMS() runs on IMS_PTC { var REGISTER_Request v_RegisterReq; - var SUBSCRIBE_Request v_SubscribeReq; var SipUrl v_ContactUrl; var template (value) RegInfo_RegistrationList_Type v_Registrations; var template (value) Reginfo_Type v_Reginfo; - var boolean v_ApplyGRUU := false; + var boolean v_ApplyGRUU := false; /* GRUU is not considered in the test case prose */ var CharStringList_Type v_PublicUserIdentityList; timer t_Wait := 60.0; @@ -46,7 +45,7 @@ module IMS_CC_NotificationTestcases { f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); v_RegisterReq := f_IMS_Register(); - v_SubscribeReq := f_IMS_Register_SubscribeNotify(v_RegisterReq); + f_IMS_Register_SubscribeNotify(v_RegisterReq); v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); v_PublicUserIdentityList := f_IMS_PTC_ImsInfo_GetAllIMPUs(); /* @sic R5s130296 sic@ */ @@ -61,7 +60,7 @@ module IMS_CC_NotificationTestcases { v_Reginfo := f_XML_RegInfo(full, 1, v_Registrations); // @siclog "Step 1 - 2" siclog@ - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, v_Reginfo, 2, cs_SubscriptionState_Terminated); + f_IMS_Register_Notify(v_ContactUrl, v_Reginfo, cs_SubscriptionState_Terminated); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ f_IMS_PreliminaryPass(__FILE__, __LINE__, "Step 2"); @@ -92,15 +91,15 @@ module IMS_CC_NotificationTestcases { { var SecurityClientParams_Type v_SecurityClientParams; var IMS_DATA_REQ v_IMS_DATA_REQ; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo; var REGISTER_Request v_RegisterReq; - var SUBSCRIBE_Request v_SubscribeReq; var charstring v_NW_AddrStr; var SipUrl v_ContactUrl; var template (value) Reginfo_Type v_XmlMessage; var template (value) RegInfo_RegistrationList_Type v_Registrations; - var template (value) IMS_SecurityInfo_Type v_SecurityInfo; var charstring v_PublicUserIdentity; - var boolean v_ApplyGRUU := false; + var IMS_TCP_CloseHandling_Type v_TcpCloseHandling := justWait; + var boolean v_ApplyGRUU := false; /* GRUU is not considered in the test case prose */ var integer v_NonceCount; var integer v_ExpirationTime := 60; var float v_ReRegistrationTime := int2float(v_ExpirationTime / 2); @@ -111,7 +110,7 @@ module IMS_CC_NotificationTestcases { f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); v_RegisterReq := f_IMS_Register_NonGIBA(); - v_SubscribeReq := f_IMS_Register_SubscribeNotify(v_RegisterReq); + f_IMS_Register_SubscribeNotify(v_RegisterReq); v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); v_PublicUserIdentity := f_IMS_PTC_ImsInfo_GetURI(firstId); // @sic R5s130266 change 1.1 sic@ @@ -123,7 +122,7 @@ module IMS_CC_NotificationTestcases { v_Registrations[0] := f_XML_RegistrationInfo(v_RegisterReq, v_PublicUserIdentity, "a100", "980", active, shortened, v_ExpirationTime, v_ApplyGRUU); v_XmlMessage := f_XML_RegInfo(partial, 1, v_Registrations); // @siclog "Step 1 - 2" siclog@ - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, v_XmlMessage, 2); + f_IMS_Register_Notify(v_ContactUrl, v_XmlMessage); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ t_TRegExpireMin.start; // @sic R5s130266 change 1.2 - MCC160 Implementation sic@ t_TRegExpireMax.start; // @sic R5s130266 change 1.2 - MCC160 Implementation sic@ @@ -140,12 +139,6 @@ module IMS_CC_NotificationTestcases { v_SecurityClientParams := f_IMS_PTC_ReRegistration_SecurityClientParamsGet(); f_IMS_PTC_ReRegistration_SecurityClientParamsCheck(v_RegisterReq, v_SecurityClientParams); - // store old security info to release it after re-authentication @sic R5130900 - MCC160 implementation sic@ - v_SecurityInfo := cs_IMS_SecurityInfo(f_IMS_PTC_Security_GetProtectedPorts(), - f_IMS_PTC_Security_GetSPIs(), - f_IMS_PTC_Security_GetIntegrityAlgorithm(), - f_IMS_PTC_Security_GetCipheringAlgorithm()); - // @siclog "Step 4" siclog@ f_IMS_Register_SecurityInit(v_RegisterReq, not4b tsc_IMS_AuthRAND); /* generate a new RAND */ IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine401, f_IMS_RegisterResponse_401_MessageHeaderTX(v_RegisterReq)))); @@ -155,14 +148,17 @@ module IMS_CC_NotificationTestcases { v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(-, -, v_NonceCount); v_RegisterReq := v_IMS_DATA_REQ.Request.Register; - f_IMS_Register_SecurityRelease(v_SecurityInfo); // @sic R5s130900 - MCC160 implementation sic@ - + f_IMS_Register_SecurityRelease(); /* @sic R5s130900 - MCC160 implementation sic@ + @sic R5-145732: for the part 3 model it is not necessary anymore to hand over v_SecurityInfo but it is kept for backward compatibility with the part 4 model sic@ + @sic R5w150015: v_SecurityInfo is removed sic@ */ // @siclog "Step 6" siclog@ - IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine200, f_IMS_RegisterResponse_200_MessageHeaderTX(v_RegisterReq)))); + v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); /* @sic R5s141326 sic@ */ + v_RoutingInfo.Security := protectedContext1; /* @sic R5s141326: by releasing the old security context the new one becomes context 1 sic@ */ + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_RegisterResponse_200_MessageHeaderTX(v_RegisterReq)))); f_IMS_PreliminaryPass(__FILE__, __LINE__, "test case 11.2"); f_IMS_TestBody_Set(false); - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling, -, v_TcpCloseHandling); } } diff --git a/IMS_PART4_IWD_14wk37/IMS/12/IMS_CC_CallControlTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/12/IMS_CC_CallControlTestcases.ttcn similarity index 56% rename from IMS_PART4_IWD_14wk37/IMS/12/IMS_CC_CallControlTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/12/IMS_CC_CallControlTestcases.ttcn index 0be1b17..6740c58 100644 --- a/IMS_PART4_IWD_14wk37/IMS/12/IMS_CC_CallControlTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/12/IMS_CC_CallControlTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ /******************************************************************************/ module IMS_CC_CallControlTestcases { @@ -22,18 +22,17 @@ module IMS_CC_CallControlTestcases { import from IMS_XML_Templates all; import from IMS_SDP_Templates all; import from IMS_SDP_Messages all; + import from IMS_SDP_MessagesVideo all; import from IMS_CC_CommonFunctions all; import from IMS_Procedures_Registration all; import from IMS_Procedures_CallControl all; + import from IMS_Procedures_Video all; import from IMS_Procedures_Common all; import from IMS_CommonFunctions all; - import from IMS_CommonTemplates all; import from IMS_PTC_CoordMsg all; - import from IMS_IP_Config all; import from IMS_CC_IPCAN_Coordination all; import from CommonDefs all; import from UpperTesterFunctions all; - import from IMS_CommonDefs all; //============================================================================ @@ -44,57 +43,33 @@ module IMS_CC_CallControlTestcases { charstring p_Fmt2) runs on IMS_PTC return template (value) SDP_Message { // Build SDP record according 34.229-1 Annex C.13 step 1 - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrNW := f_IMS_PTC_RemoteAddress_GetAddrStr(); var SDP_fmt_list v_Fmts := {p_Fmt1, p_Fmt2}; - var template (value) SDP_media_desc v_SDP_Media_Desc; - var integer v_BandwidthAS := 3; - var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(v_BandwidthAS, 0, 500); - var template (value) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(3, 0, 500); + + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := { cs_SDP_Attribute_rtpmap(p_Fmt1, cs_RTPMAP_Codec("t140", "1000")), cs_SDP_Attribute_rtpmap(p_Fmt2, cs_RTPMAP_Codec("red", "1000")), cs_SDP_Attribute_fmtp(p_Fmt2, {unstructured := "99/99/99"}), cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cs_SDP_Attribute_curr_qos(c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote) + cs_SDP_Attribute_maxptime }; - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Text(v_Fmts), - v_Bandwidth_List_Media, - v_SDP_Attribute_List); - - return cs_SDP_Message_Def(cs_SDP_Origin(-, -, v_AddrType, v_IPAddrNW), cs_SDP_Connection(v_AddrType, v_IPAddrNW), -, v_BandwidthAS, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_sendrecv, c_none, c_mandatory, c_mandatory); + + return f_IMS_BuildSDP_TX(cs_SDP_Media_Text(v_Fmts), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); } function f_IMS_BuildSDP_AnnexC13_Step4(charstring p_Fmt1, charstring p_Fmt2) runs on IMS_PTC return template (present) SDP_Message { /* Build SDP record to be received from the UE at step 2 according to 34.229-1 Annex C.13 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: + + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { cr_SDP_Attribute_rtpmap(p_Fmt1, cr_RTPMAP_Codec("t140", "1000")), cr_SDP_Attribute_rtpmap(p_Fmt2, cr_RTPMAP_Codec("red", "1000")), - cr_SDP_Attribute_fmtp(p_Fmt2), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local, c_sendrecv), - cr_SDP_Attribute_des_qos(c_optional, c_remote, c_sendrecv), - * + cr_SDP_Attribute_fmtp(p_Fmt2) }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_optional); - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Text(p_Fmt1, p_Fmt2), - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); + return f_IMS_BuildSDP_RX(-, cr_SDP_Media_Text(p_Fmt1, p_Fmt2), v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); } //============================================================================ @@ -103,59 +78,35 @@ module IMS_CC_CallControlTestcases { const charstring tsc_Fmtp_Red1000_Params := "99/99/99"; - function f_IMS_BuildSDP_AnnexC15_Step2() runs on IMS_PTC return template (present) SDP_Message { /* Build SDP record to be received from the UE at step 2 according to 34.229-1 Annex C.15 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_Codec("t140", "1000")), cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_Codec("red", "1000")), - cr_SDP_Attribute_fmtp(-, crs_Fmtp_UnstructuredParams(tsc_Fmtp_Red1000_Params)), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local, c_sendrecv), - cr_SDP_Attribute_des_qos(c_optional, c_remote, c_sendrecv), - * + cr_SDP_Attribute_fmtp(-, crs_Fmtp_UnstructuredParams(tsc_Fmtp_Red1000_Params)) }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, c_none, c_mandatory, c_optional); - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Text, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); + return f_IMS_BuildSDP_RX(-, cr_SDP_Media_Text, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); } function f_IMS_BuildSDP_AnnexC15_Step5(SDP_Message p_SDP_MessageRx, charstring p_Fmt1, charstring p_Fmt2) runs on IMS_PTC return template (value) SDP_Message { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var template (value) SDP_media_desc v_SDP_Media_Desc; var template (value) SDP_Message v_SDP_MessageTx; - var SDP_bandwidth_list v_Bandwidth_List_Media := p_SDP_MessageRx.bandwidth; + var SDP_bandwidth_list v_MediaBandwidth_List := p_SDP_MessageRx.media_list[0].bandwidth; + var integer v_SessionBandwidthAS := f_SDP_BandwidthList_GetBandwidth(p_SDP_MessageRx.bandwidth, "AS"); var SDP_fmt_list v_Fmts := {p_Fmt1, p_Fmt2}; - var template (value) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := { cs_SDP_Attribute_rtpmap(p_Fmt1, cs_RTPMAP_Codec("t140", "1000")), cs_SDP_Attribute_rtpmap(p_Fmt2, cs_RTPMAP_Codec("red", "1000")), - cs_SDP_Attribute_fmtp(p_Fmt2, crs_Fmtp_UnstructuredParams(tsc_Fmtp_Red1000_Params)), // !!!! NOTE: there are no params specified in the prose (even though being mandatory) !!!! - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote) + cs_SDP_Attribute_fmtp(p_Fmt2, crs_Fmtp_UnstructuredParams(tsc_Fmtp_Red1000_Params)) // !!!! NOTE: there are no params specified in the prose (even though being mandatory) !!!! }; - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Text(v_Fmts), - v_Bandwidth_List_Media, - v_SDP_Attribute_List); - v_SDP_MessageTx := cs_SDP_Message_Def(cs_SDP_Origin(p_SDP_MessageRx.origin.session_id, p_SDP_MessageRx.origin.session_version, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrOrigin), p_SDP_MessageRx.session_name, -, v_SDP_Media_Desc); - + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + + v_SDP_MessageTx := f_IMS_BuildSDP_TX(cs_SDP_Media_Text(v_Fmts), v_MediaBandwidth_List, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes, v_SessionBandwidthAS); + // prose says these must be the same too v_SDP_MessageTx.origin.session_id := p_SDP_MessageRx.origin.session_id; v_SDP_MessageTx.origin.session_version := p_SDP_MessageRx.origin.session_version; @@ -183,7 +134,7 @@ module IMS_CC_CallControlTestcases { var boolean v_SrvccAlerting := false; /* as we have no voice call */ // Step 2. Receive INVITE Request - v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(A_2_1_A4, tsc_OptionTagList_precondition, -, -, -, -, -, -, v_SrvccAlerting); + v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(A_2_1_A4, tsc_OptionTagList_precondition, -, -, -, -, -, v_SrvccAlerting); v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_INVITE_REQ.RoutingInfo); v_InviteRequest := v_IMS_INVITE_REQ.Request.Invite; v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_InviteRequest.messageBody, v_SDP_MessageStep2); @@ -213,456 +164,40 @@ module IMS_CC_CallControlTestcases { return v_InviteRequest; } - //============================================================================ - // Annex C25 - SDP Messages - //---------------------------------------------------------------------------- - - function f_IMS_BuildSDP_AnnexC25_Step2() runs on IMS_PTC return template (present) SDP_Message - { /* Build SDP record to be received from the UE at step 2 according to 34.229-1 Annex C.25 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrAudio := ?; - var template (present) charstring v_IPAddrVideo := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Video; - var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; - - var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), /* @sic R5w140113, R5w140009 sic@ */ - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), // @sic R5s130333 change 14.2 - pattern needs to include a rate; R5s130798 change 5 - MCC160 Comment: rate is optional sic@ - cr_SDP_Attribute_ptime, - cr_SDP_Attribute_maxptime, - cr_SDP_Attribute_inactive, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Video := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), - cr_SDP_Attribute_fmtp(-, cr_Video_Fmtp_DefaultParameters), - cr_SDP_Attribute_inactive, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - - v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrAudio), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video, - cr_SDP_Connection(v_AddrType, v_IPAddrVideo), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, -, cr_SDP_Time_Any, v_SDP_Media_Desc_List); - } - - function f_IMS_BuildSDP_AnnexC25_Step4(SDP_media_desc p_SDP_Media_AudioRx, - SDP_media_desc p_SDP_Media_VideoRx, - boolean p_TcapPcfg) runs on IMS_PTC return template (value) SDP_Message - { /* Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.25 */ - /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var charstring v_IPAddrOrigin := v_IPAddrConnection; - var template (value) SDP_media_desc v_SDP_Media_Desc_AudioTx; - var template (value) SDP_media_desc v_SDP_Media_Desc_VideoTx; - var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; - var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio := p_SDP_Media_AudioRx.bandwidth; - var template (value) SDP_bandwidth_list v_Bandwidth_List_Video := p_SDP_Media_VideoRx.bandwidth; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_AudioRx); - var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(p_SDP_Media_VideoRx); - - var template (value) SDP_attribute_list v_SDP_Attribute_List_Audio := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos(c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_conf_qos - }; - var template (value) SDP_attribute_list v_SDP_Attribute_List_Video := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtVideo, cs_RTPMAP_Codec("", "")), // !!!! codec need to be specified in the prose !!!! - cs_SDP_Attribute_fmtp(v_FmtVideo, cs_Fmtp_ParamList({cs_GenericParam("", "")})), // !!!! parameters need to be specified in the prose !!!! - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos(c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_conf_qos - }; - v_SDP_Media_Desc_AudioTx := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - v_Bandwidth_List_Audio, - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_VideoTx := cs_SDP_Media_Desc(cs_SDP_Media_Video(v_FmtVideo), - v_Bandwidth_List_Video, - v_SDP_Attribute_List_Video); - - v_SDP_Media_Desc_VideoTx.attributes := f_SDP_Attributes_Add_TX(v_SDP_Media_Desc_VideoTx.attributes, cs_SDP_Attribute_acfg(1, "t=1"), p_TcapPcfg); - - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_AudioTx, v_SDP_Media_Desc_VideoTx }; - - return cs_SDP_Message_Common(cs_SDP_Origin(-, -, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, cs_SDP_Bandwidth_List_AS(30), -, v_SDP_Media_Desc_List); /* @sic R5-144402: v_Sessionname removed sic@ */ - } - - function f_IMS_BuildSDP_AnnexC25_Step5or7(charstring p_FmtAudio, - charstring p_FmtVideo) runs on IMS_PTC return template (present) SDP_Message - { /* to receive 2nd SDP answer sent by the UE in C.25 step 5/7 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrAudio := ?; - var template (present) charstring v_IPAddrVideo := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Video; - var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; - - var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio := { - // media attributes: - cr_SDP_Attribute_rtpmap(p_FmtAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(p_FmtAudio), - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos((c_optional, c_mandatory), c_remote), /* @sic R5-142951: (c_optional, c_mandatory) instead of c_optional sic@ */ - * - }; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Video := { - // media attributes: - cr_SDP_Attribute_rtpmap(p_FmtVideo, cr_RTPMAP_H264_90000), - cr_SDP_Attribute_fmtp(p_FmtVideo, cr_Video_Fmtp_DefaultParameters), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - - v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio(p_FmtAudio), - cr_SDP_Connection(v_AddrType, v_IPAddrAudio), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video(p_FmtVideo), - cr_SDP_Connection(v_AddrType, v_IPAddrVideo), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, -, cr_SDP_Time_Any, v_SDP_Media_Desc_List); - } - - //============================================================================ - // Annex C25 - Steps - //---------------------------------------------------------------------------- - - function fl_CheckRTPAVP_TcapPcfg (SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC return boolean - { - var boolean v_Result := false; - var template (omit) SDP_attribute v_Attribute; - - if (p_SDP_Media_Desc.media_field.transport == "RTP/AVP") { - v_Attribute := f_SDP_AttributeList_GetAttribute (p_SDP_Media_Desc.attributes, cr_SDP_Attribute_tcap(1, "RTP/AVPF")); - if (not isvalue (v_Attribute)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "missing tcap attribute"); - } else { - v_Result := true; - } - v_Attribute := f_SDP_AttributeList_GetAttribute (p_SDP_Media_Desc.attributes, cr_SDP_Attribute_pcfg(1, "t=1")); - if (not isvalue (v_Attribute)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "missing pcfg attribute"); - } - } - return v_Result; - } - - //---------------------------------------------------------------------------- - - function f_IMS_MOCallSetup_AnnexC25_Step2() runs on IMS_PTC return IMS_InviteRequestWithSdp_Type - { /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - var template (present) SDP_Message v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC25_Step2(); - var IMS_DATA_REQ v_IMS_INVITE_REQ; - var SDP_Message v_SDP_Message; - var boolean v_A12 := false; // as we have video but not voice - - // Step 2. Receive INVITE Request - v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(A_2_1_A4, tsc_OptionTagList_precondition, -, -, -, -, -, -, v_A12); - v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_IMS_INVITE_REQ.Request.Invite.messageBody, v_SDP_Message_Step2); - - // check media description: - f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); - f_IMS_SDP_CheckMediaDescr_H264_90000(v_SDP_Message.media_list[1]); - - return f_IMS_InviteRequestWithSdpMO(v_IMS_INVITE_REQ, v_SDP_Message); - } - - //---------------------------------------------------------------------------- - - function f_IMS_MOCallSetup_AnnexC25_Step3_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - boolean p_TcapPcfg) runs on IMS_PTC return MessageHeader - { /* return MessageHeader of the 183 response */ - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); - var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; - var SDP_Message v_SDP_MessageStep2 := p_InviteRequestWithSdp.SdpOffer; - var template (value) SDP_Message v_SDP_MessageStep4 := f_IMS_BuildSDP_AnnexC25_Step4(v_SDP_MessageStep2.media_list[0], v_SDP_MessageStep2.media_list[1], p_TcapPcfg); - var template (value) MessageHeader v_MessageHeader_Response183; - - // Step 3. SS sends a 100 Trying provisional response. - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); - - // Step 4. Send 183 Session In Progress. - v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition); /* @sic R5-142951 sic@ */ - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_MessageStep4)))); - - return valueof(v_MessageHeader_Response183); - } - - function f_IMS_MOCallSetup_AnnexC25_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - MessageHeader p_MessageHeader_Prev183Response) runs on IMS_PTC - { - var SDP_Message v_SDP_Offer := p_InviteRequestWithSdp.SdpOffer; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Offer.media_list[0]); - var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(v_SDP_Offer.media_list[1]); - var template (present) SDP_Message v_SDP_Message_Step5or7 := f_IMS_BuildSDP_AnnexC25_Step5or7(v_FmtAudio, v_FmtVideo); - var boolean v_SrvccAlerting := false; /* as we have no voice call */ - - f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, -, v_SDP_Message_Step5or7); - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp, -, v_SrvccAlerting); - f_IMS_MOCallSetup_AnnexC21C25_Step12_13(p_InviteRequestWithSdp); - } - - //============================================================================ - // Annex C26 - SDP Messages - //---------------------------------------------------------------------------- - - function f_IMS_BuildSDP_AnnexC26_Step1or7(charstring p_Step, - charstring p_FmtAudio, - charstring p_FmtVideo, - template (value) SDP_attribute p_SDP_Attribute_curr_qos_remote := cs_SDP_Attribute_curr_qos(c_remote)) - runs on IMS_PTC return template (value) SDP_Message - { /* Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.26 */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var template (value) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (value) SDP_media_desc v_SDP_Media_Desc_Video; - var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; - var template (omit) SDP_attribute_list v_SDP_Attribute_List_Audio; - var template (omit) SDP_attribute_list v_SDP_Attribute_List_Video; - var charstring v_SessionVersion := tsc_SDP_SessionVersion1; - var charstring v_Direction := c_none; - var boolean v_IsStep7 := (p_Step == "step 7"); - - if (v_IsStep7) { - v_Direction := c_sendrecv; - } - v_SDP_Attribute_List_Audio := { - // media attributes: - cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(p_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, v_Direction), - p_SDP_Attribute_curr_qos_remote, - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_optional, c_remote) - }; - v_SDP_Attribute_List_Video := { - // media attributes: - cs_SDP_Attribute_rtpmap(p_FmtVideo, cs_RTPMAP_H264_90000), - cs_SDP_Attribute_fmtp(p_FmtVideo, cs_Fmtp_ParamList(cs_Fmtp_VideoParamsWithPacketizationMode)), - cs_SDP_Attribute_rtcp_fb("*", "trr-int 5000"), - cs_SDP_Attribute_rtcp_fb("*", "nack"), - cs_SDP_Attribute_rtcp_fb("*", "nack pli"), - cs_SDP_Attribute_rtcp_fb("*", "ccm fir"), - cs_SDP_Attribute_rtcp_fb("*", "ccm tmmbr"), - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, v_Direction), - p_SDP_Attribute_curr_qos_remote, - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_optional, c_remote) - }; - v_SDP_Attribute_List_Audio := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List_Audio, cs_SDP_Attribute_sendrecv, v_IsStep7); - v_SDP_Attribute_List_Video := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List_Video, cs_SDP_Attribute_sendrecv, v_IsStep7); - - v_SDP_Media_Desc_Audio := cs_SDP_Media_Desc(cs_SDP_Media_Audio(p_FmtAudio), - cs_SDP_Bandwidth_List_Media(30, 0, 2000), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cs_SDP_Media_Desc(cs_SDP_Media_Video(p_FmtVideo), - cs_SDP_Bandwidth_List_Media(315, 0, 2500), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - - if (v_IsStep7) {v_SessionVersion := tsc_SDP_SessionVersion2; } - - return cs_SDP_Message_Common(cs_SDP_Origin(-, v_SessionVersion, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrOrigin), -, cs_SDP_Bandwidth_List_AS(30), -, v_SDP_Media_Desc_List); - } - - function f_IMS_BuildSDP_AnnexC26_Step4(charstring p_FmtAudio, - charstring p_FmtVideo) runs on IMS_PTC return template (present) SDP_Message - { /* to receive SDP answer sent by the UE in C.26 step 4 */ - /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrAudio := ?; - var template (present) charstring v_IPAddrVideo := ?; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Video; - var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Video; - var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; - - v_SDP_Attribute_List_Audio := { - cr_SDP_Attribute_rtpmap(p_FmtAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(p_FmtAudio), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, (c_none, c_sendrecv)), - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cr_SDP_Attribute_conf_qos, - * - }; - v_SDP_Attribute_List_Video := { - cr_SDP_Attribute_rtpmap(p_FmtVideo, cr_RTPMAP_H264_90000), - cr_SDP_Attribute_fmtp(p_FmtVideo, cr_Fmtp_ParamList(cr_Fmtp_VideoParamsWithPacketizationMode)), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, (c_none, c_sendrecv)), - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cr_SDP_Attribute_conf_qos, - * - }; - v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio(p_FmtAudio), - cr_SDP_Connection(v_AddrType, v_IPAddrAudio), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video(p_FmtVideo), - cr_SDP_Connection(v_AddrType, v_IPAddrVideo), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, -, cr_SDP_Time_Any, v_SDP_Media_Desc_List); - } - - function f_IMS_BuildSDP_AnnexC26_Step8(charstring p_FmtAudio, - charstring p_FmtVideo) runs on IMS_PTC return template (present) SDP_Message - { /* to receive SDP answer sent by the UE in C.26 steps 4 or 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 */ - /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrAudio := ?; - var template (present) charstring v_IPAddrVideo := ?; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio; - var template (present) SDP_attribute_list v_SDP_Attribute_List_Video; - var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; - var template (present) SDP_media_desc v_SDP_Media_Desc_Video; - var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; - - v_SDP_Attribute_List_Audio := { - cr_SDP_Attribute_rtpmap(p_FmtAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(p_FmtAudio), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_sendrecv, - * - }; - v_SDP_Attribute_List_Video := { - cr_SDP_Attribute_rtpmap(p_FmtVideo, cr_RTPMAP_H264_90000), - cr_SDP_Attribute_fmtp(p_FmtVideo, cr_Fmtp_ParamList(cr_Fmtp_VideoParamsWithPacketizationMode)), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_sendrecv, - * - }; - v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio(p_FmtAudio), - cr_SDP_Connection(v_AddrType, v_IPAddrAudio), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Audio); - v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video(p_FmtVideo), - cr_SDP_Connection(v_AddrType, v_IPAddrVideo), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List_Video); - v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, -, cr_SDP_Time_Any, v_SDP_Media_Desc_List); - } - //============================================================================ // Annex C26 - Steps //---------------------------------------------------------------------------- - - function f_IMS_MTCallSetup_AnnexC26_Steps1_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - charstring p_FmtAudio, - charstring p_FmtVideo) runs on IMS_PTC return IMS_ResponseWithSdp_Type - { /* MT video call setup according to 34.229-1 Annex C.26, steps 1 to 4. - return SessionInProgress183 and its SDP message received in step 4 */ - var template (present) SDP_Message v_SDP_MessageStep4; - var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; - var InternetProtocol_Type v_Protocol := p_InviteRequestWithSdp.RoutingInfo.Protocol; - - // Step 1 - Send INVITE - IMS_Client.send(cas_IMS_Invite_Request(p_InviteRequestWithSdp.RoutingInfo, v_InviteRequest)); - - // Step 2 - Void - - // Step 3 .. 4 - v_SDP_MessageStep4 := f_IMS_BuildSDP_AnnexC26_Step4(p_FmtAudio, p_FmtVideo); - return f_IMS_MTCallSetup_Common_Steps3_4(v_InviteRequest, v_SDP_MessageStep4, v_Protocol); - } - + /* + * @desc Signalling according 34.229-1 Annex C.26 steps 5 to 13 + * @param p_InviteRequestWithSdp + * @param p_FmtAudio + * @param p_FmtVideo + * @param p_SessionInProgress183 + * @param p_SDP_MessageStep183 + * @status APPROVED (IMS) + */ function f_IMS_MTCallSetup_AnnexC26_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_FmtAudio, charstring p_FmtVideo, IMS_Response_Type p_SessionInProgress183, - SDP_Message p_SDP_MessageStep4) runs on IMS_PTC - { // Signalling according 34.229-1 Annex C.26 steps 5 to 13 + SDP_Message p_SDP_MessageStep183) runs on IMS_PTC + { var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.msgHeader; var InternetProtocol_Type v_Protocol := p_InviteRequestWithSdp.RoutingInfo.Protocol; var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; - var SDP_Message v_SDP_MessageStep1 := p_InviteRequestWithSdp.SdpOffer; - var charstring v_Direction; var template (value) SDP_Message v_SDP_MessageStep7; var template (present) SDP_Message v_SDP_MessageStep8; + var template (omit) SDP_attribute v_SDP_Attribute; + var charstring v_Direction; // Step 5 - 6. Send PRACK, Receive 200 OK f_IMS_MTCallSetup_SendPRACK_ReceiveOK(v_InviteRequest, v_MessageHeader_PrevReliableResponse); // Step 7 - 8. Send UPDATE, Receive 200 OK, Receive optional 180 Ringing and send PRACK if requested - // get curr:qos remote for SDP message in step 7 - if (isvalue(v_SDP_MessageStep1.media_list[0]) and f_SDP_AttributeList_CheckAttribute(p_SDP_MessageStep4.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, c_none))) { - v_Direction := c_none; - } else { - v_Direction := c_sendrecv; - } - v_SDP_MessageStep7 := f_IMS_BuildSDP_AnnexC26_Step1or7("step 7", p_FmtAudio, p_FmtVideo, cs_SDP_Attribute_curr_qos(c_remote, v_Direction)); - v_SDP_MessageStep8 := f_IMS_BuildSDP_AnnexC26_Step8(p_FmtAudio, p_FmtVideo); + v_SDP_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_MessageStep183.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, ?)); // get curr:qos remote for SDP message in step 7 + v_Direction := valueof(v_SDP_Attribute.curr.direction); + v_SDP_MessageStep7 := f_IMS_BuildSDP_MTCallAudioVideo_TX(C26, Update, p_FmtAudio, p_FmtVideo, v_Direction); + v_SDP_MessageStep8 := f_IMS_BuildSDP_MTCallAudioVideo_RX(C26, Response200, p_FmtAudio, p_FmtVideo); f_IMS_MTCallSetup_Common_Steps7_11(v_InviteRequest, v_SDP_MessageStep7, v_SDP_MessageStep8, v_Protocol); // Step 11A - Make UE accept the speech AMR offer @@ -707,6 +242,7 @@ module IMS_CC_CallControlTestcases { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ var INVITE_Request v_InviteRequest; var template (present) SipUrl v_RequestSipUrl := f_SIP_BuildSipUri_RX(px_IMS_CalleeUri); // @sic R5s130580 sic@ + var template (present) SDP_Message v_SDP_Message_Step2; var integer v_RetryAfter := 60; // seconds var float v_RetryAfterMin := f_IMS_SetTimerToleranceMin(int2float(v_RetryAfter)); var float v_RetryAfterMax := f_IMS_SetTimerToleranceMax(int2float(v_RetryAfter)); @@ -740,7 +276,8 @@ module IMS_CC_CallControlTestcases { // Step 7. Receive INVITE (optional) // @siclog "Step 7" siclog@ - f_IMS_MOCallSetup_AnnexC21_Step2_Optional(-, A_2_1_A4, (v_RetryAfterMax - v_RetryAfterMin)); // @sic R5s130580 - additional change sic@ + v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC21_Step2(); /* @sic R5s150704 - additional changes sic@ */ + f_IMS_MOCallSetup_AnnexC21_Step2_Optional(v_SDP_Message_Step2, -, A_2_1_A4, (v_RetryAfterMax - v_RetryAfterMin)); // @sic R5s130580 - additional change sic@ f_IMS_CC_AbortCall(); // to abort call establishment procedure @@ -780,7 +317,7 @@ module IMS_CC_CallControlTestcases { // @siclog "Step 3" siclog@ IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine504, f_IMS_CommonResponse_504_MessageHeaderTX(v_InviteRequest.msgHeader), - cs_MessageBody_XML(cs_TIMS3GPP_Restoration)))); + cs_MessageBody_XML(cs_Ims_3gpp_Restoration)))); // Step 4. Receive ACK // @siclog "Step 4" siclog@ v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine504); @@ -788,9 +325,7 @@ module IMS_CC_CallControlTestcases { f_IMS_CC_AbortCall(); // to abort call establishment procedure - f_IMS_RegisterInfo_Release(); // release registration information at IPCAN - f_IMS_PTC_ImsInfo_Reset(); // reset ImsInfo - f_IMS_PTC_Security_Release(); // release security + f_IMS_GlobalRelease(); // @sic R5s141339 change 2 - additional change sic@ */ // Steps 5 to 12. UE performs initial registration Annex C.2 // @siclog "Step 5 - 12" siclog@ @@ -869,7 +404,7 @@ module IMS_CC_CallControlTestcases { // Steps 5 to 13 as defined in Annex C.11 // @siclog "Step 5 -13" siclog@ - f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdp, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdp, v_ResponseWithSdp); // MT Call is now established f_Delay(3.0); /* @sic R5s130510 change 1; draft prose CR sic@ */ @@ -909,7 +444,6 @@ module IMS_CC_CallControlTestcases { //---------------------------------------------------------------------------- - function f_IMS_MTCallSetup_AnnexC13_Steps1to10(IMS_TestProcedure_Type p_TestProcedure, template (value) SDP_Message p_SDP_Message_Step1, template (present) SDP_Message p_SDP_Message_Step4or7) runs on IMS_PTC //return INVITE_Request @@ -977,7 +511,8 @@ module IMS_CC_CallControlTestcases { [] t_Timer.timeout {} } - if (isbound(v_MessageHeader)) { // i.e. tehre has been a 180 Ringing + if (isbound(v_MessageHeader)) { // i.e. there has been a 180 Ringing + f_IMS_MessageHeader_Response_CheckRecordRoute(v_MessageHeader); /* @sic R5s150039 sic@ */ f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) if (f_MessageHeader_CheckRequire(v_MessageHeader, c_tag100rel)) { @@ -1045,8 +580,8 @@ module IMS_CC_CallControlTestcases { // Initial conditions f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_NULL); // @sic R5s140334 sic@ // @sic R5s140334 sic@ + f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_18); // @sic R5s141381 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_18); // @sic R5s140577 sic@ f_IMS_Registration(); f_IMS_CC_ReleaseConnection(IPCAN_InitialRegistration); @@ -1104,8 +639,8 @@ module IMS_CC_CallControlTestcases { // Initial conditions f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_NULL); + f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_18); // same TC 12_18 // @sic R5s141381 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_18); // same TC 12_18 // @sic R5s140577 sic@ f_IMS_Registration(); f_IMS_TestBody_Set(true); @@ -1183,20 +718,21 @@ module IMS_CC_CallControlTestcases { } //---------------------------------------------------------------------------- - // See 34.229-1 clause 12.19 - MTSI MO video call / SSAC / 0% access probability for MTSI MO video call + /* + * @desc REFERENCE TS 34.229-1 clause 12.19 + * @status APPROVED (IMS) + */ function f_TC_12_19_IMS() runs on IMS_PTC - { + { /* MTSI MO video call / SSAC / 0% access probability for MTSI MO video call */ var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var MessageHeader v_MessageHeader_Response183; var INVITE_Request v_InviteRequest; - var SDP_Message v_SDP_MessageStep2; - var boolean v_TcapPcfg; // Initial conditions f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_NULL); // @sic R5s140334 sic@ // @sic R5s140334 sic@ + f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_19); // @sic R5s141381 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_19); // @sic R5s140577 sic@ f_IMS_Registration(); f_IMS_CC_ReleaseConnection(IPCAN_InitialRegistration); @@ -1217,23 +753,21 @@ module IMS_CC_CallControlTestcases { // @siclog "Step 6" siclog@ f_UT_RequestIMSVideoCall(MMI, px_IMS_CalleeUri); - + // Step 7 + 8 - UE does not send INVITE and Wait 49s to expire timer Ty // @siclog "Step 7 - 8" siclog@ f_Delay(59.0); - + // Steps 9 to 21 - MTSI MO video call for EPS // @siclog "Step 9 - 21" siclog@ f_IMS_CC_StartCall(IPCAN_MO_VideoCall); - - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC25_Step2(); + + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(C25); v_InviteRequest := v_InviteRequestWithSdp.Invite; - v_SDP_MessageStep2 := v_InviteRequestWithSdp.SdpOffer; - v_TcapPcfg := fl_CheckRTPAVP_TcapPcfg(v_SDP_MessageStep2.media_list[1]); - - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC25_Step3_4(v_InviteRequestWithSdp, v_TcapPcfg); - // See TS. 36.508 EUTRA/EPS signalling for IMS MO video call Table 4.5A.8.3-1 Step 12-15 + v_MessageHeader_Response183 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp); + + // See TS. 36.508 EUTRA/EPS signalling for IMS MO video call Table 4.5A.8.3-1 Step 12-15 f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_VideoCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearers f_IMS_MOCallSetup_AnnexC25_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); @@ -1245,8 +779,8 @@ module IMS_CC_CallControlTestcases { f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); } - //---------------------------------------------------------------------------- - + //---------------------------------------------------------------------------- + // See 34.229-1 clause 12.19a - MTSI MO video call / SSAC in Connected mode / 0% access probability for MTSI MO video call // @sic R5-144688 sic@ function f_TC_12_19a_IMS() runs on IMS_PTC @@ -1254,13 +788,11 @@ module IMS_CC_CallControlTestcases { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var MessageHeader v_MessageHeader_Response183; var INVITE_Request v_InviteRequest; - var SDP_Message v_SDP_MessageStep2; - var boolean v_TcapPcfg; // Initial conditions f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_NULL); // @sic R5s140334 sic@ + f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_19); // same TC_12_19 // @sic R5s141381 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_19); // same TC_12_19 // @sic R5s140577 sic@ f_IMS_Registration(); f_IMS_TestBody_Set(true); @@ -1288,12 +820,10 @@ module IMS_CC_CallControlTestcases { // @siclog "Step 17 - 23" siclog@ // @sic R5-144279 sic@ - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC25_Step2(); + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(C25); v_InviteRequest := v_InviteRequestWithSdp.Invite; - v_SDP_MessageStep2 := v_InviteRequestWithSdp.SdpOffer; - v_TcapPcfg := fl_CheckRTPAVP_TcapPcfg(v_SDP_MessageStep2.media_list[1]); - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC25_Step3_4(v_InviteRequestWithSdp, v_TcapPcfg); + v_MessageHeader_Response183 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp); // See TS. 36.508 EUTRA/EPS signalling for IMS MO video call Table 4.5A.8.3-1 Step 12-15 f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_VideoCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearers @@ -1350,8 +880,8 @@ module IMS_CC_CallControlTestcases { // Initial conditions f_IMS_CC_Preamble(IPCAN_EmergencyCall, IMS_NULL, IMS_Security); // prose specifies only Annex C.2 => not applicable for GIBA @sic R5s140334 sic@ // @sic R5s140334 sic@ + f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_20); // @sic R5s141381 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_20); // @sic R5s140577 sic@ f_IMS_Registration(); f_IMS_CC_ReleaseConnection(IPCAN_InitialRegistration); @@ -1406,8 +936,8 @@ module IMS_CC_CallControlTestcases { // Initial conditions f_IMS_CC_Preamble(IPCAN_EmergencyCall, IMS_NULL, IMS_Security); // prose specifies only Annex C.2 => not applicable for GIBA @sic R5s140334 sic@ + f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_20a); // @sic R5s141381 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_IPCAN_ModifyConfig(IPCAN, SIB2_TC_12_20a); // @sic R5s140577 sic@ f_IMS_Registration(); f_IMS_IMS_SendCoOrdMsg(OtherPDN); @@ -1451,15 +981,15 @@ module IMS_CC_CallControlTestcases { } //---------------------------------------------------------------------------- - // See 34.229-1 clause 12.21 - MO MTSI Video call + /* + * @desc REFERENCE TS 34.229-1 clause 12.21 + * @status APPROVED (IMS) + */ function f_TC_12_21_IMS() runs on IMS_PTC - { // Steps 1 to 13 as defined in Annex C.25 - + { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var INVITE_Request v_InviteRequest; var MessageHeader v_MessageHeader_Response183; - var SDP_Message v_SDP_MessageStep2; - var boolean v_TcapPcfg; f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); @@ -1469,13 +999,11 @@ module IMS_CC_CallControlTestcases { f_IMS_CC_StartCall(IPCAN_MO_VideoCall); // @siclog "Step 2" siclog@ - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC25_Step2(); + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(C25); v_InviteRequest := v_InviteRequestWithSdp.Invite; - v_SDP_MessageStep2 := v_InviteRequestWithSdp.SdpOffer; // @siclog "Step 3 - 4" siclog@ - v_TcapPcfg := fl_CheckRTPAVP_TcapPcfg(v_SDP_MessageStep2.media_list[1]); - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC25_Step3_4(v_InviteRequestWithSdp, v_TcapPcfg); + v_MessageHeader_Response183 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp); // See TS. 36.508 EUTRA/EPS signalling for IMS MO video call Table 4.5A.8.3-1 Step 12-15 f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_VideoCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearers @@ -1492,20 +1020,20 @@ module IMS_CC_CallControlTestcases { } //---------------------------------------------------------------------------- - // See 34.229-1 clause 12.22 - MT MTSI Video call + /* + * @desc REFERENCE TS 34.229-1 clause 12.22 + * @status APPROVED (IMS) + */ function f_TC_12_22_IMS() runs on IMS_PTC - { + { /* MT MTSI Video call */ var IMS_Response_Type v_SessionInProgress183; var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var template (value) MessageHeader v_MessageHeader_Invite; var template (value) INVITE_Request v_InviteRequest; - var template (value) SDP_Message v_SDP_MessageStep1; var SDP_Message v_SDP_MessageStep4; var charstring v_FmtAudio := tsc_SDP_FmtAudio; var charstring v_FmtVideo := tsc_SDP_FmtVideo; var SipUrl v_ContactUrl; - var boolean v_SrvccAlerting := false; f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); @@ -1513,22 +1041,17 @@ module IMS_CC_CallControlTestcases { f_IMS_CC_StartCall(IPCAN_MT_VideoCall); - // Steps 1 to 15 as defined in Annex C.26 - v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); - - v_SDP_MessageStep1 := f_IMS_BuildSDP_AnnexC26_Step1or7("step 1", v_FmtAudio, v_FmtVideo); - - // Prepare INVITE message to be sent in step 1. - v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(tsc_OptionTagList_precondition, -, v_SrvccAlerting); - v_InviteRequest := cs_INVITE_Request(v_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_SDP_MessageStep1)); - v_InviteRequestWithSdp := f_IMS_InviteRequestWithSdpMT(v_InviteRequest, v_SDP_MessageStep1); + // @siclog "Step 1" siclog@ + v_InviteRequestWithSdp := f_IMS_MTCallSetup_Video_SendInvite(C26, Invite, v_FmtAudio, v_FmtVideo); + v_InviteRequest := v_InviteRequestWithSdp.Invite; + // @siclog "Step 2: Void" siclog@ - // @siclog "Step 1 - 4" siclog@ - v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC26_Steps1_4(v_InviteRequestWithSdp, v_FmtAudio, v_FmtVideo); + // @siclog "Step 3 - 4" siclog@ + v_ResponseWithSdp := f_IMS_MTCallSetup_Video_Receive183(C26, v_InviteRequestWithSdp, v_FmtAudio, v_FmtVideo); v_SessionInProgress183 := v_ResponseWithSdp.Response; v_SDP_MessageStep4 := v_ResponseWithSdp.SdpMessage; v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); - + // Establish Dedicated EPS bearer // See TS. 36.508 EUTRA/EPS signalling for IMS MT video call Table 4.5A.9.3-1 Step 13-16 f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MT_VideoCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer @@ -1546,4 +1069,122 @@ module IMS_CC_CallControlTestcases { f_IMS_CC_Postamble(IPCAN_MT_VideoCall); } + + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 12.23 + */ + function f_TC_12_23_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ + var MessageHeader v_MessageHeader_Response183; + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1" siclog@ + f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); + + // @siclog "Step 2" siclog@ + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_A4(-,-,true); + + // @siclog "Step 3 - 4" siclog@ + v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp,-,-,-,true,"EVS-16000"); /* @sic R5w140112 sic@ */ + + // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + + // @siclog "Step 5 - 13" siclog@ + f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); + + // @siclog "Step 14 - 15" siclog@ + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); /* @sic R5-134116: parameter p_RecordRouteOfPrevResponse removed sic@ */ + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 12.24 + */ + function f_TC_12_24_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ + var IMS_ResponseWithSdp_Type v_ResponseWithSdp; /* @sic R5w140112 sic@ */ + var IMS_Response_Type v_SessionInProgress183; + var SipUrl v_ContactUrl; + var boolean v_IsC45:= true; + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_IMS_TestBody_Set(true); + + f_IMS_CC_StartCall(IPCAN_MT_SpeechCall); + + // Steps 1 to 4 as defined in Annex C.11 + // @siclog "Step 1 - 4" siclog@ + v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(v_IsC45); + v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp, v_IsC45); /* @sic R5-153950 sic@ */ + v_SessionInProgress183 := v_ResponseWithSdp.Response; + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); + + // Establish Dedicated EPS bearer + // See TS. 36.508 EUTRA/EPS signalling for IMS MT speech call Table 4.5A.7.3-1 Step 9-12 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MT_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + + // Steps 5 to 13 as defined in Annex C.11 + // @siclog "Step 5 -13" siclog@ + f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdp, v_ResponseWithSdp, v_IsC45); /* @sic R5-153950 sic@ */ + + // MT Call is now established + f_Delay(3.0); /* @sic R5s130510 change 1; draft prose CR sic@ */ + + // Step 14-15. SS sends BYE to release the call; UE sends 200 OK for the BYE request and ends the call + // @siclog "Step 14 -15" siclog@ + f_IMS_CallReleaseMT(v_InviteRequestWithSdp.Invite, v_ContactUrl); + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MT_SpeechCall); + } + + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 12.25 + */ + function f_TC_12_25_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ + var MessageHeader v_MessageHeader_Response183; + var boolean v_IsC44:= true; + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1" siclog@ + f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); + + // @siclog "Step 2" siclog@ + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_A4(-,-,v_IsC44); + + // @siclog "Step 3 - 4" siclog@ + v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp,-,-,-,true, "AMR-WB"); /* @sic R5-153535 sic@ */ + + // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + + // @siclog "Step 5 - 13" siclog@ + f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); + + // @siclog "Step 14 - 15" siclog@ + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); /* @sic R5-134116: parameter p_RecordRouteOfPrevResponse removed sic@ */ + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + } diff --git a/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSConferencingTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSConferencingTestcases.ttcn new file mode 100644 index 0000000..cde53c5 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSConferencingTestcases.ttcn @@ -0,0 +1,1161 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ +/******************************************************************************/ + +module IMS_CC_SSConferencingTestcases { + import from CommonDefs all; + import from IP_ASP_TypeDefs all; + import from LibSip_Common all; + import from LibSip_MessageBodyTypes all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from IMS_Component all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_CommonParameters all; + import from IMS_CC_Parameters all; + import from IMS_CommonTemplates all; + import from IMS_CommonDefs all; + import from IMS_SIP_Templates all; + import from IMS_MessageBody_Templates all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_SDP_MessagesVideo all; + import from IMS_CC_CommonFunctions all; + import from IMS_Procedures_Registration all; + import from IMS_Procedures_CallControl all; + import from IMS_Procedures_CallHold all; + import from IMS_Procedures_Video all; + import from IMS_Procedures_Common all; + import from UpperTesterFunctions all; + import from IMS_PTC_CoordMsg all; + import from IMS_CommonFunctions all; + import from IMS_ConferenceEventPackage all; +// import from urn_ietf_params_xml_ns_conference_info all; + + const float tsc_WaitForConferenceSubscription := 3.0; /* @status APPROVED (IMS) */ + + //---------------------------------------------------------------------------- + /* + * @desc Send NOTIFY acc. to 34.229-1 Annex A.2.11 + * @param p_DialogIndex (default value: omit) + * @param p_ContactUri + * @param p_SubscriptionState + * @return template (value) MessageHeader + * @status APPROVED (IMS) + */ + function f_IMS_NotifyRequest_MessageHeader_A211(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit, + template (value) SipUrl p_ContactUri, + template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader + { /* NOTE: this function requires a second "REFER" dialog being establisehed at the IMS PTC */ + /* @sic R5-153756, R5-153986: use of f_IMS_NotifyRequest_MessageHeader_Common sic@ */ + var template (value) Via v_Via := f_IMS_InviteRequest_ViaTX(); // same as for INVITE + var template (value) ContentType v_ContentType := cs_ContentType("message/sipfrag"); /* @sic R5-153756 sic@ */ + return f_IMS_NotifyRequest_MessageHeader_Common(p_DialogIndex, v_Via, p_ContactUri, "refer", p_SubscriptionState, v_ContentType); + } + + function f_IMS_NotifyRequest_MessageHeader_A213(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit, + charstring p_SubscriptionState_SubstateValue, + template SemicolonParam_List p_SubscriptionState_SubexpParams) runs on IMS_PTC return template (present) MessageHeader + { /* A.2.13 MO NOTIFY for refer package */ + /* NOTE: this function requires a second "REFER" dialog being establisehed at the IMS PTC */ + var template (present) MessageHeader v_MessageHeader_Notify := cr_MessageHeader_Dummy; + var template (present) integer v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(dialogRemote, p_DialogIndex); + var template integer v_Port_ps := *; + var template integer v_Port_us := *; + var template (present) RouteBody_List v_RouteBodyList; + var IMS_ProtectedPorts_Type v_Protected; + + if (f_IMS_PTC_Security_IsStarted()) { + v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); + v_Port_us := v_Protected.Port_us; + v_Port_ps := v_Protected.Port_ps; + } + v_RouteBodyList := { + cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)), + cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)) + }; + + v_MessageHeader_Notify.via := f_IMS_InviteRequest_ViaRX(); /* additional checks required after message has been received (-> a_IMS_ReceiveNotifyForReferAndSendOK) */ + v_MessageHeader_Notify.route := cr_Route(v_RouteBodyList); + v_MessageHeader_Notify.toField := f_IMS_RequestInDialog_ToHeaderRX(p_DialogIndex); + v_MessageHeader_Notify.fromField := f_IMS_RequestInDialog_FromHeaderRX(p_DialogIndex); + v_MessageHeader_Notify.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(p_DialogIndex); + v_MessageHeader_Notify.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(p_DialogIndex); + v_MessageHeader_Notify.cSeq := cr_CseqDef(v_CSeqValue, "NOTIFY"); + + v_MessageHeader_Notify.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* additional checks required after message has been received (-> a_IMS_ReceiveNotifyForReferAndSendOK) + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ + v_MessageHeader_Notify.contentType := cr_ContentType("message/sipfrag"); + v_MessageHeader_Notify.event := cr_EventDef("refer"); + + v_MessageHeader_Notify.maxForwards := cr_MaxForwardsDef; + v_MessageHeader_Notify.subscriptionState := cr_SubscriptionState(p_SubscriptionState_SubstateValue, p_SubscriptionState_SubexpParams); + + return v_MessageHeader_Notify; + } + + //============================================================================ + // Receive REFER + //---------------------------------------------------------------------------- + /* + * @desc MO REFER (see TS 34.229, A.2.10, C.19): + * creates new dialog for 15.18 and 15.19 ???; uses existing dialog acc. A.2.10 in C.19, 15.23 and 15.25 + * @param p_RequestUri + * @param p_ReferToUri + * @param p_ReferCreatingDialog + * @param p_CSeqValue + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) + * @return template (present) MessageHeader + * @status APPROVED (IMS) + */ + function f_IMS_ReferRequest_MessageHeaderRX(template (present) SipUrl p_RequestUri, + template (present) SipUrl p_ReferToUri, + boolean p_ReferCreatingDialog, + template (present) integer p_CSeqValue, + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) runs on IMS_PTC return template (present) MessageHeader + { /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default (only relevant in case of dialog creating REFER) sic@ */ + var boolean v_IsGiba := f_IMS_PTC_SecurityScheme_IsGiba(); // => A1/A2 + var template (present) MessageHeader v_MessageHeader_Refer := cr_MessageHeader_Dummy; + var template (present) RouteBody_List v_RouteBodyList; + var template (present) SipUrl v_SipUrlFrom := ?; + var template (present) From v_From; + var template (present) To v_To; + var template SessionId v_SessionId; + var template (present) CallId v_CallId; + var IMS_ProtectedPorts_Type v_Protected; + var template integer v_Port_us := ?; // Acc. A.2.10 mandatory even for GIBA + var template integer v_Port_ps := *; + + if (not v_IsGiba) { + v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); + v_Port_us := v_Protected.Port_us; + v_Port_ps := v_Protected.Port_ps; + } + + if (p_ReferCreatingDialog) { + // FFS: currently not used + v_RouteBodyList := { // same as in INVITE + cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)), + cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)) + }; + v_From := cr_From(*, v_SipUrlFrom); + v_To := cr_ToDef(p_RequestUri); + v_CallId := cr_CallId(?); + v_SessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); + + } else { + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(); + v_From := f_IMS_RequestInDialog_FromHeaderRX(); + v_To := f_IMS_RequestInDialog_ToHeaderRX(); + v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); /* @sic R5-151954 sic@ */ + v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); + } + v_MessageHeader_Refer.via := f_IMS_InviteRequest_ViaRX(?); // same as for INVITE; but p_Port_us is mandatory + v_MessageHeader_Refer.route := cr_Route(v_RouteBodyList); + v_MessageHeader_Refer.toField := v_To; + v_MessageHeader_Refer.fromField := v_From; + v_MessageHeader_Refer.callId := v_CallId; + v_MessageHeader_Refer.sessionId := v_SessionId; + v_MessageHeader_Refer.cSeq := cr_CseqDef(p_CSeqValue, "REFER"); + + v_MessageHeader_Refer.maxForwards := cr_MaxForwardsDef; + v_MessageHeader_Refer.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* additional checks required after message has been received + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ + v_MessageHeader_Refer.referTo := cr_ReferTo(p_ReferToUri); + + if (not v_IsGiba) { + v_MessageHeader_Refer.require := cr_RequireSecAgree; + v_MessageHeader_Refer.proxyRequire := cr_ProxyRequireDef; + v_MessageHeader_Refer.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); + v_MessageHeader_Refer.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); + } else { + v_MessageHeader_Refer.securityVerify := omit; + } + + return v_MessageHeader_Refer; + } + + //---------------------------------------------------------------------------- + /* + * @desc Common checks for REFER + * @param p_IMS_REFER_REQ + * @param p_ReferCreatingDialog (default value: true) + * @status APPROVED (IMS) + */ + function f_IMS_A_2_10_Refer_CommonChecks(IMS_DATA_REQ p_IMS_REFER_REQ, + boolean p_ReferCreatingDialog := true) runs on IMS_PTC + { + var MessageHeader v_MessageHeader := p_IMS_REFER_REQ.Request.Refer.msgHeader; + var InternetProtocol_Type v_Protocol := p_IMS_REFER_REQ.RoutingInfo.Protocol; + var SipUrl v_SipUrlFrom := f_Addr_Union_GetSipUrl(v_MessageHeader.fromField.addressField); + + f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // check whether via contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) + + if (p_ReferCreatingDialog) { + f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // check that there is no To tag + + // Additional checks regarding SIP URI in the From header @sic R5-130750 change 3 sic@ + if (not f_IMS_PublicUserId_Match(f_IMS_PTC_ImsInfo_GetAllIMPUs(), v_SipUrlFrom)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid 'From'"); + } + // Check Call-Id + if (match(v_MessageHeader.callId, f_IMS_PTC_ImsInfo_DialogGetCallId())) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid 'CallId' in REFER (has to be different than in previous INVITE)"); + } + } + } + + //---------------------------------------------------------------------------- + /* + * @desc Recieve and check REFER + * @param p_IMS_REFER_REQ (by reference) + * @param p_RequestUriString + * @param p_ReferToUriString + * @param p_ActiveSessionToBeReplaced + * @param p_CSeqValue (default value: ?) + * @param p_ReferCreatingDialog (default value: false) + * @status APPROVED (IMS) + */ + altstep a_IMS_REFER_ReceiveRequest(out IMS_DATA_REQ p_IMS_REFER_REQ, + charstring p_RequestUriString, + charstring p_ReferToUriString, + boolean p_ActiveSessionToBeReplaced, + template (present) integer p_CSeqValue := ?, + boolean p_ReferCreatingDialog := false) runs on IMS_PTC + { /* @sic R5s141343 change 3.1: p_ReferCreatingDialog := false sic@ */ + /* @sic R5-153765: new parameter p_ActiveSessionToBeReplaced sic@ + * NOTE: p_ActiveSessionToBeReplaced==true => there is an active session between the UE and a remote user which shall be replaced (e.g. Three way session creation; 15.121a); + * p_ActiveSessionToBeReplaced==false => there is no active session with the remote user but the REFER is just ot invite the remote user */ + var IMS_DATA_REQ v_IMS_REFER_REQ; + var template (present) SipUrl v_RequestUriRefer := f_SIP_BuildSipUri_RX(p_RequestUriString); + var template AmpersandParam_List v_Headers := *; /* @sic R5-151798: SIP URI may contain a "Replaces" header referring to the dialog ID which has been established before sic@ */ + var template (present) SipUrl v_ReferToUri := f_SIP_BuildSipUri_RX(p_ReferToUriString, -, -, v_Headers); /* @sic R5s150382 change 3 sic@ */ + var template (present) MessageHeader v_MessageHeader_Refer := f_IMS_ReferRequest_MessageHeaderRX(v_RequestUriRefer, v_ReferToUri, p_ReferCreatingDialog, p_CSeqValue); + var template (omit) GenericParam v_Replaces; + var template (value) CallId v_CallId; + var CharStringList_Type v_ReceivedDialogId; + var template (present) CharStringList_Type v_ExpectedDialogId; + var integer v_CSeqValue; + + [] IMS_Server.receive(car_IMS_Refer_Request(cr_REFER_Request(v_RequestUriRefer, v_MessageHeader_Refer))) -> value v_IMS_REFER_REQ + { + f_IMS_A_2_10_Refer_CommonChecks(v_IMS_REFER_REQ, p_ReferCreatingDialog); + if (not isvalue(p_CSeqValue)) { /* when there are multiple REFERs in parallel, we cannot determine CSeq in advance */ + v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote); /* => get next CSeq value; CSeq gets incremented for the remote (UE) side of the current dialog */ + f_IMS_MessageHeader_CheckCSeq(v_IMS_REFER_REQ.Request.Refer.msgHeader, v_CSeqValue); /* @sic R5-151954 sic@ */ + } + // check whether header portion of the SIP URI includes Replaces header if an active session exists @sic R5-153765 sic@ + v_Replaces := f_SIP_AmpersandParamList_GetParam(v_IMS_REFER_REQ.Request.Refer.msgHeader.referTo.nameAddr.addrSpec.headers, "Replaces"); + if (p_ActiveSessionToBeReplaced) { /* @sic R5-153765 sic@ */ + if (ispresent(v_Replaces)) { + v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); + v_ExpectedDialogId := { + v_CallId.callid, + permutation("to-tag=" & valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag()), "from-tag=" & valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag()), *) + }; + v_ReceivedDialogId := f_StringSplit(f_URL_Decoding(valueof(v_Replaces.paramValue.tokenOrHost)), {";"}); // see RFC 3891 6.1 + if (not match(v_ReceivedDialogId, v_ExpectedDialogId)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid dialog id in Replaces header of Refer-To's SipUri"); + } + } else { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Refer-To does not include Replaces header even though there an active session"); + } + + } else { + if (ispresent(v_Replaces)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Refer-To includes Replaces header even though there no active session"); + } + } + p_IMS_REFER_REQ := v_IMS_REFER_REQ; // return message by ref + } + } + + //============================================================================ + // TS 34.229-1 Annex C.10 + //---------------------------------------------------------------------------- + /* + * @desc steps 2 .. 9 of C.10 (or steps 2 ..10 of C.38) + * @param p_TestProcedure + * @param p_ConferenceFactoryUri + * @param p_TemporaryConferenceUri + * @param p_FinalConferenceUri + * @param p_RadioBearersEstablished (default value: false) + * @return IMS_InviteRequestWithSdp_Type + * @status APPROVED (IMS) + */ + function f_IMS_ConferenceCreation_AnnexC10C38_Steps2_9(IMS_TestProcedure_Type p_TestProcedure, + charstring p_ConferenceFactoryUri, + charstring p_TemporaryConferenceUri, + charstring p_FinalConferenceUri, + boolean p_RadioBearersEstablished := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { + var template (omit) SemicolonParam_List v_AdditionalContactParams := {cs_GenericParam("isfocus")}; // As per C.10 + var template (present) SipUrl v_ExpectedConferenceFactory; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var INVITE_Request v_InviteRequest; + var MessageHeader v_MessageHeader_183; + var template (value) SipUrl v_ContactUrl; + var template (value) MessageHeader v_MessageHeader_InviteResponse_200; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var template (present) MessageHeader v_MessageHeader_Ack; + var template (present) SipUrl v_ConferenceFactorySipUrl := f_SIP_BuildSipUri_RX(p_ConferenceFactoryUri); + + // @siclog "Step 2" siclog@ UE sends INVITE + select (p_TestProcedure) { // @sic R5s150373 change 1 sic@ + case (IPCAN_MO_SpeechCall) { + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(v_ConferenceFactorySipUrl); + } + case (IPCAN_MO_VideoCall) { + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(C25, v_ConferenceFactorySipUrl); + } + } + v_InviteRequest := v_InviteRequestWithSdp.Invite; + + // check conference factory URI: + if (f_IMS_PTC_UE_ReleaseGreaterOrEqual(12)) { // @sic R5-150745, R5s150373 change 1; R5s150630: f_IMS_PTC_UE_ReleaseGreaterOrEqual sic@ + v_ExpectedConferenceFactory := f_SIP_BuildSipUri_RX("sip:mmtel@conf-factory." & px_IMS_HomeDomainName); + if (not match(v_InviteRequest.requestLine.requestUri, v_ExpectedConferenceFactory)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid conference factory URI in request line"); + } + if (not match(f_Addr_Union_GetSipUrl(v_InviteRequest.msgHeader.toField.addressField), v_ExpectedConferenceFactory)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid conference factory URI in To header"); + } + } + + // @siclog "Step 3 - 4" siclog@ + select (p_TestProcedure) { + case (IPCAN_MO_SpeechCall) { // same steps as for C.10 what in fact are steps 3 - 4 of C.21 + v_MessageHeader_183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp, p_TemporaryConferenceUri, v_AdditionalContactParams); + } + case (IPCAN_MO_VideoCall) { // same steps as for C.10 what in fact are steps 3 - 4 of C.25 + v_MessageHeader_183 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp, p_TemporaryConferenceUri, v_AdditionalContactParams); + } + } + if (not p_RadioBearersEstablished) { + // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 + f_IMS_CC_TriggerDedicatedBearerActivation(p_TestProcedure); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + } + + // @siclog "Step 5 - 7a" siclog@ + select (p_TestProcedure) { + case (IPCAN_MO_SpeechCall) { // same steps as steps 5 - 8 of C.21 + f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_183); + } + case (IPCAN_MO_VideoCall) { // same steps as steps 5 - 8 of C.25 + f_IMS_MOCallSetup_Video_Steps5_8(C25, v_InviteRequestWithSdp, v_MessageHeader_183); // @sic R5s150373 change 1: C25 instead of AddVideo sic@ + } + } + // @siclog "Step 8" siclog@ Send 200 OK (response to INVITE) + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); + v_ContactUrl := f_SIP_BuildSipUri_TX(p_FinalConferenceUri); + v_MessageHeader_InviteResponse_200.contact := cs_Contact(v_ContactUrl, v_AdditionalContactParams); /* @sic R5-151681 sic@ */ + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); + + // @siclog "Step 9" siclog@ UE sends an ACK to acknowledge receipt of the 200 OK for INVITE + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_ContactUrl, v_MessageHeader_Ack))); + + return v_InviteRequestWithSdp; + } + + /* + * @desc steps 1 - 9 of C.10 or C.38 (video) + * @param p_TestProcedure + * @param p_ConferenceFactoryUri + * @param p_TemporaryConferenceUri + * @param p_FinalConferenceUri + * @return IMS_InviteRequestWithSdp_Type + * @status APPROVED (IMS) + */ + function f_IMS_ConferenceCreation_AnnexC10C38_Steps1_9(IMS_TestProcedure_Type p_TestProcedure, + charstring p_ConferenceFactoryUri, + charstring p_TemporaryConferenceUri, + charstring p_FinalConferenceUri) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + + // @siclog "Step 1" siclog@ Trigger UE to create conference call + f_IMS_CC_StartCall(p_TestProcedure, p_ConferenceFactoryUri, conferenceCall); /* @sic R5s150373: p_TestProcedure instead of IPCAN_MO_SpeechCall sic@ + @sic R5s150537: p_ConferenceFactoryUri sic@ */ + + // @siclog "Step 2 - 7a" siclog@ + v_InviteRequestWithSdp := f_IMS_ConferenceCreation_AnnexC10C38_Steps2_9(p_TestProcedure, p_ConferenceFactoryUri, p_TemporaryConferenceUri, p_FinalConferenceUri); + + return v_InviteRequestWithSdp; + } + + /* + * @desc steps 10 - 13 of C.10 or C.38 (video) + * @param p_FinalConferenceUri + * @return template (omit) SUBSCRIBE_Request + * @status APPROVED (IMS) + */ + function f_IMS_ConferenceCreation_AnnexC10C38_Steps10_13(charstring p_FinalConferenceUri) runs on IMS_PTC return template (omit) SUBSCRIBE_Request + { + var ConferenceEventPackage_SubscribeInfo_Type v_ConferenceEventPackage_SubscribeInfo_ByRef := valueof(cs_ConferenceEventPackage_SubscribeInfo_Init); + timer t_Timer; + + // @siclog "Step 10 - 13" siclog@ + t_Timer.start(tsc_WaitForConferenceSubscription); // @sic R5-151681: 3s timer sic@ + alt { + [] a_ConferenceEventPackage_Subscribe(v_ConferenceEventPackage_SubscribeInfo_ByRef, p_FinalConferenceUri) // C.10 step 10 - 13 + { + t_Timer.stop; /* stop timer when the UE comes up with a SUBSCRIBE for the conference event package */ + if (v_ConferenceEventPackage_SubscribeInfo_ByRef.State != subscribed) { + repeat; + } + } + [] t_Timer.timeout {} + } + return v_ConferenceEventPackage_SubscribeInfo_ByRef.SubscribeRequest; + } + + //============================================================================ + // TS 34.229-1 Annex C.19 / C.37 + //---------------------------------------------------------------------------- + + type enumerated AnnexC19C37_State_Type { waitForREFER, waitFor200OK_Step4, waitFor200OK_Step6, waitFor200OK_Step8, finished }; /* @status APPROVED (IMS) */ + + type record AnnexC19C37_StateInfo_Type { /* @status APPROVED (IMS) */ + AnnexC19C37_State_Type State, + charstring CalleeUri, // URI of the remote user to be invited + charstring CalleeContactUri, // Contact URI of the remote user to be invited + SipUrl ContactUriUE optional, // UE's Contact URI + MessageHeader NotifyHeader optional + }; + + template (value) AnnexC19C37_StateInfo_Type cs_AnnexC19C37_StateInfo_Init(charstring p_CalleeUri, + charstring p_CalleeContactUri) := + { /* @status APPROVED (IMS) */ + State := waitForREFER, + CalleeUri := p_CalleeUri, + CalleeContactUri := p_CalleeContactUri, + ContactUriUE := omit, + NotifyHeader := omit + }; + + /* + * @desc wait for the BYE of the given dialog + * @param p_StateInfo + * @return boolean + * @status APPROVED (IMS) + */ + function fl_AnnexC19C37_StateInfo_WaitForBYE(AnnexC19C37_StateInfo_Type p_StateInfo) return boolean + { + select (p_StateInfo.State) { + case (waitFor200OK_Step8, finished) {return true;} + case else {return false;} + } + } + + /* + * @desc procedure acc. to C.19 / C.37 + * @param p_StateInfo (by reference) + * @param p_FinalConferenceUri + * @param p_ActiveSessionToBeReplaced + * @param p_SubscriptionState_Step5 (default value: cs_SubscriptionState_Terminated) + * @param p_SubscribeRequest + * @param p_MediaTypeList + * @param p_ConferenceEventPackage_Version (default value: 1) + * @status APPROVED (IMS) + */ + altstep a_IMS_InviteUserToConference_AnnexC19C37(inout AnnexC19C37_StateInfo_Type p_StateInfo, + charstring p_FinalConferenceUri, + boolean p_ActiveSessionToBeReplaced, + template (value) SubscriptionState p_SubscriptionState_Step5 := cs_SubscriptionState_Terminated, + template (omit) SUBSCRIBE_Request p_SubscribeRequest, + CharStringList_Type p_MediaTypeList, + integer p_ConferenceEventPackage_Version := 1) runs on IMS_PTC + { /* @sic R5-153765: new parameter p_ActiveSessionToBeReplaced sic@ */ + var IMS_DATA_REQ v_IMS_REFER_REQ_ByRef; + var AnnexC19C37_State_Type v_State := p_StateInfo.State; + var MessageHeader v_MessageHeader_Refer; + var template (value) MessageHeader v_MessageHeader_Response; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var SUBSCRIBE_Request v_SubscribeRequest; + var template (value) SipUrl v_ContactUrl; + var InternetProtocol_Type v_ProtocolForRequestInDL := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + + // Step 1. UE sends REFER to SS + [v_State == waitForREFER] a_IMS_REFER_ReceiveRequest(v_IMS_REFER_REQ_ByRef, p_FinalConferenceUri, p_StateInfo.CalleeUri, p_ActiveSessionToBeReplaced) { + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_REFER_REQ_ByRef.RoutingInfo); + v_MessageHeader_Refer := v_IMS_REFER_REQ_ByRef.Request.Refer.msgHeader; + + // Step 2. The SS responds with 202 Accepted + v_MessageHeader_Response := f_IMS_Accepted_202_MessageHeaderTX(v_MessageHeader_Refer); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine202, v_MessageHeader_Response))); + + // Step 3. The SS sends initial NOTIFY for the implicit subscription created by the REFER request + p_StateInfo.ContactUriUE := f_MessageHeader_GetContactSipUrl(v_MessageHeader_Refer); // UE's contact to be use in the request line of the NOTIFY messages + v_ContactUrl := f_SIP_BuildSipUri_TX(p_FinalConferenceUri, f_IMS_PTC_GetPort_ps()); // contact uri of the conference focus + + p_StateInfo.NotifyHeader := valueof(f_IMS_NotifyRequest_MessageHeader_A211(-, v_ContactUrl, cs_SubscriptionState_Active("300"))); + IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_ProtocolForRequestInDL), + cs_NOTIFY_Request(p_StateInfo.ContactUriUE, p_StateInfo.NotifyHeader, cs_MessageBody_SipFrag("SIP/2.0 100 Trying")))); + p_StateInfo.State := waitFor200OK_Step4; + } + // Step 4. UE responds with 200 OK + [v_State == waitFor200OK_Step4] a_IMS_ReceiveResponse200OK(p_StateInfo.NotifyHeader, v_ProtocolForRequestInDL) { + // Step 5. The SS sends a NOTIFY related to REFER request to confirm that the invited user was able to join the conference + p_StateInfo.NotifyHeader := valueof(f_IMS_NotifyRequest_MessageHeader_A211(-, p_StateInfo.ContactUriUE, p_SubscriptionState_Step5)); + IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_ProtocolForRequestInDL), + cs_NOTIFY_Request(p_StateInfo.ContactUriUE, p_StateInfo.NotifyHeader, cs_MessageBody_SipFrag("SIP/2.0 200 OK")))); + p_StateInfo.State := waitFor200OK_Step6; + } + // Step 6. UE responds with 200 OK + [v_State == waitFor200OK_Step6] a_IMS_ReceiveResponse200OK(p_StateInfo.NotifyHeader, v_ProtocolForRequestInDL) { + if (ispresent(p_SubscribeRequest)) { + v_SubscribeRequest := valueof(p_SubscribeRequest); + + // Step 7. The SS sends a NOTIFY for conference event package to inform that the invited user was able to join the conference + p_StateInfo.NotifyHeader := valueof(f_IMS_ConferenceEventPackage_SendNotify(v_SubscribeRequest, + v_ProtocolForRequestInDL, + p_FinalConferenceUri, + p_StateInfo.CalleeUri, + p_StateInfo.CalleeContactUri, + p_MediaTypeList, + p_ConferenceEventPackage_Version, + partial)); + p_StateInfo.State := waitFor200OK_Step8; + } + else { + p_StateInfo.State := finished; + } + } + // Step 8. UE responds with 200 OK + [v_State == waitFor200OK_Step8] a_IMS_ReceiveResponse200OK(p_StateInfo.NotifyHeader, v_ProtocolForRequestInDL) { + p_StateInfo.State := finished; + } + } + + //**************************************************************************** + // Test case 15.17 + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 15.17 + * @status APPROVED (IMS) + */ + function f_TC_15_17_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_ConferenceFactoryUri := px_IMS_ConferenceFactoryUri; // @sic R5-150745 sic@ + var charstring v_TemporaryConferenceUri := px_IMS_TemporaryConferenceUri; // @sic R5-150745 sic@ + var charstring v_FinalConferenceUri := px_IMS_FinalConferenceUri; // @sic R5-150745 sic@ + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1 - 9" siclog@ same steps as for C.10 + v_InviteRequestWithSdp := f_IMS_ConferenceCreation_AnnexC10C38_Steps1_9(IPCAN_MO_SpeechCall, v_ConferenceFactoryUri, v_TemporaryConferenceUri, v_FinalConferenceUri); /* @sic R5-150745 sic@ */ + + // @siclog "Step 10 - 13" siclog@ same steps as for C.10 + f_IMS_ConferenceCreation_AnnexC10C38_Steps10_13(v_FinalConferenceUri); /* @sic R5-150745 sic@ */ + + // @siclog "Step 14 - 15" siclog@ + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite, f_SIP_BuildSipUri_RX(v_FinalConferenceUri)); + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + + //**************************************************************************** + // Test case 15.19 + //---------------------------------------------------------------------------- + /* + * @desc test body for TC_15_19 and TC_15_19a + * @param p_TestProcedure + * @param p_MediaTypeList + * @status APPROVED (IMS) + */ + function f_TC_15_19_TC_15_19a_Body(IMS_TestProcedure_Type p_TestProcedure, + CharStringList_Type p_MediaTypeList) runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var template (omit) SUBSCRIBE_Request v_SubscribeRequest := omit; + var charstring v_ConferenceFactoryUri := px_IMS_ConferenceFactoryUri; // @sic R5-150745 sic@ + var charstring v_TemporaryConferenceUri := px_IMS_TemporaryConferenceUri; // @sic R5-150745 sic@ + var charstring v_FinalConferenceUri := px_IMS_FinalConferenceUri; // @sic R5-150745 sic@ + var boolean v_ActiveSessionToBeReplaced := false; /* @sic R5-153765: there is no active session to any remote user sic@ */ + + var AnnexC19C37_StateInfo_Type v_AnnexC19C37_ByRef := valueof(cs_AnnexC19C37_StateInfo_Init(px_IMS_CalleeUri, px_IMS_CalleeContactUri)); + + var template (value) SubscriptionState v_SubscriptionState_Step5 := cs_SubscriptionState("terminated", { cs_GenericParam("reason", "noresource") } ); /* @sic R5s141343 change 3.3 and 4 sic@ */ + + // C.10 + v_InviteRequestWithSdp := f_IMS_ConferenceCreation_AnnexC10C38_Steps1_9(p_TestProcedure, v_ConferenceFactoryUri, v_TemporaryConferenceUri, v_FinalConferenceUri); // @sic R5-150745 sic@ + v_SubscribeRequest := f_IMS_ConferenceCreation_AnnexC10C38_Steps10_13(v_FinalConferenceUri); /* @sic R5-150745 sic@ */ + + f_IMS_TestBody_Set(true); + + f_UT_InviteToConference(MMI, v_AnnexC19C37_ByRef.CalleeUri); // @sic R5-150745 sic@ + + while (v_AnnexC19C37_ByRef.State != finished) { // @sic R5-150745 sic@ + // @siclog "Step 1 - 8" siclog@ + a_IMS_InviteUserToConference_AnnexC19C37(v_AnnexC19C37_ByRef, v_FinalConferenceUri, v_ActiveSessionToBeReplaced, v_SubscriptionState_Step5, v_SubscribeRequest, p_MediaTypeList); + } + + f_IMS_TestBody_Set(false); + + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite, f_SIP_BuildSipUri_RX(v_FinalConferenceUri)); // @sic R5s141343 change 1.2 sic@ + } + + /* + * @desc REFERENCE TS 34.229-1 clause 15.19 + * @status APPROVED (IMS) + */ + function f_TC_15_19_IMS() runs on IMS_PTC + { + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_TC_15_19_TC_15_19a_Body(IPCAN_MO_SpeechCall, tsc_MediaTypeList_Audio); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + + /* + * @desc REFERENCE TS 34.229-1 clause 15.19a + * @status APPROVED (IMS) + */ + function f_TC_15_19a_IMS() runs on IMS_PTC + { + f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); + + f_TC_15_19_TC_15_19a_Body(IPCAN_MO_VideoCall, tsc_MediaTypeList_AudioVideo); + + f_IMS_CC_Postamble(IPCAN_MO_VideoCall); + } + + //**************************************************************************** + // Test case 15.21/21b + //---------------------------------------------------------------------------- + + altstep a_IMS_ReceiveNotifyForReferAndSendOK(charstring p_CallerSipAddrStr, + charstring p_SubscriptionState_SubstateValue, + template SemicolonParam_List p_SubscriptionState_SubexpParams := *, + boolean p_SubscriptionState_NoExpires := false, + boolean p_RepeatFlag := false) runs on IMS_PTC + { /* receive NOTIFY acc. to A.2.13 and respond with 200 OK */ + var template (present) MessageHeader v_MessageHeader_Template := f_IMS_NotifyRequest_MessageHeader_A213(-, p_SubscriptionState_SubstateValue, p_SubscriptionState_SubexpParams); + var template (present) MessageBody v_MessageBody := cr_MessageBody_SipFrag("SIP/2.0 100 Trying"); + var MessageHeader v_MessageHeader_Notify; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo; + var template (value) MessageHeader v_MessageHeader_200; + var template (omit) GenericParam v_ExpiresParam; + var IMS_DATA_REQ v_IMS_DATA_REQ; + + [] IMS_Server.receive(car_IMS_Notify_Request(cr_NOTIFY_Request(f_SIP_BuildSipUri_RX(p_CallerSipAddrStr), v_MessageHeader_Template, v_MessageBody))) -> value v_IMS_DATA_REQ + { + v_MessageHeader_Notify := v_IMS_DATA_REQ.Request.Notify.msgHeader; + // additional checks: + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader_Notify); // check whether contact contains "SIP URI with IP address or FQDN" + f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader_Notify, v_IMS_DATA_REQ.RoutingInfo.Protocol); + if (p_SubscriptionState_NoExpires) { + v_ExpiresParam := f_SIP_SemicolonParamList_GetParam(v_MessageHeader_Notify.subscriptionState.substateParams, "expires"); + if (ispresent(v_ExpiresParam)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "'expires' shall be omitted in NOTIFY.subscriptionState"); + } + } + v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); + v_MessageHeader_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader_Notify); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, v_MessageHeader_200))); + if (p_RepeatFlag) {repeat;} + } + } + + function fl_TC_15_21_TC_15_21b_Step3(IMS_TestProcedure_Type p_TestProcedure, + template (present) SipUrl p_ConferenceSipUri, + charstring p_ReferredByUri, + boolean p_GeolocationInfoAvailable := pc_IMS_Geolocation) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { /* Receive INVITE for MO call setup with specific Referred-by header */ + var template (omit) float v_WaitDuration := omit; // no wait duration + var IMS_DATA_REQ v_IMS_DATA_REQ; + var SDP_Message v_SDP_Message; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { // @sic R5-151797/R5-151952: inactive/sendrecv removed sic@ + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), + cr_SDP_Attribute_ptime, + cr_SDP_Attribute_maxptime + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { // @sic R5-151797: inactive removed sic@ + // The tcap/pcfg attributes need to be checked later when we know whether we have RTP/AVP or RTP/AVPF + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(-, cr_Video_Fmtp_DefaultParametersMO) + }; + + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + var template (present) MessageHeader v_MessageHeader_Dummy := cr_MessageHeader_Dummy; + var template (present) SDP_Message v_SDP_MessageRX; + + v_MessageHeader_Dummy.referredBy := cr_ReferredBy(f_SIP_BuildSipUri_RX(p_ReferredByUri)); /* dummy message header with specific Referred-by header; + all other headers are set in f_IMS_INVITE_ReceiveRequest_Common acc. to A_2_1_A4 */ + select (p_TestProcedure) { + case (IPCAN_MT_SpeechCall) { + v_SDP_MessageRX := f_IMS_BuildSDP_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes); + } + case (IPCAN_MT_VideoCall) { + v_SDP_MessageRX := f_IMS_BuildSDP_AudioVideo_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes, + cr_SDP_Media_Video(-, (c_rtpAvp, c_rtpAvpf)), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes); + } + } + + v_IMS_DATA_REQ := valueof(f_IMS_INVITE_ReceiveRequest_Common(-, v_MessageHeader_Dummy, tsc_OptionTagList_precondition, p_ConferenceSipUri, v_WaitDuration, -, p_GeolocationInfoAvailable)); + v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); + + // check media description: + f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); + if (p_TestProcedure == IPCAN_MT_VideoCall) { + f_IMS_SDP_CheckMediaDescr_H264_90000(v_SDP_Message.media_list[1]); + f_IMS_SDP_CheckMediaDescr_TcapPcfg(v_SDP_Message.media_list[1]); + } + + return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ, v_SDP_Message); + } + + function fl_TC_15_21_TC_15_21b_Step5_6(charstring p_InvitingUri) runs on IMS_PTC + { + var template (present) charstring v_NonZeroValue := pattern "[1-9][0-9]#(,)"; + var template (present) SemicolonParam_List v_SubscriptionState_SubexpParams := cr_SemicolonParam_List_OneSpecificParamWithValue("expires", v_NonZeroValue); + + a_IMS_ReceiveNotifyForReferAndSendOK(p_InvitingUri, "active", v_SubscriptionState_SubexpParams); + } + + function fl_IMS_BuildSDP_TC_15_21_Step7(SDP_media_desc p_SDP_Media_AudioRx) runs on IMS_PTC return template (value) SDP_Message + { + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_AudioRx); + var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio := p_SDP_Media_AudioRx.bandwidth; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Audio := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes_Audio := f_SDP_Attributes_Add_TX(cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory), cs_SDP_Attribute_conf_qos); + var integer v_BandwidthAS := 37; // @sic R5-151952 sic@ + + if (f_SDP_AttributeList_CheckAttribute(p_SDP_Media_AudioRx.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-151952/R5-151797 sic@ */ + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_inactive); + } + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio), v_Bandwidth_List_Audio, v_SDP_MediaAttributes_Audio, v_SDP_PrecondionAttributes_Audio, v_BandwidthAS); + } + + function fl_TC_15_21_TC_15_21b_Step7(IMS_TestProcedure_Type p_TestProcedure, + IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_ContactUri) runs on IMS_PTC return MessageHeader + { /* Send 183 Session in Progress for INVITE to the UE + p_ContactUri shall be the conference URI */ + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var SDP_media_desc_list v_MediaList := p_InviteRequestWithSdp.SdpOffer.media_list; + var template (value) MessageHeader v_MessageHeader_183; + var template (value) SDP_Message v_SDP_Message; + + select (p_TestProcedure) { + case (IPCAN_MT_SpeechCall) { + v_SDP_Message := fl_IMS_BuildSDP_TC_15_21_Step7(v_MediaList[0]); + } + case (IPCAN_MT_VideoCall) { + v_SDP_Message := f_IMS_BuildSDP_MOCallAudioVideo_Step4(C25, v_MediaList[0], v_MediaList[1]); + } + } + + // Send 183 Session In Progress. + v_MessageHeader_183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_183, cs_MessageBody_SDP(v_SDP_Message)))); + + return valueof(v_MessageHeader_183); + } + + function fl_TC_15_21_TC_15_21b_Step8_12(IMS_TestProcedure_Type p_TestProcedure, + IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + template (value) MessageHeader p_MessageHeader_Prev183Response) runs on IMS_PTC + { + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var template (value) MessageHeader v_MessageHeader_InviteResponse_200; + + // Steps 8 to 11 + select (p_TestProcedure) { + case (IPCAN_MT_SpeechCall) { + f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response); + } + case (IPCAN_MT_VideoCall) { + f_IMS_MOCallSetup_Video_Steps5_8(C25, p_InviteRequestWithSdp, p_MessageHeader_Prev183Response); + } + } + + // Step 12. Send 200 OK (response to INVITE) + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); + } + + //---------------------------------------------------------------------------- + + function fl_TC_15_21_TC_15_21b_Body(IMS_TestProcedure_Type p_TestProcedure) runs on IMS_PTC + { /* TC 15.21 - Joining a conference after being invited to it */ + /* TC 15.21b - Joining a conference after being invited to it / video */ + /* Implementation: + * test case needs two dialogs: + * 1. dialog created by REFER between remote (inviting) UE (tsc_IMS_CallerSipAddrStr) and UE under test: UE notifies remote UE of state changes while joining the conference (-> RFC 3515 clause 2.4) + * 2. dialog created by INVITE between UE under test and SS (conference URI) + * this dialog is used by SUBSCRIBE between UE under test and SS (conference URI): conference focus may notify UE about state changes of the conference call + * The 2nd dialog is the "normal" dialog for the (conference) call - i.e. uses state variables to be stored at the IMS PTC as usual, + * and the 1st dialog needs also to store state variables at the IMS PTC as additional NOTIFY messages may occur referring to this dialog + * => We use the IMS PTC's first dialog for the call establishment (as usual) and the IMS PTC's third dialog for the "refer" dialog */ + var ConferenceEventPackage_SubscribeInfo_Type v_ConferenceEventPackage_SubscribeInfo_ByRef := valueof(cs_ConferenceEventPackage_SubscribeInfo_Init); + var charstring v_InvitingUri := tsc_IMS_CallerSipAddrStr; + var charstring v_ReferredByUri := "sip:master@conference.com"; + var charstring v_FinalConferenceUri := px_IMS_FinalConferenceUri; + var template (present) SipUrl v_ConferenceSipUrlRX := f_SIP_BuildSipUri_RX(v_FinalConferenceUri); + var IMS_DATA_RSP v_IMS_DATA_RSP; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var INVITE_Request v_InviteRequest; + var MessageHeader v_MessageHeader_183; + var template (value) MessageHeader v_MessageHeader_Refer; + var template (value) REFER_Request v_ReferRequest; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var SipUrl v_ContactUrl; + var InternetProtocol_Type v_Protocol; + var template (present) MessageHeader v_MessageHeader_Ack; + var template (present) SemicolonParam_List v_SubscriptionState_SubexpParams; + var boolean v_SubscriptionState_NoExpires; + var boolean v_WaitingForAck; + var boolean v_WaitingForNotify; + var boolean v_WaitingForSubscribe; + var boolean v_Continue; + timer t_Timer; + + f_IMS_TestBody_Set(true); + v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + + // @siclog "Step 1" siclog@ SS sends REFER to UE referring to the conference + v_MessageHeader_Refer := f_IMS_ReferRequest_MessageHeaderTX(-, v_InvitingUri, v_FinalConferenceUri, v_ReferredByUri); + f_IMS_PTC_ImsInfo_DialogInit(dialogLocal, valueof(v_MessageHeader_Refer), referDialog); + v_ReferRequest := cs_REFER_Request(v_ContactUrl, v_MessageHeader_Refer); + IMS_Client.send(cas_IMS_Refer_Request(cs_IMS_RoutingInfo(v_Protocol), v_ReferRequest)); + + // @siclog "Step 2" siclog@ UE responds with a with a 202 Accepted response + v_IMS_DATA_RSP := f_IMS_ReceiveResponse(v_MessageHeader_Refer, v_Protocol, cr_Response(c_statusLine202, f_IMS_Accepted_202_MessageHeaderRX(v_MessageHeader_Refer))); + f_IMS_Dialog_SetRemoteTag(v_IMS_DATA_RSP.Response.msgHeader, referDialog); + + // @siclog "Step 3" siclog@ Receive INVITE + v_InviteRequestWithSdp := fl_TC_15_21_TC_15_21b_Step3(p_TestProcedure, v_ConferenceSipUrlRX, v_ReferredByUri); + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); + v_InviteRequest := v_InviteRequestWithSdp.Invite; + + // @siclog "Step 4" siclog@ SS sends 100 Trying + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); + + // @siclog "Step 5 - 6" siclog@ UE sends NOTIFY, SS respondes with 200 OK + fl_TC_15_21_TC_15_21b_Step5_6(v_InvitingUri); + + // @siclog "Step 7" siclog@ SS sends 183 Session in Progress + v_MessageHeader_183 := fl_TC_15_21_TC_15_21b_Step7(p_TestProcedure, v_InviteRequestWithSdp, v_FinalConferenceUri); + + f_IMS_CC_TriggerDedicatedBearerActivation(p_TestProcedure); /* trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer; + as we have started the IPCAN as for MT call we also need to continue as if it is an MT call */ + // @siclog "Step 8 - 12" siclog@ UE sends PRACK, SS sends 200 OK; optionally: UE sends UPDATE, SS sends 200 OK; SS sends final 200 OK for INVITE + fl_TC_15_21_TC_15_21b_Step8_12(p_TestProcedure, v_InviteRequestWithSdp, v_MessageHeader_183); + + // @siclog "Step 13 - 15" siclog@ UE sends ACK, NOTIFY and optionally SUBSCRIBE, SS response to ACK with 200 OK and to optionally to SUBSCRIBE with 200 OK + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + + v_WaitingForAck := true; + v_WaitingForNotify := true; + v_WaitingForSubscribe := true; + v_SubscriptionState_SubexpParams := cr_SemicolonParam_List_OneSpecificParamWithValue("reason", "noresource"); + v_SubscriptionState_NoExpires := true; // there shall be no "expires" in the Subscription-State + + t_Timer.start(tsc_WaitForConferenceSubscription); // @sic R5-151952: 3s timer sic@ + do { + alt { + // @siclog "Step 13 (ACK)" siclog@ + [v_WaitingForAck] IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_ConferenceSipUrlRX, v_MessageHeader_Ack))) { + v_WaitingForAck := false; + } + // @siclog "Step 13 (NOTIFY), Step 14" siclog@ + [v_WaitingForNotify] a_IMS_ReceiveNotifyForReferAndSendOK(v_InvitingUri, "terminated", v_SubscriptionState_SubexpParams, v_SubscriptionState_NoExpires) { + v_WaitingForNotify := false; + } + // @siclog "Step 13 (SUBSCRIBE), Step 15 - 17" siclog@ + [v_ConferenceEventPackage_SubscribeInfo_ByRef.State != subscribed] a_ConferenceEventPackage_Subscribe(v_ConferenceEventPackage_SubscribeInfo_ByRef, v_FinalConferenceUri) { + v_WaitingForSubscribe := false; + t_Timer.stop; + } + [] t_Timer.timeout { + v_WaitingForSubscribe := false; + } + } + v_Continue := v_WaitingForAck or v_WaitingForNotify or v_WaitingForSubscribe or f_ConferenceEventPackage_SubscriptionOngoing(v_ConferenceEventPackage_SubscribeInfo_ByRef); + } while (v_Continue); + + // @siclog "Step 18 - 19" siclog@ + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_MessageHeader_183); + f_IMS_CallReleaseMT(v_InviteRequestWithSdp.Invite, v_ContactUrl); + + f_IMS_TestBody_Set(false); + } + + function f_TC_15_21_IMS() runs on IMS_PTC + { /* TC 15.21 - Joining a conference after being invited to it */ + + // Initial conditions + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_IMS_CC_StartCall(IPCAN_MT_SpeechCall); // IPCAN behaviour is as for MT call + + fl_TC_15_21_TC_15_21b_Body(IPCAN_MT_SpeechCall); + + f_IMS_CC_Postamble(IPCAN_MT_SpeechCall); + } + + function f_TC_15_21b_IMS() runs on IMS_PTC + { /* TC 15.21b - Joining a conference after being invited to it / video */ + + // Initial conditions + f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); + + f_IMS_CC_StartCall(IPCAN_MT_VideoCall); // IPCAN behaviour is as for MT call + + fl_TC_15_21_TC_15_21b_Body(IPCAN_MT_VideoCall); + + f_IMS_CC_Postamble(IPCAN_MT_VideoCall); + } + + //**************************************************************************** + // Test case 15.21a + //---------------------------------------------------------------------------- + /* + * @desc Three way session creation + * @param p_TestProcedure + * @status APPROVED (IMS) + */ + function f_TC_15_21a_TC_15_21c_Body(IMS_TestProcedure_Type p_TestProcedure) runs on IMS_PTC + { + var charstring v_ConferenceFactoryUri := px_IMS_ConferenceFactoryUri; // @sic R5-150745 sic@ + var charstring v_TemporaryConferenceUri := px_IMS_TemporaryConferenceUri; // @sic R5-150745 sic@ + var charstring v_FinalConferenceUri := px_IMS_FinalConferenceUri; // @sic R5-150745 sic@ + + var charstring v_CalleeUri_Dialog1 := px_IMS_CalleeUri; + var charstring v_CalleeUri_Dialog2 := px_IMS_CalleeUri2; // @sic R5-151710 sic@ + var charstring v_CalleeContactUri_Dialog1 := px_IMS_CalleeContactUri; + var charstring v_CalleeContactUri_Dialog2 := px_IMS_CalleeContactUri2; // @sic R5-151710 sic@ + var template (present) SipUrl v_CalleeSipUrl_Dialog1 := f_SIP_BuildSipUri_RX(v_CalleeUri_Dialog1); + var template (present) SipUrl v_CalleeSipUrl_Dialog2 := f_SIP_BuildSipUri_RX(v_CalleeUri_Dialog2); + + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog1; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog2; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog3; + + var MessageHeader v_MessageHeader_183_Dialog1; + var MessageHeader v_MessageHeader_183_Dialog2; + + var ConferenceEventPackage_SubscribeInfo_Type v_ConferenceEventPackage_SubscribeInfo_ByRef := valueof(cs_ConferenceEventPackage_SubscribeInfo_Init); + var AnnexC19C37_StateInfo_Type v_AnnexC19C37_Dialog1_ByRef := valueof(cs_AnnexC19C37_StateInfo_Init(v_CalleeUri_Dialog1, v_CalleeContactUri_Dialog1)); + var AnnexC19C37_StateInfo_Type v_AnnexC19C37_Dialog2_ByRef := valueof(cs_AnnexC19C37_StateInfo_Init(v_CalleeUri_Dialog2, v_CalleeContactUri_Dialog2)); + + var SipUrl v_ContactUrl_Dialog1; + var SipUrl v_ContactUrl_Dialog2; + var SipUrl v_ContactUrl_UE; + + var template (omit) SUBSCRIBE_Request v_SubscribeRequest := omit; + var template (present) MessageHeader v_MessageHeader_Bye_Dialog1; + var template (present) MessageHeader v_MessageHeader_Bye_Dialog2; + var SDP_Message v_SDP_OriginalOffer_Dialog1; + var SDP_Message v_SDP_OriginalOffer_Dialog2; + var boolean v_RadioBearersEstablished := false; + var boolean v_WaitForBYE_Dialog1 := false; + var boolean v_WaitForBYE_Dialog2 := false; + var boolean v_Continue; + + var integer v_ConferenceEventPackage_Version := 1; // version used in notifications sent to the UE to inform about remote user has joined the conference + + var boolean v_ActiveSessionToBeReplaced := true; /* @sic R5-153765: there are active sessions to user B and C which shall be replaced by the conference sic@ */ + + //-------------------------------------------- + // DIALOG 1 + //-------------------------------------------- + // Setup MO speech call + f_IMS_CC_StartCall(p_TestProcedure, v_CalleeUri_Dialog1); // C.21/25 Step 1 + + select (p_TestProcedure) { + case (IPCAN_MO_SpeechCall) { + v_InviteRequestWithSdp_Dialog1 := f_IMS_MOCallSetup_AnnexC21_Step2_A4(v_CalleeSipUrl_Dialog1); // C.21 Step 2 + v_MessageHeader_183_Dialog1 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp_Dialog1, v_CalleeContactUri_Dialog1); // C.21 Step 3, 4 + f_IMS_CC_TriggerDedicatedBearerActivation(p_TestProcedure); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + v_SDP_OriginalOffer_Dialog1 := f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp_Dialog1, v_MessageHeader_183_Dialog1, v_CalleeContactUri_Dialog1); // C.21 Step 5 .. 13 + } + case (IPCAN_MO_VideoCall) { + v_InviteRequestWithSdp_Dialog1 := f_IMS_MOCallSetup_Video_Step2(C25, v_CalleeSipUrl_Dialog1); // C.25 Step 2 + v_MessageHeader_183_Dialog1 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp_Dialog1, v_CalleeContactUri_Dialog1); // C.25 Step 3, 4 + f_IMS_CC_TriggerDedicatedBearerActivation(p_TestProcedure); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + v_SDP_OriginalOffer_Dialog1 := f_IMS_MOCallSetup_AnnexC25_Steps5_13(v_InviteRequestWithSdp_Dialog1, v_MessageHeader_183_Dialog1, v_CalleeContactUri_Dialog1); // C.25 Step 5 .. 13 + } + } + + v_ContactUrl_Dialog1 := f_MessageHeader_GetContactSipUrl(v_MessageHeader_183_Dialog1); + v_RadioBearersEstablished := true; + + f_IMS_TestBody_Set(true); + + //Steps 1 to 4 - Messages in Annex C.8 - Set ongoing call on hold + // @siclog "Step 1 - 4" siclog@ + f_UT_CallHold(MMI); + f_IMS_MOCallHoldResume_AnnexC8(HOLD, v_InviteRequestWithSdp_Dialog1.Invite, v_MessageHeader_183_Dialog1, v_SDP_OriginalOffer_Dialog1, v_CalleeContactUri_Dialog1); + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + //-------------------------------------------- + // DIALOG 2 + //-------------------------------------------- + + f_IMS_PTC_ImsInfo_ActivateDialog(secondDialog); + + // @siclog "Step 5 - 17" siclog@ Steps defined in Annex C.21 - MO call + select (p_TestProcedure) { + case (IPCAN_MO_SpeechCall) { + f_UT_RequestIMSCall(MMI, v_CalleeUri_Dialog2); // C.21 Step 1: There is no IPCAN signalling involved => f_IMS_CC_StartCall shall not be used + v_InviteRequestWithSdp_Dialog2 := f_IMS_MOCallSetup_AnnexC21_Step2_A4(v_CalleeSipUrl_Dialog2); // C.21 Step 2 + v_MessageHeader_183_Dialog2 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp_Dialog2, v_CalleeContactUri_Dialog2); // C.21 Step 3, 4 + // NOTE: the radio bearers are already established + v_SDP_OriginalOffer_Dialog2 := f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp_Dialog2, v_MessageHeader_183_Dialog2, v_CalleeContactUri_Dialog2); // C.21 Step 5 .. 13 + } + case (IPCAN_MO_VideoCall) { + f_UT_RequestIMSVideoCall(MMI, v_CalleeUri_Dialog2); // C.25 Step 1: There is no IPCAN signalling involved => f_IMS_CC_StartCall shall not be used + v_InviteRequestWithSdp_Dialog2 := f_IMS_MOCallSetup_Video_Step2(C25, v_CalleeSipUrl_Dialog2); // C.25 Step 2 + v_MessageHeader_183_Dialog2 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp_Dialog2, v_CalleeContactUri_Dialog2); // C.25 Step 3, 4 + // NOTE: the radio bearers are already established + v_SDP_OriginalOffer_Dialog2 := f_IMS_MOCallSetup_AnnexC25_Steps5_13(v_InviteRequestWithSdp_Dialog2, v_MessageHeader_183_Dialog2, v_CalleeContactUri_Dialog2); // C.25 Step 5 .. 13 + } + } + v_ContactUrl_Dialog2 := f_MessageHeader_GetContactSipUrl(v_MessageHeader_183_Dialog2); + + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + f_UT_CallMPTY(MMI); // There is no IPCAN signalling involved => f_IMS_CC_StartCall shall not be used + f_IMS_MOCallHoldResume_AnnexC8(HOLD, v_InviteRequestWithSdp_Dialog2.Invite, v_MessageHeader_183_Dialog2, v_SDP_OriginalOffer_Dialog2, v_CalleeContactUri_Dialog2); + + //-------------------------------------------- + // DIALOG 3 + //-------------------------------------------- + + f_IMS_PTC_ImsInfo_ActivateDialog(thirdDialog); + + // @siclog "Step 18 - 30" siclog@ Steps defined in Annex C.10 + v_InviteRequestWithSdp_Dialog3 := f_IMS_ConferenceCreation_AnnexC10C38_Steps2_9(p_TestProcedure, v_ConferenceFactoryUri, v_TemporaryConferenceUri, v_FinalConferenceUri, v_RadioBearersEstablished); + v_ContactUrl_UE := f_MessageHeader_GetContactSipUrl(v_InviteRequestWithSdp_Dialog3.Invite.msgHeader); + + v_MessageHeader_Bye_Dialog1 := f_IMS_ByeRequest_MessageHeaderRX(v_InviteRequestWithSdp_Dialog1.Invite, -, firstDialog); + v_MessageHeader_Bye_Dialog2 := f_IMS_ByeRequest_MessageHeaderRX(v_InviteRequestWithSdp_Dialog2.Invite, -, secondDialog); + + do { + alt { + // @siclog "Step 27 - 30" siclog@ Annex C.10 Step 10 - 13 (UE subscribes the conference event) + [v_ConferenceEventPackage_SubscribeInfo_ByRef.State != subscribed] a_ConferenceEventPackage_Subscribe(v_ConferenceEventPackage_SubscribeInfo_ByRef, v_FinalConferenceUri) + { + v_SubscribeRequest := v_ConferenceEventPackage_SubscribeInfo_ByRef.SubscribeRequest; + } + // @siclog "Step 31 - 38" siclog@ Annex C.19 Step 1 - 8 + [v_AnnexC19C37_Dialog1_ByRef.State != finished] a_IMS_InviteUserToConference_AnnexC19C37(v_AnnexC19C37_Dialog1_ByRef, + v_FinalConferenceUri, + v_ActiveSessionToBeReplaced, + -, + v_SubscribeRequest, + tsc_MediaTypeList_Audio, + v_ConferenceEventPackage_Version) + { + v_WaitForBYE_Dialog1 := fl_AnnexC19C37_StateInfo_WaitForBYE(v_AnnexC19C37_Dialog1_ByRef); /* determine whether to wait for BYE for dialog 1 */ + if (v_AnnexC19C37_Dialog1_ByRef.State == waitFor200OK_Step8) { /* => when then UE has subscribed to the conference event package it gets notify that user 1 has joined the conference ... */ + v_ConferenceEventPackage_Version := v_ConferenceEventPackage_Version + 1; /* ... and the version needs to incremented for next notification */ + } + } + // @siclog "Step 39 - 46" siclog@ Annex C.19 Step 1 - 8 + [v_AnnexC19C37_Dialog2_ByRef.State != finished] a_IMS_InviteUserToConference_AnnexC19C37(v_AnnexC19C37_Dialog2_ByRef, + v_FinalConferenceUri, + v_ActiveSessionToBeReplaced, + -, + v_SubscribeRequest, + tsc_MediaTypeList_Audio, + v_ConferenceEventPackage_Version) + { + v_WaitForBYE_Dialog2 := fl_AnnexC19C37_StateInfo_WaitForBYE(v_AnnexC19C37_Dialog2_ByRef); /* determine whether to wait for BYE for dialog 2 */ + if (v_AnnexC19C37_Dialog2_ByRef.State == waitFor200OK_Step8) { /* => when then UE has subscribed to the conference event package it gets notify that user 2 has joined the conference ... */ + v_ConferenceEventPackage_Version := v_ConferenceEventPackage_Version + 1; /* ... and the version needs to incremented for next notification */ + } + } + //-------------------------------------------- + // DIALOG 1 + //-------------------------------------------- + // @siclog "Step 46A - 46B" siclog@ Step numbers are missing in the prose + [v_WaitForBYE_Dialog1] a_IMS_ReceiveByeSendOK(firstDialog, v_ContactUrl_Dialog1, v_MessageHeader_Bye_Dialog1) + { + v_WaitForBYE_Dialog1 := false; + } + + //-------------------------------------------- + // DIALOG 2 + //-------------------------------------------- + // @siclog "Step 46C - 46D" siclog@ + [v_WaitForBYE_Dialog2] a_IMS_ReceiveByeSendOK(secondDialog, v_ContactUrl_Dialog2, v_MessageHeader_Bye_Dialog2) + { + v_WaitForBYE_Dialog2 := false; + } + } + v_Continue := v_WaitForBYE_Dialog1 or v_WaitForBYE_Dialog2 + or (v_AnnexC19C37_Dialog1_ByRef.State != finished) or (v_AnnexC19C37_Dialog2_ByRef.State != finished) + or (isvalue(v_SubscribeRequest) and (v_ConferenceEventPackage_SubscribeInfo_ByRef.State != subscribed)); + + } while (v_Continue); + + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + // @siclog "Step 47 - 48" siclog@ Terminate conference + f_IMS_CallReleaseMT(v_InviteRequestWithSdp_Dialog3.Invite, v_ContactUrl_UE); + + f_IMS_TestBody_Set(false); + } + + /* + * @desc REFERENCE TS 34.229-1 clause 15.21a + * @status APPROVED (IMS) + */ + function f_TC_15_21a_IMS() runs on IMS_PTC + { // Three way session creation + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_TC_15_21a_TC_15_21c_Body(IPCAN_MO_SpeechCall); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + + /* + * @desc REFERENCE TS 34.229-1 clause 15.21c + * @status APPROVED (IMS) + */ + function f_TC_15_21c_IMS() runs on IMS_PTC + { // Three way session creation / video + + f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); + + f_TC_15_21a_TC_15_21c_Body(IPCAN_MO_VideoCall); + + f_IMS_CC_Postamble(IPCAN_MO_VideoCall); + } + +} diff --git a/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSTestcases.ttcn similarity index 69% rename from IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSTestcases.ttcn index cbabdb3..d3438c8 100644 --- a/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ /******************************************************************************/ module IMS_CC_SSTestcases { @@ -29,10 +29,12 @@ module IMS_CC_SSTestcases { import from IMS_CC_CommonFunctions all; import from IMS_Procedures_Registration all; import from IMS_Procedures_CallControl all; + import from IMS_Procedures_CallHold all; import from IMS_Procedures_Common all; import from UpperTesterFunctions all; import from IMS_PTC_CoordMsg all; import from IMS_CommonFunctions all; + import from IMS_Procedures_Video all; //---------------------------------------------------------------------------- /* @@ -44,6 +46,7 @@ module IMS_CC_SSTestcases { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ var MessageHeader v_MessageHeader_183; var template (present) SipUrl v_NewContactUri; + var SDP_Message v_SDP_Message; f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); @@ -62,13 +65,13 @@ module IMS_CC_SSTestcases { f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer // @siclog "Step 5 - 8" siclog@ - f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_183); + v_SDP_Message := f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_183); // @siclog "Step 9 - 9B" siclog@ f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @siclog "Step 10 - 16" siclog@ - v_NewContactUri := fl_TC_15_8_Steps10_17(v_InviteRequestWithSdp); + v_NewContactUri := fl_TC_15_8_Steps10_17(v_InviteRequestWithSdp, v_SDP_Message); /* @sic R5s140905: v_SDP_Message sic@ */ // @siclog "Step 17 -18" siclog@ f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite, v_NewContactUri); @@ -81,11 +84,14 @@ module IMS_CC_SSTestcases { /* * @desc steps 10..17 of TC_15_8 * @param p_InviteRequestWithSdp + * @param p_PreviousSDP_Message * @return template (present) SipUrl * @status APPROVED (IMS) */ - function fl_TC_15_8_Steps10_17(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC return template (present) SipUrl + function fl_TC_15_8_Steps10_17(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + SDP_Message p_PreviousSDP_Message) runs on IMS_PTC return template (present) SipUrl { /* return contact of the callee to which the call is forwarded to */ + /* @sic R5s140905: new parameter p_PreviousSDP_Message sic@ */ var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var SDP_Message v_SDP_MessageStep2 := p_InviteRequestWithSdp.SdpOffer; @@ -106,14 +112,19 @@ module IMS_CC_SSTestcases { f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_InviteRequest.msgHeader.cSeq.seqNumber); // 15.8 Step 11 Send 183 Session in Progress + f_IMS_PTC_ImsInfo_DialogSetSessIdTX("22222222"); /* @sic R5-150707 sic@ */ + f_IMS_PTC_ImsInfo_DialogSetSessVersionTX(22222221); /* @sic R5-150707 (NOTE: session version is incremented before being used in SDP message) sic@ */ + f_IMS_PTC_ImsInfo_DialogSetPrevSdpMessageRX(omit); /* @sic R5s150666, R5-153525 sic@ */ + v_MessageHeader_Response := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, v_ForwardedToCalleeContactUri); IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response, cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21_Step4(v_SDP_MessageStep2))))); /* @sic R5-144402 sic@ */ // 15.8 Step 12 - 13B (same as steps 5 - 8 of C.21) - f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, v_MessageHeader_Response); /* the procedure uses the (remote) contact address as in the 183 response (v_MessageHeader_Response) - => in fact v_ForwardedToCalleeContactUri is used */ + f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, v_MessageHeader_Response, -, p_PreviousSDP_Message); /* the procedure uses the (remote) contact address as in the 183 response (v_MessageHeader_Response) + => in fact v_ForwardedToCalleeContactUri is used + @sic R5s140905: p_PreviousSDP_Message sic@ */ // 15.8 Step 14. 180 Ringing v_MessageHeader_Response := f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, v_ForwardedToCalleeContactUri); v_MessageHeader_Response.historyInfo := cs_HistoryInfo(v_TargetedTo); @@ -173,7 +184,7 @@ module IMS_CC_SSTestcases { // @siclog "Step 5 - 8" siclog@ f_UT_CallResume(MMI); - f_IMS_MOCallHoldResume_AnnexC8(RESUME, v_InviteRequest, v_MessageHeader_Response183, v_SDP_OriginalOffer, str2int(v_SDP_HoldResumeOffer.origin.session_version)); + f_IMS_MOCallHoldResume_AnnexC8(RESUME, v_InviteRequest, v_MessageHeader_Response183, v_SDP_OriginalOffer); f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); // @siclog "Step 9 -10" siclog@ @@ -182,7 +193,55 @@ module IMS_CC_SSTestcases { f_IMS_TestBody_Set(false); f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); } - + + /* ************************************************************************** */ + /* + * @desc REFERENCE TS 34.229-1 clause 15.11a + * @status APPROVED (IMS) + */ + function f_TC_15_11a_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var INVITE_Request v_InviteRequest; + var MessageHeader v_MessageHeader_Response183; + var SDP_Message v_SDP_Offer; + var SDP_Message v_SDP_HoldResumeOffer; + + f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); + + // setup MO speech call + f_IMS_CC_StartCall(IPCAN_MO_VideoCall); + + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(C25); + v_InviteRequest := v_InviteRequestWithSdp.Invite; + v_SDP_Offer := v_InviteRequestWithSdp.SdpOffer; + + v_MessageHeader_Response183 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp); + + // See TS. 36.508 EUTRA/EPS signalling for IMS MO video call Table 4.5A.8.3-1 Step 12-15 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_VideoCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearers + + v_SDP_Offer := f_IMS_MOCallSetup_AnnexC25_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1 - 4" siclog@ + f_UT_CallHold(MMI); + v_SDP_HoldResumeOffer := f_IMS_MOCallHoldResume_AnnexC8(HOLD, v_InviteRequest, v_MessageHeader_Response183, v_SDP_Offer); + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + // @siclog "Step 5 - 8" siclog@ + f_UT_CallResume(MMI); + f_IMS_MOCallHoldResume_AnnexC8(RESUME, v_InviteRequest, v_MessageHeader_Response183, v_SDP_Offer); + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + // @siclog "Step 9 -10" siclog@ + f_IMS_CallReleaseMO(v_InviteRequest); + + f_IMS_TestBody_Set(false); + f_IMS_CC_Postamble(IPCAN_MO_VideoCall); + } + /****************************************************************************/ /* * @desc change bandwidth for hold/resume acc. to C.9 @@ -257,22 +316,39 @@ module IMS_CC_SSTestcases { /* * @desc build up SDP message for step 3 of C.9 + * @param p_LatestSdpBySSBeforeHold * @return template (present) SDP_Message * @status APPROVED (IMS) */ - function fl_IMS_BuildSDP_AnnexC9_Step3() runs on IMS_PTC return template (present) SDP_Message - { + function fl_IMS_BuildSDP_AnnexC9_Step3(template (value) SDP_Message p_LatestSdpBySSBeforeHold) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150371: parameter p_LatestSdpBySSBeforeHold sic@ */ var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); var template (present) charstring v_IPAddrOrigin := ?; var template (present) charstring v_IPAddrConnection := ?; var template SDP_bandwidth_list v_SDP_bandwidth_list := *; - var template SDP_attribute_list v_SDP_Attribute_List := *; - var template (present) SDP_media_desc v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(cr_SDP_AnyMediaFormatDescr, ?, ?), - cr_SDP_Connection(v_AddrType, ?), - v_SDP_bandwidth_list, - v_SDP_Attribute_List); - - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); + var template SDP_attribute_list v_SDP_Attribute_List := *; /* NOTE: direction attribute is checked after message has been received */ + var template (present) SDP_media_desc v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(cr_SDP_Media_Audio(cr_SDP_AnyMediaFormatDescr, ?, ?), + cr_SDP_Connection(v_AddrType, ?), + v_SDP_bandwidth_list, + v_SDP_Attribute_List); + var template (present) SDP_media_desc v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(cr_SDP_Media_Video(cr_SDP_AnyMediaFormatDescr, ?), + cr_SDP_Connection(v_AddrType, ?), + v_SDP_bandwidth_list, + v_SDP_Attribute_List); + var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; + + select (lengthof(p_LatestSdpBySSBeforeHold.media_list)) { /* @sic R5s150371 change 1 sic@ */ + case (1) { + v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio }; + } + case (2) { + v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, -, -, v_SDP_Media_Desc_List); } /* @@ -291,7 +367,7 @@ module IMS_CC_SSTestcases { case (RESUME) { v_ExpectedDirectionAttribute := cr_SDP_Attribute_sendrecv; } } - if (not f_IMS_SDP_CheckMediaListAttributes(p_SDP_Message.media_list, v_ExpectedDirectionAttribute) and + if (not f_SDP_CheckMediaListAttributes(p_SDP_Message.media_list, v_ExpectedDirectionAttribute) and not f_SDP_AttributeList_CheckAttribute(p_SDP_Message.attributes, v_ExpectedDirectionAttribute)) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "missing expected direction attribute"); } @@ -301,15 +377,15 @@ module IMS_CC_SSTestcases { * @desc MT call hold according to Annex C.9 (TS 34.229-1) * @param p_HoldResume * @param p_ContactUrl - * @param p_SDP_LatestMessageBySSBeforeHold + * @param p_LatestSdpBySSBeforeHold * @status APPROVED (IMS) */ function f_IMS_MTCallHoldResume_AnnexC9(IMS_CallHoldResume_Type p_HoldResume, SipUrl p_ContactUrl, - template (value) SDP_Message p_SDP_LatestMessageBySSBeforeHold) runs on IMS_PTC + template (value) SDP_Message p_LatestSdpBySSBeforeHold) runs on IMS_PTC { var template (value) MessageHeader v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(-, A_2_1_A5); - var template (value) SDP_Message v_SDP_MessageTX := fl_IMS_BuildSDP_AnnexC9_Step1(p_HoldResume, p_SDP_LatestMessageBySSBeforeHold); + var template (value) SDP_Message v_SDP_MessageTX := fl_IMS_BuildSDP_AnnexC9_Step1(p_HoldResume, p_LatestSdpBySSBeforeHold); var template (value) INVITE_Request v_InviteRequest := cs_INVITE_Request(p_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_SDP_MessageTX)); var template (value) MessageHeader v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderTX(v_InviteRequest); var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); @@ -335,7 +411,9 @@ module IMS_CC_SSTestcases { cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Invite, cr_ContentTypeSDP), cr_MessageBody_SDP), // @sic R5s140571: cr_MessageBody_SDP sic@ v_IMS_DATA_RSP) /* @sic R5s140350: v_IMS_DATA_RSP is 'out' parameter sic@ */ { - v_SDP_MessageRX := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_IMS_DATA_RSP.Response.messageBody, fl_IMS_BuildSDP_AnnexC9_Step3()); /* @sic R5s140324 - additional change 1 sic@ */ + v_SDP_MessageRX := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_IMS_DATA_RSP.Response.messageBody, + fl_IMS_BuildSDP_AnnexC9_Step3(p_LatestSdpBySSBeforeHold)); /* @sic R5s140324 - additional change 1 sic@ + @sic R5s150371: parameter p_LatestSdpBySSBeforeHold sic@ */ fl_IMS_MTCallHoldResume_AnnexC9_CheckSendRecvMode(p_HoldResume, v_SDP_MessageRX); // @sic R5-142993: no bandwidth to be checked sic@ } @@ -370,7 +448,7 @@ module IMS_CC_SSTestcases { v_MessageHeader_183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp); // C.21 Step 3, 4 f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer v_SDP_LatestMessageByUE := f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_183); // @sic R5s120609 sic@ - v_SDP_LatestMessageBySS := f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestMessageByUE); // as in f_IMS_MOCallSetup_AnnexC21_Steps5_13 + v_SDP_LatestMessageBySS := f_IMS_BuildSDP_AnnexC21C25_Step6or8(v_SDP_LatestMessageByUE); // as in f_IMS_MOCallSetup_AnnexC21_Steps5_13 f_IMS_TestBody_Set(true); @@ -389,10 +467,61 @@ module IMS_CC_SSTestcases { f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); } + + /* ************************************************************************** */ + /* + * @desc REFERENCE TS 34.229-1 clause 15.12a + * @status APPROVED (IMS) + */ + function f_TC_15_12a_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ + var INVITE_Request v_InviteRequest; + var MessageHeader v_MessageHeader_Response183; + var SDP_Message v_SDP_UE; + var template (value) SDP_Message v_SDP_SS; + var SipUrl v_ContactUrl; + + f_IMS_CC_Preamble(IPCAN_VideoCall, IMS_REGISTERED); + + // setup MO speech call + f_IMS_CC_StartCall(IPCAN_MO_VideoCall); // C.25 Step 1 + + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(C25); + v_InviteRequest := v_InviteRequestWithSdp.Invite; + v_ContactUrl := f_Addr_Union_GetSipUrl(v_InviteRequest.msgHeader.contact.contactBody.contactAddresses[0].addressField); + + v_SDP_UE := v_InviteRequestWithSdp.SdpOffer; + + v_MessageHeader_Response183 := f_IMS_MOCallSetup_Video_Step3_4(C25, v_InviteRequestWithSdp); + + // See TS. 36.508 EUTRA/EPS signalling for IMS MO video call Table 4.5A.8.3-1 Step 12-15 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_VideoCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearers + + v_SDP_UE := f_IMS_MOCallSetup_AnnexC25_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1 - 4" siclog@ + v_SDP_SS := f_IMS_BuildSDP_AnnexC21C25_Step6or8(v_SDP_UE); + f_IMS_MTCallHoldResume_AnnexC9(HOLD, v_ContactUrl, v_SDP_SS); + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + // @siclog "Step 5 - 8" siclog@ + f_IMS_MTCallHoldResume_AnnexC9(RESUME, v_ContactUrl, v_SDP_SS); + f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + + // @siclog "Step 9 -10" siclog@ + f_IMS_CallReleaseMT(v_InviteRequest, v_ContactUrl); + + f_IMS_TestBody_Set(false); + f_IMS_CC_Postamble(IPCAN_MO_VideoCall); + } + //============================================================================ template (value) MessageBody cs_MessageBody_SimpleMsgSummary(template (value) SimpleMsgSummary p_SimpleMsgSummary) := - { + { /* @status APPROVED (IMS) */ simpleMsgSummary := p_SimpleMsgSummary }; @@ -400,7 +529,8 @@ module IMS_CC_SSTestcases { charstring p_AccountURI, template (omit) Msg_summary_line_list p_MsgSummaryLineList := omit, template (omit) Opt_msg_headers p_SetOfOptionalLines := omit) := - { // RFC 3842 + { /* @status APPROVED (IMS) */ + // RFC 3842 msg_status_line := { msg_type := c_messageWaiting, msg_status := p_Status @@ -415,28 +545,52 @@ module IMS_CC_SSTestcases { template (value) Msg_summary_line cs_MsgSummaryLine_VoiceMessage(charstring p_Msgs, charstring p_UrgentMsgs := "0/0") := - { + { /* @status APPROVED (IMS) */ msg_context_class := c_voiceMessage, msgs := p_Msgs, urgent_msgs := p_UrgentMsgs }; + /* + * @desc send NOTIFY for Message Waiting Indication event package (34.229-1 A.6.2); receive 200 OK + * @param p_SubscribeRequest + * @param p_MessageServerDomain + * @param p_MessageContent (default value: {}) + * @status APPROVED (IMS) + */ function fl_IMS_Notify_15_15(SUBSCRIBE_Request p_SubscribeRequest, charstring p_MessageServerDomain, - template (value) SimpleMsgSummary p_SimpleMsgSummary, - integer p_CseqValue := 1) runs on IMS_PTC - { + Opt_msg_headers p_MessageContent := {}) runs on IMS_PTC + { /* A.6.2 prose issues: A.6.2 specifies a pure DL message + - Via header: there shall be nothing "optional" + - From header: shall be clearly specified (i.e. not "any IMPU" but e.g. "same URI as sent by the UE in the To header of the SUBSCRIBE") + - To header: as From header (e.g. "same URI as sent by the UE in the From header of the SUBSCRIBE") + - Contact header: shall not be a PIXIT + - Message Body: shall refer to "same IMPU as in From header" (@sic see R5-150705 sic@) */ + /* @sic R5-153756, R5-153986: p_CseqValue removed as global msgSummayDialog is used instead sic@ */ var template (value) MessageHeader v_MessageHeader_Notify; var template (present) MessageHeader v_MessageHeader_Response; var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); var CharStringList_Type v_ViaAddressList := { v_NW_AddrStr, px_IMS_Scscf, p_MessageServerDomain }; - var template (value) SipUrl v_ContactSipUrl := cs_SipUri_HostPort("Contact@" & p_MessageServerDomain); // !!!! needs clarification in the prose; there is no reason to have yet-another-PIXIT !!!! - var template (value) SipUrl v_RequestLineUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + var template (value) Via v_Via := f_IMS_NotifyRequest_ViaTX(v_ViaAddressList); /* @sic R5-153986: new function f_IMS_NotifyRequest_ViaTX sic@ */ + var template (value) SipUrl v_RequestLineUrl := f_MessageHeader_GetContactSipUrl(p_SubscribeRequest.msgHeader); + var template (value) SipUrl v_ContactSipUrl := cs_SipUri_HostPort("Contact@" & p_MessageServerDomain); /* @sic R5-153764 sic@ */ + var template (value) ContentType v_ContentType := cs_ContentType("application/simple-message-summary"); /* @sic R5-153756 sic@ */ var EventType v_EventType := "message-summary"; + var charstring v_AccountURI; + var template (value) SimpleMsgSummary v_SimpleMsgSummary; - v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_Common(p_SubscribeRequest, v_ViaAddressList, v_ContactSipUrl, v_EventType, p_CseqValue, cs_SubscriptionState_Active("7200")); - IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_Protocol), cs_NOTIFY_Request(v_RequestLineUrl, v_MessageHeader_Notify, cs_MessageBody_SimpleMsgSummary(p_SimpleMsgSummary)))); + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_Common(msgSummayDialog, v_Via, v_ContactSipUrl, v_EventType, cs_SubscriptionState_Active("7200"), v_ContentType); + v_AccountURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(v_MessageHeader_Notify.fromField.addressField)); + + if (lengthof(p_MessageContent) == 0) { + v_SimpleMsgSummary := cs_SimpleMsgSummary_MessageWaiting("no", v_AccountURI); + } else { + v_SimpleMsgSummary := cs_SimpleMsgSummary_MessageWaiting("yes", v_AccountURI, {cs_MsgSummaryLine_VoiceMessage("1/0")}, p_MessageContent); + } + + IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_Protocol), cs_NOTIFY_Request(v_RequestLineUrl, v_MessageHeader_Notify, cs_MessageBody_SimpleMsgSummary(v_SimpleMsgSummary)))); v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Notify); f_IMS_ReceiveResponse(v_MessageHeader_Notify, v_Protocol, cr_Response(c_statusLine200, v_MessageHeader_Response)); /* @sic R5s140350 sic@ */ @@ -444,51 +598,91 @@ module IMS_CC_SSTestcases { /* * @desc REFERENCE TS 34.229-1 clause 15.15 - * @status CHECKED + * @status APPROVED (IMS) */ function f_TC_15_15_IMS() runs on IMS_PTC - { /* !!!! Prose CR required as prose refers to PDP context but not to EPS bearer !!!! */ - var SUBSCRIBE_Request v_SubscribeReq; - var IMS_DATA_REQ v_IMS_DATA_REQ; - var template (present) charstring v_ExpireTime := ?; // value not to be checked acc. to A.6.1 - var charstring v_AccountURI; + { + var REGISTER_Request v_RegisterRequest; + var IMS_DATA_REQ v_IMS_DATA_REQ_ByRef; + var SUBSCRIBE_Request v_SubscribeReq_MsgSummaryEvent; + var CharStringList_Type v_IMPU_List; + var SipUrl v_ContactUrl_RegEvent; + var template (present) SipUrl v_RequestUrl_RegEvent; + var template (present) SipUrl v_RequestUrl_MsgSummaryEvent; + var template (present) SipUrl v_ToUrl_MsgSummaryEvent; var charstring v_MessageServerDomain; - var template (value) SimpleMsgSummary v_SimpleMsgSummary; var Opt_msg_headers v_SetOfOptionalLines; - - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + var template (present) charstring v_ExpireTime := ?; // value not to be checked acc. to A.6.1 + var boolean v_SubcribedToRegEventPackage := false; + var boolean v_SubcribedToMsgSummaryEventPackage := false; - v_MessageServerDomain := f_IMS_PTC_ImsInfo_GetHomeDomainName(); // !!!! acc. to the prose there is yet-another-PIXIT => needs to be changed !!!! - - // Step 1. UE subscribes to the Message Waiting Indication event package. - f_IMS_CC_StartSignalling(IPCAN_MO_IMS_Signalling); - f_UT_IMS_ActivateMWI(MMI); // !!!! prose CR needed: MMI command is missing in the prose !!!! + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL); + f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); + + v_RegisterRequest := f_IMS_Register(); + + v_RequestUrl_RegEvent := f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(); + v_ContactUrl_RegEvent := f_MessageHeader_GetContactSipUrl(v_RegisterRequest.msgHeader); + + v_RequestUrl_MsgSummaryEvent := cr_SipUri_HostPort(?); // to be checked after SUBSCRIBE has been received + v_ToUrl_MsgSummaryEvent := cr_SipUri_HostPort(?); // to be checked after SUBSCRIBE has been received - // @siclog "Step 1 - 2" siclog@ - v_IMS_DATA_REQ := f_IMS_SUBSCRIBE_Request("message-summary", -, v_ExpireTime); - f_IMS_SUBSCRIBE_Response(v_IMS_DATA_REQ); - v_SubscribeReq := v_IMS_DATA_REQ.Request.Subscribe; - v_AccountURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(v_SubscribeReq.msgHeader.fromField.addressField)); + v_MessageServerDomain := f_IMS_PTC_ImsInfo_GetHomeDomainName(); + f_IMS_TestBody_Set(true); + + alt { + // Step 1. UE subscribes to the Message Waiting Indication event package. + [not v_SubcribedToMsgSummaryEventPackage] a_IMS_SUBSCRIBE_Request(v_IMS_DATA_REQ_ByRef, "message-summary", v_RequestUrl_MsgSummaryEvent, v_ToUrl_MsgSummaryEvent, v_ExpireTime) { + v_SubscribeReq_MsgSummaryEvent := v_IMS_DATA_REQ_ByRef.Request.Subscribe; + + if (px_IMS_MessageAccountIdentity != "") { + v_IMPU_List := { px_IMS_MessageAccountIdentity }; /* UE shall use MessageAccountIdentity when configured */ + } else { + v_IMPU_List := f_IMS_PTC_ImsInfo_GetAllIMPUs(); /* any IMPU within the set of IMPUs on ISIM if MessageAccountIdentity is not configured at the UE */ + } + if (not f_IMS_PublicUserId_Match(v_IMPU_List, v_SubscribeReq_MsgSummaryEvent.requestLine.requestUri)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid request URI"); + } + if (not f_IMS_PublicUserId_Match(v_IMPU_List, f_Addr_Union_GetSipUrl(v_SubscribeReq_MsgSummaryEvent.msgHeader.toField.addressField))) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid request URI"); + } + + // Step 2. The SS responds SUBSCRIBE with 200 OK + f_IMS_SUBSCRIBE_Response(msgSummayDialog, v_IMS_DATA_REQ_ByRef); + + v_SubcribedToMsgSummaryEventPackage := true; + if (not v_SubcribedToRegEventPackage) { repeat; } + } + // Step 2a. The UE subscribes to the registration event package. + [not v_SubcribedToRegEventPackage] a_IMS_SUBSCRIBE_Request(v_IMS_DATA_REQ_ByRef, "reg", v_RequestUrl_RegEvent) { + + // Step 2b. The SS responds with 200 OK + f_IMS_SUBSCRIBE_Response(regEventDialog, v_IMS_DATA_REQ_ByRef); + + v_SubcribedToRegEventPackage := true; + if (not v_SubcribedToMsgSummaryEventPackage) { repeat; } + } + } + // @siclog "Step 3 - 4" siclog@ - v_SimpleMsgSummary := cs_SimpleMsgSummary_MessageWaiting("no", v_AccountURI); - fl_IMS_Notify_15_15(v_SubscribeReq, v_MessageServerDomain, v_SimpleMsgSummary, 1); - - /* Step 5 and 6. The SS sends another NOTIFY for Message Waiting Indication event package, - * now referring to one voice message waiting. - */ + fl_IMS_Notify_15_15(v_SubscribeReq_MsgSummaryEvent, v_MessageServerDomain); + + // @siclog "Step 5 - 6" siclog@ v_SetOfOptionalLines := { - "To: " & f_IMS_PTC_ImsInfo_GetURI(defaultId), + "To: " & f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(v_SubscribeReq_MsgSummaryEvent.msgHeader.fromField.addressField)), "From: ", + "Subject: call me back!", "Message-ID: 27775334485@" & v_MessageServerDomain, "Message-Context: voice-message" }; - // @siclog "Step 5 - 6" siclog@ - v_SimpleMsgSummary := cs_SimpleMsgSummary_MessageWaiting("yes", v_AccountURI, {cs_MsgSummaryLine_VoiceMessage("1/0")}, v_SetOfOptionalLines); - fl_IMS_Notify_15_15(v_SubscribeReq, v_MessageServerDomain, v_SimpleMsgSummary, 2); - + fl_IMS_Notify_15_15(v_SubscribeReq_MsgSummaryEvent, v_MessageServerDomain, v_SetOfOptionalLines); + + // @siclog "Step 7 - 8" siclog@ + f_IMS_Register_Notify(v_ContactUrl_RegEvent, f_IMS_XmlMessageForNotify_Def(v_RegisterRequest)); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ + f_IMS_TestBody_Set(false); - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_InitialRegistration); } /* ************************************************************************** */ @@ -536,7 +730,7 @@ module IMS_CC_SSTestcases { f_IMS_MTCallSetup_SendPRACK_ReceiveOK(v_InviteRequestWithSdp.Invite, v_MessageHeader_PrevReliableResponse); // Step 7 - 11. Send UPDATE, Receive 200 OK, Receive 180 Ringing and send PRACK if requested - v_MessageHeader_Ringing := f_IMS_MTCallSetup_AnnexC11_Steps7_11(v_InviteRequestWithSdp); + v_MessageHeader_Ringing := f_IMS_MTCallSetup_AnnexC11_Steps7_11(v_InviteRequestWithSdp, v_ResponseWithSdp); /* @sic R5-153798: parameter v_ResponseWithSdp sic@ */ fl_IMS_CW_180Ringing_CheckAlertInfo(v_MessageHeader_Ringing, "urn:alert:service:call-waiting"); // Requirement step 9 return v_InviteRequestWithSdp.Invite; diff --git a/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSXcapTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSXcapTestcases.ttcn similarity index 70% rename from IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSXcapTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSXcapTestcases.ttcn index 1cbafc3..6bf5686 100644 --- a/IMS_PART4_IWD_14wk37/IMS/15/IMS_CC_SSXcapTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/15/IMS_CC_SSXcapTestcases.ttcn @@ -2,45 +2,43 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 16:21:14 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12212 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 14:42:41 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14457 $ /******************************************************************************/ module IMS_CC_SSXcapTestcases { import from CommonDefs all; - import from NAS_AuthenticationCommon all; + import from CommonIP all; + import from EPS_NAS_Constants all; import from IP_ASP_TypeDefs all; import from IP_PTC_CtrlMsgs all; import from IP_PTC_Templates all; import from IMS_Component all; import from IMS_CC_Component all; - import from IMS_CommonFunctions all; import from IMS_CC_Parameters all; - import from IMS_CommonDefs all; import from IMS_CC_CommonFunctions all; - import from HTTP_ASP_TypeDefs all; import from HTTP_PTC_CoordMsg all; import from UpperTesterFunctions all; - import from IMS_PTC_CoordMsg all; import from XSD all; - import from urn_ietf_params_xml_ns_common_policy all; - import from http_uri_etsi_org_ngn_params_xml_simservs_xcap all; -// import from urn_ietf_params_xml_ns_common_policy language "XSD" all; -// import from http_uri_etsi_org_ngn_params_xml_simservs_xcap language "XSD" all; +// import from urn_ietf_params_xml_ns_common_policy all; +// import from http_uri_etsi_org_ngn_params_xml_simservs_xcap all; +// import from urn_oma_xml_xdm_common_policy all; + import from urn_ietf_params_xml_ns_common_policy language "XSD" all; + import from http_uri_etsi_org_ngn_params_xml_simservs_xcap language "XSD" all; + import from urn_oma_xml_xdm_common_policy language "XSD" all; const PortNumber_Type tsc_PortNumberHTTP := 80; /* @status APPROVED (IMS) */ - const PortNumber_Type tsc_PortNumberHTTPS := 443; /* @status APPROVED (IMS) */ + const PortNumber_Type tsc_PortNumberHTTPS := 443; - type enumerated HTTP_TransactionType_Type { initial, subsequent }; /* @status APPROVED (IMS) */ + type enumerated SupplementaryServiceActivationState_Type {notACTIVATED, ACTIVATED, deACTIVATED}; /* @status APPROVED (IMS) */ - const XSD.AnyURI tsc_AnyUserId := "sip:user@domain.com"; /* @status APPROVED (IMS) */ - - type Simservs.absService_list Simservs_ServiceList_Type; /* @status APPROVED (IMS) */ + type Simservs.absService_list Simservs_ServiceList_Type with { encode "XML" }; /* @status APPROVED (IMS) + @sic R5s140975 change 1.2 sic@ */ type record SupplementaryServiceInfo_Type { /* to simplify checks */ @@ -203,19 +201,21 @@ module IMS_CC_SSXcapTestcases { //---------------------------------------------------------------------------- - template (value) HTTP_ConfigurationParams_Type cs_HTTP_ConfigurationParams(HttpAuthenticationMechanism_Type p_HttpAuthenticationMechanism, - template (value) IP_Socket_Type p_XcapServerAddrAndPort, - template (omit) IP_Socket_Type p_BsfServerAddrAndPort, + template (value) HTTP_ConfigurationParams_Type cs_HTTP_ConfigurationParams(template (value) IP_SocketList_Type p_XcapServerAddrAndPort_List, + template (value) IP_SocketList_Type p_BsfServerAddrAndPort_List, template (value) IP_DrbInfo_Type p_DrbRoutingInfo, + HTTP_AuthenticationMethod_Type p_AuthenticationMethod, + charstring p_PrivateUserId, charstring p_HomeDomainName, charstring p_XcapUsername, charstring p_XcapUserId, charstring p_XcapRootUri := px_XCAP_RootUri) := { /* @status APPROVED (IMS) */ - HttpAuthenticationMechanism := p_HttpAuthenticationMechanism, - XcapServerAddrAndPort := p_XcapServerAddrAndPort, - BsfServerAddrAndPort := p_BsfServerAddrAndPort, + XcapServerAddrAndPort_List := p_XcapServerAddrAndPort_List, // @sic R5s150148 sic@ + BsfServerAddrAndPort_List := p_BsfServerAddrAndPort_List, // @sic R5s150148 sic@ DrbRoutingInfo := p_DrbRoutingInfo, + AuthenticationMethod := p_AuthenticationMethod, + PrivateUserId := p_PrivateUserId, HomeDomainName := p_HomeDomainName, XcapUsername := p_XcapUsername, XcapUserId := p_XcapUserId, @@ -223,12 +223,10 @@ module IMS_CC_SSXcapTestcases { }; template (value) HTTP_TransactionParams_Type cs_HTTP_TransactionParams(float p_MaxDuration, - float p_InactivityDuration, - template (omit) Common_AuthenticationParams_Type p_AuthenticationParams) := + float p_InactivityDuration) := { /* @status APPROVED (IMS) */ MaxDuration := p_MaxDuration, - InactivityDuration := p_InactivityDuration, - AuthenticationParams := p_AuthenticationParams + InactivityDuration := p_InactivityDuration }; //---------------------------------------------------------------------------- @@ -261,64 +259,76 @@ module IMS_CC_SSXcapTestcases { //---------------------------------------------------------------------------- /* - * @desc return HttpAuthenticationMechanism_Type acc. to PICS setting - * @return HttpAuthenticationMechanism_Type + * @desc return HTTP_AuthenticationMethod_Type acc. to PICS setting and test requirement + * @param p_GbaRequested (default value: omit) + * @return HTTP_AuthenticationMethod_Type * @status APPROVED (IMS) */ - function fl_HTTP_AuthenticationMechanism() return HttpAuthenticationMechanism_Type + function fl_HTTP_AuthenticationMethod(boolean p_GbaRequested := false) runs on IMS_PTC return HTTP_AuthenticationMethod_Type { - var HttpAuthenticationMechanism_Type v_AuthMech; - - if (pc_HttpGAAAuthentication) { v_AuthMech := gaaAuthentication; } - else if (pc_HttpDigestAuthentication) { v_AuthMech := httpDigestAuthentication; } - else { v_AuthMech := noAuthentication; } + var HTTP_AuthenticationMethod_Type v_AuthMethod; - return v_AuthMech; + if (p_GbaRequested) { + if (not pc_HttpGBAAuthentication) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "UE does not support GBA"); + } + v_AuthMethod := httpDigestAndGbaAuthentication; + } else { + if (pc_HttpDigestAuthentication) { + v_AuthMethod := httpDigestAuthentication; + } else { + v_AuthMethod := noAuthentication; + } + } + return v_AuthMethod; } /* * @desc configure HTTP/XCAP PTC + * @param p_AuthenticationMethod * @param p_XcapUserId * @param p_XcapUsername * @status APPROVED (IMS) */ - function f_IMS_HTTP_Configure(charstring p_XcapUserId, + function f_IMS_HTTP_Configure(HTTP_AuthenticationMethod_Type p_AuthenticationMethod, + charstring p_XcapUserId, charstring p_XcapUsername) runs on IMS_XCAP_PTC { var template (value) IMS_HTTP_Command_Type v_Command; - var HttpAuthenticationMechanism_Type v_HttpAuthenticationMechanism := fl_HTTP_AuthenticationMechanism(); - var IP_AddrInfo_Type v_PCSCF_Address := f_IMS_PTC_NW_Address_Get(); - var template (value) IP_Socket_Type v_XcapServerAddrAndPort; - var template (omit) IP_Socket_Type v_BsfServerAddrAndPort; + var template (value) IP_AddrInfo_Type v_XCAP_AddressV4; + var template (value) IP_AddrInfo_Type v_XCAP_AddressV6; + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(PDN_2); /* @sic R5s141051 change 8 sic@ */ + var template (value) IP_SocketList_Type v_XcapServerAddrAndPort_List := {}; + var template (value) IP_SocketList_Type v_BsfServerAddrAndPort_List := {}; var template (value) IP_DrbInfo_Type v_DrbRoutingInfo; + var charstring v_PrivateUserId := f_IMS_PTC_ImsInfo_GetPrivateUserId(); var charstring v_HomeDomainName := f_IMS_PTC_ImsInfo_GetHomeDomainName(); var template (present) charstring v_RanType := f_IMS_PTC_RanType_GetString(); var IP_DrbId_Type v_DrbId; + v_XCAP_AddressV4 := cs_IPv4Addr(v_PDN_AddressInfo.XCAP_ServerAddressIPv4); /* @sic R5s150148 sic@ */ + v_XCAP_AddressV6 := cs_IPv6Addr(v_PDN_AddressInfo.XCAP_ServerAddressIPv6); /* @sic R5s150148 sic@ */ + if (isvalue(v_RanType) and match(valueof(v_RanType), pattern "3GPP-E-UTRAN-*")) { - v_DrbId := 2; /* we use DRB2 as XCAP signalling happens at 2nd PDN (see 36.508 cl. 4.5A.14) */ + v_DrbId := f_EUTRA_EpsBearerAssociatedDRB(tsc_EpsDefaultBearerId2ndPDN); /* DRB Id for 2nd PDN; @sic R5s141351 change 4 sic@ */ v_DrbRoutingInfo := cs_DrbInfo_EUTRA(eutra_Cell1, v_DrbId); } else { FatalError(__FILE__, __LINE__, "Unknown RAN type"); } - select (v_HttpAuthenticationMechanism) { - case (noAuthentication, httpDigestAuthentication) { - v_XcapServerAddrAndPort := cs_IP_Socket(v_PCSCF_Address, tsc_PortNumberHTTP); - v_BsfServerAddrAndPort := omit; - } - case (gaaAuthentication) { - v_XcapServerAddrAndPort := cs_IP_Socket(v_PCSCF_Address, tsc_PortNumberHTTPS); - v_BsfServerAddrAndPort := cs_IP_Socket(v_PCSCF_Address, tsc_PortNumberHTTP); - } - case else { - FatalError(__FILE__, __LINE__, "invalid HttpAuthenticationMechanism_Type"); - } + v_XcapServerAddrAndPort_List[0] := cs_IP_Socket(v_XCAP_AddressV4, tsc_PortNumberHTTP); /* @sic R5s150148 sic@ */ + v_XcapServerAddrAndPort_List[1] := cs_IP_Socket(v_XCAP_AddressV6, tsc_PortNumberHTTP); /* @sic R5s150148 sic@ */ + + if (p_AuthenticationMethod == httpDigestAndGbaAuthentication) { + /* when there shall be a different IP address or port for the BSF server this shall be added here */ + /* v_BsfServerAddrAndPort_List[0] := cs_IP_Socket(v_BSF_AddressV4, tsc_PortNumberHTTP/HTTPS); */ + /* v_BsfServerAddrAndPort_List[1] := cs_IP_Socket(v_BSF_AddressV6, tsc_PortNumberHTTP/HTTPS); */ } v_Command := { - Configure := cs_HTTP_ConfigurationParams(v_HttpAuthenticationMechanism, - v_XcapServerAddrAndPort, - v_BsfServerAddrAndPort, + Configure := cs_HTTP_ConfigurationParams(v_XcapServerAddrAndPort_List, + v_BsfServerAddrAndPort_List, v_DrbRoutingInfo, + p_AuthenticationMethod, + v_PrivateUserId, v_HomeDomainName, p_XcapUsername, p_XcapUserId) @@ -380,26 +390,15 @@ module IMS_CC_SSXcapTestcases { //---------------------------------------------------------------------------- /* * @desc start transaction and wait until it is done: the UE shall exchange all necessary HTTP messages with the XCAP server - * @param p_TransactionType * @param p_MaxDuration * @param p_InactivityDuration (default value: 20.0) * @status APPROVED (IMS) */ - function f_IMS_HTTP_Transaction(HTTP_TransactionType_Type p_TransactionType, - float p_MaxDuration, + function f_IMS_HTTP_Transaction(float p_MaxDuration, float p_InactivityDuration := 20.0) runs on IMS_XCAP_PTC { /* @sic R5s130794 change 20: p_InactivityDuration increased to 20.0 sic@ */ - var template (value) IMS_HTTP_Command_Type v_Command; - var template (omit) Common_AuthenticationParams_Type v_AuthenticationParams := omit; - var charstring v_Password := "xcap"; /* @sic R5s130794 Change 25 sic@ */ - - if (p_TransactionType == initial) { - v_AuthenticationParams := f_IMS_AuthenticationInit(tsc_IMS_AuthRAND); - v_AuthenticationParams.XRES := oct2bit(char2oct(v_Password)); - v_AuthenticationParams.XRESLength := lengthof(v_Password); - } - v_Command := { - TransactionStart := cs_HTTP_TransactionParams(p_MaxDuration, p_InactivityDuration, v_AuthenticationParams) + var template (value) IMS_HTTP_Command_Type v_Command := { + TransactionStart := cs_HTTP_TransactionParams(p_MaxDuration, p_InactivityDuration) }; f_IMS_HTTP_RunCommand(__FILE__, __LINE__, v_Command); } @@ -501,43 +500,115 @@ module IMS_CC_SSXcapTestcases { v_Ruleset := fl_Ruleset(v_AbsService.incoming_communication_barring.ruleset); v_ServiceList[0] := cs_SupplementaryService_Info(v_AbsService, v_Active, v_Ruleset); } - case (SS_BARRING_IN_AND_OUT_ROAM) { + case (SS_BIC_ROAM) { // @sic R5-153995 sic@ v_AbsService := fl_Simservs_GetService(p_Simservs, cr_Incoming_communication_barring, cs_Incoming_communication_barring); v_Active := match(v_AbsService, cr_Incoming_communication_barring(true)); v_Ruleset := fl_Ruleset(v_AbsService.incoming_communication_barring.ruleset); v_ServiceList[0] := cs_SupplementaryService_Info(v_AbsService, v_Active, v_Ruleset); + } + case (SS_BARRING_OUT_ROAM) { // @sic R5-153995 sic@ + /* @sic R5s141115 change 1: no support outgoing communication barring; R5-151166: outgoing communication barring re-introduced; R5-153995: split incoming and outgoing sic@ */ v_AbsService := fl_Simservs_GetService(p_Simservs, cr_Outgoing_communication_barring, cs_Outgoing_communication_barring); v_Active := match(v_AbsService, cr_Outgoing_communication_barring(true)); v_Ruleset := fl_Ruleset(v_AbsService.outgoing_communication_barring.ruleset); - v_ServiceList[1] := cs_SupplementaryService_Info(v_AbsService, v_Active, v_Ruleset); + v_ServiceList[0] := cs_SupplementaryService_Info(v_AbsService, v_Active, v_Ruleset); } case else { - FatalError(__FILE__, __LINE__, "unknown supplementatry service"); + FatalError(__FILE__, __LINE__, "unknown supplementary service"); } } return valueof(v_ServiceList); } + /* + * @desc check whether rule-set is explicitly deactivated + * @param p_Ruleset + * @return boolean + * @status APPROVED (IMS) + */ + function fl_Ruleset_CheckDeactivated(Ruleset p_Ruleset) return boolean + { + var integer i; + var RuleType v_Rule; + var charstring v_Condition := "rule-deactivated"; + + for (i := 0; i < lengthof(p_Ruleset.rule_list); i := i + 1) { + v_Rule := p_Ruleset.rule_list[i]; + + if (fl_Rule_CheckCondition(v_Rule, v_Condition)) { + return true; + } + } + return false; + } + /* * @desc return true if all given supplementary services are active or not active acc. to parameter p_Activated, false else * @param p_ServiceList - * @param p_Activated + * @param p_ActivationState * @return boolean * @status APPROVED (IMS) */ function fl_SupplementaryService_CheckActivated(SupplementaryServiceInfoList_Type p_ServiceList, - boolean p_Activated) return boolean - { + SupplementaryServiceActivationState_Type p_ActivationState) return boolean + { /* @sic R5s141113 change 5: handling of "deACTIVATED" sic@ */ var integer i; for (i:=0; i < lengthof(p_ServiceList); i:=i+1) { - if (p_ServiceList[i].active != p_Activated) { - return false; + select (p_ActivationState) { + case (notACTIVATED) { + if (p_ServiceList[i].active) { + return false; + } + } + case (ACTIVATED) { + if (not p_ServiceList[i].active) { + return false; + } + } + case (deACTIVATED) { + if (not p_ServiceList[i].active or not fl_Ruleset_CheckDeactivated(p_ServiceList[i].ruleset)) { + return false; + } + } } } return true; } + //---------------------------------------------------------------------------- + /* + * @desc try to decode the received bitstring acc. to a given condition + * @param p_ConditionsElem + * @param p_GivenCondition + * @return boolean + * @status APPROVED (IMS) + */ + function fl_MatchCondition(XSD.String p_ConditionsElem, + charstring p_GivenCondition) return boolean + { + var bitstring v_Bitstring := oct2bit(char2oct(p_ConditionsElem)); // @sic R5s141351 change 2: char2oct instead of str2oct sic@ + var Anonymous v_Anonymous; + var Roaming v_Roaming; + var No_answer v_No_answer; + var Busy v_Busy; + var Not_registered v_Not_registered; + var Not_reachable v_Not_reachable; + var Rule_deactivated v_Rule_deactivated; + var integer v_DecvalueResult := -1; + + select (p_GivenCondition) { + case ("anonymous") {v_DecvalueResult := decvalue(v_Bitstring, v_Anonymous);} + case ("roaming") {v_DecvalueResult := decvalue(v_Bitstring, v_Roaming);} + case ("no-answer") {v_DecvalueResult := decvalue(v_Bitstring, v_No_answer);} + case ("busy") {v_DecvalueResult := decvalue(v_Bitstring, v_Busy);} + case ("not-registered") {v_DecvalueResult := decvalue(v_Bitstring, v_Not_registered);} + case ("not-reachable") {v_DecvalueResult := decvalue(v_Bitstring, v_Not_reachable);} + case ("rule-deactivated") {v_DecvalueResult := decvalue(v_Bitstring, v_Rule_deactivated);} + case else {FatalError(__FILE__, __LINE__, "Invalid condition");} + } + return (v_DecvalueResult == 0); + } //---------------------------------------------------------------------------- /* @@ -548,13 +619,9 @@ module IMS_CC_SSXcapTestcases { * @status APPROVED (IMS) */ function fl_Rule_CheckCondition(RuleType p_Rule, - template (omit) XSD.String p_Condition) return boolean + template (omit) charstring p_Condition) return boolean { - var XSD.String v_Element; - var XSD.String v_Condition; - var XSD.String v_PatternString1; - var XSD.String v_PatternString2; - var template (present) XSD.String v_PatternTemplate; + var charstring v_Condition; var integer i; var integer k; @@ -568,11 +635,7 @@ module IMS_CC_SSXcapTestcases { for (i := 0; i < lengthof(p_Rule.conditions.choice_list); i := i + 1) { if (ischosen(p_Rule.conditions.choice_list[i].elem_list)) { for (k := 0; k < lengthof(p_Rule.conditions.choice_list[i].elem_list); k := k + 1) { - v_Element := p_Rule.conditions.choice_list[i].elem_list[k]; - v_PatternString1 := "<" & v_Condition & "/>"; - v_PatternString2 := "<" & v_Condition & ">"; - v_PatternTemplate := (pattern v_PatternString1, pattern v_PatternString2); - if (match(v_Element, v_PatternTemplate)) { + if (fl_MatchCondition(p_Rule.conditions.choice_list[i].elem_list[k], v_Condition)) { /* @sic R5s140975 - Additional MCC160 changes sic@ */ return true; } } @@ -598,7 +661,7 @@ module IMS_CC_SSXcapTestcases { var Forward_to v_Forward_to; for (i := 0; i < lengthof(p_Rule.actions.elem_list); i := i + 1) { - v_Bitstring := oct2bit(char2oct(p_Rule.actions.elem_list[i])); + v_Bitstring := oct2bit(char2oct(p_Rule.actions.elem_list[i])); // @sic R5s141351 change 2: char2oct instead of str2oct sic@ if (decvalue(v_Bitstring, v_Forward_to) == 0) { if (match(v_Forward_to.target, p_TargetAddress)) { return true; @@ -612,13 +675,13 @@ module IMS_CC_SSXcapTestcases { * @desc check condition in given ruleset * @param p_Ruleset * @param p_Condition - * @param p_TargetAddress (default value: tsc_AnyUserId) + * @param p_TargetAddress (default value: px_XCAP_TargetUri) * @return boolean * @status APPROVED (IMS) */ function fl_ForwardingRuleset_CheckCondition(Ruleset p_Ruleset, - template (omit) XSD.String p_Condition, - XSD.AnyURI p_TargetAddress := tsc_AnyUserId) return boolean + template (omit) charstring p_Condition, + XSD.AnyURI p_TargetAddress := px_XCAP_TargetUri) return boolean { var integer i; var RuleType v_Rule; @@ -659,7 +722,7 @@ module IMS_CC_SSXcapTestcases { v_Result := fl_ForwardingRuleset_CheckCondition(p_Ruleset, "not-registered"); } case (SS_CFNRc) { - v_Result := fl_ForwardingRuleset_CheckCondition(p_Ruleset, "not-reachable"); + v_Result := fl_ForwardingRuleset_CheckCondition(p_Ruleset, "not-reachable"); // @sic R5s141162 change 1 overruled by R5-145722 and R5s141350 sic@ } } return v_Result; @@ -681,7 +744,7 @@ module IMS_CC_SSXcapTestcases { var Allow v_Allow; for (i := 0; i < lengthof(p_Rule.actions.elem_list); i := i + 1) { - v_Bitstring := oct2bit(char2oct(p_Rule.actions.elem_list[i])); + v_Bitstring := oct2bit(char2oct(p_Rule.actions.elem_list[i])); // @sic R5s141351 change 2: char2oct instead of str2oct sic@ if (decvalue(v_Bitstring, v_Allow) == 0) { if (v_Allow == p_AllowValue) { return true; @@ -777,7 +840,8 @@ module IMS_CC_SSXcapTestcases { function fl_BarringRule_CheckOtherIdentity(RuleType p_Rule) return boolean { var XSD.String v_Element; - var template (present) XSD.String v_PatternTemplate := pattern ""; + var bitstring v_Bitstring; + var Other_identity v_Other_identity; var integer i; var integer k; @@ -786,7 +850,8 @@ module IMS_CC_SSXcapTestcases { if (ischosen(p_Rule.conditions.choice_list[i].elem_list)) { for (k := 0; k < lengthof(p_Rule.conditions.choice_list[i].elem_list); k := k + 1) { v_Element := p_Rule.conditions.choice_list[i].elem_list[k]; - if (match(v_Element, v_PatternTemplate)) { + v_Bitstring := oct2bit(char2oct(v_Element)); // @sic R5s141351 change 2: char2oct instead of str2oct sic@ + if (decvalue(v_Bitstring, v_Other_identity) == 0) { return true; } } @@ -799,12 +864,12 @@ module IMS_CC_SSXcapTestcases { /* * @desc check option 1 at step 2 for testcase 15.13 * @param p_Ruleset - * @param p_UserId (default value: tsc_AnyUserId) + * @param p_UserId (default value: px_XCAP_TargetUri) * @return boolean * @status APPROVED (IMS) */ function fl_IncomingCommunicationBarringExceptSpecificUser_CheckRuleset_Option1(Ruleset p_Ruleset, - XSD.AnyURI p_UserId := tsc_AnyUserId) return boolean + XSD.AnyURI p_UserId := px_XCAP_TargetUri) return boolean { var integer i; var RuleType v_Rule; @@ -821,12 +886,12 @@ module IMS_CC_SSXcapTestcases { /* * @desc check 1st rule of option 2 at step 2 for testcase 15.13 * @param p_Ruleset - * @param p_UserId (default value: tsc_AnyUserId) + * @param p_UserId (default value: px_XCAP_TargetUri) * @return boolean * @status APPROVED (IMS) */ function fl_IncomingCommunicationBarringExceptSpecificUser_CheckRuleset_Option2_Rule1(Ruleset p_Ruleset, - XSD.AnyURI p_UserId := tsc_AnyUserId) return boolean + XSD.AnyURI p_UserId := px_XCAP_TargetUri) return boolean { var integer i; var RuleType v_Rule; @@ -928,11 +993,13 @@ module IMS_CC_SSXcapTestcases { //============================================================================ /* * @desc preamble for XCAP test cases; returns XCAP user id (XUI) + * @param p_GbaRequested (default value: omit) * @return charstring * @status APPROVED (IMS) */ - function fl_XCAP_Preamble() runs on IMS_XCAP_PTC return charstring + function fl_XCAP_Preamble(boolean p_GbaRequested := false) runs on IMS_XCAP_PTC return charstring { + var HTTP_AuthenticationMethod_Type v_AuthenticationMethod := fl_HTTP_AuthenticationMethod(p_GbaRequested); var charstring v_XcapUserId; var charstring v_XcapUsername; @@ -954,7 +1021,7 @@ module IMS_CC_SSXcapTestcases { } - f_IMS_HTTP_Configure(v_XcapUserId, v_XcapUsername); + f_IMS_HTTP_Configure(v_AuthenticationMethod, v_XcapUserId, v_XcapUsername); return v_XcapUserId; } @@ -963,13 +1030,16 @@ module IMS_CC_SSXcapTestcases { /* * @desc common test body for XCAP test cases * @param p_SupplementaryService - * @param p_PublicUserIdentity + * @param p_TargetURI (default value: omit) + * @param p_AllowAndCheckRuleDeactivated (default value: false) * @status APPROVED (IMS) */ function fl_XCAP_SupplementaryService_CommonTestBody(SS_Type p_SupplementaryService, - charstring p_PublicUserIdentity) runs on IMS_XCAP_PTC - { - const boolean tsc_Activated := true; + template (omit) charstring p_TargetURI := omit, + boolean p_AllowAndCheckRuleDeactivated := false) runs on IMS_XCAP_PTC + { /* @sic R5-145720, R5-145721, R5-145722: new parameter p_AllowAndCheckRuleDeactivated sic@ */ + /* @sic R5s150244 change 2: p_PublicUserIdentity replace by template (omit) charstring p_TargetURI sic@ */ + /* @sic R5-151795: p_GbaRequested sic@ */ var float v_MaxDuration := 300.0; /* @sic R5s130794 change 21: increased to 300.0 sic@ */ var Simservs v_SimservsDocument; var SupplementaryServiceInfoList_Type v_ServiceList; @@ -979,16 +1049,20 @@ module IMS_CC_SSXcapTestcases { f_IMS_TestBody_Set(true); // Step 1 - Activate the service - f_UT_IMS_ActivateDeactivateSupplementaryService(MMI, true, p_PublicUserIdentity, p_SupplementaryService); + f_UT_IMS_ActivateDeactivateSupplementaryService(MMI, p_SupplementaryService, true, p_TargetURI); /* @sic R5s150244 change 2 sic@ */ // Step 2 - HTTP Request / Response exchange - f_IMS_HTTP_Transaction(initial, v_MaxDuration); + f_IMS_HTTP_Transaction(v_MaxDuration); v_SimservsDocument := f_IMS_XCAP_GetDocument(); v_ServiceList := fl_Simservs_GetSpecificService(v_SimservsDocument, p_SupplementaryService); - if (not fl_SupplementaryService_CheckActivated(v_ServiceList, tsc_Activated)) { + if (not fl_SupplementaryService_CheckActivated(v_ServiceList, ACTIVATED)) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2 - supplementary service is not activated"); } + if (p_AllowAndCheckRuleDeactivated and fl_SupplementaryService_CheckActivated(v_ServiceList, deACTIVATED)) { /* @sic R5-145720, R5-145721, R5-145722 sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2 - supplementary service is de-activated"); + } + // check ruleset for communication forwarding, communication barring select (p_SupplementaryService) { case (SS_CFU, @@ -1006,11 +1080,13 @@ module IMS_CC_SSXcapTestcases { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2 - supplementary service: invalid rule set for incoming communication barring"); } } - case (SS_BARRING_IN_AND_OUT_ROAM) { + case (SS_BIC_ROAM) { // @sic R5-153995 sic@ if (not fl_CommunicationBarringWhileRoaming_CheckRuleset(v_ServiceList[0].ruleset)) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2 - supplementary service: invalid rule set for incoming communication barring"); } - if (not fl_CommunicationBarringWhileRoaming_CheckRuleset(v_ServiceList[1].ruleset)) { + } + case (SS_BARRING_OUT_ROAM) { // @sic R5-153995 sic@ + if (not fl_CommunicationBarringWhileRoaming_CheckRuleset(v_ServiceList[0].ruleset)) { /* @sic R5-151166: outgoing communication barring re-introduced sic@ */ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2 - supplementary service: invalid rule set for outgoing communication barring"); } } @@ -1018,14 +1094,15 @@ module IMS_CC_SSXcapTestcases { f_IMS_PreliminaryPass(__FILE__, __LINE__, "Step 2"); // Step 3 - Deactivate the service - f_UT_IMS_ActivateDeactivateSupplementaryService(MMI, false, p_PublicUserIdentity, p_SupplementaryService); + f_UT_IMS_ActivateDeactivateSupplementaryService(MMI, p_SupplementaryService, false, p_TargetURI); /* @sic R5s150244 change 2 sic@ */ // Step 4 - f_IMS_HTTP_Transaction(subsequent, v_MaxDuration); + f_IMS_HTTP_Transaction(v_MaxDuration); v_SimservsDocument := f_IMS_XCAP_GetDocument(); v_ServiceList := fl_Simservs_GetSpecificService(v_SimservsDocument, p_SupplementaryService); - if (not fl_SupplementaryService_CheckActivated(v_ServiceList, not tsc_Activated)) { + if (not (fl_SupplementaryService_CheckActivated(v_ServiceList, notACTIVATED) or + p_AllowAndCheckRuleDeactivated and fl_SupplementaryService_CheckActivated(v_ServiceList, deACTIVATED))) { // @sic R5s141113 change 1; R5-145720, R5-145721, R5-145722 sic@ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 4 - supplementary service is still activated"); } f_IMS_PreliminaryPass(__FILE__, __LINE__, "Step 4"); @@ -1034,49 +1111,68 @@ module IMS_CC_SSXcapTestcases { } //============================================================================ - + /* + * @desc REFERENCE TS 34.229-1 clause 15.1 + * @status APPROVED (IMS) + */ function f_TC_15_1_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CLIP; + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); - - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService); /* @sic R5s150244 change 2 sic@ */ + + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } - + + /* + * @desc REFERENCE TS 34.229-1 clause 15.2 + * @status APPROVED (IMS) + */ function f_TC_15_2_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CLIR; + fl_XCAP_Preamble(); + // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } + /* + * @desc REFERENCE TS 34.229-1 clause 15.3 + * @status APPROVED (IMS) + */ function f_TC_15_3_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_COLP; + fl_XCAP_Preamble(); + // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } + /* + * @desc REFERENCE TS 34.229-1 clause 15.4 + * @status APPROVED (IMS) + */ function f_TC_15_4_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_TIR; + fl_XCAP_Preamble(); + // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } /* @@ -1085,13 +1181,15 @@ module IMS_CC_SSXcapTestcases { */ function f_TC_15_5_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CFU; + var boolean v_AllowAndCheckRuleDeactivated := true; /* @sic R5-145720 sic@ */ + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, px_XCAP_TargetUri, v_AllowAndCheckRuleDeactivated); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } /* @@ -1100,13 +1198,15 @@ module IMS_CC_SSXcapTestcases { */ function f_TC_15_7_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CFNRy; + var boolean v_AllowAndCheckRuleDeactivated := true; /* @sic R5-145720 sic@ */ + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, px_XCAP_TargetUri, v_AllowAndCheckRuleDeactivated); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } /* @@ -1115,24 +1215,31 @@ module IMS_CC_SSXcapTestcases { */ function f_TC_15_9_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CFB; + var boolean v_AllowAndCheckRuleDeactivated := true; /* @sic R5-145720 sic@ */ + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, px_XCAP_TargetUri, v_AllowAndCheckRuleDeactivated); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } + /* + * @desc REFERENCE TS 34.229-1 clause 15.10 + * @status APPROVED (IMS) + */ function f_TC_15_10_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CFNL; + fl_XCAP_Preamble(); + // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, px_XCAP_TargetUri); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } /* @@ -1141,45 +1248,77 @@ module IMS_CC_SSXcapTestcases { */ function f_TC_15_10a_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_CFNRc; + var boolean v_AllowAndCheckRuleDeactivated := true; /* @sic R5-145722 sic@ */ + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, px_XCAP_TargetUri, v_AllowAndCheckRuleDeactivated); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } + /* + * @desc REFERENCE TS 34.229-1 clause 15.13 + * @status APPROVED (IMS) + */ function f_TC_15_13_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); var SS_Type v_SupplementaryService := SS_BAIC_EXCEPT_SPECIFIC_USER; + fl_XCAP_Preamble(); + // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, px_XCAP_TargetUri); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } - - function f_TC_15_14_IMS() runs on IMS_XCAP_PTC + + /* + * @desc REFERENCE TS 34.229-1 clause 15.14a + * @status APPROVED (IMS) + */ + function f_TC_15_14a_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); - var SS_Type v_SupplementaryService := SS_BAIC_ANONYMOUS; + var SS_Type v_SupplementaryService := SS_BIC_ROAM; // @sic R5-153995 sic@ + var boolean v_AllowAndCheckRuleDeactivated := true; /* @sic R5-145721 sic@ */ + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, -, v_AllowAndCheckRuleDeactivated); /* @sic R5s150244 change 2 sic@ */ - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ } - - function f_TC_15_14a_IMS() runs on IMS_XCAP_PTC + + /* + * @desc REFERENCE TS 34.229-1 clause 15.14b + * @status + */ + function f_TC_15_14b_IMS() runs on IMS_XCAP_PTC { - var charstring v_XcapUserId := fl_XCAP_Preamble(); - var SS_Type v_SupplementaryService := SS_BARRING_IN_AND_OUT_ROAM; + var SS_Type v_SupplementaryService := SS_BARRING_OUT_ROAM; + var boolean v_AllowAndCheckRuleDeactivated := true; /* @sic R5-145721 sic@ */ + + fl_XCAP_Preamble(); // @siclog "Step 1 - 4" siclog@ - fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, v_XcapUserId); + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService, -, v_AllowAndCheckRuleDeactivated); /* @sic R5s150244 change 2 sic@ */ + + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); /* @sic R5s141051 change 10 sic@ */ + } - f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + function f_TC_15_29_IMS() runs on IMS_XCAP_PTC + { + var SS_Type v_SupplementaryService := SS_CLIP; + var boolean v_GbaRequested := true; + + fl_XCAP_Preamble(v_GbaRequested); + + // @siclog "Step 1 - 4" siclog@ + fl_XCAP_SupplementaryService_CommonTestBody(v_SupplementaryService); + + f_IMS_CC_Postamble(IPCAN_XCAP_Signalling); } } diff --git a/IMS_PART4_IWD_15wk38/IMS/15/IMS_ConferenceEventPackage.ttcn b/IMS_PART4_IWD_15wk38/IMS/15/IMS_ConferenceEventPackage.ttcn new file mode 100644 index 0000000..4b4189c --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/15/IMS_ConferenceEventPackage.ttcn @@ -0,0 +1,426 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ +/******************************************************************************/ + +module IMS_ConferenceEventPackage { + import from CommonDefs all; + import from IP_ASP_TypeDefs all; + import from LibSip_MessageBodyTypes all; + import from LibSip_SIPTypesAndValues all; + import from IMS_CommonDefs all; + import from IMS_Component all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_SIP_Templates all; + import from IMS_Procedures_Common all; + import from IMS_Procedures_CallControl all; + import from IMS_Procedures_Registration all; + import from urn_ietf_params_xml_ns_conference_info language "XSD" all; + import from IMS_CommonParameters all; + import from IMS_CC_Parameters all; + + //---------------------------------------------------------------------------- + + template (value) Media_type cs_Media(charstring p_Id, + charstring p_Type, + charstring p_Label, + charstring p_SsrcId) := + { /* @status APPROVED (IMS) */ + id := p_Id, + attr := omit, + display_text := omit, + type_ := p_Type, + label_ := p_Label, + src_id := p_SsrcId, + status := sendrecv, + elem_list := {} + }; + + const CharStringList_Type tsc_MediaTypeList_Audio := {"audio"}; /* @status APPROVED (IMS) */ + const CharStringList_Type tsc_MediaTypeList_AudioVideo := {"audio", "video"}; /* @status APPROVED (IMS) */ + + /* + * @desc media list used in NOTIFY acc. to A.5.3 + * @param p_MediaTypeList + * @param p_Version + * @param p_State + * @return template (value) Endpoint_type.media_list + * @status APPROVED (IMS) + */ + function fl_ConferenceInfo_MediaList(CharStringList_Type p_MediaTypeList, + integer p_Version, + State_type p_State) return template (value) Endpoint_type.media_list + { + var template (value) Endpoint_type.media_list v_MediaList := {}; + var charstring v_Id; + var charstring v_MediaType; + var integer v_Label; + var integer v_SsrcId; + var integer i; + + select (p_State) { // set Conference Data depending on the kind of notification (see RFC 4575) + case (full) { // state attribute (RFC 4575 cl. 5.2): "full" in case of initial notification + v_Label := 34567; // label (RFC 4575 cl. 5.8.3): value acc. to A.5.3 + } + case (partial) { // state attribute (RFC 4575 cl. 5.2): "full" in case of initial notification + v_Label := 11223 + p_Version - 1; /* label (RFC 4575 cl. 5.8.3): value acc. to C.19 for p_Version==1; !!!! PROSE ISSUE for p_Version > 1 !!!! + NOTE: acc. to RFC 4575 the label has to be unique */ + } + } + + for (i := 0; i < lengthof(p_MediaTypeList); i := i + 1) { + v_Id := int2str(i + 1); + v_MediaType := p_MediaTypeList[i]; + v_SsrcId := v_Label + 1; // src-id (RFC 4575 cl. 5.8.4): value arbitrarily selected + v_MediaList[i] := cs_Media(v_Id, v_MediaType, int2str(v_Label), int2str(v_SsrcId)); + v_Label := v_Label + 1; + } + + return v_MediaList; + } + + template (value) Endpoint_type cs_Endpoint(charstring p_EndPointEntity, + template (value) Endpoint_type.media_list p_MediaList) := + { /* @status APPROVED (IMS) */ + entity := p_EndPointEntity, + state := omit, + attr := omit, + display_text := omit, + referred := omit, + status := connected, // Endpoint_status_type status optional, + joining_method := dialed_in, // Joining_type joining_method optional, + joining_info := omit, // Execution_type joining_info optional, + disconnection_method := omit, // Disconnection_type disconnection_method optional, + disconnection_info := omit, // Execution_type disconnection_info optional, + media_list := p_MediaList, // record of Media_type media_list, + call_info := omit, // Call_type call_info optional, + elem_list := {} + }; + + template (value) Conference_type cs_XmlBody_ConfInfo(charstring p_ConferenceUri, // conference URI: SIP URI that an interested entity needs to SUBSCRIBE to in order to get the conference package information (RFC 4575 clause 5.2) + charstring p_UserEntity, // URI for the user in the conference: corresponds to the call signaling authenticated identity of the participant (RFC 4575 clause 5.6) + charstring p_EndPointEntity, // 'entity' key: e.g. User's contact URI (RFC 4575 clause 5.7) + CharStringList_Type p_MediaTypeList, + integer p_Version, + State_type p_State) := + { /* acc. to RFC 4575 clause 5.2 */ + /* @status APPROVED (IMS) */ + entity := p_ConferenceUri, // XSD.AnyURI entity, + state := p_State, // state_type state optional, + version := p_Version, // XSD.UnsignedInt version optional, + attr := omit, // record (1..infinity) of XSD.String attr optional, + conference_description := omit, // Conference_description_type conference_description optional, + host_info := omit, // optional, + conference_state := omit, // Conference_state_type conference_state optional, + users := { // RFC 4575 clause 5.6 + state := omit, + attr := omit, + user_list := { + { + entity := p_UserEntity, + state := omit, + attr := omit, + display_text := omit, + associated_aors := omit, + roles := omit, + languages := omit, + cascaded_focus := omit, + endpoint_list := {cs_Endpoint(p_EndPointEntity, fl_ConferenceInfo_MediaList(p_MediaTypeList, p_Version, p_State))}, + elem_list := {} + } + }, + elem_list := {} + }, + sidebars_by_ref := omit, // Uris_type sidebars_by_ref optional, + sidebars_by_val := omit, // Sidebars_by_val_type sidebars_by_val optional, + elem_list := {} // record of XSD.String elem_list + }; + + template (value) MessageBody cs_MessageBody_Conference(template (value) Conference_type p_Conference) := + { /* @status APPROVED (IMS) */ + xmlBody := oct2char(bit2oct(encvalue(p_Conference))) + }; + + //============================================================================ + // Subscribtion to conference event package + //---------------------------------------------------------------------------- + /* + * @desc SUBSCRIBE acc. to 34.229 A.5.1 to be used in C.10 + * @param p_SubscribeCreatingDialog + * @param p_RequestUri + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) + * @return template (present) MessageHeader + * @status APPROVED (IMS) + */ + function fl_ConferenceEventPackage_SubscribeRequest_MessageHeaderRX(boolean p_SubscribeCreatingDialog, + template (present) SipUrl p_RequestUri, + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) + runs on IMS_PTC return template (present) MessageHeader + { /* @sic R5-153986: function has been reviewed to be strictly according to the prose sic@ */ + /* acc. to RFC 3265 a SUBSCRIBE creates a new dialog or it is sent on a pre-existing dialog */ + var boolean v_IsGiba := f_IMS_PTC_SecurityScheme_IsGiba(); // => A1/A2 + var template (present) MessageHeader v_MessageHeader_Subscribe := cr_MessageHeader_Dummy; + var template (present) PAccessNetworkInfo v_PAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); + var template (present) SipUrl v_SipUrlFrom := ?; + var template (present) RouteBody_List v_RouteBodyList; + var template (present) From v_From; + var template (present) To v_To; + var template SessionId v_SessionId; + var template (present) CallId v_CallId; + var template (present) integer v_Port_us := ?; + var template integer v_Port_ps := *; + var IMS_ProtectedPorts_Type v_Protected; + + if (v_IsGiba) { + v_MessageHeader_Subscribe.require := omit; + v_MessageHeader_Subscribe.proxyRequire := omit; + v_MessageHeader_Subscribe.securityVerify := omit; + v_MessageHeader_Subscribe.pAccessNetworkInfo := v_PAccessNetworkInfo ifpresent; + } + else { + v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); + v_Port_us := v_Protected.Port_us; + v_Port_ps := v_Protected.Port_ps; + v_MessageHeader_Subscribe.require := cr_RequireSecAgree; + v_MessageHeader_Subscribe.proxyRequire := cr_ProxyRequireDef; + v_MessageHeader_Subscribe.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); + v_MessageHeader_Subscribe.pAccessNetworkInfo := v_PAccessNetworkInfo + } + + if (p_SubscribeCreatingDialog) { /* @sic R5-153986 sic@ */ + v_RouteBodyList := { // same as in REFER + cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)), + cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)) + }; + v_From := cr_From(*, v_SipUrlFrom); + v_To := cr_ToDef(p_RequestUri); + v_CallId := cr_CallId(?); + v_SessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); + } + else { + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(); // !!!! PROSE ISSUE !!!! + v_From := f_IMS_RequestInDialog_FromHeaderRX(); // !!!! PROSE ISSUE !!!! + v_To := f_IMS_RequestInDialog_ToHeaderRX(); // !!!! PROSE ISSUE !!!! + v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); // !!!! PROSE ISSUE !!!! + v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); // !!!! PROSE ISSUE !!!! + } + v_MessageHeader_Subscribe.via := f_IMS_InviteRequest_ViaRX(?); /* same as for INVITE; but p_Port_us is mandatory + @sic R5-153986: common review of implementation sic@ */ + v_MessageHeader_Subscribe.route := cr_Route(v_RouteBodyList); + v_MessageHeader_Subscribe.toField := v_To; + v_MessageHeader_Subscribe.fromField := v_From; + v_MessageHeader_Subscribe.callId := v_CallId; + v_MessageHeader_Subscribe.sessionId := v_SessionId; + v_MessageHeader_Subscribe.cSeq := cr_CseqDef(?, "SUBSCRIBE"); + v_MessageHeader_Subscribe.expires := cr_Expires(?); + v_MessageHeader_Subscribe.maxForwards := cr_MaxForwardsDef; + v_MessageHeader_Subscribe.event := cr_EventDef("conference"); + v_MessageHeader_Subscribe.accept := cr_AcceptDef("application/conference-info+xml"); + + v_MessageHeader_Subscribe.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ + + return v_MessageHeader_Subscribe; + } + + //---------------------------------------------------------------------------- + /* + * @desc UE subscribes to conference event package acc. to 34.229-1 A.5.1 and A.5.2 + * @param p_IMS_SUBSCRIBE_REQ (by reference) + * @param p_SubscribeCreatingDialog + * @param p_ConferenceUri + * @status APPROVED (IMS) + */ + altstep a_ConferenceEventPackage_ReceiveSubscribeA51SendOK(out IMS_DATA_REQ p_IMS_SUBSCRIBE_REQ, + boolean p_SubscribeCreatingDialog, + charstring p_ConferenceUri) runs on IMS_PTC + { /* @sic R5-153986: new parameter p_SubscribeCreatingDialog sic@ */ + var template (present) SipUrl v_ConferenceSipUrlRX := f_SIP_BuildSipUri_RX(p_ConferenceUri); + var template (present) MessageHeader v_MessageHeader_Subscribe := fl_ConferenceEventPackage_SubscribeRequest_MessageHeaderRX(p_SubscribeCreatingDialog, v_ConferenceSipUrlRX); + var MessageHeader v_MessageHeader_SubscribeValue; + var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ; + var charstring v_ContactHostname; + var integer v_CSeqValue; + var charstring v_ToTag; + + [] IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(v_ConferenceSipUrlRX, v_MessageHeader_Subscribe))) -> value v_IMS_SUBSCRIBE_REQ + { + if (not isvalue(v_ConferenceSipUrlRX.components.sip.hostPort.host)) { + FatalError(__FILE__, __LINE__, "invalid conference uri"); + } + v_MessageHeader_SubscribeValue := v_IMS_SUBSCRIBE_REQ.Request.Subscribe.msgHeader; + + f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader_SubscribeValue, v_IMS_SUBSCRIBE_REQ.RoutingInfo.Protocol); + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader_SubscribeValue); + + if (p_SubscribeCreatingDialog) { /* @sic R5-153986 sic@ */ + f_IMS_MessageHeader_CheckTo(v_MessageHeader_SubscribeValue, noToTag); + v_ToTag := f_IMS_GenerateTag("SUBSCRIBE-to-conference-package"); + f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_MessageHeader_SubscribeValue, confEventDialog); + f_IMS_PTC_ImsInfo_DialogSetLocalTag(v_ToTag, confEventDialog); + } else { + v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote); /* => get next CSeq value; CSeq gets incremented for the remote (UE) side of the current dialog */ + f_IMS_MessageHeader_CheckCSeq(v_MessageHeader_SubscribeValue, v_CSeqValue); + f_IMS_MessageHeader_CheckTo(v_MessageHeader_SubscribeValue, dialogToTag); + } + v_ContactHostname := valueof(v_ConferenceSipUrlRX.components.sip.hostPort.host); + f_IMS_SUBSCRIBE_Response(confEventDialog, v_IMS_SUBSCRIBE_REQ, "7200", v_ContactHostname); + + p_IMS_SUBSCRIBE_REQ := v_IMS_SUBSCRIBE_REQ; // return message by ref + } + } + + //============================================================================ + // notifications of conference event package + //---------------------------------------------------------------------------- + /* + * @desc Prepare NOTIFY header according. to 34.229-1 Annex A.5.3 + * @param p_DialogIndex + * @param p_ConferenceUri + * @param p_SubscriptionState + * @return template (value) MessageHeader + * @status APPROVED (IMS) + */ + function f_IMS_NotifyRequest_MessageHeader_A53(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit, + charstring p_ConferenceUri, + template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader + { /* @sic R5-153986: dialog needs to be considered sic@ */ + /* @sic R5-153756, R5-153986: use of f_IMS_NotifyRequest_MessageHeader_Common sic@ */ + + var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); + var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, px_IMS_Scscf}; + var template (value) Via v_Via := f_IMS_NotifyRequest_ViaTX(v_ViaAddressList); /* @sic R5-153986: new function f_IMS_NotifyRequest_ViaTX sic@ */ + var template (value) SipUrl v_ContactSipUrl := f_SIP_BuildSipUri_TX(p_ConferenceUri); + var template (value) ContentType v_ContentType := cs_ContentType("application/conference-info+xml"); + + return f_IMS_NotifyRequest_MessageHeader_Common(p_DialogIndex, v_Via, v_ContactSipUrl, "conference", p_SubscriptionState, v_ContentType); + } + + /* + * @desc send NOTIFY acc. to A.5.3 + * @param p_SubscribeRequest + * @param p_Protocol + * @param p_FinalConferenceUri + * @param p_ParticipantUri + * @param p_ParticipantContactUri + * @param p_MediaTypeList (default value: {"audio"}) + * @param p_Version (default value: 0) + * @param p_State (default value: full) + * @param p_SubscribeCreatingDialog (default value: pc_SubscribeConferenceEvent_OutsideINVITEDialog) + * @return MessageHeader + * @status APPROVED (IMS) + */ + function f_IMS_ConferenceEventPackage_SendNotify(SUBSCRIBE_Request p_SubscribeRequest, + InternetProtocol_Type p_Protocol, + charstring p_FinalConferenceUri, + charstring p_ParticipantUri, + charstring p_ParticipantContactUri, + CharStringList_Type p_MediaTypeList := {"audio"}, + integer p_Version := 0, + State_type p_State := full, + boolean p_SubscribeCreatingDialog := pc_SubscribeConferenceEvent_OutsideINVITEDialog) + runs on IMS_PTC return MessageHeader + { /* PROSE ISSUE: prose specifies hard-coded value for the label of the NOTIFY's message body but it seems that the label shall be different for different users (-> RFC 4575 clause 5.8.3) + => parameter p_Version is used to increment the version for each notification and also to generate distinct labels to distinguish subsequent users joining the conference call */ + /* @sic R5-153986: new parameter p_SubscribeCreatingDialog sic@ */ + var template (value) MessageHeader v_MessageHeader_Notify; + var template (value) Conference_type v_ConferenceBody; + var template (value) SubscriptionState v_SubscriptionState := cs_SubscriptionState_Active("7200"); + var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_SubscribeRequest.msgHeader); + var template (omit) IMS_PTC_DialogIndex_Type v_DialogIndex; + var integer v_CseqValue; + + if (p_SubscribeCreatingDialog) { /* @sic R5-153986 sic@ */ + v_DialogIndex := confEventDialog; /* separate dialog for conf event package */ + } else { + v_DialogIndex := omit; /* the NOTIFY shall be sent on the current dialog what is in general the dialog created by C.10 */ + } + v_CseqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal); + v_ConferenceBody := cs_XmlBody_ConfInfo(p_FinalConferenceUri, p_ParticipantUri, p_ParticipantContactUri, p_MediaTypeList, p_Version, p_State); + + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A53(v_DialogIndex, p_FinalConferenceUri, v_SubscriptionState); + IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(p_Protocol), cs_NOTIFY_Request(v_ContactUrl, v_MessageHeader_Notify, cs_MessageBody_Conference(v_ConferenceBody)))); + + return valueof(v_MessageHeader_Notify); + } + + //============================================================================ + // subscribe and inital notification for conference event package + //---------------------------------------------------------------------------- + + type enumerated ConferenceEventPackage_SubscribeState_Type {notSubscribed, subscribeWaitFor200OK, subscribed}; /* @status APPROVED (IMS) */ + + type record ConferenceEventPackage_SubscribeInfo_Type { /* @status APPROVED (IMS) */ + ConferenceEventPackage_SubscribeState_Type State, + SUBSCRIBE_Request SubscribeRequest optional, + MessageHeader HeaderInitialNotify optional + }; + + template (value) ConferenceEventPackage_SubscribeInfo_Type cs_ConferenceEventPackage_SubscribeInfo_Init := + { /* @status APPROVED (IMS) */ + State := notSubscribed, + SubscribeRequest := omit, + HeaderInitialNotify := omit + }; + + /* + * @desc return true when subscription to conference event package is started but still ongoing + * @param p_SubscribeInfo + * @return boolean + */ + function f_ConferenceEventPackage_SubscriptionOngoing(ConferenceEventPackage_SubscribeInfo_Type p_SubscribeInfo) return boolean + { + return (isvalue(p_SubscribeInfo.SubscribeRequest) and (p_SubscribeInfo.State != subscribed)); + } + + /* + * @desc UE subscribes to conference event package acc. to steps 10 .. 13 of C.10/38 + * @param p_SubscribeInfo (by reference) + * @param p_FinalConferenceUri + * @param p_SubscribeCreatingDialog (default value: pc_SubscribeConferenceEvent_OutsideINVITEDialog) + * @status APPROVED (IMS) + */ + altstep a_ConferenceEventPackage_Subscribe(inout ConferenceEventPackage_SubscribeInfo_Type p_SubscribeInfo, + charstring p_FinalConferenceUri, + boolean p_SubscribeCreatingDialog := pc_SubscribeConferenceEvent_OutsideINVITEDialog) runs on IMS_PTC + { /* @sic R5-153986: new parameter p_SubscribeCreatingDialog sic@ */ + var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ_ByRef; + var ConferenceEventPackage_SubscribeState_Type v_State := p_SubscribeInfo.State; + var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + var MessageHeader v_MessageHeader_Subscribe; + var SipUrl v_ContactUri; + var SipUrl v_FromUri; + var charstring v_ParticipantUri; + var charstring v_ParticipantContactUri; + + [v_State == notSubscribed] a_ConferenceEventPackage_ReceiveSubscribeA51SendOK(v_IMS_SUBSCRIBE_REQ_ByRef, p_SubscribeCreatingDialog, p_FinalConferenceUri) { + + p_SubscribeInfo.SubscribeRequest := v_IMS_SUBSCRIBE_REQ_ByRef.Request.Subscribe; + v_MessageHeader_Subscribe := p_SubscribeInfo.SubscribeRequest.msgHeader; + v_FromUri := f_Addr_Union_GetSipUrl(v_MessageHeader_Subscribe.fromField.addressField); + v_ContactUri := f_MessageHeader_GetContactSipUrl(v_MessageHeader_Subscribe); + v_ParticipantUri := f_SIP_SipUrl_GetPublicUserIdentity(v_FromUri); + v_ParticipantContactUri := f_SIP_SipUrl_GetPublicUserIdentity(v_ContactUri); + + p_SubscribeInfo.HeaderInitialNotify := f_IMS_ConferenceEventPackage_SendNotify(p_SubscribeInfo.SubscribeRequest, + v_Protocol, + p_FinalConferenceUri, + v_ParticipantUri, + v_ParticipantContactUri); + p_SubscribeInfo.State := subscribeWaitFor200OK; + + } + [v_State == subscribeWaitFor200OK] a_IMS_ReceiveResponse200OK(p_SubscribeInfo.HeaderInitialNotify, v_Protocol) { + p_SubscribeInfo.HeaderInitialNotify := omit; // for completeness + p_SubscribeInfo.State := subscribed; // => no further message will be handled by this altstep + } + } + +} diff --git a/IMS_PART4_IWD_14wk37/IMS/16/IMS_CC_CodecSelecting.ttcn b/IMS_PART4_IWD_15wk38/IMS/16/IMS_CC_CodecSelecting.ttcn similarity index 83% rename from IMS_PART4_IWD_14wk37/IMS/16/IMS_CC_CodecSelecting.ttcn rename to IMS_PART4_IWD_15wk38/IMS/16/IMS_CC_CodecSelecting.ttcn index 1799e3e..ba7ca60 100644 --- a/IMS_PART4_IWD_14wk37/IMS/16/IMS_CC_CodecSelecting.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/16/IMS_CC_CodecSelecting.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-25 13:04:25 +0200 (Mon, 25 Aug 2014) $ -// $Rev: 11894 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_CC_CodecSelecting { @@ -47,36 +47,24 @@ module IMS_CC_CodecSelecting { return template (value) SDP_Message { /* @sic R5w140113, R5w140009: enhanced SDP type definitions sic@ */ /* @sic R5-144700: new parameter p_BandwidthAS sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var charstring v_IPAddrConnection := v_IPAddrOrigin; - var template (value) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrConnection); - var template (omit) SDP_connection v_SDP_ConnectionInSession := omit; - var template (omit) SDP_connection_list v_SDP_ConnectionInMediaList := omit; - var template (omit) SDP_attribute_list v_SDP_Attribute_List := p_SDP_RtpmapFmtpAttribs; - var template (value) SDP_media_desc v_SDP_Media_Desc; + /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes; + var template (value) SDP_bandwidth_list v_MediaBandwidth_List := cs_SDP_Bandwidth_List_Media(p_BandwidthAS, 0, 2000); // further media attributes: - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_ptime); // "20" per default - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_maxptime); // "240" per default + v_SDP_MediaAttributes := p_SDP_RtpmapFmtpAttribs; + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_ptime); // "20" per default + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_maxptime); // "240" per default // precondition attributes: - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_curr_qos(c_local, c_sendrecv)); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_curr_qos(c_remote, c_none)); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_des_qos(c_mandatory, c_local)); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_des_qos(c_optional, c_remote)); - - if (p_ConnectionInSessionDesc) { - v_SDP_ConnectionInSession := v_SDP_Connection; - } else { - v_SDP_ConnectionInMediaList := { v_SDP_Connection }; + v_SDP_PrecondionAttributes := { + cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), + cs_SDP_Attribute_curr_qos(c_remote, c_none), + cs_SDP_Attribute_des_qos(c_mandatory, c_local), + cs_SDP_Attribute_des_qos(c_optional, c_remote) } - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_MultiAudio(p_Fmts), - cs_SDP_Bandwidth_List_Media(p_BandwidthAS, 0, 2000), - v_SDP_Attribute_List, - v_SDP_ConnectionInMediaList); - - return cs_SDP_Message_Def(cs_SDP_Origin(-, -, v_AddrType, v_IPAddrOrigin), v_SDP_ConnectionInSession, -, p_BandwidthAS, v_SDP_Media_Desc); + return f_IMS_BuildSDP_TX(cs_SDP_Media_MultiAudio(p_Fmts), v_MediaBandwidth_List, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes, -, p_ConnectionInSessionDesc); } /* @@ -136,32 +124,20 @@ module IMS_CC_CodecSelecting { */ function f_IMS_BuildSDP_16_X_RX(template (present) SDP_attribute_rtpmap_codec p_RtpmapCodec, template (present) SemicolonParam_List p_MediaFormatParameters := {*}, - template (present) charstring p_Direction_curr_qos_local) runs on IMS_PTC + template (present) charstring p_Direction_curr_qos_local) + runs on IMS_PTC return template (present) SDP_Message { // @sic R5-134233 has been withdrawn => p_MediaFormatParameters := {"*"} sic@ /* @sic R5w140113, R5w140009: enhanced SDP type definitions sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; + /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_Def sic@ */ - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { cr_SDP_Attribute_rtpmap(-, p_RtpmapCodec), - cr_SDP_Attribute_fmtp(-, cr_Fmtp_ParamList(p_MediaFormatParameters)), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, p_Direction_curr_qos_local), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), // @sic R5s120530 change 3.4 sic@ - * + cr_SDP_Attribute_fmtp(-, cr_Fmtp_ParamList(p_MediaFormatParameters)) }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(p_Direction_curr_qos_local, c_sendrecv, c_mandatory, c_mandatory); - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); + return f_IMS_BuildSDP_RX(-, cr_SDP_Media_Audio, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); } /****************************************************************************/ @@ -237,6 +213,7 @@ module IMS_CC_CodecSelecting { v_Response := v_IMS_DATA_RSP.Response; v_MessageHeader := v_IMS_DATA_RSP.Response.msgHeader; f_IMS_Dialog_SetRemoteTag(v_MessageHeader); + f_IMS_MessageHeader_Response_CheckRecordRoute(v_MessageHeader); /* @sic R5s150039 Change 6 sic@ */ f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) } [] t_Timer.timeout @@ -281,11 +258,17 @@ module IMS_CC_CodecSelecting { // @siclog "Step 5 - 6" siclog@ if (isbound(v_Response180)) { - f_IMS_MessageHeader_CheckContactAddr(v_Response180.msgHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) + f_IMS_MessageHeader_Response_CheckRecordRoute(v_MessageHeader); /* @sic R5s150039 Change 6 sic@ */ + f_IMS_MessageHeader_CheckContactAddr(v_Response180.msgHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) if (not isbound(v_Response183)) { f_IMS_Dialog_SetRemoteTag(v_Response180.msgHeader); } if (ispresent(v_Response180.messageBody)) { + + if (isbound(v_Response183)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "message body shall only be present in 180 response when there has been no 183 response"); // @sic R5-145728 sic@ + } + v_SDP_Message180 := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_Response180.messageBody, p_SDP_Message_180or200); } if (f_MessageHeader_CheckRequire(v_Response180.msgHeader, c_tag100rel)) { @@ -352,7 +335,7 @@ module IMS_CC_CodecSelecting { f_IMS_TestBody_Set(true); v_SDP_Message_Invite := fl_IMS_BuildSDP_16_3and4_Step1(v_BandwidthAS); - v_SDP_Message_183 := f_IMS_BuildSDP_16_X_RX(cr_RTPMAP_AMR_16000, -, (c_none, c_sendrecv)); + v_SDP_Message_183 := f_IMS_BuildSDP_16_X_RX(cr_RTPMAP_AMR_16000, -, c_none); /* @sic R5-145728 sic@ */ v_SDP_Message_180or200 := f_IMS_BuildSDP_16_X_RX(cr_RTPMAP_AMR_16000, -, c_sendrecv); fl_TC_16_X_CommonProcedure(v_SDP_Message_Invite, v_SDP_Message_183, v_SDP_Message_180or200); @@ -384,7 +367,7 @@ module IMS_CC_CodecSelecting { f_IMS_TestBody_Set(true); v_SDP_Message_Invite := fl_IMS_BuildSDP_16_3and4_Step1(v_BandwidthAS, v_SemicolonParam_List_ModeSet1, v_SemicolonParam_List_ModeSet2, v_ConnectionInSessionDesc); - v_SDP_Message_183 := f_IMS_BuildSDP_16_X_RX(cr_RTPMAP_AMR_16000, v_MediaFormatParametersRX, (c_none, c_sendrecv)); + v_SDP_Message_183 := f_IMS_BuildSDP_16_X_RX(cr_RTPMAP_AMR_16000, v_MediaFormatParametersRX, c_none); /* @sic R5-145728 sic@ */ v_SDP_Message_180or200 := f_IMS_BuildSDP_16_X_RX(cr_RTPMAP_AMR_16000, v_MediaFormatParametersRX, c_sendrecv); fl_TC_16_X_CommonProcedure(v_SDP_Message_Invite, v_SDP_Message_183, v_SDP_Message_180or200); diff --git a/IMS_PART4_IWD_15wk38/IMS/17/IMS_CC_MediaTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/17/IMS_CC_MediaTestcases.ttcn new file mode 100644 index 0000000..1982878 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/17/IMS_CC_MediaTestcases.ttcn @@ -0,0 +1,256 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ +/******************************************************************************/ +module IMS_CC_MediaTestcases { + + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from IP_ASP_TypeDefs all; + import from IMS_Component all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_CommonParameters all; + import from IMS_SIP_Templates all; + import from IMS_MessageBody_Templates all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_SDP_MessagesVideo all; + import from IMS_CC_CommonFunctions all; + import from IMS_Procedures_CallControl all; + import from IMS_Procedures_Video all; + import from IMS_PTC_CoordMsg all; + import from IMS_CC_IPCAN_Coordination all; + import from UpperTesterFunctions all; + import from IMS_CommonFunctions all; + import from IMS_Procedures_Common all; + + /****************************************************************************/ + + function f_IMS_MOCall_ReleaseVideo_ReceiveInvite(charstring p_FmtAudio, + charstring p_FmtVideo) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { + var IMS_DATA_REQ v_IMS_INVITE_REQ; + var SDP_Message v_SDP_Message; + var boolean v_A11 := pc_IMS_Video_FeatureTag; + var boolean v_A12 := false; // as we have video but not voice + + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(p_FmtAudio, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(p_FmtAudio) + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + cr_SDP_Attribute_rtpmap(p_FmtVideo, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(p_FmtVideo) + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_optional); + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_optional, c_mandatory); + + var template (present) SDP_Message v_SDP_MessageTemplate := f_IMS_BuildSDP_AudioVideo_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media(c_video, 0, c_rtpAvp, cr_SDP_FmtList_AtLeastOne(p_FmtVideo)), /* port number == 0 => release video stream */ + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + + v_IMS_INVITE_REQ := f_IMS_INVITE_ReceiveRequest(A_2_1_A5, tsc_OptionTagList_precondition, -, -, -, -, v_A11, v_A12); + v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_IMS_INVITE_REQ.Request.Invite.messageBody, v_SDP_MessageTemplate); + + return f_IMS_InviteRequestWithSdpMO(v_IMS_INVITE_REQ, v_SDP_Message); + } + + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 17.1 + */ + function f_TC_17_1_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var INVITE_Request v_InviteRequest; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var MessageHeader v_MessageHeader_Response183; + var template (value) MessageHeader v_MessageHeader_Response; + var template (present) MessageHeader v_MessageHeader_Request; + var SDP_Message v_SDP_LatestOffer; + var charstring v_FmtAudio; + var charstring v_FmtVideo; + var template (present) SipUrl v_CalleeContactUri; + var charstring v_CallIdentification; + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + // setup MO speech call + v_CallIdentification := f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); + f_IMS_CC_MO_SpeechCall_Signalling(); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1" siclog@ + f_UT_AddVideoToIMSCall(MMI, v_CallIdentification); + + // @siclog "Step 2" siclog@ + v_InviteRequestWithSdp := f_IMS_MOCallSetup_Video_Step2(AddVideo); + + // @siclog "Step 3 - 4" siclog@ + v_MessageHeader_Response183 := f_IMS_MOCallSetup_Video_Step3_4(AddVideo, v_InviteRequestWithSdp); + + f_IMS_IPCAN_StartProcedure(IPCAN, IPCAN_MO_AddVideo); + + // @siclog "Step 5 - 8" siclog@ + v_SDP_LatestOffer := f_IMS_MOCallSetup_Video_Steps5_8(AddVideo, v_InviteRequestWithSdp, v_MessageHeader_Response183); + + // @siclog "Step 9 - 10" siclog@ + f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); // Wait for trigger from IPCAN to ensure that radio resources have really been established + + // @siclog "Step 10a" siclog@ + f_UT_IMS_RemoveVideoMedia(MMI, v_CallIdentification); + + // @siclog "Step 11" siclog@ + v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_InviteRequestWithSdp.SdpOffer.media_list[0]); + v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(v_InviteRequestWithSdp.SdpOffer.media_list[1]); + v_InviteRequestWithSdp := f_IMS_MOCall_ReleaseVideo_ReceiveInvite(v_FmtAudio, v_FmtVideo); + v_InviteRequest := v_InviteRequestWithSdp.Invite; + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); + + // @siclog "Step 12" siclog@ + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); + + // @siclog "Step 12a" siclog@ + f_IMS_IPCAN_StartProcedure(IPCAN, IPCAN_ReleaseVideo); + + // @siclog "Step 13" siclog@ + v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_Response))); + + // @siclog "Step 14" siclog@ + v_MessageHeader_Request := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + v_CalleeContactUri := f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactUri, v_MessageHeader_Request))); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); // Wait for trigger from IPCAN to ensure that radio resources have been released + + // @siclog "Step 15 - 16" siclog@ + f_IMS_CallReleaseMO(v_InviteRequest); + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + + /****************************************************************************/ + /* + * @desc REFERENCE TS 34.229-1 clause 17.2 + */ + function f_TC_17_2_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var IMS_ResponseWithSdp_Type v_ResponseWithSdp; + var IMS_Response_Type v_SessionInProgress183; + var template (value) INVITE_Request v_InviteRequest; + var template (value) SDP_Message v_Tx_SDP; + var template (present) SDP_Message v_Rx_SDP; + var template (value) MessageHeader v_MessageHeader_Invite; + var template (value) MessageHeader v_MessageHeader_Update; + var template (value) MessageHeader v_MessageHeader_Ack; + var template (present) MessageHeader v_MessageHeader_Response; + var template (omit) SDP_attribute v_SDP_Attribute; + var SipUrl v_ContactUrl; + var charstring v_FmtAudio := tsc_SDP_FmtAudio; + var charstring v_FmtVideo := tsc_SDP_FmtVideo; + var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + var IMS_DATA_RSP v_IMS_DATA_RSP; + + // preamble MT speech call setup + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + f_IMS_CC_StartCall(IPCAN_MT_SpeechCall); + + // Steps 1 to 4 as defined in Annex C.11 + v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); + v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); + v_SessionInProgress183 := v_ResponseWithSdp.Response; + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); + // Establish Dedicated EPS bearer + // See TS. 36.508 EUTRA/EPS signalling for IMS MT speech call Table 4.5A.7.3-1 Step 9-12 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MT_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + // Steps 5 to 13 as defined in Annex C.11 + f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdp, v_ResponseWithSdp); + + // MT Call is now established + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1" siclog@ + // Step 1 SS sends re-INVITE with second SDP offer to add video. + v_InviteRequestWithSdp := f_IMS_MTCallSetup_Video_SendInvite(AddVideo, Invite, v_FmtAudio, v_FmtVideo, v_ContactUrl); + v_InviteRequest := v_InviteRequestWithSdp.Invite; + + // @siclog "Step 2: Void" siclog@ + + // @siclog "Step 3" siclog@ + v_ResponseWithSdp := f_IMS_MTCallSetup_Video_Receive183(AddVideo, v_InviteRequestWithSdp, v_FmtAudio, v_FmtVideo); + v_SessionInProgress183 := v_ResponseWithSdp.Response; + + f_IMS_IPCAN_StartProcedure(IPCAN, IPCAN_MT_AddVideo); + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // @siclog "Step 4 - 5" siclog@ + f_IMS_MTCallSetup_SendPRACK_ReceiveOK(v_InviteRequest, v_SessionInProgress183.msgHeader); + + // @siclog "Step 6" siclog@ + v_SDP_Attribute := f_SDP_AttributeList_GetAttribute(v_ResponseWithSdp.SdpMessage.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, ?)); + v_Tx_SDP := f_IMS_BuildSDP_MTCallAudioVideo_TX(AddVideo, Update, v_FmtAudio, v_FmtVideo, valueof(v_SDP_Attribute.curr.direction)); + v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderTX(v_InviteRequest); + IMS_Client.send(cas_IMS_Update_Request(cs_IMS_RoutingInfo(v_Protocol), cs_UPDATE_Request(v_ContactUrl, v_MessageHeader_Update, cs_MessageBody_SDP(v_Tx_SDP)))); + + // @siclog "Step 7" siclog@ + v_Rx_SDP := f_IMS_BuildSDP_MTCallAudioVideo_RX(AddVideo, Response200, v_FmtAudio, v_FmtVideo); + v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Update, cs_ContentTypeSDP); + v_IMS_DATA_RSP := f_IMS_ReceiveResponse(v_MessageHeader_Update, v_Protocol, cr_Response(c_statusLine200, v_MessageHeader_Response, cr_MessageBody_SDP)); + f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_IMS_DATA_RSP.Response.messageBody, v_Rx_SDP); + + // @siclog "Step 7A" siclog@ + // Step 7A Make UE accept the speech and video offer. + f_UT_AnswerCall(MMI); + + // @siclog "Step 8 - 9" siclog@ + // Step 8 The UE responds to the re-INVITE with a 200 OK final response. + // Step 9 The SS acknowledges the receipt of 200 OK for the re-INVITE. + f_IMS_MTCallSetup_Common_Steps12_13(v_InviteRequestWithSdp); + + // @siclog "Step 10" siclog@ + // Step 10 SS sends a re-INVITE with a SDP offer indicating that the video component is removed from the call + v_InviteRequestWithSdp := f_IMS_MTCallSetup_Video_SendInvite(AddVideo, InviteRemoveVideo, v_FmtAudio, v_FmtVideo, v_ContactUrl); + + // @siclog "Step 11" siclog@ + v_MessageHeader_Invite := v_InviteRequestWithSdp.Invite.msgHeader; + v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Invite); + f_IMS_ReceiveResponse(v_MessageHeader_Invite, v_InviteRequestWithSdp.RoutingInfo.Protocol, cr_Response(c_statusLine200, v_MessageHeader_Response)); + + // @siclog "Step 11a" siclog@ + f_IMS_IPCAN_StartProcedure(IPCAN, IPCAN_ReleaseVideo); + + // @siclog "Step 12" siclog@ + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderTX(v_InviteRequestWithSdp.Invite); + IMS_Client.send(cas_IMS_Ack_Request(cs_IMS_RoutingInfo(v_InviteRequestWithSdp.RoutingInfo.Protocol), cs_ACK_Request(v_ContactUrl, v_MessageHeader_Ack))); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); // Wait for trigger from IPCAN to ensure that radio resources have been released + + // Step 13 void // @sic R5-134646 sic@ + // Step 14 and 15. SS sends BYE to release the call; UE sends 200 OK for the BYE request and ends the call + f_IMS_CallReleaseMT(v_InviteRequest, v_ContactUrl); + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MT_SpeechCall); + } + +} diff --git a/IMS_PART4_IWD_15wk38/IMS/18/IMS_CC_SMSTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/18/IMS_CC_SMSTestcases.ttcn new file mode 100644 index 0000000..46f09da --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/18/IMS_CC_SMSTestcases.ttcn @@ -0,0 +1,127 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 15:59:34 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14409 $ +/******************************************************************************/ + +module IMS_CC_SMSTestcases { + + import from CommonDefs all; + import from LibSip_SIPTypesAndValues all; + import from IP_ASP_TypeDefs all; + import from SMS_TypeDefs all; + import from SMS_Templates all; + import from IMS_Component all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_SIP_Templates all; + import from IMS_SMS_Messages all; + import from IMS_MessageBody_Templates all; + import from IMS_CommonFunctions all; + import from IMS_Procedures_CallControl all; + import from IMS_Procedures_Common all; + import from UpperTesterFunctions all; + import from IMS_CC_CommonFunctions all; + import from IMS_PTC_CoordMsg all; + + //============================================================================ + /* + * @desc REFERENCE TS 34.229-1 clause 18.1 + * @status APPROVED (IMS) + */ + function f_TC_18_1_IMS() runs on IMS_PTC + { + var IMS_DATA_REQ v_IMS_DATA_REQ; + + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_REGISTERED); /* @sic R5s140469: test case applicable for GIBA as well sic@ */ + + f_IMS_CC_StartSignalling(IPCAN_MO_IMS_Signalling); + + f_UT_IMS_TriggerSMS(MMI); + + f_IMS_TestBody_Set(true); + + // Step 1. UE sends a short message + // @siclog "Step 1" siclog@ + v_IMS_DATA_REQ := f_IMS_MO_SMS_Step1(); // @sic R5-153757 sic@ + f_IMS_PreliminaryPass(__FILE__, __LINE__, "Step 1"); + + // @siclog "Step 2-8" siclog@ + f_IMS_MO_SMS_Step2to8 (v_IMS_DATA_REQ); // @sic R5-153757 sic@ + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + } + + //============================================================================ + /* + * @desc REFERENCE TS 34.229-1 clause 18.2 + * @status APPROVED (IMS) + */ + function f_TC_18_2_IMS() runs on IMS_PTC + { + var IMS_DATA_REQ v_IMS_DATA_REQ; + var template (value) MessageHeader v_MessageHeader_MessageMT; + var MESSAGE_Request v_MESSAGE_RequestRX; + var SipUrl v_ContactUrl; + var RP_ACK_Type v_RPAck; + var octetstring v_EncodedSMS; + var template (value) RP_DATA_dl_Type v_SMSdl; + var integer v_Port_us; + var InternetProtocol_Type v_Protocol; + var SipUrl v_PAssertedIDUrl; + var CallidString v_PrevCallId; + var CharStringList_Type v_PrevCallIdList := {}; + + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_REGISTERED, IMS_Security); + f_IMS_CC_StartSignalling(IPCAN_MT_IMS_Signalling); /* @sic R5s130183 change 1 sic@ */ + + v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + v_Port_us := f_IMS_PTC_GetPort_us(); + + f_IMS_TestBody_Set(true); + + v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + + // Step 1. The SS sends a Short Message. + // Build MT SMS + // @siclog "Step 1" siclog@ + v_SMSdl := cs_RP_DATA_dl_DELIVER('7788996655'O); + v_EncodedSMS := f_SMS_PDU_EncodeRPDATA(v_SMSdl); + v_MessageHeader_MessageMT := f_IMS_MessageRequest_MessageHeaderTX_MT_SMS(v_Protocol); + IMS_Client.send(cas_IMS_Message_Request(cs_IMS_RoutingInfo(v_Protocol), cs_MESSAGE_Request(v_ContactUrl, v_MessageHeader_MessageMT, cs_MessageBody_SMS(v_EncodedSMS)))); + v_PrevCallId := valueof(v_MessageHeader_MessageMT.callId.callid); // @sic R5-133705 sic@ + v_PrevCallIdList := f_CharStringList_Add(v_PrevCallIdList, v_PrevCallId); + + // Step 2. The UE responds with 200 OK. + // @siclog "Step 2" siclog@ + f_IMS_ReceiveResponse(v_MessageHeader_MessageMT, v_Protocol, cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_MessageMT))); /* @sic R5s140350 sic@ */ + + // Step 3. The UE responds with a delivery report. + // Contents in 34.229-1 Annex A.7.2 + // @siclog "Step 3" siclog@ + v_PAssertedIDUrl := f_Addr_Union_GetSipUrl(v_MessageHeader_MessageMT.pAssertedID.pAssertedIDValueList[0]); // @sic R5-130572 R5s130183 sic@ + + v_IMS_DATA_REQ := f_IMS_MessageRequest_Receive(v_PAssertedIDUrl, + f_IMS_MessageRequest_MessageHeaderRX_DeliveryReport(v_PAssertedIDUrl, v_PrevCallId), + v_PrevCallIdList); // @sic R5s130370 change 1 sic@ + v_MESSAGE_RequestRX := v_IMS_DATA_REQ.Request.Message; + v_EncodedSMS := v_MESSAGE_RequestRX.messageBody.smsMessage; + v_RPAck := f_SMS_PDU_DecodeAndMatchRPACK(v_EncodedSMS, cr_RP_ACK_ul); // @sic R5-130572 sic@ + f_IMS_PreliminaryPass(__FILE__, __LINE__, "Step 3"); + + // Step 4. The SS sends a 202 Accepted + // @siclog "Step 4" siclog@ + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine202, f_IMS_Accepted_202_MessageHeaderTX(v_MESSAGE_RequestRX.msgHeader)))); + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_IMS_Signalling); + } +} diff --git a/IMS_PART4_IWD_14wk37/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn similarity index 82% rename from IMS_PART4_IWD_14wk37/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn index b3aced2..42d80a0 100644 --- a/IMS_PART4_IWD_14wk37/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/19/IMS_CC_EmergencyCallTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 16:19:00 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12162 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 14:42:41 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14457 $ /******************************************************************************/ module IMS_CC_EmergencyCallTestcases { @@ -19,6 +19,7 @@ module IMS_CC_EmergencyCallTestcases { import from IMS_CC_CommonFunctions all; import from IMS_Procedures_Registration all; import from IMS_Procedures_CallControl all; + import from IMS_Procedures_CallHold all; import from IMS_Procedures_Common all; import from SMS_TypeDefs all; import from SMS_Templates all; @@ -37,14 +38,18 @@ module IMS_CC_EmergencyCallTestcases { import from LibSip_MessageBodyTypes all; import from IMS_XML_Templates all; import from IMS_CommonDefs all; + import from IMS_IP_Config all; //============================================================================ /* * @desc Emergency Reregistration + * @param p_OldSecNotRequired (default value: true) + * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request * @status APPROVED (IMS) */ - function fl_IMS_EmergencyReRegistration () runs on IMS_PTC return REGISTER_Request // @sic R5-140037 sic@ + function fl_IMS_EmergencyReRegistration (boolean p_OldSecNotRequired := true, + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request // @sic R5-140037 sic@ { var IMS_DATA_REQ v_IMS_DATA_REQ; var SecurityClientParams_Type v_SecurityClientParams; @@ -52,25 +57,30 @@ module IMS_CC_EmergencyCallTestcases { var boolean v_IsEmergency := true; var integer v_NonceCount; var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - + v_NonceCount := 2; v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(-, v_IsEmergency, v_NonceCount); v_RegisterReq := v_IMS_DATA_REQ.Request.Register; v_SecurityClientParams := f_IMS_PTC_ReRegistration_SecurityClientParamsGet(); + f_IMS_Register_SecurityInit(v_RegisterReq, not4b tsc_IMS_AuthRAND); /* generate a new RAND */ v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, - cs_Response(c_statusLine401, f_IMS_RegisterResponse_401_MessageHeaderTX(v_RegisterReq)))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine401, f_IMS_RegisterResponse_401_MessageHeaderTX(v_RegisterReq)))); v_NonceCount := 1; // nonce counter is reset to 1 due to re-authentication v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(-, v_IsEmergency, v_NonceCount); v_RegisterReq := v_IMS_DATA_REQ.Request.Register; - - IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), - cs_Response(c_statusLine200, f_IMS_RegisterResponse_200_MessageHeaderTX(v_RegisterReq, v_IsEmergency)))); + v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); /* @sic R5s141326, R5s150245 change 1 sic@ */ + + if (p_OldSecNotRequired) { // @sic R5s141335 sic@ + f_IMS_Register_SecurityRelease(); // @sic R5s140909; R5w150015: v_SecurityInfo is removed sic@ + v_RoutingInfo.Security := protectedContext1; /* @sic R5s141326: by releasing the old security context the new one becomes context 1; R5s150245 change 1 sic@ */ + } + + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_RegisterResponse_200_MessageHeaderTX(v_RegisterReq, v_IsEmergency, p_RegisterExpiration)))); /* @sic R5s150809 sic@ */ return v_RegisterReq; } @@ -88,6 +98,8 @@ module IMS_CC_EmergencyCallTestcases { f_IMS_IMS_SendCoOrdMsg(OtherPDN); f_IMS_IMS_WaitForTrigger(OtherPDN); // wait for trigger after IMS call release + + //including step 18: deactivation of emergency bearer context and DRBs1-3 @sic R5-150268 sic@ f_IMS_CC_Postamble(IPCAN_EmergencyCall_NormalService); } @@ -133,6 +145,8 @@ module IMS_CC_EmergencyCallTestcases { f_IMS_IMS_SendCoOrdMsg(OtherPDN); f_IMS_IMS_WaitForTrigger(OtherPDN); + + //including step 18: deactivation of emergency bearer context and DRBs1-3 @sic R5-150268 sic@ f_IMS_CC_Postamble(IPCAN_EmergencyCall_NormalService); // @sic R5s140171 sic@ } @@ -170,22 +184,25 @@ module IMS_CC_EmergencyCallTestcases { } //============================================================================ - + /* + * @desc REFERENCE TS 34.229-1 clause 19.1.5 + * @status APPROVED (IMS) + */ function f_TC_19_1_5_IMS1() runs on IMS_PTC - { /* first an IMS MO Speech Call is established and afterwards (see PTC IMS2) an IMS Emergency Call - the configuration is done subsequently: first DRB2 and then DRBs 3 and 4 are configured */ + { /* first an IMS MO Speech Call is established and afterwards (see PTC IMS2) an IMS Emergency Call + the configuration is done subsequently: first DRB2 and then DRBs 3 and 4 are configured */ var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ var INVITE_Request v_InviteRequest; var MessageHeader v_MessageHeader_Response183; var SDP_Message v_SDP_OriginalOffer; var SDP_Message v_SDP_HoldResumeOffer; - var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage (); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) + var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage(); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) - f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + f_IMS_CC_Preamble(IPCAN_EmergencyCall, IMS_REGISTERED); /* @sic R5s150412: emergency call configuration sic@ */ // Trigger SS to execute location related functions to allow UE to get its position if (v_GeolocationUsage) { - f_IMS_IPCAN_ModifyConfig (IPCAN, IPCAN_UpdateUELocationInformation); + f_IMS_IPCAN_ModifyConfig(IPCAN, IPCAN_UpdateUELocationInformation); } // Initial conditions: Setup MO speech call @@ -209,15 +226,9 @@ module IMS_CC_EmergencyCallTestcases { f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); f_IMS_IMS_SendCoOrdMsg(OtherPDN); - f_IMS_IMS_WaitForTrigger(OtherPDN); - - // User initiates un-hold of ongoing call which is on hold - //@siclog "Step 18" siclog@ - // Step 18 - f_UT_CallResume(MMI); //@siclog "Steps 19-22" siclog@ - f_IMS_MOCallHoldResume_AnnexC8(RESUME, v_InviteRequest, v_MessageHeader_Response183, v_SDP_OriginalOffer, str2int(v_SDP_HoldResumeOffer.origin.session_version)); + f_IMS_MOCallHoldResume_AnnexC8(RESUME, v_InviteRequest, v_MessageHeader_Response183, v_SDP_OriginalOffer); f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); // UE releases the call @@ -225,24 +236,28 @@ module IMS_CC_EmergencyCallTestcases { f_IMS_CallReleaseMO(v_InviteRequest); f_IMS_TestBody_Set(false); - f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + f_IMS_CC_Postamble(IPCAN_MO_Speech_EmergencyCall); /* @sic R5s141286 change 1: IPCAN_MO_Speech_EmergencyCall sic@ */ } + /* + * @desc REFERENCE TS 34.229-1 clause 19.1.5 + * @status APPROVED (IMS) + */ function f_TC_19_1_5_IMS2() runs on IMS_PTC { /* first an IMS MO Speech Call is established (see PTC IMS1) and afterwards an IMS Emergency Call the configuration is done subsequently: first DRB2 and then DRBs 3 and 4 are configured */ - + var REGISTER_Request v_RegisterRequest; var INVITE_Request v_InviteRequestEmergencyCall; var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage (); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) - + f_IMS_PTC_Init(PDN_2); f_IMS_IMS_WaitForTrigger(OtherPDN); - + // User initiates emergency call //@siclog "Step 6" siclog@ - f_IMS_CC_StartCall(IPCAN_EmergencyCall_NormalService); // steps 1-15 of 4.5A.4 + f_IMS_CC_StartCall(IPCAN_MO_Speech_EmergencyCall); // steps 1-15 of 4.5A.4 @sic R5s150091 sic@ // Steps defined in annex C.20 followed by the steps defined in annex C.22 //@siclog "Steps 7-15" siclog@ @@ -250,23 +265,25 @@ module IMS_CC_EmergencyCallTestcases { v_InviteRequestEmergencyCall := f_IMS_EmergencyCallSetup_AnnexC22(-, v_GeolocationUsage); f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); + //@siclog "Step 15A" siclog@ + f_UT_CallResume(MMI); /* @sic R5s141286 change 2 sic@ */ + // The UE releases the emergency call with BYE //@siclog "Steps 16-17" siclog@ - f_IMS_EmergencyCallRelease(v_InviteRequestEmergencyCall); - - // !!!! DRBs need to be released; which procedures shall be applied ??? !!!! - - f_IMS_IMS_SendCoOrdMsg(OtherPDN); + f_IMS_EmergencyCallRelease(v_InviteRequestEmergencyCall, true); /* @sic R5s141286 change 2: p_AutonomousCallRelease := true sic@ */ } //============================================================================ - + /* + * @desc REFERENCE TS 34.229-1 clause 19.3.1 + * @status APPROVED (IMS) + */ function f_TC_19_3_1_IMS() runs on IMS_PTC { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var MessageHeader v_MessageHeader_Response183; - var boolean v_IsEmergency := true; - var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage (); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) + var IMS_Emergency_Type v_EmergencyType := ASSERTED_EMERGENCY; + var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage(); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); @@ -282,25 +299,25 @@ module IMS_CC_EmergencyCallTestcases { //@siclog "Steps 1-12" siclog@ f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(-); // !!!! what shall be the CalleeUri ??? !!!! + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(); //@sic R5s150299 r1 sic@ // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp, -, -, v_IsEmergency); // emergency number put into the P-Asserted-Identity header field of 183 Session Progress + v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp, -, -, v_EmergencyType); /* emergency number put into the P-Asserted-Identity header field of 183 Session Progress + @sic R5s150692 change 14 sic@ */ // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 12 f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer - f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); + f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183, -, v_GeolocationUsage, v_EmergencyType); /* @sic R5s141155 change 4 sic@ @sic R5s150193 sic@ @sic R5s150414 sic@ @sic R5s150692 change 14 sic@ */ f_IMS_TestBody_Set(false); - f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); - f_IMS_IMS_SendCoOrdMsg(OtherPDN); - + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite, -, v_EmergencyType); /* @sic R5s150692 change 14 sic@ */ + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); //@sic R5s141155 change 4 sic@ } //============================================================================ /* - * @desc + * @desc steps 3 and four of test case 19.3.3 * @param p_RoutingInfo_DL * @param p_InviteRequest * @status APPROVED (IMS) @@ -328,7 +345,7 @@ module IMS_CC_EmergencyCallTestcases { */ v_MessageHeader_AltService_380 := f_IMS_InviteResponse_380_MessageHeaderTX(v_InviteRequest); v_MessageHeader_AltService_380.contact := cs_Contact(f_SIP_BuildSipUri_TX(v_CallerUri)); // @sic R5-140920 sic@ - v_MessageBody := cs_MessageBody_XML(cs_TIMS3GPP_Emergency("emergency-registration")); // XSD schema needed according to 24.229 section 7.6.2. + v_MessageBody := cs_MessageBody_XML(cs_Ims_3gpp_Emergency("emergency-registration")); // XSD schema needed according to 24.229 section 7.6.2. IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine380, v_MessageHeader_AltService_380, v_MessageBody))); // Step 4. The UE acknowledges the receipt of 380 Alternative Service for INVITE @@ -364,7 +381,7 @@ module IMS_CC_EmergencyCallTestcases { //@siclog "Step 2" siclog@ // UE sends INVITE. Request-URI of the INVITE request matches with the "non emergency" number dialled. - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(-); // !!!! what shall be the CalleeUri ??? !!!! + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(); v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); v_InviteRequest := v_InviteRequestWithSdp.Invite; @@ -389,14 +406,15 @@ module IMS_CC_EmergencyCallTestcases { var INVITE_Request v_InviteRequest; var REGISTER_Request v_RegisterRequest; var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage (); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) - var charstring v_CalleeUri := tsc_IMS_UrnServiceSos_Ambulance; // @sic R5-140920 sic@ @sic R5s140490 sic@ + var template (present) SipUrl v_CalleeUri := f_SIP_BuildSipUri_RX(tsc_IMS_UrnServiceSos_Ambulance); // @sic R5-140920 sic@ @sic R5s140490 sic@ @sic R5s150204 sic@ f_IMS_PTC_Init(PDN_2); f_IMS_IMS_WaitForTrigger(OtherPDN); - f_IMS_CC_StartCall(IPCAN_EmergencyCall_NormalService); // steps 1-15 of 4.5A.4 @sic R5s140490 sic@ - + // f_EUTRA_IPCAN_MainLoop keeps track of connection status, so there is no need to pass this information at this point + f_IMS_IPCAN_StartProcedure(IPCAN, IPCAN_EmergencyCall_NormalService); // @sic R5s140997 sic@ + //@siclog "Steps 5-19" siclog@ // Note: Emergency call tests apply only to UEs supporting full IMS security v_RegisterRequest := f_IMS_EmergencyRegistration_C20(); @@ -412,7 +430,12 @@ module IMS_CC_EmergencyCallTestcases { } //============================================================================ - + /* + * @desc steps 20..21 of TC_19_3_4 + * @param p_RoutingInfo_DL + * @param p_InviteRequest + * @status APPROVED (IMS) + */ function fl_TC_19_3_4_Steps20To21(template(value) IMS_RoutingInfo_Type p_RoutingInfo_DL, INVITE_Request p_InviteRequest) runs on IMS_PTC { @@ -421,7 +444,8 @@ module IMS_CC_EmergencyCallTestcases { var INVITE_Request v_InviteRequest := p_InviteRequest; var template (value) MessageHeader v_MessageHeader_AltService_380; var template(value) IMS_RoutingInfo_Type v_RoutingInfo_DL := p_RoutingInfo_DL; - + var template (present) SipUrl v_RequestSipUrl := f_SIP_BuildSipUri_RX(px_IMS_CalleeUri); // @sic R5s141237 sic@ + // Step 20. The SS responds with a 380 Alternative Service response /* Send XML contents according to Annex A.4.1 @@ -431,21 +455,26 @@ module IMS_CC_EmergencyCallTestcases { */ v_MessageHeader_AltService_380 := f_IMS_InviteResponse_380_MessageHeaderTX(v_InviteRequest); - v_MessageBody := cs_MessageBody_XML(cs_TIMS3GPP_Emergency("emergency-registration")); // XSD schema needed according to 24.229 section 7.6.2. + v_MessageBody := cs_MessageBody_XML(cs_Ims_3gpp_Emergency("emergency-registration")); // XSD schema needed according to 24.229 section 7.6.2. IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine380, v_MessageHeader_AltService_380, v_MessageBody))); // Step 21. The UE acknowledges the receipt of 380 Alternative Service for INVITE v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(p_InviteRequest, c_statusLine380); - IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(f_MessageHeader_GetContactSipUrl(p_InviteRequest.msgHeader), v_MessageHeader_Ack))); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_RequestSipUrl, v_MessageHeader_Ack))); // @sic R5s141237 sic@ @sic R5s141337 sic@ } + /* + * @desc REFERENCE TS 34.229-1 clause 19.3.4 + * @status APPROVED (IMS) + */ function f_TC_19_3_4_IMS1() runs on IMS_PTC { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var INVITE_Request v_InviteRequest; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage (); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) - var charstring v_CalleeUri := px_IMS_CalleeUri; // !!!! what shall be the CalleeUri ??? !!!! + var charstring v_CalleeUri := px_IMS_CalleeUri; + var template (present) SipUrl v_CalleeSipUrl := f_SIP_BuildSipUri_RX(px_IMS_CalleeUri); // @sic R5s150204 sic@ f_IMS_CC_Preamble(IPCAN_EmergencyCall, IMS_REGISTERED); @@ -453,30 +482,34 @@ module IMS_CC_EmergencyCallTestcases { if (v_GeolocationUsage) { f_IMS_IPCAN_ModifyConfig (IPCAN, IPCAN_UpdateUELocationInformation); } - + f_IMS_TestBody_Set(true); - + f_IMS_IMS_SendCoOrdMsg(OtherPDN); f_IMS_IMS_WaitForTrigger(OtherPDN); - + //@siclog "Step 18" siclog@ // MO call is initiated on the UE by dialling a "non emergency" number. f_UT_RequestIMSCall(MMI, v_CalleeUri); // @sic R5-134070 sic@ //@siclog "Step 19" siclog@ // UE sends INVITE. Request-URI of the INVITE request matches with the "non emergency" number dialled. - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(v_CalleeUri); + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Common(v_CalleeSipUrl); v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); v_InviteRequest := v_InviteRequestWithSdp.Invite; //@siclog "Step 20-21" siclog@ // 380 Alternative Service / ACK fl_TC_19_3_4_Steps20To21(v_RoutingInfo_DL, v_InviteRequest); - + f_IMS_IMS_SendCoOrdMsg(OtherPDN); - + f_IMS_IMS_WaitForTrigger(OtherPDN); f_IMS_CC_Postamble(IPCAN_EmergencyCall_NormalService); } + /* + * @desc REFERENCE TS 34.229-1 clause 19.3.4 + * @status APPROVED (IMS) + */ function f_TC_19_3_4_IMS2() runs on IMS_PTC { var INVITE_Request v_InviteRequest; @@ -484,38 +517,37 @@ module IMS_CC_EmergencyCallTestcases { var boolean v_GeolocationUsage := f_IMS_GetGeolocationUsage (); // the test case intends to use GeoLocationInformation if supported by the UE (PICS) f_IMS_PTC_Init(PDN_2); - + f_IMS_IMS_WaitForTrigger(OtherPDN); - + f_IMS_TestBody_Set(true); - + //@siclog "Steps 1-15" siclog@ f_IMS_CC_StartCall(IPCAN_EmergencyCall_NormalService); // steps 1-15 of 4.5A.4 - + v_RegisterRequest := f_IMS_EmergencyRegistration_C20(); - + v_InviteRequest := f_IMS_EmergencyCallSetup_AnnexC22(-, v_GeolocationUsage); // geolocation information to be used //@siclog "Steps 16-17" siclog@ f_IMS_EmergencyCallRelease(v_InviteRequest); - + f_IMS_IMS_SendCoOrdMsg(OtherPDN); f_IMS_IMS_WaitForTrigger(OtherPDN); - - //@siclog "Steps 22-25" siclog@ - f_IMS_CC_StartCall(IPCAN_EmergencyCall_NormalService); // optional procedure step 22: steps 1-15 of 4.5A.4 Prose issue: which option ?? - v_RegisterRequest := f_IMS_EmergencyRegistration_C20(); - + + //@siclog "Steps 22-25 Void" siclog@ + //@siclog "Steps 26-37" siclog@ - v_InviteRequest := f_IMS_EmergencyCallSetup_AnnexC22(-, v_GeolocationUsage); - + v_InviteRequest := f_IMS_EmergencyCallSetup_AnnexC22(-, v_GeolocationUsage); // @sic R5s141237 sic@ + //@siclog "Steps 38-39" siclog@ f_IMS_EmergencyCallRelease(v_InviteRequest); f_IMS_TestBody_Set(false); - + f_IMS_IMS_SendCoOrdMsg(OtherPDN); } + //============================================================================ /* @@ -604,14 +636,18 @@ module IMS_CC_EmergencyCallTestcases { var template(value) IMS_RoutingInfo_Type v_RoutingInfo_DL; var template (present) SDP_Message v_SDP_Message_Step1; var SDP_Message v_SDP_Message; - var boolean v_IsEmergency := true; + var IMS_Emergency_Type v_EmergencyType := REGULAR_EMERGENCY; /* @sic R5s150692 change 25 sic@ */ var boolean v_PrackRequiredFor180Ringing := false; /* => there is no PRACK expected to acknowledge the 180 response */ var charstring v_FmtAudio; var float v_DelayBeforeSending; var float v_ReRegistrationElapsedTime; // time elapsed after registration (C.20) and reception of INVITE Request var boolean v_GeolocationInfoAvailable := false; + var template (present) SipUrl v_CalleeContactSipUri; + var template (value) MessageHeader v_MessageHeader_InviteResponse_200; + var template (present) MessageHeader v_MessageHeader_Ack; + var template (value) SDP_Message v_SDP_Message_Step4; timer t_RegExpireMax := f_IMS_SetTimerToleranceMax(v_ReRegistrationTime); // more than half of the expiration time - + f_IMS_PTC_Init(PDN_2); f_IMS_IMS_WaitForTrigger(OtherPDN); @@ -657,13 +693,28 @@ module IMS_CC_EmergencyCallTestcases { //@siclog "Step 3 of C.22" siclog@ // SS sends a 180 Ringing response. f_Delay(v_DelayBeforeSending); // delayed sending - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine180, f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, -, v_PrackRequiredFor180Ringing, v_IsEmergency)))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine180, f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, -, v_PrackRequiredFor180Ringing, v_EmergencyType)))); - //@siclog "Step 1-4 Parallel behaviour" siclog@ + //@siclog "Steps 2A-2D i.e. Steps 1-4 Parallel behaviour" siclog@ // Parallel behaviour Steps 1 to 4 re-registration - v_RegisterRequest := fl_IMS_EmergencyReRegistration(); // @sic R5s140338 sic@ + v_RegisterRequest := fl_IMS_EmergencyReRegistration(false, "1200"); // @sic R5s140338 sic@ @sic R5s141335 sic@ @sic R5s150809 sic@ t_RegExpireMax.stop; + // Step 3. 200 OK as per step 4 of Annnex C.22, i.e. Response for INVITE sent in step 2 (step 1 of Annex C.22) + v_SDP_Message_Step4 := f_IMS_BuildSDP_AnnexC22_Step4(v_FmtAudio); // @sic R5-145732 sic@ + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP, tsc_IMS_Emergency_TelUri); + v_CalleeContactSipUri := f_Addr_Union_GetSipUrl(v_MessageHeader_InviteResponse_200.contact.contactBody.contactAddresses[0].addressField); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200, cs_MessageBody_SDP(v_SDP_Message_Step4)))); + + // Step 4. Response from UE to confirm the dialogue + // ACK will be received on the previous socket connection using the old Security Association or on the socket with the new security association @sic R5-150267 sic@ + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, v_EmergencyType); // @sic R5-145732 sic@ @sic R5s141335 sic@ @sic R5s150692 change 25 sic@ + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactSipUri, v_MessageHeader_Ack))) -> value v_IMS_DATA_REQ; // @sic R5s150195 sic@ + + //@siclog "Steps 5-6" siclog@ + // The UE releases the call with BYE + f_IMS_EmergencyCallRelease(v_InviteRequest); // @sic R5-145732 sic@ + f_IMS_TestBody_Set(false); f_IMS_IMS_SendCoOrdMsg(OtherPDN); @@ -692,7 +743,7 @@ module IMS_CC_EmergencyCallTestcases { var InternetProtocol_Type v_Protocol; var template (value) MessageHeader v_MessageHeader_MessageMT; var MESSAGE_Request v_MESSAGE_RequestRX; - var SipUrl v_ContactUrl; // !!!! NOT INITIALIZED needs further checking (EW) + var SipUrl v_ContactUrl; var RP_ACK_Type v_RPAck; var octetstring v_EncodedSMS; var template (value) RP_DATA_dl_Type v_SMSdl; @@ -705,6 +756,7 @@ module IMS_CC_EmergencyCallTestcases { var H2_Type v_TimestampSMStxHexSeconds; var H14_Type v_TimestampReg; var H14_Type v_TimestampSMStx; + var IMS_Emergency_Type v_EmergencyType := REGULAR_EMERGENCY; /* @sic R5s150692 change 25 sic@ */ timer t_WaitForBYE := 7.0; @@ -724,11 +776,11 @@ module IMS_CC_EmergencyCallTestcases { f_IMS_TestBody_Set(true); t_WaitForBYE.timeout; - f_IMS_EmergencyCallRelease(v_InviteRequest); // is this ok ? what does abort do ? special warning to test operator ???? how fast can this be achieved ? + f_IMS_EmergencyCallRelease(v_InviteRequest); //@siclog "Step 1" siclog@ // BYE - v_MessageHeader_Bye := f_IMS_ByeRequest_MessageHeaderRX(v_InviteRequest, true); /* p_IsEmergency := true */ + v_MessageHeader_Bye := f_IMS_ByeRequest_MessageHeaderRX(v_InviteRequest, v_EmergencyType); /* @sic R5s150692 change 25 sic@ */ IMS_Server.receive(car_IMS_Bye_Request(cr_BYE_Request(v_InviteRequest.requestLine.requestUri, v_MessageHeader_Bye))) -> value v_IMS_DATA_REQ_BYE; // !!!! most likely requestUri is wrong (has to be "same URI value as the recipient of BYE has earlier sent in its Contact header within the same dialog"; A.2.8) !!!! v_ByeRequest := v_IMS_DATA_REQ_BYE.Request.Bye; @@ -751,13 +803,13 @@ module IMS_CC_EmergencyCallTestcases { v_TimestampSMStxSeconds := hex2int(v_TimestampSMStxHexSeconds); if (v_TimestampSMStxSeconds > v_TimestampRegSeconds) { if ((v_TimestampSMStxSeconds - v_TimestampRegSeconds) > 10 ) { - f_IMS_CC_SetVerdictInconc(__FILE__, __LINE__, "Time restrictions not satisfied"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Time restrictions not satisfied"); } } else if (v_TimestampRegSeconds > v_TimestampSMStxSeconds) { // measurement stretches over 2 minutes if (((v_TimestampSMStxSeconds + 60) - v_TimestampRegSeconds) > 10 ) { - f_IMS_CC_SetVerdictInconc(__FILE__, __LINE__, "Time restrictions not satisfied"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Time restrictions not satisfied"); } } @@ -818,18 +870,16 @@ module IMS_CC_EmergencyCallTestcases { /* * @desc Sending of Notify Request and reception 200 response * @param p_ContactUrl - * @param p_SubscribeRequest * @param p_XmlMessage * @status APPROVED (IMS) */ function fl_TC_19_5_9_Steps16To17_Notify(SipUrl p_ContactUrl, - SUBSCRIBE_Request p_SubscribeRequest, template (value) Reginfo_Type p_XmlMessage) runs on IMS_PTC - { + { /* @sic R5-153756, R5-153986: p_SubscribeRequest removed as global regEventDialog is used instead sic@ */ var template (value) MessageHeader v_MessageHeader_Notify; var template (present) MessageHeader v_MessageHeader_Response; - v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A16(p_SubscribeRequest, 2, cs_SubscriptionState_Active); + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A16(cs_SubscriptionState_Active); /* @sic R5-153756, R5-153986 sic@ */ IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(udp), cs_NOTIFY_Request(p_ContactUrl, v_MessageHeader_Notify, cs_MessageBody_RegInfo(p_XmlMessage)))); v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Notify); @@ -844,8 +894,9 @@ module IMS_CC_EmergencyCallTestcases { */ function fl_TC_19_5_9_XmlMessageForNotify(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) Reginfo_Type { - var template (value) RegInfo_Registration_Type v_Registration1 := f_XML_RegistrationInfo(p_RegisterRequest, px_IMS_PublicUserIdentity2, "a102", "980", terminated, rejected); - var template (value) RegInfo_Registration_Type v_Registration2 := f_XML_RegistrationInfo(p_RegisterRequest, px_IMS_AssociatedTelUri, "a101", "981", terminated, rejected, -, -, true); + var boolean v_ApplyGRUU := false; /* @sic R5-153760 - implementation of GRUU: GRUU is not considered in the test case prose sic@ */ + var template (value) RegInfo_Registration_Type v_Registration1 := f_XML_RegistrationInfo(p_RegisterRequest, px_IMS_PublicUserIdentity2, "a102", "980", terminated, rejected, -, v_ApplyGRUU); + var template (value) RegInfo_Registration_Type v_Registration2 := f_XML_RegistrationInfo(p_RegisterRequest, px_IMS_AssociatedTelUri, "a101", "981", terminated, rejected, -, v_ApplyGRUU, true); var template (value) RegInfo_RegistrationList_Type v_RegistrationList := {v_Registration1, v_Registration2}; return f_XML_RegInfo(partial, 1, v_RegistrationList); } @@ -857,7 +908,6 @@ module IMS_CC_EmergencyCallTestcases { function f_TC_19_5_9_IMS1() runs on IMS_PTC { /* IMS implementation for PDN1 - Registration */ var REGISTER_Request v_RegisterRequest; - var SUBSCRIBE_Request v_SubscribeReq; var SipUrl v_ContactUrl; var template (value) Reginfo_Type v_XmlMessage; @@ -866,7 +916,7 @@ module IMS_CC_EmergencyCallTestcases { f_IMS_IPCAN_StartProcedure(IPCAN, IPCAN_InitialRegistration); v_RegisterRequest := f_IMS_Register(); - v_SubscribeReq := f_IMS_Register_SubscribeNotify(v_RegisterRequest); + f_IMS_Register_SubscribeNotify(v_RegisterRequest); f_IMS_CC_ReleaseConnection(IPCAN_InitialRegistration); // @sic R5s140329 sic@ f_IMS_IMS_SendCoOrdMsg(OtherPDN); @@ -875,7 +925,7 @@ module IMS_CC_EmergencyCallTestcases { //@siclog "Steps 16-17" siclog@ v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterRequest.msgHeader); // check and compare with 19.5.8 (EW) v_XmlMessage := fl_TC_19_5_9_XmlMessageForNotify(v_RegisterRequest); - fl_TC_19_5_9_Steps16To17_Notify(v_ContactUrl, v_SubscribeReq, v_XmlMessage); + fl_TC_19_5_9_Steps16To17_Notify(v_ContactUrl, v_XmlMessage); f_IMS_IMS_SendCoOrdMsg(OtherPDN); // to release IMS call diff --git a/IMS_PART4_IWD_15wk38/IMS/20/IMS_CustomizedAlertingTonesTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/20/IMS_CustomizedAlertingTonesTestcases.ttcn new file mode 100644 index 0000000..b6120cf --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/20/IMS_CustomizedAlertingTonesTestcases.ttcn @@ -0,0 +1,139 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ +/******************************************************************************/ +module IMS_CustomizedAlertingTonesTestcases { + + import from LibSip_Common all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from IMS_Component all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_CommonParameters all; + import from IMS_CommonTemplates all; + import from IMS_CommonDefs all; + import from IMS_SIP_Templates all; + import from IMS_MessageBody_Templates all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_CC_CommonFunctions all; + import from IMS_Procedures_CallControl all; + import from IMS_CommonFunctions all; + import from IMS_PTC_CoordMsg all; + + //============================================================================ + // local aux. functions + //---------------------------------------------------------------------------- + + /* + * @desc return template for SDP message at step 9 according to 34.229-1 (derived from f_IMS_BuildSDP_AnnexC21_Step4) + * @param p_SDP_MessageInvite + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function fl_IMS_BuildSDP_CAT_Step9(SDP_Message p_SDP_MessageInvite) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s150714: optimization see 4.4 sic@ */ + var boolean v_PreconditionsRequired := false; /* to be added later on */ + var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_AnnexC21_Step4(p_SDP_MessageInvite, v_PreconditionsRequired); + var template (omit) SDP_attribute_list v_SDP_MediaAttributes; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes; + + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_sendrecv, c_none, c_mandatory, c_mandatory); + v_SDP_PrecondionAttributes := f_SDP_Attributes_Add_TX(v_SDP_PrecondionAttributes, cs_SDP_Attribute_conf_qos); + + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_Message.media_list[0].attributes, cs_SDP_Attribute_content("g.3gpp.cat")); + v_SDP_Message.media_list[0].attributes := f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + + return v_SDP_Message; + } + + /* + * @desc 34.229-1 CAT 20.1.4, Step 9: send 183 Session In Progress (derived from f_IMS_MOCallSetup_AnnexC21_Step4) + * return MessageHeader of the 183 response + * @param p_InviteRequestWithSdp + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @param p_AditionalContactParams (default value: omit) + * @param p_IsEmergency (default value: NO_EMERGENCY) + * @return MessageHeader + * @status APPROVED (IMS) + */ + function fl_IMS_MOCallSetup_CAT_Step9(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_ContactUri := px_IMS_CalleeContactUri, + template (omit) SemicolonParam_List p_AditionalContactParams := omit, + IMS_Emergency_Type p_IsEmergency := NO_EMERGENCY) runs on IMS_PTC return MessageHeader + { /* @sic R5-142951: tsc_OptionTagList_precondition to be added to the Require header instead of the Supported header sic@ */ + var boolean v_Earlymedia := true; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var SDP_Message v_SDP_MessageInvite := p_InviteRequestWithSdp.SdpOffer; /* @sic R5w140112 sic@ */ + var template (value) MessageHeader v_MessageHeader_Response183; + var template (value) SDP_Message v_SDP_MessageTx := fl_IMS_BuildSDP_CAT_Step9(v_SDP_MessageInvite); /* @sic R5-135020 sic@ */ + // Step 4. Send 183 Session In Progress. + v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri, p_AditionalContactParams, p_IsEmergency, -, v_Earlymedia); //CAT specific + v_MessageHeader_Response183.toField.toParams[0].paramValue.tokenOrHost := "xyzTC20_1-INVITE-Totag"; /* @sic R5s150714: dialog 2 setting see 4.2 sic@ */ + f_IMS_PTC_ImsInfo_DialogSetLocalTag("xyzTC20_1-INVITE-Totag"); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_MessageTx)))); + + return valueof(v_MessageHeader_Response183); + } + + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 20.1 + * @status APPROVED (IMS) + */ + function f_TC_20_1_IMS() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ + var MessageHeader v_MessageHeader_Response183; + var boolean v_IsCAT := true; + + f_IMS_CC_Preamble(IPCAN_SpeechCall, IMS_REGISTERED); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 1" siclog@ + f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); + + // @siclog "Step 2" siclog@ + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_A4(); + + // @siclog "Step 3 - 4" siclog@ + v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp); /* @sic R5w140112 sic@ */ + + // See TS. 36.508 EUTRA/EPS signalling for IMS MO speech call Table 4.5A.6.3-1 Step 9-11 + f_IMS_CC_TriggerDedicatedBearerActivation(IPCAN_MO_SpeechCall); // trigger IPCAN to continue with activation of secondary PDP context or dedicated EPS bearer + + // Step 5 - 8 (TC 12.12 / C.21) + f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_Response183, false, -, NO_EMERGENCY); //@sic R5s141155 change 3 sic@ + + // Step 9 - 13 (Setup dialog 2): modified Step 4 - 8 (C.21) + /* @sic R5s150714: dialog setting see 4.1 sic@ */ + f_IMS_PTC_ImsInfo_ActivateDialog(secondDialog); + f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_InviteRequestWithSdp.Invite.msgHeader); + f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_InviteRequestWithSdp.Invite.msgHeader.cSeq.seqNumber); + + v_MessageHeader_Response183 := fl_IMS_MOCallSetup_CAT_Step9(v_InviteRequestWithSdp, "sip:cat-as.home1.net", {cs_GenericParam_Common(tsc_IMS_FeatureParamId_3gpp_icsi_ref, cs_GenValueQuoted(cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref))}, NO_EMERGENCY); + f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_Response183, false, -, NO_EMERGENCY, v_IsCAT); //@sic R5s141155 change 3 sic@ + + // Steps 14-15 (Step 12 - 13 of C.21) + /* @sic R5s150714: dialog setting see 4.1 sic@ */ + f_IMS_PTC_ImsInfo_ActivateDialog(firstDialog); // Signalling continues on first dialog + f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp, px_IMS_CalleeContactUri); + + // @siclog "Step 16 - 18 (TC 20.1) from Step 14 - 15 (TC 12.12)" + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); /* @sic R5-134116: parameter p_RecordRouteOfPrevResponse removed sic@ */ + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_MO_SpeechCall); + } + +} diff --git a/IMS_PART4_IWD_14wk37/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn similarity index 74% rename from IMS_PART4_IWD_14wk37/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn index 29ec2d6..e7b6e19 100644 --- a/IMS_PART4_IWD_14wk37/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/6/IMS_CC_PDPContextActivationTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-08 15:01:26 +0200 (Mon, 08 Sep 2014) $ -// $Rev: 12103 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 10:15:40 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14477 $ /******************************************************************************/ module IMS_CC_PDPContextActivationTestcases { @@ -14,26 +14,24 @@ module IMS_CC_PDPContextActivationTestcases { import from NAS_CommonTypeDefs all; import from IMS_Component all; import from IMS_Procedures_Registration all; - import from IMS_CommonParameters all; - import from IMS_CommonDefs all; import from IMS_PTC_CoordMsg all; - import from IMS_CC_Parameters all; import from IMS_CC_CommonFunctions all; import from IMS_CC_IPCAN_Coordination all; import from IMS_CC_PCO_Handling all; /* ************************************************************************** */ - // See 34.229-1 clause 6.3 + /* + * @desc REFERENCE TS 34.229-1 clause 6.3 + * @status APPROVED (IMS) + */ function f_TC_6_3_IMS() runs on IMS_PTC { var NAS_ProtocolConfigOptions_Type v_ConfigOptionsRx; - var NAS_ProtocolConfigOptions_Type v_ConfigOptionsTx; - var IMS_SecurityScheme_Type v_SecurityScheme := f_IMS_SecurityScheme((pc_IMS_GIBA_Sec and not pc_IMS_Sec) or px_UEwithSIM); + var template (value) NAS_ProtocolConfigOptions_Type v_ConfigOptionsTx; - f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL, v_SecurityScheme); + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL); // @sic R5s150786 sic@ f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); - f_IMS_TestBody_Set(true); v_ConfigOptionsRx := f_IMS_IPCAN_WaitForPCOs(IPCAN); @@ -48,7 +46,7 @@ module IMS_CC_PDPContextActivationTestcases { // Step 2 - IM CN Subsystem Signalling Flag is provided to the UE // Note: Setting this flag in the PCOs is the only difference to test 6.2. // @siclog "Step 2" siclog@ - v_ConfigOptionsTx := f_ProtocolConfigOption_GetResponse(v_ConfigOptionsRx); + v_ConfigOptionsTx := f_IMS_CC_ProtocolConfigOption_GetResponse(v_ConfigOptionsRx); f_IMS_IPCAN_SendPCOs(IPCAN, v_ConfigOptionsTx); // Steps 3 to 5 - Implicitly tested @@ -59,7 +57,4 @@ module IMS_CC_PDPContextActivationTestcases { f_IMS_CC_Postamble(IPCAN_InitialRegistration); } - - - } diff --git a/IMS_PART4_IWD_14wk37/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn similarity index 72% rename from IMS_PART4_IWD_14wk37/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn index 0532b3d..86f9d95 100644 --- a/IMS_PART4_IWD_14wk37/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/7/IMS_CC_P_CSCFDiscoveryTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-08 15:02:54 +0200 (Mon, 08 Sep 2014) $ -// $Rev: 12104 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 10:15:40 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14477 $ /******************************************************************************/ module IMS_CC_P_CSCFDiscoveryTestcases { @@ -14,26 +14,24 @@ module IMS_CC_P_CSCFDiscoveryTestcases { import from NAS_CommonTypeDefs all; import from IMS_Component all; import from IMS_Procedures_Registration all; - import from IMS_CommonParameters all; - import from IMS_CommonDefs all; import from IMS_PTC_CoordMsg all; - import from IMS_CC_Parameters all; import from IMS_CC_CommonFunctions all; import from IMS_CC_IPCAN_Coordination all; import from IMS_CC_PCO_Handling all; /****************************************************************************/ - // See 34.229-1 clause 7.1 + /* + * @desc REFERENCE TS 34.229-1 clause 7.1 + * @status APPROVED (IMS) + */ function f_TC_7_1_IMS() runs on IMS_PTC { var NAS_ProtocolConfigOptions_Type v_ConfigOptionsRx; - var NAS_ProtocolConfigOptions_Type v_ConfigOptionsTx; - var IMS_SecurityScheme_Type v_SecurityScheme := f_IMS_SecurityScheme((pc_IMS_GIBA_Sec and not pc_IMS_Sec) or px_UEwithSIM); - - f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL, v_SecurityScheme); - f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); + var template (value) NAS_ProtocolConfigOptions_Type v_ConfigOptionsTx; + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL); // @sic R5s150786 sic@ + f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); f_IMS_TestBody_Set(true); // @siclog "Step 1" siclog@ @@ -48,7 +46,7 @@ module IMS_CC_P_CSCFDiscoveryTestcases { } // Step 2 // @siclog "Step 2" siclog@ - v_ConfigOptionsTx := f_ProtocolConfigOption_GetResponse(v_ConfigOptionsRx); + v_ConfigOptionsTx := f_IMS_CC_ProtocolConfigOption_GetResponse(v_ConfigOptionsRx); f_IMS_IPCAN_SendPCOs(IPCAN, v_ConfigOptionsTx); // Steps 3 to 4 @@ -56,7 +54,7 @@ module IMS_CC_P_CSCFDiscoveryTestcases { f_IMS_Registration(); f_IMS_TestBody_Set(false); - + f_IMS_CC_Postamble(IPCAN_InitialRegistration); } diff --git a/IMS_PART4_IWD_14wk37/IMS/8/IMS_CC_RegistrationTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/8/IMS_CC_RegistrationTestcases.ttcn similarity index 75% rename from IMS_PART4_IWD_14wk37/IMS/8/IMS_CC_RegistrationTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/8/IMS_CC_RegistrationTestcases.ttcn index 6fb36b0..e8befa0 100644 --- a/IMS_PART4_IWD_14wk37/IMS/8/IMS_CC_RegistrationTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/8/IMS_CC_RegistrationTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-08 15:08:45 +0200 (Mon, 08 Sep 2014) $ -// $Rev: 12106 $ +// @version: IWD_15wk38 +// $Date: 2015-09-11 10:39:38 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14283 $ /******************************************************************************/ module IMS_CC_RegistrationTestcases { @@ -227,7 +227,6 @@ module IMS_CC_RegistrationTestcases { { var IMS_DATA_REQ v_IMS_DATA_REQ; var REGISTER_Request v_RegisterReq; - var SUBSCRIBE_Request v_SubscribeReq; var charstring v_RegisterExpiration := "800000"; var integer v_CseqStep1; var integer v_CseqStep3; @@ -271,13 +270,12 @@ module IMS_CC_RegistrationTestcases { v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); // Steps 8 and 9 - v_IMS_DATA_REQ := f_IMS_SUBSCRIBE_Request(); // @sic R5-130548 R5-131875 sic@ - f_IMS_SUBSCRIBE_Response(v_IMS_DATA_REQ); // @sic R5-130548 R5-131875 sic@ - v_SubscribeReq := v_IMS_DATA_REQ.Request.Subscribe; + v_IMS_DATA_REQ := f_IMS_SUBSCRIBE_Request(); // @sic R5-130548 R5-131875 sic@ + f_IMS_SUBSCRIBE_Response(regEventDialog, v_IMS_DATA_REQ); // @sic R5-130548 R5-131875 sic@ // Steps 10 and 11 - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_IMS_XmlMessageForNotify_Def(v_RegisterReq)); // @sic R5-130548 R5-131875 sic@ - + f_IMS_Register_Notify(v_ContactUrl, f_IMS_XmlMessageForNotify_Def(v_RegisterReq)); /* @sic R5-130548 R5-131875 sic@ + @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ f_IMS_TestBody_Set(false); f_IMS_CC_Postamble(IPCAN_InitialRegistration); } @@ -287,7 +285,6 @@ module IMS_CC_RegistrationTestcases { function f_TC_8_14_IMS() runs on IMS_PTC { var REGISTER_Request v_RegisterReq; - var SUBSCRIBE_Request v_SubscribeReq; var SipUrl v_ContactUrl; var template (value) RegInfo_Registration_Type v_Registration; @@ -299,36 +296,107 @@ module IMS_CC_RegistrationTestcases { // Steps 2. Register only the first IMPU v_RegisterReq := f_IMS_Register_NonGIBA(); - v_SubscribeReq := f_IMS_Register_Subscribe(); + f_IMS_Register_Subscribe(); v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); // @siclog "Step 2" siclog@ v_Registration := f_XML_RegistrationInfo(v_RegisterReq, f_IMS_PTC_ImsInfo_GetURI(firstId), "a100", "980", active, registered); - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_XML_RegInfo(full, 0, {v_Registration})); + f_IMS_Register_Notify(v_ContactUrl, f_XML_RegInfo(full, 0, {v_Registration})); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ // Steps 3 and 4. Registration of second IMPU f_UT_IMS_Trigger2ndIMPU(MMI); v_RegisterReq := f_IMS_Register_NonGIBA(); - v_SubscribeReq := f_IMS_Register_Subscribe(); + f_IMS_Register_Subscribe(); v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); // @siclog "Step 3 -4" siclog@ v_Registration := f_XML_RegistrationInfo(v_RegisterReq, f_IMS_PTC_ImsInfo_GetURI(secondId), "a102", "982", active, registered); - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_XML_RegInfo(partial, 1, {v_Registration})); + f_IMS_Register_Notify(v_ContactUrl, f_XML_RegInfo(partial, 1, {v_Registration})); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ // Steps 5 and 6. Registration of third IMPU // @siclog "Step 5 - 6" siclog@ f_UT_IMS_Trigger3rdIMPU(MMI); v_RegisterReq := f_IMS_Register_NonGIBA(); - v_SubscribeReq := f_IMS_Register_Subscribe(); + f_IMS_Register_Subscribe(); v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); v_Registration := f_XML_RegistrationInfo(v_RegisterReq, f_IMS_PTC_ImsInfo_GetURI(thirdId), "a103", "983", active, registered); - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_XML_RegInfo(partial, 2, {v_Registration})); + f_IMS_Register_Notify(v_ContactUrl, f_XML_RegInfo(partial, 2, {v_Registration})); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ f_IMS_TestBody_Set(false); f_IMS_CC_Postamble(IPCAN_InitialRegistration); } + //---------------------------------------------------------------------------- + /* + * @desc REFERENCE TS 34.229-1 clause 8.16 + * @status APPROVED (IMS) + */ + function f_TC_8_16_IMS() runs on IMS_PTC + { + var REGISTER_Request v_RegisterReq; + var SecurityClientParams_Type v_SecurityClientParams; + var charstring v_Expiration; + var integer v_Nc; + var float v_ReRegistrationTime; + var charstring v_RegisterExpiration := "800000"; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var integer v_CseqStep1, v_CseqStep3; + + timer t_TRegExpireMin; + timer t_TRegExpireMax; + + f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL, IMS_Security); + f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); + + f_IMS_TestBody_Set(true); + + v_Expiration := "120"; + v_ReRegistrationTime := 60.0; + + // @siclog "Step 1 - 8" siclog@ + v_RegisterReq := f_IMS_Register_NonGIBA(-, v_Expiration); + t_TRegExpireMin.start(f_IMS_SetTimerToleranceMin(v_ReRegistrationTime)); + t_TRegExpireMax.start(f_IMS_SetTimerToleranceMax(v_ReRegistrationTime)); + + f_IMS_Register_SubscribeNotify(v_RegisterReq); + + v_SecurityClientParams := f_IMS_PTC_ReRegistration_SecurityClientParamsGet(); /* security parameters as used due to authentication + @sic R5-132038: there is no re-authentication i.e. security parameters are as configured after step 3 sic@ */ + f_IMS_CC_ReleaseConnection(IPCAN_InitialRegistration); + + // @siclog "Step 9" siclog@ + v_Nc := 2; + v_Expiration := "1200"; + v_ReRegistrationTime := 600.0; + + f_IMS_CC_StartSignalling(IPCAN_MO_IMS_Signalling); + + v_IMS_DATA_REQ := f_IMS_PTC_ReRegistration_WaitForRegistration(t_TRegExpireMin, t_TRegExpireMax, v_Nc); + + v_RegisterReq := v_IMS_DATA_REQ.Request.Register; + v_CseqStep1 := v_RegisterReq.msgHeader.cSeq.seqNumber; + f_IMS_PTC_ReRegistration_SecurityClientParamsCheck(v_RegisterReq, v_SecurityClientParams); + + // @siclog "Step 10" siclog@ + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine423, f_IMS_RegisterResponse_423_MessageHeaderTX(v_RegisterReq, v_RegisterExpiration)))); + + // @siclog "Step 11" siclog@ + v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(-, -, 3, v_RegisterExpiration); + v_RegisterReq := v_IMS_DATA_REQ.Request.Register; + v_CseqStep3 := v_RegisterReq.msgHeader.cSeq.seqNumber; + + if (v_CseqStep1 + 1 != v_CseqStep3) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 11: invalid 'seqNumber'"); + } + + // @siclog "Step 12" siclog@ + v_RegisterReq := v_IMS_DATA_REQ.Request.Register; + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine200, f_IMS_RegisterResponse_200_MessageHeaderTX(v_RegisterReq, -, v_RegisterExpiration)))); + + f_IMS_TestBody_Set(false); + + f_IMS_CC_Postamble(IPCAN_InitialRegistration); /* @sic R5s150534 sic@ */ + } /****************************************************************************/ /* @@ -336,12 +404,13 @@ module IMS_CC_RegistrationTestcases { * @param p_RegisterRequest * @return template (value) Reginfo_Type */ - function fl_TC_8_2_Notify_Refresh(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) Reginfo_Type + function fl_TC_8_15_Notify_Refresh(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) Reginfo_Type { /* @sic R5-130750 sic@ */ + var boolean v_ApplyGRUU := false; /* GRUU is not considered in the test case prose */ var CharStringList_Type v_PublicUserIdList := f_IMS_PTC_ImsInfo_GetAllIMPUs(); - var template (value) RegInfo_Registration_Type v_Registration1 := f_XML_RegistrationInfo(p_RegisterRequest, v_PublicUserIdList[0], "a100", "980", terminated, deactivated); - var template (value) RegInfo_Registration_Type v_Registration2 := f_XML_RegistrationInfo(p_RegisterRequest, px_IMS_AssociatedTelUri, "a101", "981", terminated, deactivated, -, -, true); - var template (value) RegInfo_Registration_Type v_Registration3 := f_XML_RegistrationInfo(p_RegisterRequest, v_PublicUserIdList[1], "a102", "982", terminated, deactivated); + var template (value) RegInfo_Registration_Type v_Registration1 := f_XML_RegistrationInfo(p_RegisterRequest, v_PublicUserIdList[0], "a100", "980", terminated, deactivated, -, v_ApplyGRUU); + var template (value) RegInfo_Registration_Type v_Registration2 := f_XML_RegistrationInfo(p_RegisterRequest, px_IMS_AssociatedTelUri, "a101", "981", terminated, deactivated, -, v_ApplyGRUU, true); + var template (value) RegInfo_Registration_Type v_Registration3 := f_XML_RegistrationInfo(p_RegisterRequest, v_PublicUserIdList[1], "a102", "982", terminated, deactivated, -, v_ApplyGRUU); return f_XML_RegInfo(-, -, cs_RegistrationListOf3 (v_Registration1, v_Registration2, v_Registration3)); } @@ -350,7 +419,6 @@ module IMS_CC_RegistrationTestcases { function f_TC_8_15_IMS() runs on IMS_PTC { var REGISTER_Request v_RegisterReq; - var SUBSCRIBE_Request v_SubscribeReq; var SipUrl v_ContactUrl; var CharStringList_Type v_PublicUserIdList := f_IMS_PTC_ImsInfo_GetAllIMPUs(); @@ -363,10 +431,10 @@ module IMS_CC_RegistrationTestcases { v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_RegisterReq.msgHeader); // Steps: receive SUBSCRIBE, send 200 OK - v_SubscribeReq := f_IMS_Register_Subscribe(); + f_IMS_Register_Subscribe(); // Steps: send NOTIFY, receive 200 OK - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_IMS_XmlMessageForNotify_Def(v_RegisterReq)); + f_IMS_Register_Notify(v_ContactUrl, f_IMS_XmlMessageForNotify_Def(v_RegisterReq)); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ f_IMS_TestBody_Set(true); @@ -376,7 +444,7 @@ module IMS_CC_RegistrationTestcases { f_Delay(10.0); // Steps 2 to 3 - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, fl_TC_8_2_Notify_Refresh(v_RegisterReq), 2, cs_SubscriptionState_Terminated); + f_IMS_Register_Notify(v_ContactUrl, fl_TC_8_15_Notify_Refresh(v_RegisterReq), cs_SubscriptionState_Terminated); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ // Step 4 consider new updated IMPU according to clause 8.15.5 v_PublicUserIdList[0] := px_IMS_PublicUserIdentity1_Refreshed; diff --git a/IMS_PART4_IWD_14wk37/IMS/9/IMS_CC_AuthenticationTestcases.ttcn b/IMS_PART4_IWD_15wk38/IMS/9/IMS_CC_AuthenticationTestcases.ttcn similarity index 92% rename from IMS_PART4_IWD_14wk37/IMS/9/IMS_CC_AuthenticationTestcases.ttcn rename to IMS_PART4_IWD_15wk38/IMS/9/IMS_CC_AuthenticationTestcases.ttcn index 20261fd..19b5ecd 100644 --- a/IMS_PART4_IWD_14wk37/IMS/9/IMS_CC_AuthenticationTestcases.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/9/IMS_CC_AuthenticationTestcases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-02 11:19:45 +0200 (Wed, 02 Sep 2015) $ +// $Rev: 14152 $ /******************************************************************************/ module IMS_CC_AuthenticationTestcases { @@ -149,25 +149,13 @@ module IMS_CC_AuthenticationTestcases { return v_IMS_DATA_REQ; } - //---------------------------------------------------------------------------- - /* - * @desc default behaviour to ignore additional Registration Requests at the end of 9.1 (see 34.229-1 cl. 9.1.4) - * @status APPROVED (IMS) - */ - altstep a_IgnoreFurtherRegistration() runs on IMS_PTC - { - [] IMS_Server.receive(car_IMS_Register_Request(?)) { - repeat; // @sic R5s140136 sic@ - } - } - /****************************************************************************/ /* * @desc REFERENCE TS 34.229-1 clause 9.1 * @status APPROVED (IMS) */ function f_TC_9_1_IMS() runs on IMS_PTC - { + { /* @sic R5-153463: step 6 (403 forbidden) replaced by step 6..12 (completition of registration procedure) sic@ */ var charstring v_InvalidNonce := fl_GenerateInvalidNonce(macError); // Nonce with invalid MAC var IMS_DATA_REQ v_IMS_DATA_REQ; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; @@ -176,7 +164,6 @@ module IMS_CC_AuthenticationTestcases { var integer i; var SecurityClientParamsList_Type v_SecurityClientParamsList; var template CommaParam_List v_DigestResponseContainingAuts := {cr_GenericParam("auts", ?), *}; - var default v_Default; f_IMS_CC_Preamble(IPCAN_SignallingOnly, IMS_NULL, IMS_Security); f_IMS_CC_StartSignalling(IPCAN_InitialRegistration); @@ -211,18 +198,25 @@ module IMS_CC_AuthenticationTestcases { f_IMS_PreliminaryPass(__FILE__, __LINE__, ""); } } - - v_Default := activate(a_IgnoreFurtherRegistration()); // acc. to note between step 5 and 6 (34.229-1 cl. 9.1.4) - - // Step 6 + // @siclog "Step 6" siclog@ - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine403, f_IMS_RegisterResponse_403_MessageHeaderTX(v_RegisterReq)))); - + f_IMS_Register_SecurityInit(v_RegisterReq); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine401, f_IMS_RegisterResponse_401_MessageHeaderTX(v_RegisterReq)))); + + // @siclog "Step 7" siclog@ + v_IMS_DATA_REQ := f_IMS_REGISTER_SubsequentRequest(); + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); /* security has changed to "protected" now */ + v_RegisterReq := v_IMS_DATA_REQ.Request.Register; + + // @siclog "Step 8" siclog@ + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_RegisterResponse_200_MessageHeaderTX(v_RegisterReq)))); + + // @siclog "Step 9 - 12" siclog@ + f_IMS_Register_SubscribeNotify(v_RegisterReq); + f_IMS_TestBody_Set(false); - - f_IMS_CC_Postamble(IPCAN_InitialRegistration, false); // @sic R5s140136, R5s140176: no de-registration for this test case sic@ - - deactivate(v_Default); + + f_IMS_CC_Postamble(IPCAN_InitialRegistration); } /****************************************************************************/ diff --git a/IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_CommonFunctions.ttcn b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_CommonFunctions.ttcn similarity index 78% rename from IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_CommonFunctions.ttcn rename to IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_CommonFunctions.ttcn index 8e220b1..327969d 100644 --- a/IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_CommonFunctions.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 18:07:49 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12192 $ +// @version: IWD_15wk38 +// $Date: 2015-05-25 09:07:10 +0200 (Mon, 25 May 2015) $ +// $Rev: 13594 $ /******************************************************************************/ module IMS_CC_CommonFunctions { @@ -26,52 +26,6 @@ module IMS_CC_CommonFunctions { type enumerated CallType_Type {normalCall, conferenceCall}; /* @status APPROVED (IMS) */ - //============================================================================ - // verdict assignment - //---------------------------------------------------------------------------- - /* - * @desc Set verdict to pass and output a log line - * @param p_FileName - * @param p_LineNo - * @param p_Msg - * @status APPROVED (IMS_34229) - */ - function f_IMS_CC_SetPreliminaryPass(charstring p_FileName, - integer p_LineNo, - charstring p_Msg) - { - // log("Pass at " & p_FileName & ":" & int2str(p_LineNo) & " - " & p_Msg); - setverdict(pass, "PASS at " & p_FileName & ":" & int2str(p_LineNo) & " - " & p_Msg); - - } - //---------------------------------------------------------------------------- - /* - * @desc Set verdict to inconc and output a log line - * @param p_FileName - * @param p_LineNo - * @param p_Msg (default value: "") - * @status APPROVED (IMS_34229) - */ - function f_IMS_CC_SetVerdictInconc(charstring p_FileName, - integer p_LineNo, - charstring p_Msg := "") - { - // log("Inconc at " & p_FileName & ":" & int2str(p_LineNo) & " - " & p_Msg); - setverdict(inconc, "INCONC at " & p_FileName & ":" & int2str(p_LineNo) & " - " & p_Msg); - self.kill; - } - //---------------------------------------------------------------------------- - /* - * @desc Set verdict to fail and output a log line - */ - function f_IMS_CC_SetVerdictFail(charstring p_FileName, - integer p_LineNo, - charstring p_Msg) - { - // log("Fail at " & p_FileName & ":" & int2str(p_LineNo) & " - " & p_Msg); - setverdict(fail, "FAIL at " & p_FileName & ":" & int2str(p_LineNo) & " - " & p_Msg); - } - //============================================================================ // postamble / preamble / wrapper functions //---------------------------------------------------------------------------- @@ -144,19 +98,23 @@ module IMS_CC_CommonFunctions { * @param p_TestProcedure * @param p_SpeechAndVideoCallUri (default value: px_IMS_CalleeUri) * @param p_CallType (default value: omit) + * @return charstring * @status APPROVED (IMS) */ function f_IMS_CC_StartCall(IMS_TestProcedure_Type p_TestProcedure, charstring p_SpeechAndVideoCallUri := px_IMS_CalleeUri, - CallType_Type p_CallType := normalCall) runs on IMS_PTC + CallType_Type p_CallType := normalCall) runs on IMS_PTC return charstring { /* @sic new parameters p_SpeechAndVideoCallUri and p_CallType to support conference calls sic@ */ + /* @sic R5-145XXX - test case 17.1: return value for call identification number acc. to 27.007 sic@ */ + var charstring v_CallIdentification := ""; + f_IMS_IPCAN_StartProcedure(IPCAN, p_TestProcedure); select (p_TestProcedure) { case (IPCAN_MO_SpeechCall) { select (p_CallType) { case (normalCall) { - f_UT_RequestIMSCall(MMI, p_SpeechAndVideoCallUri); // @sic R5s130333, R5-134070 sic@ + v_CallIdentification := f_UT_RequestIMSCall(MMI, p_SpeechAndVideoCallUri); // @sic R5s130333, R5-134070 sic@ } case (conferenceCall) { f_UT_CallMPTY(MMI); @@ -169,13 +127,14 @@ module IMS_CC_CommonFunctions { case (IPCAN_MT_SpeechCall, IPCAN_MT_VideoCall) { f_IMS_IPCAN_WaitForTrigger(IPCAN); // wait for RRC connection to be established } - case (IPCAN_EmergencyCall_NormalService) { + case (IPCAN_EmergencyCall_NormalService, IPCAN_MO_Speech_EmergencyCall) { // @sic R5s150091 sic@ f_UT_RequestIMSEmergencyCall(MMI, px_EmergencyCallNumber); // @sic R5-134070 sic@ } case else { FatalError(__FILE__, __LINE__, ""); } } + return v_CallIdentification; } /* @@ -213,18 +172,31 @@ module IMS_CC_CommonFunctions { /* * @desc Release RRC connection * @param p_TestProcedure + * @param p_TcpCloseHandling (default value: omit) * @status APPROVED (IMS) */ - function f_IMS_CC_ReleaseConnection(IMS_TestProcedure_Type p_TestProcedure) runs on IMS_PTC - { - select (p_TestProcedure) { - case (IPCAN_InitialRegistration) { /* @sic R5s140219 - MCC160 implementation: wait for possible TCP close of unprotected connection but don't close any further TCP connection sic@ */ - f_IMS_TCP_CloseHandling(justWait); - } - case else { - f_Delay(2.0); /* @sic R5s140779: delay to ensure that latest DL SIP message (if any) is sent out before releasing the RRC connection sic@ */ + function f_IMS_CC_ReleaseConnection(IMS_TestProcedure_Type p_TestProcedure, + template (omit) IMS_TCP_CloseHandling_Type p_TcpCloseHandling := omit) runs on IMS_PTC + { /* @sic R5s140801: new parameter p_TcpCloseHandling sic@ */ + var IMS_TCP_CloseHandling_Type v_TcpCloseHandling := dontWait; + + if (isvalue(p_TcpCloseHandling )) { /* @sic R5s140801 sic@ */ + v_TcpCloseHandling := valueof(p_TcpCloseHandling ); + } + else{ + select (p_TestProcedure) { + case (IPCAN_InitialRegistration) { /* @sic R5s140219 - MCC160 implementation: wait for possible TCP close of unprotected connection but don't close any further TCP connection sic@ */ + v_TcpCloseHandling := justWait; + } + case else { + } } } + if (v_TcpCloseHandling != dontWait) { + f_IMS_TCP_CloseHandling(v_TcpCloseHandling); + } else { + f_Delay(2.0); /* @sic R5s140779: delay to ensure that latest DL SIP message (if any) is sent out before releasing the RRC connection sic@ */ + } f_IMS_IPCAN_EndProcedure(IPCAN, p_TestProcedure); } @@ -233,15 +205,17 @@ module IMS_CC_CommonFunctions { * @desc common postamble for IMS test cases * @param p_TestProcedure (default value: omit) * @param p_WaitForDeRegistration (default value: true) + * @param p_TcpCloseHandling (default value: omit) * @status APPROVED (IMS) */ function f_IMS_CC_Postamble(template (omit) IMS_TestProcedure_Type p_TestProcedure := omit, - boolean p_WaitForDeRegistration := true) runs on IMS_PTC - { + boolean p_WaitForDeRegistration := true, + template (omit) IMS_TCP_CloseHandling_Type p_TcpCloseHandling := omit) runs on IMS_PTC + { /* @sic R5s140801: new parameter p_TcpCloseHandling sic@ */ var boolean v_WaitForDeRegistration := pc_SwitchOnOff and p_WaitForDeRegistration; if (isvalue(p_TestProcedure)) { - f_IMS_CC_ReleaseConnection(valueof(p_TestProcedure)); + f_IMS_CC_ReleaseConnection(valueof(p_TestProcedure), p_TcpCloseHandling); /* @sic R5s140801: p_TcpCloseHandling sic@ */ } IPCAN.send(cms_IMS_IPCAN_ReleaseReq); @@ -251,18 +225,15 @@ module IMS_CC_CommonFunctions { //---------------------------------------------------------------------------- /* - * @desc common call establishement for speech call + * @desc common call establishement for speech call: signalling only * @return INVITE_Request * @status APPROVED (IMS) */ - function f_IMS_CC_MO_SpeechCall() runs on IMS_PTC return INVITE_Request + function f_IMS_CC_MO_SpeechCall_Signalling() runs on IMS_PTC return INVITE_Request { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ var MessageHeader v_MessageHeader_Response183; - // Step 1 - f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); - // Step 2 v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_A4(); @@ -275,4 +246,20 @@ module IMS_CC_CommonFunctions { f_IMS_MOCallSetup_AnnexC21_Steps5_13(v_InviteRequestWithSdp, v_MessageHeader_Response183); return v_InviteRequestWithSdp.Invite; } + + //---------------------------------------------------------------------------- + /* + * @desc common call establishement for speech call + * @return INVITE_Request + * @status APPROVED (IMS) + */ + function f_IMS_CC_MO_SpeechCall() runs on IMS_PTC return INVITE_Request + { + // Step 1 + f_IMS_CC_StartCall(IPCAN_MO_SpeechCall); + + // Step 2-13 + return f_IMS_CC_MO_SpeechCall_Signalling(); + } + } diff --git a/IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_Component.ttcn b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_Component.ttcn similarity index 86% rename from IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_Component.ttcn rename to IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_Component.ttcn index f0b213a..ddcb81c 100644 --- a/IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_Component.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_Component.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-02-01 22:22:56 +0100 (Sat, 01 Feb 2014) $ // $Rev: 10474 $ /******************************************************************************/ diff --git a/IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn similarity index 81% rename from IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn rename to IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn index 16588ba..e9ce28d 100644 --- a/IMS_PART4_IWD_14wk37/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_IPCAN_Coordination.ttcn @@ -2,19 +2,17 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-04-27 04:04:14 +0200 (Mon, 27 Apr 2015) $ +// $Rev: 13508 $ /******************************************************************************/ module IMS_CC_IPCAN_Coordination { import from NAS_CommonTypeDefs all; import from IMS_PTC_CoordMsg all; - import from IMS_CC_PCO_Handling all; - import from TestcaseProperties all; //============================================================================ @@ -27,12 +25,12 @@ module IMS_CC_IPCAN_Coordination { //---------------------------------------------------------------------------- template (value) IMS_IPCAN_Coordination_MSG cms_IMS_ProtocolConfigurationOptions(template (value) NAS_ProtocolConfigOptions_Type p_ProtocolConfigurationOptions) := - { + { /* @status APPROVED (IMS) */ ProtocolConfigOptions := p_ProtocolConfigurationOptions }; template (present) IMS_IPCAN_Coordination_MSG cmr_IMS_ProtocolConfigurationOptions := - { + { /* @status APPROVED (IMS) */ ProtocolConfigOptions := ? }; @@ -99,6 +97,7 @@ module IMS_CC_IPCAN_Coordination { * @desc Wait for PCOs from IMS/IPCAN PTC * @param p_Port * @return NAS_ProtocolConfigOptions_Type + * @status APPROVED (IMS) */ function f_IMS_IPCAN_WaitForPCOs(IMS_IPCAN_CO_ORD_PORT p_Port) return NAS_ProtocolConfigOptions_Type { @@ -115,33 +114,11 @@ module IMS_CC_IPCAN_Coordination { * @desc Send PCOs to the other side (IPCAN PTC) * @param p_Port * @param p_ProtocolConfigOptions + * @status APPROVED (IMS) */ function f_IMS_IPCAN_SendPCOs(IMS_IPCAN_CO_ORD_PORT p_Port, template (value) NAS_ProtocolConfigOptions_Type p_ProtocolConfigOptions) { f_IMS_IPCAN_SendCoOrdMsg(p_Port, cms_IMS_ProtocolConfigurationOptions(p_ProtocolConfigOptions)); } - - /* - * @desc get PCOs either from the IMS PTC or as sent by the UE - * @param p_Port - * @param p_ProtocolConfigOptions - * @return NAS_ProtocolConfigOptions_Type - */ - function f_IPCAN_GetPCOs(IMS_IPCAN_CO_ORD_PORT p_Port, - template (omit) NAS_ProtocolConfigOptions_Type p_ProtocolConfigOptions) return NAS_ProtocolConfigOptions_Type - { - var NAS_ProtocolConfigOptions_Type v_ProtocolConfigOptions := {}; - - if (isvalue(p_ProtocolConfigOptions)) { - v_ProtocolConfigOptions := valueof(p_ProtocolConfigOptions); - } - if (f_GetTestcaseAttrib_SpecificPCO(testcasename())) { - f_IMS_IPCAN_SendPCOs(p_Port, v_ProtocolConfigOptions); - v_ProtocolConfigOptions := f_IMS_IPCAN_WaitForPCOs(p_Port); - } else { - v_ProtocolConfigOptions := f_ProtocolConfigOption_GetResponse(v_ProtocolConfigOptions); - } - return v_ProtocolConfigOptions; - } } diff --git a/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_PCO_Handling.ttcn b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_PCO_Handling.ttcn new file mode 100644 index 0000000..2c11081 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/Common/IMS_CC_PCO_Handling.ttcn @@ -0,0 +1,83 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-01-18 13:59:16 +0100 (Sun, 18 Jan 2015) $ +// $Rev: 12866 $ +/******************************************************************************/ + +module IMS_CC_PCO_Handling { + import from CommonDefs all; + import from NAS_CommonTypeDefs all; + import from NAS_AuxiliaryDefsAndFunctions all; + + const O2_Type tsc_ConfigOptions_P_CSCF_IPv6_Request := '0001'O; /* @status APPROVED (IMS) */ + const O2_Type tsc_ConfigOptions_IM_CN_SubsystemFlag := '0002'O; /* @status APPROVED (IMS) */ + const O2_Type tsc_ConfigOptions_P_CSCF_IPv4_Request := '000C'O; /* @status APPROVED (IMS) */ + + + //============================================================================ + /* + * @desc Check protocol config options for container id + * @param p_ConfigOptions + * @param p_ContainerId + * @return boolean + * @status APPROVED (IMS) + */ + function f_ProtocolConfigOptions_Check(NAS_ProtocolConfigOptions_Type p_ConfigOptions, + O2_Type p_ContainerId) return boolean + { + var integer i; + + for (i := 0; i < lengthof(p_ConfigOptions); i := i + 1) { + if (p_ConfigOptions[i].protocolID == p_ContainerId) { + return true; + } + } + return false; + } + + //---------------------------------------------------------------------------- + /* + * @desc Evaluate PCOs sent by the UE + * @param p_ConfigOptionsRX + * @return template (value) NAS_ProtocolConfigOptions_Type + * @status APPROVED (IMS) + */ + function f_IMS_CC_ProtocolConfigOption_GetResponse(NAS_ProtocolConfigOptions_Type p_ConfigOptionsRX) return template (value) NAS_ProtocolConfigOptions_Type + { + var boolean v_IgnoreIM_CN_SubsystemSignalingFlag := false; + return f_NAS_GetProtocolConfigOptionList(p_ConfigOptionsRX, -, v_IgnoreIM_CN_SubsystemSignalingFlag); + } + + //---------------------------------------------------------------------------- + +/* function f_ProtocolConfigOption_Remove(NAS_ProtocolConfigOptions_Type p_ConfigOptList, */ +/* O2_Type p_ContainerId) return NAS_ProtocolConfigOptions_Type */ +/* { */ +/* var NAS_ProtocolConfigOptions_Type v_ConfigOptList := {}; */ +/* var integer i; */ +/* var integer k := 0; */ + +/* for (i := 0; i < lengthof(p_ConfigOptList); i := i + 1) { */ +/* if (p_ConfigOptList[i].protocolID != p_ContainerId) { */ +/* v_ConfigOptList[k] := p_ConfigOptList[i]; */ +/* k := k + 1; */ +/* } */ +/* } */ +/* return v_ConfigOptList; */ +/* } */ + + +/* function f_ProtocolConfigOption_GetResponse_No_P_CSCF_Addr(NAS_ProtocolConfigOptions_Type p_ConfigOptionsRx) return NAS_ProtocolConfigOptions_Type */ +/* { */ +/* var NAS_ProtocolConfigOptions_Type v_ConfigOptList := f_IMS_CC_ProtocolConfigOption_GetResponse(p_ConfigOptionsRx); */ +/* v_ConfigOptList := f_ProtocolConfigOption_Remove(v_ConfigOptList, tsc_ConfigOptions_P_CSCF_IPv6_Request); */ +/* v_ConfigOptList := f_ProtocolConfigOption_Remove(v_ConfigOptList, tsc_ConfigOptions_P_CSCF_IPv4_Request); // @sic CR R5s120530 change 1.11 TODO: Prose CR needed sic@ */ +/* return v_ConfigOptList; */ +/* } */ + +} diff --git a/IMS_PART4_IWD_14wk37/IMS/Common/TestcaseProperties.ttcn b/IMS_PART4_IWD_15wk38/IMS/Common/TestcaseProperties.ttcn similarity index 85% rename from IMS_PART4_IWD_14wk37/IMS/Common/TestcaseProperties.ttcn rename to IMS_PART4_IWD_15wk38/IMS/Common/TestcaseProperties.ttcn index 533349a..ddee867 100644 --- a/IMS_PART4_IWD_14wk37/IMS/Common/TestcaseProperties.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/Common/TestcaseProperties.ttcn @@ -3,11 +3,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-05 16:52:20 +0200 (Sat, 05 Jul 2014) $ -// $Rev: 11811 $ +// @version: IWD_15wk38 +// $Date: 2015-06-12 14:58:10 +0200 (Fri, 12 Jun 2015) $ +// $Rev: 13810 $ /******************************************************************************/ module TestcaseProperties { @@ -62,6 +62,11 @@ module TestcaseProperties { return false; } + function f_GetTestcaseAttrib_Eutra_NSLP(charstring p_Testcase) return boolean + { + return false; + } + function f_GetTestcaseAttrib_Eutra_Release(charstring p_Testcase) return charstring { select (p_Testcase) { @@ -73,6 +78,9 @@ module TestcaseProperties { case ("TC_12_19b") { return "rel_12"; } case ("TC_12_20") { return "rel_9"; } case ("TC_12_20a") { return "rel_12"; } + case ("TC_12_23") { return "rel_12"; } + case ("TC_12_24") { return "rel_12"; } + case ("TC_12_25") { return "rel_12"; } case ("TC_19_1_1") { return "rel_9"; } case ("TC_19_1_2") { return "rel_9"; } case ("TC_19_1_5") { return "rel_9"; } @@ -85,6 +93,7 @@ module TestcaseProperties { case ("TC_19_5_8") { return "rel_9"; } case ("TC_19_5_9") { return "rel_9"; } case ("TC_8_15") { return "rel_10"; } + case ("TC_8_16") { return "rel_9"; } } return ""; } @@ -99,6 +108,11 @@ module TestcaseProperties { return ""; } + function f_GetTestcaseAttrib_DTMF(charstring p_Testcase) return boolean + { + return false; + } + function f_GetTestcaseAttrib_SpecificPCO(charstring p_Testcase) return boolean { select (p_Testcase) { diff --git a/IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn b/IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn similarity index 89% rename from IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn rename to IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn index c561bcb..88afec0 100644 --- a/IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/MTC_Component_IMS_PART4.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ module MTC_Component_IMS_PART4 { diff --git a/IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn b/IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn similarity index 97% rename from IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn rename to IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn index ee1e788..4cf2343 100644 --- a/IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/MTC_Main_IMS_PART4.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ module MTC_Main_IMS_PART4 { diff --git a/IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/PART4_Adaptor.ttcn b/IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/PART4_Adaptor.ttcn similarity index 92% rename from IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/PART4_Adaptor.ttcn rename to IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/PART4_Adaptor.ttcn index e61adea..62c30db 100644 --- a/IMS_PART4_IWD_14wk37/IMS/PART4_Stubs/PART4_Adaptor.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/PART4_Stubs/PART4_Adaptor.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ module PART4_Adaptor { diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_Component.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Component.ttcn similarity index 92% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_Component.ttcn rename to IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Component.ttcn index e3872a2..96f7528 100644 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_Component.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Component.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-05-26 19:34:53 +0200 (Mon, 26 May 2014) $ // $Rev: 11335 $ /******************************************************************************/ diff --git a/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Functions.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Functions.ttcn new file mode 100644 index 0000000..35ae4b8 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Functions.ttcn @@ -0,0 +1,529 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-07-15 22:15:47 +0200 (Wed, 15 Jul 2015) $ +// $Rev: 14020 $ +/******************************************************************************/ + +module HTTP_Functions { + + import from CommonDefs all; + import from LibSip_SIPTypesAndValues all; // NOTE: the same header definitions are used for HTTP as for SIP (Authorization, ContentType, WwwAuthenticate, AuthenticationInfo, Expires) + import from LibSip_Common all; + import from HTTP_ASP_TypeDefs all; + import from HTTP_PTC_CoordMsg all; + import from HTTP_Templates all; + import from NAS_AuthenticationCommon all; + import from IMS_CommonDefs all; + import from IMS_CommonFunctions all; + import from IMS_CommonTemplates all; + import from IMS_SIP_Templates all; // NOTE: the same header definitions are used for HTTP as for SIP (cr_AuthorizationDef, cs_WwwAuthChallenge) + import from IP_ASP_TypeDefs all; + import from IMS_CC_Parameters all; + + import from uri_3gpp_gba language "XSD" all; + + + type union HTTP_AuthenticationResult_Type { /* @status APPROVED (IMS) */ + charstring Error, + HTTP_DATA_IND InitialRequest, + Null_Type NoError + }; + + template (value) HTTP_AuthenticationResult_Type cs_HTTP_AuthenticationResult_Error(charstring p_Error) := { Error := p_Error }; /* @status APPROVED (IMS) */ + template (value) HTTP_AuthenticationResult_Type cs_HTTP_AuthenticationResult_Timeout := cs_HTTP_AuthenticationResult_Error("timeout during HTTP authentication"); /* @status APPROVED (IMS) */ + template (value) HTTP_AuthenticationResult_Type cs_HTTP_AuthenticationResult_InitialRequest(HTTP_DATA_IND p_InitialRequest) := { InitialRequest := p_InitialRequest }; /* @status APPROVED (IMS) */ + template (value) HTTP_AuthenticationResult_Type cs_HTTP_AuthenticationResult_NoError := { NoError := true }; + + //---------------------------------------------------------------------------- + // BootstrappingInfo: + + /* + * @desc get system time and return HTTP Date/Time formatted according to RFC2616 cl. 3.3.1 and RFC822 cl. 5.1 + * @return charstring + * @status APPROVED (IMS) + */ + function fl_NextYearSameTime() return charstring + { + var Struct_tm_Type v_LocalTime; + var integer v_TimezoneSeconds; + + fx_GetSystemTime(v_LocalTime, v_TimezoneSeconds); + v_LocalTime.tm_year := v_LocalTime.tm_year + 1; // next year + + return f_UTC_FormatDateTime(v_LocalTime); + } + + template (value) BootstrappingInfo cs_BootstrappingInfo(charstring p_BTid) := + { /* @status APPROVED (IMS) */ + btid := p_BTid, + lifetime := fl_NextYearSameTime(), + extension_ := omit + }; + + //---------------------------------------------------------------------------- + // Key derivation function used for GBA + + /* + * @desc encode single input parameter for KDF + * @param p_Pi + * @return octetstring + * @status APPROVED (IMS) + */ + function fl_KDF_InputParameter(octetstring p_Pi) return octetstring + { + return p_Pi & int2oct(lengthof(p_Pi), 2); + } + + /* + * @desc Derivation of the TMPI acc. to TS 33.220 B.4 + * @param p_AuthParams + * @param p_PrivateUserId + * @param p_BsfServerDomainName + * @return charstring + * @status APPROVED (IMS) + */ + function fl_GBA_TMPI_Derivation(Common_AuthenticationParams_Type p_AuthParams, + charstring p_PrivateUserId, + charstring p_BsfServerDomainName) return charstring + { + var octetstring v_FC := '01'O; + var octetstring v_P0 := char2oct("gba-me"); + var octetstring v_P1 := bit2oct(p_AuthParams.RandValue); + var octetstring v_P2 := char2oct(p_PrivateUserId); + var octetstring v_P3 := char2oct(p_BsfServerDomainName); + var octetstring v_S := v_FC & fl_KDF_InputParameter(v_P0) & fl_KDF_InputParameter(v_P1) & fl_KDF_InputParameter(v_P2) & fl_KDF_InputParameter(v_P3); + var B256_Type v_Ks := p_AuthParams.CK & p_AuthParams.IK; + var B256_Type v_Result := fx_KeyDerivationFunction(tsc_KDF_HMAC_SHA_256, v_Ks, v_S); + var charstring v_TEMP := f_Bitstring2Base64(substr(v_Result, 0, 192)); // base64-encoding of the 24 most significant octets of the output of KDF + + return v_TEMP & "@tmpi.bsf.3gppnetwork.org"; + } + + /* + * @desc Derivation of the TMPI acc. to TS 33.220 B.5 + * @return charstring + * @status APPROVED (IMS) + */ + function fl_GBA_Passwd_Derivation() return charstring + { + var octetstring v_TLS_MK_Extr := int2oct(0, 48); // !!!! TBD - see 33.220 M.6.3 !!!! + var octetstring v_FC := '01'O; + var octetstring v_P0 := char2oct("GBA_Digest_RESP"); + var octetstring v_P1 := v_TLS_MK_Extr; + var octetstring v_S := v_FC & fl_KDF_InputParameter(v_P0) & fl_KDF_InputParameter(v_P1); + var B256_Type v_Key := int2bit(0, 256); // !!!! TBD - H(A1)see 33.220 M.6.3 !!!! + var B256_Type v_Result := fx_KeyDerivationFunction(tsc_KDF_HMAC_SHA_256, v_Key, v_S); + var charstring v_Passwd := f_Bitstring2Base64(v_Result); + + return v_Passwd; + } + + //---------------------------------------------------------------------------- + /* + * @desc build up Authorization header to be used for GBA authentication (34.229-1 cl. C.29.2 step 1 and 3) + * @param p_Username + * @param p_BsfAddress + * @param p_GbaInitialRequest (default value: false) + * @return template (present) Authorization + * @status APPROVED (IMS) + */ + function fl_Authorization_GBA(charstring p_Username, + charstring p_BsfAddress, + boolean p_GbaInitialRequest := false) return template (present) Authorization + { + var template (present) CommaParam_List v_DigestResponse; + var template (present) charstring v_DigestUri := ("/", "http://" & p_BsfAddress); + + v_DigestResponse := { + cr_GenericParam("credentials", "Digest"), + cr_GenericParam("username", p_Username), + cr_GenericParam("digest-uri", v_DigestUri) + }; + // add further parameters for step 3 + if (p_GbaInitialRequest) { + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam("nonce", "")); + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam("response", "")); + } + else { + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam("realm", tsc_GBA_Realm)); + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam("opaque", tsc_GBA_Opaque)); + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam_Common("cnonce", ?)); + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam("nc", "1")); + f_CommaParam_List_Add_RX(v_DigestResponse, cr_GenericParam("algorithm", tsc_AKAv1_MD5)); + } + return cr_Authorization_GBA(superset(all from v_DigestResponse)); + } + + /* + * @desc check digest response sent by the UE; returns error message (if any) or "" + * @param p_ServerName + * @param p_HttpRequest + * @param p_Password + * @return charstring + * @status APPROVED (IMS) + */ + function fl_HTTP_CheckDigestResponse(charstring p_ServerName, + HttpRequest_Type p_HttpRequest, + charstring p_Password) return charstring + { + var Authorization v_Authorization := p_HttpRequest.authorization; + var charstring v_Error := ""; + var bitstring v_XRES := oct2bit(char2oct(p_Password)); // @sic R5-151795: evaluation of the password moved from f_IMS_HTTP_Transaction (IMS_XCAP_PTC) to here sic@ */ + var integer v_XRESLength := lengthof(p_Password); + + // Check digest response + if (not ischosen(v_Authorization.body[0].digestResponse)) { + v_Error := p_ServerName & " - No digestResponse sent in the authorization header"; + } + else if (not f_IMS_Authorization_CheckDigestResponse(p_HttpRequest.requestLine.method, v_Authorization.body[0].digestResponse, v_XRES, v_XRESLength)) { + v_Error := p_ServerName & " - DigestResponse check failed"; + } + return v_Error; + } + + //---------------------------------------------------------------------------- + + template (value) TLSInfo_Type cs_TLSInfo_PSK(template (omit) octetstring p_Psk := omit, + template (omit) TLS_CIPHER_Type p_CipherSuite := psk_3DES_EDE_CBC_SHA) := + { + tlsType := pskTLS, + psk := p_Psk, + cipherSuite := p_CipherSuite + }; + + template (value) HttpServerInfo_Type cs_HttpServerInfo(IP_AddrInfo_Type p_ServerAddr, + PortNumber_Type p_PortNumber, + IP_DrbInfo_Type p_DrbInfo, + template (omit) TLSInfo_Type p_TlsInfo := omit) := + { /* @status APPROVED (IMS) */ + serverAddr := p_ServerAddr, + serverPort := p_PortNumber, + drbInfo := p_DrbInfo, + tlsInfo := p_TlsInfo + }; + + template (value) HTTP_CTRL_REQ cs_HttpCtlReq(template (value) HttpServerList_Type p_HttpServerList) := + { /* @status APPROVED (IMS) */ + httpServerList := p_HttpServerList + }; + + template (present) HTTP_CTRL_CNF cr_HttpCtlCnf := { errorInfo := omit }; /* @status APPROVED (IMS) */ + + //============================================================================ + /* + * @desc Configure the http server + * @param p_HttpCtrlPort + * @param p_XcapServerAddrAndPort_List + * @param p_BsfServerAddrAndPort_List + * @param p_DrbRoutingInfo + * @status APPROVED (IMS) + */ + function f_HTTP_Configure(HTTP_CTRL_PORT p_HttpCtrlPort, + IP_SocketList_Type p_XcapServerAddrAndPort_List, + IP_SocketList_Type p_BsfServerAddrAndPort_List, + IP_DrbInfo_Type p_DrbRoutingInfo) + { /* @sic R5-151795: sic@ + * - p_TLSInfo is currently not used + * - HTTP implementation does not distinguish servers for XCAP or BSF but there can be one or more than one HTTP servers: + * responses sent by the HTTP implementation are sent back using the same connection as the corresponding request */ + var template (value) HttpServerList_Type v_HttpServerList; + var integer i; + var integer k := 0; + + for (i := 0; i < lengthof(p_XcapServerAddrAndPort_List); i := i + 1) { // @sic R5s150148 sic@ + v_HttpServerList[k] := cs_HttpServerInfo(p_XcapServerAddrAndPort_List[i].IpAddr, + p_XcapServerAddrAndPort_List[i].Port, + p_DrbRoutingInfo); + k := k + 1; + } + for (i := 0; i < lengthof(p_BsfServerAddrAndPort_List); i := i + 1) { // @sic R5s150148 sic@ + v_HttpServerList[k] := cs_HttpServerInfo(p_BsfServerAddrAndPort_List[i].IpAddr, + p_BsfServerAddrAndPort_List[i].Port, + p_DrbRoutingInfo); + k := k + 1; + } + p_HttpCtrlPort.send(cs_HttpCtlReq(v_HttpServerList)); + p_HttpCtrlPort.receive(cr_HttpCtlCnf) + } + + //============================================================================ + /* + * @desc Receive Http Request from UE + * @param p_Port + * @param p_Watchdog + * @param p_InactivityDuration (default value: 9999.0) + * @param p_HttpRequest (default value: cr_HttpRequest) + * @return template (omit) HTTP_DATA_IND + * @status APPROVED (IMS) + */ + function f_HTTP_ReceiveRequest(HTTP_DATA_PORT p_Port, + timer p_Watchdog, + float p_InactivityDuration := 9999.0, + template (present) HttpRequest_Type p_HttpRequest := cr_HttpRequest) return template (omit) HTTP_DATA_IND + { + var HTTP_DATA_IND v_DataInd; + var template (omit) HTTP_DATA_IND v_HTTP_DATA_IND := omit; + timer t_InactivityTimer; + + t_InactivityTimer.start(p_InactivityDuration); + + alt { + [] p_Port.receive(cr_HttpDataInd(?, p_HttpRequest)) -> value v_DataInd + { + v_HTTP_DATA_IND := v_DataInd; + } + [] p_Port.receive(cr_HttpDataInd(?, ?)) + { + repeat; // ignore any unexpected messages + } + [] t_InactivityTimer.timeout {} + [] p_Watchdog.timeout {} + } + t_InactivityTimer.stop; + return v_HTTP_DATA_IND; + } + + //---------------------------------------------------------------------------- + /* + * @desc Send Http Response to UE + * @param p_Port + * @param p_HttpRoutingInfo + * @param p_HttpResponse + * @status APPROVED (IMS) + */ + function f_HTTP_SendResponse(HTTP_DATA_PORT p_Port, + template (value) IP_Connection_Type p_HttpRoutingInfo, + template (value) HttpResponse_Type p_HttpResponse) + { + p_Port.send(cs_HttpDataReq(p_HttpRoutingInfo, p_HttpResponse)); + } + + //---------------------------------------------------------------------------- + /* + * @desc build up default receive template for UserAgent header for XCAP + * @return template UserAgent + * @status APPROVED (IMS) + */ + function fl_UserAgentRX_XCAP() return template UserAgent + { + var ServerVal_List v_UserAgentTokens := {}; + + if (pc_HttpGBAAuthentication) { + v_UserAgentTokens := {"3gpp-gba"}; + } + return f_UserAgentRX(v_UserAgentTokens); + } + + //---------------------------------------------------------------------------- + /* + * @desc build up WwwAuthenticate for XCAP authentication + * @param p_AuthenticationMethod + * @param p_HomeDomainName + * @param p_Nonce + * @return template (value) WwwAuthenticate + * @status APPROVED (IMS) + */ + function fl_WwwAuthenticate_XCAP(HTTP_AuthenticationMethod_Type p_AuthenticationMethod, + charstring p_HomeDomainName, + charstring p_Nonce) return template (value) WwwAuthenticate + { + var template (value) CommaParam_List v_ChallangeParams; + var charstring v_Realm; + + select (p_AuthenticationMethod) { + case (httpDigestAndGbaAuthentication) { + v_Realm := "3GPP-bootstrapping@" & p_HomeDomainName; + } + case else { + v_Realm := p_HomeDomainName; + } + } + v_ChallangeParams := { + cs_GenericParamQuoted("realm", v_Realm), + cs_GenericParamQuoted("algorithm", tsc_HTTP_MD5), + cs_GenericParamQuoted("qop", "auth"), + cs_GenericParamQuoted("nonce", p_Nonce), + cs_GenericParamQuoted("opaque", tsc_IMS_Opaque) + }; + return cs_HTTP_WwwAuthenticate(v_ChallangeParams); + } + + //---------------------------------------------------------------------------- + /* + * @desc build up WwwAuthenticate for GBA authentication + * @param p_Nonce + * @return template (value) WwwAuthenticate + * @status APPROVED (IMS) + */ + function fl_WwwAuthenticate_GBA(charstring p_Nonce) return template (value) WwwAuthenticate + { + var template (value) CommaParam_List v_ChallangeParams; + + v_ChallangeParams := { + cs_GenericParamQuoted("challenge", "Digest"), + cs_GenericParamQuoted("realm", "bsf.home1.net"), + cs_GenericParamQuoted("algorithm", tsc_AKAv1_MD5), + cs_GenericParamQuoted("qop", "auth-int"), + cs_GenericParamQuoted("nonce", p_Nonce), + cs_GenericParamQuoted("opaque", tsc_GBA_Opaque) + }; + return cs_HTTP_WwwAuthenticate(v_ChallangeParams); + } + + //---------------------------------------------------------------------------- + /* + * @desc build up AuthenticationInfo for GBA authentication + * @param p_CNonce + * @param p_NextNonce + * @return template (value) AuthenticationInfo + * @status APPROVED (IMS) + */ + function fl_AuthenticationInfo_GBA(charstring p_CNonce, + charstring p_NextNonce) return template (value) AuthenticationInfo + { + var template (value) CommaParam_List v_AuthInfoParams; + + v_AuthInfoParams := { + cs_GenericParamQuoted("qop", "auth-int"), + cs_GenericParamQuoted("rspauth", p_CNonce), + cs_GenericParamQuoted("cnonce", p_CNonce), + cs_GenericParamQuoted("nc", "1"), + cs_GenericParamQuoted("opaque", tsc_GBA_Opaque), + cs_GenericParamQuoted("nextnonce", p_NextNonce) + }; + return cs_AuthenticationInfo(v_AuthInfoParams); + } + + //---------------------------------------------------------------------------- + /* + * @desc HTTP authentication + * @param p_HttpDataPort + * @param p_Watchdog + * @param p_AuthenticationMethod + * @param p_PrivateUserId + * @param p_HomeDomainName + * @param p_XcapUsername + * @return template (value) HTTP_AuthenticationResult_Type + * @status APPROVED (IMS) + */ + function f_HTTP_Authentication(HTTP_DATA_PORT p_HttpDataPort, + timer p_Watchdog, + HTTP_AuthenticationMethod_Type p_AuthenticationMethod, + charstring p_PrivateUserId, + charstring p_HomeDomainName, + charstring p_XcapUsername) return template (value) HTTP_AuthenticationResult_Type + { /* @sic R5-151795: restructuring of authentication procedure sic@ */ + var template (omit) HTTP_DATA_IND v_HTTP_DATA_IND; + var HTTP_DATA_IND v_InitialRequestXCAP; + var HTTP_DATA_IND v_InitialRequestGBA; + var HTTP_DATA_IND v_SubsequentRequestXCAP; + var HTTP_DATA_IND v_SubsequentRequestGBA; + var charstring v_RequestLineUri; + var charstring v_UsernameXCAP := p_XcapUsername; + var charstring v_UsernameGBA; + var charstring v_PasswordXCAP; + var charstring v_PasswordGBA; + var Common_AuthenticationParams_Type v_AuthParams := f_IMS_AuthenticationInit(tsc_IMS_AuthRAND); + var charstring v_Nonce := f_Bitstring2Base64(v_AuthParams.RandValue & v_AuthParams.AUTN); + var charstring v_NextNonce := v_Nonce; + var charstring v_CNonce; + var ServerVal_List v_ProductTokenList; + var template (value) WwwAuthenticate v_WwwAuthenticate; + var template (value) AuthenticationInfo v_AuthenticationInfo; + var template (value) ContentType v_ContentType; + var charstring v_MessageBody; + var template UserAgent v_UserAgent; + var template Authorization v_Authorization; + var charstring v_BsfServerDomainName := "bsf.operator.com"; // !!!! FFS: to be replaced by PIXIT ?? !!!! + var charstring v_BTid := f_Bitstring2Base64(v_AuthParams.RandValue) & "@" & v_BsfServerDomainName; // see 33.220 cl. 4.5.2 + var boolean v_GbaInitialRequest := true; + var charstring v_Error := ""; + + // 29.1 step 2 + v_UserAgent := fl_UserAgentRX_XCAP(); + v_Authorization := *; + v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(p_HttpDataPort, p_Watchdog, -, cr_HttpRequest(-, v_UserAgent, v_Authorization)); + if (not ispresent(v_HTTP_DATA_IND)) { return cs_HTTP_AuthenticationResult_Timeout; } + v_InitialRequestXCAP := valueof(v_HTTP_DATA_IND); + + // 29.1 step 3a + v_ProductTokenList := {"XCAP-Server"}; + v_WwwAuthenticate := fl_WwwAuthenticate_XCAP(p_AuthenticationMethod, p_HomeDomainName, v_Nonce); + f_HTTP_SendResponse(p_HttpDataPort, v_InitialRequestXCAP.routingInfo, cs_HttpResponse_401(v_ProductTokenList, v_WwwAuthenticate)); + + if (p_AuthenticationMethod != httpDigestAndGbaAuthentication) { // HTTP digest authentication only + v_PasswordXCAP := "xcap"; /* @sic R5s130794 Change 25 sic@ + @sic R5-151795: evaluation of the password moved from f_IMS_HTTP_Transaction (IMS_XCAP_PTC) to here sic@ */ + } + else { // GBA authentication + + if (pc_TMPI_forGBA) { + v_UsernameGBA := fl_GBA_TMPI_Derivation(v_AuthParams, p_PrivateUserId, v_BsfServerDomainName); + } else { + v_UsernameGBA := p_PrivateUserId; + } + + // 29.2 step 1 + v_ProductTokenList := {"3gpp-gba-tmpi"}; + v_UserAgent := f_UserAgentRX(v_ProductTokenList); + v_Authorization := fl_Authorization_GBA(v_UsernameGBA, v_BsfServerDomainName, v_GbaInitialRequest); + v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(p_HttpDataPort, p_Watchdog, -, cr_HttpRequest(-, v_UserAgent, v_Authorization)); + if (not ispresent(v_HTTP_DATA_IND)) { return cs_HTTP_AuthenticationResult_Timeout; } + v_InitialRequestGBA := valueof(v_HTTP_DATA_IND); + + // 29.2 step 2 + v_ProductTokenList := {"BSF-Server"}; + v_WwwAuthenticate := fl_WwwAuthenticate_GBA(v_Nonce); + f_HTTP_SendResponse(p_HttpDataPort, v_InitialRequestGBA.routingInfo, cs_HttpResponse_401(v_ProductTokenList, v_WwwAuthenticate)); + + // 29.2 step 3 + v_RequestLineUri := v_InitialRequestGBA.httpRequest.requestLine.uri; // same URI as in previous request */ + v_UserAgent := *; + v_Authorization := fl_Authorization_GBA(v_UsernameGBA, v_BsfServerDomainName); + v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(p_HttpDataPort, p_Watchdog, -, cr_HttpRequest(cr_HttpRequestLine(v_RequestLineUri), v_UserAgent, v_Authorization)); + if (not ispresent(v_HTTP_DATA_IND)) { return cs_HTTP_AuthenticationResult_Timeout; } + v_SubsequentRequestGBA := valueof(v_HTTP_DATA_IND); + + // Check authentication response + v_PasswordGBA := "???"; // !!!! FFS !!!! prose does not say much about the password for GBA authentication + v_Error := fl_HTTP_CheckDigestResponse("BSF-Server", v_SubsequentRequestGBA.httpRequest, v_PasswordGBA); + if (v_Error != "") { + return cs_HTTP_AuthenticationResult_Error(v_Error); + } + v_CNonce := f_SIP_CommaParamList_GetParamValue(v_SubsequentRequestGBA.httpRequest.authorization.body[0].digestResponse, "cnonce"); + + // 29.2 step 4 + v_ProductTokenList := {"BSF-Server", "3gpp-gba-tmpi"}; + v_AuthenticationInfo := fl_AuthenticationInfo_GBA(v_CNonce, v_NextNonce); + v_ContentType := cs_ContentType("application/vnd.3gpp.bsf+xml"); + v_MessageBody := oct2char(bit2oct(encvalue(cs_BootstrappingInfo(v_BTid)))); + + f_HTTP_SendResponse(p_HttpDataPort, + v_SubsequentRequestGBA.routingInfo, + cs_HttpResponse_200(v_ProductTokenList, -, v_AuthenticationInfo, v_ContentType, v_MessageBody)); + + v_PasswordXCAP := fl_GBA_Passwd_Derivation(); + v_UsernameXCAP := v_BTid; + } + + // 29.1 step 3b + v_UserAgent := fl_UserAgentRX_XCAP(); + v_Authorization := cr_AuthorizationCommon(v_UsernameXCAP, p_HomeDomainName, v_Nonce, v_InitialRequestXCAP.httpRequest.requestLine.uri, tsc_HTTP_MD5); + v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(p_HttpDataPort, p_Watchdog, -, cr_HttpRequest(-, v_UserAgent, v_Authorization)); + if (not ispresent(v_HTTP_DATA_IND)) { return cs_HTTP_AuthenticationResult_Timeout; } + v_SubsequentRequestXCAP := valueof(v_HTTP_DATA_IND); + + // Check authentication response + v_Error := fl_HTTP_CheckDigestResponse("XCAP-Server", v_SubsequentRequestXCAP.httpRequest, v_PasswordXCAP); + if (v_Error != "") { + return cs_HTTP_AuthenticationResult_Error(v_Error); + } + + return cs_HTTP_AuthenticationResult_InitialRequest(v_SubsequentRequestXCAP); + } +} diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn similarity index 71% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn rename to IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn index e6d215c..9597a87 100644 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_PTC_CoordMsg.ttcn @@ -2,35 +2,39 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-03 16:13:28 +0200 (Wed, 03 Sep 2014) $ -// $Rev: 12004 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ /******************************************************************************/ module HTTP_PTC_CoordMsg { import from CommonDefs all; - import from HTTP_ASP_TypeDefs all; import from IP_ASP_TypeDefs all; - import from NAS_AuthenticationCommon all; type record HTTP_ConfigurationParams_Type { /* @status APPROVED (IMS) */ - HttpAuthenticationMechanism_Type HttpAuthenticationMechanism, - IP_Socket_Type XcapServerAddrAndPort, - IP_Socket_Type BsfServerAddrAndPort optional, + IP_SocketList_Type XcapServerAddrAndPort_List, /* @sic R5s150148 sic@ */ + IP_SocketList_Type BsfServerAddrAndPort_List, /* @sic R5s150148 sic@ */ IP_DrbInfo_Type DrbRoutingInfo, + HTTP_AuthenticationMethod_Type AuthenticationMethod, + charstring PrivateUserId, charstring HomeDomainName, charstring XcapUsername, /* Username to be used for Authorisation */ charstring XcapUserId, /* public user indentity to be used for XCAP signalling (XUI) */ charstring XcapRootUri }; + type enumerated HTTP_AuthenticationMethod_Type { /* @status APPROVED (IMS) */ + noAuthentication, + httpDigestAuthentication, + httpDigestAndGbaAuthentication + }; + type record HTTP_TransactionParams_Type { /* @status APPROVED (IMS) */ float MaxDuration, - float InactivityDuration, - Common_AuthenticationParams_Type AuthenticationParams optional + float InactivityDuration }; type union IMS_HTTP_Command_Type { /* @status APPROVED (IMS) */ diff --git a/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Templates.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Templates.ttcn new file mode 100644 index 0000000..d3196ed --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_Templates.ttcn @@ -0,0 +1,323 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ +/******************************************************************************/ + +module HTTP_Templates { + + import from CommonDefs all; + import from IP_ASP_TypeDefs all; + import from HTTP_ASP_TypeDefs all; + import from LibSip_SIPTypesAndValues all; // NOTE: the same header definitions are used for HTTP as for SIP (Authorization, ContentType, WwwAuthenticate, AuthenticationInfo, Expires) + import from LibSip_Common all; + import from IMS_SIP_Templates all; // NOTE: the same header definitions are used for HTTP as for SIP (cr_AuthorizationDef, cs_WwwAuthChallenge) + + const charstring tsc_HTTP_Version_1_1 := "HTTP/1.1"; /* @status APPROVED (IMS) */ + const charstring tsc_Simservs_ContentType_Document := "application/vnd.etsi.simservs+xml"; /* @status APPROVED (IMS) */ + const charstring tsc_Simservs_ContentType_Element := "application/xcap-el+xml"; /* @status APPROVED (IMS) */ + const charstring tsc_Simservs_ContentType_Attribute := "application/xcap-att+xml"; /* @status APPROVED (IMS) */ + + const charstring tsc_GBA_Realm := "bsf.home1.net"; /* @status APPROVED (IMS) */ + const charstring tsc_GBA_Opaque := "5ccc069c403ebaf9f0171e9517f30e41"; /* note: this is different than tsc_IMS_Opaque + @status APPROVED (IMS) */ + //---------------------------------------------------------------------------- + + template (value) WwwAuthenticate cs_HTTP_WwwAuthenticate(template (value) CommaParam_List p_ChallangeParams) := + { /* @status APPROVED (IMS) */ + fieldName := WWW_AUTHENTICATE_E, + challenge := { + digestCln := p_ChallangeParams + } + }; + + //---------------------------------------------------------------------------- + + template (value) AuthenticationInfo cs_AuthenticationInfo(template (value) CommaParam_List p_AuthInfoParams) := + { /* @status APPROVED (IMS) */ + fieldName := AUTHENTICATION_INFO_E, + ainfo := p_AuthInfoParams + }; + + //---------------------------------------------------------------------------- + + template (present) Authorization cr_Authorization_GBA(template (present) CommaParam_List p_DigestResponse) := + { /* @status APPROVED (IMS) */ + fieldName := AUTHORIZATION_E, + body := { + { + digestResponse := p_DigestResponse + } + } + }; + + //---------------------------------------------------------------------------- + + template (present) HttpRequestLine_Type cr_HttpRequestLine(template (present) charstring p_Uri := ?) := + { /* @status APPROVED (IMS) */ + method := ("GET", "PUT", "DELETE"), + uri := p_Uri, // XCAP selection expression, RFC 4825 + version := tsc_HTTP_Version_1_1 + }; + + //---------------------------------------------------------------------------- + /* + * @desc returns integer formated as "%02d" + * @param p_Value + * @return charstring + * @status APPROVED (IMS) + */ + function fl_FormatIntegerAsTwoDigits(UInt_Type p_Value) return charstring + { + var UInt_Type v_Value := p_Value mod 100; + var charstring v_String := int2str(v_Value); + + if (v_Value < 10) { + v_String := "0" & v_String; + } + return v_String; + } + + /* + * @desc return HTTP Date/Time formatted according to RFC2616 cl. 3.3.1 and RFC822 cl. 5.1 + * @param p_LocalTime + * @param p_TimezoneSeconds + * @return charstring + * @status APPROVED (IMS) + */ + function f_HTTP_FormatHttpDate(Struct_tm_Type p_LocalTime, + integer p_TimezoneSeconds) return charstring + { + const CharStringList_Type tsc_Month := { "Jan", "Feb","Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; + const CharStringList_Type tsc_WDay := { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" }; + var charstring v_Year := int2str(p_LocalTime.tm_year + 1900); + var charstring v_Month := tsc_Month[p_LocalTime.tm_mon]; + var charstring v_WDay := tsc_WDay[p_LocalTime.tm_wday]; + var charstring v_MDay := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_mday); + var charstring v_Hour := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_hour); + var charstring v_Minute := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_min); + var charstring v_Second := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_sec); + var integer v_TimezoneSeconds := p_TimezoneSeconds; + var charstring v_TimezoneSign; + var charstring v_TimezoneHours; + var charstring v_TimezoneMinutes; + + if (p_LocalTime.tm_isdst > 0) { // see f_BCD_TimestampWithTimezone + v_TimezoneSeconds := v_TimezoneSeconds + 3600; + } + if (v_TimezoneSeconds < 0) { + v_TimezoneSeconds := -v_TimezoneSeconds; + v_TimezoneSign := "-"; + } else { + v_TimezoneSign := "+"; + } + v_TimezoneHours := fl_FormatIntegerAsTwoDigits(v_TimezoneSeconds / 3600); + v_TimezoneMinutes := fl_FormatIntegerAsTwoDigits((v_TimezoneSeconds mod 3600) / 60); + + return v_WDay & ", " & v_MDay & " " & v_Month & " " & v_Year & " " & v_Hour & ":" & v_Minute & ":" & v_Second & " " & v_TimezoneSign & v_TimezoneHours & v_TimezoneMinutes; + } + + + /* + * @desc format date and time acc. to UTC + * @param p_LocalTime + * @return charstring + * @status APPROVED (IMS) + */ + function f_UTC_FormatDateTime(Struct_tm_Type p_LocalTime) return charstring + { + var charstring v_Year := int2str(p_LocalTime.tm_year + 1900); + var charstring v_Month := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_mon); + var charstring v_MDay := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_mday); + var charstring v_Hour := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_hour); + var charstring v_Minute := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_min); + var charstring v_Second := fl_FormatIntegerAsTwoDigits(p_LocalTime.tm_sec); + + return v_Year & "-" & v_Month & "-" & v_MDay & "T" & v_Hour & ":" & v_Minute & ":" & v_Second; + } + + /* + * @desc get system time and return HTTP Date/Time formatted according to RFC2616 cl. 3.3.1 and RFC822 cl. 5.1 + * @return charstring + * @status APPROVED (IMS) + */ + function fl_GetHttpDate() return charstring + { + var Struct_tm_Type v_LocalTime; + var integer v_TimezoneSeconds; + + fx_GetSystemTime(v_LocalTime, v_TimezoneSeconds); + + return f_HTTP_FormatHttpDate(v_LocalTime, v_TimezoneSeconds); + } + + template (value) Date cs_HttpDate := + { /* @status APPROVED (IMS) */ + fieldName := DATE_E, + sipDate := fl_GetHttpDate() + }; + + //---------------------------------------------------------------------------- + + template (value) SIP_ETag cs_HttpETag(charstring p_EntityTag) := + { /* @status APPROVED (IMS) */ + fieldName := SIP_ETAG_E, + entityTag := p_EntityTag + }; + + template (value) Server cs_Server(template (value) ServerVal_List p_ProductTokens) := + { /* @status APPROVED (IMS) */ + fieldName := SERVER_E, + serverBody := p_ProductTokens + }; + + template (present) UserAgent cr_UserAgent(template (present) ServerVal_List p_ProductTokens) := + { /* @status APPROVED (IMS) */ + fieldName := USER_AGENT_E, + userAgentBody := p_ProductTokens + }; + + /* + * @desc build up common receive template for UserAgent header + * @param p_ProductTokens + * @return template UserAgent + * @status APPROVED (IMS) + */ + function f_UserAgentRX(template (present) ServerVal_List p_ProductTokens) return template UserAgent + { + var template UserAgent v_UserAgent := *; + var template (present) ServerVal_List v_ProductTokens; + + if (lengthof(p_ProductTokens) > 0) { + v_ProductTokens := superset(all from p_ProductTokens); + v_UserAgent := cr_UserAgent(v_ProductTokens); + } + return v_UserAgent; + } + + //---------------------------------------------------------------------------- + + template (present) HttpRequest_Type cr_HttpRequest(template (present) HttpRequestLine_Type p_HttpRequestLine := cr_HttpRequestLine, + template UserAgent p_UserAgent := *, + template Authorization p_Authorization := *) := + { /* @status APPROVED (IMS) */ + requestLine := p_HttpRequestLine, + userAgent := p_UserAgent, // @sic R5-151795 sic@ + authorization := p_Authorization, + contentType := *, + x3GPPIntendedIdentity := *, + messageBody := * + }; + + template (present) HTTP_DATA_IND cr_HttpDataInd(template (present) IP_Connection_Type p_HttpRoutingInfo, + template (present) HttpRequest_Type p_HttpRequest) := + { /* @status APPROVED (IMS) */ + routingInfo := p_HttpRoutingInfo, + httpRequest := p_HttpRequest + }; + + //---------------------------------------------------------------------------- + /* + * @desc return ContentLength header with valid length or omit when there is no message body + * @param p_MessageBody + * @return template (omit) ContentLength + * @status APPROVED (IMS) + */ + function fl_HttpContentLength(template (omit) charstring p_MessageBody) return template (omit) ContentLength + { + if (isvalue(p_MessageBody)) { + return cs_ContentLength(lengthof(p_MessageBody)); + } + return omit; + } + + //---------------------------------------------------------------------------- + + template (value) HttpStatusLine_Type cs_HttpStatusLine(integer p_Code, + charstring p_ReasonPhrase) := + { /* @status APPROVED (IMS) */ + version := tsc_HTTP_Version_1_1, + code := p_Code, + reasonPhrase := p_ReasonPhrase + }; + + template (value) HttpStatusLine_Type cs_HttpStatusLine_200 := cs_HttpStatusLine(200, "OK"); /* @status APPROVED (IMS) */ + template (value) HttpStatusLine_Type cs_HttpStatusLine_401 := cs_HttpStatusLine(401, "Unauthorized"); /* @status APPROVED (IMS) */ + template (value) HttpStatusLine_Type cs_HttpStatusLine_404 := cs_HttpStatusLine(404, "File Not Found"); /* @status APPROVED (IMS) */ + + template (value) HttpResponse_Type cs_HttpResponse(template (value) HttpStatusLine_Type p_HttpStatusLine, + template (omit) SIP_ETag p_HttpETag := omit, + ServerVal_List p_ServerProductList, + template (omit) WwwAuthenticate p_WwwAuthenticate := omit, + template (omit) AuthenticationInfo p_AuthenticationInfo := omit, + template (omit) Expires p_Expires := omit, + template (omit) ContentType p_ContentType := omit, + template (omit) charstring p_MessageBody := omit) := + { /* @status APPROVED (IMS) */ + statusLine := p_HttpStatusLine, + date := cs_HttpDate, // @sic R5-151795 sic@ + eTag := p_HttpETag, // @sic R5-151795 sic@ + server := cs_Server(p_ServerProductList), // @sic R5-151795 sic@ + wwwauthenticate := p_WwwAuthenticate, + authenticationInfo := p_AuthenticationInfo, + contentType := p_ContentType, + contentLength := fl_HttpContentLength(p_MessageBody), // @sic R5-151795 sic@ + expires := p_Expires, + messageBody := p_MessageBody + }; + + template (value) HttpResponse_Type cs_HttpResponse_200(ServerVal_List p_ServerProductList, // @sic R5-151795 sic@ + template (omit) SIP_ETag p_HttpETag := omit, // @sic R5-151795 sic@ + template (omit) AuthenticationInfo p_AuthenticationInfo := omit, // @sic R5-151795 sic@ + template (omit) ContentType p_ContentType := omit, + template (omit) charstring p_MessageBody := omit) := + /* @status APPROVED (IMS) */ + cs_HttpResponse(cs_HttpStatusLine_200, p_HttpETag, p_ServerProductList, -, p_AuthenticationInfo, -, p_ContentType, p_MessageBody); + + template (value) HttpResponse_Type cs_HttpResponse_401(ServerVal_List p_ServerProductList, // @sic R5-151795 sic@ + template (omit) WwwAuthenticate p_Authorization) := + /* @status APPROVED (IMS) */ + cs_HttpResponse(cs_HttpStatusLine_401, -, p_ServerProductList, p_Authorization); + + template (value) HttpResponse_Type cs_HttpResponse_404(ServerVal_List p_ServerProductList) := // @sic R5-151795 sic@ + /* @status APPROVED (IMS) */ + cs_HttpResponse(cs_HttpStatusLine_404, -, p_ServerProductList); + + //---------------------------------------------------------------------------- + /* + * @desc build HTTP 200 response + * @param p_ServerProductList + * @param p_EntityTag + * @param p_MediaType (default value: omit) + * @param p_MessageBody (default value: omit) + * @return template (value) HttpResponse_Type + * @status APPROVED (IMS) + */ + function f_HttpResponse_200(ServerVal_List p_ServerProductList, + charstring p_EntityTag, + template (omit) charstring p_MediaType := omit, + template (omit) charstring p_MessageBody := omit) return template (value) HttpResponse_Type + { /* @sic R5-151795: new parameters p_Server, p_ETag sic@ */ + var template (omit) ContentType v_ContentType := omit; + var template (value) SIP_ETag v_ETag := cs_HttpETag(p_EntityTag); // @sic R5-151795 sic@ + + if (ispresent(p_MediaType)) { + v_ContentType := cs_ContentType(valueof(p_MediaType)); + } + return cs_HttpResponse_200(p_ServerProductList, v_ETag, -, v_ContentType, p_MessageBody); + } + + template (value) HTTP_DATA_REQ cs_HttpDataReq(template (value) IP_Connection_Type p_HttpRoutingInfo, + template (value) HttpResponse_Type p_HttpResponse) := + { /* @status APPROVED (IMS) */ + routingInfo := p_HttpRoutingInfo, + httpResponse := p_HttpResponse + }; + + +} diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn similarity index 78% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn rename to IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn index 0a4fe8f..fb1f13c 100644 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/HTTP_XCAP_Main.ttcn @@ -2,20 +2,23 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-03 16:13:28 +0200 (Wed, 03 Sep 2014) $ -// $Rev: 12004 $ +// @version: IWD_15wk38 +// $Date: 2015-06-09 10:17:23 +0200 (Tue, 09 Jun 2015) $ +// $Rev: 13695 $ /******************************************************************************/ module HTTP_XCAP_Main { import from CommonDefs all; + import from LibSip_SIPTypesAndValues all; // NOTE: the same header definitions are used for HTTP as for SIP (Authorization, ContentType, WwwAuthenticate, AuthenticationInfo, Expires) import from IMS_CommonDefs all; + import from IP_ASP_TypeDefs all; import from HTTP_Component all; import from HTTP_PTC_CoordMsg all; import from HTTP_ASP_TypeDefs all; - import from HTTP_TemplatesAndFunctions all; + import from HTTP_Templates all; + import from HTTP_Functions all; import from XCAP_ASP_TypeDefs all; import from XCAP_TemplatesAndFunctions all; @@ -47,7 +50,8 @@ module HTTP_XCAP_Main { function fl_DocSelector_Build(charstring p_XcapRootUri, charstring p_UserId) return charstring { - var charstring v_DocSelector := p_XcapRootUri & "/simservs.ngn.etsi.org/users/" & p_UserId & "/simservs.xml"; + var charstring v_DocSelector := p_XcapRootUri & "/simservs.ngn.etsi.org/users/" & p_UserId & "/simservs.xml"; /* @sic R5s141051 change 4: "/" before root URI sic@ + @sic R5s150030, R5-150355, R5s150202 "/" shall be part of px_XCAP_RootUri sic@ */ // FFS convert character ':' to %3A and character '@' to %40 according to the url encoding rules return v_DocSelector; } @@ -108,7 +112,6 @@ module HTTP_XCAP_Main { p_Port.send(v_Response); } - //---------------------------------------------------------------------------- /* * @desc check validity of the request line of an HTTP request @@ -195,12 +198,16 @@ module HTTP_XCAP_Main { var template (omit) charstring v_ContentType; var template (omit) charstring v_XmlBody; var HttpRequest_Type v_HttpRequest; - var HttpRoutingInfo_Type v_HttpRoutingInfo; + var IP_Connection_Type v_HttpRoutingInfo; var XCAP_RSP v_XcapResponse; + var charstring v_ETag_UpperPart := "478fb2358f7"; // @sic R5-151795 sic@ + var integer v_ETag_LowerPartInteger := 0; // @sic R5-151795 sic@ + var charstring v_ETag; + var ServerVal_List v_ServerProductList := { "XCAP-Server" }; while (not v_Finished) { if (not isvalue(v_HTTP_DATA_IND)) { - v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(HTTPDATA, p_Watchdog, p_InactivityDuration); // returns omit in case of timeout + v_HTTP_DATA_IND := f_HTTP_ReceiveRequest(HTTPDATA, p_Watchdog, v_InactivityDuration); // returns omit in case of timeout @sic R5s150269: v_InactivityDuration instead of p_InactivityDuration sic@ } v_InactivityDuration := p_InactivityDuration; // => apply inactivity timer for all subsequent messages if (not isvalue(v_HTTP_DATA_IND)) { // timeout @@ -230,10 +237,14 @@ module HTTP_XCAP_Main { v_XmlBody); v_XmlBody := v_XcapResponse.xmlBody; if ((v_Method == "GET") and not ispresent(v_XmlBody)) { - f_HTTP_SendResponse(HTTPDATA, v_HttpRoutingInfo, cs_HttpResponse_404); // 404 - File Not Found + f_HTTP_SendResponse(HTTPDATA, v_HttpRoutingInfo, cs_HttpResponse_404(v_ServerProductList)); // 404 - File Not Found } else { // Send Http Response 200 OK to the UE - f_HTTP_SendResponse(HTTPDATA, v_HttpRoutingInfo, f_HttpResponse_200(v_XcapResponse.contentType, v_XmlBody)); + v_ETag := v_ETag_UpperPart & oct2str(int2oct(v_ETag_LowerPartInteger, 1)); + if (v_Method == "PUT") { // @sic R5-151795: ETag incremented for each PUT sic@ + v_ETag_LowerPartInteger := v_ETag_LowerPartInteger + 1; + } + f_HTTP_SendResponse(HTTPDATA, v_HttpRoutingInfo, f_HttpResponse_200(v_ServerProductList, v_ETag, v_XcapResponse.contentType, v_XmlBody)); } } } @@ -250,7 +261,8 @@ module HTTP_XCAP_Main { { var IMS_HTTP_Command_Type v_IMS_Command; var HTTP_ConfigurationParams_Type v_ConfigurationParams; - var HTTP_AuthenticationResult_Type v_AuthenticationResult; + var HTTP_AuthenticationMethod_Type v_AuthenticationMethod; + var template (value) HTTP_AuthenticationResult_Type v_AuthenticationResult; var XCAP_RSP v_XcapResponse; var charstring v_SimservsDocument; var charstring v_DocSelector; @@ -263,12 +275,12 @@ module HTTP_XCAP_Main { FatalError(__FILE__, __LINE__, "invalid command"); // at the beginning HTTP needs to be configured } v_ConfigurationParams := v_IMS_Command.Configure; - - // Configure HTTP server + v_AuthenticationMethod := v_ConfigurationParams.AuthenticationMethod; + + // Configure HTTP server(s) -> IP_PTC f_HTTP_Configure(HTTPCTRL, - v_ConfigurationParams.HttpAuthenticationMechanism, - v_ConfigurationParams.XcapServerAddrAndPort, - v_ConfigurationParams.BsfServerAddrAndPort, + v_ConfigurationParams.XcapServerAddrAndPort_List, // @sic R5s150148 sic@ + v_ConfigurationParams.BsfServerAddrAndPort_List, // @sic R5s150148 sic@ v_ConfigurationParams.DrbRoutingInfo); // Configure XCAP Server @@ -300,21 +312,27 @@ module HTTP_XCAP_Main { t_Watchdog.start(v_IMS_Command.TransactionStart.MaxDuration); v_InitialHttpRequest := omit; v_Error := omit; - - if (ispresent(v_IMS_Command.TransactionStart.AuthenticationParams)) { - v_AuthenticationResult := f_HTTP_Authentication(HTTPCTRL, - HTTPDATA, - t_Watchdog, - v_ConfigurationParams.HttpAuthenticationMechanism, - v_IMS_Command.TransactionStart.AuthenticationParams, - v_ConfigurationParams.HomeDomainName, - v_ConfigurationParams.XcapUsername); - if (ischosen(v_AuthenticationResult.Error)) { - v_Error := v_AuthenticationResult.Error; + + select (v_AuthenticationMethod) { + case (httpDigestAuthentication, httpDigestAndGbaAuthentication) { + // do authentication: + v_AuthenticationResult := f_HTTP_Authentication(HTTPDATA, + t_Watchdog, + v_AuthenticationMethod, + v_ConfigurationParams.PrivateUserId, + v_ConfigurationParams.HomeDomainName, + v_ConfigurationParams.XcapUsername); + if (ischosen(v_AuthenticationResult.Error)) { + v_Error := v_AuthenticationResult.Error; + } + if (ischosen(v_AuthenticationResult.InitialRequest)) { + v_InitialHttpRequest := v_AuthenticationResult.InitialRequest; + v_Error := fl_HTTP_CheckRequestUri(valueof(v_InitialHttpRequest.httpRequest.requestLine.uri), v_DocSelector); + } + v_AuthenticationMethod := noAuthentication; // no further authentication } - if (ischosen(v_AuthenticationResult.InitialRequest)) { - v_InitialHttpRequest := v_AuthenticationResult.InitialRequest; - v_Error := fl_HTTP_CheckRequestUri(valueof(v_InitialHttpRequest.httpRequest.requestLine.uri), v_DocSelector); + case else { + // no authentication } } if (not isvalue(v_Error)) { diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn similarity index 93% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn rename to IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn index cff0f9d..fb6559d 100644 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/XCAP_ASP_TypeDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-07-24 19:05:45 +0200 (Thu, 24 Jul 2014) $ // $Rev: 11846 $ /******************************************************************************/ diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn similarity index 97% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn rename to IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn index d7f9c33..0cf4358 100644 --- a/IMS_PART4_IWD_14wk37/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_HTTP/XCAP_TemplatesAndFunctions.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-03-05 19:20:41 +0100 (Wed, 05 Mar 2014) $ // $Rev: 10922 $ /******************************************************************************/ diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/RFC4745-common-policy.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/RFC4745-common-policy.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/RFC4745-common-policy.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/RFC4745-common-policy.xsd diff --git a/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24109.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24109.xsd new file mode 100644 index 0000000..2768dd3 --- /dev/null +++ b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24109.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24604.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24604.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24604.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24604.xsd diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24607-OIP-OIR.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24607-OIP-OIR.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24607-OIP-OIR.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24607-OIP-OIR.xsd diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24608-TIP-TIR R2.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24608-TIP-TIR R2.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24608-TIP-TIR R2.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24608-TIP-TIR R2.xsd diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24611.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24611.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/TS24611.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/TS24611.xsd diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/XCAP.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/XCAP.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/XCAP.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/XCAP.xsd diff --git a/IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/xdm_commonPolicy-V1_0.xsd b/IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/xdm_commonPolicy-V1_0.xsd similarity index 100% rename from IMS_PART4_IWD_14wk37/IMS/XCAP_XSD/xdm_commonPolicy-V1_0.xsd rename to IMS_PART4_IWD_15wk38/IMS/XCAP_XSD/xdm_commonPolicy-V1_0.xsd diff --git a/IMS_PART4_IWD_14wk37/IMS_Testsuite_PART4.ttcn b/IMS_PART4_IWD_15wk38/IMS_Testsuite_PART4.ttcn similarity index 88% rename from IMS_PART4_IWD_14wk37/IMS_Testsuite_PART4.ttcn rename to IMS_PART4_IWD_15wk38/IMS_Testsuite_PART4.ttcn index e10a126..f2e4a80 100644 --- a/IMS_PART4_IWD_14wk37/IMS_Testsuite_PART4.ttcn +++ b/IMS_PART4_IWD_15wk38/IMS_Testsuite_PART4.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ module IMS_Testsuite_PART4 { @@ -27,13 +27,13 @@ module IMS_Testsuite_PART4 { import from IMS_CC_SSConferencingTestcases all; import from IMS_CC_SSTestcases all; import from IMS_CC_SSXcapTestcases all; - import from IMS_CC_SigCompTestcases all; import from IMS_CC_SubscriptionTestcases all; + import from IMS_CustomizedAlertingTonesTestcases all; //---------------------------------------------------------------------------- testcase TC_10_1() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Invalid Behaviour – 503 Service Unavailable + // Invalid Behaviour - 503 Service Unavailable var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -306,7 +306,7 @@ module IMS_Testsuite_PART4 { //---------------------------------------------------------------------------- testcase TC_12_2() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // MO Call – 503 Service Unavailable + // MO Call - 503 Service Unavailable var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -413,9 +413,9 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_12_2a() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_12_23() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // MO Call – 504 Server Time-out + // MO MTSI speech call/EVS var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -426,7 +426,28 @@ module IMS_Testsuite_PART4 { f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_12_2a_IMS()); + v_IMS1.start(f_TC_12_23_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_12_24() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // MT MTSI speech call / EVS + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_12_24_IMS()); t_GuardTimer.start; @@ -434,9 +455,9 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_13_2() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_12_25() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // SigComp in the MO Call + // MO MTSI speech call / EVS / AMR-WB var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -447,7 +468,7 @@ module IMS_Testsuite_PART4 { f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_13_2_IMS()); + v_IMS1.start(f_TC_12_25_IMS()); t_GuardTimer.start; @@ -455,9 +476,9 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_13_3() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_12_2a() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // SigComp in the MT Call + // MO Call - 504 Server Time-out var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -468,7 +489,7 @@ module IMS_Testsuite_PART4 { f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_13_3_IMS()); + v_IMS1.start(f_TC_12_2a_IMS()); t_GuardTimer.start; @@ -560,6 +581,27 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_15_11a() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // MO Video Call Hold without announcement + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_15_11a_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_15_12() runs on MTC_IMS system SYSTEM_IMS { // @purpose // MT Call Hold without announcement @@ -581,6 +623,27 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_15_12a() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // MT Video Call Hold without announcement + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_15_12a_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_15_13() runs on MTC_IMS system SYSTEM_IMS { // @purpose // Incoming Communication Barring except for a specific user @@ -602,9 +665,9 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_15_14() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_15_14a() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Incoming Communication Barring for anonymous users + // Incoming Communication Barring while roaming var IMS_XCAP_PTC v_IMS1 := null; var IMS_XCAP_PTC v_IMS2 := null; @@ -615,7 +678,7 @@ module IMS_Testsuite_PART4 { f_MTC_IMS_XCAP_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_15_14_IMS()); + v_IMS1.start(f_TC_15_14a_IMS()); t_GuardTimer.start; @@ -623,20 +686,20 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_15_14a() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_15_14b() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Communication Barring while roaming + // Outgoing Communication Barring while roaming var IMS_XCAP_PTC v_IMS1 := null; var IMS_XCAP_PTC v_IMS2 := null; - timer t_GuardTimer := int2float(720); + timer t_GuardTimer := int2float(300); v_IMS1 := IMS_XCAP_PTC.create alive; f_MTC_IMS_XCAP_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_15_14a_IMS()); + v_IMS1.start(f_TC_15_14b_IMS()); t_GuardTimer.start; @@ -686,9 +749,9 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_15_18() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_15_19() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Inviting user to conference by sending a REFER request to the user + // Inviting user to conference by sending a REFER request to the conference focus var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -699,7 +762,7 @@ module IMS_Testsuite_PART4 { f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_15_18_IMS()); + v_IMS1.start(f_TC_15_19_IMS()); t_GuardTimer.start; @@ -707,9 +770,9 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_15_19() runs on MTC_IMS system SYSTEM_IMS { + testcase TC_15_19a() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Inviting user to conference by sending a REFER request to the conference focus + // Inviting user to conference by sending a REFER request to the conference focus / Video var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -720,7 +783,7 @@ module IMS_Testsuite_PART4 { f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); - v_IMS1.start(f_TC_15_19_IMS()); + v_IMS1.start(f_TC_15_19a_IMS()); t_GuardTimer.start; @@ -791,6 +854,48 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_15_21b() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // Joining a conference after being invited to it / Video + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_15_21b_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_15_21c() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // Three way session creation / Video + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_15_21c_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_15_27() runs on MTC_IMS system SYSTEM_IMS { // @purpose // Communication Waiting and answering the call @@ -833,6 +938,27 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_15_29() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // GBA authentication + + var IMS_XCAP_PTC v_IMS1 := null; + var IMS_XCAP_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_XCAP_PTC.create alive; + + f_MTC_IMS_XCAP_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_15_29_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_15_3() runs on MTC_IMS system SYSTEM_IMS { // @purpose // Terminating Identification Presentation @@ -1357,6 +1483,27 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_20_1() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // Mobile Originating CAT - Forking Model + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_20_1_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_6_3() runs on MTC_IMS system SYSTEM_IMS { // @purpose // Dedicated PDP Context Establishment @@ -1462,6 +1609,27 @@ module IMS_Testsuite_PART4 { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_8_16() runs on MTC_IMS system SYSTEM_IMS { + // @purpose + // User initiated re-registration- 423 Interval Too Brief + + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(300); + + v_IMS1 := IMS_PTC.create alive; + + f_MTC_IMS_CreateMapAndConnectPTCs(v_IMS1, v_IMS2); + + v_IMS1.start(f_TC_8_16_IMS()); + + t_GuardTimer.start; + + f_MTC_IMS_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_8_2() runs on MTC_IMS system SYSTEM_IMS { // @purpose // User Initiated Re-Registration @@ -1506,7 +1674,7 @@ module IMS_Testsuite_PART4 { //---------------------------------------------------------------------------- testcase TC_8_4() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Invalid Behaviour – 423 Interval Too Brief + // Invalid Behaviour - 423 Interval Too Brief var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -1527,7 +1695,7 @@ module IMS_Testsuite_PART4 { //---------------------------------------------------------------------------- testcase TC_9_1() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Invalid Behaviour – MAC Parameter Invalid + // Invalid Behaviour - MAC Parameter Invalid var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -1548,7 +1716,7 @@ module IMS_Testsuite_PART4 { //---------------------------------------------------------------------------- testcase TC_9_2() runs on MTC_IMS system SYSTEM_IMS { // @purpose - // Invalid Behaviour – SQN out of range + // Invalid Behaviour - SQN out of range var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; @@ -1585,26 +1753,32 @@ module IMS_Testsuite_PART4 { if (f_SelectionExpr(IMS34_C64)) { execute(TC_12_20a()); } if (f_SelectionExpr(IMS34_C71)) { execute(TC_12_21()); } if (f_SelectionExpr(IMS34_C70)) { execute(TC_12_22()); } + if (f_SelectionExpr(IMS34_C83)) { execute(TC_12_23()); } + if (f_SelectionExpr(IMS34_C83)) { execute(TC_12_24()); } + if (f_SelectionExpr(IMS34_C83)) { execute(TC_12_25()); } if (f_SelectionExpr(IMS34_C22)) { execute(TC_12_2a()); } - if (f_SelectionExpr(IMS34_R)) { execute(TC_13_2()); } - if (f_SelectionExpr(IMS34_R)) { execute(TC_13_3()); } if (f_SelectionExpr(IMS34_C43)) { execute(TC_15_1()); } if (f_SelectionExpr(IMS34_C30)) { execute(TC_15_10()); } if (f_SelectionExpr(IMS34_C30)) { execute(TC_15_10a()); } if (f_SelectionExpr(IMS34_C23)) { execute(TC_15_11()); } + if (f_SelectionExpr(IMS34_C77)) { execute(TC_15_11a()); } if (f_SelectionExpr(IMS34_C23)) { execute(TC_15_12()); } + if (f_SelectionExpr(IMS34_C77)) { execute(TC_15_12a()); } if (f_SelectionExpr(IMS34_C24)) { execute(TC_15_13()); } - if (f_SelectionExpr(IMS34_C45)) { execute(TC_15_14()); } if (f_SelectionExpr(IMS34_C24)) { execute(TC_15_14a()); } + if (f_SelectionExpr(IMS34_Cxx_R5153996)) { execute(TC_15_14b()); } if (f_SelectionExpr(IMS34_C50)) { execute(TC_15_15()); } if (f_SelectionExpr(IMS34_C32)) { execute(TC_15_17()); } - if (f_SelectionExpr(IMS34_C32)) { execute(TC_15_18()); } if (f_SelectionExpr(IMS34_C32)) { execute(TC_15_19()); } + if (f_SelectionExpr(IMS34_C78)) { execute(TC_15_19a()); } if (f_SelectionExpr(IMS34_C44)) { execute(TC_15_2()); } if (f_SelectionExpr(IMS34_C32)) { execute(TC_15_21()); } if (f_SelectionExpr(IMS34_C61)) { execute(TC_15_21a()); } + if (f_SelectionExpr(IMS34_C78)) { execute(TC_15_21b()); } + if (f_SelectionExpr(IMS34_C79)) { execute(TC_15_21c()); } if (f_SelectionExpr(IMS34_C57)) { execute(TC_15_27()); } if (f_SelectionExpr(IMS34_C57)) { execute(TC_15_28()); } + if (f_SelectionExpr(IMS34_C81)) { execute(TC_15_29()); } if (f_SelectionExpr(IMS34_C48)) { execute(TC_15_3()); } if (f_SelectionExpr(IMS34_C49)) { execute(TC_15_4()); } if (f_SelectionExpr(IMS34_C30)) { execute(TC_15_5()); } @@ -1629,13 +1803,15 @@ module IMS_Testsuite_PART4 { if (f_SelectionExpr(IMS34_C59)) { execute(TC_19_5_7()); } if (f_SelectionExpr(IMS34_C57)) { execute(TC_19_5_8()); } if (f_SelectionExpr(IMS34_C59)) { execute(TC_19_5_9()); } + if (f_SelectionExpr(IMS34_C82)) { execute(TC_20_1()); } if (f_SelectionExpr(IMS34_C04)) { execute(TC_6_3()); } if (f_SelectionExpr(IMS34_C05)) { execute(TC_7_1()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_1()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_14()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_15()); } + if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_16()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_2()); } - if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_3()); } + if (f_SelectionExpr(IMS34_C80)) { execute(TC_8_3()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_8_4()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_9_1()); } if (f_SelectionExpr(IMS34_C17)) { execute(TC_9_2()); } diff --git a/IMS_PART4_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn b/IMS_PART4_IWD_15wk38/PicsPixit/IMS_CC_Parameters.ttcn similarity index 77% rename from IMS_PART4_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn rename to IMS_PART4_IWD_15wk38/PicsPixit/IMS_CC_Parameters.ttcn index 4c6de2f..91a41a5 100644 --- a/IMS_PART4_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn +++ b/IMS_PART4_IWD_15wk38/PicsPixit/IMS_CC_Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module IMS_CC_Parameters { @@ -21,29 +17,37 @@ module IMS_CC_Parameters { //**************************************************************************** // PIXIT Parameters //---------------------------------------------------------------------------- - modulepar charstring px_DNSServer_IPAddr := "10.122.11.23"; // @desc DNS Server address - // Supported values: IPv4 or IPv6 + modulepar charstring px_IMS_CalleeContactUri2 := "sip:User-C-Contact@3gpp.org"; + // @desc URI provided by the remote side (i.e. by SS) to be used by the UE as contact address in further SIP signalling of the dialog + // NOTE: in general this URI shall be different than the one in px_CalleeUri // Reference to other Spec: 34.229-3 + modulepar charstring px_IMS_CalleeUri2 := "sip:User-C@3gpp.org"; + // @desc URI of Callee, sent by the UE in INVITE (MO call establishment) to address the remote UE + // Reference to other Spec: 34.229-3 + + modulepar charstring px_IMS_ConferenceFactoryUri := "sip:mmtel@conf-factory.3gpp.org"; + // @desc conference factory URI as used by the UE for IMS conferencing + + modulepar charstring px_IMS_FinalConferenceUri := "sip:final@conf-factory.3gpp.org"; + // @desc final conference URI as sent to the UE during MTSI conference creation + modulepar charstring px_IMS_HomeDomainName_Refreshed := "refreshed3gpp.org"; // @desc Used in 8.15 + modulepar charstring px_IMS_MessageAccountIdentity := ""; // @desc message accout identity configured at the UE as used for subscription to message-summary event package + modulepar charstring px_IMS_Private_UserId_Refreshed := "privateuser@refreshed3gpp.org"; // @desc Used in 8.15 modulepar charstring px_IMS_PublicUserIdentity1_Refreshed := "sip:PublicId1@refreshed3gpp.org"; // @desc Used in 8.15 - modulepar charstring px_P_CSCF_IPAddr := "10.122.11.22"; // @desc P-CSCF address - // Supported values: IPv4 or IPv6 - // Reference to other Spec: 34.229-3 - - modulepar charstring px_PeerUE_IPAddr := "10.122.11.25"; // @desc Peer UE address - // Supported values: IPv4 or IPv6 - // Reference to other Spec: 34.229-3 + modulepar charstring px_IMS_TemporaryConferenceUri := "sip:temporary@conf-factory.3gpp.org"; + // @desc temporary conference URI as sent to the UE during MTSI conference creation modulepar charstring px_SMS_SMSC_InternationalNumber; // @desc international number of the SMSC: - // It is set to the same value as used in EFPSISMSC if the EF is present on the ISIM (or the USIM ) + // It is set to the same value as used in EFPSISMSC if the EF is present on the ISIM (or the USIM ) // Otherwise it is set to the same value as EFSMSP // Reference to other Spec: 34.229-3 @@ -55,7 +59,11 @@ module IMS_CC_Parameters { // Supported values: IPv4 or IPv6 // Reference to other Spec: 34.229-3 - modulepar charstring px_XCAP_RootUri := "XCAP.3gpp.org"; // @desc XCAP Root URI + modulepar charstring px_XCAP_RootUri := "/XCAP.3gpp.org"; + // @desc XCAP Root URI + + modulepar charstring px_XCAP_TargetUri := "sip:user@domain.com"; + // @desc Target (SIP or TEL URI) where to forward to modulepar charstring px_XCAP_Username; // @desc username to be used for HTTP authentication in case of pc_XCAP_UsernameIsConfiguredInUE==true @@ -68,12 +76,15 @@ module IMS_CC_Parameters { modulepar boolean pc_CommunicationHold_DuringEmergencyCall := false; // @desc UE supports Communication Hold during emergency call - // Reference: 34.229-2, Table A.12/nn + // Reference: 34.229-2, Table A.12/33 + + modulepar boolean pc_EarlyMedia := false; // @desc UE supports early media + // Reference: 34.229-2 Table A.12/45 modulepar boolean pc_HttpDigestAuthentication := false; // @desc HTTP Digest XCAP Authentication // Reference: 34.229-2, Table A.6a/4 - modulepar boolean pc_HttpGAAAuthentication := false; // @desc GAA XCAP Authentication + modulepar boolean pc_HttpGBAAuthentication := false; // @desc GBA XCAP Authentication // Reference: 34.229-2, Table A.6a/3 modulepar boolean pc_IMS_EmergencyCall := false; // @desc UE supports IMS emergency services @@ -94,18 +105,12 @@ module IMS_CC_Parameters { modulepar boolean pc_InitiateP_CSCFDiscovery_viaPCO := false; // @desc UE capable of being configured to initiate P-CSCF discovery via PCO // Reference: 34.229-2 Table A.12/5 - modulepar boolean pc_InitiateSession := false; // @desc Initiating a session - // Reference: 34.229-2 Table A.4/2B - modulepar boolean pc_InitiatesDedicatedPDPContext := false; // @desc UE capable of being configured to initiate Dedicated PDP Context // Reference: 34.229-2 Table A.12/4 modulepar boolean pc_MTSI_ACR := false; // @desc MTSI supplementary services - Anonymous Communication Rejection // Reference: 34.229-2 Table A.16/12 - modulepar boolean pc_MTSI_CB := false; // @desc MTSI supplementary services - Communication Barring - // Reference: 34.229-2 Table A.16/7 - modulepar boolean pc_MTSI_CommDivert := false; // @desc MTSI supplementary services - Communication Diversion // Reference: 34.229-2 Table A.16/5 @@ -118,6 +123,9 @@ module IMS_CC_Parameters { modulepar boolean pc_MTSI_Conference := false; // @desc MTSI supplementary services - Conference // Reference: 34.229-2 Table A.16/9 + modulepar boolean pc_MTSI_Incoming_CB := false; // @desc MTSI supplementary services - Incoming Communication Barring + // Reference: 34.229-2 Table A.16/7 + modulepar boolean pc_MTSI_MessageWait := false; // @desc MTSI supplementary services - Message Waiting Indication // Reference: 34.229-2 Table A.16/8 @@ -127,12 +135,15 @@ module IMS_CC_Parameters { modulepar boolean pc_MTSI_OIR := false; // @desc MTSI supplementary services - Originating Identification Restriction // Reference: 34.229-2 Table A.16/2 - modulepar boolean pc_MTSI_Speech := false; // @desc MTSI media - Speech - // Reference: 34.229-2 Table A.15/1 + modulepar boolean pc_MTSI_Outgoing_CB := false; // @desc MTSI supplementary services - Outgoing Communication Barring + // Reference: 34.229-2 Table A.16/15 modulepar boolean pc_MTSI_Speech_AMRWB := false; // @desc MTSI media - Speech, AMR wideband // Reference: 34.229-2 Table A.15/2 + modulepar boolean pc_MTSI_Speech_EVS := false; // @desc MTSI media - Speech EVS + // Reference: 34.229-2 Table A.15/10 + modulepar boolean pc_MTSI_TIP := false; // @desc MTSI supplementary services - Terminating Identification Presentation // Reference: 34.229-2 Table A.16/3 @@ -142,9 +153,6 @@ module IMS_CC_Parameters { modulepar boolean pc_MTSI_Text_RTP := false; // @desc MTSI media - Text, RTP // Reference: 34.229-2 Table A.15/7 - modulepar boolean pc_MTSI_Video := false; // @desc MTSI media - Video - // Reference: 34.229-2 Table A.15/3 - modulepar boolean pc_P_CSCFDiscovery_viaDHCP := false; // @desc UE supports P-CSCF Discovery via DHCP // Reference: 34.229-2 Table A.12/9 @@ -163,20 +171,21 @@ module IMS_CC_Parameters { modulepar boolean pc_SMS_MO := false; // @desc UE supports SM-over-IP sender // Reference: 34.229-2 Table A.3A/61 - modulepar boolean pc_SMS_MT := false; // @desc UE supports SM-over-IP receiver - // Reference: 34.229-2 Table A.3A/62 + modulepar boolean pc_SubscribeConferenceEvent_OutsideINVITEDialog := false; + // @desc UE supports subscription to conference event package outside INVITE dialog + // Reference: 34.229-2 Table A.12/xx - modulepar boolean pc_SendRTCPOnlyOnHold := true; // @desc UE supports sending RTCP only while call is put on hold - // Reference: 34.229-2 Table A.12/23 + modulepar boolean pc_TMPI_forGBA := false; // @desc UE uses TMPI in HTTP request for GBA + // Reference: 34.229-2 Table A.12/44 modulepar boolean pc_VideoCodecH264CBP := false; // @desc MTSI media - Video codec H.264 CBP Level 1.2 // Reference: 34.229-2 Table A.15/9 modulepar boolean pc_XCAP_UsernameIsConfiguredInUE := false; // @desc UE indicated OMA-TS-XDM_MO-V1_1-20080627-A.doc, section 5.2.8 "Node: //AAUTHNAME" is configured - // Reference: 34.229-2 Table A.12/nn + // Reference: 34.229-2 Table A.12/37 modulepar boolean pc_XCAP_XUIisDefaultPublicUserId := false; // @desc UE uses the default public user id received in P-Associated-URI header in 200 OK for REGISTER as XCAP User Identity (XUI) - // Reference: 34.229-2 Table A.12/mm + // Reference: 34.229-2 Table A.12/38 } diff --git a/LTE_A_IWD_14wk37/PicsPixit/IMS_CommonParameters.ttcn b/IMS_PART4_IWD_15wk38/PicsPixit/IMS_CommonParameters.ttcn similarity index 74% rename from LTE_A_IWD_14wk37/PicsPixit/IMS_CommonParameters.ttcn rename to IMS_PART4_IWD_15wk38/PicsPixit/IMS_CommonParameters.ttcn index fee818a..9fc4bdd 100644 --- a/LTE_A_IWD_14wk37/PicsPixit/IMS_CommonParameters.ttcn +++ b/IMS_PART4_IWD_15wk38/PicsPixit/IMS_CommonParameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module IMS_CommonParameters { @@ -38,7 +34,7 @@ module IMS_CommonParameters { // Supported values: // des_ede3_cbc, // aes_cbc, - // nociph + // nociph // Reference to other Spec: 34.229-3 modulepar charstring px_IMS_HomeDomainName := "3gpp.org"; // @desc Home Domain Name. @@ -48,13 +44,13 @@ module IMS_CommonParameters { modulepar IPsec_IntegrityAlgorithm_Type px_IMS_IPSecAlgorithm := hmac_sha_1_96; // @desc Integrity Algorithm // Supported values: - // hmac_md5_96, + // hmac_md5_96, // hmac_sha_1_96 // Reference to other Spec: 34.229-3 modulepar charstring px_IMS_Private_UserId := "privateuser@3gpp.org"; // @desc Private User Identity.When usingan ISIM this is set to the same value as EFIMPI.When ISIM is not used just USIM the private user identity is derived from px_IMSI. - // + // // Reference to other Spec: 34.229-3 modulepar charstring px_IMS_PublicUserIdentity1 := "sip:PublicId1@3gpp.org"; @@ -80,23 +76,47 @@ module IMS_CommonParameters { //**************************************************************************** // PICS Parameters //---------------------------------------------------------------------------- + modulepar boolean pc_IMS_Deregistration := false; // @desc UE has the method that supports IMS deregistration + // Reference: 34.229-2 Table A.12/39 + modulepar boolean pc_IMS_GIBA_Sec := false; // @desc UE supports GIBA security only // Reference: 34.229-2 Table A.6a/1 modulepar boolean pc_IMS_GRUUsInSIP := false; // @desc UE supports obtaining and using GRUUs in the Session Initiation Protocol (SIP) // Reference: 34.229-2 Table A.4/53 - modulepar boolean pc_IMS_Geolocation := false; // @desc UE uses Geolocation header to provide its geographical location for emergency session setup + modulepar boolean pc_IMS_Geolocation := false; // @desc UE is capable of obtaining location information // Reference: 34.229-2 Table A.12/27 - modulepar boolean pc_IMS_RtcpDuringVoiceSession := false; // @desc RTCP used during voice session - // Reference: 34.229 ??? + modulepar boolean pc_IMS_RtcpDuringVoiceSession := false; // @desc RTCP used during voice session. This is mutually exclusive to pc_SendRTCPOnlyOnHold + // Reference: 34.229-2 Table A.12/35 modulepar boolean pc_IMS_Sec := false; // @desc UE supports full IMS security // Reference: 34.229-2 Table A.6a/2 + modulepar boolean pc_IMS_SessionIdSupported := false; // @desc UE supports session id + // Reference: 34.229-2 Table A.12/30 + + modulepar boolean pc_IMS_Video_FeatureTag := false; // @desc UE indicates video media feature tag in REGISTER and INVITE request + // Reference: 34.229-2 Table A.12/32 + + modulepar boolean pc_InitiateSession := false; // @desc Initiating a session + // Reference: 34.229-2 Table A.4/2B + + modulepar boolean pc_MTSI_Speech := false; // @desc MTSI media - Speech + // Reference: 34.229-2 Table A.15/1 + + modulepar boolean pc_MTSI_Video := false; // @desc MTSI media - Video + // Reference: 34.229-2 Table A.15/3 + modulepar boolean pc_MultimediaTelephonyService := false; // @desc Multimedia telephony service participant // Reference: 34.229-2 Table A.3A/50 + modulepar boolean pc_SMS_MT := false; // @desc UE supports SM-over-IP receiver + // Reference: 34.229-2 Table A.3A/62 + + modulepar boolean pc_SendRTCPOnlyOnHold := true; // @desc UE supports sending RTCP only while call is put on hold. This is mutually exclusive to pc_IMS_RtcpDuringVoiceSession + // Reference: 34.229-2 Table A.12/23 + } diff --git a/LTE_A_IWD_14wk37/PicsPixit/Parameters.ttcn b/IMS_PART4_IWD_15wk38/PicsPixit/Parameters.ttcn similarity index 82% rename from LTE_A_IWD_14wk37/PicsPixit/Parameters.ttcn rename to IMS_PART4_IWD_15wk38/PicsPixit/Parameters.ttcn index 3a448df..f0dea88 100644 --- a/LTE_A_IWD_14wk37/PicsPixit/Parameters.ttcn +++ b/IMS_PART4_IWD_15wk38/PicsPixit/Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-09-15 10:30:10 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14364 $ /******************************************************************************/ module Parameters { @@ -57,7 +53,7 @@ module Parameters { // @desc Default IMSI // Reference to other Spec: 34.123-3, Table B.1 - modulepar integer px_IP_MTU_Size := 65535; // @desc MTU size + modulepar integer px_IP_MTU_Size := 65535; // @desc MTU size. This value is specific to the SS. modulepar charstring px_IPv4_Address1_NW; // @desc IPv4 Gateway Address in PDN1 @@ -71,6 +67,8 @@ module Parameters { modulepar charstring px_IPv4_Address2_UE; // @desc IPv4 Address connected to PDN2 + modulepar charstring px_IPv4_Address2a_UE; // @desc IPv4 Address connected to PDN2a + modulepar charstring px_IPv4_Address_HomeAgent; // @desc IPv4 Home Address Agent modulepar charstring px_IPv6_Address1_NW; // @desc IPv6 Gateway Address in PDN1 @@ -85,14 +83,21 @@ module Parameters { modulepar charstring px_IPv6_Address2_UE; // @desc IPv6 Address in PDN2 + modulepar charstring px_IPv6_Address2a_UE; // @desc IPv6 Address in PDN2a + modulepar charstring px_IPv6_Address_HomeAgent; // @desc IPv6 Home Address Agent + modulepar integer px_MFBI_UTRAN_FrequencyBand; // @desc A supported UTRAN MFBI frequency band. + // Reference to other Spec: 34.123-3, Table B.1.20 + modulepar octetstring px_PTMSI_Def := 'C2345678'O; // @desc Default PTMSI // Reference to other Spec: 34.123-3, Table B.1 modulepar octetstring px_PTMSI_SigDef := 'AB1234'O; // @desc Default PTMSI signature (3 octets, 3GPP 24.008 / 10.5.5.8). // Reference to other Spec: 34.123-3, Table B.1 + modulepar bitstring px_PWS_CB_DataCodingScheme; // @desc CMAS or ETWS data coding scheme of the alphabet/codingand the applied language (see TS 23.401) + modulepar charstring px_PWS_CB_DataPage1; // @desc ETWS or CMAS Page 1 warning data message modulepar charstring px_PWS_CB_DataPage2; // @desc ETWS or CMAS Page 2 warning data message @@ -109,7 +114,7 @@ module Parameters { modulepar integer px_SMS_IndexOffset := 0; // @desc Memory location index at UE for SMS storage, used in +CMSS command // Reference to other Spec: 34.123-3, Table B.1.2 - modulepar charstring px_SMS_MsgFrmt := "1"; // @desc Either PDU (0) mode or Text mode (1) @sic R5s110750 sic@ + modulepar charstring px_SMS_MsgFrmt := "1"; // @desc SMS message format (see TS 27.005 cl.3.2.). NOTE: Default value is for text mode. Change value to 0 to execute tests with PDU mode modulepar charstring px_SMS_PrefMem1 := "SM"; // @desc SMS Preferred Memory 1 of TS 27.005 [31], clause 3.2.2 // Reference to other Spec: 34.123-3, Table B.1.2 @@ -141,6 +146,9 @@ module Parameters { modulepar UTRAN_FDD_TDD_Type px_UTRAN_ModeUnderTest := UTRAN_FDD; // @desc specifies which radio access technology is being tested in UTRAN // Supported values: UTRAN_FDD, UTRAN_TDD + modulepar integer px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI; + // @desc A not supported UTRAN frequency band that is overlapping with a supported MFBI band (px_MFBI_UTRAN_FrequencyBand). This pixit shall be set also in accordance with the values of the 3 Pixits: px_UARFCN_D_High, px_UARFCN_D_Mid,px_UARFCN_L_Mid. + modulepar B128_Type px_eAuthRAND := oct2bit('A3DE0C6D363E30C364A4078F1BF8D577'O); // @desc Random Challenge @@ -156,6 +164,9 @@ module Parameters { modulepar boolean pc_1xRTT := false; // @desc UE supports CDMA2000 1xRTT band class // Reference: 36.523-2, A.4.1-1/4 + modulepar boolean pc_A5_4_CS := false; // @desc Support of A5/4 + // Reference: 51.010-2, A.2/87 + modulepar boolean pc_Allowed_CSG_list := false; // @desc Support of Allowed CSG list // Reference: 36.523-2 A.4.4-1/2 @@ -172,7 +183,7 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/27 modulepar boolean pc_Available_PLMNs_AcT_Ind := false; // @desc Support of AccessTechnology indication in available PLMNs list - // Reference: 36.523-2 A.4.4.1-x + // Reference: 36.523-2 A.4.4-1/78 modulepar boolean pc_BSRVCC := false; // @desc UE indicates g.3gpp.ps2cs-srvcc-orig-pre-alerting media feature tag in INVITE request // Reference: 34.229-2 A.12/36 @@ -210,8 +221,7 @@ module Parameters { modulepar boolean pc_DL_IntraBand_ContCaBWclassC := false; // @desc DL Intra-band contiguous CA BW class C // Reference: 36.523-2 A.4.3.3.1-1/2 - modulepar boolean pc_DL_interBand_CaBwClassComb_AA - := false; // @desc DL Inter-band contiguous CA BW class A-A + modulepar boolean pc_DL_interBand_CaBwClassComb_AA := false; // @desc DL Inter-band contiguous CA BW class A-A // Reference: 36.523-2 A.4.3.3.3-1/1 modulepar boolean pc_DL_intraBand_nonContCaBwClassComb_AA := false; @@ -222,13 +232,13 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/6 modulepar boolean pc_DaylightSavingTime := false; // @desc UE stores/updates the daylight saving time when receives information - // Reference: 36.523-2 A.4.4-1/xx + // Reference: 36.523-2 A.4.4-1/93 modulepar boolean pc_DualRM_Coding := false; // @desc Dual RM Coding // Reference: 36.523/2 ???? modulepar boolean pc_EAB := false; // @desc Support of Extended Access Barring - // Reference: 36.523-2 A.4.4-1/89 + // Reference: 36.523-2 A.4.4-1A/4 modulepar boolean pc_EAB_override := false; // @desc Support of Extended Access Barring Override // Reference: 36.523-2 A.4.4-1/91 @@ -260,93 +270,63 @@ module Parameters { modulepar boolean pc_E_UTRAN_2_GERAN_PSHO := false; // @desc Support for inter-RAT PS handover from E_UTRAN to GERAN // Reference: 36.523-2 A.4.4-1/52 + modulepar boolean pc_EmergSpeech := false; // @desc Emergency Call + // Reference: 34.123-2 A.2/2 + modulepar boolean pc_Enhanced_1xCSfallback := false; // @desc Support of Enhanced 1xCS fallback - // Reference: 36.523-2, A.4.2.1.1-1/x + // Reference: 36.523-2, A.4.2.1.1-1/6 - modulepar boolean pc_FDD := false; // @desc UE supports UTRA band as defined in TS 25.101 + modulepar boolean pc_FDD := false; // @desc UE supports UTRA band as defined in TS 25.101 // Reference: 34.123-2 A.1/1 - modulepar boolean pc_FeatrGrp_1 := false; // @desc Support of Intra-subframe frequency hopping for PUSCH scheduled by UL grant, Extended cyclic prefix with f = 7.5kHz for DL resource block, DCI format 3a (TPC commands for PUCCH and PUSCH with single bit power adjustments), Multi-user MIMO for PDSCH, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0 - UE selected subband CQI without PMI, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2 - UE selected subband CQI with multiple PMI - // Reference: 36.523-2 A.4.5-1/1 - - modulepar boolean pc_FeatrGrp_10 := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change) - // Reference: 36.523-2 A.4.5-1/10 - - modulepar boolean pc_FeatrGrp_101 := false; // @desc DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - // Reference: 36.523-2 A.4.5-3/1 - modulepar boolean pc_FeatrGrp_101_F := false; // @desc DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling // Reference: 36.523-2 A.4.5-3a/1 modulepar boolean pc_FeatrGrp_101_T := false; // @desc DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling // Reference: 36.523-2 A.4.5-3b/1 - modulepar boolean pc_FeatrGrp_102 := false; // @desc Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - // Reference: 36.523-2 A.4.5-3/2 - modulepar boolean pc_FeatrGrp_102_F := false; // @desc Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) // Reference: 36.523-2 A.4.5-3a/2 modulepar boolean pc_FeatrGrp_102_T := false; // @desc Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) // Reference: 36.523-2 A.4.5-3b/2 - modulepar boolean pc_FeatrGrp_103 := false; // @desc PDSCH transmission mode 9 when up to 4 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/3 - modulepar boolean pc_FeatrGrp_103_F := false; // @desc PDSCH transmission mode 9 when up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/3 modulepar boolean pc_FeatrGrp_103_T := false; // @desc PDSCH transmission mode 9 when up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/3 - modulepar boolean pc_FeatrGrp_104 := false; // @desc PDSCH transmission mode 9 for TDD when 8 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/4 - modulepar boolean pc_FeatrGrp_104_F := false; // @desc PDSCH transmission mode 9 for TDD when 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/4 modulepar boolean pc_FeatrGrp_104_T := false; // @desc PDSCH transmission mode 9 for TDD when 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/4 - modulepar boolean pc_FeatrGrp_105 := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-0:UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured.Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1:UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/5 - modulepar boolean pc_FeatrGrp_105_F := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-0:UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured.Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1:UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/5 modulepar boolean pc_FeatrGrp_105_T := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-0:UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured.Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1:UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/5 - modulepar boolean pc_FeatrGrp_106 := false; // @desc Periodic CQI/PMI/RI/PTI reporting on PUCCH: Mode 2-1: UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/6 - modulepar boolean pc_FeatrGrp_106_F := false; // @desc Periodic CQI/PMI/RI/PTI reporting on PUCCH: Mode 2-1: UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/6 modulepar boolean pc_FeatrGrp_106_T := false; // @desc Periodic CQI/PMI/RI/PTI reporting on PUCCH: Mode 2-1: UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/6 - modulepar boolean pc_FeatrGrp_107 := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0: UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured. Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/7 - modulepar boolean pc_FeatrGrp_107_F := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0: UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured. Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/7 modulepar boolean pc_FeatrGrp_107_T := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0: UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured. Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/7 - modulepar boolean pc_FeatrGrp_108 := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/8 - modulepar boolean pc_FeatrGrp_108_F := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/8 modulepar boolean pc_FeatrGrp_108_T := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/8 - modulepar boolean pc_FeatrGrp_109 := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 1 - // Reference: 36.523-2 A.4.5-3/9 - modulepar boolean pc_FeatrGrp_109_F := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 1 // Reference: 36.523-2 A.4.5-3a/9 @@ -359,66 +339,42 @@ module Parameters { modulepar boolean pc_FeatrGrp_10_T := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change) // Reference: 36.523-2 A.4.5-1b/10 - modulepar boolean pc_FeatrGrp_11 := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover - // Reference: 36.523-2 A.4.5-1/11 - - modulepar boolean pc_FeatrGrp_110 := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 2 - // Reference: 36.523-2 A.4.5-3/10 - modulepar boolean pc_FeatrGrp_110_F := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 2 // Reference: 36.523-2 A.4.5-3a/10 modulepar boolean pc_FeatrGrp_110_T := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 2 // Reference: 36.523-2 A.4.5-3b/10 - modulepar boolean pc_FeatrGrp_111 := false; // @desc Measurement reporting trigger Event A6 - // Reference: 36.523-2 A.4.5-3/11 - modulepar boolean pc_FeatrGrp_111_F := false; // @desc Measurement reporting trigger Event A6 // Reference: 36.523-2 A.4.5-3a/11 modulepar boolean pc_FeatrGrp_111_T := false; // @desc Measurement reporting trigger Event A6 // Reference: 36.523-2 A.4.5-3b/11 - modulepar boolean pc_FeatrGrp_112 := false; // @desc SCell addition within the Handover to EUTRA procedure - // Reference: 36.523-2 A.4.5-3/12 - modulepar boolean pc_FeatrGrp_112_F := false; // @desc SCell addition within the Handover to EUTRA procedure // Reference: 36.523-2 A.4.5-3a/12 modulepar boolean pc_FeatrGrp_112_T := false; // @desc SCell addition within the Handover to EUTRA procedure // Reference: 36.523-2 A.4.5-3b/12 - modulepar boolean pc_FeatrGrp_113 := false; // @desc Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - // Reference: 36.523-2 A.4.5-3/13 - modulepar boolean pc_FeatrGrp_113_F := false; // @desc Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells // Reference: 36.523-2 A.4.5-3a/13 modulepar boolean pc_FeatrGrp_113_T := false; // @desc Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells // Reference: 36.523-2 A.4.5-3b/13 - modulepar boolean pc_FeatrGrp_114 := false; // @desc Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - // Reference: 36.523-2 A.4.5-3/14 - modulepar boolean pc_FeatrGrp_114_F := false; // @desc Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report // Reference: 36.523-2 A.4.5-3a/14 modulepar boolean pc_FeatrGrp_114_T := false; // @desc Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report // Reference: 36.523-2 A.4.5-3b/14 - modulepar boolean pc_FeatrGrp_115 := false; // @desc time domain ICIC RLM/RRM measurement subframe restriction for the serving cell. time domain ICIC RRM measurement subframe restriction for neighbour cells. time domain ICIC CSI measurement subframe restriction - // Reference: 36.523-2 A.4.5-3/15 - modulepar boolean pc_FeatrGrp_115_F := false; // @desc time domain ICIC RLM/RRM measurement subframe restriction for the serving cell. time domain ICIC RRM measurement subframe restriction for neighbour cells. time domain ICIC CSI measurement subframe restriction // Reference: 36.523-2 A.4.5-3a/15 modulepar boolean pc_FeatrGrp_115_T := false; // @desc time domain ICIC RLM/RRM measurement subframe restriction for the serving cell. time domain ICIC RRM measurement subframe restriction for neighbour cells. time domain ICIC CSI measurement subframe restriction // Reference: 36.523-2 A.4.5-3b/15 - modulepar boolean pc_FeatrGrp_116 := false; // @desc Relative transmit phase continuity for spatial multiplexing in UL - // Reference: 36.523-2 A.4.5-3/16 - modulepar boolean pc_FeatrGrp_116_F := false; // @desc Relative transmit phase continuity for spatial multiplexing in UL // Reference: 36.523-2 A.4.5-3a/16 @@ -431,72 +387,48 @@ module Parameters { modulepar boolean pc_FeatrGrp_11_T := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover // Reference: 36.523-2 A.4.5-1b/11 - modulepar boolean pc_FeatrGrp_12 := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover - // Reference: 36.523-2 A.4.5-1/12 - modulepar boolean pc_FeatrGrp_12_F := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover // Reference: 36.523-2 A.4.5-1a/12 modulepar boolean pc_FeatrGrp_12_T := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover // Reference: 36.523-2 A.4.5-1b/12 - modulepar boolean pc_FeatrGrp_13 := false; // @desc Support of Inter-frequency handover (within FDD or TDD) - // Reference: 36.523-2 A.4.5-1/13 - modulepar boolean pc_FeatrGrp_13_F := false; // @desc Support of Inter-frequency handover (within FDD or TDD) // Reference: 36.523-2 A.4.5-1a/13 modulepar boolean pc_FeatrGrp_13_T := false; // @desc Support of Inter-frequency handover (within FDD or TDD) // Reference: 36.523-2 A.4.5-1b/13 - modulepar boolean pc_FeatrGrp_14 := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - // Reference: 36.523-2 A.4.5-1/14 - modulepar boolean pc_FeatrGrp_14_F := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 // Reference: 36.523-2 A.4.5-1a/14 modulepar boolean pc_FeatrGrp_14_T := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 // Reference: 36.523-2 A.4.5-1b/14 - modulepar boolean pc_FeatrGrp_15 := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold - // Reference: 36.523-2 A.4.5-1/15 - modulepar boolean pc_FeatrGrp_15_F := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold // Reference: 36.523-2 A.4.5-1a/15 modulepar boolean pc_FeatrGrp_15_T := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold // Reference: 36.523-2 A.4.5-1b/15 - modulepar boolean pc_FeatrGrp_16 := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements - // Reference: 36.523-2 A.4.5-1/16 - modulepar boolean pc_FeatrGrp_16_F := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements // Reference: 36.523-2 A.4.5-1a/16 modulepar boolean pc_FeatrGrp_16_T := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements // Reference: 36.523-2 A.4.5-1b/16 - modulepar boolean pc_FeatrGrp_17 := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events - // Reference: 36.523-2 A.4.5-1/17 - modulepar boolean pc_FeatrGrp_17_F := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1a/17 modulepar boolean pc_FeatrGrp_17_T := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1b/17 - modulepar boolean pc_FeatrGrp_18 := false; // @desc Support of ANR related inter-frequency measurement reporting events - // Reference: 36.523-2 A.4.5-1/18 - modulepar boolean pc_FeatrGrp_18_F := false; // @desc Support of ANR related inter-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1a/18 modulepar boolean pc_FeatrGrp_18_T := false; // @desc Support of ANR related inter-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1b/18 - modulepar boolean pc_FeatrGrp_19 := false; // @desc Support of ANR related inter-RAT measurement reporting events - // Reference: 36.523-2 A.4.5-1/19 - modulepar boolean pc_FeatrGrp_19_F := false; // @desc Support of ANR related inter-RAT measurement reporting events // Reference: 36.523-2 A.4.5-1a/19 @@ -509,93 +441,60 @@ module Parameters { modulepar boolean pc_FeatrGrp_1_T := false; // @desc Support of Intra-subframe frequency hopping for PUSCH scheduled by UL grant, Extended cyclic prefix with f = 7.5kHz for DL resource block, DCI format 3a (TPC commands for PUCCH and PUSCH with single bit power adjustments), Multi-user MIMO for PDSCH, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0 - UE selected subband CQI without PMI, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2 - UE selected subband CQI with multiple PMI // Reference: 36.523-2 A.4.5-1b/1 - modulepar boolean pc_FeatrGrp_2 := false; // @desc Support of Simultaneous CQI and ACK/NACK on PUCCH, i.e. PUCCH format 2a and 2b, Absolute TPC command for PUSCH, Resource allocation type 1 for PDSCH, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2- 0 - UE selected subband CQI without PMI, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1 - UE selected subband CQI with single PMI - // Reference: 36.523-2 A.4.5-1/2 - - modulepar boolean pc_FeatrGrp_20 := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB - // Reference: 36.523-2 A.4.5-1/20 - modulepar boolean pc_FeatrGrp_20_F := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB // Reference: 36.523-2 A.4.5-1a/20 modulepar boolean pc_FeatrGrp_20_T := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB // Reference: 36.523-2 A.4.5-1b/20 - modulepar boolean pc_FeatrGrp_21 := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 - // Reference: 36.523-2 A.4.5-1/21 - modulepar boolean pc_FeatrGrp_21_F := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 // Reference: 36.523-2 A.4.5-1a/21 modulepar boolean pc_FeatrGrp_21_T := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 // Reference: 36.523-2 A.4.5-1b/21 - modulepar boolean pc_FeatrGrp_22 := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/22 - modulepar boolean pc_FeatrGrp_22_F := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/22 modulepar boolean pc_FeatrGrp_22_T := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/22 - modulepar boolean pc_FeatrGrp_23 := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/23 - modulepar boolean pc_FeatrGrp_23_F := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/23 modulepar boolean pc_FeatrGrp_23_T := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/23 - modulepar boolean pc_FeatrGrp_24 := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/24 - modulepar boolean pc_FeatrGrp_24_F := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/24 modulepar boolean pc_FeatrGrp_24_T := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/24 - modulepar boolean pc_FeatrGrp_25 := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/25 - modulepar boolean pc_FeatrGrp_25_F := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/25 modulepar boolean pc_FeatrGrp_25_T := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/25 - modulepar boolean pc_FeatrGrp_26 := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/26 - modulepar boolean pc_FeatrGrp_26_F := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/26 modulepar boolean pc_FeatrGrp_26_T := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/26 - modulepar boolean pc_FeatrGrp_27 := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - // Reference: 36.523-2 A.4.5-1/27 - modulepar boolean pc_FeatrGrp_27_F := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover // Reference: 36.523-2 A.4.5-1a/27 modulepar boolean pc_FeatrGrp_27_T := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover // Reference: 36.523-2 A.4.5-1b/27 - modulepar boolean pc_FeatrGrp_28 := false; // @desc Support of TTI bundling - // Reference: 36.523-2 A.4.5-1/28 - modulepar boolean pc_FeatrGrp_28_F := false; // @desc Support of TTI bundling // Reference: 36.523-2 A.4.5-1a/28 modulepar boolean pc_FeatrGrp_28_T := false; // @desc Support of TTI bundling // Reference: 36.523-2 A.4.5-1b/28 - modulepar boolean pc_FeatrGrp_29 := false; // @desc Support of Semi-Persistent Scheduling - // Reference: 36.523-2 A.4.5-1/29 - modulepar boolean pc_FeatrGrp_29_F := false; // @desc Support of Semi-Persistent Scheduling // Reference: 36.523-2 A.4.5-1a/29 @@ -608,112 +507,72 @@ module Parameters { modulepar boolean pc_FeatrGrp_2_T := false; // @desc Support of Simultaneous CQI and ACK/NACK on PUCCH, i.e. PUCCH format 2a and 2b, Absolute TPC command for PUSCH, Resource allocation type 1 for PDSCH, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2- 0 - UE selected subband CQI without PMI, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1 - UE selected subband CQI with single PMI // Reference: 36.523-2 A.4.5-1b/2 - modulepar boolean pc_FeatrGrp_3 := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN - // Reference: 36.523-2 A.4.5-1/3 - - modulepar boolean pc_FeatrGrp_30 := false; // @desc Support of Handover between FDD and TDD - // Reference: 36.523-2 A.4.5-1/30 - modulepar boolean pc_FeatrGrp_30_F := false; // @desc Support of Handover between FDD and TDD // Reference: 36.523-2 A.4.5-1a/30 modulepar boolean pc_FeatrGrp_30_T := false; // @desc Support of Handover between FDD and TDD // Reference: 36.523-2 A.4.5-1b/30 - modulepar boolean pc_FeatrGrp_31 := false; // @desc Support of the mechanisms defined for cells broadcasting multi band information i.e. comprehending multiBandInfoList - // Reference: 36.523-2 A.4.5-1/31 - modulepar boolean pc_FeatrGrp_31_F := false; // @desc Support of the mechanisms defined for cells broadcasting multi band information i.e. comprehending multiBandInfoList // Reference: 36.523-2 A.4.5-1a/31 modulepar boolean pc_FeatrGrp_31_T := false; // @desc Support of the mechanisms defined for cells broadcasting multi band information i.e. comprehending multiBandInfoList // Reference: 36.523-2 A.4.5-1b/31 - modulepar boolean pc_FeatrGrp_33 := false; // @desc Inter-RAT ANR features for UTRAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/1 - - modulepar boolean pc_FeatrGrp_33_F := false; // @desc Inter-RAT ANR features for UTRAN including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + modulepar boolean pc_FeatrGrp_33_F := false; // @desc Inter-RAT ANR features for UTRAN including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/1 modulepar boolean pc_FeatrGrp_33_T := false; // @desc Inter-RAT ANR features for UTRAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/1 - modulepar boolean pc_FeatrGrp_34 := false; // @desc Inter-RAT ANR features for GERAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/2 - modulepar boolean pc_FeatrGrp_34_F := false; // @desc Inter-RAT ANR features for GERAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/2 modulepar boolean pc_FeatrGrp_34_T := false; // @desc Inter-RAT ANR features for GERAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/2 - modulepar boolean pc_FeatrGrp_35 := false; // @desc Inter-RAT ANR features for 1xRTT including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/3 - modulepar boolean pc_FeatrGrp_35_F := false; // @desc Inter-RAT ANR features for 1xRTT including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/3 modulepar boolean pc_FeatrGrp_35_T := false; // @desc Inter-RAT ANR features for 1xRTT including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/3 - modulepar boolean pc_FeatrGrp_36 := false; // @desc Inter-RAT ANR features for HRPD including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/4 - modulepar boolean pc_FeatrGrp_36_F := false; // @desc Inter-RAT ANR features for HRPD including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/4 - modulepar boolean pc_FeatrGrp_36_T := false; // @desc Inter-RAT ANR features for HRPD including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to portStrongestCellsForSON + modulepar boolean pc_FeatrGrp_36_T := false; // @desc Inter-RAT ANR features for HRPD including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to portStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/4 - modulepar boolean pc_FeatrGrp_37 := false; // @desc Inter-RAT ANR features for UTRAN TDD including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/5 - modulepar boolean pc_FeatrGrp_37_F := false; // @desc Inter-RAT ANR features for UTRAN TDD including: // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/5 modulepar boolean pc_FeatrGrp_37_T := false; // @desc Inter-RAT ANR features for UTRAN TDD including: // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/5 - modulepar boolean pc_FeatrGrp_38 := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover, if the UE supports both UTRAN FDD and UTRAN TDD - // Reference: 36.523-2 A.4.5-1c/6 - modulepar boolean pc_FeatrGrp_38_F := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1d/6 modulepar boolean pc_FeatrGrp_38_T := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1e/6 - modulepar boolean pc_FeatrGrp_39 := false; // @desc UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode, if the UE supports both UTRAN FDD and UTRAN TDD - // Reference: 36.523-2 A.4.5-1c/7 - modulepar boolean pc_FeatrGrp_39_F := false; // @desc UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1d/7 @@ -726,25 +585,16 @@ module Parameters { modulepar boolean pc_FeatrGrp_3_T := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN // Reference: 36.523-2 A.4.5-1b/3 - modulepar boolean pc_FeatrGrp_4 := false; // @desc Support of Short DRX cycle - // Reference: 36.523-2 A.4.5-1/4 - - modulepar boolean pc_FeatrGrp_40 := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover, if the UE supports both UTRAN FDD and UTRAN TDD - // Reference: 36.523-2 A.4.5-1c/8 - modulepar boolean pc_FeatrGrp_40_F := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1d/8 modulepar boolean pc_FeatrGrp_40_T := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1e/8 - modulepar boolean pc_FeatrGrp_41 := false; // @desc Measurement reporting event: Event B1 – Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 - // Reference: 36.523-2 A.4.5-1c/9 - - modulepar boolean pc_FeatrGrp_41_F := false; // @desc Measurement reporting event: Event B1 – Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 + modulepar boolean pc_FeatrGrp_41_F := false; // @desc Measurement reporting event: Event B1 Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 // Reference: 36.523-2 A.4.5-1d/9 - modulepar boolean pc_FeatrGrp_41_T := false; // @desc Measurement reporting event: Event B1 – Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 + modulepar boolean pc_FeatrGrp_41_T := false; // @desc Measurement reporting event: Event B1 Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 // Reference: 36.523-2 A.4.5-1e/9 modulepar boolean pc_FeatrGrp_4_F := false; // @desc Support of Short DRX cycle @@ -753,45 +603,30 @@ module Parameters { modulepar boolean pc_FeatrGrp_4_T := false; // @desc Support of Short DRX cycle // Reference: 36.523-2 A.4.5-1b/4 - modulepar boolean pc_FeatrGrp_5 := false; // @desc Support of Long DRX cycle, DRX command MAC control element - // Reference: 36.523-2 A.4.5-1/5 - modulepar boolean pc_FeatrGrp_5_F := false; // @desc Support of Long DRX cycle, DRX command MAC control element // Reference: 36.523-2 A.4.5-1a/5 modulepar boolean pc_FeatrGrp_5_T := false; // @desc Support of Long DRX cycle, DRX command MAC control element // Reference: 36.523-2 A.4.5-1b/5 - modulepar boolean pc_FeatrGrp_6 := false; // @desc Support of Piroritized bit rate - // Reference: 36.523-2 A.4.5-1/6 - modulepar boolean pc_FeatrGrp_6_F := false; // @desc Support of Piroritized bit rate // Reference: 36.523-2 A.4.5-1a/6 modulepar boolean pc_FeatrGrp_6_T := false; // @desc Support of Piroritized bit rate // Reference: 36.523-2 A.4.5-1b/6 - modulepar boolean pc_FeatrGrp_7 := false; // @desc Support of RLC UM - // Reference: 36.523-2 A.4.5-1/7 - modulepar boolean pc_FeatrGrp_7_F := false; // @desc Support of RLC UM // Reference: 36.523-2 A.4.5-1a/7 modulepar boolean pc_FeatrGrp_7_T := false; // @desc Support of RLC UM // Reference: 36.523-2 A.4.5-1b/7 - modulepar boolean pc_FeatrGrp_8 := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - // Reference: 36.523-2 A.4.5-1/8 - modulepar boolean pc_FeatrGrp_8_F := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover // Reference: 36.523-2 A.4.5-1a/8 modulepar boolean pc_FeatrGrp_8_T := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover // Reference: 36.523-2 A.4.5-1b/8 - modulepar boolean pc_FeatrGrp_9 := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - // Reference: 36.523-2 A.4.5-1/9 - modulepar boolean pc_FeatrGrp_9_F := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover // Reference: 36.523-2 A.4.5-1a/9 @@ -807,8 +642,7 @@ module Parameters { modulepar boolean pc_GERAN_2_E_UTRAN_PSHO := false; // @desc Support of GERAN to E-UTRAN PS Handover // Reference: 36.523-2 A.4.4-1/29 - modulepar boolean pc_GERAN_2_E_UTRAN_meas - := false; // @desc Supports Neighbour Cell measurements and Network controlled & autonomous cell reselection to E-UTRAN + modulepar boolean pc_GERAN_2_E_UTRAN_meas := false; // @desc Supports Neighbour Cell measurements and Network controlled & autonomous cell reselection to E-UTRAN // Reference: 36.523-2 A.4.4-1/21 modulepar boolean pc_GERAN_2_E_UTRAN_measreporting_CCN := false; // @desc Supports CCN towards E-UTRAN, E-UTRAN Neighbour cell measurement reporting and Network controlled cell reselection to E-UTRAN @@ -818,7 +652,7 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/8 modulepar boolean pc_HO_from_UTRA_to_eTDD := false; // @desc Support of Inter-RAT PS handover to E-UTRA from UTRA (TDD) - // Reference: 36.523-2 A.4.4-1/aa + // Reference: 36.523-2 A.4.4-1/53 modulepar boolean pc_HRPD := false; // @desc UE supports CDMA2000 HRPD band class // Reference: 36.523-2, A.4.1-1/3 @@ -829,14 +663,26 @@ module Parameters { modulepar boolean pc_IMSI_Detach := false; // @desc Support of detach for non-EPS services // Reference: 36.523-2 A.4.4-1/34 + modulepar boolean pc_IMS_APN_default := false; // @desc Configured with IMS APN as default APN + // Reference: 36.523-2 A.4.4-2/11 + + modulepar boolean pc_IMS_CS_PS_SRVCC := false; // @desc UE Supports CS to PS SRVCC + // Reference: 34.229-2 A.12/40 + + modulepar boolean pc_IMS_CS_PS_SRVCCAlert := false; // @desc UE Supports CS to PS SRVCC in alerting state + // Reference: 34.229-2 A.12/41 + + modulepar boolean pc_IMS_CS_PS_SRVCCMidCall := false; // @desc UE Supports CS to PS SRVCC and the MSC server assisted mid-call feature + // Reference: 34.229-2 A.12/42 + modulepar boolean pc_IMS_SRVCCAlert := false; // @desc UE indicates g.3gpp.srvcc-alerting media feature tag in INVITE request or 180 response - // Reference: 34.229-2 Table A.12/34 + // Reference: 34.229-2 A.12/34 modulepar boolean pc_IMS_emergency_call := false; // @desc Support of MS emergency call // Reference: 36.523-2, A.4.2.1.1-1/4 modulepar boolean pc_IPv4 := false; // @desc UE supports IPv4 (used IMS PICS as currently not defined in LTE) - // Reference: 34.229-2 A.7/1 + // Reference: 34.229-2 A.7/1 modulepar boolean pc_IPv6 := false; // @desc UE supports IPv6 (used IMS PICS as currently not defined in LTE) // Reference: 34.229-2 A.7/2 @@ -855,8 +701,8 @@ module Parameters { modulepar boolean pc_KeepEpsBearerParametersAfterNormalDetach := false; // @desc If the UE supports this, then the next ATTACH after DETACH shall be done using AT command AT+CGATT=1. - // Otherwise it shall be done using AT+CGDCONT=1,”IP” followed by AT+CGACT=1 - // Reference: 36.523-2 A.4.4.2-n + // Otherwise it shall be done using AT+CGDCONT=1,"IP" followed by AT+CGACT=1 + // Reference: 36.523-2 A.4.4.2-10 modulepar boolean pc_LAP_override := false; // @desc Support of Low Access Prioirty Override // Reference: 36.523-2 A.4.4-1/90 @@ -871,7 +717,14 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/49 modulepar boolean pc_Multiple_PDN := false; // @desc Support for multiple PDN connections - // Reference: 36.523-2 A.4.4-1/29 + // Reference: 36.523-2 A.4.4-1/30 + + modulepar boolean pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception := false; + // @desc Support of Automatic Mode EF_LRPLMSI PLMN Selection Expression + // Reference: 36.523-2 A.4.4-1/N1 + + modulepar boolean pc_PLMN_Manual_Mode_Exception := false; // @desc Support of Manual Mode PLMN Selection Expression + // Reference: 36.523-2 A.4.4-1/N2 modulepar boolean pc_PS := false; // @desc Packet Switched // Reference: 34.123-2 A.3/2 @@ -886,13 +739,13 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/67 modulepar boolean pc_Provide_IMS_APN := false; // @desc Configured to provide IMS APN during initial attach - // Reference: 36.523-2 A.4.4-2/nn + // Reference: 36.523-2 A.4.4-2/13 modulepar boolean pc_Provide_IMS_as_second_APN := false; // @desc Configured to provide IMS APN as the 2nd PDN connection - // Reference: 36.523-2 A.4.4-2/mm + // Reference: 36.523-2 A.4.4-2/14 modulepar boolean pc_Provide_Internet_as_second_APN := false; // @desc Configured to provide Internet APN as the 2nd PDN connection - // Reference: 36.523-2 A.4.4-2/oo + // Reference: 36.523-2 A.4.4-2/15 modulepar boolean pc_RLF_ReportForInterRAT_MRO := false; // @desc Support of Radio Link Failure Report for InterRAT MRO // Reference: 36.523-2 A.4.4-1/xx @@ -936,8 +789,19 @@ module Parameters { modulepar boolean pc_RequestIPv6HAAddress_DuringAttach := false; // @desc Support for being configured to request the IPv6 address of the Home Agent during Attach procedure // Reference: 36.523-2 A.4.4-1/22 + modulepar boolean pc_SI_Neighbour_UMTS_Autonomous_Gaps := false; // @desc Upon configuration of si-RequestForHO by the network, supports acquistion of relevant information from a neighbouring UMTS cell by reading the SI of the neighbouring cell using autonomous gaps and reporting + // Reference: 36.523-2, A.4.4-1/xxx + + modulepar boolean pc_SI_Neighbour_interFreq_Autonomous_Gaps := false; + // @desc Supports upon configuration of si-requestForHO by the network acquisition of relevant information from a neighbouring intrer-frequency cell by reading the SI of the neighouring cell using autonomous gaps and reporting + // Reference: 36.523-2, A.4.4-1/zz2 + + modulepar boolean pc_SI_Neighbour_intraFreq_Autonomous_Gaps := false; + // @desc Supports upon configuration of si-requestForHO by the network acquisition of relevant information from a neighbouring intra-frequency cell by reading the SI of the neighouring cell using autonomous gaps and reporting + // Reference: 36.523-2, A.4.4-1/zz1 + modulepar boolean pc_SMS_SGs := false; // @desc The UE supports SMS over SGs and is configured for SMS over SGs. If true, at least one of pc_SMS_SGs_MT and pc_SMS_SGs_MO is true. If it is set to true, pc_combined_attach shall be set to true - // + // // Reference: 36.523-2, A.4.2.1.1-1/2 modulepar boolean pc_SMS_SGs_MO := false; // @desc Support of Short Message Service (SMS) MO over SGs @@ -949,7 +813,7 @@ module Parameters { modulepar boolean pc_SMS_SGs_Multi_MO := false; // @desc Support of sending concatenated multiple short message over SGs // Reference: 36.523-2 A.4.4.1-72 - modulepar boolean pc_SRVCC_GERAN_UTRAN := false; // @desc Support for SRVCC from E-UTRAN to GERAN/UTRAN + modulepar boolean pc_SRVCC_GERAN_UTRAN := false; // @desc Support for SRVCC from E-UTRAN to GERAN/UTRAN // Reference: 36.523-2 A.4.4-1/32 modulepar boolean pc_Semi_Persistence_Scheduling := false; // @desc Support of semi persistance scheduling @@ -988,24 +852,24 @@ module Parameters { modulepar boolean pc_TAU_idle_in_IMS := false; // @desc Support of TAU in idle mode. Applicable when configured to pc_voice_PS_1_CS_2 and pc_Attach // Reference: 36.523-2 A.4.4.1-74 - modulepar boolean pc_TDD_HCR := false; // @desc UE supports UTRA band as defined in TS 25.102 + modulepar boolean pc_TDD_HCR := false; // @desc UE supports UTRA band as defined in TS 25.102 // Reference: 34.123-2 A.1/2 - modulepar boolean pc_TDD_LCR := false; // @desc UE supports UTRA band as defined in TS 25.102 + modulepar boolean pc_TDD_LCR := false; // @desc UE supports UTRA band as defined in TS 25.102 // Reference: 34.123-2 A.1/3 - modulepar boolean pc_TDD_VHCR := false; // @desc UE supports UTRA band as defined in TS 25.102 + modulepar boolean pc_TDD_VHCR := false; // @desc UE supports UTRA band as defined in TS 25.102 // Reference: 34.123-2 A.1/8 modulepar boolean pc_TTI_Bundling := false; // @desc Support of TTI Bundling // Reference: 36.523-2 A.4.4-1/51 modulepar boolean pc_TestModeforCSGproximity := false; // @desc Support of UE radio bearer test mode for CSG proximity testing - // Reference: 36.523-2 A.4.4-1/XX + // Reference: 36.523-2 A.4.4-1/92 modulepar boolean pc_UE_supports_user_initiated_PDN_disconnect := false; // @desc UE supports user initiated PDN disconnect - // Reference: 36.523-2 A.4.4-2/pp + // Reference: 36.523-2 A.4.4-2/16 modulepar boolean pc_UL_CA := false; // @desc Support of UL CA // Reference: 36.523-2, ??? @@ -1019,8 +883,10 @@ module Parameters { modulepar boolean pc_UL_MIMO := false; // @desc Support of UL MIMO // Reference: 36.523-2 A.4.4-170 - modulepar boolean pc_UL_interBand_CaBwClassComb_AA - := false; // @desc UL Inter-band contiguous CA BW class A-A + modulepar boolean pc_UL_SupportedInAllBandsInCAComb := false; // @desc UL (Pcell) supported in each band of Inter-band CA combination under test + // Reference: 36.523-2 A.4.3.3.3-2/2 + + modulepar boolean pc_UL_interBand_CaBwClassComb_AA := false; // @desc UL Inter-band contiguous CA BW class A-A // Reference: 36.523-2 A.4.3.3.3-2/1 modulepar boolean pc_UL_intraBand_nonContCaBwClassComb_AA := false; @@ -1033,7 +899,7 @@ module Parameters { modulepar boolean pc_USIM_Removal := false; // @desc USIM removable without power down supported // Reference: 36.523-2, A4.4-1/1 - modulepar boolean pc_UTRA := false; // @desc UE supports UTRA + modulepar boolean pc_UTRA := false; // @desc UE supports UTRA // Reference: 36.523-2 A.4.1-1/6 modulepar boolean pc_UTRAN_ANR := false; // @desc Support of UTRAN ANR @@ -1049,10 +915,10 @@ module Parameters { // Reference: 36.523-2 A.4.5-2/2 modulepar boolean pc_UeAssistedAgps := false; // @desc Support of UE assisted Network Assisted GPS L1 C/A - // Reference: 37.571-3 Table A.4.3-1/11 + // Reference: 37.571-3 A.4.3-1/11 modulepar boolean pc_UeBasedAgps := false; // @desc Support of UE based Network Assisted GPS L1 C/A - // Reference: 37.571-3 Table A.4.3-1/10 + // Reference: 37.571-3 A.4.3-1/10 modulepar boolean pc_UniversalAndLocalTimeZone := false; // @desc Support of storage of the universal time and local time zone // Reference: 36.523-2 A.4.4-1/15 @@ -1066,6 +932,12 @@ module Parameters { modulepar boolean pc_VoLTE := false; // @desc Support of VoLTE in GSMA PRD IR.92: "IMS profile for Voice and SMS" // Reference: 36.523-2 A.4.4-1/33 + modulepar boolean pc_XCAP_only_APN := false; // @desc Configured with an APN for XCAP only usage + // Reference: 36.523-2 A.4.4-2/12 + + modulepar boolean pc_XCAP_over_Internet_APN := false; // @desc Configured to use Internet APN for XCAP signalling + // Reference: 36.523-2 A.4.4-2/17 + modulepar boolean pc_eFDD := false; // @desc UE supports EUTRA FDD // Reference: 36.523-2 A.4.1-1/1 @@ -1088,7 +960,52 @@ module Parameters { // Reference: 36.523-2 A.4.1-2/2 modulepar boolean pc_multipleTimingAdvance := false; // @desc Support of multiple timing advances - // Reference: 36.523-2 A.4.4-1/88 + // Reference: 36.523-2 A.4.4-1A/3 + + modulepar boolean pc_ue_CategoryDL_0 := false; // @desc UE Category DL 0 + // Reference: 36.523-2 A.4.3.2-2/1 + + modulepar boolean pc_ue_CategoryDL_10 := false; // @desc UE Category DL 10 + // Reference: 36.523-2 A.4.3.2-2/5 + + modulepar boolean pc_ue_CategoryDL_11 := false; // @desc UE Category DL 11 + // Reference: 36.523-2 A.4.3.2-2/6 + + modulepar boolean pc_ue_CategoryDL_12 := false; // @desc UE Category DL 12 + // Reference: 36.523-2 A.4.3.2-2/7 + + modulepar boolean pc_ue_CategoryDL_13 := false; // @desc UE Category DL 13 + // Reference: 36.523-2 A.4.3.2-2/8 + + modulepar boolean pc_ue_CategoryDL_14 := false; // @desc UE Category DL 14 + // Reference: 36.523-2 A.4.3.2-2/9 + + modulepar boolean pc_ue_CategoryDL_6 := false; // @desc UE Category DL 6 + // Reference: 36.523-2 A.4.3.2-2/2 + + modulepar boolean pc_ue_CategoryDL_7 := false; // @desc UE Category DL 7 + // Reference: 36.523-2 A.4.3.2-2/3 + + modulepar boolean pc_ue_CategoryDL_9 := false; // @desc UE Category DL 9 + // Reference: 36.523-2 A.4.3.2-2/4 + + modulepar boolean pc_ue_CategoryUL_0 := false; // @desc UE Category UL 0 + // Reference: 36.523-2 A.4.3.2-3/1 + + modulepar boolean pc_ue_CategoryUL_13 := false; // @desc UE Category UL 13 + // Reference: 36.523-2 A.4.3.2-3/6 + + modulepar boolean pc_ue_CategoryUL_3 := false; // @desc UE Category UL 3 + // Reference: 36.523-2 A.4.3.2-3/2 + + modulepar boolean pc_ue_CategoryUL_5 := false; // @desc UE Category UL 5 + // Reference: 36.523-2 A.4.3.2-3/3 + + modulepar boolean pc_ue_CategoryUL_7 := false; // @desc UE Category UL 7 + // Reference: 36.523-2 A.4.3.2-3/4 + + modulepar boolean pc_ue_CategoryUL_8 := false; // @desc UE Category UL 8 + // Reference: 36.523-2 A.4.3.2-3/5 modulepar boolean pc_ue_Category_1 := false; // @desc UE Category 1 // Reference: 36.523-2 A.4.3.2-1/1 @@ -1096,6 +1013,12 @@ module Parameters { modulepar boolean pc_ue_Category_10 := false; // @desc UE Category 10 // Reference: 36.523-2 A.4.3.2-1/10 + modulepar boolean pc_ue_Category_11 := false; // @desc UE Category 11 + // Reference: 36.523-2 A.4.3.2-1/11 + + modulepar boolean pc_ue_Category_12 := false; // @desc UE Category 12 + // Reference: 36.523-2 A.4.3.2-1/12 + modulepar boolean pc_ue_Category_2 := false; // @desc UE Category 2 // Reference: 36.523-2 A.4.3.2-1/2 diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn b/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn deleted file mode 100644 index afd8280..0000000 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-08 16:51:11 +0200 (Mon, 08 Sep 2014) $ -// $Rev: 12118 $ -/******************************************************************************/ - -module EUTRA_AuxiliaryCapCheckFunctions -{ - -//========================================================================= -// Auxiliary functions for checking of capabilities -// for the time being only those functions needed outside module RRC_Others -// are contained here. More functions may be transferred in the future. -//========================================================================= - - import from CommonDefs all; - import from EUTRA_Parameters all; - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; - - /* - * @desc Function returns the number of supported interRat bands listed in all IEs in interRAT_Parameters. - * @sic R5s100302 Change 7 : Creation of new function for counting the number of supported interRat bands sic@ - * @param p_UECaps - * @return integer - * @status APPROVED (LTE, UTRAN) - */ - function f_Count_Supported_interRAT_Bands(UE_EUTRA_Capability p_UECaps) return integer - { - var integer v_NrOfSuppIratBands := 0; - - if (ispresent (p_UECaps.interRAT_Parameters.utraFDD)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraFDD.supportedBandListUTRA_FDD); - }; - if (ispresent (p_UECaps.interRAT_Parameters.utraTDD128)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraTDD128.supportedBandListUTRA_TDD128); - }; - if (ispresent (p_UECaps.interRAT_Parameters.utraTDD384)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraTDD384.supportedBandListUTRA_TDD384); - }; - if (ispresent (p_UECaps.interRAT_Parameters.utraTDD768)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraTDD768.supportedBandListUTRA_TDD768); - }; - if (ispresent (p_UECaps.interRAT_Parameters.geran)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.geran.supportedBandListGERAN); - } - if (ispresent (p_UECaps.interRAT_Parameters.cdma2000_HRPD)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.cdma2000_HRPD.supportedBandListHRPD); - } - if (ispresent (p_UECaps.interRAT_Parameters.cdma2000_1xRTT)){ - v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.cdma2000_1xRTT.supportedBandList1XRTT); - } - - return v_NrOfSuppIratBands; - } - - - /* - * @desc Function to convert the PICS parameters pc_eBandX_Supp from single booleans to a bitstring. - * The leftmost bit represent eBand1 support ('1'B if supported according to PICS pc_eBand1_Supp - * and '0'B if not supported according to PICS pc_eBand1_Supp). - * @return bitstring - * @status APPROVED (LTE, POS, UTRAN) - */ - function f_DeriveSuppEutraBandsFromPics() return bitstring - { - var bitstring v_Bitstring := f_ConvertBoolToBit(pc_eBand1_Supp) & - f_ConvertBoolToBit(pc_eBand2_Supp) & - f_ConvertBoolToBit(pc_eBand3_Supp) & - f_ConvertBoolToBit(pc_eBand4_Supp) & - f_ConvertBoolToBit(pc_eBand5_Supp) & - f_ConvertBoolToBit(pc_eBand6_Supp) & - f_ConvertBoolToBit(pc_eBand7_Supp) & - f_ConvertBoolToBit(pc_eBand8_Supp) & - f_ConvertBoolToBit(pc_eBand9_Supp) & - f_ConvertBoolToBit(pc_eBand10_Supp) & - f_ConvertBoolToBit(pc_eBand11_Supp) & - f_ConvertBoolToBit(pc_eBand12_Supp) & - f_ConvertBoolToBit(pc_eBand13_Supp) & - f_ConvertBoolToBit(pc_eBand14_Supp) & - '0'B &//Band 15 is reserved - '0'B &//Band 16 is reserved - f_ConvertBoolToBit(pc_eBand17_Supp) & - f_ConvertBoolToBit(pc_eBand18_Supp) & - f_ConvertBoolToBit(pc_eBand19_Supp) & - f_ConvertBoolToBit(pc_eBand20_Supp) & // @sic R5-103122 sic@ - f_ConvertBoolToBit(pc_eBand21_Supp) & // @sic R5-103122 sic@ - f_ConvertBoolToBit(pc_eBand22_Supp) & // @sic R5-115190 sic@ - f_ConvertBoolToBit(pc_eBand23_Supp) & // @sic R5-113669 sic@ - f_ConvertBoolToBit(pc_eBand24_Supp) & // @sic R5-112489 sic@ - f_ConvertBoolToBit(pc_eBand25_Supp) & // @sic R5-113156 sic@ - f_ConvertBoolToBit(pc_eBand26_Supp) & // @sic R5-121224 sic@ - f_ConvertBoolToBit(pc_eBand27_Supp) & // @sic R5s130320 sic@ - f_ConvertBoolToBit(pc_eBand28_Supp) & // @sic R5s130320 sic@ - f_ConvertBoolToBit(pc_eBand29_Supp) & // @sic R5s130320 sic@ - f_ConvertBoolToBit(pc_eBand30_Supp) & // @sic R5-144079 sic@ - f_ConvertBoolToBit(pc_eBand31_Supp) & // @sic R5s133307 sic@ - '0'B &//Band 32 - f_ConvertBoolToBit(pc_eBand33_Supp) & - f_ConvertBoolToBit(pc_eBand34_Supp) & - f_ConvertBoolToBit(pc_eBand35_Supp) & - f_ConvertBoolToBit(pc_eBand36_Supp) & //@sic R5s100020 sic@ - f_ConvertBoolToBit(pc_eBand37_Supp) & - f_ConvertBoolToBit(pc_eBand38_Supp) & - f_ConvertBoolToBit(pc_eBand39_Supp) & - f_ConvertBoolToBit(pc_eBand40_Supp) & - f_ConvertBoolToBit(pc_eBand41_Supp) & //@sic R5-106554 sic@ - f_ConvertBoolToBit(pc_eBand42_Supp) & //@sic R5-110537 sic@ - f_ConvertBoolToBit(pc_eBand43_Supp); //@sic R5-110537 sic@ - return v_Bitstring; - } // f_DeriveSuppEutraBandsFromPics - - /* - * @desc Function to convert the PICS parameters pc_eBand65_Supp to pc_eBand256_Supp from single booleans to a bitstring. - * The leftmost bit represent eBand65 support ('1'B if supported according to PICS pc_eBand65_Supp - * and '0'B if not supported according to PICS pc_eBand65_Supp). - * @return bitstring - * @status - */ - function f_DeriveSuppEutraBandsFromPics_v9a0() return bitstring - { - var bitstring v_Bitstring := ''B; //pc_eBand65_Supp to pc_eBand256_Supp not defined yet. This is a dummy function for future development. - return v_Bitstring; - } // f_DeriveSuppEutraBandsFromPics_v9a0 - - /* - * @desc Function which returns the total number of supported bands according to the set PICS parameters pc_eBandX_Supp. - * @param p_Bitstring - * @return integer - * @status APPROVED (LTE, POS, UTRAN) - */ - function f_GetNrOfSuppEutraBands(bitstring p_Bitstring) return integer - { - var integer v_NrOfSuppEutraBands := 0; - var integer i; - - for (i := 0; i < lengthof(p_Bitstring); i := i + 1) { - if (f_Bitstring_BitIsSet(p_Bitstring, i)) { - v_NrOfSuppEutraBands := v_NrOfSuppEutraBands + 1; - } - } - return v_NrOfSuppEutraBands; - } // f_GetNrOfSuppEutraBands -} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn b/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn deleted file mode 100644 index 3656814..0000000 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfoInit_CA.ttcn +++ /dev/null @@ -1,794 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ -/******************************************************************************/ - -module EUTRA_CellInfoInit_CA { - - import from EUTRA_CellInfo all; - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from CommonDefs all; - import from EUTRA_ASP_TypeDefs all; - import from CommonIratDefs all; - import from EUTRA_Parameters all; - import from EUTRA_Component all; - import from EUTRA_SysInfo_Templates all; - import from EUTRA_CellInfoFrequency all; - import from EUTRA_AuxiliaryFunctions all; - import from EUTRA_BandDependentParam all; - import from Parameters all; - import from EUTRA_RRC_Templates all; - - - type enumerated CA_Tested_Type { CA_IntraBand, CA_InterBand }; /* @sic R5-141113 sic@ @status APPROVED (LTE_A) */ - - type record Frequency_fList_CAInterBand_Type { - /* This structure is used to contain the different frequencies f1, f2, f5, f6 */ - /* @status APPROVED (LTE_A) */ - CarrierFreqEUTRA f1, - CarrierFreqEUTRA f2, //@sic R5-132027 sic@ - CarrierFreqEUTRA f5, - CarrierFreqEUTRA f6 - }; - - // ------------------------------------------------------------------------------------- - // TEMPLATES - // ------------------------------------------------------------------------------------- - template (value) Frequency_fList_CAInterBand_Type cs_FrequencyCAInterBand_Dummy:= - { /* To initialise f1,f2,f3,f4 with dummy frequency values */ - /* @status APPROVED (LTE_A) */ - f1 := { dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }, - f2 := { dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }, - f5 := { dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }, - f6 := { dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency } - }; - - /* - * @desc Initialise frquencies for CA intra contiguous band - * Refer to 36.508 Table 6.2.3.2-1: Test frequencies for E-UTRA PCell and SCell for CA contiguous Intra-band operation - * @param p_FrequencyBand - * @return Frequency_fList_Type - * @status APPROVED (LTE_A) - */ - function f_EUTRA_CA_InitFrequenciesIntraBand(FreqBandIndicator p_FrequencyBand) return Frequency_fList_Type - { //@sic R5-141113 sic@ - var template(value) Frequency_fList_Type v_Freq := cs_FrequencyInitDummy; //Initialise with Dummy value - - // acc to 36.508 Table 6.2.3.2-1: Test frequencies for E-UTRA PCell and SCell for CA contiguous Intra-band operation - select (p_FrequencyBand) { - case (1) { // CA_1C - v_Freq.f1.dl_CarrierFreq := 300; - v_Freq.f1.ul_CarrierFreq := 18300; - v_Freq.f2.dl_CarrierFreq := 498; - v_Freq.f2.ul_CarrierFreq := 18498; - v_Freq.f3.dl_CarrierFreq := 102; - v_Freq.f3.ul_CarrierFreq := 18102; - } - case (3) { // CA_3C @sic R5-134791 sic@ - v_Freq.f1.dl_CarrierFreq := 1475; - v_Freq.f1.ul_CarrierFreq := 19475; - v_Freq.f2.dl_CarrierFreq := 1673; - v_Freq.f2.ul_CarrierFreq := 19673; - v_Freq.f3.dl_CarrierFreq := 1277; - v_Freq.f3.ul_CarrierFreq := 19277; - } - case (7) { // CA_7C - v_Freq.f1.dl_CarrierFreq := 3000; - v_Freq.f1.ul_CarrierFreq := 21000; - v_Freq.f2.dl_CarrierFreq := 3198; - v_Freq.f2.ul_CarrierFreq := 21198; - v_Freq.f3.dl_CarrierFreq := 2802; - v_Freq.f3.ul_CarrierFreq := 20802; - } - case (27) { // CA_27B @sic R5-142930 sic@ - v_Freq.f1.dl_CarrierFreq := 9100; - v_Freq.f1.ul_CarrierFreq := 27100; - v_Freq.f2.dl_CarrierFreq := 9148; - v_Freq.f2.ul_CarrierFreq := 27148; - v_Freq.f3.dl_CarrierFreq := 9050; - v_Freq.f3.ul_CarrierFreq := 27050; - } - case (38) { // CA_38C - v_Freq.f1.dl_CarrierFreq := 37900; - v_Freq.f2.dl_CarrierFreq := 38098; - } - case (40) { // CA_40C - v_Freq.f1.dl_CarrierFreq := 39050; - v_Freq.f2.dl_CarrierFreq := 39248; - v_Freq.f3.dl_CarrierFreq := 38852; - } - case (41) { // CA_41C - v_Freq.f1.dl_CarrierFreq := 40520; - v_Freq.f2.dl_CarrierFreq := 40718; - v_Freq.f3.dl_CarrierFreq := 40322; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - return valueof(v_Freq); - } - - /* - * @desc Initialise frquencies for CA intra contiguous band - * Refer to 36.508 Table 6.2.3.2-2 and 6.2.3.2-3: Test frequencies PCell and SCell for CA Inter-band operat - * @param p_PrimaryBandFrequencyBand - * @param p_SecondaryBandFrequencyBand - * @return Frequency_fList_CAInterBand_Type - * @status APPROVED (LTE_A) - */ - function f_EUTRA_CA_InitFrequenciesInterBand(FreqBandIndicator p_PrimaryBandFrequencyBand, - FreqBandIndicator p_SecondaryBandFrequencyBand) return Frequency_fList_CAInterBand_Type - { - var template(value) Frequency_fList_CAInterBand_Type v_Freq := cs_FrequencyCAInterBand_Dummy; - - select (p_PrimaryBandFrequencyBand) { - case (1) { - select (p_SecondaryBandFrequencyBand) { - case (5) { // CA_1A-5A - v_Freq.f1.dl_CarrierFreq := 300; - v_Freq.f1.ul_CarrierFreq := 18300; - v_Freq.f2.dl_CarrierFreq := 450; - v_Freq.f2.ul_CarrierFreq := 18450; - v_Freq.f5.dl_CarrierFreq := 2450; - v_Freq.f5.ul_CarrierFreq := 20450; - v_Freq.f6.dl_CarrierFreq := 2600; - v_Freq.f6.ul_CarrierFreq := 20600; - } - case (8) { // CA_1A-8A @sic R5-140406 R5-140744 sic@ - v_Freq.f1.dl_CarrierFreq := 300; - v_Freq.f1.ul_CarrierFreq := 18300; - v_Freq.f2.dl_CarrierFreq := 550; - v_Freq.f2.ul_CarrierFreq := 18550; - v_Freq.f5.dl_CarrierFreq := 3625; - v_Freq.f5.ul_CarrierFreq := 21625; - v_Freq.f6.dl_CarrierFreq := 3750; - v_Freq.f6.ul_CarrierFreq := 21750; - } - case (18) { // CA_1A-18A @sic R5s130898 sic@ - v_Freq.f1.dl_CarrierFreq := 300; - v_Freq.f1.ul_CarrierFreq := 18300; - v_Freq.f2.dl_CarrierFreq := 550; - v_Freq.f2.ul_CarrierFreq := 18550; - v_Freq.f5.dl_CarrierFreq := 5900; - v_Freq.f5.ul_CarrierFreq := 23900; - } - case (19) { // CA_1A-19A - v_Freq.f1.dl_CarrierFreq := 324; - v_Freq.f1.ul_CarrierFreq := 18324; - v_Freq.f2.dl_CarrierFreq := 525; - v_Freq.f2.ul_CarrierFreq := 18525; - v_Freq.f5.dl_CarrierFreq := 6100; - v_Freq.f5.ul_CarrierFreq := 24100; - } - case (21) { // CA_1A-21A - v_Freq.f1.dl_CarrierFreq := 324; - v_Freq.f1.ul_CarrierFreq := 18324; - v_Freq.f2.dl_CarrierFreq := 525; - v_Freq.f2.ul_CarrierFreq := 18525; - v_Freq.f5.dl_CarrierFreq := 6525; - v_Freq.f5.ul_CarrierFreq := 24525; - } - case (26) { // CA_1A-26A //@sic R5s140241 sic@ - v_Freq.f1.dl_CarrierFreq := 300; - v_Freq.f1.ul_CarrierFreq := 18300; - v_Freq.f2.dl_CarrierFreq := 550; - v_Freq.f2.ul_CarrierFreq := 18550; - v_Freq.f5.dl_CarrierFreq := 8865; - v_Freq.f5.ul_CarrierFreq := 26865; - v_Freq.f6.dl_CarrierFreq := 8990; - v_Freq.f6.ul_CarrierFreq := 26990; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (2) { - select (p_SecondaryBandFrequencyBand) { - case (4) { // CA_2A-4A @sic R5-142768 sic@ - v_Freq.f1.dl_CarrierFreq := 900; - v_Freq.f1.ul_CarrierFreq := 18900; - v_Freq.f2.dl_CarrierFreq := 1150; - v_Freq.f2.ul_CarrierFreq := 19150; - v_Freq.f5.dl_CarrierFreq := 2175; - v_Freq.f5.ul_CarrierFreq := 20175; - v_Freq.f6.dl_CarrierFreq := 2350; - v_Freq.f6.ul_CarrierFreq := 20350; - } - case (5) { // CA_2A-5A @sic R5-134426 sic@ - v_Freq.f1.dl_CarrierFreq := 900; - v_Freq.f1.ul_CarrierFreq := 18900; - v_Freq.f2.dl_CarrierFreq := 1150; - v_Freq.f2.ul_CarrierFreq := 19150; - v_Freq.f5.dl_CarrierFreq := 2450; - v_Freq.f5.ul_CarrierFreq := 20450; - v_Freq.f6.dl_CarrierFreq := 2600; - v_Freq.f6.ul_CarrierFreq := 20600; - } - case (17) { // CA_2A-17A - v_Freq.f1.dl_CarrierFreq := 900; - v_Freq.f1.ul_CarrierFreq := 18900; - v_Freq.f5.dl_CarrierFreq := 5790; - v_Freq.f5.ul_CarrierFreq := 23790; - } - case (29) { // CA_2A-29A @sic R5-134786 sic@ - v_Freq.f1.dl_CarrierFreq := 900; - v_Freq.f1.ul_CarrierFreq := 18900; - v_Freq.f2.dl_CarrierFreq := 1150; - v_Freq.f2.ul_CarrierFreq := 19150; - v_Freq.f5.dl_CarrierFreq := 9720; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (3) { - select (p_SecondaryBandFrequencyBand) { - case (5) { // CA_3A-5A @sic R5-133614 sic@ - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1900; - v_Freq.f2.ul_CarrierFreq := 19900; - v_Freq.f5.dl_CarrierFreq := 2450; - v_Freq.f5.ul_CarrierFreq := 20450; - v_Freq.f6.dl_CarrierFreq := 2600; - v_Freq.f6.ul_CarrierFreq := 20600; - } - case (7) { // CA_3A-7A - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1900; - v_Freq.f2.ul_CarrierFreq := 19900; - v_Freq.f5.dl_CarrierFreq := 2800; - v_Freq.f5.ul_CarrierFreq := 20800; - v_Freq.f6.dl_CarrierFreq := 3400; - v_Freq.f6.ul_CarrierFreq := 21400; - } - case (8) { // CA_3A-8A @sic R5-133113 sic@ - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1900; - v_Freq.f2.ul_CarrierFreq := 19900; - v_Freq.f5.dl_CarrierFreq := 3625; - v_Freq.f5.ul_CarrierFreq := 21625; - v_Freq.f6.dl_CarrierFreq := 3750; - v_Freq.f6.ul_CarrierFreq := 21750; - } - case (19) { // CA_3A-19A @sic R5-134790 R5-142928 sic@ - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1850; - v_Freq.f2.ul_CarrierFreq := 19850; - v_Freq.f5.dl_CarrierFreq := 6100; - v_Freq.f5.ul_CarrierFreq := 24100; - } - case (26) { // CA_3A-26A @sic R5-142299 sic@ - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1900; - v_Freq.f2.ul_CarrierFreq := 19900; - v_Freq.f5.dl_CarrierFreq := 8865; - v_Freq.f5.ul_CarrierFreq := 26865; - v_Freq.f6.dl_CarrierFreq := 8990; - v_Freq.f6.ul_CarrierFreq := 26990; - } - case (27) { // CA_3A-27A @sic R5-142299 sic@ - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1900; - v_Freq.f2.ul_CarrierFreq := 19900; - v_Freq.f5.dl_CarrierFreq := 9125; - v_Freq.f5.ul_CarrierFreq := 27125; - v_Freq.f6.dl_CarrierFreq := 9160; - v_Freq.f6.ul_CarrierFreq := 27160; - } - case (28) { // CA_3A-28A @sic R5-142114 sic@ - v_Freq.f1.dl_CarrierFreq := 1575; - v_Freq.f1.ul_CarrierFreq := 19575; - v_Freq.f2.dl_CarrierFreq := 1900; - v_Freq.f2.ul_CarrierFreq := 19900; - v_Freq.f5.dl_CarrierFreq := 9435; - v_Freq.f5.ul_CarrierFreq := 27435; - v_Freq.f6.dl_CarrierFreq := 9610; - v_Freq.f6.ul_CarrierFreq := 27610; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (4) { - select (p_SecondaryBandFrequencyBand) { - case (5) { // CA_4A-5A - v_Freq.f1.dl_CarrierFreq := 2175; - v_Freq.f1.ul_CarrierFreq := 20175; - v_Freq.f2.dl_CarrierFreq := 2350; - v_Freq.f2.ul_CarrierFreq := 20350; - v_Freq.f5.dl_CarrierFreq := 2450; - v_Freq.f5.ul_CarrierFreq := 20450; - v_Freq.f6.dl_CarrierFreq := 2600; - v_Freq.f6.ul_CarrierFreq := 20600; - } - case (12) { // CA_4A-12A @sic R5-142928 sic@ - v_Freq.f1.dl_CarrierFreq := 2175; - v_Freq.f1.ul_CarrierFreq := 20175; - v_Freq.f2.dl_CarrierFreq := 2350; - v_Freq.f2.ul_CarrierFreq := 20350; - v_Freq.f5.dl_CarrierFreq := 5130; - v_Freq.f5.ul_CarrierFreq := 23130; - } - case (13) { //CA_4A-13A - v_Freq.f1.dl_CarrierFreq := 2175; - v_Freq.f1.ul_CarrierFreq := 20175; - v_Freq.f2.dl_CarrierFreq := 2350; - v_Freq.f2.ul_CarrierFreq := 20350; - v_Freq.f5.dl_CarrierFreq := 5230; - v_Freq.f5.ul_CarrierFreq := 23230; - } - case (17) { //CA_4A-17A - v_Freq.f1.dl_CarrierFreq := 2175; - v_Freq.f1.ul_CarrierFreq := 20175; - v_Freq.f5.dl_CarrierFreq := 5790; - v_Freq.f5.ul_CarrierFreq := 23790; - } - case (29) { // CA_4A-29A @sic R5-134786 sic@ - v_Freq.f1.dl_CarrierFreq := 2175; - v_Freq.f1.ul_CarrierFreq := 20175; - v_Freq.f2.dl_CarrierFreq := 2350; - v_Freq.f2.ul_CarrierFreq := 20350; - v_Freq.f5.dl_CarrierFreq := 9720; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (5) { - select (p_SecondaryBandFrequencyBand) { - case (2) { // CA_2A-5A_Rev (reverse) Table 6.2.3.2-3 @sic R5-140789 sic@ - v_Freq.f5.dl_CarrierFreq := 900; - v_Freq.f5.ul_CarrierFreq := 18900; - v_Freq.f6.dl_CarrierFreq := 1150; - v_Freq.f6.ul_CarrierFreq := 19150; - v_Freq.f1.dl_CarrierFreq := 2450; - v_Freq.f1.ul_CarrierFreq := 20450; - v_Freq.f2.dl_CarrierFreq := 2600; - v_Freq.f2.ul_CarrierFreq := 20600; - } - case (4) { // CA_4A-5A_Rev (reverse) Table 6.2.3.2-3 @sic R5-140998 R5s140241 sic@ - v_Freq.f5.dl_CarrierFreq := 2175; - v_Freq.f5.ul_CarrierFreq := 20175; - v_Freq.f6.dl_CarrierFreq := 2350; - v_Freq.f6.ul_CarrierFreq := 20350; - v_Freq.f1.dl_CarrierFreq := 2450; - v_Freq.f1.ul_CarrierFreq := 20450; - v_Freq.f2.dl_CarrierFreq := 2600; - v_Freq.f2.ul_CarrierFreq := 20600; - } - case (7) { // CA_5A-7A @sic R5-142768 sic@ - v_Freq.f1.dl_CarrierFreq := 2450; - v_Freq.f1.ul_CarrierFreq := 20450; - v_Freq.f2.dl_CarrierFreq := 2600; - v_Freq.f2.ul_CarrierFreq := 20600; - v_Freq.f5.dl_CarrierFreq := 2800; - v_Freq.f5.ul_CarrierFreq := 20800; - v_Freq.f6.dl_CarrierFreq := 3400; - v_Freq.f6.ul_CarrierFreq := 21400; - } - case (12) { // CA_5A-12A @sic R5-142928 sic@ - v_Freq.f1.dl_CarrierFreq := 2525; - v_Freq.f1.ul_CarrierFreq := 20525; - v_Freq.f2.dl_CarrierFreq := 2600; - v_Freq.f2.ul_CarrierFreq := 20600; - v_Freq.f5.dl_CarrierFreq := 5130; - v_Freq.f5.ul_CarrierFreq := 23130; - } - case (17) { // CA_5A-17A @sic R5-134876 sic@ - v_Freq.f1.dl_CarrierFreq := 2525; - v_Freq.f1.ul_CarrierFreq := 20525; - v_Freq.f2.dl_CarrierFreq := 2600; - v_Freq.f2.ul_CarrierFreq := 20600; - v_Freq.f5.dl_CarrierFreq := 5790; - v_Freq.f5.ul_CarrierFreq := 23790; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (7) { - select (p_SecondaryBandFrequencyBand) { - case (20) { // CA_7A-20A - v_Freq.f1.dl_CarrierFreq := 3100; - v_Freq.f1.ul_CarrierFreq := 21100; - v_Freq.f2.dl_CarrierFreq := 3400; - v_Freq.f2.ul_CarrierFreq := 21400; - v_Freq.f5.dl_CarrierFreq := 6200; - v_Freq.f5.ul_CarrierFreq := 24200; - v_Freq.f6.dl_CarrierFreq := 6400; - v_Freq.f6.ul_CarrierFreq := 24400; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (11) { - select (p_SecondaryBandFrequencyBand) { - case (18) { // CA_11A-18A @sic R5s130898 sic@ - v_Freq.f1.dl_CarrierFreq := 4800; - v_Freq.f1.ul_CarrierFreq := 22800; - v_Freq.f2.dl_CarrierFreq := 4900; - v_Freq.f2.ul_CarrierFreq := 22900; - v_Freq.f5.dl_CarrierFreq := 5900; - v_Freq.f5.ul_CarrierFreq := 23900; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (13) { - select (p_SecondaryBandFrequencyBand) { - case (4) { // CA_4A-13A_Rev (reverse) Table 6.2.3.2-3 @sic R5-140745 sic@ - v_Freq.f5.dl_CarrierFreq := 2175; - v_Freq.f5.ul_CarrierFreq := 20175; - v_Freq.f6.dl_CarrierFreq := 2350; - v_Freq.f6.ul_CarrierFreq := 20350; - v_Freq.f1.dl_CarrierFreq := 5230; - v_Freq.f1.ul_CarrierFreq := 23230; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (17) { - select (p_SecondaryBandFrequencyBand) { - case (2) { // CA_2A-17A_Rev (reverse) Table 6.2.3.2-3 @sic R5-133615 sic@ - v_Freq.f5.dl_CarrierFreq := 900; - v_Freq.f5.ul_CarrierFreq := 18900; - v_Freq.f6.dl_CarrierFreq := 1150; - v_Freq.f6.ul_CarrierFreq := 19150; - v_Freq.f1.dl_CarrierFreq := 5790; - v_Freq.f1.ul_CarrierFreq := 23790; - } - case (4) { // CA_4A-17A_Rev (reverse) Table 6.2.3.2-3 @sic R5-133615 sic@ - v_Freq.f5.dl_CarrierFreq := 2175; - v_Freq.f5.ul_CarrierFreq := 20175; - v_Freq.f6.dl_CarrierFreq := 2350; - v_Freq.f6.ul_CarrierFreq := 20350; - v_Freq.f1.dl_CarrierFreq := 5790; - v_Freq.f1.ul_CarrierFreq := 23790; - } - case (5) { // CA_5A-17A_Rev (reverse) Table 6.2.3.2-3 @sic R5-140998 R5s140241 sic@ - v_Freq.f5.dl_CarrierFreq := 2525; - v_Freq.f5.ul_CarrierFreq := 20525; - v_Freq.f6.dl_CarrierFreq := 2600; - v_Freq.f6.ul_CarrierFreq := 20600; - v_Freq.f1.dl_CarrierFreq := 5790; - v_Freq.f1.ul_CarrierFreq := 23790; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (18) { - select (p_SecondaryBandFrequencyBand) { - case (1) { // CA_1A-18A_Rev @sic R5-144543 sic@ - v_Freq.f5.dl_CarrierFreq := 300; - v_Freq.f5.ul_CarrierFreq := 18300; - v_Freq.f6.dl_CarrierFreq := 500; - v_Freq.f6.ul_CarrierFreq := 18500; - v_Freq.f1.dl_CarrierFreq := 5900; - v_Freq.f1.ul_CarrierFreq := 23900; - } - case (11) { // CA_11A-18A_Rev @sic R5-144543 sic@ - v_Freq.f5.dl_CarrierFreq := 4800; - v_Freq.f5.ul_CarrierFreq := 22800; - v_Freq.f6.dl_CarrierFreq := 4900; - v_Freq.f6.ul_CarrierFreq := 22900; - v_Freq.f1.dl_CarrierFreq := 5900; - v_Freq.f1.ul_CarrierFreq := 23900; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (19) { - select (p_SecondaryBandFrequencyBand) { - case (1) { // CA_1A-19A_Rev @sic R5-144685 sic@ - v_Freq.f5.dl_CarrierFreq := 324; - v_Freq.f5.ul_CarrierFreq := 18324; - v_Freq.f6.dl_CarrierFreq := 525; - v_Freq.f6.ul_CarrierFreq := 18525; - v_Freq.f1.dl_CarrierFreq := 6100; - v_Freq.f1.ul_CarrierFreq := 24100; - } - case (3) { // CA_3A-19A_Rev @sic R5-144685 sic@ - v_Freq.f5.dl_CarrierFreq := 1575; - v_Freq.f5.ul_CarrierFreq := 19575; - v_Freq.f6.dl_CarrierFreq := 1850; - v_Freq.f6.ul_CarrierFreq := 19850; - v_Freq.f1.dl_CarrierFreq := 61075; - v_Freq.f1.ul_CarrierFreq := 24075; - } - case (21) { // CA_19A-21A @sic R5-134790 sic@ - v_Freq.f1.dl_CarrierFreq := 6075; - v_Freq.f1.ul_CarrierFreq := 24075; - v_Freq.f2.dl_CarrierFreq := 6100; - v_Freq.f2.ul_CarrierFreq := 24100; - v_Freq.f5.dl_CarrierFreq := 6525; - v_Freq.f5.ul_CarrierFreq := 24525; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (21) { - select (p_SecondaryBandFrequencyBand) { - case (1) { // CA_1A-21A_Rev //@sic R5-144685 sic@ - v_Freq.f5.dl_CarrierFreq := 324; - v_Freq.f5.ul_CarrierFreq := 18324; - v_Freq.f6.dl_CarrierFreq := 525; - v_Freq.f6.ul_CarrierFreq := 18525; - v_Freq.f1.dl_CarrierFreq := 6525; - v_Freq.f1.ul_CarrierFreq := 24525; - } - case (19) { // CA_19A-21A_Rev @sic R5-144865 sic@ - v_Freq.f5.dl_CarrierFreq := 6075; - v_Freq.f5.ul_CarrierFreq := 24075; - v_Freq.f6.dl_CarrierFreq := 6100; - v_Freq.f6.ul_CarrierFreq := 24100; - v_Freq.f1.dl_CarrierFreq := 6525; - v_Freq.f1.ul_CarrierFreq := 24525; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (26) { - select (p_SecondaryBandFrequencyBand) { - case (1) { // CA_1A-26A_Rev //@sic R5-144544 sic@ - v_Freq.f5.dl_CarrierFreq := 300; - v_Freq.f5.ul_CarrierFreq := 18300; - v_Freq.f6.dl_CarrierFreq := 550; - v_Freq.f6.ul_CarrierFreq := 18550; - v_Freq.f1.dl_CarrierFreq := 8865; - v_Freq.f1.ul_CarrierFreq := 26865; - v_Freq.f2.dl_CarrierFreq := 8990; - v_Freq.f2.ul_CarrierFreq := 26990; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - // TDD - case (39) { - select (p_SecondaryBandFrequencyBand) { - case (41) { // CA_39A-41A @sic R5-142928 sic@ - v_Freq.f1.dl_CarrierFreq := 38350; - v_Freq.f1.ul_CarrierFreq := 38350; - v_Freq.f2.dl_CarrierFreq := 38550; - v_Freq.f2.ul_CarrierFreq := 38550; - v_Freq.f5.dl_CarrierFreq := 40620; - v_Freq.f5.ul_CarrierFreq := 40620; - v_Freq.f6.dl_CarrierFreq := 41490; - v_Freq.f6.ul_CarrierFreq := 41490; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case (41) { - select (p_SecondaryBandFrequencyBand) { - case (39) { // CA_39A-41A_Rev @sic R5-142928 sic@ - v_Freq.f5.dl_CarrierFreq := 38350; - v_Freq.f5.ul_CarrierFreq := 38350; - v_Freq.f6.dl_CarrierFreq := 38550; - v_Freq.f6.ul_CarrierFreq := 38550; - v_Freq.f1.dl_CarrierFreq := 40620; - v_Freq.f1.ul_CarrierFreq := 40620; - v_Freq.f2.dl_CarrierFreq := 41490; - v_Freq.f2.ul_CarrierFreq := 41490; - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - } - case else { FatalError (__FILE__, __LINE__, "invalid Band"); } - } - return valueof(v_Freq); - } - - /* - * @desc Initialise SFN and Tcell of S-cells to the values used in the P-Cell - * @param p_EUTRA_CellList .. The first cell in the list is the Pcell, other cells are Scells - * @status APPROVED (LTE_A) - */ - function f_EUTRA_CA_InitialiseTiming(EUTRA_CellIdList_Type p_EUTRA_CellList) runs on EUTRA_PTC - { - var integer i; - var integer v_CellListLength := lengthof (p_EUTRA_CellList); - var CellTimingInfo_Type v_PcellTiming := f_EUTRA_CellInfo_GetCellTimingInfo( p_EUTRA_CellList[0] ); // the first cell is the Pcell - - // Initialise SFN and Tcell of S-cells to the values used in the P-Cell - for (i:=1; i Frequency f1 - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell1, v_FreqIntraBandCA.f1); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell2, v_FreqIntraBandCA.f1); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell4, v_FreqIntraBandCA.f1); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell11, v_FreqIntraBandCA.f1); - // Cell 3/12/23 -> Frequency f2 - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell3, v_FreqIntraBandCA.f2); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell12, v_FreqIntraBandCA.f2); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell23, v_FreqIntraBandCA.f2); - // Cell 6/13 -> Frequency f3 - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell6, v_FreqIntraBandCA.f3); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell13, v_FreqIntraBandCA.f3); - - // Update SIB5 content - if (p_SysinfoCombination == c3 or p_SysinfoCombination == c9) { - // Frequencies list for cells on f1 - if (v_FreqIntraBandCA.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand - v_InterFreqCarrierList := { - cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f2, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth), - cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f3, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth) - }; - } else { // f3 not defined for the band - v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f2, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth) }; - } - f_EUTRA_CellInfo_SetSIB5(eutra_Cell1, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell2, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell4, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell11, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - - // Frequencies list for cells on f2 - if (v_FreqIntraBandCA.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand - v_InterFreqCarrierList := { - cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f1, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth), - cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f3, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth) - }; - } else { // f3 not defined for the band - v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f1, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth) }; - } - f_EUTRA_CellInfo_SetSIB5(eutra_Cell3, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell12, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell23, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - - // Frequencies list for cells on f3 - v_InterFreqCarrierList := { - cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f1, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth), - cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f2, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth) - }; - f_EUTRA_CellInfo_SetSIB5(eutra_Cell6, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell13, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - } - // Update SIB19 - if (p_SysinfoCombination == c9) { - v_SysInfoEUTRA := f_IRAT_ListOfFrequencies(); - v_SysInfoOtherRAT := f_IRAT_InitialCoOrd(UTRAN, v_SysInfoEUTRA); // Coordinate with UTRA PTC: send EUTRA frequencies and return UTRA frequencies - } - } - case (CA_InterBand) { - v_FreqInterCA := f_EUTRA_CA_InitFrequenciesInterBand ( px_ePrimaryFrequencyBand, px_eSecondaryFrequencyBand ); - // Initialised Frequency per cell. See 36.508 Table 6.2.3.2-2 - // Cell 1/2/4/11 -> Frequency f1 - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell1, v_FreqInterCA.f1); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell2, v_FreqInterCA.f1); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell4, v_FreqInterCA.f1); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell11, v_FreqInterCA.f1); - // Cell 10/30/31 -> Frequency f5 - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell10, v_FreqInterCA.f5); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell30, v_FreqInterCA.f5); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell31, v_FreqInterCA.f5); - // Cell 28/29 -> Frequency f6 - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell28, v_FreqInterCA.f6); - f_EUTRA_CellInfo_SetEARFCN(eutra_Cell29, v_FreqInterCA.f6); - - if (px_eSecondaryFrequencyBand == 29) { - // No UL frequency is applied to the band @sic R5-134786 sic@ - f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell10, true); - f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell30, true); - f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell31, true); - f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell28, true); - f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell29, true); - } - // Update SIB5 content - if (p_SysinfoCombination == c3 or p_SysinfoCombination == c9) { - // Frequencies list for cells on f1 - v_InterFreqCarrierList := { - cs_InterFreqCarrierFreq(v_FreqInterCA.f5, v_SecondaryChannelBandwidthDependency.AllowedMeasBandwidth), - cs_InterFreqCarrierFreq(v_FreqInterCA.f6, v_SecondaryChannelBandwidthDependency.AllowedMeasBandwidth) - }; - f_EUTRA_CellInfo_SetSIB5(eutra_Cell1, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell2, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell4, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell11, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - - // Frequencies list for cells on f5 - v_InterFreqCarrierList := { - cs_InterFreqCarrierFreq(v_FreqInterCA.f1, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth), - cs_InterFreqCarrierFreq(v_FreqInterCA.f6, v_SecondaryChannelBandwidthDependency.AllowedMeasBandwidth) - }; - f_EUTRA_CellInfo_SetSIB5(eutra_Cell10, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell30, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell31, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - - // Frequencies list for cells on f6 - v_InterFreqCarrierList := { - cs_InterFreqCarrierFreq(v_FreqInterCA.f1, v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth), - cs_InterFreqCarrierFreq(v_FreqInterCA.f5, v_SecondaryChannelBandwidthDependency.AllowedMeasBandwidth) - }; - f_EUTRA_CellInfo_SetSIB5(eutra_Cell28, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - f_EUTRA_CellInfo_SetSIB5(eutra_Cell29, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); - } - // Update SIB19 content - // Update SIB19 - if (p_SysinfoCombination == c9) { - v_CoOrd_EUTRASysInfo_List := { - cs_CoOrdEUTRASysInfo(f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), - f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))), - cs_CoOrdEUTRASysInfo(f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell10), - f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell10))), - cs_CoOrdEUTRASysInfo(f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell28), - f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell28))) - }; - v_SysInfoEUTRA := cs_CoOrdEUTRA_SysInfo(v_CoOrd_EUTRASysInfo_List); - v_SysInfoOtherRAT := f_IRAT_InitialCoOrd(UTRAN, v_SysInfoEUTRA); // Coordinate with UTRA PTC: send EUTRA frequencies and return UTRA frequencies - } - } - case else { //Other combinations - FatalError(__FILE__, __LINE__, "CA type not supported"); - } - } - } - -} // End of module - - diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures.ttcn b/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures.ttcn deleted file mode 100644 index 7a03f23..0000000 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures.ttcn +++ /dev/null @@ -1,2542 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 16:20:32 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12208 $ -/******************************************************************************/ - -module EUTRA_CommonProcedures { - - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from CommonDefs all; - import from EUTRA_CommonDefs all; - import from NAS_CommonTypeDefs all; - import from EUTRA_ASP_SrbDefs all; - import from EPS_NAS_TypeDefs all; - import from EPS_NAS_MsgContainers all; - import from EPS_NAS_Constants all; - import from EUTRA_Component all; - import from EUTRA_CellInfo all; - import from EUTRA_AspCommon_Templates all; - import from EUTRA_SecurityFunctions all; - import from EUTRA_SecuritySteps all; - import from UpperTesterCommon all; - import from UpperTesterFunctions all; - import from IP_PTC_CtrlMsgs all; - import from EUTRA_RRC_Templates all; - import from EPS_NAS_Templates all; - import from NAS_CommonTemplates all; - import from EUTRA_NASCommonTemplates all; - import from NAS_AuxiliaryDefsAndFunctions all; - import from Parameters all; - import from EUTRA_SRB_Templates all; - import from EUTRA_DRB_Templates all; - import from EUTRA_LoopBack all; - import from EUTRA_LoopBack_TypeDefs all; - import from EUTRA_NASSteps all; - import from EUTRA_RRCSteps all; - import from EUTRA_Paging all; - import from EUTRA_AuxiliaryFunctions all; - import from EUTRA_ConfigurationSteps all; - import from EUTRA_Timing all; - import from CommonIP all; - import from EUTRA_CapabilityFunctions all; - import from EUTRA_ASP_NasCtrl all; - import from TestcaseProperties all; - import from EUTRA_ASP_TypeDefs all; - - type enumerated PDN_TypeToBeUsed_Type { forceIPv4only, forceIPv6only, pdnTypeAsSupportedByUE }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - - /* - * @desc return PDN index for first or second PDN connectivity - * @param p_InitialRegistrationPDN - * @return PDN_Index_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_InitialRegistrationPdnIndex(EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN) return PDN_Index_Type - { - var PDN_Index_Type v_PdnIndex; - - if (not tsc_EUTRA_Registration_MultiplePDN or - ((p_InitialRegistrationPDN == firstPDN) and tsc_EUTRA_Registration_PDN1isIMS) or - ((p_InitialRegistrationPDN == secondPDN) and tsc_EUTRA_Registration_PDN2isIMS)) { - v_PdnIndex := PDN_1; - } else { - v_PdnIndex := PDN_Internet; - } - return v_PdnIndex; - } - - /* - * @desc return EpsBearerId for first or second PDN connectivity - * @param p_InitialRegistrationPDN - * @return EPS_BearerIdentity - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_InitialRegistrationEpsBearerId(EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN) return EPS_BearerIdentity - { - var EPS_BearerIdentity v_EpsBearerId; - - if (f_EUTRA_InitialRegistrationPdnIndex(p_InitialRegistrationPDN) == PDN_1) { - v_EpsBearerId := tsc_EpsDefaultBearerId; - } else { - v_EpsBearerId := tsc_EpsDefaultBearerId2ndPDN; - } - return v_EpsBearerId; - } - - //---------------------------------------------------------------------------- - /* - * @desc start DHCP/ICMPv6 server for 2nd PDN - * @param p_CellId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) - */ - function f_EUTRA_StartIPfor2ndPDN(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - f_IP_Handling_Start(IP, PDN_2, cs_DrbInfo_EUTRA(p_CellId, tsc_DRB2)); - }; - - //---------------------------------------------------------------------------- - /* - * @desc start DHCP/ICMPv6 server for 2nd PDN - * @param p_CellId - * @param p_CnfRequired (default: NO_CNF_REQUIRED) - * @param p_USIM_Rmvd (default: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_SwitchOnUEandStartIP(EUTRA_CellId_Type p_CellId, - Ut_CnfReq_Type p_CnfRequired := NO_CNF_REQUIRED, - boolean p_USIM_Rmvd := false) runs on EUTRA_PTC - { - f_IP_Handling_Start(IP, PDN_1, cs_DrbInfo_EUTRA(p_CellId, tsc_DRB1)); - f_UT_SwitchOnUE(UT, p_USIM_Rmvd, p_CnfRequired); - } - - //============================================================================ - // Auxiliary Functions - //---------------------------------------------------------------------------- - - /* - * @desc PDN Address TS 24.301 clause 9.9.4.9 (TV version IEI is omit) - * Default value according to TS 36.508 table 6.6.1-1 (which requires a 'static' value) and table 4.7.3-6 - * NOTE: Acc. to table 4.7.3-6 conditions IPv4 and IPv6 are corresponding to the PDN type sent in the previous PDN CONNECTIVITY REQUEST; - * but this is checked against f_GetPdnType what evaluates pc_IPv4 and pc_IPv6 i.e. the UE shall send the PDN type as expected acc. to pc_IPv4 and pc_IPv6 - * @param p_IPv4AllocationViaNas - * @param p_PdnIndex (default value: PDN_1) - * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) - * @return PDN_Address - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_GetPDNAddress(boolean p_IPv4AllocationViaNas, - PDN_Index_Type p_PdnIndex := PDN_1, - PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC return PDN_Address - { /* @sic R5-112600: Clarification to conditions for IP address configuration over user plane sic@ */ - /* @sic R5s130362 - MCC160 Implementation: tsc_PDN_AddressInfo; p_UseSecondAddress changed to p_PDN_Index sic@ */ - var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); - var O4_Type v_Addr4 := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.UE_IPAddressIPv4); // @sic R5-113734, R5s130362sic@ - var octetstring v_Addr6:= f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.UE_IPAddressIPv6); // @sic R5-113734, R5s130362 sic@ - var Type4Length_Type v_IeLength; - var B3_Type v_TypeValue; - var octetstring v_AddressInfo; - var PDN_Address v_PDN_Address; - - // set IP addresses - v_Addr6 := substr(v_Addr6, 8, 8); // Use only the IPv6 interface identifier, which are the 8 least significant octets of theIPv6 address - - if (not p_IPv4AllocationViaNas) { // => IPv4 address via DHCP signalling (if IPv4) - v_Addr4 := '00000000'O; - } - - // set PDN TypeValue - select (p_PDN_TypeToBeUsed) { /* @sic R5-120234, R5-120541, R5-120542 sic@ */ - case (forceIPv4only) { - v_TypeValue := tsc_PdnType_IPv4; - } - case (forceIPv6only) { - v_TypeValue := tsc_PdnType_IPv6; - } - case (pdnTypeAsSupportedByUE) { - if (pc_IPv4 and pc_IPv6) { - v_TypeValue := tsc_PdnType_IPv4v6; - } - else if (pc_IPv4) { - v_TypeValue := tsc_PdnType_IPv4; - } - else if (pc_IPv6) { - v_TypeValue := tsc_PdnType_IPv6; - } - else { - FatalError(__FILE__, __LINE__, "neither IPv4 nor IPv6 are supported"); - } - } - } - - // set IE - select (v_TypeValue) { - case (tsc_PdnType_IPv4) { - v_IeLength := '05'O; - v_AddressInfo := v_Addr4; - } - case (tsc_PdnType_IPv6) { - v_IeLength := '09'O; - v_AddressInfo := v_Addr6; - } - case (tsc_PdnType_IPv4v6) { - v_IeLength := '0D'O; - v_AddressInfo := v_Addr6 & v_Addr4; - } - } - - f_EUTRA_MobileInfo_SetAssignedPdnType(v_TypeValue); - - v_PDN_Address := { - iei := omit, // '59'O, - iel := v_IeLength, - spare := tsc_Spare5, - typeValue := v_TypeValue, - adressInfo := v_AddressInfo - }; - - return v_PDN_Address; - }; - - //---------------------------------------------------------------------------- - - /* - * @desc Create TFT acc. to 36.508 Table 6.6.2-1 - * @param p_BearerContext .. Reference dedicated EPS bearer context #1, #2 - * @param p_EPS_BearerId (default value: tsc_EpsDedicatedBearerId) - * @param p_PdnTypeValue (default value: omit) - * @param p_PdnIndex (default value: PDN_1) - * @return template (value) TrafficFlowTemplate - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_EUTRA_Get_508_TrafficFlowTemplate(integer p_BearerContext, - EPS_BearerIdentity p_EPS_BearerId := tsc_EpsDedicatedBearerId, - template (omit) B3_Type p_PdnTypeValue := omit, - PDN_Index_Type p_PdnIndex := PDN_1) runs on EUTRA_PTC return template (value) TrafficFlowTemplate - { /* @sic R5-112600: to replace cs_508_Tft_Dedicated_1 and cs_508_Tft_Dedicated_2 sic@ */ - var integer v_PacketFilterLen1ByRef; - var integer v_PacketFilterLen2ByRef; - var template (value) PacketFilter v_PacketFilter1ByRef; - var template (value) PacketFilter v_PacketFilter2ByRef; - var template (value) TrafficFlowTemplate.packetFilterList v_PacketFilterList; - var integer v_IeLength; - var B3_Type v_PdnTypeValue; - - if (isvalue(p_PdnTypeValue)) { - v_PdnTypeValue := valueof(p_PdnTypeValue); - } else { - v_PdnTypeValue := f_EUTRA_MobileInfo_GetAssignedPdnType(); - } - select (p_BearerContext) { - case (1) { // @sic R5-123632 sic@ - f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 1, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #1 acc. to 36.508 Table 6.6.2-2 @sic R5s130495 sic@ - f_Get_508_PacketFilter(v_PacketFilter2ByRef, v_PacketFilterLen2ByRef, 2, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #2 acc. to 36.508 Table 6.6.2-3 @sic R5s130495 sic@ - - v_IeLength := v_PacketFilterLen1ByRef + v_PacketFilterLen2ByRef + 1; // packet filter 1 + packet filter 2 + one octet for tftOperationCode, eBit and noOfPktFilter - v_PacketFilterList := {v_PacketFilter1ByRef, v_PacketFilter2ByRef}; - } - case (2) { // @sic R5-123632, R5-132085 sic@ - f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 3, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #3 acc. to 36.508 Table 6.6.2-4 @sic R5s130495 sic@ - - v_IeLength := v_PacketFilterLen1ByRef + 1; // packet filter 1 + one octet for tftOperationCode, eBit and noOfPktFilter - v_PacketFilterList := {v_PacketFilter1ByRef}; - } - case (3) { // @sic R5-132085 sic@ - f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 5, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #3 acc. to 36.508 Table 6.6.2-4 @sic R5s130495 sic@ - - v_IeLength := v_PacketFilterLen1ByRef + 1; // packet filter 1 + one octet for tftOperationCode, eBit and noOfPktFilter - v_PacketFilterList := {v_PacketFilter1ByRef}; - } - case (4) { // @sic R5-132085 sic@ - f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 4, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #4 acc. to 36.508 Table 6.6.2-4 @sic R5s130495 sic@ - - v_IeLength := v_PacketFilterLen1ByRef + 1; // packet filter 1 + one octet for tftOperationCode, eBit and noOfPktFilter - v_PacketFilterList := {v_PacketFilter1ByRef}; - } - case else { - FatalError(__FILE__, __LINE__, "invalid bearer context"); - } - } - return cs_TrafficFlowTemplate(v_IeLength, v_PacketFilterList); - } - - /* - * @desc Create template to modify TrafficFlowTemplate - * @param p_EPS_BearerId - * @param p_PdnTypeValue (default value: omit) - * @return template (value) TrafficFlowTemplate - * @status APPROVED (LTE, LTE_IRAT) - */ - function f_EUTRA_Get_508_TrafficFlowTemplate_2_Modify(EPS_BearerIdentity p_EPS_BearerId, - template (omit) B3_Type p_PdnTypeValue := omit) runs on EUTRA_PTC return template (value) TrafficFlowTemplate - { /* @sic R5-112600: to replace cds_Tft_Dedicated_2_Modify sic@ */ - var template (value) TrafficFlowTemplate v_TrafficFlowTemplate := f_EUTRA_Get_508_TrafficFlowTemplate(2, p_EPS_BearerId, p_PdnTypeValue); - - v_TrafficFlowTemplate.iei := '36'O; - v_TrafficFlowTemplate.tftOperationCode := '100'B; // Replace TFT - v_TrafficFlowTemplate.packetFilterList[0].spare := '00'B; // @sic R5s130195 Baseline Moving sic@ - v_TrafficFlowTemplate.packetFilterList[0].direction := '11'B; // @sic R5s130195 Baseline Moving sic@ - v_TrafficFlowTemplate.packetFilterList[0].iei := '0'H; // @sic R5s130195 Baseline Moving sic@ - - return v_TrafficFlowTemplate; - } - - /* - * @desc Create template to add TrafficFlowTemplate - * @param p_EPS_BearerId - * @param p_PdnTypeValue (default value: omit) - * @return template (value) TrafficFlowTemplate - * @status APPROVED (LTE) - */ - function f_EUTRA_Get_508_TrafficFlowTemplate_2_Add(EPS_BearerIdentity p_EPS_BearerId, - template (omit) B3_Type p_PdnTypeValue := omit) runs on EUTRA_PTC return template (value) TrafficFlowTemplate - { /* @sic R5-112600: to replace cds_Tft_Dedicated_2_Modify sic@ */ - var template (value) TrafficFlowTemplate v_TrafficFlowTemplate := f_EUTRA_Get_508_TrafficFlowTemplate(2, p_EPS_BearerId, p_PdnTypeValue); - - v_TrafficFlowTemplate.iei := '36'O; - v_TrafficFlowTemplate.tftOperationCode := '011'B; // Add new TFT @sic R5s110008 sic@ - - return v_TrafficFlowTemplate; - } - - //============================================================================ - // Pre-/Postambles - //---------------------------------------------------------------------------- - /* - * @desc to be used in the test case preamble - * N.B. The power level used in this function is tsc_ServingCellRS_EPRE, if you need this cell to be - * set to a different level for your test, please adjust the level after this function. - * @param p_CellId - * @param p_State - * @param p_ForcedAttach (optional) - * @param p_NoOfEmergencyNumbers (default := 0) Only set this if the list of local emergency numbers should be included in Attach Accept (only for Emergency Call Tests) - * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) - * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ - * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_Preamble(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_STATE_Type p_State, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ - template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ - PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC - { /* @sic R5s130347: local GuardTimer sic@ */ - timer t_GuardTimer := tsc_GuardTimePreamble; - - t_GuardTimer.start; - - // First switch cell back on - f_EUTRA_SetCellPower(p_CellId, tsc_ServingCellRS_EPRE); - - // Switch on UE - f_EUTRA_SwitchOnUEandStartIP(p_CellId); // @sic R5s120065 sic@ - - // Now continue with the procedure - f_EUTRA_IdleUpdated(p_CellId, PREAMBLE, p_State, p_ForcedAttach, p_NoOfEmergencyNumbers, p_NtwkFeatSupport, p_PDN_TypeToBeUsed); - - t_GuardTimer.stop; - } - - //---------------------------------------------------------------------------- - /* - * @desc step 5 .. 17 of UE Registration acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_State - * @param p_ForcedAttach - * @param p_NAS_Ind - * @param p_ReleaseConnection - default value is to release the connection at the end (i.e. complete step 17) @sic R5-105005 sic@ - * @param p_NoOfEmergencyNumbers (default := 0) Only set this if the list of local emergency numbers should be included in Attach Accept (only for Emergency Call Tests) - * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) - * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ - * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_Step5_17(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_STATE_Type p_State, - EUTRA_ATTACH_Type p_ForcedAttach, - NAS_MSG_Indication_Type p_NAS_Ind, - boolean p_ReleaseConnection := true, - integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ - template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ - PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC // @sic R5-106611 sic@ - { /* @sic R5s100780 sic@ */ - - f_EUTRA_IdleUpdated_Step5_15(p_CellId, - p_State, - p_ForcedAttach, - p_NAS_Ind, - p_PDN_TypeToBeUsed, - -, - -, - -, - -, - p_NoOfEmergencyNumbers, // @sic R5s130681 sic@ - p_NtwkFeatSupport); // @sic R5s130681 sic@ - - f_EUTRA_IdleUpdated_Step16_17(p_CellId, - p_ReleaseConnection, - -, - p_NtwkFeatSupport); // @sic R5-144797: additional change - p_NtwkFeatSupport to be handed over sic@ - } - - //---------------------------------------------------------------------------- - /* - * @desc step 15 .. 17 of UE Registration acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_ReleaseConnection (default value: true) - default value is to release the connection at the end (i.e. complete step 17) @sic R5-105005 sic@ - * @param p_WaitForIMS (default value: waitForIMS) - * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_Step16_17(EUTRA_CellId_Type p_CellId, - boolean p_ReleaseConnection := true, - EUTRA_DelayForUserPlaneSignalling_Type p_WaitForIMS := waitForIMS, - template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice) runs on EUTRA_PTC // @sic R5-130620 sic@ - { /* @sic R5-112600: always delay of 1.2s (i.e. p_WaitForIMS := waitForIMS when calling f_EUTRA_NAS_AttachComplete) sic@ */ - /* @sic R5s130133 change 8: p_WaitForIMS added sic@ */ - var EPS_BearerIdentity v_EpsBearerId := f_EUTRA_InitialRegistrationEpsBearerId(firstPDN); // @sic R5-144797 sic@ - var EUTRA_DelayForUserPlaneSignalling_Type v_WaitForIMS := p_WaitForIMS; - var boolean v_IMSVoiceSupported := false; - var boolean v_SecondPdnToBeReleased := false; - var template (value) B1_Type v_IMSSupport := '0'B; - var template (value) RadioBearerList_Type v_DrbReleaseList := { cs_OneDRB_ConfigAM(tsc_DRB1) }; // @sic R5-144797 sic@ - - if (isvalue(p_NtwkFeatSupport)) { // @sic R5-130620 sic@ - v_IMSSupport := valueof(p_NtwkFeatSupport.imsVoPS); - if (match ('1'B, v_IMSSupport)) { - v_IMSVoiceSupported := true; - } - } - if (not v_IMSVoiceSupported and pc_voice_PS_1_CS_2 and pc_Attach) { // @sic R5-130620 sic@ - v_WaitForIMS := dontWaitForIMS; // @sic R5-144797: NOTE: acc. to the prose in this case there is no second PDN at all sic@ */ - } else if (tsc_EUTRA_Registration_MultiplePDN) { /* @sic R5-144797: multiple PDN sic@ */ - v_WaitForIMS := noDelay; /* In case of a second PDN connectivity request this may be sent immediately by the UE - => we cannot wait after the ATTACH_COMPLETE for any trigger from the IMS_PTC but need to do that after the second PDN connectivity is over */ - } - - f_EUTRA_NAS_AttachComplete(p_CellId, v_EpsBearerId, v_WaitForIMS); // step 16 @sic R5s110449 sic@ - - if (not v_IMSVoiceSupported and pc_voice_PS_1_CS_2 and pc_Attach) { // @sic R5-130620 sic@ - if (pc_TAU_connected_in_IMS) { // Steps 16a1-3 @sic R5-131455 sic@ - f_EUTRA_ConnectedMode_TAU(p_CellId, -, Combined, tsc_EpsUpdate_Combined_TaLaUpdate); - } - else if (pc_TAU_idle_in_IMS) { // Steps 16b1-6 @sic R5-131455 sic@ - f_EUTRA_RRC_ConnectionRelease(p_CellId); - f_EUTRA_TrackingAreaUpdate_Step1_5 (p_CellId, tsc_RRC_TI_Def, Combined, -, -, tsc_EpsUpdate_Combined_TaLaUpdate); - } - } else if (tsc_EUTRA_Registration_MultiplePDN) { // @sic R5-144797: support of multiple PDN registration sic@ - f_EUTRA_IdleUpdated_ConnectToAdditionalPDN(p_CellId, p_WaitForIMS); - v_SecondPdnToBeReleased := true; - v_DrbReleaseList[1] := cs_OneDRB_ConfigAM(f_EUTRA_EpsBearerAssociatedDRB(tsc_EpsDefaultBearerId2ndPDN)); - } - - if (p_ReleaseConnection) { // @sic R5-105005 Some tests only want to do up to step 16 sic@ - f_EUTRA_RRC_ConnectionRelease(p_CellId, -, -, -, v_DrbReleaseList); // step 17 - if (v_SecondPdnToBeReleased) { // @sic R5-144797: support of multiple PDN registration sic@ - f_EUTRA_IdleUpdated_ReleaseSecondPDN(p_CellId); - } - } - } - - //---------------------------------------------------------------------------- - /* - * @desc step 5 .. 15 of UE Registration acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_State - * @param p_ForcedAttach - * @param p_NAS_Ind - * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ - * @param p_T3412 (default value: cs_GprsTimer_v_deact); @sic R5s100780 Default values for Attach Accept sic@ - * @param p_T3402 (default value: omit); @sic R5s100780 Default values for Attach Accept sic@ - * @param p_T3423 (default value: omit); @sic R5s100780 Default values for Attach Accept sic@ - * @param p_EquivalentPlmnList (default value: omit); @sic R5s100780 Default values for Attach Accept sic@ - * @param p_NoOfEmergencyNumbers (default value: 0); @sic R5s100780 Default values for Attach Accept sic@ - * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice); @sic R5s100780 Default values for Attach Accept sic@ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_Step5_15(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_STATE_Type p_State, - EUTRA_ATTACH_Type p_ForcedAttach, - NAS_MSG_Indication_Type p_NAS_Ind, - PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE, - template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact, - template (omit) GPRS_Timer p_T3402 := omit, - template (omit) GPRS_Timer p_T3423 := omit, - template (omit) PLMN_List p_EquivalentPlmnList := omit, - integer p_NoOfEmergencyNumbers := 0, // @sic R5s130681 sic@ - template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice) runs on EUTRA_PTC return APNandPCOs_Type - { /* @sic R5-110796: split into f_EUTRA_IdleUpdated_Step5_13 and f_EUTRA_IdleUpdated_Step14_15 sic@ */ - /* @sic R5s140560: return value sic@ */ - var template (omit) AdditionalUpdateType v_AdditionalUpdateType := p_NAS_Ind.Pdu.Msg.aTTACH_REQUEST.addUpdateType; /* @sic R5s110342 sic@ */ - var NAS_UL_Message_Type v_PdnConnectivityRequest := p_NAS_Ind.Pdu.PiggybackedPduList[0].Msg; - var ProcedureTransactionIdentifier v_EPS_TI := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier; - var template (value) ProtocolConfigOptions v_PcoToUE; - var template (omit) ProtocolConfigOptions v_PcoFromUE := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.protocolConfigurationOptions; // may be omit - var boolean v_IPv4AllocationViaNasFlag := f_CheckPCOforIPallocationViaNas(v_PcoFromUE); // See TS 36.508 v.8.2.2 Table 4.7.3-6 - var APNandPCOs_Type v_APNandPCOs := f_EUTRA_IdleUpdated_Step5_13(p_CellId, p_State, p_NAS_Ind); // @sic R5s130382 sic@ - var PDN_Index_Type v_PdnIndex := f_EUTRA_InitialRegistrationPdnIndex(firstPDN); // @sic R5-144797 sic@ - - if (ispresent(v_APNandPCOs.protocolConfigurationOptions)) { // @sic R5-133116 sic@ - v_PcoFromUE := v_APNandPCOs.protocolConfigurationOptions; - v_IPv4AllocationViaNasFlag := v_IPv4AllocationViaNasFlag and f_CheckPCOforIPallocationViaNas(v_PcoFromUE); - } - v_PcoToUE := f_GetDefaultProtocolConfigOptions(v_PcoFromUE, v_PdnIndex); // @sic R5-104703 sic@ - - f_EUTRA_IdleUpdated_Step14_15(p_CellId, - p_ForcedAttach, - v_AdditionalUpdateType, - v_EPS_TI, - v_IPv4AllocationViaNasFlag, - v_PcoToUE, - v_APNandPCOs.accessPointName, - p_PDN_TypeToBeUsed, - p_T3412, - p_T3402, - p_T3423, - p_EquivalentPlmnList, - p_NoOfEmergencyNumbers, - p_NtwkFeatSupport); - return v_APNandPCOs; /* @sic R5s140560 sic@ */ - } - - - /* - * @desc step 5 .. 13 of UE Registration acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_State - * @param p_NAS_Ind - * @return APNandPCOs_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_Step5_13(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_STATE_Type p_State, - NAS_MSG_Indication_Type p_NAS_Ind) runs on EUTRA_PTC return APNandPCOs_Type - { /* @sic R5-110796: split into f_EUTRA_IdleUpdated_Step5_13 and f_EUTRA_IdleUpdated_Step14_15 sic@ - the returned APNandPCOs_Type contains the valid APN (i.e. accessPointName is present) */ - var ProcedureTransactionIdentifier v_EPS_TI; - var NAS_UL_Message_Type v_PdnConnectivityRequest; - var template (present) SecurityHeaderType v_ExpectedSecurityHeader; // @sic R5s090373 sic@ - var NasCount_Type v_NasCountUL; - var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); - var APNandPCOs_Type v_APNandPCOs; - var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(p_CellId); - var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId (v_GutiParams.PLMN_Identity); - - // Set UE network capabilities as sent by the UE to be used later (see TS 24.301 clause 5.4.3.3) - v_AuthParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability(p_NAS_Ind.Pdu.Msg.aTTACH_REQUEST); // @sic R5s100135 sic@ - f_EUTRA_Security_Set(v_AuthParams); - - if (p_NAS_Ind.SecurityProtection.Status == tsc_SHT_NoSecurityProtection) { // @sic R5s090210, R5s090373 sic@ - v_ExpectedSecurityHeader := tsc_SHT_NoSecurityProtection; - } else { - v_ExpectedSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); - } - - v_PdnConnectivityRequest := p_NAS_Ind.Pdu.PiggybackedPduList[0].Msg; - v_EPS_TI := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier; - - // Step 5-6: Authentication - v_AuthParams := f_EUTRA_NAS_Authentication(p_CellId, - tsc_SRB1, - v_AuthParams, - tsc_SHT_NoSecurityProtection, - v_ExpectedSecurityHeader, // @sic R5s090210, R5s090373 sic@ - v_PLMN); // AUTHENTICATION REQUEST & RESPONSE - // Step 7-8: NAS Security - v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId, v_AuthParams); // NAS SECURITY COMMAND & COMPLETE - - // Step 9a1 & 2 - ESM information optionally transferred; @sic R5-110708 sic@ - v_APNandPCOs := f_ESM_InitAPNandPCOs(p_CellId, f_CheckEsmInfoTransferFlag(v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST), v_EPS_TI); // @sic R5s130382 sic@ - - // optional - if (p_State == STATE2A_TESTLOOP_ModeA) { - f_EUTRA_Activate_TestMode (p_CellId, tsc_UE_TestLoopMode_TypeA); - } - else if (p_State == STATE2A_TESTLOOP_ModeB) { - f_EUTRA_Activate_TestMode (p_CellId, tsc_UE_TestLoopMode_TypeB); - } - else if (p_State == STATE2A_TESTLOOP_ModeC) { - f_EUTRA_Activate_TestMode (p_CellId, tsc_UE_TestLoopMode_TypeC); //@sic eMBMS sic@ - } - - // Step 10-11: RRC Security Mode procedures - v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasCountUL); // RRC SECURITY COMMAND & COMPLETE - f_EUTRA_Security_Set(v_AuthParams); //Saving security parameters - - // Step 12-13 UE Capability check - f_EUTRA_Capability(p_CellId, tsc_RRC_TI_Def); // This enquires for the eutra capability but does not check the contents of the message received - - return v_APNandPCOs; - } - - /* - * @desc step 14 and 15 of UE Registration acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_ForcedAttach - * @param p_AdditionalUpdateType - * @param p_EPS_TI - * @param p_IPv4AllocationViaNasFlag - * @param p_PcoToUE - * @param p_APN - * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) - * @param p_T3412 (default value: cs_GprsTimer_v_deact - * @param p_T3402 (default value: omit) - * @param p_T3423 (default value: omit) - * @param p_EquivalentPlmnList (default value: omit) - * @param p_NoOfEmergencyNumbers (default value: 0) - * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_Step14_15(EUTRA_CellId_Type p_CellId, - EUTRA_ATTACH_Type p_ForcedAttach, - template (omit) AdditionalUpdateType p_AdditionalUpdateType, - ProcedureTransactionIdentifier p_EPS_TI, - boolean p_IPv4AllocationViaNasFlag, - template (omit) ProtocolConfigOptions p_PcoToUE, - AccessPointName p_APN, - PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE, - template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact, - template (omit) GPRS_Timer p_T3402 := omit, - template (omit) GPRS_Timer p_T3423 := omit, - template (omit) PLMN_List p_EquivalentPlmnList := omit, - integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ - template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice) runs on EUTRA_PTC - { /* @sic R5-112600: IP address allocation sic@ */ - /* @sic R5-110796: split into f_EUTRA_IdleUpdated_Step5_13 and f_EUTRA_IdleUpdated_Step14_15 sic@ */ - /* @sic R5-120234, R5-120541, R5-120542 sic@ */ - /* @sic R5-144370, R5-144797: p_APN shall not be omit sic@ */ - var NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(p_ForcedAttach); // @sic R5-103673, R5s100795 sic@ - - var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(p_CellId); - var template (value) MobileIdentity v_Guti := f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_GutiParams); - var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId (v_GutiParams.PLMN_Identity); - - var NAS_Lac v_LAC := f_EUTRA_CellInfo_GetLocationAreaCode(p_CellId); - var template (omit) LocAreaId v_LAI := f_GetLAI(v_PLMN, v_LAC, p_ForcedAttach); // @sic R5s110176 sic@ - var TrackingAreaCode v_TAC := f_EUTRA_CellInfo_GetTAC(p_CellId); - - var template (omit) EPS_NetworkFeatureSupport v_NtwkFeatSupport := p_NtwkFeatSupport; - var template (omit) EmergNumList v_EmergNumList := omit; - var template (omit) MobileIdentity v_MSId := f_GetMSId(p_ForcedAttach); // @sic R5-103673 sic@ - var PDN_Index_Type v_PdnIndex := f_EUTRA_InitialRegistrationPdnIndex(firstPDN); // @sic R5-144797 sic@ - var EPS_BearerIdentity v_EpsDefaultBearerId := f_EUTRA_InitialRegistrationEpsBearerId(firstPDN); // @sic R5-144797 sic@ - var DRB_Identity v_DrbForInternet := f_EUTRA_EpsBearerAssociatedDRB(tsc_EpsDefaultBearerId2ndPDN); - var template (omit) ESM_Cause v_ESM_Cause := omit; // @sic R5s120136 sic@ - var template (value) PDN_Address v_PDN_Address; - var EmergencyNumList v_EmergencyNumList; - - var BEARER_CONTEXT_TYPE v_BearerContextNumber := DEF_1; - - - if (pc_IPv6 and pc_IPv4) { /* @sic R5-120234, R5-120541, R5-120542 sic@ */ - select (p_PDN_TypeToBeUsed) { - case (forceIPv4only) { v_ESM_Cause := cs_ESM_Cause_tv('00110010'B); } // PDN type IPv4 only allowed - case (forceIPv6only) { v_ESM_Cause := cs_ESM_Cause_tv('00110011'B); } // PDN type IPv6 only allowed - case (pdnTypeAsSupportedByUE) { v_ESM_Cause := omit; } - } - } - - // @sic R5s130681 sic@ - select (f_GetTestcaseAttrib_Eutra_Release(testcasename())) { // @sic R5s130508 sic@ - case ("","rel_10") { // rel8 or rel-10 - 36.508 just says rel-9 - } - case ("rel_9") { - v_NtwkFeatSupport.imsVoPS := '1'B; // @sic R5s130902 sic@ - v_NtwkFeatSupport.emcBS := '1'B; // @sic R5s130977 sic@ - } - case else {} - } - - if (p_NoOfEmergencyNumbers > 0) { - v_EmergencyNumList := f_Get_EmergencyNumList (p_NoOfEmergencyNumbers, f_UT_GetEmergencyNumbers(UT)); - f_EUTRA_MobileInfo_SetLocalEmergencyNumberList (v_EmergencyNumList); // save the list of locally usable emergency numbers - v_EmergNumList := f_Build_EmergNumList(p_NoOfEmergencyNumbers, v_EmergencyNumList); - } - if (not tsc_EUTRA_Registration_PDN1isIMS) { // @sic R5-144797 sic@ - v_BearerContextNumber := DEF_2; - } - if (tsc_EUTRA_Registration_MultiplePDN) { /* @sic R5-144797 sic@ */ - f_IP_Handling_Start(IP, PDN_Internet, cs_DrbInfo_EUTRA(p_CellId, v_DrbForInternet)); - f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(p_CellId, cs_OneDRB_ConfigAM(v_DrbForInternet)); - } - - v_PDN_Address := f_EUTRA_GetPDNAddress(p_IPv4AllocationViaNasFlag, v_PdnIndex, p_PDN_TypeToBeUsed); - - f_EUTRA_RRCConnectionReconfigurationWithAttachAcceptAllParams(p_CellId, - v_EpsDefaultBearerId, // @sic R5-144797 sic@ - tsc_RRC_TI_Def, - p_EPS_TI, - v_AttachType, - v_PDN_Address, - v_Guti, - cs_TAIListNonConsecutive_lv(v_PLMN, {bit2oct(v_TAC)}), - v_LAI, - v_MSId, - v_ESM_Cause, // @sic R5-104703 sic@ - p_APN, - p_PcoToUE, - f_GetAdditionalUpdateResult(p_AdditionalUpdateType, p_ForcedAttach), // @sic R5s110176 sic@ - p_T3412, - p_T3402, - p_T3423, - p_EquivalentPlmnList, - v_EmergNumList, // @sic R5s130681 sic@ - v_NtwkFeatSupport, // @sic R5s130681 sic@ - -, - -, - v_BearerContextNumber); // @sic R5-144797 sic@ - } - - //---------------------------------------------------------------------------- - /* - * @desc UE Registration steps 1 - 4 acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_Type - * @param p_ForcedAttach - * @return NAS_MSG_Indication_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_Step1_4(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_Type p_Type, - EUTRA_ATTACH_Type p_ForcedAttach) runs on EUTRA_PTC return NAS_MSG_Indication_Type - { /* @sic R5s100780 sic@ */ - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - var NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(p_ForcedAttach); // @sic R5s110176 sic@ - var B3_Type v_PDNType := f_GetPdnType(); - var NAS_MSG_Indication_Type v_NAS_Ind; - var template (present) NAS_UL_Message_Type v_AttachReq; - var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); //used to follow TTCN3 v411 standard @sic R5s110176 sic@ - var template (present) SecurityHeaderType v_AttReqSecurityHeader; - - if (p_Type == PREAMBLE) - { - v_AttReqSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); - } - else - { - v_AttReqSecurityHeader := tsc_SHT_IntegrityProtected; - } - - if (f_GetTestcaseAttrib_Eutra_SRVCC(testcasename())) { // @sic R5-142882 sic@ - v_AttachReq := cdr_ATTACH_REQUEST_SRVCC(v_AttachType, v_AdditionalUpdateType); // @sic R5-103681, R5s140074, R5-142882 sic@ - } else { - v_AttachReq := cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType); // @sic R5-103681 sic@ - } - // Receive RRC Connection Setup Complete with - v_NAS_Ind := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - v_RRC_TI, - cr_EstablishmentCause_Any, - cr_NAS_IndicationWithPiggybacking(v_AttReqSecurityHeader, - v_AttachReq, - cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); - - return v_NAS_Ind; - } - - //---------------------------------------------------------------------------- - /* - * @desc UE Registration acc. to 36.508 cl. 4.5.2 - * @param p_CellId - * @param p_Type - * @param p_State - * @param p_ForcedAttach (optional) - * @param p_NoOfEmergencyNumbers (default := 0) Only set this if the list of local emergency numbers should be included in Attach Accept (only for Emergency Call Tests) - * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) - * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ - * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_Type p_Type, - IDLEUPDATED_STATE_Type p_State, - EUTRA_ATTACH_Type p_ForcedAttach, - integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ - template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ - PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC - { /* @sic R5-106611 sic@ */ - var NAS_MSG_Indication_Type v_NAS_Ind; - - v_NAS_Ind := f_EUTRA_IdleUpdated_Step1_4 (p_CellId, p_Type, p_ForcedAttach); // @sic R5s100780, R5s110176 sic@ - - f_EUTRA_IdleUpdated_Step5_17 (p_CellId, p_State, p_ForcedAttach, v_NAS_Ind, true, p_NoOfEmergencyNumbers, p_NtwkFeatSupport, p_PDN_TypeToBeUsed); - } - - //---------------------------------------------------------------------------- - /* - * @desc This function should be used at the end of every test case to ensure the UE - * detaches and release the RRC connection as it is turned off and only then will it - * take down the cell the UE is currently camped on - * @param p_CellId - * @param p_E_State values: E1_IDLE, E2_CONNECTED, E3_TESTMODE, E4_DEREGISTERED - * @param p_ForcedAttach (default value: NORMAL) - * @param p_RRC_TI (default value: tsc_RRC_TI_Def) - * @param p_SelectedPlmnId (default value: 1) .. selectedPLMN-Identity as used in RRCConnectionSetupComplete (starting with 1) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_Postamble(EUTRA_CellId_Type p_CellId, - EUTRA_POSTAMBLE_STATE_Type p_E_State, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def, - integer p_SelectedPlmnId := 1) runs on EUTRA_PTC - { /* @sic This function has been completely changed in R5-103847 sic@ */ - // @sic R5s11046: new parameter p_SelectedPlmnId sic@ - if (pc_SwitchOnOff) // The UE can actually be switched off - { - select (p_E_State) { - case (E1_IDLE) - { - //Expect the UE to detach and release RRC connection - f_EUTRA_UE_Detach_SwitchOffUe(p_CellId, RRC_IDLE, p_RRC_TI, p_ForcedAttach, omit, p_SelectedPlmnId); // @sic R5s110176, R5s110468 sic@ - } - case (E2_CONNECTED, E3_TESTMODE) - { - //Expect the UE to detach and release RRC connection - f_EUTRA_UE_Detach_SwitchOffUe(p_CellId, RRC_CONNECTED, p_RRC_TI, p_ForcedAttach, omit, p_SelectedPlmnId); // @sic R5s110176, R5s110468 sic@ - } - case (E2_T3440) // @sic R5s110007 sic@ - { - //Expect the UE to release RRC connection - f_EUTRA_RRC_ConnectionRelease(p_CellId); - f_Delay (5.0); // @sic R5-110803 sic@ - //Expect the UE to detach and release RRC connection - f_EUTRA_UE_Detach_SwitchOffUe(p_CellId, RRC_IDLE, p_RRC_TI, p_ForcedAttach, omit, p_SelectedPlmnId); // @sic R5s110176, R5s110468 sic@ - } - case (E4_DEREGISTERED) - { - f_UT_SwitchOffUE (UT, false); - } - } - } - else - {// The power must be removed from the UE - f_UT_PowerOffUE (UT); - } - //And now remove the cell(s) - f_EUTRA_ReleaseAllCells(); - - } // end of f_EUTRA_Postamble - - //---------------------------------------------------------------------------- - /* - * @desc Generic Radio Bearer Establishment (State 3) - * If no Dedicated bearers are required, set p_NoOfAddDRBs_AM and p_NoOfAddDRBs_UM to 0 and p_QoS and p_Tft to omit - * Otherwise, at least 1 AM DRB will be configured - * @param p_CellId - * @param p_NoOfAddDRBs_AM - * @param p_NoOfAddDRBs_UM - * @param p_DRB_ToAddModList (default value: omit) - * p_NoOfAddDRBs_AM+p_NoOfAddDRBs_UM+1 elements or omit; - * omit => default setting acc. 36.508 cl. 4.8.2.1.7 - * @param p_MAC_MainConfig (default value: omit) - * omit => default setting acc. 36.508 cl. 4.8.2.1.5 - * @param p_PhysicalConfigDedicated (default value: omit) - * omit => default setting acc. 36.508 4.8.2.1.6 - * @param p_QoS (default value: omit) - * @param p_Tft (default value: omit) - * @param p_PDCP_StatusReportRequired (default value: true) - * @param p_RLF_TimersAndConstants_r9 (default value: omit) - * @param p_DownlinkAntennaGroupConfig (default value: omit) - * @param p_DrbFor2ndPDN (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_GenericRbEst_Common(EUTRA_CellId_Type p_CellId, - integer p_NoOfAddDRBs_AM, - integer p_NoOfAddDRBs_UM, - template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit, - template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, - template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit, - template (omit) EPS_QoSList_Type p_QoS := omit, - template (omit) Tft_List_Type p_Tft := omit, - boolean p_PDCP_StatusReportRequired := true, - template (omit) RLF_TimersAndConstants_r9 p_RLF_TimersAndConstants_r9 := omit, - template (omit) DownlinkAntennaGroupConfig_Type p_DownlinkAntennaGroupConfig := omit, - template (omit) DRB_Identity p_DrbFor2ndPDN := omit) - runs on EUTRA_PTC - { /* @sic R5s130703 additional change: parameters p_DRB_ToAddModList, p_MAC_MainConfig, p_PhysicalConfigDedicated, p_QoS, p_Tft made optional sic@ */ - /* @sic R5-144797: new parameter p_DrbFor2ndPDN sic@ */ - var GutiParameters_Type v_GutiParameters := f_EUTRA_CellInfo_GetGuti(p_CellId); - - /* Step 2 */ - f_EUTRA_UE_Page(p_CellId, - cs_NasPaging_OneRecord(cs_PagingUE_Identity_S_TMSI(v_GutiParameters.MME_Code, v_GutiParameters.M_TMSI))); //@sic R5s100398 sic@ - - // Steps 3 - 10 - f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(p_CellId, - p_NoOfAddDRBs_AM, - p_NoOfAddDRBs_UM, - p_DRB_ToAddModList, - p_MAC_MainConfig, - p_PhysicalConfigDedicated, - p_QoS, - p_Tft, - p_PDCP_StatusReportRequired, - -, - p_RLF_TimersAndConstants_r9, // @sic R5s120808 sic@ - p_DownlinkAntennaGroupConfig, - p_DrbFor2ndPDN); - } - - //------------------------------------ - /* - * @desc Generic Radio Bearer Establishment (State 3) with exception that Time alignment timer is set to infinity - * @param p_CellId - * @status APPROVED (LTE) - */ - function f_EUTRA_GenericRbEst_TAInfinity(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - var template (omit) DRB_ToAddModList v_DRB_ToAddModList := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.7 */ - var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cs_MAC_MainConfig_Explicit_TA_Infinity; // => apply MAC_Mainconfig_with_TAInfinity - var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.6 */ - - f_EUTRA_GenericRbEst_Common(p_CellId, - 0, - 0, - v_DRB_ToAddModList, - v_MAC_MainConfig, - v_PhysicalConfigDedicated); - } - - //------------------------------------ - /* - * @desc common generic function - * @param p_CellId - * @param p_NoOfAddDRBs_AM - * @param p_NoOfAddDRBs_UM - * @param p_QoS - * @param p_Tft - * @param p_RLF_TimersAndConstants_r9 (default value: omit) - * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_GenericRbEst(EUTRA_CellId_Type p_CellId, - integer p_NoOfAddDRBs_AM, - integer p_NoOfAddDRBs_UM, - template (omit) EPS_QoSList_Type p_QoS, - template (omit) Tft_List_Type p_Tft, - template (omit) RLF_TimersAndConstants_r9 p_RLF_TimersAndConstants_r9 := omit) runs on EUTRA_PTC - { - var template (omit) DRB_ToAddModList v_DRB_ToAddModList := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.7 */ - var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.5 */ - var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.6 */ - f_EUTRA_GenericRbEst_Common(p_CellId, - p_NoOfAddDRBs_AM, - p_NoOfAddDRBs_UM, - v_DRB_ToAddModList, - v_MAC_MainConfig, - v_PhysicalConfigDedicated, - p_QoS, - p_Tft, - -, - p_RLF_TimersAndConstants_r9); // @sic R5s120808 sic@ - } - - //------------------------------------ - // wrapper functions - /* - * @desc no additional bearer will be configured - * @param p_CellId - * @param p_RLF_TimersAndConstants_r9 (default value: omit) - * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_RbEst_Def(EUTRA_CellId_Type p_CellId, - template (omit) RLF_TimersAndConstants_r9 p_RLF_TimersAndConstants_r9 := omit) runs on EUTRA_PTC - { - f_EUTRA_GenericRbEst(p_CellId, 0, 0, omit, omit, p_RLF_TimersAndConstants_r9); // @sic R5s120808 sic@ - } - - //------------------------------------ - /* - * @desc Steps 6-9 of 4.5.3.3 will be performed as a postamble, and no dedicated bearers will be activated - * @param p_CellId - * @param p_NAS_Ind - * @status APPROVED (LTE, LTE_A) - */ - function f_EUTRA_ServiceReqPostamble_508Steps6_9(EUTRA_CellId_Type p_CellId, - NAS_MSG_Indication_Type p_NAS_Ind) runs on EUTRA_PTC - { - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - - f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(p_CellId, v_RRC_TI, p_NAS_Ind.SecurityProtection.NasCount); /* @sic R5s100315 sic@ */ - f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(p_CellId, v_RRC_TI); /* @sic R5s100315 sic@ */ - } - - //------------------------------------ - /* - * @desc additional UM bearer will be established - * @param p_CellId - * @status (APPROVED) - */ - function f_EUTRA_RbEst_508_UM(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; - var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1, tsc_EpsDedicatedBearerId)}; - f_EUTRA_GenericRbEst(p_CellId, 0, 1, v_Qos_List, v_Tft_List); - } - - //------------------------------------ - /* - * @desc additional AM bearer will be established - * @param p_CellId - * @status APPROVED (LTE, LTE_IRAT) - */ - function f_EUTRA_RbEst_508_AM(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; - var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1, tsc_EpsDedicatedBearerId)}; - f_EUTRA_GenericRbEst(p_CellId, 1, 0, v_Qos_List, v_Tft_List); - } - - //---------------------------------------------------------------------------- - /* - * @desc Brings UE to state 4, with default DRB (AM) and an additional AM bearer being established; - * SRBs and the default bearer are expected to be established at the SS beforehand; - * Put UE in Loop Back Mode A. - * Configures SS in normal mode - * @param p_CellId - * @param p_UE_TestLoopModeA_LB_Setup - * @status APPROVED (LTE, LTE_A) - */ - function f_EUTRA_LoopBackActivation_State4_Def(EUTRA_CellId_Type p_CellId, - template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup) runs on EUTRA_PTC - { - f_EUTRA_RbEst_Def(p_CellId); // bring UE to State 3 - f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 - } - - //------------------------------------ - function f_EUTRA_LoopBackActivation_State4_508_UM(EUTRA_CellId_Type p_CellId, - template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup) runs on EUTRA_PTC - { /* Brings UE to state 4, with default DRB (AM) and an additional UM bearer being established; - SRBs and DRBs are expected to be established at the SS beforehand; - Put UE in Loop Back Mode A. - Configures SS in normal mode */ - f_EUTRA_RbEst_508_UM(p_CellId); // bring UE to State 3 - f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 - } - - //------------------------------------ - function f_EUTRA_LoopBackActivation_State4_508_AM(EUTRA_CellId_Type p_CellId, - template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup) runs on EUTRA_PTC - { /* Brings UE to state 4, with default DRB (AM) and an additional AM bearer being established; - SRBs and DRBs are expected to be established at the SS beforehand; - Put UE in Loop Back Mode A. - Configures SS in normal mode */ - f_EUTRA_RbEst_508_AM(p_CellId); // bring UE to State 3 - f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 - } - - //**************************************************************************** - // Check functions acc. to TS 36.508 - //---------------------------------------------------------------------------- - - group Checkfunctions { - - /* - * @desc Test procedure to check Idle state, see TS 36.508 clause 6.4.2.2 - * @param p_CellId - * @status APPROVED (LTE, LTE_A, LTE_IRAT) - */ - function f_EUTRA_508Check_IdleState(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - // Step 1- 10 this is the same as the generic bearer establishment procedure, but without configuring any additional bearers @sic R5-102082 sic@ - f_EUTRA_RbEst_Def(p_CellId); - - f_EUTRA_RRC_ConnectionRelease(p_CellId); - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "508Check IdleState"); - } // f_EUTRA_508Check_IdleState - - /* - * @desc Test procedure to check Connected state, see TS 36.508 clause 6.4.2.3 - * @param p_CellId - * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @status APPROVED (LTE, LTE_A, LTE_IRAT) - */ - function f_EUTRA_508Check_ConnectedState(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC - { /* @sic R5s110219 change 4 sic@ */ - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - - SRB.send(cas_SRB1_RrcPdu_REQ( p_CellId, - p_TimingInfo, - cs_508_UeCapabilityEnquiry(v_RRC_TI))); - - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_UeCapabilityInformation(v_RRC_TI, cr_EutraCapInfo))); - - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "508Check ConnectedState"); - } - - /* - * @desc Test procedure to check that UE is camped on a new E-UTRAN cell, see TS 36.508 clause 6.4.2.7 - * @param p_CellId - * @param p_RRC_TI (default value: tsc_RRC_TI_Def) - * @param p_EstablishmentCause (default value: ?) - * @status APPROVED (LTE) - */ - function f_EUTRA_508CheckCampOnNewEutraCell(EUTRA_CellId_Type p_CellId, - RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def, - template (present) EstablishmentCause p_EstablishmentCause := ? //@sic R5-110062 sic@ - ) runs on EUTRA_PTC - { - /* Checks whether the UE is camping on a new E-UTRAN cell with different TAI of a test case or not. - Procedure is defined in 36.508 cl. 6.4.2.7*/ - f_EUTRA_TrackingAreaUpdate(p_CellId, p_RRC_TI, -, p_EstablishmentCause); //@sic R5-110062 sic@ - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "508Check CampOnNewEutraCell"); - } - - /* - * @desc Test procedure to check that UE is camped on a new E-UTRAN cell, see TS 36.508 clause 6.4.2.7A; @sic R5-110746 sic@ - * @param p_CellId - * @param p_CSInOtherRAT Set to true if the UE has done either an LAU or Combined RAU in the other RAT - * @param p_PDPContext Set to true if UE has earlier established PDP context on other RAT - * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) - * @param p_EUTRA_Cap - * @param p_ForcedAttach - * @param p_RRC_TI (default value: tsc_RRC_TI_Def) - * @status APPROVED (LTE_IRAT) - */ - function f_EUTRA_508CheckCampOnNewEutraCellUponMobilityFromAnotherRAT(EUTRA_CellId_Type p_CellId, - boolean p_CSInOtherRAT, - boolean p_PDPContext, - boolean p_PreambleOnLTE, - template (omit) octetstring p_EUTRA_Cap, // @sic R5-123734 sic@ - EUTRA_ATTACH_Type p_ForcedAttach, - RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def) runs on EUTRA_PTC - { /* Checks whether the UE is camping on a new E-UTRAN cell with different TAI of a test case or not. - Procedure is defined in 36.508 cl. 6.4.2.7A */ - // @sic CR R5-102241 sic@ - f_EUTRA_TrackingAreaUpdateFromAnotherRAT(p_CellId, p_RRC_TI, p_CSInOtherRAT, p_PDPContext, p_PreambleOnLTE, p_EUTRA_Cap, -, p_ForcedAttach); // @sic R5s110176, R5-135074, R5-140325 sic@ - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "508Check CampOnNewEutraCellUponMobilityfromAnotherRAT"); - } - - - //---------------------------------------------------------------------------- - } // end of group Checkfunctions - /* - * @desc To trigger the UE to establish a Dedicated EPS bearer context - * see 36.508 clause 6.4.3.1 - * @param p_CellId - * @param p_RRCState - * @param p_EpsBearerId .. Identity of the Dedicated Bearer that will be configured - * @status - * - */ - function f_EUTRA_508_EstablishDedicatedEPSContext(EUTRA_CellId_Type p_CellId, - EUTRA_RRC_STATE_Type p_RRCState, - EPS_BearerIdentity p_EpsBearerId := tsc_EpsDedicatedBearerId) runs on EUTRA_PTC - { - var BEARER_RESOURCE_ALLOCATION_REQUEST v_BEARER_RESOURCE_ALLOCATION_Req; - var ProcedureTransactionIdentifier v_EpsTi := tsc_PTI_Unassigned; - var NAS_MSG_Indication_Type v_NasInd; - var NasCount_Type v_NasCountUL; - var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); - var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_CellId); //Get FDD or TDD mode from Cell-configuration - - // Cause the UE to request bearer resource allocation of - // dedicated EPS bearer associated with first PDN connectivity - f_UT_RequestActivateDedicatedBearer(UT, - hex2int(p_EpsBearerId), - hex2int(tsc_EpsDefaultBearerId), - cs_508_EPS_QoS_Dedicated_1, - f_EUTRA_Get_508_TrafficFlowTemplate(1, p_EpsBearerId)); - - if (p_RRCState == RRC_IDLE) { - // UE is in RRC Idle mode - // Steps 2a1 to 2a7 - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - tsc_RRC_TI_Def, - ?, // @sic R5s100326 sic@ - cr_NAS_Indication (tsc_SHT_IntegrityProtected, - cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); - - // activate security in AS with parameters from AKA performed in preamble - v_NasCountUL := v_NasInd.SecurityProtection.NasCount; - v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, - v_SecurityParams, - v_NasCountUL); - f_EUTRA_Security_Set(v_SecurityParams); - - SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, - omit, - omit, - cs_508_RadioResourceConfigDedicated_SRB2( {cs_508_DRB_ToAddMod_DEFAULT_AM (tsc_DRB1)}, - cs_508_MAC_MainConfig_Explicit_RBC_DrxL, - cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, - v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, - f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_CellId))), - omit))); - - // receive RRCConnectionReconfigurationComplete - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - - } // end of if RRC_Idle - // UE is now in RRC connected mode - - // Step 3. The UE transmits a BEARER RESOURCE ALLOCATION REQUEST message - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_BearerResourceAllocReq(?, - tsc_EpsDefaultBearerId)))); - - // store PTI received - v_BEARER_RESOURCE_ALLOCATION_Req := v_NasInd.Pdu.Msg.bEARER_RESOURCE_ALLOCATION_REQUEST; - v_EpsTi := v_BEARER_RESOURCE_ALLOCATION_Req.procedureTransactionIdentifier; - // The SS transmits an ACTIVATE DEDICATED EPS BEARER CONTEXT REQUEST message. - f_EUTRA_TxDedicatedEpsBearerCtxtReq(p_CellId, - tsc_DRB2, - p_EpsBearerId, - v_EpsTi, - cs_LinkedId(hex2bit( tsc_EpsDefaultBearerId)), - cs_508_EPS_QoS_Dedicated_1, - f_EUTRA_Get_508_TrafficFlowTemplate(1, p_EpsBearerId)); - - - //The UE transmits an ACTIVATE DEDICATED EPS BEARER CONTEXT ACCEPT message - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(p_EpsBearerId)))); - } - - - //---------------------------------------------------------------------------- - /* - * @desc Tracking area update upon mobility from another RAT - * this function does not receive the RRC Connection Request message - * @param p_CellId - * @param p_RRC_TI - * @param p_CSInOtherRAT Set to true if the UE has done either an LAU or Combined RAU in the other RAT - * @param p_PDPContext Set to true if UE has earlier established PDP context on other RAT - * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) - * @param p_EUTRA_Cap - * @param p_ReleaseRequired (default value: true) Set to false if you don't want the RRC connection to be released at the end of the function - * @param p_ForcedAttach (default value: NORMAL) - * @return template (omit) NasCount_Type @sic R5s120774, R5s120944 sic@ - * @status APPROVED (LTE_IRAT) - */ - function f_EUTRA_TrackingAreaUpdateFromAnotherRAT_WithoutRRCConneReq(EUTRA_CellId_Type p_CellId, - RRC_TransactionIdentifier p_RRC_TI, - boolean p_CSInOtherRAT, - boolean p_PDPContext, - boolean p_PreambleOnLTE, - template (omit) octetstring p_EUTRA_Cap, // @sic R5-123734 sic@ - boolean p_ReleaseRequired := true, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL) runs on EUTRA_PTC return template (omit) NasCount_Type - { /* @sic R5s120027 Additional Changes sic@ */ - var NAS_MSG_Indication_Type v_NasInd; - var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); - var template (omit) NasCount_Type v_NasCountUL := omit; // @sic R5s120944 sic@ - var NasCountInfo_Type v_NasCountInfo; - var SRB_COMMON_IND v_ReceivedAsp; - var GutiParameters_Type v_GutiParams:= f_EUTRA_CellInfo_GetGuti(p_CellId); - var B3_Type v_EpsUpdate_Result := f_GetEPSTAUType(p_ForcedAttach); // @sic R5s100029, R5s110176 sic@ - var template (present) B3_Type v_EpsUpdate_TypeValue := v_EpsUpdate_Result; // To be used in Request message - var template (present) EPS_BearerContextStatus v_EPS_ContextStatus_Rx := cr_508_EPS_BearerContextStatusTAUReq; // @sic R5s100608, R5-110746 sic@ - var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus_Tx; - var template (present) NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(p_ForcedAttach); // @sic R5s110176 sic@ - var template AdditionalUpdateType v_AdditionalUpdateType_Expected := f_GetAdditionalUpdateType (p_ForcedAttach); // @sic R5s110176 sic@ - var template (present) NAS_MSG_Indication_Type v_NAS_Expected, v_TAU_Expected, v_TAU_NoProtection, v_TAU_StartInOtherRAT, v_TAU_ForcedMapped; - var boolean v_NoAuthSincePowerOn; - var template (omit) AccessStratumRelease v_Rel := omit; - var UE_EUTRA_Capability v_EUTRA_Cap; - var boolean v_Rel8_9 := false; - var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); - var B3_Type v_PDNType := f_GetPdnType(); - var template CiphKeySeqNum v_CiphKeySeqNum := cr_CiphKeySeqNum('8'H, ?) ifpresent; - timer t_WaitforAttach := f_EUTRA_SetTimerToleranceMax( p_CellId, nonProtocolTimer, tsc_WaitforAttach); // @sic R5-134358 sic@ - - if (p_PreambleOnLTE) { // @sic R5-123734 sic@ - v_Rel := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease (); - } else { - if (ispresent(p_EUTRA_Cap)) { - v_EUTRA_Cap := f_EUTRA_DecodeEutraCapMsg(valueof(p_EUTRA_Cap)); // This needs to be a template as it can be omitted - v_Rel := v_EUTRA_Cap.accessStratumRelease; - } - } - - if (not p_PDPContext and not p_PreambleOnLTE) { // no bearer has previously been established - v_EPS_ContextStatus_Rx.ebi5_7 := '000'B; // so set all bearer indications to 0 - } - - if (not match(tsc_EpsUpdate_TaUpdate, v_EpsUpdate_TypeValue)) { // TA Only; @sic R5-110746 sic@ - if (p_CSInOtherRAT) { - v_EpsUpdate_TypeValue := tsc_EpsUpdate_Combined_IMSIAttach; - } else { - v_EpsUpdate_TypeValue := (tsc_EpsUpdate_Combined_TaLaUpdate, tsc_EpsUpdate_Combined_IMSIAttach); // @sic R5s120943, R5-140325 sic@ - } - } - - // @sic R5s110168 change 8.5 sic@ - v_TAU_NoProtection := cr_NAS_Indication(tsc_SHT_NoSecurityProtection, - cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, - '111'B, - v_EPS_ContextStatus_Rx, - v_AdditionalUpdateType_Expected, - ?, - v_CiphKeySeqNum)); - v_TAU_StartInOtherRAT := cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, - ?, - v_EPS_ContextStatus_Rx, - v_AdditionalUpdateType_Expected, - ?, - v_CiphKeySeqNum)); - v_TAU_ForcedMapped := cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, - f_EUTRA_SecurityKSIsgsn_Get (), - v_EPS_ContextStatus_Rx, - v_AdditionalUpdateType_Expected, - tsc_NasKsi_MappedSecurityContext, - v_CiphKeySeqNum)); - /* Step 1 - 3 */ - /* ( 33.401 cl. 9.1.2 Idle mode procedures in E-UTRAN ) - Check that TRACKING AREA UPDATE REQUEST message is present and conforms - with default message ( 36.508 Table 4.7.2-27: TRACKING AREA UPDATE REQUEST ) */ - if (v_SecurityParams.KSIasme == '111'B) { // Did not do authentication on EUTRA cell since power on - v_NoAuthSincePowerOn := true; - if (v_SecurityParams.KSIsgsn == '111'B) {// No current EPS security context stored - //@sic R5-110746 Don't care if UE is sending mapped or native sic@ - v_TAU_Expected := (v_TAU_NoProtection, v_TAU_StartInOtherRAT); - } - else { /* This should be when: - UE started on 3G/2G, - * - came to LTE and was forced to use the mapped context in an SMC on LTE - * - went back to 3G/2G - * - is now back on LTE */ - v_TAU_Expected := v_TAU_ForcedMapped; - } - } - else { // UE and SS still have current EPS NAS Security Context because previously registered on LTE so should have a valid native context - v_NoAuthSincePowerOn := false; - v_TAU_Expected := cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, - f_EUTRA_SecurityKSIasme_Get(), - v_EPS_ContextStatus_Rx, - v_AdditionalUpdateType_Expected, - tsc_NasKsi_NativeSecurityContext)); // @sic R5-110746 sic@ - } - - if (p_PDPContext or p_PreambleOnLTE) { // bearer has previously been established - v_NAS_Expected := v_TAU_Expected; - } else { // no bearer established, so behaviour is optional - if (ispresent(v_Rel)) { // @sic R5-123734 sic@ - if (valueof(v_Rel) == rel8 or valueof(v_Rel) == rel9) { - v_NAS_Expected := (v_TAU_Expected, cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), - cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); // @sic R5s120659 sic@ - } else { // rel10 and above - v_NAS_Expected := cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), - cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType)); // @sic R5s120659 sic@ - } - } else { // started on GERAN so expect anything for now - v_NAS_Expected := (v_TAU_Expected, cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), - cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); // @sic R5s120659 sic@ - } - } - - //Send RRC Connection Setup on SRB0 (CCCH) and switch on UL grant assignments: - f_EUTRA_RRC_ConnectionSetup_Def (p_CellId, -, p_RRC_TI); - - //Receive RRC Connection Setup Complete with piggy-backed NAS message on SRB1 (DCCH): - v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(p_CellId, // @sic R5s120121 MCC160 implementation sic@ - cr_508_RRCConnectionSetupComplete(p_RRC_TI, ?, -, 1), - v_NAS_Expected); // @sic R5-123734 sic@ - if (ischosen (v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST)) { // @sic R5-123734 sic@ - v_SecurityParams.NonceUE := oct2bit(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.nonce.nonceValue); - } - if (p_PDPContext or p_PreambleOnLTE) { // bearer already established, so go ahead and complete the TAU; @sic R5-110746, R5s110087 sic@ - if (v_NoAuthSincePowerOn) { - v_SecurityParams := f_EUTRA_MappedContext_InitNAS(v_SecurityParams, v_SecurityParams.AuthParams); - v_SecurityParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability_TAU(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST); // @sic R5s110210 sic@ - /* Step 4, 5: NAS Security Mode Command / NAS Security Mode Complete */ - v_NasCountUL := f_EUTRA_NAS_ActivateSecurity_MappedContext(p_CellId, v_SecurityParams); - } else { // @sic R5s130238 sic@ - v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); - v_NasCountUL := v_NasCountInfo.UL; - } - - v_EPS_ContextStatus_Tx := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; // Send this back in the Accept - v_SecurityParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability_TAU(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST); - f_EUTRA_Security_Set(v_SecurityParams); - - /* Step 6: Transmit TRACKING AREA UPDATE ACCEPT message */ - /* Step 7: Receive TRACKING AREA UPDATE COMPLETE */ - f_EUTRA_TrackingAreaUpdate_Accept_Complete(p_CellId, - v_GutiParams, - v_EpsUpdate_Result, - v_EPS_ContextStatus_Tx, - v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, - p_ForcedAttach); - - /* Step 8: Release RRC connection */ - if (p_ReleaseRequired) { // @sic R5s110127 sic@ - f_EUTRA_RRC_ConnectionRelease(p_CellId, p_RRC_TI); - } - } else { // No bearer established so follow table 2; @sic R5-110746 sic@ - if (ischosen (v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST)) { // @sic R5-123734 sic@ - // Step 4: The SS transmits a TRACKING AREA UPDATE REJECT message with EMM cause = "No EPS Bearer Activated". - v_Rel8_9 := true; // @sic R5-123734 sic@ - SRB.send(cas_SRB1_NasPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_NAS_Request(tsc_SHT_NoSecurityProtection, - cs_508_TRACKING_AREA_UPDATE_REJECT(tsc_Cause_NoEPSBearerActive)))); - // Step 5: SS waits for tsc_WaitforAttach seconds to receive the Attach Request on the existing RRC Connection - t_WaitforAttach.start; - alt { - [] SRB.receive(car_SRB1_NasPdu_IND(p_CellId, - cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), - cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType)))) - -> value v_ReceivedAsp - { - v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; - t_WaitforAttach.stop; - } - [] t_WaitforAttach.timeout - { - // Step 5 : The SS releases the RRC connection. - f_EUTRA_RRC_ConnectionRelease(p_CellId); /* @sic R5-110803 change 13 sic@ */ - - // Step 6: - if (not pc_Auto_PDN_Connectivity) { // @sic R5-120754, R5-125117 sic@ - f_UT_RequestAdditionalPDNConnectivity (UT, 6); // @sic R5-125116 sic@ - } - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - tsc_RRC_TI_Def, - cr_EstablishmentCause_Any, - cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), - cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); - } - } - } // end of TAU received, so Attach Req must have been received first - // Activate DHCP and ICMPv6 - f_IP_Handling_Start(IP, PDN_1, cs_DrbInfo_EUTRA(p_CellId, tsc_DRB1)); /* @sic R5s110776 sic@ */ - - // Steps 7 - 22 - f_EUTRA_IdleUpdated_Step5_17(p_CellId, STATE2_IDLEUPDATE, p_ForcedAttach, v_NasInd, p_ReleaseRequired); // @sic R5s110395 sic@ - - if (not ispresent (v_Rel)) { // @sic R5-123734 sic@ - v_Rel := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease (); // can get value now, so can now check behaviour correct for release of UE - if ((not(valueof(v_Rel) == rel8 or valueof(v_Rel) == rel9)) and v_Rel8_9 ) { // @sic R5s120659 sic@ @sic R5s130275 sic@ - f_SetVerdictInconc(__FILE__, __LINE__, "Rel8/9 behaviour not allowed for higher release UE"); - } - } - } - return v_NasCountUL; // @sic R5s120774 sic@ - } - - //---------------------------------------------------------------------------- - /* - * @desc Tracking area update upon mobility from another RAT - * @param p_CellId - * @param p_RRC_TI - * @param p_CSInOtherRAT Set to true if the UE has done either an LAU or Combined RAU in the other RAT - * @param p_PDPContext Set to true if UE has earlier established PDP context on other RAT - * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) - * @param p_EUTRA_Cap - * @param p_ReleaseRequired (default value: true) Set to false if you don't want the RRC connection to be released at the end of the function - * @param p_ForcedAttach (default value: NORMAL) - * @status APPROVED (LTE_IRAT) - */ - function f_EUTRA_TrackingAreaUpdateFromAnotherRAT(EUTRA_CellId_Type p_CellId, - RRC_TransactionIdentifier p_RRC_TI, - boolean p_CSInOtherRAT, - boolean p_PDPContext, - boolean p_PreambleOnLTE, - template (omit) octetstring p_EUTRA_Cap, // @sic R5-123734 sic@ - boolean p_ReleaseRequired := true, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL) runs on EUTRA_PTC - { /* @sic R5s120027 Additional Changes sic@ */ - var EstablishmentCause v_EstablishmentCause := mo_Signalling; - - // receive RRC Connection Request on SRB0 (CCCH): - f_EUTRA_RRC_ConnectionRequest_Def(p_CellId, v_EstablishmentCause); // @sic R5-120721 change 3 sic@ - - f_EUTRA_TrackingAreaUpdateFromAnotherRAT_WithoutRRCConneReq(p_CellId, - p_RRC_TI, - p_CSInOtherRAT, - p_PDPContext, - p_PreambleOnLTE, - p_EUTRA_Cap, // @sic R5-123734 sic@ - p_ReleaseRequired, - p_ForcedAttach); - } - - template (present) MS_NetworkCap cdr_MS_NetworkCap_Srvcc modifies cr_MS_NetworkCap_Any := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - srvccToGERAN_UTRANCap := '1'B - }; - - template (present) NAS_UL_Message_Type cdr_ATTACH_REQUEST_SRVCC(template (present) NAS_AttDetValue_Type p_AttachTypeValue, - template AdditionalUpdateType p_AdditionalUpdateType, - template GUTI_Type p_OldGUTIType := cr_GUTI_Type_Any ifpresent) // @sic R5s140074, R5-142882 sic@ - modifies cr_508_ATTACH_REQUEST := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - aTTACH_REQUEST := { - msNetworkCapability := cdr_MS_NetworkCap_Srvcc, - msClassmark2 := cr_MS_Clsmk2_Any_tlv, - supportedCodecList := cr_CodecListAny, - oldGUTI_Type := p_OldGUTIType - } - }; - - //---------------------------------------------------------------------------- - - altstep a_EUTRA_PdnConnectivityRejectAnyFurtherRequest(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - var SRB_COMMON_IND v_ReceivedAsp; - var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; - var ProcedureTransactionIdentifier v_PTId_UE; - var template (value) ESM_Cause v_EsmCause26; - var template (value) GPRS_Timer3 v_T3396_Deact; - - [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_PDNConnReqAdditionalPDN(?)))) -> value v_ReceivedAsp - { - - v_PDNConnReq := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_CONNECTIVITY_REQUEST; - v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; - v_EsmCause26 := cs_ESM_Cause_v ('00011010'B); - v_T3396_Deact := cs_GprsTimer3(tsc_GprsTimerUnit_deact, '11111'B); - SRB.send(cas_SRB2_NasPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, cs_PdnConnectReject('0'H, v_PTId_UE, v_EsmCause26, v_T3396_Deact)))); - } - } - - function f_EUTRA_PdnConnectivityReject(EUTRA_CellId_Type p_CellId, - template (omit) float p_WaitDuration := omit) runs on EUTRA_PTC - { - var boolean v_TimerControl := ispresent(p_WaitDuration); - timer t_Timer; - - if (v_TimerControl) { - t_Timer.start(valueof(p_WaitDuration)); - } - alt { - [] a_EUTRA_PdnConnectivityRejectAnyFurtherRequest(p_CellId) {} - [v_TimerControl] t_Timer.timeout {} - } - } - - //---------------------------------------------------------------------------- - /* - * @desc Activate a default DRB connected to an additional DRB - * see 36.508 clause 6.4.3.2 / 4.5.A.4 - * This is called by f_EUTRA_508_ActivateAdditionalPDN - * @param p_CellId - * @param p_EpsBearerId2 .. Identity of the 2nd Default Bearer that will be configured to connect to the additional PDN - * @param p_RRCState (default value: RRC_IDLE) - * @param p_EstablishmentCause (default value: ?) Set to emergency to establish a PDN for an emergency bearer - * @param p_PDN_RequestType (default value: 001) Set to 100 to establish a PDN for an emergency bearer - * @param p_ExpectedAccessPointName (default value: cr_AccessPointName(v_APN_Value)) Set to omit to establish a PDN for an emergency bearer - * @param p_StepNo (default value: "") Set to the verdict step no if required after the RRC Connection Establishment - * @status APPROVED (IMS, LTE) - */ - function f_EUTRA_ActivateAdditionalPDNOnDef(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsBearerId2, - EUTRA_RRC_STATE_Type p_RRCState := RRC_IDLE, - template (present) EstablishmentCause p_EstablishmentCause := ?, - B3_Type p_PDN_RequestType := '001'B, - template AccessPointName p_ExpectedAccessPointName := cr_AccessPointName(tsc_APN1), - charstring p_StepNo := "") runs on EUTRA_PTC - { // @sic R5s100326 sic@ @sic R5s100520 sic@ - var ProcedureTransactionIdentifier v_PTId_UE; - var template (omit) ProtocolConfigOptions v_Pco; // @sic R5s100761 sic@ - var PDN_Address v_PDN_Address2; - var NAS_MSG_Indication_Type v_NasInd; - var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; - var SRB_COMMON_IND v_ReceivedAsp; - var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_CellId); //Get FDD or TDD mode from Cell-configuration - var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); - var NasCount_Type v_NasCountUL; - var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_CellId); //@sic R5-100786 sic@ - var template (value) DRB_ToAddModList v_DRB_ToAddModList; - var template (value) AccessPointName v_AccessPointNameToSend := cs_AccessPointName(tsc_APN1); - - // RRC configuration for first default EPS bearer context is released during RRC connection release procedure at the end of preamble, - // and therefore needs to be restored during the additional PDN procedure. - v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_DEFAULT_AM (tsc_DRB1); // @sic R5s130648 sic@ @sic R5s130880 sic@ - - // The UE transmits a SERVICE REQUEST - // The UE transmits a PDN CONNECTIVITY REQUEST message as specified to request an additional PDN. - if (p_RRCState == RRC_IDLE) { - // UE is in RRC Idle mode - // Steps 2a1 to 2a7 - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - tsc_RRC_TI_Def, - p_EstablishmentCause, // @sic R5-131807 sic@ - cr_NAS_Indication (tsc_SHT_IntegrityProtected, - cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); - if (p_StepNo != "") { // @sic R5-115673 sic@ - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, p_StepNo); - } - - // activate security in AS with parameters from AKA performed in preamble - v_NasCountUL := v_NasInd.SecurityProtection.NasCount; - v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, - v_SecurityParams, - v_NasCountUL); - f_EUTRA_Security_Set(v_SecurityParams); - - SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, - omit, - omit, - cs_508_RadioResourceConfigDedicated_SRB2( v_DRB_ToAddModList, - cs_508_MAC_MainConfig_Explicit_RBC_DrxL, - cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, - v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, - v_AntennaInfo)), - omit))); - - // receive RRCConnectionReconfigurationComplete - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - - } // end of if RRC_Idle - // UE is now in RRC connected mode - - // Step 3. The UE transmits an ULInformationTransfer message including the PDN CONNECTIVITY REQUEST message. - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_PDNConnReqAdditionalPDN(f_GetPdnType(), p_ExpectedAccessPointName, p_PDN_RequestType))))-> value v_ReceivedAsp; // @sic R5-131807 sic@ - - v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; - v_PDNConnReq := v_NasInd.Pdu.Msg.pDN_CONNECTIVITY_REQUEST; - v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; - v_Pco := v_PDNConnReq.protocolConfigurationOptions; - if (ispresent(v_PDNConnReq.accessPointName)) { // @sic R5-131807 sic@ - v_AccessPointNameToSend := v_PDNConnReq.accessPointName; - v_AccessPointNameToSend.iei := omit; // @sic R5s130431 sic@ - } - - // Change from DRB1 to DRB2 to handle U Plane data - f_EUTRA_StartIPfor2ndPDN(p_CellId); // @sic R5s110449, R5-113734 change 8, R5-115673 sic@ - - // Step 4 and 5. The SS transmits an RRCConnectionReconfiguration message including - // the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message to establish the - // default EPS bearer context. - v_PDN_Address2 := f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); // @sic R5s110011 R5-120234 sic@ - f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(p_CellId, - tsc_RRC_TI_Def, - p_EpsBearerId2, // Default bearer ID to additional PDN - v_PTId_UE, // use value as defined by the UE - v_AccessPointNameToSend, - v_PDN_Address2, - f_GetDefaultProtocolConfigOptions(v_Pco)); - - // Step 6. The UE transmits an ULInformationTransfer message including the ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActivateDefEpsBearerContextAccept(p_EpsBearerId2)))); - } - - //---------------------------------------------------------------------------- - /* - * @desc Establish an IMS Emergency Call in EUTRA - * see 36.508 4.5A.4 - * @param p_CellId - * @param p_NumToDial (default value: px_EmergencyCallNumber) - * @param p_StepNo (default value: "") Set to the verdict step no if required after the RRC Connection Establishment - * @param p_EpsDefBearerId2 (default value: '6'H) in the default case the default AM bearer is 6; in any case the UM bearer is defaulted to p_EpsBearerId2 + 1 - * @param p_EstablishmentCause (default value: ?) - * @param p_StartIPfor2ndPDN (default value: true) - * @status APPROVED (IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall(EUTRA_CellId_Type p_CellId, - charstring p_NumToDial := px_EmergencyCallNumber, - charstring p_StepNo := "", - EPS_BearerIdentity p_EpsDefBearerId2 := '6'H, - template (present) EstablishmentCause p_EstablishmentCause := ?, - boolean p_StartIPfor2ndPDN := true) runs on EUTRA_PTC - { - // Step 1 - f_UT_RequestIMSEmergencyCall (UT, p_NumToDial); - - // Steps 2 - 15 - f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_15(p_CellId, p_StepNo, p_EpsDefBearerId2, p_EstablishmentCause, p_StartIPfor2ndPDN); - } - - - //---------------------------------------------------------------------------- - /* - * @desc Establish an IMS Emergency Call in EUTRA - * see 36.508 4.5A.4 steps 2-15 - * @param p_CellId - * @param p_StepNo (default value: "") .. Set to the verdict step no if required after the RRC Connection Establishment - * @param p_EpsDefBearerId2 (default value: '6'H) .. in the default case the default AM bearer is 6; in any case the UM bearer is defaulted to p_EpsBearerId2 + 1 - * @param p_EstablishmentCause (default value: ?) - * @param p_StartIPfor2ndPDN (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_15(EUTRA_CellId_Type p_CellId, - charstring p_StepNo := "", - EPS_BearerIdentity p_EpsDefBearerId2 := '6'H, - template (present) EstablishmentCause p_EstablishmentCause := ?, - boolean p_StartIPfor2ndPDN := true) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NasInd; - - // Steps 2 - 4 - v_NasInd := f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_4(p_CellId, p_StepNo, p_EstablishmentCause); - - // Steps 5 - 8 - f_EUTRA_508_EstablishIMSEmergencyCall_Steps5_8(p_CellId, v_NasInd); - - // Step 9 - 15 - f_EUTRA_508_EstablishIMSEmergencyCall_Steps9_15(p_CellId, p_EpsDefBearerId2, p_StartIPfor2ndPDN); /* @sic R5s140490 change 7 MCC160 implementation sic@ */ - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 2-4 - * @param p_CellId - * @param p_StepNo (default value: "") - * @param p_EstablishmentCause (default value: ?) - * @return NAS_MSG_Indication_Type - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_4(EUTRA_CellId_Type p_CellId, - charstring p_StepNo := "", - template (present) EstablishmentCause p_EstablishmentCause := ?) runs on EUTRA_PTC return NAS_MSG_Indication_Type - { - var NAS_MSG_Indication_Type v_NasInd; - var template (present) EstablishmentCause v_EstablishmentCause := p_EstablishmentCause; // emergency; // @sic R5-120693, 694 sic@ - - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - tsc_RRC_TI_Def, - v_EstablishmentCause, - cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); - if (p_StepNo != "") { // @sic R5-115673 sic@ - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, p_StepNo); - } - return v_NasInd; - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 5-8 - * @param p_CellId - * @param p_NasInd - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps5_8(EUTRA_CellId_Type p_CellId, - NAS_MSG_Indication_Type p_NasInd) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NasInd; - var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_CellId); //Get FDD or TDD mode from Cell-configuration - var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); - var NasCount_Type v_NasCountUL; - var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated(p_CellId); //@sic R5-100786 sic@ - var template (value) DRB_ToAddModList v_DRB_ToAddModList; - - v_NasInd := p_NasInd; - v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1); //@sic R5s140169 change 1 sic@ - - // activate security in AS with parameters from AKA performed in preamble - v_NasCountUL := v_NasInd.SecurityProtection.NasCount; - v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, - v_SecurityParams, - v_NasCountUL); - f_EUTRA_Security_Set(v_SecurityParams); - - SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, - omit, - omit, - cs_508_RadioResourceConfigDedicated_SRB2(v_DRB_ToAddModList, - cs_508_MAC_MainConfig_Explicit_RBC_DrxL, - cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, - v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, - v_AntennaInfo)), - omit))); - - // receive RRCConnectionReconfigurationComplete - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - } - - //---------------------------------------------------------------------------- - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 9-15 - * @param p_CellId - * @param p_EpsDefBearerId2 (default value: '6'H) .. in the default case the default AM bearer is 6; in any case the UM bearer is defaulted to p_EpsBearerId2 + 1 - * @param p_StartIPfor2ndPDN (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps9_15(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsDefBearerId2 := '6'H, - boolean p_StartIPfor2ndPDN := true) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NasInd; - var EPS_BearerIdentity v_EpsDefBearerId2 := p_EpsDefBearerId2; - var EPS_BearerIdentity v_EpsDedicatedBearerId := int2hex((hex2int(v_EpsDefBearerId2) + 1), 1); // the bearer id following the EPS default bearer - - // Step 9 - v_NasInd := f_EUTRA_508_EstablishIMSEmergencyCall_Step9(p_CellId); - - // Steps 10 - 14 - f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_14(p_CellId, v_EpsDefBearerId2, v_NasInd, p_StartIPfor2ndPDN); - - // Step 15 - f_EUTRA_508_EstablishIMSEmergencyCall_Step15(p_CellId, v_EpsDedicatedBearerId); - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Step 9 - * @param p_CellId - * @return NAS_MSG_Indication_Type - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Step9(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return NAS_MSG_Indication_Type - { - var NAS_MSG_Indication_Type v_NasInd; - var SRB_COMMON_IND v_ReceivedAsp; - var B3_Type v_PDN_RequestType := '100'B; // @sic R5s130561 sic@ - - // Step 9. The UE transmits an ULInformationTransfer message including the PDN CONNECTIVITY REQUEST message. - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_PDNConnReqAdditionalPDN(f_GetPdnType(), omit, v_PDN_RequestType))))-> value v_ReceivedAsp; // @sic R5s130561 sic@ - - v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; - return v_NasInd; - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 10-14 - * @param p_CellId - * @param p_EpsDefBearerId2 - * @param p_NasInd - * @param p_StartIPfor2ndPDN (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_14(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsDefBearerId2, - NAS_MSG_Indication_Type p_NasInd, - boolean p_StartIPfor2ndPDN := true) runs on EUTRA_PTC - { - var EPS_BearerIdentity v_EpsDedicatedBearerId := int2hex((hex2int(p_EpsDefBearerId2) + 1), 1); // the bearer id following the EPS default bearer - - f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_12(p_CellId, - p_EpsDefBearerId2, - p_NasInd, - p_StartIPfor2ndPDN); - f_EUTRA_508_EstablishIMSEmergencyCall_Steps13_14(p_CellId, - p_EpsDefBearerId2, - v_EpsDedicatedBearerId); - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 10-12 - * @param p_CellId - * @param p_EpsDefBearerId2 - * @param p_NasInd - * @param p_StartIPfor2ndPDN (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_12(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsDefBearerId2, - NAS_MSG_Indication_Type p_NasInd, - boolean p_StartIPfor2ndPDN := true) runs on EUTRA_PTC - { - var ProcedureTransactionIdentifier v_PTId_UE; - var template (omit) ProtocolConfigOptions v_Pco; // @sic R5s100761 sic@ - var PDN_Address v_PDN_Address2; - var NAS_MSG_Indication_Type v_NasInd; - var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; - var octetstring v_APN_Value := tsc_APN1; // APN-1(New PDN name), different from default - - v_NasInd := p_NasInd; - v_PDNConnReq := v_NasInd.Pdu.Msg.pDN_CONNECTIVITY_REQUEST; - v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; - v_Pco := v_PDNConnReq.protocolConfigurationOptions; - - // Change from DRB1 to DRB2 to handle U Plane data - if (p_StartIPfor2ndPDN == true) { - f_EUTRA_StartIPfor2ndPDN(p_CellId); // @sic R5s110449, R5-113734 change 8, R5-115673 sic@ - } - - // Step 10 and 11. The SS transmits an RRCConnectionReconfiguration message including - // the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message to establish the - // default EPS bearer context. - v_PDN_Address2 := f_EUTRA_GetPDNAddress(f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); // @sic R5s110011 R5-120234 sic@ - f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(p_CellId, - tsc_RRC_TI_Def, - p_EpsDefBearerId2, // Default bearer ID to additional PDN - v_PTId_UE, // use value as defined by the UE - cs_AccessPointName(v_APN_Value), - v_PDN_Address2, - f_GetDefaultProtocolConfigOptions(v_Pco, PDN_2)); // @sic R5s130561 sic@ - - // Step 12 The UE transmits an ULInformationTransfer message including the ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActivateDefEpsBearerContextAccept(p_EpsDefBearerId2)))); - - // EXCEPTION: (IP address allocation), steps 1 - 4 of annex C.20 and steps 1 - 5 of annex C.22 should be performed in parallel - - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 13-14 - * @param p_CellId - * @param p_EpsDefBearerId2 - * @param p_EpsDedicatedBearerId - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Steps13_14(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsDefBearerId2, - EPS_BearerIdentity p_EpsDedicatedBearerId) runs on EUTRA_PTC - { - var DRB_IdentityList_Type v_DrbList := { f_EUTRA_EpsBearerAssociatedDRB(p_EpsDedicatedBearerId) }; // mapping: DRB Id := EPS BeareId - 4 - var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := - cs_508_ActDedicatedEPSBearerCxtReq(p_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit( p_EpsDefBearerId2)), - cs_508_EPS_QoS_Dedicated_1, - f_EUTRA_Get_508_TrafficFlowTemplate(4, p_EpsDefBearerId2, -, PDN_2)); // EPS bearer context #4 (QCI 1) according to table 6.6.2-1 @sic R5s130495 sic@ - - var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := { - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReq) - }; - - // Steps 13-14 - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(p_CellId, - tsc_RRC_TI_Def, - v_DrbList, - v_NAS_MsgList, - UM_Mode); - } - - /* - * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Step 15 - * @param p_CellId - * @param p_EpsDedicatedBearerId - * @status APPROVED (IMS, IMS_IRAT, LTE) - */ - function f_EUTRA_508_EstablishIMSEmergencyCall_Step15(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsDedicatedBearerId) runs on EUTRA_PTC - { - var EPS_BearerIdentity v_EpsDedicatedBearerId := p_EpsDedicatedBearerId; - - // Step 15 - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(v_EpsDedicatedBearerId)))); - } - - //---------------------------------------------------------------------------- - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 - * @param p_CellId - * @param p_NumToDial - * @param p_Type - * @param p_ForcedAttach (default value: NORMAL) - * @param p_StepNo (default value: "") Set to the verdict step no if required after the RRC Connection Establishment - * @param p_Authenticate (default value: true) perform authentication - * @status APPROVED (IMS_IRAT, LTE) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService(EUTRA_CellId_Type p_CellId, - charstring p_NumToDial, - IDLEUPDATED_Type p_Type, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - charstring p_StepNo := "", - boolean p_Authenticate := true) runs on EUTRA_PTC - { - f_UT_RequestIMSEmergencyCall (UT, p_NumToDial); - - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_19(p_CellId, - p_Type, - p_ForcedAttach, - p_StepNo, - p_Authenticate); - } - - //---------------------------------------------------------------------------- - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 2-19 - * @param p_CellId - * @param p_Type - * @param p_ForcedAttach (default value: NORMAL) - * @param p_StepNo (default value: "") .. Set to the verdict step no if required after the RRC Connection Establishment - * @param p_Authenticate (default value: true) .. perform authentication - * @status APPROVED (IMS_IRAT, LTE) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_19(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_Type p_Type, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - charstring p_StepNo := "", - boolean p_Authenticate := true) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NAS_Ind; - - v_NAS_Ind := f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_4(p_CellId, - p_Type, - p_ForcedAttach, - p_StepNo); - - f_EUTRA_508_IMSEmergencyCallLimitedService5a1_19(p_CellId, - v_NAS_Ind, - p_Authenticate); - } - - //---------------------------------------------------------------------------- - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 7-16 - * @param p_CellId - * @param p_NAS_Ind - * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_16(EUTRA_CellId_Type p_CellId, - NAS_MSG_Indication_Type p_NAS_Ind) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NAS_Ind := p_NAS_Ind; - - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_15(p_CellId, - v_NAS_Ind); - - f_EUTRA_508_IMSEmergencyCallLimitedService_Step16(p_CellId); - } - - //---------------------------------------------------------------------------- - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 5a1-19 - * @param p_CellId - * @param p_NAS_Ind - * @param p_Authenticate (default value: true) perform authentication - * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService5a1_19(EUTRA_CellId_Type p_CellId, // @sic R5-134956r1 sic@ - NAS_MSG_Indication_Type p_NAS_Ind, - boolean p_Authenticate := true) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NAS_Ind := p_NAS_Ind; - - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_5a2a2(p_CellId, // @sic R5-134956r1 sic@ - v_NAS_Ind, - p_Authenticate); - - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_16(p_CellId, - v_NAS_Ind); - - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps17_19(p_CellId); - } - - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 2-4 - * @param p_CellId - * @param p_Type - * @param p_ForcedAttach (default value: NORMAL) - * @param p_StepNo (default value: "") - * @return NAS_MSG_Indication_Type - * @status APPROVED (IMS_IRAT, LTE) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_4(EUTRA_CellId_Type p_CellId, - IDLEUPDATED_Type p_Type, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - charstring p_StepNo := "") runs on EUTRA_PTC return NAS_MSG_Indication_Type - { - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - var NAS_AttDetValue_Type v_AttachType := '110'B; - var B3_Type v_PDNType := f_GetPdnType(); - var NAS_MSG_Indication_Type v_NAS_Ind; - var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); //used to follow TTCN3 v411 standard @sic R5s110176 sic@ - var template (present) SecurityHeaderType v_AttReqSecurityHeader; - - if (p_Type == PREAMBLE) { - v_AttReqSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); - } else { - v_AttReqSecurityHeader := tsc_SHT_IntegrityProtected; - } - - // Receive RRC Connection Setup Complete with - v_NAS_Ind := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - v_RRC_TI, - emergency, - cr_NAS_IndicationWithPiggybacking(v_AttReqSecurityHeader, - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), // @sic R5-103681 sic@ - cr_508_PDN_CONNECTIVITY_REQUEST('100'B, v_PDNType))); - - if (p_StepNo != "") { // @sic R5-115673 sic@ - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, p_StepNo); - } - return v_NAS_Ind; - - } - - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 5a1-5a2a2 - * @param p_CellId - * @param p_NAS_Ind - * @param p_Authenticate (default value: true) - * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_5a2a2(EUTRA_CellId_Type p_CellId, // @sic R5-134956r1 sic@ - NAS_MSG_Indication_Type p_NAS_Ind, - boolean p_Authenticate := true) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NAS_Ind; - var template (present) SecurityHeaderType v_ExpectedSecurityHeader; // @sic R5s090373 sic@ - var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); - var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(p_CellId); - var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId (v_GutiParams.PLMN_Identity); - var SRB_COMMON_IND v_ReceivedAsp; - var B32_128_Type v_ReceivedRES; - - v_NAS_Ind := p_NAS_Ind; - // Set UE network capabilities as sent by the UE to be used later (see TS 24.301 clause 5.4.3.3) - v_AuthParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability(v_NAS_Ind.Pdu.Msg.aTTACH_REQUEST); // @sic R5s100135 sic@ - f_EUTRA_Security_Set(v_AuthParams); - - if (v_NAS_Ind.SecurityProtection.Status == tsc_SHT_NoSecurityProtection) { - v_ExpectedSecurityHeader := tsc_SHT_NoSecurityProtection; - } else { - v_ExpectedSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); - } - - if (p_Authenticate) { - // Step 5-6: Authentication - // Evaluate Authentication parameters and generate new keys - v_AuthParams := f_EUTRA_Authentication_InitNAS(v_AuthParams, v_PLMN); - - SRB.send(cas_SRB_NasPdu_REQ(p_CellId, - tsc_SRB1, - cs_TimingInfo_Now, - cs_NAS_Request(tsc_SHT_NoSecurityProtection, cs_AUTHENTICATION_REQUEST(v_AuthParams.KSIasme, - v_AuthParams.AuthParams.RandValue, - v_AuthParams.AuthParams.AUTN)))); - // receive AUTHENTICATION RESPONSE: - alt { - [] SRB.receive(car_SRB_NasPdu_IND(p_CellId, - tsc_SRB1, - cr_NAS_Indication(v_ExpectedSecurityHeader, cr_AUTHENTICATION_RESPONSE))) -> value v_ReceivedAsp - { // @sic R5s130756 change 5 sic@ - v_ReceivedRES := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.aUTHENTICATION_RESPONSE.authenticationResponseParameter.res; - if (v_ReceivedRES != substr(v_AuthParams.AuthParams.XRES, 0, lengthof(v_ReceivedRES))) { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication Failed"); - } - v_AuthParams.AuthParams.XRESLength := lengthof(v_ReceivedRES) / 8; - f_EUTRA_Security_Set(v_AuthParams); - } - [] SRB.receive(car_SRB_NasPdu_IND(p_CellId, - tsc_SRB1, - cr_NAS_Indication(?, (cr_AUTHENTICATION_FAIL_synch, cr_AUTHENTICATION_FAIL_mac)))) - { - v_AuthParams.NAS_Integrity.Algorithm := '000'B; // EIA0 - v_AuthParams.NAS_Ciphering.Algorithm := '000'B; // EEA0 - v_AuthParams.AS_Integrity.Algorithm := eia0_v920; - v_AuthParams.AS_Ciphering.Algorithm := eea0; - v_AuthParams.KSIasme := '000'B; - f_EUTRA_Security_Set(v_AuthParams); - } - } - } - else { - // Set NAS Key Identifier IE to "000" during attach procedure for emergency bearer - v_AuthParams.NAS_Integrity.Algorithm := '000'B; // EIA0 - v_AuthParams.NAS_Ciphering.Algorithm := '000'B; // EEA0 - v_AuthParams.AS_Integrity.Algorithm := eia0_v920; - v_AuthParams.AS_Ciphering.Algorithm := eea0; - v_AuthParams.KSIasme := '000'B; - f_EUTRA_Security_Set(v_AuthParams); - } - } - - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 7-15 - * @param p_CellId - * @param p_NAS_Ind - * @param p_ForcedAttach (default value: EPS_Only) - * @param p_T3412 (default value: cs_GprsTimer_v_deact) - * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_15(EUTRA_CellId_Type p_CellId, - NAS_MSG_Indication_Type p_NAS_Ind, - EUTRA_ATTACH_Type p_ForcedAttach := EPS_Only, // @sic R5-135069 sic@ - template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact) runs on EUTRA_PTC - { - var NAS_MSG_Indication_Type v_NAS_Ind; - var ProcedureTransactionIdentifier v_EPS_TI; - var NAS_UL_Message_Type v_PdnConnectivityRequest; - var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); - var NasCount_Type v_NasCountUL; - var AccessPointName v_APN; - var template (omit) ProtocolConfigOptions v_PcoFromUE; - var template (omit) ProtocolConfigOptions v_PcoToUE; - - v_NAS_Ind := p_NAS_Ind; - v_PdnConnectivityRequest := v_NAS_Ind.Pdu.PiggybackedPduList[0].Msg; - v_EPS_TI := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier; - - // Step 7-8: NAS Security - v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId, v_AuthParams); // NAS SECURITY COMMAND & COMPLETE - - // Step 9a1 & 2 - ESM information optionally transferred; @sic R5-110708 sic@ - v_APN := f_ESM_InitAPN (p_CellId, f_CheckEsmInfoTransferFlag(v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST), v_EPS_TI); - - // Step 10-11: RRC Security Mode procedures - v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasCountUL); // RRC SECURITY COMMAND & COMPLETE - f_EUTRA_Security_Set(v_AuthParams); //Saving security parameters - - // Step 12-13 UE Capability check - f_EUTRA_Capability (p_CellId, tsc_RRC_TI_Def); // This enquires for the eutra capability but does not check the contents of the message received - - // Step 14 - 15 Activate Def Bearer - v_PcoFromUE := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.protocolConfigurationOptions; // may be omit - v_PcoToUE := f_GetDefaultProtocolConfigOptions (v_PcoFromUE); // @sic R5-104703 sic@ - f_EUTRA_IdleUpdated_Step14_15(p_CellId, - p_ForcedAttach, - v_NAS_Ind.Pdu.Msg.aTTACH_REQUEST.addUpdateType, - v_EPS_TI, - f_CheckPCOforIPallocationViaNas (v_PcoFromUE), - v_PcoToUE, - v_APN, - -, - p_T3412); // @sic R5s130758 sic@ - - // EXCEPTION: (IP address allocation), steps 1 - 5 of annex C.22 should be performed in parallel - } - - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 5a1_15 - * @param p_CellId - * @param p_NAS_Ind - * @param p_ForcedAttach (default value: NORMAL) - * @param p_Authenticate (default value: true) - * @param p_T3412 (default value: cs_GprsTimer_v_deact) - * @status APPROVED (LTE) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_15(EUTRA_CellId_Type p_CellId, // @sic R5-134956r1 sic@ - NAS_MSG_Indication_Type p_NAS_Ind, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - boolean p_Authenticate := true, - template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact) runs on EUTRA_PTC // @sic R5s130758 sic@ - { - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_5a2a2(p_CellId, p_NAS_Ind, p_Authenticate); - f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_15(p_CellId, p_NAS_Ind, p_ForcedAttach, p_T3412); // @sic R5s130758 sic@ - } - - - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 step 16 - * @param p_CellId - * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Step16(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - // Step 16 - f_EUTRA_NAS_AttachComplete(p_CellId, tsc_EpsDefaultBearerId, noDelay); // @sic R5s130756 change 7 sic@ - } - - /* - * @desc Establish an IMS Emergency Call in EUTRA in limited service - * see 36.508 4.5.A.5 steps 17-19 - * @param p_CellId - * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) - */ - function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps17_19(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - // Step 17 - 18 - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(p_CellId, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit( tsc_EpsDefaultBearerId)), - cs_508_EPS_QoS_Dedicated_1, - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5-132085 sic@ - UM_Mode); - // Step 19 - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); - } - - // =========================================================================== - /* - * @desc UE registers on nonCSG cell, then performs manual CSG selection to the CSG cell - * (procedure as per test case 9.2.3.1.9), and finally UE deregisters from CSG cell - * @param p_CellId_CSG target cell id where manual CSG selection is to be done - * @param p_CellId_nonCSG target cell id where initial registration is to be done - * @param p_ForcedAttach (default value: NORMAL) - * attach type applied in the test case using the present function - * @status - */ - function f_EUTRA_Manual_CSG_Select(EUTRA_CellId_Type p_CellId_CSG, - EUTRA_CellId_Type p_CellId_nonCSG, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL) runs on EUTRA_PTC - { - var template (value) CellPowerList_Type v_CellPowerList; - var GutiParameters_Type v_Guti1_Params := f_EUTRA_CellInfo_GetGuti(p_CellId_nonCSG); - var GutiParameters_Type v_Guti2_Params := f_EUTRA_CellInfo_GetGuti(p_CellId_CSG); - var NAS_PlmnId v_HomePlmn:= f_Asn2Nas_PlmnId(v_Guti1_Params.PLMN_Identity); - var NAS_Tac v_Tac1 := bit2oct(f_EUTRA_CellInfo_GetTAC(p_CellId_nonCSG)); - var NAS_Tac v_Tac2 := bit2oct(f_EUTRA_CellInfo_GetTAC(p_CellId_CSG)); - var template (omit) MobileIdentity v_MsId := f_GetMSId (p_ForcedAttach); - var EPS_UpdateTypeValue v_UpdateType := f_GetEPSTAUType(p_ForcedAttach); - var template (omit) EPS_BearerContextStatus v_EpsBearerCtxtStatus; - var NAS_MSG_Indication_Type v_NasInd; - var CSG_Identity v_CSG_Identity; - var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); - - // this could be changed: appropriate conversion function needed - if (p_CellId_CSG == eutra_CellA) { - v_CSG_Identity := '000000000000000000000000001'B; - } - if (p_CellId_CSG == eutra_CellB) { - v_CSG_Identity := '000000000000000000000000010'B; - } - else if (p_CellId_CSG == eutra_CellC) { - v_CSG_Identity := '000000000000000000000000100'B; - } - else { - FatalError(__FILE__, __LINE__, "unforeseen cell"); - } - - v_CellPowerList := { - cs_CellPower(p_CellId_nonCSG, tsc_ServingCellRS_EPRE) - }; - f_EUTRA_SetCellPowerList(v_CellPowerList); - - if (not f_EUTRA_AttachTypeCheck(p_ForcedAttach)) { - f_UT_ConfigureEPSAttach (UT); - } else { - f_UT_ConfigureCombinedAttach (UT); - } - - // Preamble: UE is in state Registered, Idle Mode (state 2) on nonCSG Cell - f_EUTRA_Preamble(p_CellId_nonCSG, STATE2_IDLEUPDATE, p_ForcedAttach); - //+ manual CSG selection so that TAU procedure initiated to includes CSG ID of CSG cell in the allowed CSG list - v_CellPowerList := { - cs_CellPower(p_CellId_nonCSG, tsc_NonSuitableCellRS_EPRE), - cs_CellPower(p_CellId_CSG, tsc_ServingCellRS_EPRE) - }; - f_EUTRA_SetCellPowerList(v_CellPowerList); - - // delete the UE's CSG whitelist, supported per test case selection expression - f_UT_USIM_Insert (UT, "Please delete the UE's CSG whitelist"); - - // perform the manual CSG selection - f_UT_ManualPLMN_CSG(UT, v_HomePlmn, v_CSG_Identity); - - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId_CSG, - tsc_RRC_TI_Def, - cr_EstablishmentCause_Any, - cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cdr_TAU_Request_OldGuti(v_UpdateType, - f_EUTRA_SecurityKSIasme_Get(), - cr_DRXparameter_Any ('5C'O) ifpresent, // @sic R5s120210, R5-123117 sic@ - v_AdditionalUpdateType, - f_GutiParameters2MobileIdentity(omit, v_Guti1_Params), - cr_TAI(v_HomePlmn, v_Tac1)))); - v_EpsBearerCtxtStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; - - SRB.send(cas_SRB1_NasPdu_REQ(p_CellId_CSG, - cs_TimingInfo_Now, - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_TAU_Accept(v_UpdateType, - f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_Guti2_Params), - cds_TAIListNonConsecutive_tlv(v_HomePlmn, {v_Tac2}), - v_EpsBearerCtxtStatus, - f_EUTRA_GetCellLAI(p_CellId_CSG, p_ForcedAttach), - v_MsId, - f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, - p_ForcedAttach))))); - - SRB.receive(car_SRB1_NasPdu_IND(p_CellId_CSG, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_TAU_Complete))); - - f_EUTRA_RRC_ConnectionRelease(p_CellId_CSG); - f_EUTRA_UE_Detach_SwitchOffUe (p_CellId_CSG, RRC_IDLE, -, p_ForcedAttach); // @sic R5s120013 sic@ - // Now the allowed CSG list includes CSG ID of cell p_CellId_CSG - } - - //============================================================================ - /* - * @desc Generic Test Procedure to establish additional PDN connectivity (36.508 clause 4.5A.X) - * @param p_CellId - * @param p_WaitForIMS (default value: waitForIMS) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_ConnectToAdditionalPDN(EUTRA_CellId_Type p_CellId, - EUTRA_DelayForUserPlaneSignalling_Type p_WaitForIMS := waitForIMS) runs on EUTRA_PTC - { /* preconditions: - - connected mode: SRB1, SRB2 and one DRB - - DRB: either DRB1 (if IMS is first PDN) or DRB8 (if IMS is second PDN) - - IP routing is done for PDN_1 (as usual) and PDN_Internet (-> f_EUTRA_IdleUpdated_Step14_15) - - PDN_Internet is mapped to PDN_2 i.e. uses second set of AddressInfo */ - var B3_Type v_PDNType := f_GetPdnType(); /* IPv4, IPv6 or IPv4v6 */ - var SRB_COMMON_IND v_ReceivedAsp; - var NAS_MSG_Indication_Type v_NasInd; - var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; - var ProcedureTransactionIdentifier v_PTId_UE; - var template (omit) ProtocolConfigOptions v_Pco; - var template (value) AccessPointName v_APN; - var PDN_Index_Type v_PdnIndex := f_EUTRA_InitialRegistrationPdnIndex(secondPDN); /* PDN_1 if IMS is second PDN, PDN_internet else */ - var EPS_BearerIdentity v_EpsBearerId := f_EUTRA_InitialRegistrationEpsBearerId(secondPDN); /* tsc_EpsDefaultBearerId or tsc_EpsDefaultBearerId2ndPDN */ - var DRB_Identity v_DRB_Id := f_EUTRA_EpsBearerAssociatedDRB(v_EpsBearerId); /* DRB1 or DRB8 */ - var PDN_Address v_PDN_Address; - var template (value) DRB_ToAddModList v_DRB_ToAddModList := { cs_508_DRB_ToAddMod_DEFAULT_AM(v_DRB_Id) }; - var BEARER_CONTEXT_TYPE v_BearerContextNumber := DEF_1; /* for IMS */ - - if (not tsc_EUTRA_Registration_PDN2isIMS) { /* non-IMS */ - v_BearerContextNumber := DEF_2; - } - - // Step 1. The UE transmits a PDN CONNECTIVITY REQUEST message to request an additional PDN. - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_PDNConnReqAdditionalPDN(v_PDNType, - -, - -, - cr_ESMInfoTransferFlag_Any ifpresent)))) - -> value v_ReceivedAsp; /* NOTE: acc. to the prose the ESM information transfer flag is still "Not present or any allowed value" - * nevertheless if the UE sets the ESM information transfer flag to true this may cause issues - * as the generic procedure does not handle any requested ESM information transfer */ - - v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; - v_PDNConnReq := v_NasInd.Pdu.Msg.pDN_CONNECTIVITY_REQUEST; - v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; - v_APN := f_ESM_EvaluateAPN(p_CellId, secondPDN, v_PDNConnReq.accessPointName); /* get APN without any ESM information transfer */ - v_Pco := v_PDNConnReq.protocolConfigurationOptions; - v_PDN_Address := f_EUTRA_GetPDNAddress(f_CheckPCOforIPallocationViaNas(v_Pco), v_PdnIndex); - v_Pco := f_GetDefaultProtocolConfigOptions(v_Pco, v_PdnIndex); - - // Step 2. RRCConnectionReconfiguration message contains the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message. - SRB.send(cas_SRB1_RrcNasPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_DRB_Reconfig(tsc_RRC_TI_Def, v_DRB_ToAddModList), - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActivateDefEpsBearerContextRequest(v_EpsBearerId, - v_PTId_UE, - v_APN, - v_PDN_Address, - -, - v_Pco, - v_BearerContextNumber)))); - // Step 3. Receive RRCConnectionReconfigurationComplete - SRB.receive(car_SRB1_RrcPdu_IND (p_CellId, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - - // Step 4. The UE transmits an ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActivateDefEpsBearerContextAccept(v_EpsBearerId)))); - // EXCEPTION: IP address allocation and/or IMS registration - f_EUTRA_DelayForUserPlaneSignalling(p_WaitForIMS); /* NOTE1: for multiple PDN if IMS is first PDN the IMS signalling will happen in parallel to the 2nd PDN connectivity procedure - * => we cannot wait after the ATTCH_COMPLETE but need to wait here for the trigger of the IMS_PDN - * NOTE2: in case of IMS test cases in general p_WaitForIMS is dontWaitForIMS and the RRC connection release is controlled by the IMS test case */ - } - - //============================================================================ - // Generic Test Procedure to release additional PDN connectivity (36.508 clause 4.5A.Y, 4.5A.Z) - - /* - * @desc rejection of an IMS Call using a specific establishment cause - * @param p_CellId - * @param p_EpsDefBearerId (default value: tsc_EpsDefaultBearerId) - * @param p_PTId_UE (default value: tsc_PTI_Unassigned) - * @param p_EsmCauseValue (default value: tsc_ESM_Cause36_RegularDeactivation) - * @param p_T3396 (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_DeactivateEPS_BearerContext(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsDefBearerId := tsc_EpsDefaultBearerId, - ProcedureTransactionIdentifier p_PTId_UE := tsc_PTI_Unassigned, - B8_Type p_EsmCauseValue := tsc_ESM_Cause36_RegularDeactivation, - template (omit) GPRS_Timer3 p_T3396 := omit) - runs on EUTRA_PTC - { // @sic R5-140747 sic@ - /* @sic R5-144797: new parameters p_EsmCauseValue, p_T3396 sic@ */ - var EPS_BearerIdentity v_EpsBearerId := p_EpsDefBearerId; - var DRB_Identity v_DrbId := f_EUTRA_EpsBearerAssociatedDRB(v_EpsBearerId); - var template (value) ESM_Cause v_EsmCause := cs_ESM_Cause_v(p_EsmCauseValue); - - // The SS transmits a DEACTIVATE EPS BEARER CONTEXT REQUEST. - SRB.send(cas_SRB1_RrcNasPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_DRB_Release(tsc_RRC_TI_Def, v_DrbId), - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_DeactivateEPSBearerCxtReq(v_EpsBearerId, - p_PTId_UE, - v_EsmCause)))); - // receive RRCConnectionReconfigurationComplete - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - - // The UE transmits a DEACTIVATE EPS BEARER CONTEXT ACCEPT message. - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, // @sic R5s140579 sic@ - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_DeactivateEPSBearerCxtAccept(v_EpsBearerId)))); - - } - - /* - * @desc Generic Test Procedure to establish additional PDN connectivity (36.508 clause 4.5A.Y and 4.5A.Z) - * @param p_CellId - * @param p_EpsBearerId (default value: tsc_EpsDefaultBearerId2ndPDN) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_IdleUpdated_ReleaseSecondPDN(EUTRA_CellId_Type p_CellId, - EPS_BearerIdentity p_EpsBearerId := tsc_EpsDefaultBearerId2ndPDN) runs on EUTRA_PTC - { - var DRB_Identity v_DrbForInternet := f_EUTRA_EpsBearerAssociatedDRB(p_EpsBearerId); - var LinkedEpsBearerIdentity v_LinkedEpsBearerId := {idValue := hex2bit(p_EpsBearerId)}; - var SRB_COMMON_IND v_ReceivedAsp; - var ProcedureTransactionIdentifier v_EpsTi; - var B8_Type v_EsmCauseValue; - var AccessStratumRelease v_Release; - var template (omit) GPRS_Timer3 v_T3396 := omit; - - if (pc_UE_supports_user_initiated_PDN_disconnect) { - // Step 1 - f_UT_DeactivateBearer(UT, hex2int(p_EpsBearerId)); - - // Step 2-8 - f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(p_CellId, -, -, -, -, -, -, -, -, -, -, -, v_DrbForInternet); - - // Step 9: The UE transmits PDN DISCONNECT REQUEST - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_PDNDisconnectReq(v_LinkedEpsBearerId)))) -> value v_ReceivedAsp; - v_EpsTi := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_DISCONNECT_REQUEST.procedureTransactionIdentifier; - v_EsmCauseValue := tsc_ESM_Cause36_RegularDeactivation; - } - else { - // Step 1-9 - f_EUTRA_GenericRbEst_Common(p_CellId, 0, 0, -, -, -, -, -, -, -, -, v_DrbForInternet); - - v_EpsTi := tsc_PTI_Unassigned; - v_EsmCauseValue := tsc_ESM_Cause26_InsufficientResources; - - v_Release := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease(); - select (v_Release) { - case (rel8, rel9) {} - case else { v_T3396 := cs_GprsTimer3(tsc_GprsTimerUnit_deact, '11111'B); } - } - } - - f_EUTRA_DeactivateEPS_BearerContext(p_CellId, p_EpsBearerId, v_EpsTi, v_EsmCauseValue, v_T3396); - f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, -, {v_DrbForInternet}); // local release of 2nd default DRB - f_IP_Handling_Stop(IP, cs_IP_StopPDN(PDN_Internet)); - - f_EUTRA_RRC_ConnectionRelease(p_CellId); - } -} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn b/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn deleted file mode 100644 index 1e0d5d3..0000000 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn +++ /dev/null @@ -1,223 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 14:07:59 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12187 $ -/******************************************************************************/ - -module EPS_NAS_Constants { - -import from CommonDefs all; -import from NAS_CommonTypeDefs all; -import from EPS_NAS_TypeDefs all; - -const SecurityHeaderType tsc_SHT_NoSecurityProtection := '0000'B; -const SecurityHeaderType tsc_SHT_IntegrityProtected := '0001'B; -const SecurityHeaderType tsc_SHT_IntegrityProtected_Ciphered := '0010'B; -const SecurityHeaderType tsc_SHT_IntegrityProtected_NewSecurityContext := '0011'B; -const SecurityHeaderType tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext := '0100'B; -const SecurityHeaderType tsc_SHT_ServiceRequest := '1100'B; - -const ProtocolDiscriminator tsc_PD_EMM := '0111'B; // from CR C1-085163 for 24.007 -const ProtocolDiscriminator tsc_PD_ESM := '0010'B; // from CR C1-085163 for 24.007 - -// NAS message types acc. 24.301 cl.9.8 -const MessageType tsc_MT_AttachRequest := '01000001'B; -const MessageType tsc_MT_AttachAccept := '01000010'B; -const MessageType tsc_MT_AttachComplete := '01000011'B; -const MessageType tsc_MT_AttachReject := '01000100'B; -const MessageType tsc_MT_DetachRequest := '01000101'B; -const MessageType tsc_MT_DetachAccept := '01000110'B; -const MessageType tsc_MT_TauRequest := '01001000'B; -const MessageType tsc_MT_TauAccept := '01001001'B; -const MessageType tsc_MT_TauComplete := '01001010'B; -const MessageType tsc_MT_TauReject := '01001011'B; -const MessageType tsc_MT_ExtServiceRequest := '01001100'B; -const MessageType tsc_MT_ServiceReject := '01001110'B; -const MessageType tsc_MT_GutiReallocCommand := '01010000'B; -const MessageType tsc_MT_GutiReallocComplete := '01010001'B; -const MessageType tsc_MT_AuthenticationRequest := '01010010'B; -const MessageType tsc_MT_AuthenticationResponse := '01010011'B; -const MessageType tsc_MT_AuthenticationReject := '01010100'B; -const MessageType tsc_MT_AuthenticationFailure := '01011100'B; -const MessageType tsc_MT_IdentityRequest := '01010101'B; -const MessageType tsc_MT_IdentityResponse := '01010110'B; -const MessageType tsc_MT_SecurityModeCommand := '01011101'B; -const MessageType tsc_MT_SecurityModeComplete := '01011110'B; -const MessageType tsc_MT_SecurityModeReject := '01011111'B; -const MessageType tsc_MT_EmmStatus := '01100000'B; -const MessageType tsc_MT_EmmInfo := '01100001'B; -const MessageType tsc_MT_DL_NASTransport := '01100010'B; -const MessageType tsc_MT_UL_NASTransport := '01100011'B; -const MessageType tsc_MT_CSServiceNotification := '01100100'B; -const MessageType tsc_MT_DL_GenericNASTransport := '01101000'B; -const MessageType tsc_MT_UL_GenericNASTransport := '01101001'B; - -const MessageType tsc_MT_ActivateDefaultEpsBearerContextRequest := '11000001'B; -const MessageType tsc_MT_ActivateDefaultEpsBearerContextAccept := '11000010'B; -const MessageType tsc_MT_ActivateDefaultEpsBearerContextReject := '11000011'B; -const MessageType tsc_MT_ActivateDedicatedEpsBearerContextRequest := '11000101'B; -const MessageType tsc_MT_ActivateDedicatedEpsBearerContextAccept := '11000110'B; -const MessageType tsc_MT_ActivateDedicatedEpsBearerContextReject := '11000111'B; -const MessageType tsc_MT_ModifyEpsBearerContextRequest := '11001001'B; -const MessageType tsc_MT_ModifyEpsBearerContextAccept := '11001010'B; -const MessageType tsc_MT_ModifyEpsBearerContextReject := '11001011'B; -const MessageType tsc_MT_DeactivateEpsBearerContextRequest := '11001101'B; -const MessageType tsc_MT_DeactivateEpsBearerContextAccept := '11001110'B; -const MessageType tsc_MT_PdnConnectivityRequest := '11010000'B; -const MessageType tsc_MT_PdnConnectivityReject := '11010001'B; -const MessageType tsc_MT_PdnDisconnectRequest := '11010010'B; -const MessageType tsc_MT_PdnDisconnectReject := '11010011'B; -const MessageType tsc_MT_BearerResourceAllocationRequest := '11010100'B; -const MessageType tsc_MT_BearerResourceAllocationReject := '11010101'B; -const MessageType tsc_MT_BearerResourceModificationRequest := '11010110'B; -const MessageType tsc_MT_BearerResourceModificationReject := '11010111'B; -const MessageType tsc_MT_EsmInformationRequest := '11011001'B; -const MessageType tsc_MT_EsmInformationResponse := '11011010'B; -const MessageType tsc_MT_EsmStatus := '11101000'B; -const MessageType tsc_MT_EsmNotification := '11011011'B; - - -const B8_Type tsc_SRVCC_HO_Canceled := '00000001'B; - -const IEI8_Type tsc_IEI_Guti := '50'O; // The same IEI value is used throughout 24.301 - -const ProcedureTransactionIdentifier tsc_PTI_1 := '01'O; - -const HalfOctet_Type tsc_EpsDefaultBearerId := '5'H; // EPS bearer identity (24.301 cl. 9.3.2); -const HalfOctet_Type tsc_EpsDefaultBearerId2ndPDN := 'C'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId := '6'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId2 := '7'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId3 := '8'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId4 := '9'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId5 := 'A'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId6 := 'B'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId7 := 'C'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId8 := 'D'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId9 := 'E'H; -const HalfOctet_Type tsc_EpsDedicatedBearerId10 := 'F'H; - -const NAS_AttDetValue_Type tsc_EAttachType_EpsOnly := '001'B; -const NAS_AttDetValue_Type tsc_EAttachType_Combined := '010'B; -const NAS_AttDetValue_Type tsc_EAttachType_Emergency := '110'B; - -const EPS_UpdateTypeValue tsc_EpsUpdate_TaUpdate := '000'B; // TA updating -const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate := '001'B; // Combined TA/LA updating -const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_IMSIAttach := '010'B; // combined TA/LA updating with IMSI attach -const EPS_UpdateTypeValue tsc_EpsUpdate_Periodic := '011'B; // Periodic updating -const EPS_UpdateTypeValue tsc_EpsUpdate_TaLaUpdate_ISRActivated := '100'B; // TA updating with ISR activated -const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate_ISRActivated := '101'B; // Combined TA/LA updating with ISR activated - -const B1_Type tsc_EpsUpdate_Active := '1'B; -const B1_Type tsc_EpsUpdate_NotActive := '0'B; - -// GprsOnly & EpsOnly share the same value -const NAS_AttDetValue_Type tsc_DetachMO_GprsOnly := '001'B; -const NAS_AttDetValue_Type tsc_DetachMO_EpsOnly := '001'B; -const NAS_AttDetValue_Type tsc_DetachMO_Imsi := '010'B; -const NAS_AttDetValue_Type tsc_DetachMO_Combined := '011'B; -const NAS_AttDetValue_Type tsc_DetachMT_ReAttach := '001'B; -const NAS_AttDetValue_Type tsc_DetachMT_NoReAttach := '010'B; -const NAS_AttDetValue_Type tsc_DetachMT_Imsi := '011'B; - -const NAS_CauseValue_Type tsc_EmmCause_UnknownIMSI := '00000010'B; -const NAS_CauseValue_Type tsc_EmmCause_IllegalUe := '00000011'B; -const NAS_CauseValue_Type tsc_EmmCause_IllegalMe := '00000110'B; -const NAS_CauseValue_Type tsc_Cause_IMEINotAccepted := '00000101'B; -const NAS_CauseValue_Type tsc_Cause_EPSServNotAllowed := '00000111'B; -const NAS_CauseValue_Type tsc_Cause_EPSandNonEPSServNotAllowed := '00001000'B; -const NAS_CauseValue_Type tsc_EmmCause_UEIdentityNotDerived := '00001001'B; -const NAS_CauseValue_Type tsc_EmmCause_ImplicitlyDetached := '00001010'B; -const NAS_CauseValue_Type tsc_Cause_TA_NotAllowed := '00001100'B; -const NAS_CauseValue_Type tsc_Cause_Roaming_NotAllowed := '00001101'B; -const NAS_CauseValue_Type tsc_Cause_PLMN_NotAllowed := '00001011'B; -const NAS_CauseValue_Type tsc_Cause_EPSServNotAllowedInThisPLMN := '00001110'B; -const NAS_CauseValue_Type tsc_Cause_NoSuitableCells := '00001111'B; -const NAS_CauseValue_Type tsc_EmmCause_MSCnotReachable := '00010000'B; -const NAS_CauseValue_Type tsc_EmmCause_NetworkFailure := '00010001'B; -const NAS_CauseValue_Type tsc_Cause_CSDomainNotAvailable := '00010010'B; -const NAS_CauseValue_Type tsc_Cause_ESMFailure := '00010011'B; -const NAS_CauseValue_Type tsc_Cause_MAC_Failure := '00010100'B; // #20 -const NAS_CauseValue_Type tsc_Cause_SQN_Failure := '00010101'B; // #21 -const NAS_CauseValue_Type tsc_Cause_Congestion := '00010110'B; -const NAS_CauseValue_Type tsc_UeSecurityCapsMismatch := '00010111'B; -const NAS_CauseValue_Type tsc_SecurityModeRejUnspecified := '00011000'B; -const NAS_CauseValue_Type tsc_Cause_NotAuthorizedCSG := '00011001'B; -const NAS_CauseValue_Type tsc_Cause_nonEPS_AuthUnacceptable := '00011010'B; // #26 -const NAS_CauseValue_Type tsc_EmmCause_CsFbCallEstNotAllowed := '00100110'B; // @desc EMM Cause: CS fallback call establishment not allowed. -const NAS_CauseValue_Type tsc_Cause_CSDomainNotTemporarilyAvailable := '00100111'B; // #39 'CS domain temporarily not available' -const NAS_CauseValue_Type tsc_Cause_NoEPSBearerActive := '00101000'B; // #40 -const NAS_CauseValue_Type tsc_EmmCause_SemanticallyIncorrect := '01011111'B; -const NAS_CauseValue_Type tsc_EmmCause_InvalidMandatoryInformation := '01100000'B; -const NAS_CauseValue_Type tsc_EmmCause_MessageTypeNonExistentOrNotImplemented := '01100001'B; -const NAS_CauseValue_Type tsc_EmmCause_IENonExistentOrNotImplemented := '01100011'B; -const NAS_CauseValue_Type tsc_EmmCause_ProtocolErrorUnspecified := '01101111'B; - -const NAS_KsiValue tsc_NasKsi_NoKey := '111'B; -const B1_Type tsc_NasKsi_NativeSecurityContext := '0'B; -const B1_Type tsc_NasKsi_MappedSecurityContext := '1'B; - -const B3_Type tsc_PdnRequest_InitialAttach := '001'B; -const B3_Type tsc_PdnRequest_Handover := '010'B; -const B3_Type tsc_PdnRequest_Emergency := '100'B; - -// PLMN identities acc. to 36.508 Table 6.3.2.2-1 -const NAS_PlmnId tsc_PLMN1 := '00F110'O; // @desc NAS PLMN ID (MCC=001, MNC= 01) for NAS Cell(s) A-F,M. -const NAS_PlmnId tsc_PLMN2 := '00F120'O; // @desc NAS PLMN ID (MCC=001, MNC= 02) for NAS Cell(s) G,H. -const NAS_PlmnId tsc_PLMN3 := '001201'O; // @desc NAS PLMN ID (MCC=002, MNC=101) for NAS Cell(s) I,K,L. -const NAS_PlmnId tsc_PLMN4 := '001301'O; // @desc NAS PLMN ID (MCC=003, MNC=101) for NAS Cell(s) J. - -const EPS_MmeGi tsc_MMEGI1 := '0001'O; -const EPS_MmeGi tsc_MMEGI2 := '0002'O; -const EPS_MmeGi tsc_MMEGI3 := '0003'O; -const EPS_MmeGi tsc_MMEGI4 := '0004'O; -const EPS_MmeGi tsc_MMEGI5 := '0005'O; -const EPS_MmeGi tsc_MMEGI6 := '0006'O; -const EPS_MmeGi tsc_MMEGI7 := '0007'O; -const EPS_MmeGi tsc_MMEGI8 := '0008'O; -const EPS_MmeGi tsc_MMEGI9 := '0009'O; -const EPS_MmeGi tsc_MMEGI10 := '000A'O; - -const EPS_Mmec tsc_MMEC1to10 := '01'O; - -const NAS_Tac tsc_TAC1 := '0001'O; -const NAS_Tac tsc_TAC2 := '0002'O; -const NAS_Tac tsc_TAC3 := '0003'O; -const NAS_Tac tsc_TAC4 := '0004'O; -const NAS_Tac tsc_TAC5 := '0005'O; -const NAS_Tac tsc_TAC6 := '0006'O; - -const EPS_PartialTaiListType tsc_NonConsecutiveTacs := '00'B; -const EPS_PartialTaiListType tsc_ConsecutiveTacs := '01'B; -const EPS_PartialTaiListType tsc_MultiplePlmns := '10'B; - -const EPS_ServiceTypeValue tsc_EST_CsFallback_MO := '0000'B; // @desc Service Type: Mobile originating CS fallback or 1xCS fallback. -const EPS_ServiceTypeValue tsc_EST_CsFallback_MT := '0001'B; // @desc Service Type: Mobile terminating CS fallback or 1xCS fallback. -const EPS_ServiceTypeValue tsc_EST_CsFallback_EC := '0010'B; // @desc Service Type: Mobile originating CS fallback emergency call or 1xCS fallback emergency call. - -const ProcedureTransactionIdentifier tsc_PTI_Unassigned := '00'O; // TS 24.007 clause 11.2.3.1a - -const octetstring tsc_APN1 := '0541504E2D31'O; /* Access Point Name APN-1; - @status APPROVED (LTE) */ -const charstring tsc_APN1_string := "APN-1"; /* Access Point Name APN-1; @sic R5s100466 sic@ - @status APPROVED (LTE) */ -const octetstring tsc_APN2 := '0541504E2D32'O; /* Access Point Name APN-2; - @status APPROVED (LTE) */ -const charstring tsc_APN2_string := "APN-2"; /* Access Point Name APN-2; @sic R5s100748 sic@ - @status APPROVED (LTE) */ -const octetstring tsc_APN3 := '0541504E2D33'O; /* Access Point Name APN-3; - @status */ -const charstring tsc_APN3_string := "APN-3"; /* Access Point Name APN-3; @sic R5-143213 sic@ - @status */ - -const B8_Type tsc_ESM_Cause36_RegularDeactivation := '00101011'B; -const B8_Type tsc_ESM_Cause26_InsufficientResources := '00011010'B; - - -const float tsc_WaitforAttach := 1.5; // @sic R5s130634 sic@ - -} diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_DefaultHandler.ttcn b/LTE_A_IWD_14wk37/Common/IMS/IMS_DefaultHandler.ttcn deleted file mode 100644 index c53952c..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_DefaultHandler.ttcn +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-08 21:06:38 +0200 (Sun, 08 Jun 2014) $ -// $Rev: 11667 $ -/******************************************************************************/ - -module IMS_DefaultHandler { - import from IMS_ASP_TypeDefs all; - import from IMS_ASP_Templates all; - import from IMS_Component all; - import from IMS_PTC_CoordMsg all; - import from IMS_Procedures_Registration all; - import from IMS_Procedures_Common all; - - //**************************************************************************** - // Main loop: - //---------------------------------------------------------------------------- - /* - * @desc default IMS behaviour: - * used for non-IMS test cases to deal with the initial IMS registration - * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_DefaultHandler() runs on IMS_PTC - { - var boolean v_IsRegistered := false; - var IMS_DATA_REQ v_IMS_DATA_REQ; - - f_IMS_PTC_Init(-, defaultHandling, IMS_Security); - - while (true) { - - IMS_Server.receive(car_IMS_Register_Request(?)) -> value v_IMS_DATA_REQ; // receive any REGISTER - if (not v_IsRegistered) { - f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // send trigger to EUTRA PTC to indicate start of IMS registration @sic R5-123731 sic@ - f_IMS_Registration(v_IMS_DATA_REQ); - f_IMS_TCP_CloseHandling(justWait); /* @sic R5s140219 - MCC160 implementation sic@ */ - f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // send trigger to EUTRA PTC to indicate end of IMS registration @sic R5-123731 sic@ - v_IsRegistered := true; - } else { - f_IMS_PTC_Deregistration(v_IMS_DATA_REQ); // @sic R5-132037 sic@ - /* @sic R5s140219 - MCC160 implementation: closing TCP connections is handled in f_IMS_PTC_Deregistration sic@ */ - v_IsRegistered := false; - } - } - } -} diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn b/LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn deleted file mode 100644 index ff83031..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_SDP_Messages.ttcn +++ /dev/null @@ -1,723 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ -/******************************************************************************/ - -module IMS_SDP_Messages { - import from LibSip_SDPTypes all; - import from IMS_CommonDefs all; - import from IMS_Component all; - import from CommonDefs all; - import from IMS_SDP_Templates all; - import from IMS_CommonParameters all; - import from LibSip_MessageBodyTypes all; - - /* - * @desc Wrapper function to encode SDP message - * @param p_SDP_Message - * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_SDP_Message_Encode(template (value) SDP_Message p_SDP_Message) return charstring - { - var bitstring v_BitStr := encvalue(p_SDP_Message); - return oct2char(bit2oct(v_BitStr)); - } - - /* - * @desc Wrapper function to decode SDP message and to assign fail verdict in case of syntactically wrong SDP message - * @param p_SdpBody - * @return SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function fl_IMS_SDP_Message_Decode(SdpBody p_SdpBody) runs on IMS_PTC return SDP_Message - { - var SDP_Message v_SDP_Message; - var bitstring v_BitStr := oct2bit(char2oct(p_SdpBody)); - var integer v_Result := decvalue(v_BitStr, v_SDP_Message); - - if (v_Result != 0) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SDP message"); - } - return v_SDP_Message; - } - - /* - * @desc check that 'Connections' is included either at the top level or in the media description(s) or in both - * @param p_SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_SDP_CheckConnections(SDP_Message p_SDP_Message) runs on IMS_PTC - { - var boolean v_ConnectionFound := false; - var integer i; - - if (ispresent(p_SDP_Message.connection)) { - v_ConnectionFound := true; - } - - if (not v_ConnectionFound) { - // no connection specified in session description => there shall be at least one connection per media description - v_ConnectionFound := true; - for (i := 0; i < lengthof(p_SDP_Message.media_list); i := i + 1) { - if (not ispresent(p_SDP_Message.media_list[i].connections)) { // @sic R5s130586 change 12 sic@ - v_ConnectionFound := false; - break; - } - } - } - - if (not v_ConnectionFound) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "'Connections found neither in session description nor in media description"); - } - } - - /* - * @desc Wrapper function to decode and match SDP message - * @param p_SdpBody - * @param p_SDP_Message_Template - * @param p_CheckConnections (default value: true) - * @return SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_SIP_DecodeMatchAndCheckSDP(template (omit) SdpBody p_SdpBody, - template SDP_Message p_SDP_Message_Template, - boolean p_CheckConnections := true) runs on IMS_PTC return SDP_Message - { - var SDP_Message v_SDP_Message; - - if (not ispresent(p_SdpBody)) { /* there is no SDP message */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sdpMessageBody"); - } - else { /* => MessageBody is present and contains an SDP message */ - v_SDP_Message := fl_IMS_SDP_Message_Decode(valueof(p_SdpBody)); - if (not match(v_SDP_Message, p_SDP_Message_Template)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "received sdpMessageBody does not match"); - } - if (p_CheckConnections) { // check at least one connections field is sent - f_IMS_SDP_CheckConnections(v_SDP_Message); - } - } - return v_SDP_Message; - } - - /* - * @desc wrapper function to decode and match optional SDP message - * @param p_MessageBody - * @param p_SDP_Message_Template - * @param p_CheckConnections (default value: true) - * @return template (omit) SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(template (omit) MessageBody p_MessageBody, - template SDP_Message p_SDP_Message_Template, - boolean p_CheckConnections := true) runs on IMS_PTC return template (omit) SDP_Message - { - var template (omit) SdpBody v_SdpBody := omit; - var SDP_Message v_SDP_Message; - - if (ischosen(p_MessageBody.sdpMessageBody)) { /* there is an SDP message */ - v_SdpBody := p_MessageBody.sdpMessageBody; - } - if (not ispresent(v_SdpBody) and not ispresent(p_SDP_Message_Template)) { /* NOTE: - not ispresent(p_SDP_Message_Template) does not mean that p_SDP_Message_Template is omit - but p_SDP_Message_Template can be e.g. "cr_SomeSDP ifpresent" - nevertheless when we have "not ispresent(p_SDP_Message_Template)" the SDP message may be omitted */ - return omit; - } else { - v_SDP_Message := f_IMS_SIP_DecodeMatchAndCheckSDP(v_SdpBody, p_SDP_Message_Template, p_CheckConnections); - return v_SDP_Message; - } - } - - /* - * @desc wrapper function to decode and match SDP message - * @param p_MessageBody - * @param p_SDP_Message_Template - * @param p_CheckConnections (default value: true) - * @return SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(template (omit) MessageBody p_MessageBody, - template (present) SDP_Message p_SDP_Message_Template, - boolean p_CheckConnections := true) runs on IMS_PTC return SDP_Message - { - var template (omit) SDP_Message v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(p_MessageBody, p_SDP_Message_Template, p_CheckConnections); - return valueof(v_SDP_Message); - } - - //============================================================================ - // Common functions - //---------------------------------------------------------------------------- - /* - * @desc build SDP message to be sent as response to an offer e.g. at the end of C.21 or C.8 - * the function does - * "IP address on "o=" and "c=" lines and transport port on "m=" lines changed to indicate to which IP address and port the UE should send the media" - * but does not change any media attributes - * @param p_SDP_Message_PrevOffer - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_CommonResponseToOfferTX(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message - { - var integer i; - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var IntegerList_Type v_IMS_MediaPortList := {tsc_IMS_MediaPort_M1, tsc_IMS_MediaPort_M2, tsc_IMS_MediaPort_M3}; - var template (value) SDP_Message v_SDP_Message := p_SDP_Message_PrevOffer; - var template (value) SDP_media_desc_list v_Media_Desc_List := p_SDP_Message_PrevOffer.media_list; - var template (value) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrOrigin); - var template (value) SDP_media_desc v_SDP_Media_Desc; - - v_SDP_Message.origin.addr_type := v_AddrType; // IP address on "o=" line - v_SDP_Message.origin.addr := v_IPAddrOrigin; // IP address on "o=" line - v_SDP_Message.connection := v_SDP_Connection; // IP address on "c=" line - - for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { - v_SDP_Media_Desc := v_Media_Desc_List[i]; - v_SDP_Media_Desc.media_field.ports.port_number := v_IMS_MediaPortList[i]; - v_SDP_Media_Desc.connections := { v_SDP_Connection }; // IP address on "c=" line - v_Media_Desc_List[i] := v_SDP_Media_Desc; - } - v_SDP_Message.media_list := v_Media_Desc_List; - return v_SDP_Message; - } - - - /* - * @desc exchange attribute in all media streams of the given media list - * @param p_Media_Desc_List - * @param p_AttributeToBeChanged - * @param p_NewAttribute - * @return template (omit) SDP_media_desc_list - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_SDP_MediaList_ExchangeAttribute(template (omit) SDP_media_desc_list p_Media_Desc_List, - template (present) SDP_attribute p_AttributeToBeChanged, - template (value) SDP_attribute p_NewAttribute) return template (omit) SDP_media_desc_list - { - var template (omit) SDP_media_desc_list v_Media_Desc_List := p_Media_Desc_List; - var integer i; - - if (ispresent(p_Media_Desc_List)) { - for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { - v_Media_Desc_List[i].attributes := f_SDP_ExchangeAttribute(v_Media_Desc_List[i].attributes, p_AttributeToBeChanged, p_NewAttribute); - } - } - return v_Media_Desc_List; - } - - //============================================================================ - // Annex C8 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc remove direction attributes from the attribute list - * @param p_AttributeList - * @return template SDP_attribute_list - * @status APPROVED (IMS) - */ - function fl_IMS_BuildSDP_AnnexC8_Step1_Attributes(template (omit) SDP_attribute_list p_AttributeList) return template SDP_attribute_list - { /* remove direction attributes from the attribute list but change template of attribute list to superset - => there can be any direction attribute in the first place => direction attribute to be checked later on */ - var integer i; - var integer k := 0; - var SDP_attribute v_SDP_attribute; - var SDP_attribute_list v_AttributeList; - var template SDP_attribute_list v_NewAttributeList := omit; - - if (isvalue(p_AttributeList)) { - v_AttributeList := valueof(p_AttributeList); - - for (i:=0; i < lengthof(v_AttributeList); i:=i+1) { - v_SDP_attribute := v_AttributeList[i]; - if (not match(v_SDP_attribute, cr_SDP_Attribute_AnySendRecvMode)) { - if (match(v_SDP_attribute, cr_SDP_Attribute_curr_qos(c_remote, ?))) { /* @sic R5-144753: The direction-tag for the current-status remote segment shall be "sendrecv" sic@ */ - v_SDP_attribute := valueof(cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv)); - } - v_NewAttributeList[k] := v_SDP_attribute; - k := k+1; - } - } - } - if (ispresent(v_NewAttributeList)) { - v_NewAttributeList := superset(all from v_NewAttributeList); - } - return v_NewAttributeList; - } - - /* - * @desc build up bandwidth information for C.8 - * @param p_BandwidthList - * @return template SDP_bandwidth_list - * @status APPROVED (IMS) - */ - function fl_IMS_BuildSDP_AnnexC8_Step1_Bandwidth(template (omit) SDP_bandwidth_list p_BandwidthList) return template SDP_bandwidth_list - { /* to allow any value for "RR" and "RS" bandwith */ - var integer i; - var SDP_bandwidth_list v_BandwidthList; - var charstring v_Modifier; - var template (present) integer v_Bandwidth; - var template SDP_bandwidth_list v_NewBandwidthList := omit; - - if (isvalue(p_BandwidthList)) { - v_BandwidthList := valueof(p_BandwidthList); - for (i:=0; i < lengthof(v_BandwidthList); i:=i+1) { - v_Modifier := v_BandwidthList[i].modifier; - v_Bandwidth := v_BandwidthList[i].bandwidth; - if (match(v_Modifier, ("RR", "RS"))) { - v_Bandwidth := ?; - } - v_NewBandwidthList[i] := cr_SDP_Bandwidth(v_Modifier, v_Bandwidth); - } - } - return v_NewBandwidthList; - } - - /* - * @desc Acc. to 34.229-1 C.8 the UE shall include the same lines in the SDP body as in its previous offer except - * SDP version number, "b=" lines for "RS" and "RR" modifiers and the direction attributes - * @param p_SDP_Message_PrevOffer - * @return template (present) SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_BuildSDP_AnnexC8_Step1(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (present) SDP_Message - { - var template (present) SDP_Message v_SDP_Message := p_SDP_Message_PrevOffer; - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var SDP_media_desc v_MediaDesc; - var SDP_media_field v_MediaField; - var integer i; - - v_SDP_Message.origin.session_version := ?; - v_SDP_Message.bandwidth := fl_IMS_BuildSDP_AnnexC8_Step1_Bandwidth(p_SDP_Message_PrevOffer.bandwidth); - v_SDP_Message.attributes := fl_IMS_BuildSDP_AnnexC8_Step1_Attributes(p_SDP_Message_PrevOffer.attributes); - - for (i:=0; i < lengthof(p_SDP_Message_PrevOffer.media_list); i:=i+1) { - v_MediaDesc := p_SDP_Message_PrevOffer.media_list[i]; - v_MediaField := v_MediaDesc.media_field; - v_SDP_Message.media_list[i] := cr_SDP_Media_Desc(cr_SDP_Media(v_MediaField.media, v_MediaField.ports.port_number, v_MediaField.transport, cr_SDP_FmtList_AtLeastOne(cr_SDP_AnyMediaFormatDescr)), - cr_SDP_Connection(v_AddrType, ?), - fl_IMS_BuildSDP_AnnexC8_Step1_Bandwidth(v_MediaDesc.bandwidth), - fl_IMS_BuildSDP_AnnexC8_Step1_Attributes(v_MediaDesc.attributes)); - } - return v_SDP_Message; - } - - /* - * @desc build up SDP message for step 3 of C.8 - * @param p_HoldResume - * @param p_SDP_Message_PrevOffer - * @return template (value) SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_BuildSDP_AnnexC8_Step3(IMS_CallHoldResume_Type p_HoldResume, - SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message - { - var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); - - if (p_HoldResume == HOLD) { - // invert "sendonly" to "recvonly" in the session attributes (if the UE uses session attribute to hold the call) - v_SDP_Message.attributes := f_SDP_ExchangeAttribute(v_SDP_Message.attributes, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change session attributes - v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change media lines - } - return v_SDP_Message; - } - - - //============================================================================ - // Annex C11 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.11 - * @param p_Step - * @param p_SDP_Attribute_curr_qos_remote (default value: cs_SDP_Attribute_curr_qos(c_remote)) - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC11_Step1or7(charstring p_Step, - template (value) SDP_attribute p_SDP_Attribute_curr_qos_remote := cs_SDP_Attribute_curr_qos(c_remote)) - runs on IMS_PTC return template (value) SDP_Message - { - var boolean v_IsStep7 := (p_Step == "step 7"); - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var charstring v_FmtAudio := tsc_SDP_FmtAudio; - var charstring v_SessionVersion := tsc_SDP_SessionVersion1; - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (omit) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime - }; - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_sendrecv, v_IsStep7); - // precondition attributes: - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_curr_qos(c_local), not v_IsStep7); // @sic R5s130510 change 4 sic@ - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), v_IsStep7); // @sic R5s130510 change 4, R5s130685 change 3 sic@ - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, p_SDP_Attribute_curr_qos_remote); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_des_qos(c_mandatory, c_local)); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, cs_SDP_Attribute_des_qos(c_optional, c_remote)); - - if (v_IsStep7) {v_SessionVersion := tsc_SDP_SessionVersion2; } - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - cs_SDP_Bandwidth_List_Media(37, 0, 2500), // @sic R5-130751; R5-134270: RR=2500; R5-144700: AS=37 sic@ - v_SDP_Attribute_List); - return cs_SDP_Message_Def(cs_SDP_Origin(-, v_SessionVersion, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrOrigin), -, -, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 - * @param p_Step - * @return template (present) SDP_Message - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC11_Step4or8(charstring p_Step) runs on IMS_PTC return template (present) SDP_Message - { /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List; - - select (p_Step) { - case ("step 4") { - v_SDP_Attribute_List := { - cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr), - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, (c_none, c_sendrecv)), // @sic R5s120530 change 3.15 sic@ - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - cr_SDP_Attribute_conf_qos(), // @sic R5s140204 sic@ - * - }; - } - case ("step 8") { - v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr), - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_mandatory, c_remote), - * - }; - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(cr_SDP_AnyMediaFormatDescr), // @sic R5s130985 change 1 sic@ - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //============================================================================ - // Annex C21 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc return template for SDP message at step 2 according to 34.229-1 Annex C.21 - * @param p_RtcpDuringVoiceSession (default value: pc_IMS_RtcpDuringVoiceSession) - * @return template (present) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step2(boolean p_RtcpDuringVoiceSession := pc_IMS_RtcpDuringVoiceSession) runs on IMS_PTC return template (present) SDP_Message - { /* @sic R5-135020, R5-135021: new PICS pc_IMS_RtcpDuringVoiceSession sic@ */ - /* @sic R5w140113, R5w140009: new SDP type definitions */ - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) integer v_BandwidthRS := 0; - var template (present) integer v_BandwidthRR := 0; - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), /* @sic R5w140113, R5w140009: cr_AMR_Fmtp_DefaultParameters replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ */ - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), // @sic R5s130333 change 14.2 - pattern needs to include a rate; R5s130798 change 5 - MCC160 Comment: rate is optional sic@ - cr_SDP_Attribute_ptime, - cr_SDP_Attribute_maxptime, - cr_SDP_Attribute_inactive, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local), - cr_SDP_Attribute_curr_qos(c_remote), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos(c_optional, c_remote), - * - }; - - if (p_RtcpDuringVoiceSession) { /* @sic R5-135020 sic@ */ - v_BandwidthRS := ?; - v_BandwidthRR := (1..infinity); - } - - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, v_BandwidthRS, v_BandwidthRR), - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc return template for SDP message at step 4 according to 34.229-1 Annex C.21 - * @param p_SDP_MessageInvite - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step4(SDP_Message p_SDP_MessageInvite) runs on IMS_PTC return template (value) SDP_Message - { /* @sic R5-135020: parameter p_SDP_MessageInvite to get RR and RS values sic@ */ - /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ - var integer i; - var template (omit) SDP_attribute v_Attribute; - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); /* "connection-address for SS": address of the simulated remote UE */ - var charstring v_IPAddrOrigin := v_IPAddrConnection; /* @sic R5-144402: "unicast-address for SS" sic@ */ - var SDP_media_desc v_SDP_Media_Invite := p_SDP_MessageInvite.media_list[0]; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Invite); - var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RS"); - var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RR"); - var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); // @sic R5-123505, R5-135020; R5-144700: AS=37 sic@ - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (omit) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local), - cs_SDP_Attribute_curr_qos(c_remote), - cs_SDP_Attribute_des_qos(c_mandatory, c_local), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote), - cs_SDP_Attribute_conf_qos // @sic R5s120530 change 3.5 sic@ - }; - // additional attributes to be added (using f_SDP_Attributes_Add_TX): - // a=ecn-capable-rtp: leap; ect=0 [Note 3] - // a=rtcp-fb:* nack ecn [Note 3] - // a=rtcp-xr:ecn-sum [Note 3] - // a=3ge2ae: requested [Note 1] - // a=crypto:1 AES_CM_128_HMAC_SHA1_80inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4 [Note 4] - var template (value) SDP_attribute_list v_AdditionalOptionalAttributes := { /* @sic R5s140359 - Additional Changes sic@ */ - cs_SDP_Attribute_ecn_capable_rtp("leap", "ect=0"), - cs_SDP_Attribute_rtcp_fb("*", "nack ecn"), - cs_SDP_Attribute_rtcp_xr("ecn-sum"), - cs_SDP_Attribute_3ge2ae("requested"), - cs_SDP_Attribute_crypto("1", "AES_CM_128_HMAC_SHA1_80", "inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4") - }; - for (i := 0; i < lengthof(v_AdditionalOptionalAttributes); i := i + 1) { - v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_MessageInvite.attributes, v_AdditionalOptionalAttributes[i]); - v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, v_Attribute); - } - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - v_Bandwidth_List_Media, - v_SDP_Attribute_List); - return cs_SDP_Message_Def(cs_SDP_Origin(-, -, v_AddrType, v_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, -, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ - } - - //---------------------------------------------------------------------------- - /* - * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 - * @param p_Fmt - * @return template (present) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step5or7(charstring p_Fmt) runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(p_Fmt, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ - cr_SDP_Attribute_fmtp(p_Fmt), /* @sic R5s130497 change 2: format parameters added; R5s130586 change 4: format parameters changed back to any parameters sic@ */ - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_none), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos((c_optional, c_mandatory), c_remote), /* @sic R5-142951: (c_optional, c_mandatory) instead of c_optional sic@ */ - * - }; - - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(p_Fmt), // @sic R5-123505 sic@ - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc build SDP message to be sent in step 6 or 8 of 34.229-1 Annex C.21 - * @param p_SDP_Message_PrevOffer - * @return template (value) SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_BuildSDP_AnnexC21_Step6or8(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message - { - var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); - - v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, - cs_SDP_Attribute_curr_qos(c_remote, c_none), // value sent by the UE in step 5/7 - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv)); // ... to be replaced - return v_SDP_Message; - } - - //============================================================================ - // Annex C22 - SDP Messages - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be received from the UE at step 1 according to 34.229-1 Annex C.22 - * @return template (present) SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC22_Step1() runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template SDP_bandwidth_list v_Bandwidth := *; - var template SDP_attribute_list v_SDP_Attribute_List := *; //acc. to annex C.22 there shall be at least one AMR codec ("AMR/*" of "AMR-WB/*"); - // this will be checked later-on when the fmt value for the AMR codec is extracted (-> f_IMS_EmergencyCallSetup_AnnexC22, f_SDP_MediaDescr_GetAMR_Any) - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrOrigin), - cr_SDP_Bandwidth_List_AS, - v_SDP_Attribute_List); - return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, -, v_Bandwidth, cr_SDP_Time_Any, { v_SDP_Media_Desc }); /* @sic R5s130495 change 21 sic@ */ - } - - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.22 - * NOTE: the "payload type" of the rtpmap attribute and the "format" of the fmtp atribute refer to the format in the media description (RFC 4566) - * => as long as there is only one media description, the fmt, payload type and format have the same value - * @param p_Fmt - * @param p_IPAddrOrigin - * @return template (value) SDP_Message - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC22_Step4(charstring p_Fmt, - charstring p_IPAddrOrigin) runs on IMS_PTC return template (value) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (value) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(p_Fmt, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(p_Fmt, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_ptime, - cs_SDP_Attribute_maxptime - }; - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(p_Fmt), - cs_SDP_Bandwidth_List_Media(37, 0, 0), /* @sic R5-144700: AS=37 sic@ */ - v_SDP_Attribute_List); - - return cs_SDP_Message_Def(cs_SDP_Origin( -, -, v_AddrType, p_IPAddrOrigin), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, -, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ - } - - - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.24 - * @return template (present) SDP_Message - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC24_Step1() runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template SDP_attribute_list v_SDP_Attribute_List := *; - var template SDP_bandwidth_list v_SDP_Bandwidth_List := *; // @sic R5s140573 change 4, R5-144686 sic@ - var integer v_PortNumber := 0; - - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(-, v_PortNumber), - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - v_SDP_Bandwidth_List, // @sic R5s140573 change 4, R5-144686 sic@ - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - - //---------------------------------------------------------------------------- - /* - * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.31 - * @return template (present) SDP_Message - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC31_Step1() runs on IMS_PTC return template (present) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - var template (present) SDP_media_desc v_SDP_Media_Desc; - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), - cr_SDP_Attribute_fmtp, - cr_SDP_Attribute_sendrecv, - // precondition attributes: none @sic R5s140263 change 4, R5-142995 sic@ - * - }; - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_AnySession(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); - } - /* - * @desc Build SDP record to be sent to the UE at step 3 according to 34.229-1 Annex C.31 - * @param p_SDP_Offer - * @return template (value) SDP_Message - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_BuildSDP_AnnexC31_Step3(SDP_Message p_SDP_Offer) runs on IMS_PTC return template (value) SDP_Message - { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); - var charstring v_RemoteIPAddr := v_IPAddrConnection; /* @sic R5-144402 sic@ */ - var SDP_media_desc v_SDP_Media_Offer := p_SDP_Offer.media_list[0]; - var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Offer); - var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RS"); - var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RR"); - var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); /* @sic R5-144700: AS=37 sic@ */ - var template (value) SDP_media_desc v_SDP_Media_Desc; - var template (value) SDP_attribute_list v_SDP_Attribute_List := { - // media attributes: - cs_SDP_Attribute_rtpmap(v_FmtAudio, cs_RTPMAP_AMR_8000), - cs_SDP_Attribute_fmtp(v_FmtAudio, cs_AMR_Fmtp_DefaultParameters), - cs_SDP_Attribute_sendrecv, - // precondition attributes: - cs_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_local, c_sendrecv), - cs_SDP_Attribute_des_qos(c_mandatory, c_remote, c_sendrecv) - }; - - v_SDP_Media_Desc := cs_SDP_Media_Desc(cs_SDP_Media_Audio(v_FmtAudio), - v_Bandwidth_List_Media, - v_SDP_Attribute_List); - return cs_SDP_Message_Def(cs_SDP_Origin(-, -, v_AddrType, v_RemoteIPAddr), cs_SDP_Connection(v_AddrType, v_IPAddrConnection), -, -, v_SDP_Media_Desc); /* @sic R5-144402: v_Sessionname removed sic@ */ - } -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn deleted file mode 100644 index 0293300..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/NoTargetNamespace.ttcn +++ /dev/null @@ -1,31 +0,0 @@ -module NoTargetNamespace -{ - import from XSD all; - - type TIMS3GPP Ims_3gpp; - type XSD.String Type; - type XSD.String Action; - type record TIMS3GPP - { - XSD.Decimal version, - record length ( 1 .. infinity ) of XSD.String attr optional, - union - { - TAlternativeService alternative_service, - XSD.String service_info - } choice, - record of XSD.String elem_list - } - type record TAlternativeService - { - record length ( 1 .. infinity ) of XSD.String attr optional, - Type type_, - XSD.String reason, - record of XSD.String elem_list - } -} -with -{ - encode "XML"; - variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'" -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn deleted file mode 100644 index 0bba1ad..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/UsefulTtcn3Types.ttcn +++ /dev/null @@ -1,70 +0,0 @@ -module UsefulTtcn3Types { -// @sic R5s120890 sic@ - - type integer byte (-128 .. 127); - - type integer unsignedbyte (0 .. 255); - - type integer short (-32768 .. 32767); - - type integer unsignedshort (0 .. 65535); - - type integer long (-2147483648 .. 2147483647); - - type integer unsignedlong (0 .. 4294967295); - - type integer longlong; - - type integer unsignedlonglong; - - type float IEEE754float; - - type float IEEE754double; - - type float IEEE754extfloat; - - type float IEEE754extdouble; - - type charstring bmpstring; - - type charstring utf16string ; - - type charstring iso8859string; - - type record IDLfixed - { - unsignedshort digits, - short scale, - charstring value_ - }; - - /* - type charstring char length (1); - - NOTE 1: The name of this useful type is the same as the TTCN-3 keyword used to denote - charstring values in the quadraple form. In general it is disallowed to use TTCN-3 keywords as - identifiers. The "char" useful type is a solitary exception and allowed only for backward compatibility - with previous versions of the TTCN-3 standard. (except Titan doesn't) - - NOTE 2: The special string "8 bit" defined in clause 28.2.3 may be used with this type to specify a given encoding - for its values. Also, other properties of the base type can be changed by using attribute mechanisms. - */ - - type charstring uchar length (1); - - /* - NOTE: Special strings defined in clause 28.2.3 except "8 bit" may be used with this type to specify a given - encoding for its values. Also, other properties of the base type can be changed by using attribute - mechanisms. - */ - - type bitstring bit length (1); - - type hexstring hex length (1); - - type octetstring octet length (1); - -} -with { -encode "XML"; -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/XSD.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/XSD.ttcn deleted file mode 100644 index 0143e56..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/XSD.ttcn +++ /dev/null @@ -1,162 +0,0 @@ -// -// -// -module XSD { - -import from UsefulTtcn3Types all; -// @sic R5s120890 sic@ -//These constants are used in the XSD date/time type definitions -const charstring - dash := "-", - cln := ":", - year := "(0(0(0[1-9]|[1-9][0-9])|[1-9][0-9][0-9])|[1-9][0-9][0-9][0-9])", - yearExpansion := "(-([1-9][0-9]#(0,))#(,1))#(,1)", - month := "(0[1-9]|1[0-2])", - dayOfMonth := "(0[1-9]|[12][0-9]|3[01])", - hour := "([01][0-9]|2[0-3])", - minute := "([0-5][0-9])", - second := "([0-5][0-9])", - sFraction := "(.[0-9]#(1,))#(,1)", - endOfDayExt := "24:00:00(.0#(1,))#(,1)", - nums := "[0-9]#(1,)", - ZorTimeZoneExt := "(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))#(,1)", - durTime := "(T[0-9]#(1,)"& - "(H([0-9]#(1,)(M([0-9]#(1,)(S|.[0-9]#(1,)S))#(,1)|.[0-9]#(1,)S|S))#(,1)|"& - "M([0-9]#(1,)(S|.[0-9]#(1,)S)|.[0-9]#(1,)M)#(,1)|"& - "S|"& - ".[0-9]#(1,)S))"; - -//anySimpleType - -type XMLCompatibleString AnySimpleType; - -//anyType; - -type record AnyType -{ - record of String attr, - record of String elem_list -}; -// String types - -type XMLCompatibleString String; - -type XMLStringWithNoCRLFHT NormalizedString; - -type NormalizedString Token; - -type XMLStringWithNoWhitespace Name; - -type XMLStringWithNoWhitespace NMTOKEN; - -type Name NCName; - -type NCName ID; - -type NCName IDREF; - -type NCName ENTITY; - -type octetstring HexBinary; - -type octetstring Base64Binary; - -type XMLStringWithNoCRLFHT AnyURI; - -type charstring Language (pattern "[a-zA-Z]#(1,8)(-\w#(1,8))#(0,)"); -// Integer types - -type integer Integer; - -type integer PositiveInteger (1 .. infinity); - -type integer NonPositiveInteger (-infinity .. 0); - -type integer NegativeInteger (-infinity .. -1); - -type integer NonNegativeInteger (0 .. infinity); - -type longlong Long; - -type unsignedlonglong UnsignedLong; - -type long Int; - -type unsignedlong UnsignedInt; - -type short Short; - -type unsignedshort UnsignedShort; - -type byte Byte; - -type unsignedbyte UnsignedByte; - -// Float types - -type float Decimal; - -type IEEE754float Float; - -type IEEE754double Double; - -// Time types - -type charstring Duration (pattern - "{dash}#(,1)P({nums}(Y({nums}(M({nums}D{durTime}#(,1)|{durTime}#(,1))|D{durTime}#(,1))|" & - "{durTime}#(,1))|M({nums}D{durTime}#(,1)|{durTime}#(,1))|D{durTime}#(,1))|{durTime})"); - -type charstring DateTime (pattern - "{yearExpansion}{year}{dash}{month}{dash}{dayOfMonth}T({hour}{cln}{minute}{cln}{second}" & - "{sFraction}|{endOfDayExt}){ZorTimeZoneExt}" ); - -type charstring Time (pattern - "({hour}{cln}{minute}{cln}{second}{sFraction}|{endOfDayExt}){ZorTimeZoneExt}" ); - -type charstring Date (pattern - "{yearExpansion}{year}{dash}{month}{dash}{dayOfMonth}{ZorTimeZoneExt}" ); - -type charstring GYearMonth (pattern - "{yearExpansion}{year}{dash}{month}{ZorTimeZoneExt}" ); - -type charstring GYear (pattern - "{yearExpansion}{year}{ZorTimeZoneExt}" ); - -type charstring GMonthDay (pattern - "{dash}{dash}{month}{dash}{dayOfMonth}{ZorTimeZoneExt}" ); - -type charstring GDay (pattern - "{dash}{dash}{dash}{dayOfMonth}{ZorTimeZoneExt}" ); - -type charstring GMonth (pattern - "{dash}{dash}{month}{ZorTimeZoneExt}" ); - -// Sequence types - -type record of NMTOKEN NMTOKENS; - -type record of IDREF IDREFS; - -type record of ENTITY ENTITIES; - -type record QName -{ - AnyURI uri optional, - NCName name -}; - -// Boolean type - -type boolean Boolean; - -//TTCN-3 type definitions supporting the mapping of W3C XML Schema built-in datatypes - -type charstring XMLCompatibleString; - -type charstring XMLStringWithNoWhitespace; -type charstring XMLStringWithNoCRLFHT; - -} -with{ -encode "XML" -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn deleted file mode 100644 index 712d81c..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_conference_info.ttcn +++ /dev/null @@ -1,228 +0,0 @@ -module urn_ietf_params_xml_ns_conference_info -{ - import from XSD all; - type Conference_type Conference_info; - - type record Conference_type - { - XSD.AnyURI entity, - State_type state optional, - XSD.UnsignedInt version optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - Conference_description_type conference_description optional, - Host_type host_info optional, - Conference_state_type conference_state optional, - Users_type users optional, - Uris_type sidebars_by_ref optional, - Sidebars_by_val_type sidebars_by_val optional, - record of XSD.String elem_list - } - - type enumerated State_type - { - deleted, - full, - partial - } - - type record Conference_description_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String subject optional, - XSD.String free_text optional, - Keywords_type keywords optional, - Uris_type conf_uris optional, - Uris_type service_uris optional, - XSD.UnsignedInt maximum_user_count optional, - Conference_media_type available_media optional, - record of XSD.String elem_list - } - - type record Host_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.AnyURI web_page optional, - Uris_type uris optional, - record of XSD.String elem_list - } - - type record Conference_state_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.UnsignedInt user_count optional, - XSD.Boolean active optional, - XSD.Boolean locked optional, - record of XSD.String elem_list - } - - type record Conference_media_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - record length (1 .. infinity) of Conference_medium_type entry_list - } - - type record Conference_medium_type - { - XSD.String label_, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String type_, - Media_status_type status optional, - record of XSD.String elem_list - } - - type record Uris_type - { - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - record length (1 .. infinity) of Uri_type entry_list - } - - type record Uri_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.AnyURI uri, - XSD.String display_text optional, - XSD.String purpose optional, - Execution_type modified optional, - record of XSD.String elem_list - } - - type record of XSD.String Keywords_type; - - type record Users_type - { - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - record of User_type user_list, - record of XSD.String elem_list - } - - type record User_type - { - XSD.AnyURI entity optional, - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - Uris_type associated_aors optional, - User_roles_type roles optional, - User_languages_type languages optional, - XSD.AnyURI cascaded_focus optional, - record of Endpoint_type endpoint_list, - record of XSD.String elem_list - } - - type record User_roles_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - record length (1 .. infinity) of XSD.String entry_list - } - - type record of XSD.Language User_languages_type; - - type record Endpoint_type - { - XSD.String entity optional, - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - Execution_type referred optional, - Endpoint_status_type status optional, - Joining_type joining_method optional, - Execution_type joining_info optional, - Disconnection_type disconnection_method optional, - Execution_type disconnection_info optional, - record of Media_type media_list, - Call_type call_info optional, - record of XSD.String elem_list - } - - type enumerated Endpoint_status_type - { - alerting, - connected, - dialing_in, - dialing_out, - disconnected, - disconnecting, - muted_via_focus, - on_hold, - pending - } - - type enumerated Joining_type - { - dialed_in, - dialed_out, - focus_owner - } - - type enumerated Disconnection_type - { - booted, - busy, - departed, - failed - } - - type record Execution_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.DateTime when optional, - XSD.String reason optional, - XSD.AnyURI by optional - } - - type record Call_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - union - { - Sip_dialog_id_type sip, - record of XSD.String elem_list - } choice - } - - type record Sip_dialog_id_type - { - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String call_id, - XSD.String from_tag, - XSD.String to_tag, - record of XSD.String elem_list - } - - type record Media_type - { - XSD.String id, - record length ( 1 .. infinity ) of XSD.String attr optional, - XSD.String display_text optional, - XSD.String type_ optional, - XSD.String label_ optional, - XSD.String src_id optional, - Media_status_type status optional, - record of XSD.String elem_list - } - - type enumerated Media_status_type - { - inactive, - recvonly, - sendonly, - sendrecv - } - - type record Sidebars_by_val_type - { - State_type state optional, - record length ( 1 .. infinity ) of XSD.String attr optional, - record of Conference_type entry_list - } -} -with -{ - encode "XML"; -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn deleted file mode 100644 index 775fa89..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_gruuinfo.ttcn +++ /dev/null @@ -1,26 +0,0 @@ -module urn_ietf_params_xml_ns_gruuinfo { - - -import from XSD all; - - -type record PubGruu -{ - XSD.AnyURI uri -}; - - -type record TempGruu -{ - XSD.UnsignedLong first_cseq, - XSD.AnyURI uri -}; - - -type PubGruu Pub_gruu; - - -type TempGruu Temp_gruu; - - -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn deleted file mode 100644 index ea015b4..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf.ttcn +++ /dev/null @@ -1,62 +0,0 @@ -module urn_ietf_params_xml_ns_pidf -{ - import from XSD all; - type Presence_1 Presence; - - type XSD.Boolean MustUnderstand; - - type record Presence_1 - { - XSD.AnyURI entity, - record of Tuple tuple_list, - record of XSD.String note_list, - record of XSD.String elem_list - }; - - type record Tuple - { - XSD.ID id, - Status status, - record of XSD.String elem_list, - Contact contact optional, - record of XSD.String note_list, - XSD.DateTime timestamp optional - }; - - type record Status - { - Basic basic optional, - record of XSD.String elem_list - }; - - type enumerated Basic - { - closed, - open - }; - - type record Contact - { - Qvalue priority optional, - XSD.AnyURI base - }; - - type record Note - { - union - { - XSD.Language language_, - enumerated - { - x - } alt_ - } lang optional, - XSD.String base - }; - - type XSD.Decimal Qvalue; -} -with -{ - encode "XML"; -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn deleted file mode 100644 index 404cbfc..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn +++ /dev/null @@ -1,45 +0,0 @@ -module urn_ietf_params_xml_ns_pidf_geopriv10 -{ - import from XSD all; - import from urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy all; -// import from urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy language "XSD" all; - // import from http_www_w3_org_XML_1998_namespace language "XSD" all; - type Geopriv_1 Geopriv; - - type record Geopriv_1 - { - LocInfoType location_info, - urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.LocPolicyType usage_rules, - XSD.String method optional, - LocProvidedBy provided_by optional, - record of XSD.String elem_list - }; - - type record LocInfoType - { - record of XSD.String elem_list - }; - - type record LocMethod - { - union - { - XSD.Language language_, - enumerated - { - x - } alt_ - } lang optional, - XSD.String base - }; - - type record LocProvidedBy - { - record length (1 .. infinity) of XSD.String elem_list - }; - -} -with -{ - encode "XML"; -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn deleted file mode 100644 index 9d18fa5..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn +++ /dev/null @@ -1,31 +0,0 @@ -module urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy -{ - import from XSD all; - // import from http_www_w3_org_XML_1998_namespace language "XSD" all; - type record LocPolicyType - { - XSD.Boolean retransmission_allowed optional, - XSD.DateTime retention_expiry optional, - XSD.AnyURI external_ruleset optional, - XSD.String note_well optional, - record of XSD.String elem_list - }; - - type record Notewell - { - union - { - XSD.Language language_, - enumerated - { - x - } alt_ - } lang optional, - XSD.String base - }; - -} -with -{ - encode "XML"; -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn deleted file mode 100644 index d7bb8b3..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc.ttcn +++ /dev/null @@ -1,30 +0,0 @@ -module urn_ietf_params_xml_ns_pidf_geopriv10_civicLoc -{ - import from XSD all; - type record CivicAddress - { - XSD.String country optional, - XSD.String a1 optional, - XSD.String a2 optional, - XSD.String a3 optional, - XSD.String a4 optional, - XSD.String a5 optional, - XSD.String a6 optional, - XSD.String pRD optional, - XSD.String pOD optional, - XSD.String sTS optional, - XSD.String hNO optional, - XSD.String hNS optional, - XSD.String lMK optional, - XSD.String lOC optional, - XSD.String fLR optional, - XSD.String nAM optional, - XSD.String pC optional, - record of XSD.String elem_list - }; - -} -with -{ - encode "XML"; -} diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn b/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn deleted file mode 100644 index b562210..0000000 --- a/LTE_A_IWD_14wk37/Common/IMS_XSD/urn_ietf_params_xml_ns_reginfo.ttcn +++ /dev/null @@ -1,74 +0,0 @@ -module urn_ietf_params_xml_ns_reginfo -{ - import from XSD all; - type record Reginfo - { - enumerated - { - full, - partial - } state, - XSD.NonNegativeInteger version, - record of Registration registration_list, - record of XSD.String elem_list - }; - - type record Registration - { - XSD.AnyURI aor, - XSD.String id, - enumerated - { - active, - init, - terminated - } state, - record of Contact contact_list, - record of XSD.String elem_list - }; - - type record Contact - { - XSD.String callid optional, - XSD.UnsignedLong cseq optional, - XSD.UnsignedLong duration_registered optional, - enumerated - { - created, - deactivated, - expired, - probation, - refreshed, - registered, - rejected, - shortened, - unregistered - } event, - XSD.UnsignedLong expires optional, - XSD.String id, - XSD.String q optional, - XSD.UnsignedLong retry_after optional, - enumerated - { - active, - terminated - } state, - XSD.AnyURI uri, - record - { - XSD.String base - } display_name optional, - record of record - { - XSD.String name, - XSD.String base - } unknown_param_list, - record of XSD.String elem_list - }; - - } -with -{ - encode "XML"; -} - diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn b/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn deleted file mode 100644 index 932d9e8..0000000 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-08 21:06:38 +0200 (Sun, 08 Jun 2014) $ -// $Rev: 11667 $ -/******************************************************************************/ - -module IP_PTC_HTTP_Handler { - import from CommonDefs all; - import from IP_ASP_Common all; - import from IP_ASP_TypeDefs all; - import from IP_PTC_Templates all; - import from IP_PTC_Component all; - import from TCP_Functions all; - import from HTTP_ASP_TypeDefs all; - - //---------------------------------------------------------------------------- - // templates for HTTP_ASP_TypeDefs - - template (present) HTTP_CTRL_REQ cr_HttpCtlReq := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - template (present) HTTP_DATA_REQ cr_DataReq := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - - template (value) HTTP_CTRL_CNF cs_HTTP_CTRL_CNF(template (omit) charstring p_ErrorInfo := omit) := { errorInfo := p_ErrorInfo }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - - - template (value) HTTP_DATA_IND cs_HTTP_DATA_IND(charstring p_ServerAddr, - integer p_ServerPort, - HttpRequest_Type p_HttpRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - routingInfo := cs_HttpRoutingInfo(p_ServerAddr, p_ServerPort), - httpRequest := p_HttpRequest - }; - - //---------------------------------------------------------------------------- - // local type definitions: - - type record HttpServer_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - IP_AddrInfo_Type ServerAddr, - PortNumber_Type PortNumber, - IP_Connection_Type Connection optional - }; - - type record HttpInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - HttpAuthenticationMechanism_Type HttpAuthenticationMechanism, - HttpServer_Type XcapServer optional - //HttpServer_Type BsfServer optional - }; - - - template (value) HttpServer_Type cs_HttpServer_Init(template (value) IP_AddrInfo_Type p_ServerAddr, - template (value) PortNumber_Type p_PortNumber) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - ServerAddr := p_ServerAddr, - PortNumber := p_PortNumber, - Connection := omit - }; - - template (value) HttpInfo_Type cs_HttpInfo_Init(HttpAuthenticationMechanism_Type p_HttpAuthenticationMechanism := noAuthentication, - template (omit) HttpServer_Type p_XcapServer := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - HttpAuthenticationMechanism := p_HttpAuthenticationMechanism, - XcapServer := p_XcapServer - //BsfServer := omit - }; - - /* - * @desc return TCP connection to the given server if nay - * @param p_HttpServer - * @return template (omit) IP_Connection_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) - */ - function fl_HttpServer_Connection(template (omit) HttpServer_Type p_HttpServer) return template (omit) IP_Connection_Type - { - if (ispresent(p_HttpServer)) { - return p_HttpServer.Connection - } - return omit; - } - - //---------------------------------------------------------------------------- - /* - * @desc handling of HTTP data at IP PTC - * @param p_HttpInfo (by reference) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) - */ - altstep a_IP_HTTP_Handler(inout HttpInfo_Type p_HttpInfo) runs on IP_PTC - { - var HTTP_CTRL_REQ v_HTTP_CTRL_REQ; - var HTTP_DATA_REQ v_HTTP_DATA_REQ; - var IP_SOCKET_IND v_IP_SOCKET_IND; - var template (value) IP_AddrInfo_Type v_ServerAddr; - var PortNumber_Type v_PortNumber; - var template (omit) IP_Connection_Type v_XcapConnectionByRef := fl_HttpServer_Connection(p_HttpInfo.XcapServer); - var HttpRequest_Type v_HttpRequest; - var HttpResponse_Type v_HttpResponse; - var TCP_Data_Type v_Data; - var bitstring v_Bitstring; - - var boolean v_XcapServerIsStarted := ispresent(p_HttpInfo.XcapServer); - var boolean v_XcapServerIsConnected := ispresent(p_HttpInfo.XcapServer.Connection); - - [] HTTPCTRL.receive(cr_HttpCtlReq) -> value v_HTTP_CTRL_REQ - { - if (isvalue(v_HTTP_CTRL_REQ.authenticationMechanism)) { - p_HttpInfo.HttpAuthenticationMechanism := valueof(v_HTTP_CTRL_REQ.authenticationMechanism); - } - if (ispresent(v_HTTP_CTRL_REQ.xcapServer)) { - if (v_XcapServerIsStarted) { - f_TcpServer_CloseConnection(p_HttpInfo.XcapServer.Connection); // close IP connection (if any) - f_TcpServer_Stop(p_HttpInfo.XcapServer.ServerAddr, p_HttpInfo.XcapServer.PortNumber); // stop HTTP server - } - select (p_HttpInfo.HttpAuthenticationMechanism) { - case (noAuthentication, httpDigestAuthentication) { - v_ServerAddr := f_Char2IpAddress(v_HTTP_CTRL_REQ.xcapServer.serverAddr); - v_PortNumber := v_HTTP_CTRL_REQ.xcapServer.serverPort; - p_HttpInfo.XcapServer := valueof(cs_HttpServer_Init(v_ServerAddr, v_PortNumber)); - f_TcpServer_Start(v_ServerAddr, v_PortNumber, v_HTTP_CTRL_REQ.drbInfo, http, v_HTTP_CTRL_REQ.tlsInfo); - } - case (gaaAuthentication) { - FatalError(__FILE__, __LINE__, "gaaAuthentication is not supported by IP PTC (yet)"); - } - case else { - FatalError(__FILE__, __LINE__, "invalid HttpAuthenticationMechanism_Type"); - } - } - } - if (ispresent(v_HTTP_CTRL_REQ.bsfServer)) { - // FFS - } - HTTPCTRL.send(cs_HTTP_CTRL_CNF); - } - [v_XcapServerIsStarted] a_TcpServer_AcceptConnection(v_XcapConnectionByRef, p_HttpInfo.XcapServer.ServerAddr, p_HttpInfo.XcapServer.PortNumber) - { - p_HttpInfo.XcapServer.Connection := valueof(v_XcapConnectionByRef); // a_TcpServer_AcceptConnection 'returns' a valid connection i.e. v_ServerConnectionByRef will never be omit - } - [v_XcapServerIsConnected] a_TcpServer_CloseConnection(p_HttpInfo.XcapServer.Connection) - { - p_HttpInfo.XcapServer.Connection := omit; - } - [v_XcapServerIsConnected] HTTPDATA.receive(cr_DataReq) -> value v_HTTP_DATA_REQ - { - v_HttpResponse := v_HTTP_DATA_REQ.httpResponse; - v_Bitstring := encvalue(v_HttpResponse); - v_Data := bit2oct(v_Bitstring); - IP_SOCK.send(cs_TCP_DATA_REQ(p_HttpInfo.XcapServer.Connection, v_Data)); - } - [v_XcapServerIsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(p_HttpInfo.XcapServer.Connection)) -> value v_IP_SOCKET_IND - { - v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; - v_Bitstring := oct2bit(v_Data); - if (decvalue(v_Bitstring, v_HttpRequest) != 0) { - FatalError(__FILE__, __LINE__, "HTTP Request cannot be decoded"); - } else { - HTTPDATA.send(cs_HTTP_DATA_IND(f_IP_AddrInfo_AddrStr(p_HttpInfo.XcapServer.ServerAddr), p_HttpInfo.XcapServer.PortNumber, v_HttpRequest)); - } - } - } - -} diff --git a/LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn b/LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn deleted file mode 100644 index 3a6a73b..0000000 --- a/LTE_A_IWD_14wk37/Common/NAS/NAS_CommonTypeDefs.ttcn +++ /dev/null @@ -1,870 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-08-27 12:24:14 +0200 (Tue, 27 Aug 2013) $ -// $Rev: 9441 $ -/******************************************************************************/ - -module NAS_CommonTypeDefs { - /* Module containing type definitions for EPS, UTRAN and/or GERAN */ - -import from CommonDefs all; - -//**************************************************************************** -// Common Type definitions: -//---------------------------------------------------------------------------- - -//**************************************************************************** -//**************************************************************************** - -type O1_Type Octet_Type; -type hexstring HalfOctet_Type length(1); - -type HalfOctet_Type IEI4_Type; /* 4 bit info element identifier for type 1 IEs */ -type Octet_Type IEI8_Type; /* 8 bit info element identifier */ - -type O1_Type Type4Length_Type; -type O2_Type Type6Length_Type; - -type HalfOctet_Type SpareHalfOctet; - -type hexstring NAS_Mcc length(3); //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). - -type record of hexstring EmergencyNumList; -//**************************************************************************** -// NAS PROTOCOL DEFINITIONS: IEs -//---------------------------------------------------------------------------- -// General Info Elements (24.301 cl. 9) -//---------------------------------------------------------------------------- - -type B4_Type ProtocolDiscriminator; /* 24.301 cl. 9.2 and 24.007 cl. 11.2.3.1.1 */ -type B4_Type SkipIndicator; /* 24.007 cl. 11.2.3.1.2 */ -type B8_Type MessageType; /* 24.301 cl. 9.8 */ - -type B3_Type NAS_AttDetValue_Type; -type B3_Type KeySeq; /* ciphering key sequence - 3G TS 24008 cl. 10.5.1.2 */ -type O3_Type NAS_PlmnId; - -type O4_Type NAS_Tmsi; -type O4_Type NAS_P_Tmsi; - -type O2_Type NAS_Lac; -type O1_Type NAS_Rac; - -type hexstring BcdDigit_Hex length(1); -type bitstring BcdDigit_Bit length(4); - -type B3_Type NAS_IdType; -type B8_Type NAS_CauseValue_Type; - -type B1_Type TmsiStatusValue; - -type enumerated PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status @sic R5s120274 sic@ */ -type enumerated CS_PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status APPROVED */ -// This is here because it's the best place for it - const NAS_Lac tsc_LAC_Def := '0001'O ; /* Default NAS LAC, the value may need to be updated in CS combined/CS fallback test cases - @status APPROVED - @sic R5s090180 sic@ */ - - -//----------------------------------------------------------------------------- -// Defined in 24.008, but also referenced from 24.301 -//----------------------------------------------------------------------------- - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008, section 10.5.6.1 -// ----------------------------------------------------------------------------- -type record AccessPointName { /* 24.301 cl. 9.9.4.1 -> 24.008 cl. 10.5.6.1 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - octetstring nameValue length(1..100) -}; - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008, section 10.5.3.14 -// ----------------------------------------------------------------------------- -type record AddUpdateParams { - IEI4_Type iei optional, - B2_Type spare, // @sic R5s120178 Baseline Moving sic@ - B1_Type csmo, // @sic R5s120178 Baseline Moving sic@ - B1_Type csmt -}; - -type record AdditionalUpdateType { /* 24.301 cl. 9.9.3.0B @sic R5s100135 sic@ */ - IEI4_Type iei, // currently only used as TV - B3_Type spare3, - B1_Type addUpdateTypeValue -}; - -// ============================================================================= -// Structured Type Definition -// Ciphering Key Sequence Number -// 3G TS 24.008 cl. 10.5.1.2 -// ----------------------------------------------------------------------------- -type record CiphKeySeqNum { - IEI4_Type iei optional, // '1000'B - B1_Type spare1, - KeySeq keySeq -}; - -// ============================================================================= -// Structured Type Definition -// Priority Level -// 3G TS 24.008 cl. 10.5.6.19 / 24.301 9.9.4.2A -// ----------------------------------------------------------------------------- -type record ConnectivityType { - IEI4_Type iei, - B4_Type connectivityValue -}; - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008, section 10.5.5.5/ 24.301 cl. 9.9.3.7 -// ----------------------------------------------------------------------------- -type record DetachType { - // IEI is always skipped - B1_Type switchOff, - NAS_AttDetValue_Type typeOfDetach -}; - -// ============================================================================= -// Structured Type Definition -// Device Properties -// 3G TS 24.008 cl. 10.5.7.8 -// ----------------------------------------------------------------------------- -type record DeviceProperties { - IEI4_Type iei, - B3_Type spare, - B1_Type lowPriority -}; - -// ============================================================================= -// Structured Type Definition -// DRX paramter -// 3GPP 24.008 / 10.5.5.6 -// ----------------------------------------------------------------------------- -type record DRXparameter { - IEI8_Type iei optional, // '00100111'B (hex 27) - B8_Type splitPGcycleCode, // Split PG cycle code - B4_Type cnDRXcoef, // CN specific DRX cycle length coefficient - B1_Type splitOnCCCH, // Split on CCCCH - B3_Type nonDRXtimer // non-DRX timer -}; - -// ============================================================================= -// Structured Type Definition -// Emergency Service Category -// 3GPP 24.008 / 10.5.4.33 -// ----------------------------------------------------------------------------- -type record EmergServCat { - B1_Type spare, - B7_Type emergSCValue // Emergency Service Category value -}; - -type record length (1..10) of charstring EmergencyLocalNumberList; -// ============================================================================= -// Structured Type Definition -// Emergency Number -// 3G TS 24.008 cl. 10.5.3.13 -// ----------------------------------------------------------------------------- -type record EmergNum { - Type4Length_Type len, // length - EmergServCat emergServCat, // Emergency Service Category - octetstring digits length(0..10) // BCD numbers -}; - -// ============================================================================= -// Structured Type Definition -// Emergency Number List -// 3G TS 24.008 cl. 10.5.3.13 -// ----------------------------------------------------------------------------- -type record EmergNumList { - IEI8_Type iei, // '00110100'B (34 hex) @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - record length (1..10) of EmergNum emergNum // Emergency Number -}; - -// ============================================================================= -// Structured Type Definition -// GPRS timer -// 3GPP 24.008 / 10.5.7.3 -// ----------------------------------------------------------------------------- -type record GPRS_Timer { /* 24.301 cl. 9.9.3.14 -> 24.008 cl. 10.5.7.3 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - GprsTimerUnit unit, - B5_Type timerValue -}; - -type B3_Type GprsTimerUnit; - -// ============================================================================= -// Structured Type Definition -// GPRS timer -// 3GPP 24.008 / 10.5.7.4 -// ----------------------------------------------------------------------------- -type record GPRS_Timer2 { - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - GprsTimerUnit unit, // Unit - B5_Type gprsTimerValue // Timer value -}; - -// ============================================================================= -// Structured Type Definition -// GPRS timer -// 3GPP 24.008 / 10.5.7.4a -// ----------------------------------------------------------------------------- -type record GPRS_Timer3 { - IEI8_Type iei, - Type4Length_Type iel, // length - GprsTimerUnit unit, // Unit - B5_Type gprsTimerValue // Timer value -}; - -// ============================================================================= -// Structured Type Definition -// IMEISV Request -// 3GPP 24.008 / 10.5.5.10 -// ----------------------------------------------------------------------------- -type record IMEISV_Request { /* 24.301 cl. 9.9.3.16 -> 24.008 cl. 10.5.5.10 */ - IEI4_Type iei optional, /* present in case of TV; omit in case of V */ - B1_Type spare, - B3_Type requestValue -}; - -// ============================================================================= -// Structured Type Definition -// Location Area Identification Value -// 3G TS 24.008 cl. 10.5.1.3 -// ----------------------------------------------------------------------------- -type record LocAreaId { - IEI8_Type iei optional, - NAS_PlmnId plmn, // MCC + MNC 3 digits each - NAS_Lac lac // LAC -}; - -// ============================================================================= -// Structured Type Definition -// RoutingAreaId -// 3GPP 24.008 / 10.5.5.15 -// ----------------------------------------------------------------------------- -type record RoutingAreaId { /* 24.301 cl. 9.9.3.24 -> 24.008 cl. 10.5.5.15 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - LocAreaId lai, /* MCC + MNC + LAC */ - O1_Type rac /* RAC */ -}; - -// ============================================================================= -// Structured Type Definition -// 24.007, clause 10.5.6.9 -// ----------------------------------------------------------------------------- -type record LLC_SAPI { /* 24.301 cl. 9.9.4.4 -> 24.008 cl. 10.5.6.9 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - B4_Type spare, - B4_Type llcSapiValue -}; - -// ============================================================================= -// Structured Type Definition -// Mobile Identity -// 3G TS 24.008 cl. 10.5.1.4 -// Maximum number of digits is 16 (IMEISV). Filler may be used. -// ----------------------------------------------------------------------------- -type record MobileIdentity { - IEI8_Type iei optional, // '00100011'B - Type4Length_Type iel, - BcdDigit_Bit idDigit1, // 1st identitity digit - B1_Type oddEvenInd, // Odd/even indicator - NAS_IdType typeOfId, // Type of identity - octetstring otherDigits length(0..10) // Other identity digits (10 octets rather than 8 to cover Guti as well) -}; - -// ============================================================================= -// Structured Type Definition -// Mobile Station Classmark 2 -// 3G TS 24.008 cl. 10.5.1.6 -// ----------------------------------------------------------------------------- -type record MS_Clsmk2 { - IEI8_Type iei optional, - Type4Length_Type iel, // @sic R5s110420 sic@ - B1_Type spare1_1, // Spare bit - B2_Type revLvl, // Revision Level - B1_Type eSIND, // Early Sending Indication - B1_Type a5_1, // Algorithm A5/1 Support - B3_Type rFPwrCap, // RF Power Capability - B1_Type spare1_2, // Spare bit - B1_Type pSCap, // Pseudo Synchronisation Capability - B2_Type sSSI, // SS Screen Indicator - B1_Type sMCap, // Short Message Capability - B1_Type vBS, // VBS Capability - B1_Type vGCS, // VGCS Capability - B1_Type fC, // Frequency Capability - B1_Type cM3, // Classmark 3 Indicator - B1_Type spare1_3, // Spare bit - B1_Type lCSVA, // LCS VA Capability - B1_Type uCS2, // UCS2 Encoding Support - B1_Type soLSA, // SoLSA Support - B1_Type cMSP, // CM Service Prompt Support - B1_Type a5_3, // Algorithm A5/3 Support - B1_Type a5_2 // Algorithm A5/2 Support -}; - -// ============================================================================= -// Structured Type Definition -// Mobile station classmark 3 -// 3GPP TS 24.008 clause 10.5.1.7 -// The information element has 34 octets maximum length -// ----------------------------------------------------------------------------- -type record MS_Clsmk3 { - IEI8_Type iei optional, // 0x20 - Type4Length_Type iel optional, // OCTETSTRING [1] - B1_Type spareBit, // spare bit @sic R5s120178 Baseline Moving sic@ - B3_Type multibandSupported, // @sic R5s120178 Baseline Moving sic@ - B1_Type a5_7, // a5/7 algorithm supported @sic R5s120178 Baseline Moving sic@ - B1_Type a5_6, // a5/6 algorithm supported @sic R5s120178 Baseline Moving sic@ - B1_Type a5_5, // a5/5 algorithm supported @sic R5s120178 Baseline Moving sic@ - B1_Type a5_4, // a5/4 algorithm supported @sic R5s120178 Baseline Moving sic@ - B4_Type associatedRadioCapabilty2 optional, // present if multibandSupported = 101 or 110 - B4_Type spareBits1 optional, // present if multibandSupported = 001 or 010 or 100 - B4_Type associatedRadioCapabilty1 optional, // present if multibandSupported = 001 or 010 or 100 or 101 or 110 - B1_Type maskBit1 optional, - B3_Type rGSM_RadioCapability optional, // R-GSM band associated radio capability not present if maskBit1 = 0 - B1_Type maskBit2 optional, - B5_Type multiSlotClass optional, // multi slot class not present if multiSlotClass = 0 - B1_Type uCS2Treatment optional, - B1_Type extMeasurementCapability optional, // extended measurement capability - B1_Type maskBit3 optional, - MS_MeasCapability msMeasurementCapability optional, // MS measurement capability - // not present if maskBit3 = 0 - B1_Type maskBit4 optional, - B5_Type msPositioningMethod optional, // MS positioning method capability - // not present if maskBit4 = 0 - B1_Type maskBit5 optional, - B5_Type eDGE_MultiSlot optional, // EDGE multi slot capability - // not present if maskB5_Type = 0 - B1_Type maskBit6 optional, - EDGE_Struct psk8_Struct optional, // 8PSK struct - // not present if maskB6_Type = 0 - B1_Type maskBit7 optional, - B2_Type gSM400BandsSupported optional, // not present if maskBIt7 = 0 - B4_Type gSM400AssociatedRadioCapability optional, // not present if gSM400BandsSupported = 00 or maskB7_Type = 0 - B1_Type maskBit8 optional, - B4_Type gSM850AssociatedRadiioCapability optional, // not present if maskBIt8 = 0 - B1_Type maskBit9 optional, - B4_Type pCS1900AssociatedRadiioCapability optional, // not present if maskBIt9 = 0 - B1_Type uMTS_FDD_RAT_Capability optional, - B1_Type uMTS384TDD_RAT_Capability optional, - B1_Type cDMA2000_RAT_Capability optional, - B1_Type maskBit10 optional, - B2_Type dTM_GPRS_MultiSlotSubclass optional, // not present if maskBit10 = 0 - B1_Type singleSlotDTM optional, // not present if maskBit10 = 0 - B1_Type maskBit11 optional, // not present if maskBit10 = 0 - B2_Type dTM_EGPRS_MultiSlorSubclass optional, // not present if maskBit10 = 0 or maskBit11 = 0 - B1_Type maskBit12 optional, - B4_Type singleBandSupport optional, // not present if maskBit12 = 0 - B1_Type maskBit13 optional, - B4_Type gSM700AssociatedRadioCapability optional, // not present if maskBit13 = 0 - B1_Type uMTS128TDD_RAT_Capability optional, - B1_Type gERANFeatPack1 optional, - B1_Type mask14 optional, - B2_Type extDTM_GPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 - B2_Type etxDTM_EGPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 - B1_Type mask15 optional, - B2_Type highMultislotCap optional, // not present if mask15 = 0 - B1_Type mask16 optional, - B4_Type gERANIuModeLength optional, // not present if maskBit16 = 0 - B1_Type gERANFLOIuCap optional, - bitstring gERANIuModeSpareBits length(0..14) optional, // not present if maskBit16 = 0 - B1_Type gERANFeatPack2 optional, - B2_Type gMSKMultislotPowerProfile optional, - B2_Type pSKMultislotPowerProfile optional, - B1_Type mask17 optional, // rel 6 features - B2_Type tGSM400BandsSupported optional, // not present if maskBit17 = 0 - B4_Type tGSM400AssocRadioCap optional, // not present if maskBit17 = 0 - B1_Type spare optional, // Set to 0 @sic R5s110176 Baseline Moving sic@ - B2_Type dlAdvancedRxPerf optional, - B1_Type dTMEhancCap optional, - B1_Type mask19 optional, - B3_Type dTMGPRSHighMultislotClass optional, // not present if maskBit19 = 0 - B1_Type offsetReq optional, // not present if maskBit19 = 0 - B1_Type mask20 optional, // not present if maskBit19 = 0 - B3_Type dTMEGPRSHighMultislotClass optional, // not present if maskBit19 and maskBit20 = 0 - B1_Type rptdACCHCap optional, - B1_Type mask21 optional, - B4_Type gsm710AssocRadioCap optional, // not present if maskBit21 = 0 - B1_Type mask22 optional, - B4_Type tgsm810AssocRadioCap optional, // not present if maskBit22 = 0 - B1_Type cipheringModeSettingCap optional, - B1_Type addPositionCap optional, - B1_Type eutraFDDSupport optional, // rel 8 features - B1_Type eutraTDDSupport optional, - B1_Type eutraMeasAndReporting optional, // @sic R5s100135 sic@ - B1_Type priorityBasedReselection optional, // @sic R5s110176 Baseline Moving sic@ - B1_Type utraCSGCellsReporting optional, // @sic R5s110176 Baseline Moving sic@ - B2_Type vamosLevel optional, // @sic R5s110176 Baseline Moving sic@ - B2_Type tighterCap optional, // @sic R5s120178 Baseline Moving sic@ - B1_Type selectCipheringDLSACCH optional, // @sic R5s120178 Baseline Moving sic@ - B2_Type csPS_SRVCC_G2U optional, // @sic R5s130195 Baseline Moving sic@ - B2_Type csPS_SRVCC_G2E optional, // @sic R5s130195 Baseline Moving sic@ - bitstring spareBits2 optional -}; - -// ============================================================================= -// Structured Type Definition -// Reference : 3GPP TS 24.008 clause 10.5.1.7 -// ----------------------------------------------------------------------------- -type record EDGE_Struct { - B1_Type modulationCapability, - B1_Type pwrMask1, - B2_Type eDGE_RF_PowerCapability1 optional, // not present if pwrMask1 = 0 - B1_Type pwrMask2, - B2_Type eDGE_RF_PowerCapability2 optional // not present if pwrMask2 = 0 -}; - -// ============================================================================= -// Structured Type Definition -// Reference : 3GPP TS 24.008 clause 10.5.1.7 -// ----------------------------------------------------------------------------- -type record MS_MeasCapability { - B4_Type sMS_VALUE, - B4_Type sM_VALUE -}; - -// ============================================================================= -// Structured Type Definition -// MS network capability -// 3GPP 24.008 / 10.5.5.12 -// ----------------------------------------------------------------------------- -type record MS_NetworkCap { /* 24.301 cl. 9.9.3.18 -> 24.008 cl. 10.5.5.12 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - Type4Length_Type iel, // @sic R5s110420 sic@ - B1_Type gea1, - B1_Type smCapDedicated, - B1_Type smCapGPRS, - B1_Type ucs2, - B2_Type ssScreeningIndicator, - B1_Type soLSACap, - B1_Type revLevelIndicator, - B1_Type pfcFeatureMode, - B1_Type gea2, - B1_Type gea3, - B1_Type gea4, - B1_Type gea5, - B1_Type gea6, - B1_Type gea7, - B1_Type lcsVACap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type psHOtoUTRAN_IuModeCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type psHOtoEUTRAN_S1ModeCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type emmCombinedCap optional, // @sic R5s110176 Baseline Moving, R5s130477 not present for r99 sic@ - B1_Type isrSupport optional, // @sic R5s130477 not present for r99 sic@ - B1_Type srvccToGERAN_UTRANCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type epcCap optional, // @sic R5s130477 not present for r99 sic@ - B1_Type nfCap optional, // @sic R5s110176 Baseline Moving, not present for Rel-8 R5s110242 sic@ - B1_Type gERANNtwkShareCap optional, // @sic R5s130195 Baseline Moving, not present for Rel-8 sic@ - bitstring spareBits length (0..43) optional -}; - -// ============================================================================= -// Structured Type Definition -// Additional Network Feature Support -// 3G TS 24.008 cl. 10.5.5.31 -// ----------------------------------------------------------------------------- -type record NwkResourceId { - IEI8_Type iei, // - Type4Length_Type iel, // - B1_Type nriContainerValue, - B7_Type spareBits -}; - -// ============================================================================= -// Structured Type Definition -// PacketFlowIdentifier -// 24.008, section 10.5.6.11 -// ----------------------------------------------------------------------------- -type record PacketFlowIdentifier { /* 24.301 cl. 9.9.4.5 -> 24.008 cl. 10.5.6.11 */ - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, // @sic R5s110420 sic@ - B1_Type spare, - B7_Type idValue -}; - -// ============================================================================= -// Structured Type Definition -// PLMN list -// 3G TS 24.008 cl. 10.5.1.13 -// ----------------------------------------------------------------------------- -type record PLMN_List { /* 24.301 cl. 9.9.2.4 -> 24.008 cl. 10.5.1.13 */ - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, // @sic R5s110420 sic@ - record length(1..15) of - NAS_PlmnId plmnList /* list of PLMNs */ -}; - -// ============================================================================= -// Structured Type Definition -// MS network feature support -// 3GPP 24.008 / 10.5.5.15 -// ----------------------------------------------------------------------------- -type record MS_NetworkFeatureSupport { /* 24.301 cl. 9.9.2.0A -> 24.008 cl. 10.5.5.15 */ - IEI4_Type iei, - B3_Type spare, - B1_Type extdPeriodicTimers -}; - -type PLMN_List.plmnList NAS_PlmnIdList_Type; - -// ============================================================================= -// Structured Type Definition -// ProtocolConfigOptions -// 3G TS 24.008 cl. 10.5.6.3 -// ----------------------------------------------------------------------------- -type record ProtocolConfigOptions { /* 24.301 cl. 9.9.4.8 -> 24.008 cl. 10.5.6.3 */ - IEI8_Type iei, // @sic R5s110420 sic@ - Type4Length_Type iel, - B1_Type ext, - B4_Type spare, - B3_Type configProtocol, - record length (0..83) of - ProtocolContainer pco optional -}; - -type record ProtocolContainer { - O2_Type protocolID, /* id is always 2 octets */ - Type4Length_Type protocolLength, - octetstring content optional -}; - -type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; - -// ============================================================================= -// Structured Type Definition -// P-TMSI signature -// 3GPP 24.008 / 10.5.5.8 -// ----------------------------------------------------------------------------- -type record PTMSI_Signature { /* 24.301 cl. 9.9.3.23 -> 24.008 cl. 10.5.5.8 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - Type4Length_Type iel optional, // only present in 24.008 version of DETACH REQUEST message - O3_Type signatureValue -}; - -// ============================================================================= -// Structured Type Definition -// 24.008, clause 10.5.6.5 -// ----------------------------------------------------------------------------- -type record QualityOfService { /* 24.301 cl. 9.9.4.9 -> 24.008 cl. 10.5.6.5 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - B2_Type spare1, - B3_Type delayClass, - B3_Type relabilityClass, - B4_Type peakThroughput, - B1_Type spare2, - B3_Type precedenceClass, - B3_Type spare3, - B5_Type meanThroughput, - B3_Type trafficClass, - B2_Type deliveryOrder, - B3_Type deliveryErrorSDU, - B8_Type maxSduSize, - B8_Type maxBitRateUL, - B8_Type maxBitRateDL, - B4_Type residualBER, - B4_Type sduErrorRatio, - B6_Type transferDelay, - B2_Type trafficHandlingPrio, - B8_Type guaranteedBitRateUL, - B8_Type guaranteedBitRateDL, - B3_Type spare4, - B1_Type signallingInd, - B4_Type sourceStatisticsDescriptor, - B8_Type maxBitRateDL_Ext optional, - B8_Type guaranteedBitRateDL_Ext optional, - B8_Type maxBitRateUL_Ext optional, - B8_Type guaranteedBitRateUL_Ext optional, - B8_Type maxBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ - B8_Type guaranteedBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ - B8_Type maxBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ - B8_Type guaranteedBitRateUL_Ext2 optional // @sic R5s1300195 Baseline Moving sic@ -}; - -// ============================================================================= -// Structured Type Definition -// Radio priority -// 3GPP 24.008 / 10.5.7.2 -// ----------------------------------------------------------------------------- -type record RadioPriority { /* 24.301 cl. 9.9.4.10 -> 24.008 cl. 10.5.7.2 */ - IEI4_Type iei optional, /* present in case of TV; omit in case of V */ - B1_Type spare, - B3_Type levelValue -}; - -// ============================================================================= -// Structured Type Definition -// Codec -// 3G TS 24.008 cl. 10.5.4.32 -// ----------------------------------------------------------------------------- -type record Codec { - O1_Type sysId, // system identifcation - Type4Length_Type len, // length - B8_Type bitMap1to8, // codec bitmap bits 1-8 - B8_Type bitMap9to16 optional // codec bitmap bits 9-16 -}; - -// ============================================================================= -// Structured Type Definition -// Supported Codec List -// 3G TS 24.008 cl. 10.5.4.32 -// ----------------------------------------------------------------------------- -type record CodecList { - IEI8_Type iei, // '01000000'B (40 hex) @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - record of Codec codec// list of codecs -}; - -// ============================================================================= -// Structured Type Definition -// TMSI status -// 3GPP 24.008 cl. 10.5.6.17 -// ----------------------------------------------------------------------------- -type record Request_Type { /* 24.301 cl. 9.9.4.11 */ - // IEI is always skipped - B1_Type spare, - B3_Type typeValue -}; - -// ============================================================================= -// Structured Type Definition -// TMSI status -// 3GPP 24.008 cl. 10.5.5.4 -// ----------------------------------------------------------------------------- -type record TMSI_Status { - IEI4_Type iei optional, - B3_Type spare3, - TmsiStatusValue flag // Flag -}; - -// ============================================================================= -// Structured Type Definition -// TrafficFlowTemplate -// 3GPP 24.008 / 10.5.6.12 -// ----------------------------------------------------------------------------- -type record TrafficFlowTemplate { /* 24.301 cl. 9.9.4.13 -> 24.008 cl. 10.5.6.12 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - B3_Type tftOperationCode, - B1_Type eBit, - B4_Type noOfPktFilter, - record of PacketFilter packetFilterList optional, - record of TftParameter parameterList optional -}; - -type record TftParameter { - IEI8_Type iei, - Type4Length_Type iel, - octetstring contents -}; - -type record PacketFilter { - B2_Type spare, // @sic R5s130195 Baseline Moving sic@ - B2_Type direction, // @sic R5s130195 Baseline Moving sic@ - IEI4_Type iei, // @sic R5s130195 Baseline Moving sic@ - B8_Type precedence optional, - Type4Length_Type iel optional, - PacketFilterContents contents optional -}; - -type record of PacketFilterComponent PacketFilterContents; - -type record PacketFilterComponent { - O1_Type id, - PacketFilterComponentValue packetFilterComponentValue -}; - -type union PacketFilterComponentValue { - O8_Type ipv4RemoteAddress, - O32_Type ipv6RemoteAddress, - O1_Type protocolIdNextHeader, - O2_Type singleLocalPort, - O4_Type localPortRange, - O2_Type singleRemotePort, - O4_Type remotePortRange, - O4_Type securityParameterIndex, - O2_Type typeOfServiceTrafficClass, - O3_Type flowLabel -}; - -type record UE_NetworkCap { // 24.301 cl. 9.9.3.34 - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ - O1_Type eeaCap, // @sic R5s100135 sic@ - O1_Type eiaCap, // @sic R5s100135 sic@ - O1_Type ueaCap optional, // @sic R5s100135 sic@ - O1_Type uiaCap optional, // @sic R5s100135 sic@ - O1_Type srvccCap optional, // @sic R5s100135 sic@ - octetstring spare optional // @sic R5s100135 sic@ -}; - -// ============================================================================= -// Structured Type Definition -// Authentication Parameter AUTN -// 3G TS 24.008 cl. 10.5.3.1.1 -// ----------------------------------------------------------------------------- -type record AUTN { /* 24.301 cl. 9.9.3.2 -> 24.008 cl. 10.5.3.1.1 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, // @sic R5s110420 sic@ - B128_Type aUTN /* (as for UMTS) */ -}; - -// ============================================================================= -// Structured Type Definition -// Authentication Failure Parameter (TLV) -// 3G TS 24.008 cl. 10.5.3.2.2 -// ----------------------------------------------------------------------------- -type record AuthenticationFailureParameter { - IEI8_Type iei, // '00100010'B for MM (22 hex) - // '00110000'B for GMM (30 hex) - Type4Length_Type iel, // M 1 octet - B112_Type auts // AUTS, 14 octets -}; - -// ============================================================================= -// Structured Type Definition -// Authentication Parameter RAND (TV, 17 octets) -// 3G TS 24.008 cl. 10.5.3.1 -// ----------------------------------------------------------------------------- -type record RAND { - IEI8_Type iei optional, // '00100001'B (21 hex) - B128_Type randValue // Authentication Parameter RAND value -}; - -type record DaylightSavingTime { /* 24.301 cl. 9.9.3.5 -> 24.008 cl. 10.5.3.12 */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ - B6_Type spare, - B2_Type val -}; - -type record NetworkName { /* 24.301 cl. 9.9.3.21 -> 24.008 cl. 10.5.3.5a */ - IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ - Type4Length_Type iel, - B1_Type ext, - B3_Type codingScheme, - B1_Type addCI, - B3_Type spareBitCnt, - octetstring text /* type is FFS */ -}; - -type record TimeZone { /* 24.301 cl. 9.9.3.26 -> 24.008 cl. 10.5.3.8 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - O1_Type timeZone -}; - -type record TimeZoneAndTime { /* 24.301 cl. 9.9.3.27 -> 24.008 cl. 10.5.3.9 */ - IEI8_Type iei optional, /* present in case of TV; omit in case of V */ - O1_Type year, - O1_Type month, - O1_Type day, - O1_Type hour, - O1_Type minute, - O1_Type second, - O1_Type timeZone -}; - -// ============================================================================= -// Structured Type Definition -// 3G TS 24.008 cl. 10.5.5.28 -// @sic R5s110176 Baseline Moving sic@ -// ----------------------------------------------------------------------------- -type record VoiceDomainPref { - IEI8_Type iei optional, // 01111110'B - Type4Length_Type iel optional, // length - B5_Type spareBits, - B1_Type ueUsageSetting, - B2_Type voiceDomainPrefEUTRA // @sic R5s110233 sic@ -}; - -type record IdentityType { /* 24.301 cl. 9.9.3.15 -> 24.008 cl. 10.5.3.4 */ - // IEI is always skipped - B1_Type spare, - NAS_IdType typeOfId -}; - - // ============================================================================= - // Structured Type Definition - // REGISTER - // ue->n or n->ue, 3GPPP TS 24.080, 2.4 - // ----------------------------------------------------------------------------- - type record REGISTER { - TI ti, // transaction identifier BITSTRING [4] - ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] - MessageType msgType, // message type BITSTRING [8] - FacilityIE facility_Str, // M, BER enconded ASN.1 object - SS_VersionInd sS_VersionInd optional // O for ue->n, N/A for n->ue - }; - - // ============================================================================= - // Structured Type Definition - // FACILITY - // ue->n or n->ue, 3GPPP TS 24.080, 2.3 and 24.008, 10.4 - // ----------------------------------------------------------------------------- - type record FACILITY { - TI ti, // transaction identifier BITSTRING [4] - ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] - MessageType msgType, // message type BITSTRING [8], for n->ue "00111010", for ue->n "xx111010" (see 24.007) - FacilityIE facility_Str // M, BER enconded ASN.1 object - }; - -// ============================================================================= -// Structured Type Definition -// Facility Information Element -// 3GPPP TS 24.080, 3.6 / 24.008, 10.5.4.15 -// ----------------------------------------------------------------------------- -type record FacilityIE { - IEI8_Type iei optional, // Facility IE identifier - Type4Length_Type iel, // length of Facility contents - octetstring components // ASN.1 definitions BER encoded -}; - -// ============================================================================= -// Structured Type Definition -// Transaction identifier -// 3G TS 24.007 cl. 11.2.3.1.3 -// ----------------------------------------------------------------------------- -type record TI { - B1_Type tiFlag, // Flag - B3_Type tiVal // TIO -}; - -// ============================================================================= -// Structured Type Definition -// SS version indicator -// 3G TS 24.008 cl. 10.5.4.24 -// 1. Usually this IE has only one octet of content. -// Exact definition see TS 24.080 -// ----------------------------------------------------------------------------- -type record SS_VersionInd { - IEI8_Type iei, // '01111111'B @sic R5s110420 sic@ - Type4Length_Type iel, // length @sic R5s110420 sic@ - O1_Type sS_VersionInfo // ss version information -}; - - // ============================================================================= - // Structured Type Definition - // RESETUEPOSITIONINGSTOREDINFORMATION - // n->ue, 3GPPP TS 34.109, 6.10/36.509 6.9 - // ----------------------------------------------------------------------------- - type record RESETUEPOSITIONINGSTOREDINFORMATION { - SkipIndicator skipIndicator, // "0000" skip indicator BITSTRING [4] - ProtocolDiscriminator protocolDiscriminator, // M, "1111" Protocol discriminator for test procedure messages BITSTRING [4] - MessageType msgType, // M, message type BITSTRING [8] - B8_Type uePositioningTech // M, BITSTRING [8] - }; - -} with { encode "NAS Types" } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonAspDefs.ttcn b/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonAspDefs.ttcn deleted file mode 100644 index 616355f..0000000 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonAspDefs.ttcn +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ -/******************************************************************************/ - -module UTRAN_CommonAspDefs { - import from UTRAN_ASP_Definitions language "ASN.1:2002" all; - - // embedded ASP types: - type TrCHInfo.ulconnectedTrCHList UlConnectedTrCHList_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo.dlconnectedTrCHList DlConnectedTrCHList_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo_TDD.ulconnectedTrCHList UlConnectedTrCHList_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo_TDD.dlconnectedTrCHList DlConnectedTrCHList_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo.ulconnectedTrCHList[-] UlConnectedTrCH_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo.dlconnectedTrCHList[-] DlConnectedTrCH_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo_TDD.ulconnectedTrCHList[-] UlConnectedTrCH_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type TrCHInfo_TDD.dlconnectedTrCHList[-] DlConnectedTrCH_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type CphyTrchConfigReq.ulconnectedTrCHList CphyUlConnectedTrCHList_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyUlConnectedTrCHList_Type[0] CphyUlConnectedTrCH_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyTrchConfigReq.dlconnectedTrCHList CphyDlConnectedTrCHList_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyDlConnectedTrCHList_Type[0] CphyDlConnectedTrCH_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyTrchConfigReq_TDD.ulconnectedTrCHList CphyUlConnectedTrCHList_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyUlConnectedTrCHList_TDD_Type[0] CphyUlConnectedTrCH_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyTrchConfigReq_TDD.dlconnectedTrCHList CphyDlConnectedTrCHList_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyDlConnectedTrCHList_TDD_Type[0] CphyDlConnectedTrCH_TDD_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - type CphyRlSetupReq_FDD.physicalChannelInfo RL_Setup_FDD_PhysicalChannelInfo_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - type CphyRlSetupReq_TDD.physicalChannelInfo RL_Setup_TDD_PhysicalChannelInfo_Type; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ -} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RAB_Functions.ttcn b/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RAB_Functions.ttcn deleted file mode 100644 index c034538..0000000 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RAB_Functions.ttcn +++ /dev/null @@ -1,4132 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 21:20:35 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12193 $ -/******************************************************************************/ - -module UTRAN_RAB_Functions { - import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from UTRAN_ASP_Definitions language "ASN.1:2002" all; - import from UTRAN_Parameters all; - import from UTRAN_Component all; - import from UTRAN_RRC_RAB_Templates all; - import from UTRAN_RRC_RAB_Templates_r9 all; - import from UTRAN_RRC_RAB_Templates_r10 all; - import from UTRAN_RRC_RAB_Templates_r11 all; - import from UTRAN_CellInfo all; - import from UTRAN_CommonFunctions all; - import from UTRANGERAN_CommonFunctions all; - import from UTRAN_TTCN_ASP_Templates all; - import from UTRAN_NAS_PDU_Templates all; - import from UTRAN_CommonDefs all; - import from UTRAN_RRC_CommonTemplates all; - import from UTRAN_RRC_Templates all; - import from UTRAN_RRC_Templates_r11 all; - import from UTRAN_ASN1_ASP_Templates all; - import from UTRAN_ASN1_ASP_Templates_r10 all; - import from UTRAN_ASN1_ASP_Templates_r11 all; - import from UTRAN_ASN1_ASP_RAB_Templates all; - import from UTRAN34_ASN1_ASP_Templates_r10 all; - import from UTRAN_ASN1_ASP_RAB_Templates_r10 all; - import from UTRAN_ASN1_ASP_RAB_Templates_r11 all; - import from UTRAN_TypeDefs all; - import from UTRAN_ConfigurationSteps all; - import from CommonIratDefs all; - import from CommonDefs all; - import from Parameters all; - import from UpperTesterFunctions all; - import from IP_PTC_CtrlMsgs all; - - import from NAS_24008TypeDefs all; - import from NAS_24008Templates_IRAT all; - import from NAS_CommonTypeDefs all; - import from NAS_CommonTemplates all; - import from UTRAN_MDT_Templates all; - - const float tsc_DelaySetupFACH := 0.06; /* Delay in seconds used after sending the RAB SETUP in CELL_FACH state - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - const float tsc_DelaySetupFACH_TDD := 0.10; /* Delay in seconds used after sending the RAB SETUP in CELL_FACH state - Deviation from the value used in TCCN-2 TDD (0.06) as an exeption - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - - //---------------------------------------------------------------------- - // Init functions - //---------------------------------------------------------------------- - - /* - * @desc Function will return the RRC establishment cause based on the set PIXIT parameters - * @return template (value) EstablishmentCause - * @status APPROVED (LTE_IRAT, UTRAN) - */ - function f_GetMoEstCause() return template (value) EstablishmentCause - { - var template (value) EstablishmentCause v_EstablishmentCause; - - if (pc_Interactive and (px_RRC_PS_ServTested == ps_Interactive)) { - v_EstablishmentCause := originatingInteractiveCall; - } - else if (pc_Background and (px_RRC_PS_ServTested == ps_Background)) { - v_EstablishmentCause := originatingBackgroundCall; - } - else if (pc_Streaming and (px_RRC_PS_ServTested == ps_Streaming)) { - v_EstablishmentCause := originatingStreamingCall; - } - else if (px_RRC_PS_ServTested == ps_SubscribedTrafficClass) { // @sic R5s110771 sic@ - v_EstablishmentCause := originatingSubscribedTrafficCall; - } - else { - FatalError(__FILE__, __LINE__, "Configuration not supported"); - }; - return v_EstablishmentCause; - } - - /* - * @desc Initialise QoS, Delay and Traffic Class - * @param p_CellId - * @param p_RB_Configuration (default value: cell_DCH_64kPS_RAB_SRB) - * @return template (value) QualityOfService - * @status APPROVED (LTE_IRAT, UTRAN) - */ - function f_UTRAN_InitialiseQoS(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_RB_Configuration := cell_DCH_64kPS_RAB_SRB) - runs on UTRAN_PTC return template (value) QualityOfService - { - var B3_Type v_DlyClass, v_TrafficClass; - var template (value) QualityOfService v_QualityOfService; - var B8_Type v_MaxSDU_Size := '00100000'B;//maxSDU_Size is 320 - var B8_Type v_MaxBitRateUL, v_MaxBitRateDL; - var B4_Type v_PeakThroughput; - var template (omit) B8_Type v_BitRateExt := omit; - var B8_Type v_BitRateUL_64kbps := '01000000'B;//64kbps - var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); - - if (pc_Interactive and ((px_RRC_PS_ServTested == ps_Interactive) or (px_RRC_PS_ServTested == ps_SubscribedTrafficClass))) { // @sic R5s110771 sic@ - v_DlyClass := '011'B; - v_TrafficClass := '011'B; - } - else if (pc_Background and (px_RRC_PS_ServTested == ps_Background)) { - v_DlyClass := '100'B; - v_TrafficClass := '100'B; - } - else {//Default values for all other cases - v_DlyClass := '011'B; - v_TrafficClass := '011'B; - } - - if (v_FDD_TDD_Mode == UTRAN_FDD) {//Cell is FDD - // pc_HSDSCH_UE_Category_FDD is used to determine the QoS as MAC-ehs and dual cell configuration is not configured. Ref: 25.331 cl. 10.3.3.25 Note 5, 6 and 12 - - select (pc_HSDSCH_UE_Category_FDD) { // @sic R5w140207 sic@ - case (1, 2) { - v_PeakThroughput := '1000'B;//PTC=8 - v_MaxBitRateDL := '10001001'B;//Downlink bit rate=1173 kbps - if ((pc_EDCH_UE_Category_FDD == 4) or (pc_EDCH_UE_Category_FDD == 6)) { // @sic R5w140207 sic@ - v_PeakThroughput := '1001'B;//PTC=9 - } - } - case (3, 4){ - v_PeakThroughput := '1000'B;//PTC=8 - v_MaxBitRateDL := '10010010'B;//Downlink bit rate=1759 kbps - if ((pc_EDCH_UE_Category_FDD == 4) or (pc_EDCH_UE_Category_FDD == 6)) { // @sic R5w140207 sic@ - v_PeakThroughput := '1001'B;//PTC=9 - } - } - case (5, 6) { - v_PeakThroughput := '1001'B;//PTC=9 - v_MaxBitRateDL := '10101110'B;//Downlink bit rate=3520 kbps - } - case (7, 8) { - v_PeakThroughput := '1001'B;//PTC=9 - v_MaxBitRateDL := '11100000'B;//Downlink bit rate=6720 kbps - } - case (9) { - v_PeakThroughput := '1001'B;//PTC=9 - v_MaxBitRateDL := '11100000'B;//Downlink bit rate=9600 kbps - v_BitRateExt := '00001010'B; - } - case (10) { - v_PeakThroughput := '1001'B;//PTC=9 - v_MaxBitRateDL := '11111110'B;//Downlink bit rate=13400 kbps - v_BitRateExt := '00110000'B; - } - case (11) { - v_MaxBitRateDL := '10000011'B;//Downlink bit rate=800 kbps - select (pc_EDCH_UE_Category_FDD) { // @sic R5w140207 sic@ - case (2, 3, 4) { - v_PeakThroughput := '1000'B;//PTC=8 - } - case (4, 6) { - v_PeakThroughput := '1001'B;//PTC=9 - } - case else { - v_PeakThroughput := '0111'B;//PTC=7 - } - } - } - case (12) { - v_MaxBitRateDL := '10010000'B;//Downlink bit rate=1600 kbps - select (pc_EDCH_UE_Category_FDD) { // @sic R5w140207 sic@ - case (4, 6) { - v_PeakThroughput := '1001'B;//PTC=9 - } - case else { - v_PeakThroughput := '1000'B;//PTC=8 - } - } - } - case else { - FatalError(__FILE__, __LINE__, "Invalid HSDSCH UE Category"); - } - } - - // pc_EDCH_UE_Category is used to determine the QoS for UL - select (pc_EDCH_UE_Category_FDD) { // @sic R5w140207 sic@ - case (1) { v_MaxBitRateUL := oct2bit('81'O); } //640 kbps for EDCH category 1 UE - case (2) { v_MaxBitRateUL := oct2bit('8B'O); } //1280 kbps for EDCH category 2 UE - case (3) { v_MaxBitRateUL := oct2bit('8C'O); } //1344 kbps for EDCH category 3 UE - case (4) { v_MaxBitRateUL := oct2bit('A1'O); } //2688 kbps for EDCH category 4 UE - case (5) { v_MaxBitRateUL := oct2bit('94'O); } //1856 kbps for EDCH category 5 UE - case (6) { v_MaxBitRateUL := oct2bit('CC'O); } //5440 kbps for EDCH category 6 UE - case else { - FatalError(__FILE__, __LINE__, "Incorrect value of pc_EDCH_UE_Category_FDD"); // @sic R5w140207 sic@ - } - } - } - else {//Cell is TDD - v_PeakThroughput := '0100'B; - - select (pc_HSDSCH_UE_Category_TDD) { // @sic R5w140207 sic@ - case (1, 2, 3, 4, 5, 6) { - v_MaxBitRateDL := '10001100'B; //Downlink bit rate=1216 kbps - } - case (7, 8, 9, 10, 11, 12) { - v_MaxBitRateDL := '10010110'B;//Downlink bit rate=1792 kbps - } - case (13, 14, 15) { - v_MaxBitRateDL := '10100010'B;//Downlink bit rate=3648 kbps - } - case else { - FatalError(__FILE__, __LINE__, "Invalid HSDSCH UE Category"); - } - } - - select (pc_EDCH_UE_Category_TDD) { // @sic R5w140207 sic@ - // pc_EDCH_UE_Category is used to determine the QoS for UL - case (1) { v_MaxBitRateUL := oct2bit('7D'O); } //551 kbps for EDCH category 1 UE - case (2) { v_MaxBitRateUL := oct2bit('84'O); } //832 kbps for EDCH category 2 UE - case (3) { v_MaxBitRateUL := oct2bit('89'O); } //1106 kbps for EDCH category 3 UE - case (4) { v_MaxBitRateUL := oct2bit('8A'O); } //1170 kbps for EDCH category 4 UE - case (5) { v_MaxBitRateUL := oct2bit('9A'O); } //2232 kbps for EDCH category 5 UE - case (6) { v_MaxBitRateUL := oct2bit('9A'O); } //2232 kbps for EDCH category 6 UE - case else { - FatalError(__FILE__, __LINE__, "Incorrect value of pc_EDCH_UE_Category_TDD"); // @sic R5w140207 sic@ - } - } - } - - select (p_RB_Configuration) { - case (cell_FACH_PS, cell_FACH_HS, cell_DCH_64kPS_RAB_SRB) { - v_QualityOfService := cs_QoS_InteractiveOrBackgroundMT(v_DlyClass, v_TrafficClass); - } - case (cell_DCH_HS_DSCH) { - v_QualityOfService := cds_QoS_InteractiveOrBackgroundMT_HS(v_DlyClass, - v_TrafficClass, - v_PeakThroughput, - v_MaxSDU_Size, - v_BitRateUL_64kbps, - v_MaxBitRateDL, - v_BitRateExt); - } - case (cell_DCH_E_HS) { - v_QualityOfService := cds_QoS_InteractiveOrBackgroundMT_HS(v_DlyClass, - v_TrafficClass, - v_PeakThroughput, - v_MaxSDU_Size, - v_MaxBitRateUL, - v_MaxBitRateDL, - v_BitRateExt); - } - case else { - FatalError(__FILE__, __LINE__, "RAB Configuration not supported"); - } - } - return v_QualityOfService; - } - - //---------------------------------------------------------------------- - // Functions - //---------------------------------------------------------------------- - - /* - * @desc To set up physical channel DPCH1 and connect DCH1and DCH5 to the physical channel. - * Then map DCCH1-4 on to the DCH5 transport channel and map DTCH1 to the DCH1 transport channel. - * @param p_CellId - * @param p_UL_TrChConfig - * @param p_DL_TrChConfig - * @param p_UL_TrCHInfo - * @param p_DL_TrCHInfo - * @param p_UL_TrLogMapping - * @param p_DL_TrLogMapping - * @param p_DL_DPCHInfo - * @param p_UL_DPCH_Info - * @param p_ActivationTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_FDD(UTRAN_CellId_Type p_CellId, - template (value) CphyTrchConfigReq p_UL_TrChConfig, - template (value) CphyTrchConfigReq p_DL_TrChConfig, - template (value) TrCHInfo p_UL_TrCHInfo, - template (value) TrCHInfo p_DL_TrCHInfo, - template (value) TrCH_LogCHMappingList1 p_UL_TrLogMapping, - template (value) TrCH_LogCHMappingList1 p_DL_TrLogMapping, - template (value) DL_DPCHInfo_r8_FDD p_DL_DPCHInfo, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (value) SS_ActivationTime p_ActivationTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD(p_DL_DPCHInfo), - p_ActivationTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_DL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110216 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - p_DL_TrCHInfo, - p_DL_TrLogMapping, - p_ActivationTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (p_UL_DPCH_Info), - p_ActivationTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_UL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110216 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - p_UL_TrCHInfo, - p_UL_TrLogMapping, - p_ActivationTime)); - } - - /* - * @desc To set up physical channel DPCH1 and connect DCH1and DCH5 to the physical channel. - * Then map DCCH1-4 on to the DCH5 transport channel and map DTCH1 to the DCH1 transport channel. - * In rel-10 - * @param p_CellId - * @param p_UL_TrChConfig - * @param p_DL_TrChConfig - * @param p_UL_TrCHInfo - * @param p_DL_TrCHInfo - * @param p_UL_TrLogMapping - * @param p_DL_TrLogMapping - * @param p_DL_DPCHInfo - * @param p_UL_DPCH_Info - * @param p_ActivationTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_FDD_r10(UTRAN_CellId_Type p_CellId, - template (value) CphyTrchConfigReq p_UL_TrChConfig, - template (value) CphyTrchConfigReq p_DL_TrChConfig, - template (value) TrCHInfo p_UL_TrCHInfo, - template (value) TrCHInfo p_DL_TrCHInfo, - template (value) TrCH_LogCHMappingList1 p_UL_TrLogMapping, - template (value) TrCH_LogCHMappingList1 p_DL_TrLogMapping, - template (value) DL_DPCHInfo_r10_FDD p_DL_DPCHInfo, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (value) SS_ActivationTime p_ActivationTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r10_Extension_FDD(p_DL_DPCHInfo)), - p_ActivationTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_DL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110216 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - p_DL_TrCHInfo, - p_DL_TrLogMapping, - p_ActivationTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r10_Extension_FDD(p_UL_DPCH_Info)), - p_ActivationTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_UL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110216 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - p_UL_TrCHInfo, - p_UL_TrLogMapping, - p_ActivationTime)); - } - - /* - * @desc To set up physical channel DPCH1 and connect DCH1and DCH5 to the physical channel. - * Then map DCCH1-4 on to the DCH5 transport channel and map DTCH1 to the DCH1 transport channel. - * In rel-10 TDD - * @param p_CellId - * @param p_UL_TrChConfig - * @param p_DL_TrChConfig - * @param p_UL_TrCHInfo - * @param p_DL_TrCHInfo - * @param p_UL_TrLogMapping - * @param p_DL_TrLogMapping - * @param p_DL_DPCHInfo - * @param p_UL_DPCH_Info - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_TDD_r10(UTRAN_CellId_Type p_CellId, - template (value) CphyTrchConfigReq_TDD p_UL_TrChConfig, - template (value) CphyTrchConfigReq_TDD p_DL_TrChConfig, - template (value) TrCHInfo_TDD p_UL_TrCHInfo, - template (value) TrCHInfo_TDD p_DL_TrCHInfo, - template (value) TrCH_LogCHMappingList1_TDD p_UL_TrLogMapping, - template (value) TrCH_LogCHMappingList1_TDD p_DL_TrLogMapping, - template (value) DL_DPCH_InfoPerRL_r7 p_DL_DPCHInfo, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(p_DL_DPCHInfo))), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_DL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - p_DL_TrCHInfo, - p_DL_TrLogMapping, - p_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (p_UL_DPCH_Info), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_UL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - p_UL_TrCHInfo, - p_UL_TrLogMapping, - p_ActTime)); - } - - /* - * @desc To set up physical channel DPCH1 and connect DCH1and DCH5 to the physical channel. - * Then map DCCH1-4 on to the DCH5 transport channel and map DTCH1 to the DCH1 transport channel. - * In rel-11 - * @param p_CellId - * @param p_UL_TrChConfig - * @param p_DL_TrChConfig - * @param p_UL_TrCHInfo - * @param p_DL_TrCHInfo - * @param p_UL_TrLogMapping - * @param p_DL_TrLogMapping - * @param p_DL_DPCHInfo - * @param p_UL_DPCH_Info - * @param p_ActivationTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_FDD_r11(UTRAN_CellId_Type p_CellId, - template (value) CphyTrchConfigReq p_UL_TrChConfig, - template (value) CphyTrchConfigReq p_DL_TrChConfig, - template (value) TrCHInfo p_UL_TrCHInfo, - template (value) TrCHInfo p_DL_TrCHInfo, - template (value) TrCH_LogCHMappingList1 p_UL_TrLogMapping, - template (value) TrCH_LogCHMappingList1 p_DL_TrLogMapping, - template (value) DL_DPCHInfo_r11_FDD p_DL_DPCHInfo, - template (value) UL_DPCH_Info_r11 p_UL_DPCH_Info, - template (value) SS_ActivationTime p_ActivationTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(p_DL_DPCHInfo)), - p_ActivationTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_DL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_DL_DPCH1, - cs_UE_Info, - p_DL_TrCHInfo, - p_DL_TrLogMapping, - p_ActivationTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(p_UL_DPCH_Info)), - p_ActivationTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_UL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_UL_DPCH1, - cs_UE_Info, - p_UL_TrCHInfo, - p_UL_TrLogMapping, - p_ActivationTime)); - } - - /* - * @desc To set up physical channel DPCH1 and connect DCH1and DCH5 to the physical channel. - * Then map DCCH1-4 on to the DCH5 transport channel and map DTCH1 to the DCH1 transport channel. - * In rel-11 TDD - * @param p_CellId - * @param p_UL_TrChConfig - * @param p_DL_TrChConfig - * @param p_UL_TrCHInfo - * @param p_DL_TrCHInfo - * @param p_UL_TrLogMapping - * @param p_DL_TrLogMapping - * @param p_DL_DPCHInfo - * @param p_UL_DPCH_Info - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_TDD_r11(UTRAN_CellId_Type p_CellId, - template (value) CphyTrchConfigReq_TDD p_UL_TrChConfig, - template (value) CphyTrchConfigReq_TDD p_DL_TrChConfig, - template (value) TrCHInfo_TDD p_UL_TrCHInfo, - template (value) TrCHInfo_TDD p_DL_TrCHInfo, - template (value) TrCH_LogCHMappingList1_TDD p_UL_TrLogMapping, - template (value) TrCH_LogCHMappingList1_TDD p_DL_TrLogMapping, - template (value) DL_DPCHInfo_r11_TDD p_DL_DPCHInfo, - template (value) UL_DPCH_Info_r11 p_UL_DPCH_Info, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(p_DL_DPCHInfo,omit)), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_DL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - p_DL_TrCHInfo, - p_DL_TrLogMapping, - p_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(p_UL_DPCH_Info)), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_UL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - p_UL_TrCHInfo, - p_UL_TrLogMapping, - p_ActTime)); - } - - /* - * @desc To set up physical channel DPCH1 and connect DCH1and DCH5 to the physical channel. - * Then map DCCH1-4 on to the DCH5 transport channel and map DTCH1 to the DCH1 transport channel. - * @param p_CellId - * @param p_UL_TrChConfig - * @param p_DL_TrChConfig - * @param p_UL_TrCHInfo - * @param p_DL_TrCHInfo - * @param p_UL_TrLogMapping - * @param p_DL_TrLogMapping - * @param p_DL_DPCHInfo - * @param p_UL_DPCH_Info - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_TDD(UTRAN_CellId_Type p_CellId, - template (value) CphyTrchConfigReq_TDD p_UL_TrChConfig, - template (value) CphyTrchConfigReq_TDD p_DL_TrChConfig, - template (value) TrCHInfo_TDD p_UL_TrCHInfo, - template (value) TrCHInfo_TDD p_DL_TrCHInfo, - template (value) TrCH_LogCHMappingList1_TDD p_UL_TrLogMapping, - template (value) TrCH_LogCHMappingList1_TDD p_DL_TrLogMapping, - template (value) DL_DPCHInfo_r8_TDD p_DL_DPCHInfo, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_TDD (p_DL_DPCHInfo), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_DL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - p_DL_TrCHInfo, - p_DL_TrLogMapping, - p_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (p_UL_DPCH_Info), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_UL_TrChConfig)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - p_UL_TrCHInfo, - p_UL_TrLogMapping, - p_ActTime)); - } - - /* - * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. - * @param p_CellId - * @param p_ActTime (default value: cs_ActivateNow) - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_64kPS_RAB(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { - var UL_ScramblingCode v_UL_ScramblingCode; - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8, FDDr9) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - // Same reconfiguration for FDDr8 and FDDr9 - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - f_SS_Config_64kPS_FDD(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_DL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20), - cs_TrLogMappingDL_4DCCH_1DTCH_PS, - cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_64k_PS, flexible), - tsc_DL_DPCH1_ChC_64k_PS, - -, - tsc_DL_TxPower_DPCH_64k), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode), p_ActTime); - } - case (FDDr10) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - f_SS_Config_64kPS_FDD_r10(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_DL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20), - cs_TrLogMappingDL_4DCCH_1DTCH_PS, - cs_DL_DPCH_FDD_r10(cs_DL_CommonInformationRB_SetUp_FDD_r10(tsc_DL_DPCH1_SFP_64k_PS, flexible), - tsc_DL_DPCH1_ChC_64k_PS, - -, - tsc_DL_TxPower_DPCH_64k), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode), p_ActTime); - } - case (FDDr11) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - f_SS_Config_64kPS_FDD_r11(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_DL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20), - cs_TrLogMappingDL_4DCCH_1DTCH_PS, - cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUp_FDD_r11(tsc_DL_DPCH1_SFP_64k_PS, flexible), - tsc_DL_DPCH1_ChC_64k_PS, - -, - tsc_DL_TxPower_DPCH_64k), - cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode), p_ActTime); - } - case (TDDr9){ - // Step 1: Configure a dedicated channel in the UTRAN TDD configuration according to 34.108 cl. 6.11.5.4.1.26 - f_SS_Config_64kPS_TDD(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_DL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrChInfoUL_336_148_TDD, - cs_TrChInfoDL_336_148_TDD, - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20), - cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD, - cs_DL_DPCH_64k_PS_TDD, - cs_UL_DPCH_64k_PS_TDD, - p_ActTime); - } - case (TDDr10){ - f_SS_Config_64kPS_TDD_r10(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_DL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrChInfoUL_336_148_TDD, - cs_TrChInfoDL_336_148_TDD, - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20), - cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD, - cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD, - cs_UL_DPCH_64k_PS_TDD, - p_ActTime); - } - case (TDDr11){ - f_SS_Config_64kPS_TDD_r11(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_DL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrChInfoUL_336_148_TDD, - cs_TrChInfoDL_336_148_TDD, - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20), - cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD, - cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD), - cs_UL_DPCH_64k_PS_TDD_r11, - p_ActTime); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid message class"); - } - } - - // Setup radio bearer B20. - //* Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 - f_UTRAN_SS_RB20_AM_PS_Cfg(p_CellId, cs_OctetModeRLC_Size336); - - // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ - if (not(p_LoopbackRLC_PDU)) { - f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); - } - - f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_64kPS_RAB_SRB); - } - - /* - * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. - * @param p_CellId - * @param p_ActTime (default value: cs_ActivateNow) - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_IRAT) - */ - function f_SS_Config_64kPS_DCH4_RAB(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { - var UL_ScramblingCode v_UL_ScramblingCode; - var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); - - if (v_FDD_TDD_Mode == UTRAN_FDD) { - - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8, FDDr9) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_Config_64kPS_FDD(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD(tsc_UL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_DL_Info_FDD(tsc_DL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD(tsc_UL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD(tsc_DL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20, tsc_UL_DCH4,tsc_UL_DTCH4), //@sic R5s120455 sic@ - cs_TrLogMappingDL_4DCCH_1DTCH_PS (tsc_DL_DCH4,tsc_DL_DTCH4), - cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_64k_PS, flexible), - tsc_DL_DPCH1_ChC_64k_PS, - -, - tsc_DL_TxPower_DPCH_64k), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode), p_ActTime); - } - case (FDDr10) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_Config_64kPS_FDD_r10(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD(tsc_UL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_DL_Info_FDD(tsc_DL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD(tsc_UL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD(tsc_DL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20, tsc_UL_DCH4,tsc_UL_DTCH4), //@sic R5s120455 sic@ - cs_TrLogMappingDL_4DCCH_1DTCH_PS (tsc_DL_DCH4,tsc_DL_DTCH4), - cs_DL_DPCH_FDD_r10(cs_DL_CommonInformationRB_SetUp_FDD_r10(tsc_DL_DPCH1_SFP_64k_PS, flexible), - tsc_DL_DPCH1_ChC_64k_PS, - -, - tsc_DL_TxPower_DPCH_64k), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode), p_ActTime); - } - case ( FDDr11) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_Config_64kPS_FDD_r11(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD(tsc_UL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_DL_Info_FDD(tsc_DL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD(tsc_UL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD(tsc_DL_DCH4), - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20, tsc_UL_DCH4,tsc_UL_DTCH4), //@sic R5s120455 sic@ - cs_TrLogMappingDL_4DCCH_1DTCH_PS (tsc_DL_DCH4,tsc_DL_DTCH4), - cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUp_FDD_r11(tsc_DL_DPCH1_SFP_64k_PS, flexible), - tsc_DL_DPCH1_ChC_64k_PS, - -, - tsc_DL_TxPower_DPCH_64k), - cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode), p_ActTime); - - } - case else { FatalError(__FILE__, __LINE__, "FDD release not supported");} - } - } else if (v_FDD_TDD_Mode == UTRAN_TDD) { - // Step 1: Configure a dedicated channel in the UTRAN TDD configuration according to 34.108 cl. 6.11.5.4.1.26 - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (TDDr9) { - f_SS_Config_64kPS_TDD(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD(tsc_UL_DCH4), //@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_DL_Info_TDD(tsc_DL_DCH4),//@sic R5s130662, R5s140476 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_336_148_TDD(tsc_UL_DCH4),//@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_336_148_TDD(tsc_DL_DCH4), //@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20, tsc_UL_DCH4,tsc_UL_DTCH4), //@sic R5s120455 sic@ - cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD (tsc_DL_DCH4,tsc_DL_DTCH4), - cs_DL_DPCH_64k_PS_TDD, - cs_UL_DPCH_64k_PS_TDD, - p_ActTime); - } - case (TDDr10) { - f_SS_Config_64kPS_TDD_r10(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD(tsc_UL_DCH4), //@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_DL_Info_TDD(tsc_DL_DCH4),//@sic R5s130662, R5s140476 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_336_148_TDD(tsc_UL_DCH4),//@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_336_148_TDD(tsc_DL_DCH4), //@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20, tsc_UL_DCH4,tsc_UL_DTCH4), //@sic R5s120455 sic@ - cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD (tsc_DL_DCH4,tsc_DL_DTCH4), - cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD, - cs_UL_DPCH_64k_PS_TDD, - p_ActTime); - } - case (TDDr11) { - f_SS_Config_64kPS_TDD_r11(p_CellId, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD(tsc_UL_DCH4), //@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_DL_Info_TDD(tsc_DL_DCH4),//@sic R5s130662, R5s140476 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_336_148_TDD(tsc_UL_DCH4),//@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_336_148_TDD(tsc_DL_DCH4), //@sic R5s130662 sic@ - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)), - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20, tsc_UL_DCH4,tsc_UL_DTCH4), //@sic R5s120455 sic@ - cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD (tsc_DL_DCH4,tsc_DL_DTCH4), - cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD), - cs_UL_DPCH_64k_PS_TDD_r11, - p_ActTime); - } - case else { FatalError(__FILE__, __LINE__, "TDD release not supported");} - } - } - - // Setup radio bearer B20. - // Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 - f_UTRAN_SS_RB20_AM_PS_Cfg(p_CellId, cs_OctetModeRLC_Size336,tsc_UL_DTCH4,tsc_DL_DTCH4); //@sic R5s120455 sic@ - - // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ - if (not(p_LoopbackRLC_PDU)) { - f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); - } - - f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_64kPS_RAB_SRB); - } - - /* - * @desc Function to receive the Service Request message - * @param p_CN_Domain - * @param p_Type (default value: ?) - * @status APPROVED (LTE_A, LTE_IRAT, UTRAN) - */ - function f_UTRAN_GMM_ServReq(CN_DomainIdentity p_CN_Domain, - template (present) B3_Type p_Type := ?) runs on UTRAN_PTC - { - var START_Value v_START_Value := '00000000000000000000'B; - var RRC_DATA_IND v_RRC_DataInd; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var KeySeq v_KeySeqPs := v_SecurityInfo.authKeys.AuthPS.KeySeq; - - alt { - [p_CN_Domain == cs_domain] U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, // @sic R5s110465 sic@ - tsc_RB3, - cr_U_ServReqAny (p_Type))) - -> value v_RRC_DataInd {} - [p_CN_Domain == ps_domain] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, // @sic R5s110465 sic@ - tsc_RB3, - cr_U_ServiceRequest(cr_ServiceType(p_Type), - cs_MobileIdTMSIorPTMSI (omit, px_PTMSI_Def), // @sic R5s110466 sic@ - v_KeySeqPs))) - -> value v_RRC_DataInd {} - } - v_START_Value := v_RRC_DataInd.ttcn_start; - f_UTRAN_SS_SecurityDownloadStart(p_CN_Domain, v_START_Value); - } - - /* - * @desc Function for receiving the Activate PDP Request from UE - * @param p_ExpectedQualityOfService - * @return ACTIVATEPDPCONTEXTREQUESTul - * @status APPROVED (LTE_IRAT, UTRAN) - */ - function f_UTRAN_PS_SessionAct_ReceivePDP_Req(template (present) QualityOfService p_ExpectedQualityOfService := cr_QualityOfService_Any) runs on UTRAN_PTC return ACTIVATEPDPCONTEXTREQUESTul - { - var RRC_DATA_IND v_RRC_DataInd; - - U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, // @sic R5s110465 sic@ - tsc_RB3, - cr_U_ActPDP_ContextReqMo(p_ExpectedQualityOfService))) // @sic R5s110771 sic@ - -> value v_RRC_DataInd; - - return v_RRC_DataInd.msg.activatePDPContextRequestul; - } - - - /* - * @desc Increments the currently stored start value by 2, so as to emulate the 25.331 clause 8.5.9 - * This mechanism will not work if more than 4096 messages [FRame numbers for TM mode in MAC] have been passed since last transmission - * @param p_Start - * @return START_Value - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_CalculateStartValue_ConnectedMode(START_Value p_Start) return START_Value - { - var START_Value v_START_Value := int2bit((bit2int(p_Start) + 2), 20); - return v_START_Value; - }; - - - /* - * @desc Function to configure security in SS for the newly established - * Radio Bearer, before receiving the Radio Bearer Setup Complete message from UE - * @param p_CellId - * @param p_Cn_DomainIdentity - * @param p_RbType - * @param p_KC - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_UTRAN_SS_CipheringAM_RAB_UL_DL(UTRAN_CellId_Type p_CellId, - CN_DomainIdentity p_Cn_DomainIdentity, - RB_ConfigType p_RbType, - template (omit) KeyCiphering p_KC) runs on UTRAN_PTC - { - var RLC_SequenceNumber v_RLC_SNs := 0; - var template (value) RB_ActivationTimeInfoList v_RB_ActivationTimeInfoList; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - - select (p_RbType) { - case (cell_FACH_PS, cell_DCH_64kPS_RAB_SRB) { - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoList20(v_RLC_SNs); - } - // HSD configurations: - case (cell_DCH_HS_DSCH) { - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoList25(v_RLC_SNs); - } - // HSU configurations: - case (cell_DCH_E_HS, - cell_E_HS, - cell_DCH_dlSRB_E_HS, - cell_FACH_HS) { - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoList25(v_RLC_SNs); - } - case else { - FatalError(__FILE__, __LINE__, "Configuaration not supported"); - } - } - - f_UTRAN_CRLC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, - v_SecurityInfo.start_PS, - p_KC); //@sic R5s110210 sic@ - - f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, - p_Cn_DomainIdentity, - v_SecurityInfo.dL_CipherMode, - p_RbType, - false); //Do not suspend RLC since RB is established only - - f_UTRAN_ActivateCiphering_RLC_UL(f_UTRAN_CellInfo_GetFDD_TDD(p_CellId), ps_domain, v_RB_ActivationTimeInfoList); - } - - /* - * @desc To be used when CS RAB bearer is set up and security has been activated for CS. - * Function will - * - config security at S for the RB SetUp Complete message - * - receive the Radio Bearer Setup Complete message - * - configure security in SS - * @param p_CellId - * @param p_ActivationTime - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_ReceiveRB_SetupCmpl_CipheringStartedTM_RAB(UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ - ActivationTime p_ActivationTime) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var ActivationTime v_NewCipheringActTime; - var U_RLC_AM_IND v_U_RLC_AM_IND; - - f_UTRAN_CMAC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, - v_SecurityInfo.start_CS, - v_SecurityInfo.authKeys.AuthCS.CKey); - - f_UTRAN_CMAC_UL_DL_CipherCfg(p_CellId, - v_SecurityInfo.dL_CipherMode, - p_ActivationTime, - notInc); - - //Receive Radio Bearer Setup Complete message - U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_108_RB_SetUpCmpl(tsc_RRC_TI))) -> value v_U_RLC_AM_IND; - - v_NewCipheringActTime := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.count_C_ActivationTime; - v_SecurityInfo.start_CS := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; - f_UTRAN_CMAC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, - v_SecurityInfo.start_CS, - v_SecurityInfo.authKeys.AuthCS.CKey); - - f_UTRAN_CMAC_UL_DL_CipherCfg(p_CellId, - v_SecurityInfo.dL_CipherMode, - p_ActivationTime, - notInc); - - //Store the security information - f_UTRAN_Security_Set(v_SecurityInfo); - } - - /* - * @desc To be used when CS RAB bearer is set up and security has not yet been activated for CR. - * Function will - * - receive the Radio Bearer Setup Complete message - * - configure security in SS if USIM is present in UE - * @param p_CellId - * @param p_USIM - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_ReceiveRB_SetupCmpl_CipheringNotStartedTM_RAB(UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ - boolean p_USIM) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var ActivationTime v_NewCipheringActTime; - var U_RLC_AM_IND v_U_RLC_AM_IND; - - //Receive Radio Bearer Setup Complete message - alt{ - //No start value. No RB UL cipher - [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_108_RB_SetUpCmpl(tsc_RRC_TI, omit))) -> value v_U_RLC_AM_IND - { } - //A new start value is provided - [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_108_RB_SetUpCmpl(tsc_RRC_TI))) -> value v_U_RLC_AM_IND - { - v_SecurityInfo.start_CS := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; - } - } - if (p_USIM) { //USIM present in UE - v_NewCipheringActTime := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.count_C_ActivationTime; - - f_UTRAN_CMAC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, - v_SecurityInfo.start_CS); - f_UTRAN_CMAC_UL_DL_CipherCfg (p_CellId, - v_SecurityInfo.dL_CipherMode, - v_NewCipheringActTime, - notInc); - } - - //Store the security information - f_UTRAN_Security_Set(v_SecurityInfo); - } - - /* - * @desc To receive the RB Setup complete message for speech and perform associated Security configuration in SS - * @param p_CellId - * @param p_ActivationTime - * @param p_USIM (default value: true) - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_RRC_ReceiveRB_SetupCmpl_Speech (UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ - ActivationTime p_ActivationTime, //@sic R5s110210 sic@ - boolean p_USIM := true) //@sic R5s110210 sic@ - runs on UTRAN_PTC - { /* @sic R5s120139 - Additional Changes sic@ */ - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - - if ((v_SecurityInfo.cs_cipheringStarted == true)) { - f_UTRAN_ReceiveRB_SetupCmpl_CipheringStartedTM_RAB(p_CellId, p_ActivationTime); //@sic R5s110210 sic@ - } - else if (v_SecurityInfo.cs_cipheringStarted == false) { - f_UTRAN_ReceiveRB_SetupCmpl_CipheringNotStartedTM_RAB(p_CellId, p_USIM); //@sic R5s110210 sic@ - } - } - - /* - * @desc To receive the RB Setup complete message for PS RAB and perform associated Security configuration in SS - * @param p_CellId - * @param p_RbType - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_UTRAN_RRC_ReceiveRB_SetupCmpl_PS_RAB(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_RbType) runs on UTRAN_PTC - { /* @sic R5s120139 - Additional Changes sic@ */ - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var boolean v_CipheringNotStarted := not ((v_SecurityInfo.ps_cipheringStarted == true) and - (v_SecurityInfo.recentSecureDomain == ps_domain)); - var U_RLC_AM_IND v_U_RLC_AM_IND; - - alt { - [v_CipheringNotStarted] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, //@sic R5s110210 sic@ - tsc_RB2, - cr_108_RB_SetUpCmpl(tsc_RRC_TI, omit))) // no START value sent by the UE - {} // No start value, no RB UL cipher - [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, //@sic R5s110210 sic@ - tsc_RB2, - cr_108_RB_SetUpCmpl(tsc_RRC_TI))) - -> value v_U_RLC_AM_IND - { //A new start value is provided - v_SecurityInfo.start_PS := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; - f_UTRAN_Security_Set(v_SecurityInfo); - } - } - - f_UTRAN_SS_CipheringAM_RAB_UL_DL(p_CellId, v_SecurityInfo.recentSecureDomain, p_RbType, v_SecurityInfo.authKeys.AuthPS.CK); //@sic R5s130512 sic@ - } - - /* - * @desc to modify physical channel DPCH1and connect DCH1, DCH2, DCH3 and DCH5 to the physical channel, - * then map DCCH1-4 on to the DCH5 transport channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3) - * to the DCH1, DCH2, DCH3 transport channel respectively. - * Used for AMR speech. - * @param p_CellId - * @param p_SS_ActTime - * @param p_DL_CommonInformation - * @param p_UL_DPCH_Info - * @param p_HS_DPCCHInfo - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_4DCH_Modify_FDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, - template (value) DL_CommonInformation_r8 p_DL_CommonInformation, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(p_DL_CommonInformation, tsc_DL_DPCH1_ChC_Speech)), - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_TrCH_Config (cas_DCH4_DL_Info_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrChInfoDL_122_AMR_FDD, - cs_TrLogMappingDL_4DCCH_3DTCH, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (p_UL_DPCH_Info, p_HS_DPCCHInfo), - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_TrCH_Config(cas_DCH4_UL_Info_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrChInfoUL_122_AMR_FDD, - cs_TrLogMappingUL_4DCCH_3DTCH, - p_SS_ActTime)); // @sic R5s130561 sic@ - } - - /* - * @desc to modify physical channel DPCH1and connect DCH1, DCH2, DCH3 and DCH5 to the physical channel, - * then map DCCH1-4 on to the DCH5 transport channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3) - * to the DCH1, DCH2, DCH3 transport channel respectively. - * Used for AMR speech in rel-10 - * @param p_CellId - * @param p_SS_ActTime - * @param p_DL_CommonInformation - * @param p_UL_DPCH_Info - * @param p_HS_DPCCHInfo - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_4DCH_Modify_FDD_r10(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, - template (value) DL_CommonInformation_r10 p_DL_CommonInformation, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r10_Extension_FDD(cs_DL_DPCH_FDD_r10(p_DL_CommonInformation, tsc_DL_DPCH1_ChC_Speech))), - p_SS_ActTime)); - f_UTRAN_CPHY_TrCH_Config (cas_DCH4_DL_Info_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrChInfoDL_122_AMR_FDD, - cs_TrLogMappingDL_4DCCH_3DTCH, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (p_UL_DPCH_Info, p_HS_DPCCHInfo), - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_TrCH_Config(cas_DCH4_UL_Info_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrChInfoUL_122_AMR_FDD, - cs_TrLogMappingUL_4DCCH_3DTCH, - p_SS_ActTime)); // @sic R5s130561 sic@ - } - - /* - * @desc to modify physical channel DPCH1and connect DCH1, DCH2, DCH3 and DCH5 to the physical channel, - * then map DCCH1-4 on to the DCH5 transport channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3) - * to the DCH1, DCH2, DCH3 transport channel respectively. - * Used for AMR speech in rel-10 - * @param p_CellId - * @param p_SS_ActTime - * @param p_UL_DPCH_Info - * @param p_HS_DPCCHInfo - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_4DCH_Modify_TDD_r10(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_Speech_TDD))), - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CPHY_TrCH_Config (cas_DCH4_DL_Info_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrChInfoDL_122_AMR_TDD, - cs_TrLogMappingDL_4DCCH_3DTCH_TDD, - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (p_UL_DPCH_Info, p_HS_DPCCHInfo), - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_TrCH_Config(cas_DCH4_UL_Info_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrChInfoUL_122_AMR_TDD, - cs_TrLogMappingUL_4DCCH_3DTCH_TDD, - p_SS_ActTime)); // @sic R5s130561 sic@ - } - - /* - * @desc to modify physical channel DPCH1and connect DCH1, DCH2, DCH3 and DCH5 to the physical channel, - * then map DCCH1-4 on to the DCH5 transport channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3) - * to the DCH1, DCH2, DCH3 transport channel respectively. - * Used for AMR speech in rel-11 - * @param p_CellId - * @param p_SS_ActTime - * @param p_DL_CommonInformation - * @param p_UL_DPCH_Info - * @param p_HS_DPCCHInfo - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_4DCH_Modify_FDD_r11(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, - template (value) DL_CommonInformation_r11 p_DL_CommonInformation, - template (value) UL_DPCH_Info_r11 p_UL_DPCH_Info, - template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(p_DL_CommonInformation, tsc_DL_DPCH1_ChC_Speech))), - p_SS_ActTime)); - f_UTRAN_CPHY_TrCH_Config (cas_DCH4_DL_Info_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrChInfoDL_122_AMR_FDD, - cs_TrLogMappingDL_4DCCH_3DTCH, - p_SS_ActTime)); - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(p_UL_DPCH_Info, p_HS_DPCCHInfo)), - p_SS_ActTime)); - f_UTRAN_CPHY_TrCH_Config(cas_DCH4_UL_Info_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrChInfoUL_122_AMR_FDD, - cs_TrLogMappingUL_4DCCH_3DTCH, - p_SS_ActTime)); - } - - /* - * @desc to modify physical channel DPCH1and connect DCH1, DCH2, DCH3 and DCH5 to the physical channel, - * then map DCCH1-4 on to the DCH5 transport channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3) - * to the DCH1, DCH2, DCH3 transport channel respectively. - * Used for AMR speech in rel-11 - * @param p_CellId - * @param p_SS_ActTime - * @param p_UL_DPCH_Info - * @param p_HS_DPCCHInfo - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_4DCH_Modify_TDD_r11(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, - template (value) UL_DPCH_Info_r11 p_UL_DPCH_Info, - template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_Speech_TDD))), - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CPHY_TrCH_Config (cas_DCH4_DL_Info_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrChInfoDL_122_AMR_TDD, - cs_TrLogMappingDL_4DCCH_3DTCH_TDD, - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(p_UL_DPCH_Info, p_HS_DPCCHInfo)), - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_TrCH_Config(cas_DCH4_UL_Info_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrChInfoUL_122_AMR_TDD, - cs_TrLogMappingUL_4DCCH_3DTCH_TDD, - p_SS_ActTime)); // @sic R5s130561 sic@ - } - - /* - * @desc to modify physical channel DPCH1and connect DCH1, DCH2, DCH3 and DCH5 to the physical channel, - * then map DCCH1-4 on to the DCH5 transport channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3) - * to the DCH1, DCH2, DCH3 transport channel respectively. - * Used for AMR speech. - * @param p_CellId - * @param p_SS_ActTime - * @param p_UL_DPCH_Info - * @param p_HS_DPCCHInfo - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_4DCH_Modify_TDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info, - template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_TDD (cs_DL_DPCH_122_AMR_TDD), - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CPHY_TrCH_Config (cas_DCH4_DL_Info_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrChInfoDL_122_AMR_TDD, - cs_TrLogMappingDL_4DCCH_3DTCH_TDD, - p_SS_ActTime)); // @sic R5s130561 sic@ - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (p_UL_DPCH_Info, p_HS_DPCCHInfo), - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CPHY_TrCH_Config(cas_DCH4_UL_Info_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - p_SS_ActTime)); // @sic R5s130561 sic@ - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120049 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrChInfoUL_122_AMR_TDD, - cs_TrLogMappingUL_4DCCH_3DTCH_TDD, - p_SS_ActTime)); // @sic R5s130561 sic@ - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // To downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_SRB_3_4k, fixed, false), tsc_Sfc256_C0)), // @sic R5s110683 sic@ - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_148_DL_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_34_StandAlone_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)), - cs_TrLogMappingDL_4DCCH, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_DL_Cell_DCH_HS_DSCH_PS_RAB_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_FDD(cs_HS_SCCH_Info_FDD, cs_Measurement_Feedback_Info), - false), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_FDD(p_ActTime, - cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD(p_CellId)); - - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_FDD(cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS)); - - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (cs_UL_DPCH_InfoACK_HSDPA_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - cs_HS_DPCCHInfo), // @sic R5s110683 sic@ - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), // @sic R5s110788 sic@ - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB25), - p_ActTime)); - - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH using r9. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD_r9(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // to downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_SRB_3_4k, fixed, false), tsc_Sfc256_C0)), // @sic R5s110683 sic@ - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_148_DL_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_34_StandAlone_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)), - cs_TrLogMappingDL_4DCCH, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_DL_Cell_DCH_HS_DSCH_PS_RAB_r9_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_r9_FDD(cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info), - false), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_FDD(p_ActTime, - cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD(p_CellId)); - - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_FDD(cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS)); - - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (cs_UL_DPCH_InfoACK_HSDPA_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - cs_HS_DPCCHInfo), // @sic R5s110683 sic@ - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), // @sic R5s110788 sic@ - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB25), - p_ActTime)); - - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH using r9. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD_r10(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // to downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r10_Extension_FDD(cs_DL_DPCH_FDD_r10(cs_DL_CommonInformationRB_SetUp_FDD_r10(tsc_DL_DPCH1_SFP_SRB_3_4k, fixed, false), tsc_Sfc256_C0))), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_148_DL_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_34_StandAlone_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)), - cs_TrLogMappingDL_4DCCH, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_DL_Cell_DCH_HS_DSCH_PS_RAB_r9_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_r9_FDD(cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info), - false), - p_ActTime)); - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_FDD(p_ActTime, - cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD(p_CellId)); - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_FDD(cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS)); - - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r10_Extension_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - cs_HS_DPCCHInfo_r10)), // @sic R5s110683 sic@ - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), // @sic R5s110788 sic@ - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB25), - p_ActTime)); - - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH using r10. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_TDD_r10(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // to downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_SRB_TDD))), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_148_DL_TDD, - cs_TFCS_Cmpl0_1_Tx_TDD))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_34_StandAlone_TDD, - cs_TFCS_Cmpl0_1_Tx_TDD), - cs_TrLogMappingDL_4DCCH_TDD, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_TDD(p_CellId, - tsc_HSPDSCH, - cs_DL_Cell_DCH_HS_DSCH_PS_RAB_TDD(pc_HSDSCH_UE_Category_TDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_TDD(cs_HS_SCCH_Info_TDD, - cs_HS_PDSCH_Midamble_Configuration_TDD128), - false), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_TDD(p_ActTime, - cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_TDD(p_CellId)); - - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_TDD(p_CellId, // @sic R5s130604 sic@ - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_TDD(cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, // @sic R5-113036 sic@ - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS_TDD)); - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r10_Extension_TDD(cs_UL_DPCH_64k_PS_TDD, cs_HS_DPCCHInfo_r10)), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s130604 sic@ - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrChInfoUL_336_148_TDD, - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB25), - p_ActTime)); - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH using r9. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD_r11(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // to downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUp_FDD_r11(tsc_DL_DPCH1_SFP_SRB_3_4k, fixed, false), tsc_Sfc256_C0))), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, - cs_DCH_148_DL_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_34_StandAlone_FDD, - cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)), - cs_TrLogMappingDL_4DCCH, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_HS_PDSCHInfoExtension_FDD_r10OrLater(cs_HSPDSCH_Information_FDD_r11(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_FDD_r11(cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info_r11), - false)), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_FDD(p_ActTime, - cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD(p_CellId)); - - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_FDD(p_CellId, - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_FDD(cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS)); - - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - cs_HS_DPCCHInfo_r10)), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, - cs_DCH_336_148_UL_Info_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), - cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB25), - p_ActTime)); - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH using r11. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_TDD_r11(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // to downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_SRB_TDD))), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_148_DL_TDD, - cs_TFCS_Cmpl0_1_Tx_TDD))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_34_StandAlone_TDD, - cs_TFCS_Cmpl0_1_Tx_TDD), - cs_TrLogMappingDL_4DCCH_TDD, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_TDD(p_CellId, - tsc_HSPDSCH, - cs_DL_Cell_DCH_HS_DSCH_PS_RAB_TDD(pc_HSDSCH_UE_Category_TDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_TDD(cs_HS_SCCH_Info_TDD, - cs_HS_PDSCH_Midamble_Configuration_TDD128), - false), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_TDD(p_ActTime, - cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_TDD(p_CellId)); - - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_TDD(p_CellId, // @sic R5s130604 sic@ - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_TDD(cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, // @sic R5-113036 sic@ - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS_TDD)); - - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11, cs_HS_DPCCHInfo_r10)), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s130604 sic@ - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrChInfoUL_336_148_TDD, - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB25), - p_ActTime)); - } - - /* - * @desc To configure SS to packet CELL_DCH / HS-DSCH. - * DL: [max bit rate depending on UE category] / PS RAB - * UL DCH: 64 kbps - * @param p_CellId - * @param p_ActTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_TDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC - { // to downgrade Signalling Channels in DL to 3.4 - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_TDD (cs_DL_DPCH_SRB_StandAlone_TDD), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, - cs_DCH_148_DL_TDD, - cs_TFCS_Cmpl0_1_Tx_TDD))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s110683 sic@ - tsc_DL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_34_StandAlone_TDD, - cs_TFCS_Cmpl0_1_Tx_TDD), - cs_TrLogMappingDL_4DCCH_TDD, - p_ActTime)); - - // Configure HSDPA channels - f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_TDD(p_CellId, - tsc_HSPDSCH, - cs_DL_Cell_DCH_HS_DSCH_PS_RAB_TDD(pc_HSDSCH_UE_Category_TDD, // @sic R5w140207 sic@ - cs_DL_HSPDSCH_Information_TDD(cs_HS_SCCH_Info_TDD, - cs_HS_PDSCH_Midamble_Configuration_TDD128), - false), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_HSPDSCH, - cs_TrChConfigTypeNonDCH, - cs_CphyTrchConfigReq_HS_DSCHMacdFlows_TDD(p_ActTime, - cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))))); // @sic R5s120397 sic@ - - // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. - f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_TDD(p_CellId)); - - f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_TDD(p_CellId, // @sic R5s130604 sic@ - tsc_HSPDSCH, - cs_UE_Info (omit, omit), - cs_TrCHInfo_HS_DSCHMacdFlows_TDD(cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, // @sic R5-113036 sic@ - cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue)))), // @sic R5s120397 sic@ - cs_TrLogMappingDL_MAC_HS_TDD)); - - - // to modify UL DPCH (ul_DataRate = r64) - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (cs_UL_DPCH_64k_PS_TDD, cs_HS_DPCCHInfo), - p_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_TrChConfigTypeDCH_NoSHO, - cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, - cs_DCH_336_148_UL_Info_TDD, - cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx))); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s130604 sic@ - tsc_UL_DPCH1, - cs_UE_Info(omit, omit), - cs_TrChInfoUL_336_148_TDD, - cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB25), - p_ActTime)); - } - - /* - * @desc setup radio bearers RB10, RB11, RB12 for radio beaer subflow#1, subflow#2, subflow#3 - * Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 - * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_RB10_ToRB12_TM_Cfg (UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC - { // @sic R5s120953 adding parameter p_CellId sic@ - var template (value) RB_LogCH_Mapping v_RB_LogCH_Mapping_RB10 := cs_RB_LogCH_Mapping(tsc_UL_DTCH1, tsc_DL_DTCH1); - var template (value) RB_LogCH_Mapping v_RB_LogCH_Mapping_RB11 := cs_RB_LogCH_Mapping(tsc_UL_DTCH2, tsc_DL_DTCH2); - var template (value) RB_LogCH_Mapping v_RB_LogCH_Mapping_RB12 := cs_RB_LogCH_Mapping(tsc_UL_DTCH3, tsc_DL_DTCH3); - - select (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId)) { - case (UTRAN_FDD) { - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case(FDDr8, FDDr9, FDDr10) { - f_UTRAN_CRLC_Config(cas_RB_TM_UL_Info_FDD(utran_CellDedicated, // @sic R5s110596 sic@ - tsc_RB10, - 81, - v_RB_LogCH_Mapping_RB10)); - - f_UTRAN_CRLC_Config(cas_RB_TM_UL_Info_FDD(utran_CellDedicated, // @sic R5s110596 sic@ - tsc_RB11, - 103, - v_RB_LogCH_Mapping_RB11)); - - f_UTRAN_CRLC_Config(cas_RB_TM_UL_Info_FDD(utran_CellDedicated, // @sic R5s110596 sic@ - tsc_RB12, - 60, - v_RB_LogCH_Mapping_RB12)); - } - case(FDDr11) { - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_FDD(utran_CellDedicated, - tsc_RB10, - cs_RB_TM_UL_Info_FDD_r11(81), - v_RB_LogCH_Mapping_RB10)); - - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_FDD(utran_CellDedicated, - tsc_RB11, - cs_RB_TM_UL_Info_FDD_r11(103), - v_RB_LogCH_Mapping_RB11)); - - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_FDD(utran_CellDedicated, - tsc_RB12, - cs_RB_TM_UL_Info_FDD_r11(60), - v_RB_LogCH_Mapping_RB12)); - - } - case else { FatalError(__FILE__, __LINE__, "FDD release not handled");} - } - } - case (UTRAN_TDD) { - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case(TDDr9, TDDr10) { - f_UTRAN_CRLC_Config(cas_RB_TM_UL_Info_TDD(utran_CellDedicated, - tsc_RB10, - 81, - 81, - v_RB_LogCH_Mapping_RB10)); - - f_UTRAN_CRLC_Config(cas_RB_TM_UL_Info_TDD(utran_CellDedicated, - tsc_RB11, - 103, - 103, - v_RB_LogCH_Mapping_RB11)); - - f_UTRAN_CRLC_Config(cas_RB_TM_UL_Info_TDD(utran_CellDedicated, - tsc_RB12, - 60, - 60, - v_RB_LogCH_Mapping_RB12)); - } - case(TDDr11) { - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_TDD(utran_CellDedicated, - tsc_RB10, - cs_RB_TM_UL_Info_TDD_r11(81), - v_RB_LogCH_Mapping_RB10)); - - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_TDD(utran_CellDedicated, - tsc_RB11, - cs_RB_TM_UL_Info_TDD_r11(103), - v_RB_LogCH_Mapping_RB11)); - - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_TDD(utran_CellDedicated, - tsc_RB12, - cs_RB_TM_UL_Info_TDD_r11(60), - v_RB_LogCH_Mapping_RB12)); - - } - - case else { - FatalError(__FILE__, __LINE__, "Cell is neither FDD nor TDD"); - } - } - } - } - } - - /* - * @desc cofigure radio bearers : RB25 DTCH on HS-DSCH and DTCH on DPCH associated HS-DSCH - * @param p_CellId - * @param p_PayloadSize - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_RB25_AM_PS_Cfg(UTRAN_CellId_Type p_CellId, - integer p_PayloadSize) runs on UTRAN_PTC - { - select (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId)) { - case (UTRAN_FDD) { - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (FDDr11) { - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_FDD(utran_CellDedicated,tsc_RB25,cs_RB25_AM_Info_FDD_r11(p_PayloadSize, cds_UL_AM_RLC_HSDPA), cs_RB25_LogChMapping)); - } - case else { - f_UTRAN_CRLC_Config(cas_RB25_AM_Info_FDD(-, -, p_PayloadSize)); // @sic R5s110596 sic@ - } - } - } - case (UTRAN_TDD) { - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (TDDr11) { - f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_TDD(utran_CellDedicated,tsc_RB25,cs_RB25_AM_Info_TDD_r11(p_PayloadSize, cds_UL_AM_RLC_HSDPA), cs_RB25_LogChMapping)); - } - case else { - f_UTRAN_CRLC_Config(cas_RB25_AM_Info_TDD(-, -, p_PayloadSize)); // @sic R5s110596 sic@ - } - } - } - case else { - FatalError(__FILE__, __LINE__, "Cell is neither FDD nor TDD"); - } - } - } - - /* - * @desc Common step to configure RB25 for configurations A12, A13, A14 and A15 - * From FDD TTCN2 test step ts_SS_RLC_Setup_HSU - * @param p_CellId - * @status APPROVED (LTE_IRAT) - */ - function f_SS_RB25_AM_HSPA_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC - { - if (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId) == UTRAN_FDD) { - f_UTRAN_CRLC_Config(cas_RB25_AM_Info_FDD(-, -, -, cds_UL_AM_RLC_HSU)); - } - else { - f_UTRAN_CRLC_Config(cas_RB25_AM_Info_TDD(-, -, -, cds_UL_AM_RLC_HSU)); - } - } - - /* - * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. - * @param p_CellId - * @param p_ActTime (default value: cs_ActivateNow) - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_SS_Config_HSDPA_64kUL_RAB(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8) { - // Configure SS in FDD r8 - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD(p_CellId, p_ActTime); - } - case (FDDr9) { - // Configure SS in FDD r9 - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD_r9(p_CellId, p_ActTime); - } - case (FDDr10) { - // Configure SS in FDD r10 - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD_r10(p_CellId, p_ActTime); - } - case (FDDr11) { - // Configure SS in FDD r11 - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_FDD_r11(p_CellId, p_ActTime); - } - case (TDDr9) { - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_TDD(p_CellId, p_ActTime); - } - case (TDDr10){ - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_TDD_r10(p_CellId, p_ActTime); - } - case (TDDr11){ - f_SS_HS_DSCH_PDSCH_Cfg_DPCH_Modify_TDD_r11(p_CellId, p_ActTime); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid message class"); - } - } - - // Setup radio bearer RB25 - f_SS_RB25_AM_PS_Cfg(p_CellId, 320); - - // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ - if (not(p_LoopbackRLC_PDU)) { - f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB25); - } - - f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_HS_DSCH); - } - - /* - * @desc send RB setup to the UE (on RB2) and wait for local confirmation when requested - * @param p_RB_SetUp - * @param p_CnfFlag (default value: true) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_UTRAN_RB_SetUp_Send(template (value) DL_DCCH_Message p_RB_SetUp, - boolean p_CnfFlag := true) runs on UTRAN_PTC - { - var UTRAN_CellId_Type v_CellId := utran_CellDedicated; //@sic R5s110210 sic@ - - if (p_CnfFlag) { - U_AM.send(cas_RLC_Data_Req_Cnf(v_CellId, tsc_RB2, tsc_Mui, p_RB_SetUp)); - // Receive Acknowledgement on the RB Setup message - U_AM.receive (car_AM_DataMuiCnf (v_CellId, tsc_RB2, tsc_Mui)); - } - else { - U_AM.send(cas_RLC_Data_Req_NoCnf(v_CellId, tsc_RB2, p_RB_SetUp)); - } - } - - /* - * @desc returns the RADIO BEARER SETUP for 64k PS depending on the message class - * @param p_CellId - * @param p_CfnInfo - * @return template (value) DL_DCCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_Get_cs_108_RB_SetUp64k_PS(UTRAN_CellId_Type p_CellId, - UTRAN_CFN_Info_Type p_CfnInfo) - runs on UTRAN_PTC return template (value) DL_DCCH_Message - { // @sic R5-123750 sic@ - - var template (value) DL_DCCH_Message v_RadioBearerSetup; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); // @sic R5s130195 Utran Release sic@ - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (FDDr8) { - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, //@sic R5s110210 sic@ - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (FDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r9_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (FDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r10_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (FDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (TDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, //@sic R5s110210 sic@ - f_UTRAN_CellInfo_GetCellParametersID_TDD (p_CellId)); - } - case (TDDr10){ - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r10_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetCellParametersID_TDD (p_CellId)); - } - case (TDDr11){ - v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r11_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetCellParametersID_TDD (p_CellId)); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid message class"); - } - } - return v_RadioBearerSetup; - } - - /* - * @desc returns the RADIO BEARER SETUP depending on the message class - * @param p_CellId - * @param p_CfnInfo - * @return template (value) DL_DCCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_Get_cs_108_RB_SetUpHS_FromDCH_UL_64k(UTRAN_CellId_Type p_CellId, - UTRAN_CFN_Info_Type p_CfnInfo) runs on UTRAN_PTC return template (value) DL_DCCH_Message - { // @sic R5-123750 sic@ - - var template (value) DL_DCCH_Message v_RadioBearerSetup; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, //@sic R5s110210 sic@ - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), // @sic R5s120686 sic@ - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (FDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r9_FDD (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, //@sic R5s110210 sic@ - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), // @sic R5s120686 sic@ - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (FDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r10_FDD (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (FDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD_r11 (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId)); - } - case (TDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_TDD (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, //@sic R5s110210 sic@ - f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId)); - } - case (TDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r10_TDD (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, //@sic R5s110210 sic@ - f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId)); - } - case (TDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r11_TDD (v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefPS, - f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId)); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - return v_RadioBearerSetup; - } - - /* - * @desc returns the RADIO BEARER SETUP depending on the message class - * @return template (value) DL_DCCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_Get_cs_108_RB_SetUpFACH_PS() runs on UTRAN_PTC return template (value) DL_DCCH_Message - { // @sic R5-123750 sic@ - - var template (value) DL_DCCH_Message v_RadioBearerSetup; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var C_RNTI v_New_CRNTI := '1010101010101010'B; - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case (FDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case (FDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r10(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case (FDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case (TDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case (TDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD_r10(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case (TDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, v_New_CRNTI, tsc_RAB_DefPS); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - return v_RadioBearerSetup; - } - - /* - * @desc returns the RADIO BEARER SETUP depending on the message class - * @param p_CellId - * @param p_CfnInfo - * @return template (value) DL_DCCH_Message - * @status APPROVED (LTE_IRAT) - */ - function f_Get_cs_108_RB_SetUpSpeech (UTRAN_CellId_Type p_CellId, - UTRAN_CFN_Info_Type p_CfnInfo) runs on UTRAN_PTC return template (value) DL_DCCH_Message - { - // @sic R5-123750 sic@ - var template (value) DL_DCCH_Message v_RadioBearerSetup; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var UTRAN_CellInfo_Type_TDD v_CellInfoTDD; //@sic R5s110752 R5s120719 sic@ - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8) { - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (FDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r9_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (FDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r10_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (FDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r11_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (TDDr9) { - v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - v_CellInfoTDD.cellParametersID); - } - case (TDDr10) { - v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r10_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - v_CellInfoTDD.cellParametersID); - } - case (TDDr11) { - v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ - v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r11_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - tsc_RAB_DefCS, - v_CellInfoTDD.cellParametersID); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - return v_RadioBearerSetup; - } - - - /* - * @desc returns the RADIO BEARER SETUP depending on the message class - * @param p_CellId - * @param p_CfnInfo - * @return template (value) DL_DCCH_Message - * @status APPROVED (LTE_IRAT) - */ - function f_Get_cs_108_RB_SetUpPSandConvSpeech(UTRAN_CellId_Type p_CellId, - UTRAN_CFN_Info_Type p_CfnInfo) - runs on UTRAN_PTC return template (value) DL_DCCH_Message - { // @sic R5-123750 sic@ - - var template (value) DL_DCCH_Message v_RadioBearerSetup; - var B8_Type v_RAB_ID := tsc_RAB_DefCS; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (FDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_r9_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (FDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_r10_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (FDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD (p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)); - } - case (TDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetCellParametersID_TDD (p_CellId)); - } - case (TDDr10){ - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_r10_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetCellParametersID_TDD (p_CellId)); - } - case (TDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetCellParametersID_TDD (p_CellId)); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - return v_RadioBearerSetup; - } - - /* - * @desc returns the RADIO BEARER SETUP depending on the message class - * @param p_CellId - * @param p_CfnInfo - * @return template (value) DL_DCCH_Message - * @status APPROVED (LTE_IRAT) - */ - function f_Get_cs_108_RB_SetUpPSandConvSpeech_PSexists(UTRAN_CellId_Type p_CellId, - UTRAN_CFN_Info_Type p_CfnInfo) - runs on UTRAN_PTC return template (value) DL_DCCH_Message - { // @sic R5-123750 sic@ - - var template (value) DL_DCCH_Message v_RadioBearerSetup; - var B8_Type v_RAB_ID := tsc_RAB_DefPS; //@sic R5s120668 sic@ - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)); - } - case (FDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)); - } - case (FDDr10) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r10(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)); - } - case (FDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId), - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)); - } - case (TDDr9) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD(v_SecurityInfo.dl_IntegrityCheckInfo, //@sic R5s130606 sic@ - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId)); - } - case (TDDr10){ - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r10(v_SecurityInfo.dl_IntegrityCheckInfo, //@sic R5s130606 sic@ - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId)); - } - case (TDDr11) { - v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, //@sic R5s130606 sic@ - p_CfnInfo.actTime, - v_RAB_ID, - f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId)); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - return v_RadioBearerSetup; - } - - /* @desc To setup a PS RADIO BEARER and to reconfigure the SS accordingly. - * See TS 36.508 cl. 4.8.3 for more details what bearers are configured. - * @param p_CellId - * @param p_RbType - * @param p_WaitForSetupCmpl (default value: true) - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_UTRAN_RB_SetUp_PS_RAB(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_RbType, - boolean p_WaitForSetupCmpl := true, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { /* @sic R5s120139 - Additional Changes sic@ */ - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime (p_CellId); - var template (value) SS_ActivationTime v_SS_ActivationTime := cs_ActivateCFN (v_CfnInfo.actTime); - var C_RNTI v_New_CRNTI := '1010101010101010'B; - var boolean v_CnfReq := true; //@sic R5s110210 Additional MCC160 changes sic@ - - if (not p_WaitForSetupCmpl) { // @sic R5s120139 sic@ - // estimate the start value since we cannot take it from the Setup Complete message - v_SecurityInfo.start_PS := f_CalculateStartValue_ConnectedMode(v_SecurityInfo.start_PS); - f_UTRAN_Security_Set(v_SecurityInfo); - } - - select (p_RbType) { - case (cell_DCH_64kPS_RAB_SRB) { - // Send RB_Set Up for DCH 64k PS for FDD - f_UTRAN_RB_SetUp_Send (f_Get_cs_108_RB_SetUp64k_PS(p_CellId, v_CfnInfo)); - - //Configure 64k PS RAB at SS - f_SS_Config_64kPS_RAB (p_CellId, v_SS_ActivationTime, p_LoopbackRLC_PDU); // @sic R5s130195 PDCP sic@ - } - case (cell_DCH_HS_DSCH) { - f_UTRAN_RB_SetUp_Send (f_Get_cs_108_RB_SetUpHS_FromDCH_UL_64k(p_CellId, v_CfnInfo)); //@sic R5s110210 Additional MCC160 changes sic@ - - // Configure HSDPA (64k in UL) RAB at SS - f_SS_Config_HSDPA_64kUL_RAB (p_CellId, v_SS_ActivationTime, p_LoopbackRLC_PDU); // @sic R5s130195 PDCP sic@ - } - case (cell_FACH_PS){ - // Send RB_Set Up - f_UTRAN_RB_SetUp_Send (f_Get_cs_108_RB_SetUpFACH_PS(), - not v_CnfReq); //@sic R5s110210 Additional MCC160 changes sic@ - //Delay after sending the RAB SETUP in CELL FACH state; legacy of TTCN-2 suite; kept as exception only - if (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId) == UTRAN_TDD) - { - f_Delay(tsc_DelaySetupFACH_TDD); //@sic R5s140468 sic@ - } else { - f_Delay(tsc_DelaySetupFACH); - }; - - //Reconfigure SS with the new C-RNTI - f_UTRAN_SS_New_CRNTI(p_CellId, v_New_CRNTI); - // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ - if (not(p_LoopbackRLC_PDU)) { f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); } - - f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_FACH_PS); - } - case (cell_DCH_E_HS) { - FatalError(__FILE__, __LINE__, "Configuration not supported"); - } - case else { - FatalError(__FILE__, __LINE__, "Invalid configuration"); - } - } - if (p_WaitForSetupCmpl) { - f_UTRAN_RRC_ReceiveRB_SetupCmpl_PS_RAB (p_CellId, p_RbType); - } - else { // @sic R5s120139 sic@ - // just apply the ciphering at SS using the estimated start value - f_UTRAN_SS_CipheringAM_RAB_UL_DL(p_CellId, ps_domain, p_RbType, v_SecurityInfo.authKeys.AuthPS.CK); - } - } - - /* @desc To setup a Speech RADIO BEARER and to reconfigure the SS accordingly. - * See TS 36.508 cl. 4.8.3 for more details what bearers are configured. - * @param p_CellId - * @param p_USIM (default value: true) - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_RB_SetUp_Speech (UTRAN_CellId_Type p_CellId, - boolean p_USIM := true) //@sic R5s110210 sic@ - runs on UTRAN_PTC - { /* @sic R5s120139 - Additional Changes sic@ */ - var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime (p_CellId); - var template (value) SS_ActivationTime v_SS_ActivationTime := cs_ActivateCFN(v_CfnInfo.actTime); - - f_UTRAN_RB_SetUp_Send (f_Get_cs_108_RB_SetUpSpeech (p_CellId, v_CfnInfo)); //@sic R5s110210 Additional MCC160 changes sic@ - - //Configure SS with for CS Speech RAB - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8, FDDr9) { - f_SS_4DCH_Modify_FDD (p_CellId, - v_SS_ActivationTime, // @sic R5s130561 sic@ - cs_DL_CommonInformationRB_SetUpSpeech (tsc_DL_DPCH1_SFP_Speech), - cs_UL_DPCH_Info_FDD (tsc_UL_DPDCH_SF_Speech, - pl0_84, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)), - omit); - } - case (FDDr10) { - f_SS_4DCH_Modify_FDD_r10 (p_CellId, - v_SS_ActivationTime, // @sic R5s130561 sic@ - cs_DL_CommonInformationRB_SetUpSpeech_r10 (tsc_DL_DPCH1_SFP_Speech), - cs_UL_DPCH_Info_FDD (tsc_UL_DPDCH_SF_Speech, - pl0_84, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)), - omit); - - } - case (FDDr11) { - f_SS_4DCH_Modify_FDD_r11 (p_CellId, - v_SS_ActivationTime, - cs_DL_CommonInformationRB_SetUpSpeech_r11 (tsc_DL_DPCH1_SFP_Speech), - cs_UL_DPCH_Info_FDD_r11 (tsc_UL_DPDCH_SF_Speech, - pl0_84, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId)), - omit); - - } - case (TDDr9) { - f_SS_4DCH_Modify_TDD (p_CellId, - v_SS_ActivationTime, // @sic R5s130561 sic@ - cs_UL_DPCH_Speech_TDD, - omit); - } - case (TDDr10) { - f_SS_4DCH_Modify_TDD_r10 (p_CellId, - v_SS_ActivationTime, // @sic R5s130561 sic@ - cs_UL_DPCH_Speech_TDD, - omit); - } - case (TDDr11) { - f_SS_4DCH_Modify_TDD_r11 (p_CellId, - v_SS_ActivationTime, - cs_UL_DPCH_Speech_TDD_r11, - omit); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - - f_SS_RB10_ToRB12_TM_Cfg (p_CellId); // @sic R5s110596 R5s120953 sic@ - - //Save cell configuration - f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_DCH_Speech); - - f_UTRAN_RRC_ReceiveRB_SetupCmpl_Speech (p_CellId, v_CfnInfo.actTime, p_USIM); - } - - /* - * @desc To establish mobile originated PDP Context. - * This test step will send PDP Context Accept on CellDedicated - * @param p_IP_TypeNo - * @param p_Addr - * @param p_LenOct - * @param p_Ti_S - * @param p_QualityOfService - * @param p_RB_ConfigType - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_SendActivatePDP_Accept (template (value) PDP_TypeNo p_IP_TypeNo, - template (omit) AddressInfo p_Addr, - template (value) Type4Length_Type p_LenOct, - TI p_Ti_S, - template (value) QualityOfService p_QualityOfService, - RB_ConfigType p_RB_ConfigType) runs on UTRAN_PTC - { - var template (value) LLC_SAPI v_LLC_SAPI := cs_LLC_SAPI_UMTS; - var template (value) QualityOfService v_QualityOfService; - var template (value) PktDataProtoAddr v_PktDataProtoAddr := cs_PktDataProtoAddrMT (p_LenOct, p_IP_TypeNo, p_Addr); - - if (pc_GERAN){//UE support GERAN => send with LLC SAPI set as 3 - v_LLC_SAPI := cs_LLC_SAPI_03; // @sic R5s110515 sic@ - } - - select (p_RB_ConfigType) { - case (cell_DCH_64kPS_RAB_SRB) { - v_QualityOfService := cs_QoS_InteractiveOrBackgroundMT (p_QualityOfService.delayClass, p_QualityOfService.trafficClass); - } - case (cell_FACH_PS, cell_FACH_HS) { // Acc to 34.123-3 Table 8.10.2 @sic R5-133508 sic@ - v_QualityOfService := cs_QoS_InteractiveOrBackgroundMT_32kbps (p_QualityOfService.delayClass, p_QualityOfService.trafficClass); - } - case (cell_DCH_HS_DSCH) { - v_QualityOfService := cds_QoS_InteractiveOrBackgroundMT_HS(p_QualityOfService.delayClass, - p_QualityOfService.trafficClass, - p_QualityOfService.peakThroughput, - p_QualityOfService.maxSduSize, - p_QualityOfService.maxBitRateUL, - p_QualityOfService.maxBitRateDL, - p_QualityOfService.maxBitRateDL_Ext); - } - case else { - FatalError(__FILE__, __LINE__, "Radio Bearar configuration not supported"); - } - } - - //Send PDP Context Activation Accept - U_Dc.send (cas_DataReq_PS (utran_CellDedicated, // @sic R5s110465 sic@ - tsc_RB3, - cs_U_ActivatePDPContextAccept(cs_ActPDP_ContextAcpMT_Common (p_Ti_S, - v_LLC_SAPI, - v_QualityOfService, - cs_RadioPriorityHigh (omit), - v_PktDataProtoAddr, - omit, - omit)))); - } - - //------------------------------------------------------------------------------------ - // Physical Channel Reconfiguration - Configuration of Compressed Mode in UE and SS - //------------------------------------------------------------------------------------ - - /* - * @desc Performs activation of compressed mode (through Physical channel reconfiguration) for TCs 8_4_2_2 and 8_4_2_4 - * NOTE: compressed mode is only activated for FDD and when pc_UTRA_CompressedModeRequired is set - * @param p_CellId - * @param p_TGPS_Status_r8_Type .. cs_TGPS_Status_Active or cs_TGPS_Status_Deactive - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(UTRAN_CellId_Type p_CellId, - template (value) TGPS_Status_r8_Type p_TGPS_Status_r8_Type) runs on UTRAN_PTC - { // @sic R5s120686 sic@ - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI; - var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var template (value) DL_CommonInformation_r8 v_DL_CommonInformation; - var SF512_AndCodeNumber v_SF512_AndCodeNumber; - var SF512_AndPilot v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB; - var PositionFixedOrFlexible v_PositionFixedOrFlexible := flexible; - var boolean v_TfciExistence := false; - var DL_TxPower v_DL_TxPower; - var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); - var UL_ScramblingCode v_UL_ScramblingCode; - var template (value) UL_DL_Mode v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_HLS; - var template (value) UL_DL_Mode v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_HLS; - var template (value) UL_DL_Mode v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_HLS; - var template (value) UL_DL_Mode v_UL_DL_Mode; - - select (v_CellConfig) { - case (cell_DCH_Speech) { - FatalError (__FILE__,__LINE__, "Speech branch not yet supported"); - } - case (cell_DCH_64kPS_RAB_SRB) { - v_SF512_AndCodeNumber := tsc_DL_DPCH1_ChC_64k_PS; - v_SF512_AndPilot := tsc_DL_DPCH1_SFP_64k_PS; - v_PositionFixedOrFlexible := flexible; - v_TfciExistence := true; - v_DL_TxPower := tsc_DL_TxPower_DPCH_64k; - } - case (cell_DCH_StandAloneSRB) { - v_SF512_AndCodeNumber := tsc_DL_DPCH1_ChC_SRB; - v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB; - v_PositionFixedOrFlexible := fixed; - v_DL_TxPower := tsc_DL_TxPower_DPCH; - v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_SF2; - v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_SF2; - v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_SF2; - } - case (cell_DCH_HS_DSCH) { // @sic R5s120535 sic@ - v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB_3_4k; - v_SF512_AndCodeNumber := tsc_Sfc256_C0; - v_PositionFixedOrFlexible := fixed; // Anritsu_8424 - fixed postion must used - v_TfciExistence := false; // Anritsu_8424 - No TCFI - v_DL_TxPower := tsc_DL_TxPower_DPCH; - v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_HSDPA; - v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_HLS; - v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_SF2; // Anritsu_8424 - SF/2 must be used for HSDPA - } - case (cell_DCH_E_HS) { - FatalError (__FILE__,__LINE__, "HSDPA/HSUPA branch not supported"); - } - case else { - FatalError (__FILE__,__LINE__, "Invalid Cell configuration"); - } - } - - if (v_FDD_TDD_Mode == UTRAN_FDD) { - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - - if (not pc_InterRAT_UL_CompressedModeRequired and not pc_InterRAT_DL_CompressedModeRequired) { - // Compressed mode does not need to be configured - return; - } - else if (pc_InterRAT_UL_CompressedModeRequired and pc_InterRAT_DL_CompressedModeRequired) { - v_UL_DL_Mode := v_UL_DL_Mode_ULDL; - } - else if (pc_InterRAT_DL_CompressedModeRequired) { - v_UL_DL_Mode := v_UL_DL_Mode_DLonly; - v_TfciExistence := true; - } - else if (pc_InterRAT_UL_CompressedModeRequired) { - v_UL_DL_Mode := v_UL_DL_Mode_ULonly; - v_TfciExistence := true; - } - else { - FatalError (__FILE__,__LINE__, "Invalid PICS settings"); - } - - // Transmit Physical Channel Configuration including Compressed Mode parameters for UL and/or DL - - v_DL_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD(v_SF512_AndPilot, - v_PositionFixedOrFlexible, - v_TfciExistence, - cs_DPCH_CompressedModeInfo(p_TGPS_Status_r8_Type, v_UL_DL_Mode), - omit); - - U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_PhysicalChannelReconfiguration(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - omit, - v_DL_CommonInformation))); - if (pc_InterRAT_DL_CompressedModeRequired) { - // Configure compressed mode in SS DL - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD(cs_DL_DPCH_FDD(v_DL_CommonInformation, - v_SF512_AndCodeNumber, - -, - v_DL_TxPower)), - cs_ActivateNow, - false)); // @sic R5s120462 sic@ - } - if (pc_InterRAT_UL_CompressedModeRequired) { - // Configure compressed mode in SS UL - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode)), - cs_ActivateNow, - false)); // @sic R5s120462 sic@ - } - - // Receive Physical Channel Reconfiguration Complete - U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_PhysicalChannelReconfigurationComplete(v_RRC_TI))); - } - else { - FatalError (__FILE__,__LINE__, "No compressed mode needed for TDD "); - } - } - - /* - * @desc Wrapper function - * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_PhyChReconf_InterRatCompresseModeSet_842x(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC - { // @sic R5s120686 sic@ - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(p_CellId, cs_TGPS_Status_Deactive); - } - - /* - * @desc Wrapper function - * @param p_CellId - * @param p_Tgcfn - * @status - */ - function f_UTRAN_PhyChReconf_InterRatCompresseModeActivate(UTRAN_CellId_Type p_CellId, - TGCFN p_Tgcfn) runs on UTRAN_PTC // @sic R5-123655 sic@ - { - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(p_CellId, cs_TGPS_Status_Active(p_Tgcfn)); - } - - //------------------------------------------------------------------------------------ - // Radio Bearer Establishement in UTRAN - //------------------------------------------------------------------------------------ - - /* - * @desc Performs UTRA PS RB Establishment according to TS 34.108 subclause 7.4.2 in a UTRAN cell. - * @param p_CellId - * @param p_RB_Configuration .. Radio Bearer type to be configured - * @param p_LoopBack (default: false) .. set to true if do not need to trigger UE to initiate call (as in loopback) - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_UE_PsRB_Est(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_RB_Configuration, - boolean p_LoopBack := false) runs on UTRAN_PTC - { - var template (value) EstablishmentCause v_EstCause := f_GetMoEstCause(); - var RB_ConfigType v_CellConfiguration := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var ACTIVATEPDPCONTEXTREQUESTul v_ActPdpContextReq; - var template (value) PktDataProtoAddr v_ExpectedPDN_Address; - var boolean v_NewKeyFlag := true; - var TI v_Ti_R, v_Ti_S;// Transaction Identifier. r = value used to receive CC PDU. s = value used to send CC PDU. - var template (value) QualityOfService v_QualityOfService; - var octetstring v_LAC, v_RAC; - var bitstring v_Ptmsi_Def := oct2bit(px_PTMSI_Def); - var CoOrd_GUTIParam_Type v_GUTI; - var integer v_DedicatedId := 1; - - //Init QoS and PDN Address parameters only if PS RAB is to be configured - if ((p_RB_Configuration == cell_DCH_64kPS_RAB_SRB) or - (p_RB_Configuration == cell_DCH_HS_DSCH) or - (p_RB_Configuration == cell_DCH_E_HS) or - (p_RB_Configuration == cell_FACH_PS) or - (p_RB_Configuration == cell_FACH_HS)) - { - v_ExpectedPDN_Address := f_UG_GetPktDataProtoAddr (true); - v_QualityOfService := f_UTRAN_InitialiseQoS (p_CellId, p_RB_Configuration); - } - else - { - FatalError(__FILE__, __LINE__, "Configuration not supported"); - } - - if (not p_LoopBack) { // @sic R5s120097 sic@ - //Initiate an outgoing PS call - f_UT_ActivatePDPContextUG (UT, v_DedicatedId, v_QualityOfService, ""); - } - - if ((v_CellConfiguration == cell_DCH_StandAloneSRB_NoConn) or - (v_CellConfiguration == cell_FACH_NoConn)) - { - // Activate DHCP and ICMPv6 @sic R5-125676 sic@ - f_UTRAN_IP_Handling_Start_Configuration(PDN_1, p_RB_Configuration); //@sic R5s130512 sic@ - - //Steps 1-3 in 34.108 cl. 7.4.2.2.2.3: RRC connection establishment procedure for MO PS calls on DCH - f_UTRAN_RRC_ConnEst (p_CellId, v_EstCause); - - // Step 4 in 34.108 cl. 7.4.2.2.2.3: RRC connection establishment procedure for MO PS calls on DCH - f_UTRAN_GMM_ServReq (ps_domain); // @sic R5s110465 sic@ - - //Perform NAS session activation procedure for packet switched sessions (34.108 cl. 7.4.2.4.2) - //Steps 1-2 in 34.108 cl. 7.4.2.4.2: Generate authentication and run authentication procedure - f_UTRAN_GMM_Authentication(); - - //Step 3-4 in 34.108 cl. 7.4.2.4.2: Transmit Security Mode Comamnd & Receive Security Mode Comlpete - f_UTRAN_RRC_Security (p_CellId, v_NewKeyFlag, ps_domain); - - //Step 5 in 34.108 cl. 7.4.2.4.2: Receive PDP Context Activation Request - v_ActPdpContextReq := f_UTRAN_PS_SessionAct_ReceivePDP_Req (); //@sic R5s110465, R5s110771 sic@ - - //Assign v_RAB_Id (BITSTRING[8]) with the NSAPI (BITSTRING[4]) value received in ACTIVATE PDP CONTEXT REQUEST message: - //v_RAB_Id := int2bit (bit2int (v_ActPdpContextReq.requestedNSAPI.nSAPI_Value), 8); - //Radio Bearer Identity is set according to 34.108 cl 9.1.1 RADIO BEARER SETUP message for condition A3, A6 or A9. - v_Ti_R := v_ActPdpContextReq.ti; - v_Ti_S.tiFlag := '1'B; - v_Ti_S.tiVal := v_Ti_R.tiVal; - - //Step 1-3 in 34.108 cl. 7.4.2.6.2.3: Radio access bearer establishment procedure for PS mobilie originated calls. - //Step 1-2 in 34.108 cl. 7.4.2.6.2.3: Send RADIO BEARER SETUP and receive COMPLETE - f_UTRAN_RB_SetUp_PS_RAB (p_CellId, p_RB_Configuration); /* @sic R5s120139 - Additional Changes sic@ */ - - //Step 3 in 34.108 cl. 7.4.2.6.2.3: Send ACTIVATE PDP CONTEXT ACCEPT - f_UTRAN_SendActivatePDP_Accept (v_ExpectedPDN_Address.pDP_TypeNo, - v_ExpectedPDN_Address.addrInfo, - v_ExpectedPDN_Address.iel, - v_Ti_S, - v_QualityOfService, - p_RB_Configuration); - } - else - { - FatalError(__FILE__, __LINE__, "Cell is not properly configured"); - } - - // Now transfer over the security parameters @sic R5s120097 sic@ - v_LAC := f_UTRAN_CellInfo_GetLAC(p_CellId); - v_RAC := f_UTRAN_CellInfo_GetRAC(p_CellId); - v_GUTI.MME_GroupId := oct2bit(v_LAC); - v_GUTI.MME_Code := substr (v_Ptmsi_Def, 8, 8); - v_GUTI.M_TMSI := '11'B & substr (v_Ptmsi_Def, 2, 6) & oct2bit(v_RAC) & substr (v_Ptmsi_Def, 16, 16); - - f_UTRAN_SendAuthCoOrdParameters (EUTRA, v_GUTI); - } - - /* - * @desc Return the RB used in the configuration RB20/25 - * @param p_RB_Configuration - * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, UTRAN) - */ - function fl_UTRAN_IP_Handling_GetDrbId(RB_ConfigType p_RB_Configuration) return integer - { - var integer v_DrbId; - - select (p_RB_Configuration) { - case (cell_DCH_64kPS_RAB_SRB, cell_FACH_PS, cell_Four_DTCH_PS_CS) { - v_DrbId := tsc_RB20; - } - case (cell_DCH_E_HS, cell_DCH_HS_DSCH, cell_E_HS, cell_DCH_dlSRB_E_HS, cell_FACH_HS) { - v_DrbId := tsc_RB25; - } - case else { - FatalError(__FILE__, __LINE__, "Configuration not supported"); - } - } - return v_DrbId; - } - - - /* - * @desc start DHCP and ICMPv6 server for given RAB 20 or RAB 25 depending on the configuration - * @param p_PdnIndex - * @param p_RB_Configuration - * @status APPROVED (LTE_A, LTE_IRAT, UTRAN) - */ - function f_UTRAN_IP_Handling_Start_Configuration(PDN_Index_Type p_PdnIndex, - RB_ConfigType p_RB_Configuration) runs on UTRAN_PTC - { // @sic R5-125676 sic@ - var UTRAN_CellId_Type v_CellId := utran_CellDedicated; // @sic R5s140578 change 2.1: cell id is always utran_CellDedicated sic@ - var integer v_DrbId := fl_UTRAN_IP_Handling_GetDrbId (p_RB_Configuration); // @sic R5s140161 sic@ - - f_IP_Handling_Start(IP, p_PdnIndex, cs_DrbInfo_UTRAN(v_CellId, v_DrbId)); - } - - /* - * @desc To reconfigure IP to a new UTRAN cell & RB - * @param p_CellId - * @param p_RB_Configuration - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_IP_Handling_Change_Configuration(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_RB_Configuration) runs on UTRAN_PTC - { - var integer v_DrbId := fl_UTRAN_IP_Handling_GetDrbId (p_RB_Configuration); //@sic R5s140161 sic@ - - f_IP_ChangeUtranCell(IP, enum2int(p_CellId), v_DrbId); - } - - /* - * @desc Configure a UTRA PS Radio Bearer in UE and SS according to TS 34.108 subclause 6.10.2.4.1.26 - * Interactive or background / UL:64 DL: 64 kbps / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH - * @param p_CellId - * @param p_WaitDataSignalling (default value: noDelay) - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_UE_64kPS_Rb_Est(UTRAN_CellId_Type p_CellId, UTRAN_DelayForUserPlaneSignalling_Type p_WaitDataSignalling := noDelay) runs on UTRAN_PTC - { - f_UTRAN_UE_PsRB_Est(p_CellId, cell_DCH_64kPS_RAB_SRB); - // Optional 1.2s delay acc. to 34.108 cl. 7.2.6 to allow user-plane signalling - f_UTRAN_DelayForUserPlaneSignalling(p_WaitDataSignalling); // @sic R5-133560 sic@ - } - - //* @desc Configure a UTRA HSDPA Radio Bearer in UE and SS according to TS 34.108 subclause 6.10.2.4.5.1 - //* Interactive or background / UL:64 DL: [max bit rate depending on UE category] / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH - function f_UTRAN_UE_HSDPA_Rb_Est(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { - f_UTRAN_UE_PsRB_Est(p_CellId, cell_DCH_HS_DSCH); - } - - //* @desc Configure a UTRA HSUPA/HSDPA Radio Bearer in UE and SS according to TS 34.108 subclause 6.10.2.4.6.3 - //* Interactive or background / UL:64 DL: [max bit rate depending on UE category] / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH - function f_UTRAN_UE_HSUPA_Rb_Est(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { - f_UTRAN_UE_PsRB_Est(p_CellId, cell_DCH_E_HS); - } - - /* - * @desc Configure a PS Radio Bearer in UE and SS according to TS - * Interactive or background / UL:64 DL: 64 kbps / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH - * @param p_CellId - * @param p_WaitDataSignalling (default value: noDelay) - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_UE_FACH_PS_Rb_Est(UTRAN_CellId_Type p_CellId, UTRAN_DelayForUserPlaneSignalling_Type p_WaitDataSignalling := noDelay) runs on UTRAN_PTC - { - f_UTRAN_UE_PsRB_Est (p_CellId, cell_FACH_PS); - // Optional 1.2s delay acc. to 34.108 cl. 7.2.6 to allow user-plane signalling - f_UTRAN_DelayForUserPlaneSignalling(p_WaitDataSignalling); // @sic R5s130384 sic@ - } - - /* - * @desc Step 7 to 11 of test procedure in TS 34.123-1 subclause 12.9.14.4 - * The UE performs Network initiated RAB re-establishment in a UTRAN cell - * @param p_CellId - * @param p_RB_Configuration - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_MT_RAB_ReEst(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_RB_Configuration, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { - // Activate DHCP and ICMPv6 @sic R5-125676 sic@ - f_UTRAN_IP_Handling_Start_Configuration(PDN_1, p_RB_Configuration); //@sic R5s130512 sic@ - - f_UTRAN_Page(p_CellId, terminatingInteractiveCall, oct2bit(px_PTMSI_Def)); - f_UTRAN_RRC_ConnEst(p_CellId, terminatingInteractiveCall); - - // RRC connection establishment procedure for MO PS calls on DCH - f_UTRAN_GMM_ServReq(ps_domain); - - // Transmit Security Mode Comamnd & Receive Security Mode Comlpete - f_UTRAN_RRC_Security(p_CellId, false, ps_domain); - - f_UTRAN_RB_SetUp_PS_RAB(p_CellId, p_RB_Configuration, -, p_LoopbackRLC_PDU); /* @sic R5s120139 - Additional Changes sic@ */ - } - - /* - * @desc to configure physical channel DPCH1 and connect DCH1, DCH2, DCH3, DCH4 and DCH5 to the physical channel, then map DCCH1-4 on the DCH5 transport - * channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3), DTCH(subflow#4) to the DCH1, DCH2, DCH3 and DCH4 and transport channel respectively. - * Used for conversational Speech/UL:12.2 kbps DL: 12.2 kbps/Interactive or background / UL: 64 DL: 64kbps / PS RAB + UL 3.4 DL: 3.4 kbps SRBs for DCCH. - * @param p_CellId - * @param p_SS_ActTime - * @param p_DL_CommonInformation - * @param p_UL_DPCH_Info - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, //@sic R5s140096 sic@ - template (value) DL_CommonInformation_r8 p_DL_CommonInformation, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(p_DL_CommonInformation, - tsc_DL_DPCH1_ChC_64k_PS, - tsc_DL_DPCH1_2ndScrC, - tsc_DL_TxPower_DPCH_64k)), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cs_DlDch1To5_DlTfcs0To119_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_DL_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrCHInfoDL_5_0To119_FDD(cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_DL_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD), - cs_TrLogMappingDL_TM3_AM1, - p_SS_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (p_UL_DPCH_Info), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_UlDch1To5_UlTfcs0To119_FDD (p_CellId, - tsc_UL_DPCH1, - cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrCHInfoUL_5_0To119_FDD(cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD), - cs_TrLogMappingUL_TM3_AM1, - p_SS_ActTime)); - }; - - /* - * @desc to configure physical channel DPCH1 and connect DCH1, DCH2, DCH3, DCH4 and DCH5 to the physical channel, then map DCCH1-4 on the DCH5 transport - * channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3), DTCH(subflow#4) to the DCH1, DCH2, DCH3 and DCH4 and transport channel respectively. - * Used for conversational Speech/UL:12.2 kbps DL: 12.2 kbps/Interactive or background / UL: 64 DL: 64kbps / PS RAB + UL 3.4 DL: 3.4 kbps SRBs for DCCH. - * Used for rel-10 test cases - * @param p_CellId - * @param p_SS_ActTime - * @param p_DL_CommonInformation - * @param p_UL_DPCH_Info - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r10(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, // @sic R5s140096 sic@ - template (value) DL_CommonInformation_r8 p_DL_CommonInformation, - template (value) UL_DPCH_Info_r7 p_UL_DPCH_Info) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(p_DL_CommonInformation, - tsc_DL_DPCH1_ChC_64k_PS, - tsc_DL_DPCH1_2ndScrC, - tsc_DL_TxPower_DPCH_64k)), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cs_DlDch1To5_DlTfcs0To119_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_DL_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrCHInfoDL_5_0To119_FDD(cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_DL_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD), - cs_TrLogMappingDL_TM3_AM1, - p_SS_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_FDD (p_UL_DPCH_Info), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_UlDch1To5_UlTfcs0To119_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrCHInfoUL_5_0To119_FDD(cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD), - cs_TrLogMappingUL_TM3_AM1, - p_SS_ActTime)); - } - - /* - * @desc to configure physical channel DPCH1 and connect DCH1, DCH2, DCH3, DCH4 and DCH5 to the physical channel, then map DCCH1-4 on the DCH5 transport - * channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3), DTCH(subflow#4) to the DCH1, DCH2, DCH3 and DCH4 and transport channel respectively. - * Used for conversational Speech/UL:12.2 kbps DL: 12.2 kbps/Interactive or background / UL: 64 DL: 64kbps / PS RAB + UL 3.4 DL: 3.4 kbps SRBs for DCCH. - * Used for rel-10 test cases - * @param p_CellId - * @param p_SS_ActTime - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r10(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_r7_PS_and_ConvSpeech_TDD))), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cs_DlDch1To5_DlTfcs0To119_TDD (p_CellId, - tsc_DL_DPCH1, - cs_DCH_148_TFS_DL_TDD, - cs_DCH_81_TFS_DL_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrCHInfoDL_5_0To119_TDD(cs_DCH_148_TFS_DL_TDD, - cs_DCH_81_TFS_DL_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD), - cs_TrLogMappingDL_TM3_AM1_TDD, - p_SS_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (cs_UL_DPCH_PS_and_ConvSpeech_TDD), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_UlDch1To5_UlTfcs0To119_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DCH_148_TFS_UL_TDD, - cs_DCH_81_TFS_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrCHInfoUL_5_0To119_TDD(cs_DCH_148_TFS_UL_TDD, - cs_DCH_81_TFS_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD), - cs_TrLogMappingUL_TM3_AM1_TDD, - p_SS_ActTime)); - } - - /* - * @desc to configure physical channel DPCH1 and connect DCH1, DCH2, DCH3, DCH4 and DCH5 to the physical channel, then map DCCH1-4 on the DCH5 transport - * channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3), DTCH(subflow#4) to the DCH1, DCH2, DCH3 and DCH4 and transport channel respectively. - * Used for conversational Speech/UL:12.2 kbps DL: 12.2 kbps/Interactive or background / UL: 64 DL: 64kbps / PS RAB + UL 3.4 DL: 3.4 kbps SRBs for DCCH. - * Used for rel-10 test cases - * @param p_CellId - * @param p_SS_ActTime - * @param p_DL_CommonInformation - * @param p_UL_DPCH_Info - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r11(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime, //@sic R5s140096 sic@ - template (value) DL_CommonInformation_r11 p_DL_CommonInformation, - template (value) UL_DPCH_Info_r11 p_UL_DPCH_Info) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_FDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(p_DL_CommonInformation, - tsc_DL_DPCH1_ChC_64k_PS, - tsc_DL_DPCH1_2ndScrC, - tsc_DL_TxPower_DPCH_64k))), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cs_DlDch1To5_DlTfcs0To119_FDD(p_CellId, - tsc_DL_DPCH1, - cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_DL_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrCHInfoDL_5_0To119_FDD(cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_DL_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD), - cs_TrLogMappingDL_TM3_AM1, - p_SS_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(p_UL_DPCH_Info)), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_UlDch1To5_UlTfcs0To119_FDD(p_CellId, - tsc_UL_DPCH1, - cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrCHInfoUL_5_0To119_FDD(cs_DCH_148_TFS_FDD, - cs_DCH_81_TFS_FDD, - cs_DCH_103_TFS_FDD, - cs_DCH_60_TFS_FDD, - cs_DCH_336_TFS_FDD), - cs_TrLogMappingUL_TM3_AM1, - p_SS_ActTime)); - } - - /* - * @desc to configure physical channel DPCH1 and connect DCH1, DCH2, DCH3, DCH4 and DCH5 to the physical channel, then map DCCH1-4 on the DCH5 transport - * channel and map DTCH(subflow#1), DTCH(subflow#2), DTCH(subflow#3), DTCH(subflow#4) to the DCH1, DCH2, DCH3 and DCH4 and transport channel respectively. - * Used for conversational Speech/UL:12.2 kbps DL: 12.2 kbps/Interactive or background / UL: 64 DL: 64kbps / PS RAB + UL 3.4 DL: 3.4 kbps SRBs for DCCH. - * Used for rel-11 test cases - * @param p_CellId - * @param p_SS_ActTime - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r11(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime) runs on UTRAN_PTC - { - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_r7_PS_and_ConvSpeech_TDD))), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_DlDch1To5_DlTfcs0To119_TDD(p_CellId, - tsc_DL_DPCH1, - cs_DCH_148_TFS_DL_TDD, - cs_DCH_81_TFS_DL_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrCHInfoDL_5_0To119_TDD(cs_DCH_148_TFS_DL_TDD, - cs_DCH_81_TFS_DL_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD), - cs_TrLogMappingDL_TM3_AM1_TDD, - p_SS_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_UlDch1To5_UlTfcs0To119_TDD(p_CellId, - tsc_UL_DPCH1, - cs_DCH_148_TFS_UL_TDD, - cs_DCH_81_TFS_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrCHInfoUL_5_0To119_TDD(cs_DCH_148_TFS_UL_TDD, - cs_DCH_81_TFS_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD), - cs_TrLogMappingUL_TM3_AM1_TDD, - p_SS_ActTime)); - } - - /* - * @desc as f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD but for TDD - * @param p_CellId - * @param p_SS_ActTime - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_SS_ActTime) runs on UTRAN_PTC - { - - f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_DL_DPCH1, - cs_DPCHInfo_DL_TDD (cs_DL_DPCH_PS_and_ConvSpeech_TDD), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config (cs_DlDch1To5_DlTfcs0To119_TDD (p_CellId, - tsc_DL_DPCH1, - cs_DCH_148_TFS_DL_TDD, - cs_DCH_81_TFS_DL_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_DL_DPCH1, - cs_UE_Info, - cs_TrCHInfoDL_5_0To119_TDD(cs_DCH_148_TFS_DL_TDD, - cs_DCH_81_TFS_DL_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD), - cs_TrLogMappingDL_TM3_AM1_TDD, - p_SS_ActTime)); - - f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DPCHInfo_UL_TDD (cs_UL_DPCH_PS_and_ConvSpeech_TDD), - p_SS_ActTime)); - - f_UTRAN_CPHY_TrCH_Config(cs_UlDch1To5_UlTfcs0To119_TDD (p_CellId, - tsc_UL_DPCH1, - cs_DCH_148_TFS_UL_TDD, - cs_DCH_81_TFS_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD, - p_SS_ActTime)); - - f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120070 sic@ - tsc_UL_DPCH1, - cs_UE_Info, - cs_TrCHInfoUL_5_0To119_TDD(cs_DCH_148_TFS_UL_TDD, - cs_DCH_81_TFS_TDD, - cs_DCH_103_TFS_TDD, - cs_DCH_60_TFS_TDD, - cs_DCH_336_TFS_TDD), - cs_TrLogMappingUL_TM3_AM1_TDD, - p_SS_ActTime)); - }; - - /* @desc From TTCN2 ts_SendRB_SetUpInteractBackg_64k_ConvSpeech_PS_CS: - * Test step for RB setup message for Interactive or background / UL:64 DL:64 kbps / PS RAB + Transport and - * physical channel Infornation for both combined PS and for Conversational / speech / UL:12.2 DL:12.2 kbps / CS RAB - * @param p_CellId - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_Setup_RAB_PS_and_ConvSpeech (UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC - { - var U_RLC_AM_IND v_UTRAN_RLC_AM_IND; - var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime (p_CellId); - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get (); - - f_UTRAN_RB_SetUp_Send (f_Get_cs_108_RB_SetUpPSandConvSpeech (p_CellId, v_CfnInfo)); - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8, FDDr9) { - //Configure SS for additional CS Speech RAB - // FDDr8 and FDDr9 - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD (p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime), - cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD (tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId))); - } - case(FDDr10) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r10 (p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime), - cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD (tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId))); - } - case(FDDr11) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r11 (p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime), - cs_DL_CommonInformationRB_SetUp_FDD_r11 (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId))); - } - case (TDDr9) { - //Configure SS with for CS Speech RAB - // TDDr9 - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD (p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime)); - } - case (TDDr10) { - //Configure SS with for CS Speech RAB - // TDDr10 - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r10 (p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime)); - } - case (TDDr11) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r11 (p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime)); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid message class"); - } - } - - - f_SS_RB10_ToRB12_TM_Cfg (p_CellId); // @sic R5s110596 R5S120953 sic@ - - //Save cell configuration - f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_Four_DTCH_PS_CS); - - f_UTRAN_CMAC_SecurityMode_Config (v_SecurityInfo.recentSecureDomain, - v_SecurityInfo.start_CS, - v_SecurityInfo.authKeys.AuthCS.CKey); - - f_UTRAN_CMAC_UL_DL_CipherCfg (p_CellId, //@sic R5s130243 sic@ - v_SecurityInfo.dL_CipherMode, - v_CfnInfo.actTime, - notInc); - - //Receive Radio Bearer Setup Complete message - U_AM.receive(car_RLC_Data_Ind (utran_CellDedicated, // @sic R5s120070 sic@ - tsc_RB2, - cr_108_RB_SetUpCmpl (tsc_RRC_TI))) -> value v_UTRAN_RLC_AM_IND; - - v_SecurityInfo.start_CS := v_UTRAN_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; - - //Store the security information - f_UTRAN_Security_Set (v_SecurityInfo); - //Download security keys to SS - f_UTRAN_SS_DownloadSecurityKey (p_CellId, cs_domain); - } - - /* @desc Test step for RB setup message for PS RAB when Conversational / speech is already established - * Does not receive RB Setup complete - * @param p_CellId - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_Setup_RAB_PS_and_ConvSpeech_PSexists(UTRAN_CellId_Type p_CellId, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { // @sic R5s120301 sic@ - var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime (p_CellId); - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get (); - - f_UTRAN_RB_SetUp_Send(f_Get_cs_108_RB_SetUpPSandConvSpeech_PSexists(p_CellId, v_CfnInfo)); - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr8, FDDr9) { - //Configure SS for additional CS Speech RAB - // FDDr8 and FDDr9 - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD(p_CellId, - cs_ActivateCFN (v_CfnInfo.actTime), - cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId))); - } - case (FDDr10) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r10(p_CellId, - cs_ActivateCFN (v_CfnInfo.actTime), - cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId))); - - } - case (FDDr11) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r11(p_CellId, - cs_ActivateCFN (v_CfnInfo.actTime), - cs_DL_CommonInformationRB_SetUp_FDD_r11 (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId))); - - } - case (TDDr9) { - //Configure SS with for CS Speech RAB - // TDDr9 - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD(p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime)); - } - case (TDDr10){ - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r10(p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime)); - } - case (TDDr11) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r11(p_CellId, - cs_ActivateCFN(v_CfnInfo.actTime)); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid message class"); - } - - } - - f_UTRAN_SS_RB20_AM_PS_Cfg (p_CellId, cs_OctetModeRLC_Size336, tsc_UL_DTCH4, tsc_DL_DTCH4); // @sic R5s130195 PDCP sic@ - // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ - if (not(p_LoopbackRLC_PDU)) { - f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); - } - - v_SecurityInfo.start_PS := f_CalculateStartValue_ConnectedMode(v_SecurityInfo.start_PS); - f_UTRAN_Security_Set(v_SecurityInfo); - - f_UTRAN_SS_CipheringAM_RAB_UL_DL(p_CellId, ps_domain, cell_DCH_64kPS_RAB_SRB, v_SecurityInfo.authKeys.AuthPS.CK); - } - - /* - * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. - * @param p_CellId - * @param p_ActTime (default value: cs_ActivateNow) - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_Config_ConvSpeech_RAB(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime := cs_ActivateNow) runs on UTRAN_PTC - { - var UL_ScramblingCode v_UL_ScramblingCode; - var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); - - - if (v_FDD_TDD_Mode == UTRAN_FDD) { - - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()){ - case(FDDr8, FDDr9) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_4DCH_Modify_FDD(p_CellId, - p_ActTime, - cs_DL_CommonInformationRB_SetUpSpeech (tsc_DL_DPCH1_SFP_Speech), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_Speech, - pl0_84, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - omit); - } - case (FDDr10) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_4DCH_Modify_FDD_r10(p_CellId, - p_ActTime, - cs_DL_CommonInformationRB_SetUpSpeech_r10 (tsc_DL_DPCH1_SFP_Speech), - cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_Speech, - pl0_84, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - omit); - } - case(FDDr11) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_4DCH_Modify_FDD_r11(p_CellId, - p_ActTime, - cs_DL_CommonInformationRB_SetUpSpeech_r11 (tsc_DL_DPCH1_SFP_Speech), - cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_Speech, - pl0_84, - f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), - omit); - } - case else { FatalError(__FILE__, __LINE__, "FDD release not handled")} - } - } - else if (v_FDD_TDD_Mode == UTRAN_TDD) { - // Step 1: Configure a dedicated channel in the UTRAN TDD configuration according to 34.108 cl. 6.11.5.4.1.26 - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()){ - case (TDDr9) { - f_SS_4DCH_Modify_TDD (p_CellId, - p_ActTime, - cs_UL_DPCH_Speech_TDD, - omit); - } - case (TDDr10) { - f_SS_4DCH_Modify_TDD_r10 (p_CellId, - p_ActTime, - cs_UL_DPCH_Speech_TDD, - omit); - } - case (TDDr11) { - f_SS_4DCH_Modify_TDD_r11 (p_CellId, - p_ActTime, - cs_UL_DPCH_Speech_TDD_r11, - omit); - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - } - - // Setup radio bearer 10 to 12. - // Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 - f_SS_RB10_ToRB12_TM_Cfg(p_CellId); //@sic R5s120953 sic@ - - //Save cell configuration - f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_Speech); - } - - /* - * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. - * @param p_CellId - * @param p_ActTime (default value: cs_ActivateNow) - * @param p_LoopbackRLC_PDU (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_SS_Config_ConvSpeech_64kPS_RAB(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, - boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ - runs on UTRAN_PTC - { - var UL_ScramblingCode v_UL_ScramblingCode; - var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); - - if (v_FDD_TDD_Mode == UTRAN_FDD) { - - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (FDDr8, FDDr9) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD (p_CellId, - p_ActTime, - cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD (tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId))); - } - case (FDDr10) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r10 (p_CellId, - p_ActTime, - cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD (tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId))); - } - case (FDDr11) { - // Configure SS for cell_DCH_64kPS_RAB_SRB configuration - f_SS_5DCH_Modify_PS_and_ConvSpeech_FDD_r11 (p_CellId, - p_ActTime, - cs_DL_CommonInformationRB_SetUp_FDD_r11 (tsc_DL_DPCH1_SFP_64k_PS, flexible), - cs_UL_DPCH_Info_FDD_r11 (tsc_UL_DPDCH_SF_64k_PS, - pl0_76, - f_UTRAN_CellInfo_GetULScrmCode_FDD (p_CellId))); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid FDD release"); - } - } - } else if (v_FDD_TDD_Mode == UTRAN_TDD) { - //Configure SS with for CS Speech RAB - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (TDDr9) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD (p_CellId, - p_ActTime); - } - case (TDDr10) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r10 (p_CellId, - p_ActTime); - } - case (TDDr11) { - f_SS_5DCH_Modify_PS_and_ConvSpeech_TDD_r11 (p_CellId, - p_ActTime); - } - case else { - FatalError(__FILE__, __LINE__, "Not a valid message class"); - } - } - } - - // Setup radio bearer 10 to 12. - //* Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 - f_SS_RB10_ToRB12_TM_Cfg(p_CellId); //@sic R5s120953 sic@ - // Setup radio bearer RB20 - f_UTRAN_SS_RB20_AM_PS_Cfg (p_CellId, cs_OctetModeRLC_Size336, tsc_UL_DTCH4, tsc_DL_DTCH4 ); - - // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ - if (not(p_LoopbackRLC_PDU)) { f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); } //@sic R5s140259 sic@ - - //Save cell configuration - f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_Four_DTCH_PS_CS); - } - function f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common_r11(UTRAN_CellId_Type p_CellId, - template (value) TGPS_Status_r10_Type p_TGPS_Status_r10_Type) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI; - var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var template (value) DL_CommonInformation_r11 v_DL_CommonInformation; - var SF512_AndCodeNumber v_SF512_AndCodeNumber; - var SF512_AndPilot v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB; - var PositionFixedOrFlexible v_PositionFixedOrFlexible := flexible; - var boolean v_TfciExistence := false; - var DL_TxPower v_DL_TxPower; - var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); - var UL_ScramblingCode v_UL_ScramblingCode; - var template (value) UL_DL_Mode v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_HLS; - var template (value) UL_DL_Mode v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_HLS; - var template (value) UL_DL_Mode v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_HLS; - var template (value) UL_DL_Mode v_UL_DL_Mode; - - select (v_CellConfig) { - case (cell_DCH_Speech) { - FatalError (__FILE__,__LINE__, "Speech branch not yet supported"); - } - case (cell_DCH_64kPS_RAB_SRB) { - v_SF512_AndCodeNumber := tsc_DL_DPCH1_ChC_64k_PS; - v_SF512_AndPilot := tsc_DL_DPCH1_SFP_64k_PS; - v_PositionFixedOrFlexible := flexible; - v_TfciExistence := true; - v_DL_TxPower := tsc_DL_TxPower_DPCH_64k; - } - case (cell_DCH_StandAloneSRB) { - v_SF512_AndCodeNumber := tsc_DL_DPCH1_ChC_SRB; - v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB; - v_PositionFixedOrFlexible := fixed; - v_DL_TxPower := tsc_DL_TxPower_DPCH; - v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_SF2; - v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_SF2; - v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_SF2; - } - case (cell_DCH_HS_DSCH) { - v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB_3_4k; - v_SF512_AndCodeNumber := tsc_Sfc256_C0; - v_PositionFixedOrFlexible := fixed; - v_TfciExistence := false; - v_DL_TxPower := tsc_DL_TxPower_DPCH; - v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_HSDPA; - v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_HLS; - v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_SF2; - } - case (cell_DCH_E_HS) { - FatalError (__FILE__,__LINE__, "HSDPA/HSUPA branch not supported"); - } - case else { - FatalError (__FILE__,__LINE__, "Invalid Cell configuration"); - } - } - - if (v_FDD_TDD_Mode == UTRAN_FDD) { - v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); - - if (not pc_InterRAT_UL_CompressedModeRequired and not pc_InterRAT_DL_CompressedModeRequired) { - // Compressed mode does not need to be configured - return; - } - else if (pc_InterRAT_UL_CompressedModeRequired and pc_InterRAT_DL_CompressedModeRequired) { - v_UL_DL_Mode := v_UL_DL_Mode_ULDL; - } - else if (pc_InterRAT_DL_CompressedModeRequired) { - v_UL_DL_Mode := v_UL_DL_Mode_DLonly; - v_TfciExistence := true; - } - else if (pc_InterRAT_UL_CompressedModeRequired) { - v_UL_DL_Mode := v_UL_DL_Mode_ULonly; - v_TfciExistence := true; - } - else { - FatalError (__FILE__,__LINE__, "Invalid PICS settings"); - } - - // Transmit Physical Channel Configuration including Compressed Mode parameters for UL and/or DL - - v_DL_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r11(v_SF512_AndPilot, - v_PositionFixedOrFlexible, - v_TfciExistence, - cs_DPCH_CompressedModeInfo_r10(p_TGPS_Status_r10_Type, v_UL_DL_Mode), - omit); - - U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_PhysicalChannelReconfiguration_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - omit, - v_DL_CommonInformation))); - if (pc_InterRAT_DL_CompressedModeRequired) { - // Configure compressed mode in SS DL - f_UTRAN_CPHY_RL_Modify(cas_108_DL_DPCH_ModifyInfo_r10(p_CellId, - tsc_DL_DPCH1, - cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(v_DL_CommonInformation, - v_SF512_AndCodeNumber, - -, - v_DL_TxPower)), - cs_ActivateNow, - false)); - } - if (pc_InterRAT_UL_CompressedModeRequired) { - // Configure compressed mode in SS UL - f_UTRAN_CPHY_RL_Modify(cas_108_DL_DPCH_ModifyInfo_r10(p_CellId, - tsc_UL_DPCH1, - cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, - pl0_96, - v_UL_ScramblingCode)), - cs_ActivateNow, - false)); - } - - // Receive Physical Channel Reconfiguration Complete - U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_PhysicalChannelReconfigurationComplete(v_RRC_TI))); - } - else { - FatalError (__FILE__,__LINE__, "No compressed mode needed for TDD "); - } - } -} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn b/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn deleted file mode 100644 index 959b03f..0000000 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn +++ /dev/null @@ -1,33804 +0,0 @@ -UTRAN-RRC-ASN1-Definitions DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN --- ***** RRC ASN.1 definitions extracted from TS 25.331 (Revision b.5.0) ***** ---************************************************************** --- --- Downlink DCCH messages --- ---************************************************************** - -DL-DCCH-Message ::= SEQUENCE { - integrityCheckInfo IntegrityCheckInfo OPTIONAL, - message DL-DCCH-MessageType -} - -DL-DCCH-MessageType ::= CHOICE { - activeSetUpdate ActiveSetUpdate, - assistanceDataDelivery AssistanceDataDelivery, - cellChangeOrderFromUTRAN CellChangeOrderFromUTRAN, - cellUpdateConfirm CellUpdateConfirm, - counterCheck CounterCheck, - downlinkDirectTransfer DownlinkDirectTransfer, - handoverFromUTRANCommand-GSM HandoverFromUTRANCommand-GSM, - handoverFromUTRANCommand-CDMA2000 HandoverFromUTRANCommand-CDMA2000, - measurementControl MeasurementControl, - pagingType2 PagingType2, - physicalChannelReconfiguration PhysicalChannelReconfiguration, - physicalSharedChannelAllocation PhysicalSharedChannelAllocation, - radioBearerReconfiguration RadioBearerReconfiguration, - radioBearerRelease RadioBearerRelease, - radioBearerSetup RadioBearerSetup, - rrcConnectionRelease RRCConnectionRelease, - securityModeCommand SecurityModeCommand, - signallingConnectionRelease SignallingConnectionRelease, - transportChannelReconfiguration TransportChannelReconfiguration, - transportFormatCombinationControl TransportFormatCombinationControl, - ueCapabilityEnquiry UECapabilityEnquiry, - ueCapabilityInformationConfirm UECapabilityInformationConfirm, - uplinkPhysicalChannelControl UplinkPhysicalChannelControl, - uraUpdateConfirm URAUpdateConfirm, - utranMobilityInformation UTRANMobilityInformation, - handoverFromUTRANCommand-GERANIu HandoverFromUTRANCommand-GERANIu, - mbmsModifiedServicesInformation MBMSModifiedServicesInformation, - etwsPrimaryNotificationWithSecurity ETWSPrimaryNotificationWithSecurity, - handoverFromUTRANCommand-EUTRA HandoverFromUTRANCommand-EUTRA, - ueInformationRequest UEInformationRequest, - loggingMeasurementConfiguration LoggingMeasurementConfiguration, - spare1 NULL -} - ---************************************************************** --- --- Uplink DCCH messages --- ---************************************************************** - -UL-DCCH-Message ::= SEQUENCE { - integrityCheckInfo IntegrityCheckInfo OPTIONAL, - message UL-DCCH-MessageType -} - -UL-DCCH-MessageType ::= CHOICE { - activeSetUpdateComplete ActiveSetUpdateComplete, - activeSetUpdateFailure ActiveSetUpdateFailure, - cellChangeOrderFromUTRANFailure CellChangeOrderFromUTRANFailure, - counterCheckResponse CounterCheckResponse, - handoverToUTRANComplete HandoverToUTRANComplete, - initialDirectTransfer InitialDirectTransfer, - handoverFromUTRANFailure HandoverFromUTRANFailure, - measurementControlFailure MeasurementControlFailure, - measurementReport MeasurementReport, - physicalChannelReconfigurationComplete - PhysicalChannelReconfigurationComplete, - physicalChannelReconfigurationFailure - PhysicalChannelReconfigurationFailure, - radioBearerReconfigurationComplete RadioBearerReconfigurationComplete, - radioBearerReconfigurationFailure RadioBearerReconfigurationFailure, - radioBearerReleaseComplete RadioBearerReleaseComplete, - radioBearerReleaseFailure RadioBearerReleaseFailure, - radioBearerSetupComplete RadioBearerSetupComplete, - radioBearerSetupFailure RadioBearerSetupFailure, - rrcConnectionReleaseComplete RRCConnectionReleaseComplete, - rrcConnectionSetupComplete RRCConnectionSetupComplete, - rrcStatus RRCStatus, - securityModeComplete SecurityModeComplete, - securityModeFailure SecurityModeFailure, - signallingConnectionReleaseIndication - SignallingConnectionReleaseIndication, - transportChannelReconfigurationComplete - TransportChannelReconfigurationComplete, - transportChannelReconfigurationFailure - TransportChannelReconfigurationFailure, - transportFormatCombinationControlFailure - TransportFormatCombinationControlFailure, - ueCapabilityInformation UECapabilityInformation, - uplinkDirectTransfer UplinkDirectTransfer, - utranMobilityInformationConfirm UTRANMobilityInformationConfirm, - utranMobilityInformationFailure UTRANMobilityInformationFailure, - mbmsModificationRequest MBMSModificationRequest, - ul-DCCH-MessageType-ext UL-DCCH-MessageType-ext -} - -UL-DCCH-MessageType-ext ::= CHOICE { - ueInformationResponse UEInformationResponse, - spare15 NULL, - spare14 NULL, - spare13 NULL, - spare12 NULL, - spare11 NULL, - spare10 NULL, - spare9 NULL, - spare8 NULL, - spare7 NULL, - spare6 NULL, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - ---************************************************************** --- --- Downlink CCCH messages --- ---************************************************************** - -DL-CCCH-Message ::= SEQUENCE { - integrityCheckInfo IntegrityCheckInfo OPTIONAL, - message DL-CCCH-MessageType -} - -DL-CCCH-MessageType ::= CHOICE { - cellUpdateConfirm CellUpdateConfirm-CCCH, - rrcConnectionReject RRCConnectionReject, - rrcConnectionRelease RRCConnectionRelease-CCCH, - rrcConnectionSetup RRCConnectionSetup, - uraUpdateConfirm URAUpdateConfirm-CCCH, - -- dummy is not used in the specification. If received it is ignored by the UE. - -- See TS 23.041 for handling of warning security information by Cell Broadcast Center. - dummy ETWSPrimaryNotificationWithSecurity, - spare2 NULL, - spare1 NULL -} - ---************************************************************** --- --- Uplink CCCH messages --- ---************************************************************** - -UL-CCCH-Message ::= SEQUENCE { - integrityCheckInfo IntegrityCheckInfo OPTIONAL, - message UL-CCCH-MessageType -} - -UL-CCCH-MessageType ::= CHOICE { - cellUpdate CellUpdate, - rrcConnectionRequest RRCConnectionRequest, - uraUpdate URAUpdate, - uL-CCCH-MessageType-r11 UL-CCCH-MessageType-r11 -} - -UL-CCCH-MessageType-r11 ::= CHOICE { - cellUpdate CellUpdateFDD-r11, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - ---************************************************************** --- --- PCCH messages --- ---************************************************************** - -PCCH-Message ::= SEQUENCE { - message PCCH-MessageType -} - -PCCH-MessageType ::= CHOICE { - pagingType1 PagingType1, - spare NULL -} - ---************************************************************** --- --- Downlink SHCCH messages --- ---************************************************************** - -DL-SHCCH-Message ::= SEQUENCE { - message DL-SHCCH-MessageType -} - -DL-SHCCH-MessageType ::= CHOICE { - physicalSharedChannelAllocation PhysicalSharedChannelAllocation, - spare NULL -} - ---************************************************************** --- --- Uplink SHCCH messages --- ---************************************************************** - -UL-SHCCH-Message ::= SEQUENCE { - message UL-SHCCH-MessageType -} - -UL-SHCCH-MessageType ::= CHOICE { - puschCapacityRequest PUSCHCapacityRequest, - spare NULL -} - - ---************************************************************** --- --- BCCH messages sent on FACH --- ---************************************************************** - -BCCH-FACH-Message ::= SEQUENCE { - message BCCH-FACH-MessageType -} - -BCCH-FACH-MessageType ::= CHOICE { --- dummy is not used in this version of the specification, it should --- not be sent and if received UE behaviour is unspecified. - dummy SystemInformation-FACH, - systemInformationChangeIndication SystemInformationChangeIndication, - spare2 NULL, - spare1 NULL -} - ---************************************************************** --- --- BCCH messages sent on BCH --- ---************************************************************** - -BCCH-BCH-Message ::= SEQUENCE { - message SystemInformation-BCH -} - ---************************************************************** --- --- MCCH messages --- ---************************************************************** - -MCCH-Message ::= SEQUENCE { - message MCCH-MessageType -} - -MCCH-MessageType ::= CHOICE { - mbmsAccessInformation MBMSAccessInformation, - mbmsCommonPTMRBInformation MBMSCommonPTMRBInformation, - mbmsCurrentCellPTMRBInformation MBMSCurrentCellPTMRBInformation, - mbmsGeneralInformation MBMSGeneralInformation, - mbmsModifiedServicesInformation MBMSModifiedServicesInformation, - mbmsNeighbouringCellPTMRBInformation - MBMSNeighbouringCellPTMRBInformation, - mbmsUnmodifiedServicesInformation MBMSUnmodifiedServicesInformation, - spare9 NULL, - spare8 NULL, - spare7 NULL, - spare6 NULL, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - ---************************************************************** --- --- MSCH messages --- ---************************************************************** - -MSCH-Message ::= SEQUENCE { - message MSCH-MessageType -} - -MSCH-MessageType ::= CHOICE { - mbmsSchedulingInformation MBMSSchedulingInformation, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - --- *************************************************** --- --- ACTIVE SET UPDATE (FDD only) --- --- *************************************************** - -ActiveSetUpdate ::= CHOICE { - r3 SEQUENCE { - activeSetUpdate-r3 ActiveSetUpdate-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - activeSetUpdate-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - activeSetUpdate-v4b0ext ActiveSetUpdate-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - activeSetUpdate-v590ext ActiveSetUpdate-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - activeSetUpdate-v690ext ActiveSetUpdate-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r6 SEQUENCE { - activeSetUpdate-r6 ActiveSetUpdate-r6-IEs, - activeSetUpdate-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - activeSetUpdate-v6b0ext ActiveSetUpdate-v6b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - activeSetUpdate-r7 ActiveSetUpdate-r7-IEs, - activeSetUpdate-r7-add-ext BIT STRING OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - activeSetUpdate-v780ext ActiveSetUpdate-v780ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - activeSetUdpate-v7f0ext ActiveSetUpdate-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - activeSetUdpate-v7g0ext ActiveSetUpdate-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - activeSetUpdate-r8 ActiveSetUpdate-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - activeSetUpdate-r8-add-ext BIT STRING OPTIONAL, - v890NonCriticalExtensions SEQUENCE { - activeSetUpdate-v890ext ActiveSetUpdate-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - activeSetUpdate-v7g0ext ActiveSetUpdate-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - activeSetUpdate-r9 ActiveSetUpdate-r9-IEs, - -- Container for adding non critical extensions after freezing REL-10 - activeSetUpdate-r9-add-ext BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - activeSetUpdate-v950ext ActiveSetUpdate-v950ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - activeSetUpdate-r10 ActiveSetUpdate-r10-IEs, - -- Container for adding non critical extensions after freezing - -- REL-11 - activeSetUpdate-r10-add-ext BIT STRING OPTIONAL, - vb50NonCriticalExtensions SEQUENCE { - activeSetUpdate-vb50ext ActiveSetUpdate-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - activeSetUpdate-r11 ActiveSetUpdate-r11-IEs, - -- Container for adding non critical extensions after freezing - -- REL-12 - activeSetUpdate-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } -} - -ActiveSetUpdate-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- dummy and dummy2 are not used in this version of the specification, they should - -- not be sent and if received they should be ignored. - dummy IntegrityProtectionModeInfo OPTIONAL, - dummy2 CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- Radio bearer IEs - -- dummy3 is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy3 DL-CounterSynchronisationInfo OPTIONAL, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - -- dummy4 is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy4 SSDT-Information OPTIONAL -} - -ActiveSetUpdate-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE RL-AdditionInformationList included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -ActiveSetUpdate-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dpc-Mode DPC-Mode, - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -ActiveSetUpdate-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL -} - -ActiveSetUpdate-r6-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - newH-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-r6 OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - dpc-Mode DPC-Mode OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation OPTIONAL, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo OPTIONAL -} - -ActiveSetUpdate-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - rl-AdditionInformation-list-v6b0ext RL-AdditionInformation-list-v6b0ext OPTIONAL -} - -ActiveSetUpdate-r7-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - newH-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Physical channel IEs - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-r7 OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - dpc-Mode DPC-Mode OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r7 OPTIONAL, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL, - ul-16QAM-Config UL-16QAM-Config OPTIONAL, - e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL, - e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, - e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL -} - -ActiveSetUpdate-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -ActiveSetUpdate-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -ActiveSetUpdate-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -ActiveSetUpdate-r8-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - newH-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Physical channel IEs - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-r8 OPTIONAL, - servingCellChangeParameters ServingCellChangeParameters OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - dpc-Mode DPC-Mode OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r8 OPTIONAL, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL, - ul-16QAM-Config UL-16QAM-Config OPTIONAL, - e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL, - e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, - e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL -} - -ActiveSetUpdate-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-v890ext OPTIONAL -} - -ActiveSetUpdate-r9-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - newH-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Physical channel IEs - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - e-dch-ReconfigurationInfo-SecULFrequency - E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-r9 OPTIONAL, - rl-AdditionInformationList-SecULFreq - RL-AdditionInformationList-SecULFreq OPTIONAL, - servingCellChangeParameters ServingCellChangeParameters OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - rl-RemovalInformationList-SecULFreq - RL-RemovalInformationList-SecULFreq OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - dpc-Mode DPC-Mode OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9 OPTIONAL, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL, - ul-16QAM-Config UL-16QAM-Config OPTIONAL, - e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL, - e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, - e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL -} - -ActiveSetUpdate-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-v950ext OPTIONAL -} - -ActiveSetUpdate-r10-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - newH-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Physical channel IEs - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - e-dch-ReconfigurationInfo-SecULFrequency - E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-r10 OPTIONAL, - rl-AdditionInformationList-SecULFreq - RL-AdditionInformationList-SecULFreq OPTIONAL, - servingCellChangeParameters ServingCellChangeParameters OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - rl-RemovalInformationList-SecULFreq - RL-RemovalInformationList-SecULFreq OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - dpc-Mode DPC-Mode OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9 OPTIONAL, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7 OPTIONAL, - ul-16QAM-Config UL-16QAM-Config OPTIONAL, - e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL, - e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, - e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL -} - -ActiveSetUpdate-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-vb50ext - OPTIONAL -} - -ActiveSetUpdate-r11-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - newU-RNTI U-RNTI OPTIONAL, - newH-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Physical channel IEs - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - e-dch-ReconfigurationInfo-SecULFrequency - E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - rl-AdditionInformationList RL-AdditionInformationList-r11 OPTIONAL, - rl-AdditionInformationList-SecULFreq - RL-AdditionInformationList-SecULFreq OPTIONAL, - servingCellChangeParameters ServingCellChangeParameters OPTIONAL, - rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, - rl-RemovalInformationList-SecULFreq - RL-RemovalInformationList-SecULFreq OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - dpc-Mode DPC-Mode OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r11 OPTIONAL, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11 OPTIONAL, - ul-16QAM-Config UL-16QAM-Config OPTIONAL, - ul-64QAM-Config UL-64QAM-Config OPTIONAL, - ul-MIMO-InfoFDD UL-MIMO-InfoFDD OPTIONAL, - e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL, - e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, - e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL -} - --- *************************************************** --- --- ACTIVE SET UPDATE COMPLETE (FDD only) --- --- *************************************************** - -ActiveSetUpdateComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy IntegrityProtActivationInfo OPTIONAL, - -- Radio bearer IEs - -- dummy2 and dummy3 are not used in this version of the specification, they should - -- not be sent and if received they should be ignored. - dummy2 RB-ActivationTimeInfoList OPTIONAL, - dummy3 UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - activeSetUpdateComplete-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- ACTIVE SET UPDATE FAILURE (FDD only) --- --- *************************************************** - -ActiveSetUpdateFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - activeSetUpdateFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- ASSISTANCE DATA DELIVERY-- --- *************************************************** - -AssistanceDataDelivery ::= CHOICE { - r3 SEQUENCE { - assistanceDataDelivery-r3 AssistanceDataDelivery-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - assistanceDataDelivery-v3a0ext AssistanceDataDelivery-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - assistanceDataDelivery-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - assistanceDataDelivery-v4b0ext AssistanceDataDelivery-v4b0ext-IEs, - v770NonCriticalExtension SEQUENCE { - assistanceDataDelivery-v770ext AssistanceDataDelivery-v770ext-IEs, - v860NonCriticalExtension SEQUENCE { - assistanceDataDelivery-v860ext AssistanceDataDelivery-v860ext-IEs, - v920NonCriticalExtension SEQUENCE { - assistanceDataDelivery-v920ext AssistanceDataDelivery-v920ext-IEs, - va40NonCriticalExtension SEQUENCE { - assistanceDataDelivery-va40ext - AssistanceDataDelivery-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -AssistanceDataDelivery-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Measurement Information Elements - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData OPTIONAL, - ue-positioning-OTDOA-AssistanceData-UEB UE-Positioning-OTDOA-AssistanceData-UEB OPTIONAL -} - -AssistanceDataDelivery-v3a0ext ::= SEQUENCE { - sfn-Offset-Validity SFN-Offset-Validity OPTIONAL -} - -AssistanceDataDelivery-v4b0ext-IEs ::= SEQUENCE { - ue-Positioning-OTDOA-AssistanceData-r4ext UE-Positioning-OTDOA-AssistanceData-r4ext OPTIONAL -} - -AssistanceDataDelivery-v770ext-IEs ::= SEQUENCE { - ue-Positioning-OTDOA-AssistanceData-UEB-ext - UE-Positioning-OTDOA-AssistanceData-UEB-ext OPTIONAL, - ue-Positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-v770ext OPTIONAL, - ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData OPTIONAL -} - -AssistanceDataDelivery-v860ext-IEs ::= SEQUENCE { - ue-positioning-GANSS-AssistanceData-v860ext - UE-Positioning-GANSS-AssistanceData-v860ext OPTIONAL -} - -AssistanceDataDelivery-v920ext-IEs ::= SEQUENCE { - ue-positioning-GPS-AssistanceData-v920ext - UE-Positioning-GPS-AssistanceData-v920ext OPTIONAL, - ue-positioning-GANSS-AssistanceData-v920ext - UE-Positioning-GANSS-AssistanceData-v920ext OPTIONAL -} - -AssistanceDataDelivery-va40ext-IEs ::= SEQUENCE { - ue-positioning-GPS-AssistanceData-va40ext - UE-Positioning-GPS-AssistanceData-va40ext OPTIONAL, - ue-positioning-GANSS-AssistanceData-va40ext - UE-Positioning-GANSS-AssistanceData-va40ext OPTIONAL -} - --- *************************************************** --- --- CELL CHANGE ORDER FROM UTRAN --- --- *************************************************** - -CellChangeOrderFromUTRAN ::= CHOICE { - r3 SEQUENCE { - cellChangeOrderFromUTRAN-IEs CellChangeOrderFromUTRAN-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - cellChangeOrderFromUTRAN-r3-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - cellChangeOrderFromUTRAN-v590ext CellChangeOrderFromUTRAN-v590ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -CellChangeOrderFromUTRAN-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy IntegrityProtectionModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - -- the IE rab-InformationList is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. The IE may be used in a later - -- version of the protocol and hence it is not changed into a dummy - rab-InformationList RAB-InformationList OPTIONAL, - interRAT-TargetCellDescription InterRAT-TargetCellDescription -} - -CellChangeOrderFromUTRAN-v590ext-IEs ::= SEQUENCE { - geran-SystemInfoType CHOICE { - sI GERAN-SystemInformation, - pSI GERAN-SystemInformation - } OPTIONAL -} - --- *************************************************** --- --- CELL CHANGE ORDER FROM UTRAN FAILURE --- --- *************************************************** - -CellChangeOrderFromUTRANFailure ::= CHOICE { - r3 SEQUENCE { - cellChangeOrderFromUTRANFailure-r3 - CellChangeOrderFromUTRANFailure-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - cellChangeOrderFromUTRANFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - -- dummy is not used in this version of the specification and it - -- should be ignored. - dummy SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -CellChangeOrderFromUTRANFailure-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy IntegrityProtectionModeInfo OPTIONAL, - interRAT-ChangeFailureCause InterRAT-ChangeFailureCause -} - --- *************************************************** --- --- CELL UPDATE --- --- *************************************************** - -CellUpdate ::= SEQUENCE { - -- User equipment IEs - u-RNTI U-RNTI, - startList STARTList, - am-RLC-ErrorIndicationRb2-3or4 BOOLEAN, - am-RLC-ErrorIndicationRb5orAbove BOOLEAN, - cellUpdateCause CellUpdateCause, - -- TABULAR: RRC transaction identifier is nested in FailureCauseWithProtErrTrId - failureCause FailureCauseWithProtErrTrId OPTIONAL, - rb-timer-indicator Rb-timer-indicator, - -- Measurement IEs - measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - -- The cellUpdate-r3-add-ext can be omitted if its inclusion would result in the - -- size of the message exceeding the maximum PDU size possible for CCCH - -- transmission - cellUpdate-r3-add-ext BIT STRING - (CONTAINING CellUpdate-r3-add-ext-IEs) OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - cellUpdate-v590ext CellUpdate-v590ext, - v690NonCriticalExtensions SEQUENCE { - cellUpdate-v690ext CellUpdate-v690ext-IEs, - v6b0NonCriticalExtensions SEQUENCE { - cellUpdate-v6b0ext CellUpdate-v6b0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - cellUpdate-v770ext CellUpdate-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - cellUpdate-v860ext CellUpdate-v860ext-IEs, - -- The va40NonCriticalExtensions can be omitted if its inclusion - -- would result in the size of the message exceeding the maximum PDU - -- size possible for CCCH transmission - va40NonCriticalExtensions SEQUENCE { - cellUpdate-va40ext CellUpdate-va40ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - cellUpdate-vb50ext CellUpdate-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -CellUpdate-r3-add-ext-IEs ::= SEQUENCE { - cellUpdate-v7e0ext CellUpdate-v7e0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - cellUpdate-v7g0ext CellUpdate-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -CellUpdate-v590ext ::= SEQUENCE { - establishmentCause EstablishmentCause OPTIONAL -} - -CellUpdate-v690ext-IEs ::= SEQUENCE { - -- User equipment IEs - cellUpdateCause-ext CellUpdateCause-ext OPTIONAL, - trafficVolumeIndicator ENUMERATED { true } OPTIONAL, - -- Measurement IEs - measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL, - reconfigurationStatusIndicator ENUMERATED { true } OPTIONAL -} - -CellUpdate-v6b0ext-IEs ::= SEQUENCE { - -- MBMS IEs - -- The mbmsSelectedServices can be omitted if its inclusion would result in the - -- size of the message exceeding the maximum PDU size possible for CCCH transmission - mbmsSelectedServices MBMS-SelectedServicesShort OPTIONAL -} - -CellUpdate-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - csCallType ENUMERATED { speech, video, other, spare } OPTIONAL, - hspdschReception-CellFach ENUMERATED { true } OPTIONAL, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - capabilityChangeIndicator ENUMERATED { true } OPTIONAL -} - -CellUpdate-v7e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForTwoDRXSchemesInPCH ENUMERATED { true } OPTIONAL -} - -CellUpdate-v7g0ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL -} - -CellUpdate-v860ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportOfCommonEDCH ENUMERATED { true } OPTIONAL, - supportOfHS-DSCHDRXOperation ENUMERATED { true } OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL, - supportOfSPSOperation ENUMERATED { true } OPTIONAL, - supportOfControlChannelDRXOperation - ENUMERATED { true } OPTIONAL -} - -CellUpdate-va40ext-IEs ::= SEQUENCE { - -- User equipment IEs - securityRevertStatusIndicator ENUMERATED { revertedBack, normalOperation } OPTIONAL, - -- Other IEs - loggedMeasAvailable ENUMERATED { true } OPTIONAL, - loggedANRResultsAvailable ENUMERATED { true } OPTIONAL -} - --- TABULAR: TDD related IEs, MBMS IEs, and supportForTwoDRXSchemesInPCH are omitted compared to --- tabular for the purpose of coding optimisation -CellUpdateFDD-r11 ::= SEQUENCE { --- User equipment IEs - u-RNTI U-RNTI, - startList STARTList, - am-RLC-ErrorIndicationRb2-3or4 BOOLEAN, - am-RLC-ErrorIndicationRb5orAbove BOOLEAN, - cellUpdateCause CellUpdateCause, - -- TABULAR: RRC transaction identifier is nested in FailureCauseWithProtErrTrId - failureCause FailureCauseWithProtErrTrId OPTIONAL, - rb-timer-indicator Rb-timer-indicator, - establishmentCause EstablishmentCause OPTIONAL, - trafficVolumeIndicator ENUMERATED { true } OPTIONAL, - reconfigurationStatusIndicator ENUMERATED { true } OPTIONAL, - csCallType ENUMERATED { speech, video, other, spare } OPTIONAL, - hspdschReception-CellFach ENUMERATED { true } OPTIONAL, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - capabilityChangeIndicator ENUMERATED { true } OPTIONAL, - supportOfCommonEDCH ENUMERATED { true } OPTIONAL, - supportOfHS-DSCHDRXOperation ENUMERATED { true } OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL, - securityRevertStatusIndicator ENUMERATED { revertedBack, normalOperation } OPTIONAL, - spare4 ENUMERATED { true } OPTIONAL, - spare3 ENUMERATED { true } OPTIONAL, - spare2 ENUMERATED { true } OPTIONAL, - spare1 ENUMERATED { true } OPTIONAL, --- Measurement IEs - measuredResultsOnRACH MeasuredResultsOnRACHFDD-r11 OPTIONAL, --- Other IEs - loggedMeasAvailable ENUMERATED { true } OPTIONAL, - loggedANRResultsAvailable ENUMERATED { true } OPTIONAL -} - -CellUpdate-vb50ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL -} - --- *************************************************** --- --- CELL UPDATE CONFIRM --- --- *************************************************** - -CellUpdateConfirm ::= CHOICE { - r3 SEQUENCE { - cellUpdateConfirm-r3 CellUpdateConfirm-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v3a0ext CellUpdateConfirm-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - cellUpdateConfirm-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v4b0ext CellUpdateConfirm-v4b0ext-IEs, - v590NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - cellUpdateConfirm-r4 CellUpdateConfirm-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - cellUpdateConfirm-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - cellUpdateConfirm-r5 CellUpdateConfirm-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - cellUpdateConfirm-r5-add-ext BIT STRING OPTIONAL, - v5d0NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - cellUpdateConfirm-r6 CellUpdateConfirm-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - cellUpdateConfirm-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v6b0ext CellUpdateConfirm-v6b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - cellUpdateConfirm-r7 CellUpdateConfirm-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - cellUpdateConfirm-r7-add-ext BIT STRING - (CONTAINING CellUpdateConfirm-r7-add-ext-IEs) OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v780ext CellUpdateConfirm-v780ext-IEs, - v860NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v860ext CellUpdateConfirm-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - cellUpdateConfirm-r8 CellUpdateConfirm-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - cellUpdateConfirm-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7d0ext CellUpdateConfirm-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7f0ext CellUpdateConfirm-v7f0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v890ext - CellUpdateConfirm-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7g0ext - CellUpdateConfirm-v7g0ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v8a0ext - CellUpdateConfirm-v8a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - cellUpdateConfirm-r9 CellUpdateConfirm-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - cellUpdateConfirm-r9-add-ext BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v950ext CellUpdateConfirm-v950ext-IEs, - v9c0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v9c0ext CellUpdateConfirm-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - cellUpdateConfirm-r10 CellUpdateConfirm-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - cellUpdateConfirm-r10-add-ext BIT STRING OPTIONAL, - v9c0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v9c0ext CellUpdateConfirm-v9c0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-vb50ext - CellUpdateConfirm-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - cellUpdateConfirm-r11 CellUpdateConfirm-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - cellUpdateConfirm-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -CellUpdateConfirm-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - modeSpecificTransChInfo CHOICE { - fdd SEQUENCE { - -- dummy and dummy2 are not used in this version of the specification, they should - -- not be sent and if received they should be ignored. - dummy CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - }, - dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL -} - -CellUpdateConfirm-v3a0ext ::= SEQUENCE { - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour - -- is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL -} - -CellUpdateConfirm-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -CellUpdateConfirm-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -CellUpdateConfirm-v5d0ext-IEs ::= SEQUENCE { - --Radio Bearer IEs - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL -} -CellUpdateConfirm-r4-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r4 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - modeSpecificTransChInfo CHOICE { - fdd SEQUENCE { - -- dummy and dummy2 are not used in this version of the specification, they should - -- not be sent and if received they should be ignored. - dummy CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - }, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -CellUpdateConfirm-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r5 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - modeSpecificTransChInfo CHOICE { - fdd SEQUENCE { - -- dummy and dummy2 are not used in this version of the specification, they should - -- not be sent and if received they should be ignored. - dummy CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - }, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL, - dl-CommonInformation DL-CommonInformation-r5 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL -} - -CellUpdateConfirm-r6-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -CellUpdateConfirm-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- Physical channel IEs - -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message - -- If included in the r3 or r4 version of the message, the UE should ignore the IE - harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL, - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - dhs-sync DHS-Sync OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -CellUpdateConfirm-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL -} - -CellUpdateConfirm-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - waitTime WaitTime OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -CellUpdateConfirm-r7-add-ext-IEs ::= SEQUENCE { - cellUpdateConfirm-v7d0ext CellUpdateConfirm-v7d0ext-IEs OPTIONAL, - v7f0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7f0ext CellUpdateConfirm-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7g0ext CellUpdateConfirm-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -CellUpdateConfirm-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -CellUpdateConfirm-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -CellUpdateConfirm-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -CellUpdateConfirm-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -CellUpdateConfirm-r8-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - waitTime WaitTime OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - -- Radio bearer IEs - rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -CellUpdateConfirm-v860ext-IEs ::= SEQUENCE { - rab-InformationSetup SEQUENCE { - rab-InformationSetup-r7 RAB-InformationSetup-r7, - rab-InformationSetup-v820ext RAB-InformationSetup-v820ext - } OPTIONAL -} - -CellUpdateConfirm-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -CellUpdateConfirm-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -CellUpdateConfirm-r9-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - waitTime WaitTime OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - -- Radio bearer IEs - rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -CellUpdateConfirm-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -CellUpdateConfirm-v9c0ext-IEs ::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL -} - -CellUpdateConfirm-r10-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - -- dummy2 is not used in this version of the specification, it should - -- not be sent. - dummy2 SR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - waitTime WaitTime OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - -- Radio bearer IEs - rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -CellUpdateConfirm-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -CellUpdateConfirm-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - -- dummy2 is not used in this version of the specification, it should - -- not be sent. - dummy2 SR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - waitTime WaitTime OPTIONAL, - rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, - rlc-Re-establishIndicatorRb5orAbove BOOLEAN, - -- CN information elements - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - -- Radio bearer IEs - rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - --- *************************************************** --- --- CELL UPDATE CONFIRM for CCCH --- --- *************************************************** - -CellUpdateConfirm-CCCH ::= CHOICE { - r3 SEQUENCE { - -- User equipment IEs - u-RNTI U-RNTI, - -- The rest of the message is identical to the one sent on DCCH. - cellUpdateConfirm-r3 CellUpdateConfirm-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - cellUpdateConfirm-CCCH-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v4b0ext CellUpdateConfirm-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - u-RNTI U-RNTI, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - -- The rest of the message is identical to the one sent on DCCH. - cellUpdateConfirm-r4 CellUpdateConfirm-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - cellUpdateConfirm-CCCH-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v590ext CellUpdateConfirm-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - cellUpdateConfirm-r5 CellUpdateConfirm-r5-IEs, - cellUpdateConfirm-CCCH-r5-add-ext BIT STRING OPTIONAL, - v5d0NonCriticalExtenstions SEQUENCE { - cellUpdateConfirm-v5d0ext CellUpdateConfirm-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v690ext CellUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - cellUpdateConfirm-r6 CellUpdateConfirm-r6-IEs, - cellUpdateConfirm-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v6b0ext CellUpdateConfirm-v6b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - cellUpdateConfirm-r7 CellUpdateConfirm-r7-IEs, - cellUpdateConfirm-r7-add-ext BIT STRING - (CONTAINING CellUpdateConfirm-r7-add-ext-IEs) OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v780ext CellUpdateConfirm-v780ext-IEs, - v860NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v860ext CellUpdateConfirm-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - cellUpdateConfirm-r8 CellUpdateConfirm-r8-IEs, - cellUpdateConfirm-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7d0ext CellUpdateConfirm-v7d0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v890ext - CellUpdateConfirm-v890ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v8a0ext - CellUpdateConfirm-v8a0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7f0ext - CellUpdateConfirm-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-v7g0ext - CellUpdateConfirm-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - cellUpdateConfirm-r9 CellUpdateConfirm-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - cellUpdateConfirm-r9-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - cellUpdateConfirm-r10 CellUpdateConfirm-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - cellUpdateConfirm-r10-add-ext BIT STRING OPTIONAL, - vb50NonCriticalExtensions SEQUENCE { - cellUpdateConfirm-vb50ext - CellUpdateConfirm-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - cellUpdateConfirm-r11 CellUpdateConfirm-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - cellUpdateConfirm-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - --- *************************************************** --- --- COUNTER CHECK --- --- *************************************************** - -CounterCheck ::= CHOICE { - r3 SEQUENCE { - counterCheck-r3 CounterCheck-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - counterCheck-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -CounterCheck-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Radio bearer IEs - rb-COUNT-C-MSB-InformationList RB-COUNT-C-MSB-InformationList -} - --- *************************************************** --- --- COUNTER CHECK RESPONSE --- --- *************************************************** - -CounterCheckResponse ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Radio bearer IEs - rb-COUNT-C-InformationList RB-COUNT-C-InformationList OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - counterCheckResponse-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- DOWNLINK DIRECT TRANSFER --- --- *************************************************** - -DownlinkDirectTransfer ::= CHOICE { - r3 SEQUENCE { - downlinkDirectTransfer-r3 DownlinkDirectTransfer-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - downlinkDirectTransfer-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -DownlinkDirectTransfer-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - nas-Message NAS-Message -} - --- *************************************************** --- --- ETWS PRIMARY NOTIFICATION WITH SECURITY --- --- *************************************************** - -ETWSPrimaryNotificationWithSecurity ::= SEQUENCE { - -- Other IEs - etws-Information ETWS-Information, - -- dummy is not used in the specification. If received it is ignored by the UE. - -- See TS 23.041 for handling of warning security information by Cell Broadcast Center. - dummy ETWS-WarningSecurityInfo OPTIONAL, - -- Non critical extensions - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - --- *************************************************** --- --- HANDOVER TO UTRAN COMMAND --- --- *************************************************** - -HandoverToUTRANCommand ::= CHOICE { - r3 SEQUENCE { - handoverToUTRANCommand-r3 HandoverToUTRANCommand-r3-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r4 SEQUENCE { - handoverToUTRANCommand-r4 HandoverToUTRANCommand-r4-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - handoverToUTRANCommand-r5 HandoverToUTRANCommand-r5-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - handoverToUTRANCommand-r6 HandoverToUTRANCommand-r6-IEs, - v6b0NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v6b0ext HandoverToUTRANCommand-v6b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - handoverToUTRANCommand-r7 HandoverToUTRANCommand-r7-IEs, - v780NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v780ext HandoverToUTRANCommand-v780ext-IEs, - v820NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v820ext HandoverToUTRANCommand-v820ext-IEs, - v7d0NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v7d0ext - HandoverToUTRANCommand-v7d0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - handoverToUTRANCommand-r8 HandoverToUTRANCommand-r8-IEs, - v7d0NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v7d0ext HandoverToUTRANCommand-v7d0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v890ext - HandoverToUTRANCommand-v890ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v8a0ext - HandoverToUTRANCommand-v8a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - handoverToUTRANCommand-r9 HandoverToUTRANCommand-r9-IEs, - v9c0NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v9c0ext - HandoverToUTRANCommand-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions HandoverToUTRANCommand-LaterCriticalExtensions - } - } - } - } - } - } -} - - -HandoverToUTRANCommand-r3-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy ActivationTime OPTIONAL, - cipheringAlgorithm CipheringAlgorithm OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList, - rab-InformationSetupList RAB-InformationSetupList OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList, - dl-CommonTransChInfo DL-CommonTransChInfo, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList, - ul-DPCH-Info UL-DPCH-Info, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy and dummy2 are not used in this version of specification, - -- they should not be sent and if received they should be ignored. - dummy DL-PDSCH-Information OPTIONAL, - dummy2 CPCH-SetInfo OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation, - dl-InformationPerRL-List DL-InformationPerRL-List, - frequencyInfo FrequencyInfo - }, - preconfiguration SEQUENCE { --- All IEs that include an FDD/TDD choice are split in two IEs for this message, --- one for the FDD only elements and one for the TDD only elements, so that one --- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-r4-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList, - rab-InformationSetupList RAB-InformationSetupList-r4 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4, - ul-DPCH-Info UL-DPCH-Info-r4, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy and dummy2 are not used in this version of specification, - -- they should not be sent and if received they should be ignored. - dummy DL-PDSCH-Information OPTIONAL, - dummy2 CPCH-SetInfo OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4, - dl-InformationPerRL-List DL-InformationPerRL-List-r4, - frequencyInfo FrequencyInfo - }, - preconfiguration SEQUENCE { --- All IEs that include an FDD/TDD choice are split in two IEs for this message, --- one for the FDD only elements and one for the TDD only elements, so that one --- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r4 - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD-LCR-r4, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-r5-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r5, - rab-InformationSetupList RAB-InformationSetupList-r5 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5, - ul-DPCH-Info UL-DPCH-Info-r5, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy and dummy2 are not used in this version of specification, - -- they should not be sent and if received they should be ignored. - dummy DL-PDSCH-Information OPTIONAL, - dummy2 CPCH-SetInfo OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4, - dl-InformationPerRL-List DL-InformationPerRL-List-r5, - frequencyInfo FrequencyInfo - }, - preconfiguration SEQUENCE { --- All IEs that include an FDD/TDD choice are split in two IEs for this message, --- one for the FDD only elements and one for the TDD only elements, so that one --- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r5 - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD-LCR-r4, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-r6-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r6, - rab-InformationSetupList RAB-InformationSetupList-r6 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5, - ul-DPCH-Info UL-DPCH-Info-r6, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6, - dl-InformationPerRL-List DL-InformationPerRL-List-r6, - frequencyInfo FrequencyInfo - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD-LCR-r4, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-v6b0ext-IEs ::= SEQUENCE { - ue-hspa-identities UE-HSPA-Identities-r6 OPTIONAL -} - -HandoverToUTRANCommand-r7-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r7, - rab-InformationSetupList RAB-InformationSetupList-r7 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7, - ul-DPCH-Info UL-DPCH-Info-r7, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfo, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - tdd768 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -HandoverToUTRANCommand-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -HandoverToUTRANCommand-r8-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r8, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7, - ul-DPCH-Info UL-DPCH-Info-r7, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfo, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored - dummy DLUL-HSPA-Information-r8 OPTIONAL - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - tdd768 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-v820ext-IEs ::= SEQUENCE { - -- Radio bearer IEs - rab-InformationSetupList RAB-InformationSetupList-v820ext OPTIONAL -} - -HandoverToUTRANCommand-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -HandoverToUTRANCommand-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -HandoverToUTRANCommand-r9-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r8, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9, - ul-DPCH-Info UL-DPCH-Info-r7, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfo, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored - dummy DLUL-HSPA-Information-r9 OPTIONAL - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - tdd768 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-v9c0ext-IEs ::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL -} - -HandoverToUTRANCommand-LaterCriticalExtensions ::= CHOICE { - r10 SEQUENCE { - handoverToUTRANCommand-r10 HandoverToUTRANCommand-r10-IEs, - v9c0NonCriticalExtensions SEQUENCE { - handoverToUTRANCommand-v9c0ext - HandoverToUTRANCommand-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - handoverToUTRANCommand-r11 HandoverToUTRANCommand-r11-IEs, - -- Container for adding non critical extensions after freezing REL-12 - handoverToUTRANCommand-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } -} - -HandoverToUTRANCommand-r10-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r8, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9, - ul-DPCH-Info UL-DPCH-Info-r7, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfo, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored - dummy DLUL-HSPA-Information-r10 OPTIONAL - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - tdd768 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -HandoverToUTRANCommand-r11-IEs ::= SEQUENCE { - -- User equipment IEs - new-U-RNTI U-RNTI-Short, - cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - -- Radio bearer IEs - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - srb-InformationSetupList SRB-InformationSetupList-r8, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - ul-CommonTransChInfo UL-CommonTransChInfo-r4, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8, - dl-CommonTransChInfo DL-CommonTransChInfo-r4, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11, - ul-DPCH-Info UL-DPCH-Info-r11, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10, - dl-InformationPerRL-List DL-InformationPerRL-List-r11, - frequencyInfo FrequencyInfo, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - }, - rab-Info RAB-Info-Post OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostFDD, - dl-CommonInformationPost DL-CommonInformationPost, - dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, - frequencyInfo FrequencyInfoFDD - }, - tdd CHOICE { - tdd384 SEQUENCE { - ul-DPCH-Info UL-DPCH-InfoPostTDD, - dl-InformationPerRL DL-InformationPerRL-PostTDD, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - }, - tdd128 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL - }, - tdd768 SEQUENCE { - ul-DPCH-Info UL-DPCH-Info-r7, - dl-InformationPerRL DL-InformationPerRL-List-r7, - frequencyInfo FrequencyInfoTDD, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } - } - }, - -- Physical channel IEs - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - --- *************************************************** --- --- HANDOVER TO UTRAN COMPLETE --- --- *************************************************** - -HandoverToUTRANComplete ::= SEQUENCE { - --TABULAR: Integrity protection shall not be performed on this message. - -- User equipment IEs - -- TABULAR: startList is conditional on history. - startList STARTList OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - handoverToUTRANComplete-r3-add-ext BIT STRING OPTIONAL, - va40NonCriticalExtensions SEQUENCE { - handoverToUTRANComplete-va40ext HandoverToUTRANComplete-va40ext, - vb50NonCriticalExtensions SEQUENCE { - handoverToUTRANComplete-vb50ext HandoverToUTRANComplete-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -HandoverToUTRANComplete-va40ext ::= SEQUENCE { - loggedMeasAvailable ENUMERATED { true } OPTIONAL -} - -HandoverToUTRANComplete-vb50ext-IEs ::= SEQUENCE { - connEstFailInfoAvailable ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- INITIAL DIRECT TRANSFER --- --- *************************************************** - -InitialDirectTransfer ::= SEQUENCE { - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - intraDomainNasNodeSelector IntraDomainNasNodeSelector, - nas-Message NAS-Message, - -- Measurement IEs - measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL, - v3a0NonCriticalExtensions SEQUENCE { - initialDirectTransfer-v3a0ext InitialDirectTransfer-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - initialDirectTransfer-r3-add-ext BIT STRING - (CONTAINING InitialDirectTransfer-r3-add-ext-IEs) OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - initialDirectTransfer-v590ext InitialDirectTransfer-v590ext, - v690NonCriticalExtensions SEQUENCE { - initialDirectTransfer-v690ext InitialDirectTransfer-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - initialDirectTransfer-v770ext InitialDirectTransfer-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - initialDirectTransfer-v860ext InitialDirectTransfer-v860ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - initialDirectTransfer-vb50ext InitialDirectTransfer-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -InitialDirectTransfer-v3a0ext ::= SEQUENCE { - -- start-value shall always be included in this version of the protocol - start-Value START-Value OPTIONAL -} -InitialDirectTransfer-v590ext ::= SEQUENCE { - establishmentCause EstablishmentCause OPTIONAL -} - -InitialDirectTransfer-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - plmn-Identity PLMN-Identity OPTIONAL, - -- Measurement IEs - measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL, - -- MBMS IEs - mbms-JoinedInformation MBMS-JoinedInformation-r6 OPTIONAL -} - -InitialDirectTransfer-v770ext-IEs ::= SEQUENCE { - csCallType ENUMERATED { speech, video, other, spare } OPTIONAL -} - -InitialDirectTransfer-v860ext-IEs ::= SEQUENCE { - supportOfCSG ENUMERATED { true } OPTIONAL -} - -InitialDirectTransfer-r3-add-ext-IEs ::= SEQUENCE { - initialDirectTransfer-v7g0ext InitialDirectTransfer-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -InitialDirectTransfer-v7g0ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL -} - -InitialDirectTransfer-vb50ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL -} - --- *************************************************** --- --- HANDOVER FROM UTRAN COMMAND --- --- *************************************************** - -HandoverFromUTRANCommand-GSM ::= CHOICE { - r3 SEQUENCE { - handoverFromUTRANCommand-GSM-r3 - HandoverFromUTRANCommand-GSM-r3-IEs, - -- UTRAN should not include the IE laterNonCriticalExtensions when it sets the IE - -- gsm-message included in handoverFromUTRANCommand-GSM-r3 to single-GSM-Message. The UE - -- behaviour upon receiving a message with this combination of IE values is unspecified. - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - handoverFromUTRANCommand-GSM-r3-add-ext BIT STRING OPTIONAL, - -- UTRAN may apply the r3 version of the message to perform PS handover - -- for a single RAB only - v690NonCriticalExtensions SEQUENCE { - handoverFromUTRANCommand-GSM-v690ext HandoverFromUTRANCommand-GSM-v690ext-IEs, - v860NonCriticalExtensions SEQUENCE { - handoverFromUTRANCommand-GSM-v860ext - HandoverFromUTRANCommand-GSM-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r6 SEQUENCE { - handoverFromUTRANCommand-GSM-r6 HandoverFromUTRANCommand-GSM-r6-IEs, - handoverFromUTRANCommand-GSM-r6-add-ext BIT STRING OPTIONAL, - v860NonCriticalExtensions SEQUENCE { - handoverFromUTRANCommand-GSM-v860ext - HandoverFromUTRANCommand-GSM-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -HandoverFromUTRANCommand-GSM-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - activationTime ActivationTime OPTIONAL, - -- Radio bearer IEs - toHandoverRAB-Info RAB-Info OPTIONAL, - -- Measurement IEs - frequency-band Frequency-Band, - -- Other IEs - gsm-message CHOICE { - -- In the single-GSM-Message case the following rules apply: - -- 1> the GSM message directly follows the basic production; the final padding that - -- results when PER encoding the abstract syntax value is removed prior to appending - -- the GSM message. - -- 2> the RRC message excluding the GSM part, does not contain a length determinant; - -- there is no explicit parameter indicating the size of the included GSM message. - -- 3> depending on need, final padding (all "0"s) is added to ensure the final result - -- comprises a full number of octets - single-GSM-Message SEQUENCE {}, - gsm-MessageList SEQUENCE { - gsm-Messages GSM-MessageList - } - } -} - -HandoverFromUTRANCommand-GSM-r6-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - -- Radio bearer IEs - toHandoverRAB-Info RAB-InformationList-r6 OPTIONAL, - -- Measurement IEs - frequency-band Frequency-Band, - -- Other IEs - gsm-message CHOICE { - -- In the single-GSM-Message case the following rules apply: - -- 1> the GSM message directly follows the basic production; the final padding that - -- results when PER encoding the abstract syntax value is removed prior to appending - -- the GSM message. - -- 2> the RRC message excluding the GSM part, does not contain a length determinant; - -- there is no explicit parameter indicating the size of the included GSM message. - -- 3> depending on need, final padding (all "0"s) is added to ensure the final result - -- comprises a full number of octets - single-GSM-Message SEQUENCE {}, - gsm-MessageList SEQUENCE { - gsm-Messages GSM-MessageList - } - }, - geran-SystemInfoType CHOICE { - sI GERAN-SystemInformation, - pSI GERAN-SystemInformation - } OPTIONAL -} - -HandoverFromUTRANCommand-GSM-v690ext-IEs ::= SEQUENCE { - geran-SystemInfoType CHOICE { - sI GERAN-SystemInformation, - pSI GERAN-SystemInformation - } OPTIONAL -} - -HandoverFromUTRANCommand-GSM-v860ext-IEs ::= SEQUENCE { - sr-vcc-SecurityRABInfo SR-VCC-SecurityRABInfo-v860ext OPTIONAL -} - -HandoverFromUTRANCommand-GERANIu ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - handoverFromUTRANCommand-GERANIu CHOICE { - r5 SEQUENCE { - handoverFromUTRANCommand-GERANIu-r5 - HandoverFromUTRANCommand-GERANIu-r5-IEs, - -- UTRAN should not include the IE nonCriticalExtensions when it sets - -- the IE geranIu-message included in handoverFromUTRANCommand-GERANIu-r5 to - -- single-GERANIu-Message - -- The UE behaviour upon receiving a message including this combination of IE values is - -- not specified - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - later-than-r5 SEQUENCE { - criticalExtensions SEQUENCE {} - } - } -} - -HandoverFromUTRANCommand-GERANIu-r5-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - -- Measurement IEs - frequency-Band Frequency-Band, - -- Other IEs - geranIu-Message CHOICE { - -- In the single-GERANIu-Message case the following rules apply: - -- 1> the GERAN Iu message directly follows the basic production; the final padding that - -- results when PER encoding the abstract syntax value is removed prior to appending - -- the GERAN Iu message. - -- 2> the RRC message excluding the GERAN Iu part does not contain a length determinant; --- there is no explicit parameter indicating the size of the included GERAN Iu --- message. - -- 3> depending on need, final padding (all "0"s) is added to ensure the final result - -- comprises a full number of octets. - single-GERANIu-Message SEQUENCE {}, - geranIu-MessageList SEQUENCE { - geranIu-Messages GERANIu-MessageList - } - } -} - -HandoverFromUTRANCommand-CDMA2000 ::= CHOICE { - r3 SEQUENCE { - handoverFromUTRANCommand-CDMA2000-r3 - HandoverFromUTRANCommand-CDMA2000-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - handoverFromUTRANCommand-CDMA2000-r3-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -HandoverFromUTRANCommand-CDMA2000-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - activationTime ActivationTime OPTIONAL, - -- Radio bearer IEs - toHandoverRAB-Info RAB-Info OPTIONAL, - -- Other IEs - cdma2000-MessageList CDMA2000-MessageList -} - -HandoverFromUTRANCommand-EUTRA ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r8 SEQUENCE { - handoverFromUTRANCommand-EUTRA-r8 HandoverFromUTRANCommand-EUTRA-r8-IEs, - handoverFromUTRANCommand-EUTRA-r8-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - handoverFromUTRANCommand-EUTRA-r11 HandoverFromUTRANCommand-EUTRA-r11-IEs, - handoverFromUTRANCommand-EUTRA-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -HandoverFromUTRANCommand-EUTRA-r8-IEs ::= SEQUENCE { - -- User equipment IEs - activationTime ActivationTime OPTIONAL, - -- Radio bearer IEs - toHandoverRAB-Info RAB-InformationList OPTIONAL, - -- Other IEs - eutra-Message OCTET STRING -} - -HandoverFromUTRANCommand-EUTRA-r11-IEs ::= SEQUENCE { - -- User equipment IEs - rsr-vcc-Info RSR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - -- Radio bearer IEs - toHandoverRAB-Info RAB-InformationList OPTIONAL, - -- Other IEs - eutra-Message OCTET STRING -} - --- *************************************************** --- --- HANDOVER FROM UTRAN FAILURE --- --- *************************************************** - -HandoverFromUTRANFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Other IEs - interRAT-HO-FailureCause InterRAT-HO-FailureCause OPTIONAL, - -- In case the interRATMessage to be transferred is for GERAN Iu mode, the - -- message should be placed in the HandoverFromUtranFailure-v590ext-IEs - -- non-critical extension container. - -- In case the interRATMessage to be transferred is for E-UTRA, the - -- message should be placed in the HandoverFromUtranFailure-v860ext-IEs - -- non-critical extension container. - interRATMessage CHOICE { - gsm SEQUENCE { - gsm-MessageList GSM-MessageList - }, - cdma2000 SEQUENCE { - cdma2000-MessageList CDMA2000-MessageList - } - } OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - handoverFromUTRANFailure-r3-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - handoverFromUTRANFailure-v590ext HandoverFromUtranFailure-v590ext-IEs, - v860NonCriticalExtensions SEQUENCE { - handoverFromUTRANFailure-v860ext HandoverFromUtranFailure-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -HandoverFromUtranFailure-v590ext-IEs ::= SEQUENCE { - geranIu-MessageList GERANIu-MessageList OPTIONAL -} - -HandoverFromUtranFailure-v860ext-IEs ::= SEQUENCE { - eutra-Message OCTET STRING OPTIONAL -} - --- *************************************************** --- --- INTER RAT HANDOVER INFO --- --- *************************************************** - -InterRATHandoverInfo ::= SEQUENCE { - -- This structure is defined for historical reasons, backward compatibility with 44.018 - predefinedConfigStatusList CHOICE { - absent NULL, - present PredefinedConfigStatusList - }, - uE-SecurityInformation CHOICE { - absent NULL, - present UE-SecurityInformation - }, - ue-CapabilityContainer CHOICE { - absent NULL, - -- present is an octet aligned string containing IE UE-RadioAccessCapabilityInfo - present OCTET STRING (SIZE (0..63)) - }, - -- Non critical extensions - v390NonCriticalExtensions CHOICE { - absent NULL, - present SEQUENCE { - interRATHandoverInfo-v390ext InterRATHandoverInfo-v390ext-IEs, - v3a0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v3a0ext InterRATHandoverInfo-v3a0ext-IEs, - laterNonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v3d0ext InterRATHandoverInfo-v3d0ext-IEs, - -- Container for additional R99 extensions - interRATHandoverInfo-r3-add-ext BIT STRING - (CONTAINING InterRATHandoverInfo-r3-add-ext-IEs) OPTIONAL, - v3g0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v3g0ext InterRATHandoverInfo-v3g0ext-IEs, - v4b0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v4b0ext InterRATHandoverInfo-v4b0ext-IEs, - v4d0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v4d0ext InterRATHandoverInfo-v4d0ext-IEs, - -- Reserved for future non critical extension - v590NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v590ext - InterRATHandoverInfo-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v690ext - InterRATHandoverInfo-v690ext-IEs, - v6b0NonCriticalExtensions - InterRATHandoverInfo-NonCriticalExtension-v6b0-IEs OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } - } -} - -InterRATHandoverInfo-v390ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL, - dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext -} - -InterRATHandoverInfo-v3a0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL -} - -InterRATHandoverInfo-v3d0ext-IEs ::= SEQUENCE { - -- User equipment IEs - uESpecificBehaviourInformation1interRAT UESpecificBehaviourInformation1interRAT OPTIONAL -} - -InterRATHandoverInfo-v3g0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL -} - -InterRATHandoverInfo-r3-add-ext-IEs ::= SEQUENCE { - interRATHandoverInfo-v690ext1 InterRATHandoverInfo-v690ext1-IEs, - v7e0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v7e0ext InterRATHandoverInfo-v7e0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v7f0ext InterRATHandoverInfo-v7f0ext-IEs, - va40NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-va40ext InterRATHandoverInfoBand-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -InterRATHandoverInfo-v4b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - accessStratumReleaseIndicator AccessStratumReleaseIndicator -} - -InterRATHandoverInfo-v4d0ext-IEs ::= SEQUENCE { - -- User equipment IEs - tdd128-RF-Capability RadioFrequencyBandTDDList OPTIONAL -} - -InterRATHandoverInfo-v590ext-IEs ::= SEQUENCE { - -- User equipment IEs - predefinedConfigStatusListComp PredefinedConfigStatusListComp OPTIONAL, - ue-RadioAccessCapabilityComp UE-RadioAccessCapabilityComp OPTIONAL -} - -InterRATHandoverInfo-v690ext1-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v650ext UE-RadioAccessCapability-v650ext OPTIONAL -} - -InterRATHandoverInfo-v690ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-SecurityInformation2 UE-SecurityInformation2 OPTIONAL, - ue-RadioAccessCapabilityComp UE-RadioAccessCapabilityComp-ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2 -} - -InterRATHandoverInfo-NonCriticalExtension-v6b0-IEs ::= SEQUENCE { - interRATHandoverInfo-v6b0ext InterRATHandoverInfo-v6b0ext-IEs, - v6e0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v6e0ext InterRATHandoverInfo-v6e0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v770ext InterRATHandoverInfo-v770ext-IEs, - v790nonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v790ext InterRATHandoverInfo-v790ext-IEs, - v860NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v860ext InterRATHandoverInfo-v860ext-IEs, - v880NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v880ext InterRATHandoverInfo-v880ext-IEs, - v920NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v920ext InterRATHandoverInfo-v920ext-IEs, - v8b0NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v8b0ext - InterRATHandoverInfo-v8b0ext-IEs, - v950NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-v950ext - InterRATHandoverInfo-v950ext-IEs, - va40NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-va40ext - InterRATHandoverInfo-va40ext-IEs, - va80NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-va80ext - InterRATHandoverInfo-va80ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - interRATHandoverInfo-vb50ext - InterRATHandoverInfo-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -InterRATHandoverInfo-v6b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForSIB11bis ENUMERATED { true } OPTIONAL -} - -InterRATHandoverInfo-v6e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForFDPCH ENUMERATED { true } OPTIONAL -} - -InterRATHandoverInfo-v770ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabilityInfo UE-RadioAccessCapabilityInfo-v770ext OPTIONAL, - ue-RadioAccessCapabilityComp UE-RadioAccessCapabilityComp-v770ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v770ext OPTIONAL -} - -InterRATHandoverInfo-v790ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForEDPCCHPowerBoosting ENUMERATED { true } OPTIONAL -} - -InterRATHandoverInfo-v7e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext OPTIONAL -} - -InterRATHandoverInfo-v7f0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v7f0ext OPTIONAL -} - -InterRATHandoverInfo-v860ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-v860ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v860ext OPTIONAL -} - -InterRATHandoverInfo-v880ext-IEs ::= SEQUENCE { - -- UE radio access capability - ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-v880ext OPTIONAL, - ue-RadioAccessCapabilityInfo-TDD128 UE-RadioAccessCapabilityComp-TDD128 OPTIONAL -} - -InterRATHandoverInfo-v920ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-v920ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-v920ext OPTIONAL -} - -InterRATHandoverInfo-v8b0ext-IEs ::= SEQUENCE { - -- UE radio access capability - ue-RadioAccessCapabilityInfo UE-RadioAccessCapabilityInfo-TDD128-v8b0ext OPTIONAL -} - -InterRATHandoverInfo-v950ext-IEs ::= SEQUENCE { - -- User equipment IEs - pdcp-Capability PDCP-Capability-r4-ext OPTIONAL -} - -InterRATHandoverInfo-va40ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabilityInfo UE-RadioAccessCapability-va40ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-va40ext OPTIONAL -} - -InterRATHandoverInfoBand-va40ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapabBand UE-RadioAccessCapabBand-va40ext OPTIONAL, - rf-CapabilityFDDComp RF-CapabBandListFDDComp-ext2 OPTIONAL -} - -InterRATHandoverInfo-va80ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabilityInfo-va80ext UE-RadioAccessCapability-va80ext OPTIONAL -} - -InterRATHandoverInfo-vb50ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabilityInfo-vb50ext UE-RadioAccessCapability-vb50ext OPTIONAL, - ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-vb50ext OPTIONAL, - ue-RadioAccessCapabilityInfo-TDD128 UE-RadioAccessCapabilityInfo-TDD128-vb50ext OPTIONAL -} - --- *************************************************** --- --- MEASUREMENT CONTROL --- --- *************************************************** - -MeasurementControl ::= CHOICE { - -- The Rel-4 functionality of UE Positioning OTDOA AssistanceData TDD is only available - -- in the later-than-r3 branch of this message (i.e. through the use of the IE - -- ue-Positioning-OTDOA-AssistanceData-r4) - r3 SEQUENCE { - measurementControl-r3 MeasurementControl-r3-IEs, - v390nonCriticalExtensions SEQUENCE { - measurementControl-v390ext MeasurementControl-v390ext, - v3a0NonCriticalExtensions SEQUENCE { - measurementControl-v3a0ext MeasurementControl-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - measurementControl-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE{ - -- The content of the v4b0 non-critical extension has been removed. If sent - -- to a UE of AS release 4, the UE behaviour is unspecified. A UE of AS - -- release 5 onward shall comply with the v4b0 and later extensions in this - -- branch of the message. - v590NonCriticalExtensions SEQUENCE { - measurementControl-v590ext MeasurementControl-v590ext-IEs, - v5b0NonCriticalExtensions SEQUENCE { - measurementControl-v5b0ext MeasurementControl-v5b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - -- Least significant part of extended "RRC transaction identifier" (Rel-5 onward) - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - measurementControl-r4 MeasurementControl-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - measurementControl-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE{ - measurementControl-v590ext MeasurementControl-v590ext-IEs, - v5b0NonCriticalExtensions SEQUENCE { - measurementControl-v5b0ext MeasurementControl-v5b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r4 SEQUENCE { - -- Most significant part of extended "RRC transaction identifier" (MSP): - -- extended "RRC transaction identifier" = - -- rrc-TransactionIdentifier-MSP * 4 + rrc-TransactionIdentifier - rrc-TransactionIdentifier-MSP RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r6 SEQUENCE { - measurementControl-r6 MeasurementControl-r6-IEs, - v6a0NonCriticalExtensions SEQUENCE { - measurementControl-v6a0ext MeasurementControl-v6a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - measurementControl-r7 MeasurementControl-r7-IEs, - -- Container for adding non critical extensions after freezing REL-7 - measurementControl-r7-add-ext BIT STRING OPTIONAL, - v7b0NonCriticalExtensions SEQUENCE { - measurementControl-v7b0ext MeasurementControl-v7b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - measurementControl-r8 MeasurementControl-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - measurementControl-r8-add-ext BIT STRING OPTIONAL, - v8a0NonCriticalExtensions SEQUENCE { - measurementControl-v8a0ext MeasurementControl-v8a0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - measurementControl-vb50ext MeasurementControl-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - measurementControl-r9 MeasurementControl-r9-IEs, - -- Container for adding non critical extensions after freezing REL-10 - measurementControl-r9-add-ext BIT STRING OPTIONAL, - v970NonCriticalExtensions SEQUENCE { - measurementControl-v970ext - MeasurementControl-v970ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - measurementControl-vb50ext - MeasurementControl-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - measurementControl-r10 MeasurementControl-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - measurementControl-r10-add-ext BIT STRING OPTIONAL, - vaa0NonCriticalExtensions SEQUENCE { - measurementControl-vaa0ext - MeasurementControl-vaa0ext-IEs, - vab0NonCriticalExtensions SEQUENCE { - measurementControl-vab0ext - MeasurementControl-vab0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - measurementControl-vb50ext - MeasurementControl-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - measurementControl-r11 - MeasurementControl-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - measurementControl-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -MeasurementControl-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Measurement IEs - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in MeasurementCommand. - measurementCommand MeasurementCommand, - measurementReportingMode MeasurementReportingMode OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL -} - -MeasurementControl-v390ext ::= SEQUENCE { - ue-Positioning-Measurement-v390ext UE-Positioning-Measurement-v390ext OPTIONAL -} - -MeasurementControl-v3a0ext ::= SEQUENCE { - sfn-Offset-Validity SFN-Offset-Validity OPTIONAL -} - -MeasurementControl-r4-IEs ::= SEQUENCE { - -- Measurement IEs - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r4, - measurementReportingMode MeasurementReportingMode OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL -} - -MeasurementControl-v590ext-IEs ::= SEQUENCE { - measurementCommand-v590ext CHOICE { - -- the choice "intra-frequency" shall be used for the case of intra-frequency measurement, - -- as well as when intra-frequency events are configured for inter-frequency measurement - intra-frequency Intra-FreqEventCriteriaList-v590ext, - inter-frequency Inter-FreqEventCriteriaList-v590ext - } OPTIONAL, - intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL, - intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL, - -- Most significant part of extended "RRC transaction identifier" (MSP): - -- extended "RRC transaction identifier" = - -- rrc-TransactionIdentifier-MSP-v590ext * 4 + rrc-TransactionIdentifier - rrc-TransactionIdentifier-MSP-v590ext RRC-TransactionIdentifier -} - -MeasurementControl-v5b0ext-IEs ::= SEQUENCE { - interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL -} - -MeasurementControl-r6-IEs ::= SEQUENCE { - -- Measurement IEs - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r6, - measurementReportingMode MeasurementReportingMode OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL -} - -MeasurementControl-v6a0ext-IEs ::= SEQUENCE { - intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL -} - - -MeasurementControl-r7-IEs ::= SEQUENCE { - -- Measurement IEs - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r7, - measurementReportingMode MeasurementReportingMode OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL -} - -MeasurementControl-v7b0ext-IEs ::= SEQUENCE { - -- Measurement IEs - newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL -} - -MeasurementControl-r8-IEs ::= SEQUENCE { - -- Measurement IEs - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r8, - measurementReportingMode MeasurementReportingMode OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL -} - -MeasurementControl-v8a0ext-IEs ::= SEQUENCE { - -- Measurement IEs - newIntraFreqCellList NewIntraFreqCellList-LCR-v8a0ext OPTIONAL, - newInterFreqCellList NewInterFreqCellList-LCR-v8a0ext OPTIONAL -} - -MeasurementControl-r9-IEs ::= SEQUENCE { - -- Measurement IEs - -- if the UE supports extended measurements, "measurementIdentity" - -- shall be ignored if "measurementIdentity" in MeasurementControl-v970ext-IEs - -- is present, and the value of that element shall be used instead. - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r9, - measurementReportingMode MeasurementReportingMode OPTIONAL, - -- if the UE supports extended measurements, "additionalMeasurementList" - -- shall be ignored if "additionalMeasurementList" in MeasurementControl-v970ext-IEs - -- is present, and the value of that element shall be used instead. - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo OPTIONAL -} - -MeasurementControl-v970ext-IEs ::= SEQUENCE { - -- Measurement IEs - measurementIdentity MeasurementIdentity-r9 OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL -} - -MeasurementControl-r10-IEs ::= SEQUENCE { - -- Measurement IEs - -- if the UE supports extended measurements, "measurementIdentity" - -- shall be ignored if "measurementIdentity" in MeasurementControl-vab0ext-IEs - -- is present, and the value of that element shall be used instead. - measurementIdentity MeasurementIdentity, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r10, - measurementReportingMode MeasurementReportingMode OPTIONAL, - -- if the UE supports extended measurements, "additionalMeasurementList" - -- shall be ignored if "additionalMeasurementList" in MeasurementControl-vab0ext-IEs - -- is present, and the value of that element shall be used instead. - additionalMeasurementList AdditionalMeasurementID-List OPTIONAL, - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL -} - -MeasurementControl-vaa0ext-IEs ::= SEQUENCE { - -- Measurement IEs - periodicalReportingCriteriaOnSecULFreq - PeriodicalWithReportingCellStatusOnSecULFreq OPTIONAL -} - -MeasurementControl-vab0ext-IEs ::= MeasurementControl-v970ext-IEs - -MeasurementControl-r11-IEs ::= SEQUENCE { - -- Measurement IEs - measurementIdentity MeasurementIdentity-r9, - -- TABULAR: The measurement type is included in measurementCommand. - measurementCommand MeasurementCommand-r11, - measurementReportingMode MeasurementReportingMode OPTIONAL, - additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL, - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL, - -- Physical channel IEs - dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL -} - -MeasurementControl-vb50ext-IEs ::= SEQUENCE { - -- Measurement IEs - interRATMeasurement InterRATMeasurement-r11 OPTIONAL -} - --- *************************************************** --- --- MEASUREMENT CONTROL FAILURE --- --- *************************************************** - -MeasurementControlFailure ::= SEQUENCE { - -- User equipment IEs - -- Least significant part of extended "RRC transaction identifier" (Rel-5 onward) - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - measurementControlFailure-r3-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - measurementControlFailure-v590ext MeasurementControlFailure-v590ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MeasurementControlFailure-v590ext-IEs ::= SEQUENCE { - -- Most significant part of extended "RRC transaction identifier" (MSP): - -- extended "RRC transaction identifier" = - -- rrc-TransactionIdentifier-MSP-v590ext * 4 + rrc-TransactionIdentifier - -- If the rrc-TransactionIdentifier-MSP-v590ext was not received in the MEASUREMENT CONTROL - -- message, then the rrc-TransactionIdentifier-MSP-v590ext shall be set to zero - rrc-TransactionIdentifier-MSP-v590ext RRC-TransactionIdentifier -} - --- *************************************************** --- --- MEASUREMENT REPORT --- --- *************************************************** - -MeasurementReport ::= SEQUENCE { - -- Measurement IEs - -- if the UE supports extended measurements, "measurementIdentity" - -- shall be ignored if "measurementIdentity" in MeasurementReport-v970ext-IEs - -- is present, and the value of that element shall be used instead. - measurementIdentity MeasurementIdentity, - measuredResults MeasuredResults OPTIONAL, - measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL, - additionalMeasuredResults MeasuredResultsList OPTIONAL, - eventResults EventResults OPTIONAL, - -- Non-critical extensions - v390nonCriticalExtensions SEQUENCE { - measurementReport-v390ext MeasurementReport-v390ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - measurementReport-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - measurementReport-v4b0ext MeasurementReport-v4b0ext-IEs, - -- Extension mechanism for non-Rel4 information - v590NonCriticalExtensions SEQUENCE { - measurementReport-v590ext MeasurementReport-v590ext-IEs, - v5b0NonCriticalExtensions SEQUENCE { - measurementReport-v5b0ext MeasurementReport-v5b0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - measurementReport-v690ext MeasurementReport-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - measurementReport-v770ext MeasurementReport-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - measurementReport-v860ext MeasurementReport-v860ext-IEs, - v920NonCriticalExtensions SEQUENCE { - measurementReport-v920ext MeasurementReport-v920ext-IEs, - v970NonCriticalExtensions SEQUENCE { - measurementReport-v970ext-IE - MeasurementReport-v970ext-IEs, - va40NonCriticalExtensions SEQUENCE { - measurementReport-va40ext - MeasurementReport-va40ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - measurementReport-vb50ext - MeasurementReport-vb50ext-IEs, - nonCriticalExtensions - SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MeasurementReport-v390ext ::= SEQUENCE { - measuredResults-v390ext MeasuredResults-v390ext OPTIONAL -} - -MeasurementReport-v4b0ext-IEs ::= SEQUENCE { - interFreqEventResults-LCR InterFreqEventResults-LCR-r4-ext OPTIONAL, - -- additionalMeasuredResults-LCR shall contain measurement results and additional measurement - -- results list. - additionalMeasuredResults-LCR MeasuredResultsList-LCR-r4-ext OPTIONAL, - -- dummy is not used in this version of the specification. It should not be sent and - -- if received it should be ignored. - dummy PrimaryCPICH-Info OPTIONAL -} - -MeasurementReport-v590ext-IEs ::= SEQUENCE { - measuredResults-v590ext MeasuredResults-v590ext OPTIONAL -} - -MeasurementReport-v5b0ext-IEs ::= SEQUENCE { - interRATCellInfoIndication InterRATCellInfoIndication OPTIONAL -} - -MeasurementReport-v690ext-IEs ::= SEQUENCE { - measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL -} - -MeasurementReport-v770ext-IEs ::= SEQUENCE { - measuredResults MeasuredResults-v770ext OPTIONAL, - additionalMeasuredResults MeasuredResultsList-v770xet OPTIONAL, - eventResults EventResults-v770ext OPTIONAL, - ue-Positioning-OTDOA-MeasuredResults - UE-Positioning-OTDOA-MeasuredResultsTDD-ext OPTIONAL -} - -MeasurementReport-v860ext-IEs ::= SEQUENCE { - activationTime ActivationTime OPTIONAL, - measuredResults MeasuredResults-v860ext OPTIONAL, - additionalMeasuredResults MeasuredResultsList-v860ext OPTIONAL, - eventResults EventResults-v860ext OPTIONAL, - eutra-MeasuredResults EUTRA-MeasuredResults OPTIONAL, - eutra-EventResults EUTRA-EventResults OPTIONAL -} - -MeasurementReport-v920ext-IEs ::= SEQUENCE { - cSGProximityIndication CSGProximityIndication OPTIONAL, - measuredResults MeasuredResults-v920ext OPTIONAL, - measuredResultsOnSecUlFreq MeasuredResultsOnSecUlFreq OPTIONAL, - additionalMeasuredResults MeasuredResultsList-v920ext OPTIONAL, - additionalMeasuredResultsOnSecUlFreq - MeasuredResultsListOnSecUlFreq OPTIONAL, - eventResultsOnSecUlFreq EventResultsOnSecUlFreq OPTIONAL, - eutra-MeasuredResults EUTRA-MeasuredResults-v920ext OPTIONAL -} - -MeasurementReport-v970ext-IEs ::= SEQUENCE { - measurementIdentity MeasurementIdentityExt OPTIONAL -} - -MeasurementReport-va40ext-IEs ::= SEQUENCE { - eventResults EventResults-va40ext OPTIONAL, - loggedMeasAvailable ENUMERATED { true } OPTIONAL, - loggedANRResultsAvailable ENUMERATED { true } OPTIONAL -} - -MeasurementReport-vb50ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL, - eutra-EventResultsForCELLFACH EUTRA-EventResultsForCELLFACH OPTIONAL, - cSGProximityIndication CSGProximityIndication-vb50ext OPTIONAL, - eutra-MeasuredResults EUTRA-MeasuredResults-vb50ext OPTIONAL, - eutra-EventResults EUTRA-EventResults-vb50ext OPTIONAL -} - --- *************************************************** --- --- PAGING TYPE 1 --- --- *************************************************** - -PagingType1 ::= SEQUENCE { - -- User equipment IEs - pagingRecordList PagingRecordList OPTIONAL, - -- Other IEs - bcch-ModificationInfo BCCH-ModificationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - pagingType1-r3-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - pagingType1-v590ext PagingType1-v590ext-IEs, - v860NonCriticalExtensions SEQUENCE { - pagingType1-v860ext PagingType1-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -PagingType1-v590ext-IEs ::= SEQUENCE { - -- User equipment IEs - pagingRecord2List PagingRecord2List-r5 OPTIONAL -} - -PagingType1-v860ext-IEs ::= SEQUENCE { - -- Other IEs - etws-Information ETWS-Information OPTIONAL -} - --- *************************************************** --- --- PAGING TYPE 2 --- --- *************************************************** - -PagingType2 ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - pagingCause PagingCause, - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - pagingRecordTypeID PagingRecordTypeID, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - pagingType2-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- PHYSICAL CHANNEL RECONFIGURATION --- --- *************************************************** - -PhysicalChannelReconfiguration ::= CHOICE { - r3 SEQUENCE { - physicalChannelReconfiguration-r3 - PhysicalChannelReconfiguration-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v3a0ext PhysicalChannelReconfiguration-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - physicalChannelReconfiguration-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtenstions SEQUENCE { - physicalChannelReconfiguration-v4b0ext - PhysicalChannelReconfiguration-v4b0ext-IEs, - v590NonCriticalExtenstions SEQUENCE { - physicalChannelReconfiguration-v590ext - PhysicalChannelReconfiguration-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v690ext - PhysicalChannelReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v770ext - PhysicalChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - physicalChannelReconfiguration-r4 - PhysicalChannelReconfiguration-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - physicalChannelReconfiguration-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtenstions SEQUENCE { - physicalChannelReconfiguration-v590ext - PhysicalChannelReconfiguration-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v690ext - PhysicalChannelReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v770ext - PhysicalChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - physicalChannelReconfiguration-r5 - PhysicalChannelReconfiguration-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - physicalChannelReconfiguration-r5-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v690ext - PhysicalChannelReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v770ext - PhysicalChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - physicalChannelReconfiguration-r6 - PhysicalChannelReconfiguration-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - physicalChannelReconfiguration-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v6b0ext - PhysicalChannelReconfiguration-v6b0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v770ext - PhysicalChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - physicalChannelReconfiguration-r7 - PhysicalChannelReconfiguration-r7-IEs, - -- Container for adding non critical extensions after freezing REL-7 - physicalChannelReconfiguration-r7-add-ext BIT STRING OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v780ext - PhysicalChannelReconfiguration-v780ext-IEs, - v7d0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v7d0ext - PhysicalChannelReconfiguration-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v7f0ext - PhysicalChannelReconfiguration-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v7g0ext - PhysicalChannelReconfiguration-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - physicalChannelReconfiguration-r8 - PhysicalChannelReconfiguration-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - physicalChannelReconfiguration-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v7d0ext - PhysicalChannelReconfiguration-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v7f0ext - PhysicalChannelReconfiguration-v7f0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v890ext - PhysicalChannelReconfiguration-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v7g0ext - PhysicalChannelReconfiguration-v7g0ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v8a0ext - PhysicalChannelReconfiguration-v8a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - physicalChannelReconfiguration-r9 - PhysicalChannelReconfiguration-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - physicalChannelReconfiguration-r9-add-ext - BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-v950ext - PhysicalChannelReconfiguration-v950ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - physicalChannelReconfiguration-r10 - PhysicalChannelReconfiguration-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - physicalChannelReconfiguration-r10-add-ext - BIT STRING OPTIONAL, - vb50NonCriticalExtensions SEQUENCE { - physicalChannelReconfiguration-vb50ext - PhysicalChannelReconfiguration-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - physicalChannelReconfiguration-r11 - PhysicalChannelReconfiguration-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - physicalChannelReconfiguration-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions - SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -PhysicalChannelReconfiguration-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - -- Note: the reference to CPCH in the element name below is incorrect. The name is not - -- changed to keep it aligned with R99. - ul-ChannelRequirement UL-ChannelRequirementWithCPCH-SetID OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL -} - -PhysicalChannelReconfiguration-v3a0ext ::= SEQUENCE { - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour - -- is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL -} - -PhysicalChannelReconfiguration-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -PhysicalChannelReconfiguration-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -PhysicalChannelReconfiguration-r4-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - -- Note: the reference to CPCH in the element name below is incorrect. The name is not - -- changed to keep it aligned with R99. - ul-ChannelRequirement UL-ChannelRequirementWithCPCH-SetID-r4 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -PhysicalChannelReconfiguration-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - -- Note: the reference to CPCH in the element name below is incorrect. The name is not - -- changed to keep it aligned with R99. - ul-ChannelRequirement UL-ChannelRequirementWithCPCH-SetID-r5 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL, - dl-CommonInformation DL-CommonInformation-r5 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL -} - -PhysicalChannelReconfiguration-r6-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -PhysicalChannelReconfiguration-v690ext-IEs ::= SEQUENCE { - -- User Equipment IEs - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- Physical channel IEs - -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message - -- If included in the r3 or r4 version of the message, the UE should ignore the IE - harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL, - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - dhs-sync DHS-Sync OPTIONAL, - timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -PhysicalChannelReconfiguration-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL -} - -PhysicalChannelReconfiguration-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -PhysicalChannelReconfiguration-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueMobilityStateIndicator High-MobilityDetected OPTIONAL -} - -PhysicalChannelReconfiguration-v780ext-IEs ::= SEQUENCE { - -- Transport channel IEs - harqInfo HARQ-Info-r7 OPTIONAL, - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -PhysicalChannelReconfiguration-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -PhysicalChannelReconfiguration-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -PhysicalChannelReconfiguration-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -PhysicalChannelReconfiguration-r8-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - harqInfo HARQ-Info-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -PhysicalChannelReconfiguration-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -PhysicalChannelReconfiguration-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -PhysicalChannelReconfiguration-r9-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - harqInfo HARQ-Info-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -PhysicalChannelReconfiguration-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -PhysicalChannelReconfiguration-r10-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - harqInfo HARQ-Info-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -PhysicalChannelReconfiguration-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -PhysicalChannelReconfiguration-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - harqInfo HARQ-Info-r11 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - --- *************************************************** --- --- PHYSICAL CHANNEL RECONFIGURATION COMPLETE --- --- *************************************************** - -PhysicalChannelReconfigurationComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- TABULAR: UL-TimingAdvance is applicable for TDD mode only. - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy RB-ActivationTimeInfoList OPTIONAL, - ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - physicalChannelReconfigurationComplete-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - physicalChannelReconfigurationComplete-v770ext - PhysicalChannelReconfigurationComplete-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -PhysicalChannelReconfigurationComplete-v770ext-IEs ::= SEQUENCE { - -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only. - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - - --- *************************************************** --- --- PHYSICAL CHANNEL RECONFIGURATION FAILURE --- --- *************************************************** - -PhysicalChannelReconfigurationFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier OPTIONAL, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - physicalChannelReconfigurationFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- PHYSICAL SHARED CHANNEL ALLOCATION (TDD only) --- --- *************************************************** - -PhysicalSharedChannelAllocation ::= CHOICE { - r3 SEQUENCE { - physicalSharedChannelAllocation-r3 - PhysicalSharedChannelAllocation-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - physicalSharedChannelAllocation-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - dsch-RNTI DSCH-RNTI OPTIONAL, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - physicalSharedChannelAllocation-r4 - PhysicalSharedChannelAllocation-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - physicalSharedChannelAllocation-r4-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - physicalSharedChannelAllocation-v690ext - PhysicalSharedChannelAllocation-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - physicalSharedChannelAllocation-v770ext - PhysicalSharedChannelAllocation-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -PhysicalSharedChannelAllocation-r3-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - -- User equipment IEs - dsch-RNTI DSCH-RNTI OPTIONAL, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Physical channel IEs - ul-TimingAdvance UL-TimingAdvanceControl OPTIONAL, - pusch-CapacityAllocationInfo PUSCH-CapacityAllocationInfo OPTIONAL, - pdsch-CapacityAllocationInfo PDSCH-CapacityAllocationInfo OPTIONAL, - -- TABULAR: If confirmRequest is not present, the default value "No Confirm" - -- shall be used as specified in 10.2.25. - confirmRequest ENUMERATED { - confirmPDSCH, confirmPUSCH } OPTIONAL, - trafficVolumeReportRequest INTEGER (0..255) OPTIONAL, - iscpTimeslotList TimeslotList OPTIONAL, - requestPCCPCHRSCP BOOLEAN -} - -PhysicalSharedChannelAllocation-r4-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - -- Physical channel IEs - ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - pusch-CapacityAllocationInfo PUSCH-CapacityAllocationInfo-r4 OPTIONAL, - pdsch-CapacityAllocationInfo PDSCH-CapacityAllocationInfo-r4 OPTIONAL, - -- TABULAR: If confirmRequest is not present, the default value "No Confirm" - -- shall be used as specified in 10.2.25. - confirmRequest ENUMERATED { - confirmPDSCH, confirmPUSCH } OPTIONAL, - trafficVolumeReportRequest INTEGER (0..255) OPTIONAL, - iscpTimeslotList TimeslotList-r4 OPTIONAL, - requestPCCPCHRSCP BOOLEAN -} - -PhysicalSharedChannelAllocation-v690ext-IEs ::= SEQUENCE { - -- Physical Channel IEs - beaconPLEst BEACON-PL-Est OPTIONAL -} - -PhysicalSharedChannelAllocation-v770ext-IEs ::= SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl-r7 OPTIONAL, - pusch-CapacityAllocationInfo PUSCH-CapacityAllocationInfo-r7 OPTIONAL, - pdsch-CapacityAllocationInfo PDSCH-CapacityAllocationInfo-r7 OPTIONAL -} - --- *************************************************** --- --- PUSCH CAPACITY REQUEST (TDD only) --- --- *************************************************** - -PUSCHCapacityRequest ::= SEQUENCE { - -- User equipment IEs - dsch-RNTI DSCH-RNTI OPTIONAL, - -- Measurement IEs - trafficVolume TrafficVolumeMeasuredResultsList OPTIONAL, - timeslotListWithISCP TimeslotListWithISCP OPTIONAL, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL, - allocationConfirmation CHOICE { - pdschConfirmation PDSCH-Identity, - puschConfirmation PUSCH-Identity - } OPTIONAL, - protocolErrorIndicator ProtocolErrorIndicatorWithMoreInfo, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - puschCapacityRequest-r3-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - puschCapacityRequest-v590ext PUSCHCapacityRequest-v590ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -PUSCHCapacityRequest-v590ext ::= SEQUENCE { - primaryCCPCH-RSCP-delta DeltaRSCP OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER RECONFIGURATION --- --- *************************************************** - -RadioBearerReconfiguration ::= CHOICE { - r3 SEQUENCE { - radioBearerReconfiguration-r3 RadioBearerReconfiguration-r3-IEs, - -- Prefix "v3ao" is used (in one instance) to keep alignment with R99 - v3aoNonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v3a0ext RadioBearerReconfiguration-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerReconfiguration-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v4b0ext - RadioBearerReconfiguration-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v590ext - RadioBearerReconfiguration-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - radioBearerReconfiguration-v5d0ext - RadioBearerReconfiguration-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v690ext - RadioBearerReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v770ext - RadioBearerReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - radioBearerReconfiguration-r4 RadioBearerReconfiguration-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - radioBearerReconfiguration-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v590ext - RadioBearerReconfiguration-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - radioBearerReconfiguration-v5d0ext - RadioBearerReconfiguration-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v690ext - RadioBearerReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v770ext - RadioBearerReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - radioBearerReconfiguration-r5 RadioBearerReconfiguration-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - radioBearerReconfiguration-r5-add-ext BIT STRING OPTIONAL, - v5d0NonCriticalExtenstions SEQUENCE { - radioBearerReconfiguration-v5d0ext RadioBearerReconfiguration-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v690ext - RadioBearerReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v770ext - RadioBearerReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - radioBearerReconfiguration-r6 RadioBearerReconfiguration-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - radioBearerReconfiguration-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v6b0ext - RadioBearerReconfiguration-v6b0ext-IEs, - v6f0NonCriticalExtensions SEQUENCE { - radioBearerRconfiguration-v6f0ext - RadioBearerReconfiguration-v6f0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v770ext - RadioBearerReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - radioBearerReconfiguration-r7 RadioBearerReconfiguration-r7-IEs, - v780NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v780ext - RadioBearerReconfiguration-v780ext-IEs, - v790NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v790ext - RadioBearerReconfiguration-v790ext-IEs, - v7d0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v7d0ext - RadioBearerReconfiguration-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v7f0ext - RadioBearerReconfiguration-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v7g0ext - RadioBearerReconfiguration-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - radioBearerReconfiguration-r8 RadioBearerReconfiguration-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - radioBearerReconfiguration-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v7d0ext - RadioBearerReconfiguration-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v7f0ext - RadioBearerReconfiguration-v7f0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v890ext - RadioBearerReconfiguration-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v7g0ext - RadioBearerReconfiguration-v7g0ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v8a0ext - RadioBearerReconfiguration-v8a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - radioBearerReconfiguration-r9 - RadioBearerReconfiguration-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - radioBearerReconfiguration-r9-add-ext - BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v950ext - RadioBearerReconfiguration-v950ext-IEs, - v9c0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v9c0ext - RadioBearerReconfiguration-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - radioBearerReconfiguration-r10 - RadioBearerReconfiguration-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - radioBearerReconfiguration-r10-add-ext - BIT STRING OPTIONAL, - v9c0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-v9c0ext - RadioBearerReconfiguration-v9c0ext-IEs, - vaa0NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-vaa0ext - RadioBearerReconfiguration-vaa0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - radioBearerReconfiguration-vb50ext - RadioBearerReconfiguration-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - radioBearerReconfiguration-r11 - RadioBearerReconfiguration-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - radioBearerReconfiguration-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -RadioBearerReconfiguration-vaa0ext-IEs ::= SEQUENCE { - um-RLC-ReEstablishmentRBList RB-IdentityList OPTIONAL -} - -RadioBearerReconfiguration-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - -- NOTE: IE rb-InformationReconfigList should be optional in later versions - -- of this message - rb-InformationReconfigList RB-InformationReconfigList, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfo2List OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation OPTIONAL, - -- NOTE: IE dl-InformationPerRL-List is optional in later versions - -- of this message - dl-InformationPerRL-List DL-InformationPerRL-List -} - -RadioBearerReconfiguration-v3a0ext ::= SEQUENCE { - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour - -- is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL -} - -RadioBearerReconfiguration-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -RadioBearerReconfiguration-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -RadioBearerReconfiguration-v5d0ext-IEs ::= SEQUENCE { - --Radio Bearer IEs - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL -} - -RadioBearerReconfiguration-r4-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r4 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -RadioBearerReconfiguration-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r5 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the - -- specification, they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r5 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL, - dl-CommonInformation DL-CommonInformation-r5 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL -} - -RadioBearerReconfiguration-r6-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerReconfiguration-v690ext-IEs ::= SEQUENCE { - -- User Equipment IEs - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- Physical channel IEs - -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message - -- If included in the r3 or r4 version of the message, the UE should ignore the IE - harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL, - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - dhs-sync DHS-Sync OPTIONAL, - timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerReconfiguration-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL -} - -RadioBearerReconfiguration-v6f0ext-IEs ::= SEQUENCE { - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL - } - } -} - -RadioBearerReconfiguration-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerReconfiguration-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueMobilityStateIndicator High-MobilityDetected OPTIONAL -} - -RadioBearerReconfiguration-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -RadioBearerReconfiguration-v790ext-IEs ::= SEQUENCE { - -- Container for adding non critical extensions after freezing REL-8 - radioBearerReconfiguration-r7-add-ext BIT STRING OPTIONAL -} - -RadioBearerReconfiguration-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -RadioBearerReconfiguration-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -RadioBearerReconfiguration-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -RadioBearerReconfiguration-r8-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerReconfiguration-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -RadioBearerReconfiguration-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -RadioBearerReconfiguration-r9-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -RadioBearerReconfiguration-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -RadioBearerReconfiguration-v9c0ext-IEs ::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL -} - -RadioBearerReconfiguration-r10-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -RadioBearerReconfiguration-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -RadioBearerReconfiguration-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - umRlc-ReEstablishmentRBList RB-IdentityList OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER RECONFIGURATION COMPLETE --- --- *************************************************** - -RadioBearerReconfigurationComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- TABULAR: UL-TimingAdvance is applicable for TDD mode only. - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy RB-ActivationTimeInfoList OPTIONAL, - ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerReconfigurationComplete-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - radioBearerReconfigurationComplete-v770ext - RadioBearerReconfigurationComplete-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RadioBearerReconfigurationComplete-v770ext-IEs ::= SEQUENCE { - -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only. - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER RECONFIGURATION FAILURE --- --- *************************************************** - -RadioBearerReconfigurationFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - -- Radio bearer IEs - potentiallySuccesfulBearerList RB-IdentityList OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerReconfigurationFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER RELEASE --- --- *************************************************** - -RadioBearerRelease ::= CHOICE { - r3 SEQUENCE { - radioBearerRelease-r3 RadioBearerRelease-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v3a0ext RadioBearerRelease-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerRelease-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v4b0ext RadioBearerRelease-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - radioBearerRelease-v590ext RadioBearerRelease-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerRelease-v690ext RadioBearerRelease-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - radioBearerRelease-r4 RadioBearerRelease-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - radioBearerRelease-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - radioBearerRelease-v590ext RadioBearerRelease-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerRelease-v690ext RadioBearerRelease-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - radioBearerRelease-r5 RadioBearerRelease-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - radioBearerRelease-r5-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - radioBearerRelease-v690ext RadioBearerRelease-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - radioBearerRelease-r6 RadioBearerRelease-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - radioBearerRelease-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v6b0ext RadioBearerRelease-v6b0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - radioBearerRelease-v770ext RadioBearerRelease-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - radioBearerRelease-r7 RadioBearerRelease-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - radioBearerRelease-r7-add-ext BIT STRING OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - radioBearerRelease-v780ext RadioBearerRelease-v780ext-IEs, - v7d0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v7d0ext RadioBearerRelease-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v7f0ext RadioBearerRelease-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v7g0ext - RadioBearerRelease-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - radioBearerRelease-r8 RadioBearerRelease-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - radioBearerRelease-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v7d0ext RadioBearerRelease-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v7f0ext RadioBearerRelease-v7f0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - radioBearerRelease-v890ext - RadioBearerRelease-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v7g0ext - RadioBearerRelease-v7g0ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v8a0ext - RadioBearerRelease-v8a0ext-IEs, - nonCriticalExtensions - SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - radioBearerRelease-r9 RadioBearerRelease-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - radioBearerRelease-r9-add-ext BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - radioBearerRelease-v950ext RadioBearerRelease-v950ext-IEs, - v970NonCriticalExtensions SEQUENCE { - radioBearerRelease-v970ext RadioBearerRelease-v970ext-IEs, - v9c0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v9c0ext RadioBearerRelease-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - radioBearerRelease-r10 RadioBearerRelease-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - radioBearerRelease-r10-add-ext BIT STRING OPTIONAL, - v9c0NonCriticalExtensions SEQUENCE { - radioBearerRelease-v9c0ext RadioBearerRelease-v9c0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - radioBearerRelease-vb50ext - RadioBearerRelease-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - radioBearerRelease-r11 - RadioBearerRelease-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - radioBearerRelease-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -RadioBearerRelease-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfo2List OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL -} - -RadioBearerRelease-v3a0ext ::= SEQUENCE { - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour - -- is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL -} - -RadioBearerRelease-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -RadioBearerRelease-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -RadioBearerRelease-r4-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -RadioBearerRelease-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL, - dl-CommonInformation DL-CommonInformation-r5 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL -} - -RadioBearerRelease-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- Physical channel IEs - -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message - -- If included in the r3 or r4 version of the message, the UE should ignore the IE - harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL, - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - dhs-sync DHS-Sync OPTIONAL, - timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL -} - -RadioBearerRelease-r6-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL -} - -RadioBearerRelease-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL -} - -RadioBearerRelease-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL -} - -RadioBearerRelease-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueMobilityStateIndicator High-MobilityDetected OPTIONAL -} - -RadioBearerRelease-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -RadioBearerRelease-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -RadioBearerRelease-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -RadioBearerRelease-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -RadioBearerRelease-r8-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL -} - -RadioBearerRelease-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -RadioBearerRelease-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -RadioBearerRelease-r9-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL -} - -RadioBearerRelease-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -RadioBearerRelease-v970ext-IEs ::= SEQUENCE { - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -RadioBearerRelease-v9c0ext-IEs ::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL -} - -RadioBearerRelease-r10-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -RadioBearerRelease-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -RadioBearerRelease-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER RELEASE COMPLETE --- --- *************************************************** - -RadioBearerReleaseComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- TABULAR: UL-TimingAdvance is applicable for TDD mode only. - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy RB-ActivationTimeInfoList OPTIONAL, - ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerReleaseComplete-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - radioBearerReleaseComplete-v770ext - RadioBearerReleaseComplete-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RadioBearerReleaseComplete-v770ext-IEs ::= SEQUENCE { - -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only. - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER RELEASE FAILURE --- --- *************************************************** - -RadioBearerReleaseFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - -- Radio bearer IEs - potentiallySuccesfulBearerList RB-IdentityList OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerReleaseFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER SETUP --- --- *************************************************** - -RadioBearerSetup ::= CHOICE { - r3 SEQUENCE { - radioBearerSetup-r3 RadioBearerSetup-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v3a0ext RadioBearerSetup-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerSetup-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v4b0ext RadioBearerSetup-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - radioBearerSetup-v590ext RadioBearerSetup-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - radioBearerSetup-v5d0ext RadioBearerSetup-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerSetup-v690ext RadioBearerSetup-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - radioBearerSetup-r4 RadioBearerSetup-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - radioBearerSetup-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - radioBearerSetup-v590ext RadioBearerSetup-v590ext-IEs, - v5d0NonCriticalExtenstions SEQUENCE { - radioBearerSetup-v5d0ext RadioBearerSetup-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerSetup-v690ext RadioBearerSetup-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - radioBearerSetup-r5 RadioBearerSetup-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - radioBearerSetup-r5-add-ext BIT STRING OPTIONAL, - v5d0NonCriticalExtenstions SEQUENCE { - radioBearerSetup-v5d0ext RadioBearerSetup-v5d0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - radioBearerSetup-v690ext RadioBearerSetup-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - radioBearerSetup-r6 RadioBearerSetup-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - radioBearerSetup-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v6b0ext RadioBearerSetup-v6b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - radioBearerSetup-r7 RadioBearerSetup-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - radioBearerSetup-r7-add-ext BIT STRING - (CONTAINING RadioBearerSetup-r7-add-ext-IEs) OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - radioBearerSetup-v780ext RadioBearerSetup-v780ext-IEs, - v820NonCriticalExtensions SEQUENCE { - radioBearerSetup-v820ext RadioBearerSetup-v820ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - radioBearerSetup-r8 RadioBearerSetup-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - radioBearerSetup-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v7d0ext RadioBearerSetup-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v7f0ext RadioBearerSetup-v7f0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - radioBearerSetup-v890ext - RadioBearerSetup-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v7g0ext - RadioBearerSetup-v7g0ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v8a0ext - RadioBearerSetup-v8a0ext-IEs, - nonCriticalExtensions - SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - radioBearerSetup-r9 RadioBearerSetup-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - radioBearerSetup-r9-add-ext BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - radioBearerSetup-v950ext RadioBearerSetup-v950ext-IEs, - v9c0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v9c0ext RadioBearerSetup-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - radioBearerSetup-r10 RadioBearerSetup-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - radioBearerSetup-r10-add-ext BIT STRING OPTIONAL, - v9c0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v9c0ext RadioBearerSetup-v9c0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - radioBearerSetup-vb50ext - RadioBearerSetup-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - radioBearerSetup-r11 RadioBearerSetup-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - radioBearerSetup-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -RadioBearerSetup-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL -} - -RadioBearerSetup-v3a0ext ::= SEQUENCE { - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received the UE behaviour - -- is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL -} - -RadioBearerSetup-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -RadioBearerSetup-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -RadioBearerSetup-v5d0ext-IEs ::= SEQUENCE { - --Radio Bearer IEs - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL -} - -RadioBearerSetup-r4-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r4 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -RadioBearerSetup-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r5 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r5 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r5 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL, - dl-CommonInformation DL-CommonInformation-r5 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL -} - -RadioBearerSetup-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- Physical channel IEs - -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message - -- If included in the r3 or r4 version of the message, the UE should ignore the IE - harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL, - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - dhs-sync DHS-Sync OPTIONAL, - timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL, - -- Radio bearer IEs - rab-InformationSetupList RAB-InformationSetupList-r6-ext OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerSetup-r6-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r6 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r6 OPTIONAL, - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r6 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r6 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r5 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL - }, - -- dummy is not used in this version of the specification - -- if it is sent, the UE behaviour is unspecified. - dummy SEQUENCE { - rab-Info RAB-Info-r6, - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6, - rb-InformationChangedList RB-InformationChangedList-r6 OPTIONAL, - powerOffsetInfoShort PowerOffsetInfoShort - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerSetup-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL, - -- MBMS IEs - -- The order of the RABs in IE rab-InformationSetupListExt is the same as - -- in IE rab-InformationSetupList that is included in this message - rab-InformationSetupListExt RAB-InformationSetupList-v6b0ext OPTIONAL -} - -RadioBearerSetup-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r7 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r7 OPTIONAL, - rab-InformationReconfigList RAB-InformationReconfigList OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r7 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r7 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL - }, - -- dummy is not used in this version of the specification - -- if it is sent, the UE behaviour is unspecified. - dummy NULL - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerSetup-r7-add-ext-IEs ::= SEQUENCE { - radioBearerSetup-v7d0ext RadioBearerSetup-v7d0ext-IEs OPTIONAL, - v7f0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v7f0ext RadioBearerSetup-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - radioBearerSetup-v7g0ext RadioBearerSetup-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RadioBearerSetup-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -RadioBearerSetup-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -RadioBearerSetup-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -RadioBearerSetup-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -RadioBearerSetup-r8-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - sr-vcc-Info SR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r8 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -RadioBearerSetup-v820ext-IEs ::= SEQUENCE { - -- Radio bearer IEs - rab-InformationSetupList RAB-InformationSetupList-v820ext OPTIONAL -} - -RadioBearerSetup-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -RadioBearerSetup-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -RadioBearerSetup-r9-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - sr-vcc-Info SR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r8 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -RadioBearerSetup-v950ext-IEs::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -RadioBearerSetup-v9c0ext-IEs::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL -} - -RadioBearerSetup-r10-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - sr-vcc-Info SR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r8 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -RadioBearerSetup-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -RadioBearerSetup-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - sr-vcc-Info SR-VCC-Info OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList-r11 OPTIONAL, - rab-InformationSetupList RAB-InformationSetupList-r11 OPTIONAL, - rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, - rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, - rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER SETUP COMPLETE --- --- *************************************************** - -RadioBearerSetupComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- TABULAR: UL-TimingAdvance is applicable for TDD mode only. - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - start-Value START-Value OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy RB-ActivationTimeInfoList OPTIONAL, - ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerSetupComplete-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - radioBearerSetupComplete-v770ext - RadioBearerSetupComplete-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RadioBearerSetupComplete-v770ext-IEs ::= SEQUENCE { - -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only. - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- RADIO BEARER SETUP FAILURE --- --- *************************************************** - -RadioBearerSetupFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - -- Radio bearer IEs - potentiallySuccesfulBearerList RB-IdentityList OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - radioBearerSetupFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- RRC CONNECTION REJECT --- --- *************************************************** - -RRCConnectionReject ::= CHOICE { - r3 SEQUENCE { - rrcConnectionReject-r3 RRCConnectionReject-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcConnectionReject-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionReject-v690ext RRCConnectionReject-v690ext-IEs, - v6f0NonCriticalExtensions SEQUENCE { - rrcConnectionReject-v6f0ext RRCConnectionReject-v6f0ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionReject-v860ext RRCConnectionReject-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionReject-va40ext RRCConnectionReject-va40ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - rrcConnectionReject-vb50ext RRCConnectionReject-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - initialUE-Identity InitialUE-Identity, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -RRCConnectionReject-r3-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - -- User equipment IEs - initialUE-Identity InitialUE-Identity, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - rejectionCause RejectionCause, - waitTime WaitTime, - redirectionInfo RedirectionInfo OPTIONAL -} - -RRCConnectionReject-v690ext-IEs ::= SEQUENCE { - redirectionInfo-v690ext GSM-TargetCellInfoList OPTIONAL -} - -RRCConnectionReject-v6f0ext-IEs ::= SEQUENCE { - countingCompletion ENUMERATED { true } OPTIONAL -} - -RRCConnectionReject-v860ext-IEs ::= SEQUENCE { - redirectionInfo RedirectionInfo-v860ext OPTIONAL -} - -RRCConnectionReject-va40ext-IEs ::= SEQUENCE { - extendedWaitTime ExtendedWaitTime OPTIONAL -} - -RRCConnectionReject-vb50ext-IEs ::= SEQUENCE { - eutra-TargetFreqInfoList EUTRA-TargetFreqInfoList-vb50ext OPTIONAL -} - --- *************************************************** --- --- RRC CONNECTION RELEASE --- --- *************************************************** - -RRCConnectionRelease ::= CHOICE { - r3 SEQUENCE { - rrcConnectionRelease-r3 RRCConnectionRelease-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcConnectionRelease-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v690ext RRCConnectionRelease-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v770ext RRCConnectionRelease-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v860ext RRCConnectionRelease-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-va40ext RRCConnectionRelease-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - rrcConnectionRelease-r4 RRCConnectionRelease-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-6 - rrcConnectionRelease-r4-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v690ext RRCConnectionRelease-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v770ext RRCConnectionRelease-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v860ext RRCConnectionRelease-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-va40ext - RRCConnectionRelease-va40ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-vb50ext - RRCConnectionRelease-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -RRCConnectionRelease-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- n-308 is conditional on the UE state - n-308 N-308 OPTIONAL, - releaseCause ReleaseCause, - rplmn-information Rplmn-Information OPTIONAL -} - -RRCConnectionRelease-r4-IEs ::= SEQUENCE { - -- User equipment IEs - -- n-308 is conditional on the UE state. - n-308 N-308 OPTIONAL, - releaseCause ReleaseCause, - rplmn-information Rplmn-Information-r4 OPTIONAL -} - -RRCConnectionRelease-v690ext-IEs ::= SEQUENCE { - redirectionInfo-v690ext RedirectionInfo-r6 OPTIONAL -} - -RRCConnectionRelease-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueMobilityStateIndicator High-MobilityDetected OPTIONAL -} - -RRCConnectionRelease-v860ext-IEs ::= SEQUENCE { - -- Other IEs - redirectionInfo RedirectionInfo-v860ext OPTIONAL -} - -RRCConnectionRelease-va40ext-IEs ::= SEQUENCE { - extendedWaitTime ExtendedWaitTime OPTIONAL -} - -RRCConnectionRelease-vb50ext-IEs ::= SEQUENCE { - -- Other IEs - eutra-TargetFreqInfoList EUTRA-TargetFreqInfoList-vb50ext OPTIONAL -} - --- *************************************************** --- --- RRC CONNECTION RELEASE for CCCH --- --- *************************************************** - -RRCConnectionRelease-CCCH ::= CHOICE { - r3 SEQUENCE { - rrcConnectionRelease-CCCH-r3 RRCConnectionRelease-CCCH-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcConnectionRelease-CCCH-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v690ext RRCConnectionRelease-CCCH-v690ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v860ext RRCConnectionRelease-CCCH-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-va40ext RRCConnectionRelease-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - u-RNTI U-RNTI, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - rrcConnectionRelease-CCCH-r4 RRCConnectionRelease-CCCH-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - rrcConnectionRelease-CCCH-r4-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v690ext RRCConnectionRelease-CCCH-v690ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v860ext RRCConnectionRelease-CCCH-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-va40ext - RRCConnectionRelease-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE { - -- TABULAR: CHOICE IdentityType (U-RNTI, GroupIdentity) is replaced with the - -- optional element groupIdentity, since the U-RNTI is mandatory in ASN.1. - -- In case CHOICE IdentityType is equal to GroupIdentity the value of the U-RNTI - -- shall be ignored by a UE complying with this version of the message. - groupIdentity SEQUENCE ( SIZE (1 .. maxURNTI-Group) ) OF - GroupReleaseInformation OPTIONAL, - criticalExtensions CHOICE { - r5 SEQUENCE { - rrcConnectionRelease-CCCH-r5 RRCConnectionRelease-CCCH-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - rrcConnectionRelease-CCCH-r5-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v690ext RRCConnectionRelease-CCCH-v690ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-v860ext - RRCConnectionRelease-CCCH-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionRelease-va40ext - RRCConnectionRelease-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } -} - -RRCConnectionRelease-CCCH-r3-IEs ::= SEQUENCE { - -- User equipment IEs - u-RNTI U-RNTI, - -- The rest of the message is identical to the one sent on DCCH. - rrcConnectionRelease RRCConnectionRelease-r3-IEs -} - -RRCConnectionRelease-CCCH-r4-IEs ::= SEQUENCE { - -- The rest of the message is identical to the one sent on DCCH. - rrcConnectionRelease RRCConnectionRelease-r4-IEs -} - --- The R5 and R4 sequence of IEs are identical in this message -RRCConnectionRelease-CCCH-r5-IEs ::= RRCConnectionRelease-CCCH-r4-IEs - --- The R6 non-critical extension is identical to the one sent on DCCH. -RRCConnectionRelease-CCCH-v690ext-IEs ::= RRCConnectionRelease-v690ext-IEs - --- The R8 non-critical extension is identical to the one sent on DCCH. -RRCConnectionRelease-CCCH-v860ext-IEs ::= RRCConnectionRelease-v860ext-IEs - --- The R10 non-critical extension is identical to the one sent on DCCH. -RRCConnectionRelease-CCCH-va40ext-IEs ::= RRCConnectionRelease-va40ext-IEs - --- *************************************************** --- --- RRC CONNECTION RELEASE COMPLETE --- --- *************************************************** - -RRCConnectionReleaseComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - errorIndication FailureCauseWithProtErr OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcConnectionReleaseComplete-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- RRC CONNECTION REQUEST --- --- *************************************************** - -RRCConnectionRequest ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - -- User equipment IEs - initialUE-Identity InitialUE-Identity, - establishmentCause EstablishmentCause, - -- protocolErrorIndicator is MD, but for compactness reasons no default value - -- has been assigned to it. - protocolErrorIndicator ProtocolErrorIndicator, - -- Measurement IEs - measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL, - -- Non critical Extensions - v3d0NonCriticalExtensions SEQUENCE { - rRCConnectionRequest-v3d0ext RRCConnectionRequest-v3d0ext-IEs, - -- Reserved for future non critical extension - v4b0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v4b0ext RRCConnectionRequest-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v590ext RRCConnectionRequest-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v690ext RRCConnectionRequest-v690ext-IEs, - -- Reserved for future non critical extension - v6b0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v6b0ext RRCConnectionRequest-v6b0ext-IEs, - v6e0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v6e0ext RRCConnectionRequest-v6e0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v770ext - RRCConnectionRequest-v770ext-IEs, - v7b0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v7b0ext - RRCConnectionRequest-v7b0ext-IEs, - v860NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v860ext - RRCConnectionRequest-v860ext-IEs, - v7e0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v7e0ext - RRCConnectionRequest-v7e0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v7g0ext - RRCConnectionRequest-v7g0ext-IEs, - v920NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v920ext - RRCConnectionRequest-v920ext-IEs, - v940NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v940ext - RRCConnectionRequest-v940ext-IEs, - va40NonCriticalExtensions - RRCConnectionRequest-NonCriticalExts-va40-IEs - OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RRCConnectionRequest-v3d0ext-IEs ::= SEQUENCE { - -- User equipment IEs - uESpecificBehaviourInformation1idle UESpecificBehaviourInformation1idle OPTIONAL -} - -RRCConnectionRequest-v4b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - accessStratumReleaseIndicator AccessStratumReleaseIndicator -} - -RRCConnectionRequest-v590ext-IEs ::= SEQUENCE { - -- User equipment IEs - predefinedConfigStatusInfo BOOLEAN -} - -RRCConnectionRequest-v690ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueCapabilityIndication ENUMERATED { hsdch, hsdch-edch } OPTIONAL, - -- Measurement IEs - measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL, - domainIndicator CHOICE { - cs-domain SEQUENCE { - csCallType ENUMERATED {speech, video, other, spare } - }, - ps-domain NULL - } -} - -RRCConnectionRequest-v6b0ext-IEs ::= SEQUENCE { - -- MBMS IEs - mbmsSelectedServices MBMS-SelectedServicesShort OPTIONAL -} - -RRCConnectionRequest-v6e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForFDPCH ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - hspdschReception-CellFach ENUMERATED { true } OPTIONAL, - mac-ehsSupport ENUMERATED { true } OPTIONAL, - discontinuousDpcchTransmission ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v7b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForE-FDPCH ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v7e0ext-IEs ::= SEQUENCE { - supportForCSVoiceoverHSPA ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v7g0ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL -} - -RRCConnectionRequest-v860ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportOfCommonEDCH ENUMERATED { true } OPTIONAL, - multiCellSupport ENUMERATED { true } OPTIONAL, - pre-redirectionInfo Pre-RedirectionInfo OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL, - supportOfSPSOperation ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v920ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportOfDualCellMIMO ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v940ext-IEs ::= SEQUENCE { - -- User equipment IEs - systemInformationContainerStoredIndicator ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-v9b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - cSFBIndication ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-NonCriticalExts-va40-IEs ::= SEQUENCE { - rrcConnectionRequest-va40ext RRCConnectionRequest-va40ext-IEs, - v9b0NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-v9b0ext RRCConnectionRequest-v9b0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - rrcConnectionRequest-vb50ext RRCConnectionRequest-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RRCConnectionRequest-va40ext-IEs ::= SEQUENCE { - -- User equipment IEs - -- For 1.28 Mcps TDD, IE ”supportOfMoreThanTwoCellsOrMIMO4x4” represent MU-MIMO capability, - -- higherRate indicates uplink and downlink MU-MIMO, lowerRate indicates uplink MU-MIMO - supportOfMoreThanTwoCellsOrMIMO4x4 ENUMERATED { higherRate, lowerRate } OPTIONAL, - supportOf1stFrequencyBand ENUMERATED { true } OPTIONAL, - supportOf2ndFrequencyBand ENUMERATED { true } OPTIONAL -} - -RRCConnectionRequest-vb50ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL -} - --- *************************************************** --- --- RRC CONNECTION SETUP --- --- *************************************************** - -RRCConnectionSetup ::= CHOICE { - r3 SEQUENCE { - rrcConnectionSetup-r3 RRCConnectionSetup-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcConnectionSetup-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v4b0ext RRCConnectionSetup-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v590ext RRCConnectionSetup-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v690ext RRCConnectionSetup-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - initialUE-Identity InitialUE-Identity, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - rrcConnectionSetup-r4 RRCConnectionSetup-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - rrcConnectionSetup-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v590ext RRCConnectionSetup-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v690ext RRCConnectionSetup-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - rrcConnectionSetup-r5 RRCConnectionSetup-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - rrcConnectionSetup-r5-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v690ext RRCConnectionSetup-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - rrcConnectionSetup-r6 RRCConnectionSetup-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - rrcConnectionSetup-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v6b0ext RRCConnectionSetup-v6b0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - rrcConnectionSetup-r7 RRCConnectionSetup-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - rrcConnectionSetup-r7-add-ext BIT STRING OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v780ext RRCConnectionSetup-v780ext-IEs, - v7d0NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v7d0ext RRCConnectionSetup-v7d0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - rrcConnectionSetup-r8-add-ext BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v7d0ext RRCConnectionSetup-v7d0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v890ext - RRCConnectionSetup-v890ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v8a0ext - RRCConnectionSetup-v8a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - rrcConnectionSetup-r9 RRCConnectionSetup-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - rrcConnectionSetup-r9-add-ext - BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - rrcConnectionSetup-v950ext RRCConnectionSetup-v950ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - rrcConnectionSetup-r10 RRCConnectionSetup-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - rrcConnectionSetup-r10-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - rrcConnectionSetup-r11 - RRCConnectionSetup-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - rrcConnectionSetup-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -RRCConnectionSetup-r3-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - -- User equipment IEs - initialUE-Identity InitialUE-Identity, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL, - -- NOTE: ul-AddReconfTransChInfoList should be optional in later versions of - -- this message - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList, - dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL, - -- NOTE: dl-AddReconfTransChInfoList should be optional in later versions - -- of this message - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement OPTIONAL, - dl-CommonInformation DL-CommonInformation OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL -} - -RRCConnectionSetup-v4b0ext-IEs ::= SEQUENCE { - capabilityUpdateRequirement-r4-ext CapabilityUpdateRequirement-r4-ext OPTIONAL, - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -RRCConnectionSetup-v590ext-IEs ::= SEQUENCE { - -- User equipment IEs - systemSpecificCapUpdateReq SystemSpecificCapUpdateReq-v590ext OPTIONAL, - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -RRCConnectionSetup-r4-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r4 OPTIONAL, - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -RRCConnectionSetup-r5-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r5 OPTIONAL, - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r5 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5bis OPTIONAL -} - -RRCConnectionSetup-v690ext-IEs ::= SEQUENCE { - -- Physical Channel IEs - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL -} - -RRCConnectionSetup-r6-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r5 OPTIONAL, - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2-r6, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL -} - -RRCConnectionSetup-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL -} - -RRCConnectionSetup-r7-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r7 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - -- Specification mode information - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2-r7, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL -} - -RRCConnectionSetup-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -RRCConnectionSetup-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -RRCConnectionSetup-r8-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2-r8, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL -} - -RRCConnectionSetup-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -RRCConnectionSetup-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -RRCConnectionSetup-r9-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2-r8, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL -} - -RRCConnectionSetup-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -RRCConnectionSetup-r10-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2-r8, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL -} - -RRCConnectionSetup-r11-IEs ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI, - new-c-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7, - -- TABULAR: If capabilityUpdateRequirement is not present, the default value - -- defined in 10.3.3.2 shall be used. - capabilityUpdateRequirement CapabilityUpdateRequirement-r8 OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN, - -- Specification mode information - defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, - specificationMode CHOICE { - complete SEQUENCE { - -- Radio bearer IEs - srb-InformationSetupList SRB-InformationSetupList2-r8, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL - }, - preconfiguration SEQUENCE { - -- All IEs that include an FDD/TDD choice are split in two IEs for this message, - -- one for the FDD only elements and one for the TDD only elements, so that one - -- FDD/TDD choice in this level is sufficient. - preConfigMode CHOICE { - predefinedConfigIdentity PredefinedConfigIdentity, - defaultConfig SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdentity DefaultConfigIdentity-r6 - } - } - } - }, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL -} - --- *************************************************** --- --- RRC CONNECTION SETUP COMPLETE --- --- *************************************************** - -RRCConnectionSetupComplete ::= SEQUENCE { - -- TABULAR: Integrity protection shall not be performed on this message. - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - startList STARTList, - ue-RadioAccessCapability UE-RadioAccessCapability OPTIONAL, - -- Other IEs - ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL, - -- Non critical extensions - v370NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v370ext RRCConnectionSetupComplete-v370ext, - v380NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v380ext RRCConnectionSetupComplete-v380ext-IEs, - -- Reserved for future non critical extension - v3a0NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v3a0ext RRCConnectionSetupComplete-v3a0ext-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcConnectionSetupComplete-r3-add-ext BIT STRING - (CONTAINING RRCConnectionSetupComplete-r3-add-ext-IEs) OPTIONAL, - v3g0NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v3g0ext RRCConnectionSetupComplete-v3g0ext-IEs, - v4b0NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v4b0ext - RRCConnectionSetupComplete-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v590ext - RRCConnectionSetupComplete-v590ext-IEs, - v5c0NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v5c0ext - RRCConnectionSetupComplete-v5c0ext-IEs, - v690NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v690ext - RRCConnectionSetupComplete-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - rrcConectionSetupComplete-v770ext - RRCConnectionSetupComplete-v770ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConectionSetupComplete-va40ext - RRCConnectionSetupComplete-va40ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-vb50ext - RRCConnectionSetupComplete-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RRCConnectionSetupComplete-v370ext ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext OPTIONAL -} - -RRCConnectionSetupComplete-v380ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL, - dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext -} - -RRCConnectionSetupComplete-v3a0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL -} - -RRCConnectionSetupComplete-v3g0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL -} - -RRCConnectionSetupComplete-r3-add-ext-IEs ::= SEQUENCE { - rrcConnectionSetupComplete-v650ext RRCConnectionSetupComplete-v650ext-IEs OPTIONAL, - v680NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v680ext RRCConnectionSetupComplete-v680ext-IEs, - v7e0NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v7e0ext RRCConnectionSetupComplete-v7e0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - rrcConnectionSetupComplete-v7f0ext - RRCConnectionSetupComplete-v7f0ext-IEs, - va40NonCriticalExtensions SEQUENCE { - rrcConnectionSetupCompleteBand-va40ext - RRCConnectionSetupCompleteBand-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -RRCConnectionSetupComplete-v4b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v4b0ext UE-RadioAccessCapability-v4b0ext OPTIONAL -} - -RRCConnectionSetupComplete-v590ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v590ext UE-RadioAccessCapability-v590ext OPTIONAL, - -- Other IEs - ue-RATSpecificCapability-v590ext InterRAT-UE-RadioAccessCapability-v590ext OPTIONAL -} - -RRCConnectionSetupComplete-v5c0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v5c0ext UE-RadioAccessCapability-v5c0ext OPTIONAL -} - -RRCConnectionSetupComplete-v650ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v650ext UE-RadioAccessCapability-v650ext -} - -RRCConnectionSetupComplete-v680ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v680ext UE-RadioAccessCapability-v680ext -} - -RRCConnectionSetupComplete-v690ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueCapabilityContainer BIT STRING - (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL -} - -RRCConnectionSetupComplete-v770ext-IEs ::= SEQUENCE { - -- Other IEs - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - -RRCConnectionSetupComplete-v7e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext -} - -RRCConnectionSetupComplete-v7f0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL -} - -RRCConnectionSetupComplete-va40ext-IEs ::= SEQUENCE { - -- Other IEs - loggedMeasAvailable ENUMERATED { true } OPTIONAL, - loggedANRResultsAvailable ENUMERATED { true } OPTIONAL} - -RRCConnectionSetupCompleteBand-va40ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapabBand UE-RadioAccessCapabBand-va40ext OPTIONAL -} - -RRCConnectionSetupComplete-vb50ext-IEs ::= SEQUENCE { - -- Other IEs - connEstFailInfoAvailable ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- RRC FAILURE INFO --- --- *************************************************** - -RRC-FailureInfo ::= CHOICE { - r3 SEQUENCE { - rRC-FailureInfo-r3 RRC-FailureInfo-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrc-FailureInfo-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE {} -} - -RRC-FailureInfo-r3-IEs ::= SEQUENCE { - -- Non-RRC IEs - failureCauseWithProtErr FailureCauseWithProtErr -} - --- *************************************************** --- --- RRC STATUS --- --- *************************************************** - -RRCStatus ::= SEQUENCE { - -- Other IEs - -- TABULAR: Identification of received message is nested in - -- ProtocolErrorMoreInformation - protocolErrorInformation ProtocolErrorMoreInformation, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - rrcStatus-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- SECURITY MODE COMMAND --- --- *************************************************** - -SecurityModeCommand ::= CHOICE { - r3 SEQUENCE { - securityModeCommand-r3 SecurityModeCommand-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - securityModeCommand-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r7 SEQUENCE{ - securityModeCommand-r7 SecurityModeCommand-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - securityModeCommand-r7-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -SecurityModeCommand-r3-IEs ::= SEQUENCE { --- TABULAR: Integrity protection shall always be performed on this message. - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - securityCapability SecurityCapability, - cipheringModeInfo CipheringModeInfo OPTIONAL, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - -- Other IEs - ue-SystemSpecificSecurityCap InterRAT-UE-SecurityCapList OPTIONAL -} - -SecurityModeCommand-r7-IEs ::= SEQUENCE { --- TABULAR: Integrity protection shall always be performed on this message. - -- User equipment IEs - securityCapability SecurityCapability, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - -- Other IEs - ue-SystemSpecificSecurityCap InterRAT-UE-SecurityCapList OPTIONAL -} - --- *************************************************** --- --- SECURITY MODE COMPLETE --- --- *************************************************** - -SecurityModeComplete ::= SEQUENCE { --- TABULAR: Integrity protection shall always be performed on this message. - - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- Radio bearer IEs - rb-UL-CiphActivationTimeInfo RB-ActivationTimeInfoList OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - securityModeComplete-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- SECURITY MODE FAILURE --- --- *************************************************** - -SecurityModeFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - securityModeFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- SIGNALLING CONNECTION RELEASE --- --- *************************************************** - -SignallingConnectionRelease ::= CHOICE { - r3 SEQUENCE { - signallingConnectionRelease-r3 SignallingConnectionRelease-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - signallingConnectionRelease-r3-add-ext BIT STRING OPTIONAL, - va40NonCriticalExtensions SEQUENCE { - signallingConnectionRelease-va40ext SignallingConnectionRelease-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -SignallingConnectionRelease-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity -} - -SignallingConnectionRelease-va40ext-IEs ::= SEQUENCE { - extendedWaitTime ExtendedWaitTime OPTIONAL -} - --- *************************************************** --- --- SIGNALLING CONNECTION RELEASE INDICATION --- --- *************************************************** - -SignallingConnectionReleaseIndication ::= SEQUENCE { - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - signallingConnectionReleaseIndication-r3-add-ext BIT STRING OPTIONAL, - v860nonCriticalExtentions SEQUENCE { - signallingConnectionReleaseIndication-v860ext - SignallingConnectionReleaseIndication-v860ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SignallingConnectionReleaseIndication-v860ext ::= SEQUENCE { - signallingConnectionReleaseIndicationCause - ENUMERATED { uERequestedPSDataSessionEnd, anyOtherCause } -} - --- *************************************************** --- --- SYSTEM INFORMATION for BCH --- --- *************************************************** - -SystemInformation-BCH ::= SEQUENCE { - -- Other information elements - sfn-Prime SFN-Prime, - payload CHOICE { - noSegment NULL, - firstSegment FirstSegment, - subsequentSegment SubsequentSegment, - lastSegmentShort LastSegmentShort, - lastAndFirst SEQUENCE { - lastSegmentShort LastSegmentShort, - firstSegment FirstSegmentShort - }, - lastAndComplete SEQUENCE { - lastSegmentShort LastSegmentShort, - completeSIB-List CompleteSIB-List - }, - lastAndCompleteAndFirst SEQUENCE { - lastSegmentShort LastSegmentShort, - completeSIB-List CompleteSIB-List, - firstSegment FirstSegmentShort - }, - completeSIB-List CompleteSIB-List, - completeAndFirst SEQUENCE { - completeSIB-List CompleteSIB-List, - firstSegment FirstSegmentShort - }, - completeSIB CompleteSIB, - lastSegment LastSegment, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL - } -} - --- *************************************************** --- --- SYSTEM INFORMATION for FACH --- --- *************************************************** - --- this IE is not used in this version of the specification. -SystemInformation-FACH ::= SEQUENCE { - -- Other information elements - payload CHOICE { - noSegment NULL, - firstSegment FirstSegment, - subsequentSegment SubsequentSegment, - lastSegmentShort LastSegmentShort, - lastAndFirst SEQUENCE { - lastSegmentShort LastSegmentShort, - firstSegment FirstSegmentShort - }, - lastAndComplete SEQUENCE { - lastSegmentShort LastSegmentShort, - completeSIB-List CompleteSIB-List - }, - lastAndCompleteAndFirst SEQUENCE { - lastSegmentShort LastSegmentShort, - completeSIB-List CompleteSIB-List, - firstSegment FirstSegmentShort - }, - completeSIB-List CompleteSIB-List, - completeAndFirst SEQUENCE { - completeSIB-List CompleteSIB-List, - firstSegment FirstSegmentShort - }, - completeSIB CompleteSIB, - lastSegment LastSegment, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL - } -} - --- *************************************************** --- --- First segment --- --- *************************************************** - -FirstSegment ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - seg-Count SegCount, - sib-Data-fixed SIB-Data-fixed -} - --- *************************************************** --- --- First segment (short) --- --- *************************************************** - -FirstSegmentShort ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - seg-Count SegCount, - sib-Data-variable SIB-Data-variable -} - --- *************************************************** --- --- Subsequent segment --- --- *************************************************** - -SubsequentSegment ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - segmentIndex SegmentIndex, - sib-Data-fixed SIB-Data-fixed -} - --- *************************************************** --- --- Last segment --- --- *************************************************** - -LastSegment ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - segmentIndex SegmentIndex, - -- For sib-Data-fixed, in case the SIB data is less than 222 bits, padding - -- shall be used. The same padding bits shall be used as defined in clause 12.1 - sib-Data-fixed SIB-Data-fixed -} - -LastSegmentShort ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - segmentIndex SegmentIndex, - sib-Data-variable SIB-Data-variable -} - --- *************************************************** --- --- Complete SIB --- --- *************************************************** - -CompleteSIB-List ::= SEQUENCE (SIZE (1..maxSIBperMsg)) OF - CompleteSIBshort - -CompleteSIB ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - -- For sib-Data-fixed, in case the SIB data is less than 226 bits, padding - -- shall be used. The same padding bits shall be used as defined in clause 12.1 - sib-Data-fixed BIT STRING (SIZE (226)) -} - -CompleteSIBshort ::= SEQUENCE { - -- Other information elements - sib-Type SIB-Type, - sib-Data-variable SIB-Data-variable -} - --- *************************************************** --- --- SYSTEM INFORMATION CHANGE INDICATION --- --- *************************************************** - -SystemInformationChangeIndication ::= SEQUENCE { - -- Other IEs - bcch-ModificationInfo BCCH-ModificationInfo, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - systemInformationChangeIndication-r3-add-ext BIT STRING OPTIONAL, - v860NonCriticalExtensions SEQUENCE { - systemInformationChangeIndication-v860ext - SystemInformationChangeIndication-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SystemInformationChangeIndication-v860ext-IEs ::= SEQUENCE { - -- Other IEs - etws-Information ETWS-Information OPTIONAL -} - --- *************************************************** --- --- TRANSPORT CHANNEL RECONFIGURATION --- --- *************************************************** - -TransportChannelReconfiguration ::= CHOICE { - r3 SEQUENCE { - transportChannelReconfiguration-r3 - TransportChannelReconfiguration-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v3a0ext - TransportChannelReconfiguration-v3a0ext, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - transportChannelReconfiguration-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v4b0ext - TransportChannelReconfiguration-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v590ext - TransportChannelReconfiguration-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v690ext - TransportChannelReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v770ext - TransportChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - transportChannelReconfiguration-r4 - TransportChannelReconfiguration-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - transportChannelReconfiguration-r4-add-ext BIT STRING OPTIONAL, - v590NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v590ext - TransportChannelReconfiguration-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v690ext - TransportChannelReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v770ext - TransportChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - transportChannelReconfiguration-r5 - TransportChannelReconfiguration-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - transportChannelReconfiguration-r5-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v690ext - TransportChannelReconfiguration-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v770ext - TransportChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r6 SEQUENCE { - transportChannelReconfiguration-r6 - TransportChannelReconfiguration-r6-IEs, - -- Container for adding non critical extensions after freezing REL-7 - transportChannelReconfiguration-r6-add-ext BIT STRING OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v6b0ext - TransportChannelReconfiguration-v6b0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v770ext - TransportChannelReconfiguration-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - transportChannelReconfiguration-r7 - TransportChannelReconfiguration-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - transportChannelReconfiguration-r7-add-ext BIT STRING OPTIONAL, - v780NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v780ext - TransportChannelReconfiguration-v780ext-IEs, - v7d0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v7d0ext - TransportChannelReconfiguration-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v7f0ext - TransportChannelReconfiguration-v7f0ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v7g0ext - TransportChannelReconfiguration-v7g0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r8 SEQUENCE { - transportChannelReconfiguration-r8 - TransportChannelReconfiguration-r8-IEs, - -- Container for adding non critical extensions after freezing REL-9 - transportChannelReconfiguration-r8-add-ext - BIT STRING OPTIONAL, - v7d0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v7d0ext - TransportChannelReconfiguration-v7d0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v7f0ext - TransportChannelReconfiguration-v7f0ext-IEs, - v890NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v890ext - TransportChannelReconfiguration-v890ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v7g0ext - TransportChannelReconfiguration-v7g0ext-IEs, - v8a0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v8a0ext - TransportChannelReconfiguration-v8a0ext-IEs, - nonCriticalExtensions - SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r9 SEQUENCE { - transportChannelReconfiguration-r9 - TransportChannelReconfiguration-r9-IEs, - -- Container for adding non critical extensions after - -- freezing REL-10 - transportChannelReconfiguration-r9-add-ext - BIT STRING OPTIONAL, - v950NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v950ext - TransportChannelReconfiguration-v950ext-IEs, - v9c0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v9c0ext - TransportChannelReconfiguration-v9c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r10 SEQUENCE { - transportChannelReconfiguration-r10 - TransportChannelReconfiguration-r10-IEs, - -- Container for adding non critical extensions after - -- freezing REL-11 - transportChannelReconfiguration-r10-add-ext - BIT STRING OPTIONAL, - v9c0NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-v9c0ext - TransportChannelReconfiguration-v9c0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - transportChannelReconfiguration-vb50ext - TransportChannelReconfiguration-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - transportChannelReconfiguration-r11 - TransportChannelReconfiguration-r11-IEs, - -- Container for adding non critical extensions after - -- freezing REL-12 - transportChannelReconfiguration-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } - } - } - } - } - } -} - -TransportChannelReconfiguration-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List OPTIONAL -} - -TransportChannelReconfiguration-v3a0ext ::= SEQUENCE { - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL -} - -TransportChannelReconfiguration-v4b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-UL OPTIONAL, - -- The order of the RLs in IE cell-id-PerRL-List is the same as - -- in IE DL-InformationPerRL-List included in this message - cell-id-PerRL-List CellIdentity-PerRL-List OPTIONAL -} - -TransportChannelReconfiguration-v590ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-TPC-PowerOffsetPerRL-List DL-TPC-PowerOffsetPerRL-List OPTIONAL -} - -TransportChannelReconfiguration-r4-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r4 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r4 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-CommonInformation DL-CommonInformation-r4 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r4 OPTIONAL -} - -TransportChannelReconfiguration-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, and if received - -- the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList OPTIONAL, - -- 'dummy', 'dummy1' and 'dummy2' are not used in this version of the specification, - -- they should not be sent and if received they should be ignored. - dummy CHOICE { - fdd SEQUENCE { - dummy1 CPCH-SetID OPTIONAL, - dummy2 DRAC-StaticInformationList OPTIONAL - }, - tdd NULL - } OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-ChannelRequirement UL-ChannelRequirement-r5 OPTIONAL, - modeSpecificPhysChInfo CHOICE { - fdd SEQUENCE { - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy DL-PDSCH-Information OPTIONAL - }, - tdd NULL - }, - dl-HSPDSCH-Information DL-HSPDSCH-Information OPTIONAL, - dl-CommonInformation DL-CommonInformation-r5 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r5 OPTIONAL -} - -TransportChannelReconfiguration-v690ext-IEs ::= SEQUENCE { - -- User Equipment IEs - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- Physical channel IEs - -- The IE harq-Preamble-Mode should not be used in the r3 and r4 versions of the message - -- If included in the r3 or r4 version of the message, the UE should ignore the IE - harq-Preamble-Mode HARQ-Preamble-Mode OPTIONAL, - beaconPLEst BEACON-PL-Est OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - dhs-sync DHS-Sync OPTIONAL, - timingMaintainedSynchInd TimingMaintainedSynchInd OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -TransportChannelReconfiguration-r6-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r6 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r5 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r6 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r6 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r6 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r6 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r6 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -TransportChannelReconfiguration-v6b0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-InformationPerRL-List-v6b0ext DL-InformationPerRL-List-v6b0ext OPTIONAL -} - -TransportChannelReconfiguration-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r7 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r7 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r7 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r7 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r7 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r7 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -TransportChannelReconfiguration-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueMobilityStateIndicator High-MobilityDetected OPTIONAL -} - -TransportChannelReconfiguration-v780ext-IEs ::= SEQUENCE { - -- Physical channel IEs - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL -} - -TransportChannelReconfiguration-v7d0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - ul-EDCH-Information UL-EDCH-Information-ext OPTIONAL -} - -TransportChannelReconfiguration-v7f0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7f0ext OPTIONAL -} - -TransportChannelReconfiguration-v7g0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - mimoParameters MIMO-Parameters-v7g0ext OPTIONAL -} - -TransportChannelReconfiguration-r8-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r7 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r8 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -TransportChannelReconfiguration-v890ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-SecondaryCellInfoFDD-v890ext DL-SecondaryCellInfoFDD-v890ext OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext OPTIONAL -} - -TransportChannelReconfiguration-v8a0ext-IEs ::= SEQUENCE { - -- Physical channel IEs - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8-ext2 OPTIONAL -} - -TransportChannelReconfiguration-r9-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -TransportChannelReconfiguration-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -TransportChannelReconfiguration-v9c0ext-IEs ::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL -} - -TransportChannelReconfiguration-r10-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - -TransportChannelReconfiguration-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -TransportChannelReconfiguration-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - activationTime ActivationTime OPTIONAL, - delayRestrictionFlag DelayRestrictionFlag OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - -- The IE "new-DSCH-RNTI" should not be included in FDD mode, - -- and if received the UE behaviour is unspecified - new-DSCH-RNTI DSCH-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- Core network IEs - cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, - -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, - ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, - dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, - -- Physical channel IEs - frequencyInfo FrequencyInfo OPTIONAL, - multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, - controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, - sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, - mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, - -- MBMS IEs - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, - -- Measurement IEs for LCR - cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL -} - --- *************************************************** --- --- TRANSPORT CHANNEL RECONFIGURATION COMPLETE --- --- *************************************************** - -TransportChannelReconfigurationComplete ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- TABULAR: UL-TimingAdvance is applicable for TDD mode only. - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy RB-ActivationTimeInfoList OPTIONAL, - ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - transportChannelReconfigurationComplete-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - transportChannelReconfigurationComplete-v770ext - TransportChannelReconfigurationComplete-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -TransportChannelReconfigurationComplete-v770ext-IEs ::= SEQUENCE { - -- TABULAR: EXT-UL-TimingAdvance is applicable for TDD mode only. - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- TRANSPORT CHANNEL RECONFIGURATION FAILURE --- --- *************************************************** - -TransportChannelReconfigurationFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - transportChannelReconfigurationFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- ********************************************************* --- --- TRANSPORT FORMAT COMBINATION CONTROL in AM or UM RLC mode --- --- ********************************************************* - -TransportFormatCombinationControl ::= SEQUENCE { - -- rrc-TransactionIdentifier is always included in this version of the specification - rrc-TransactionIdentifier RRC-TransactionIdentifier OPTIONAL, - modeSpecificInfo CHOICE { - fdd NULL, - tdd SEQUENCE { - tfcs-ID TFCS-Identity OPTIONAL - } - }, - dpch-TFCS-InUplink TFC-Subset, - activationTimeForTFCSubset ActivationTime OPTIONAL, - tfc-ControlDuration TFC-ControlDuration OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - transportFormatCombinationControl-r3-add-ext BIT STRING OPTIONAL, - v820NonCriticalExtensions SEQUENCE { - transportformatcombinationcontrol-v820ext - TransportFormatCombinationControl-v820ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -TransportFormatCombinationControl-v820ext-IEs ::= SEQUENCE { - -- Transport Format Combination Control IEs - ul-AMR-Rate UL-AMR-Rate OPTIONAL -} - --- *************************************************** --- --- TRANSPORT FORMAT COMBINATION CONTROL FAILURE --- --- *************************************************** - -TransportFormatCombinationControlFailure ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - transportFormatCombinationControlFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- UE CAPABILITY ENQUIRY --- --- *************************************************** - -UECapabilityEnquiry ::= CHOICE { - r3 SEQUENCE { - ueCapabilityEnquiry-r3 UECapabilityEnquiry-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - ueCapabilityEnquiry-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - ueCapabilityEnquiry-v4b0ext UECapabilityEnquiry-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - ueCapabilityEnquiry-v590ext UECapabilityEnquiry-v590ext-IEs, - v770NonCriticalExtensions SEQUENCE { - ueCapabilityEnquiry-v770ext UECapabilityEnquiry-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - ueCapabilityEnquiry-v860ext UECapabilityEnquiry-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -UECapabilityEnquiry-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - capabilityUpdateRequirement CapabilityUpdateRequirement -} - -UECapabilityEnquiry-v4b0ext-IEs ::= SEQUENCE { - capabilityUpdateRequirement-r4-ext CapabilityUpdateRequirement-r4-ext -} - -UECapabilityEnquiry-v590ext-IEs ::= SEQUENCE { - systemSpecificCapUpdateReq SystemSpecificCapUpdateReq-v590ext -} - -UECapabilityEnquiry-v770ext-IEs ::= SEQUENCE { - capabilityUpdateRequirement CapabilityUpdateRequirement-v770ext OPTIONAL -} - -UECapabilityEnquiry-v860ext-IEs ::= SEQUENCE { - capabilityUpdateRequirement CapabilityUpdateRequirement-v860ext OPTIONAL -} - --- *************************************************** --- --- UE CAPABILITY INFORMATION --- --- *************************************************** - -UECapabilityInformation ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier OPTIONAL, - ue-RadioAccessCapability UE-RadioAccessCapability OPTIONAL, - -- Other IEs - ue-RATSpecificCapability InterRAT-UE-RadioAccessCapabilityList OPTIONAL, - v370NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v370ext UECapabilityInformation-v370ext, - v380NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v380ext UECapabilityInformation-v380ext-IEs, - v3a0NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v3a0ext UECapabilityInformation-v3a0ext-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - ueCapabilityInformation-r3-add-ext BIT STRING - (CONTAINING UECapabilityInformation-r3-add-ext-IEs) OPTIONAL, - -- Reserved for future non critical extension - v4b0NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v4b0ext UECapabilityInformation-v4b0ext, - v590NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v590ext UECapabilityInformation-v590ext, - v5c0NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v5c0ext - UECapabilityInformation-v5c0ext, - v690NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v690ext - UECapabilityInformation-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -UECapabilityInformation-v370ext ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext OPTIONAL -} - -UECapabilityInformation-v380ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v380ext UE-RadioAccessCapability-v380ext OPTIONAL, - dl-PhysChCapabilityFDD-v380ext DL-PhysChCapabilityFDD-v380ext -} - -UECapabilityInformation-v3a0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v3a0ext UE-RadioAccessCapability-v3a0ext OPTIONAL -} - -UECapabilityInformation-r3-add-ext-IEs ::= SEQUENCE { - ueCapabilityInformation-v650ext UECapabilityInformation-v650ext-IEs OPTIONAL, - v680NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v680ext UECapabilityInformation-v680ext-IEs, - v7e0NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v7e0ext UECapabilityInformation-v7e0ext-IEs, - v7f0NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-v7f0ext UECapabilityInformation-v7f0ext-IEs, - va40NonCriticalExtensions SEQUENCE { - ueCapabilityInformation-va40ext - UECapabilityInformation-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -UECapabilityInformation-v4b0ext ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v4b0ext UE-RadioAccessCapability-v4b0ext OPTIONAL -} - -UECapabilityInformation-v590ext ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v3g0ext UE-RadioAccessCapability-v3g0ext OPTIONAL, - ue-RadioAccessCapability-v590ext UE-RadioAccessCapability-v590ext OPTIONAL, - -- Other IEs - ue-RATSpecificCapability-v590ext InterRAT-UE-RadioAccessCapability-v590ext OPTIONAL -} - -UECapabilityInformation-v5c0ext ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v5c0ext UE-RadioAccessCapability-v5c0ext OPTIONAL -} - -UECapabilityInformation-v650ext-IEs ::= SEQUENCE { - ue-RadioAccessCapability-v650ext UE-RadioAccessCapability-v650ext -} - -UECapabilityInformation-v680ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability-v680ext UE-RadioAccessCapability-v680ext -} - -UECapabilityInformation-v690ext-IEs ::= SEQUENCE { - -- User equipment IEs - ueCapabilityContainer BIT STRING - (CONTAINING UE-CapabilityContainer-IEs) OPTIONAL -} - -UECapabilityInformation-v7e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability UE-RadioAccessCapability-v7e0ext -} - -UECapabilityInformation-v7f0ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapability UE-RadioAccessCapability-v7f0ext OPTIONAL -} - -UECapabilityInformation-va40ext-IEs ::= SEQUENCE { - -- User equipment IEs - ue-RadioAccessCapabBand UE-RadioAccessCapabBand-va40ext OPTIONAL -} - --- *************************************************** --- --- UE CAPABILITY INFORMATION CONFIRM --- --- *************************************************** - -UECapabilityInformationConfirm ::= CHOICE { - r3 SEQUENCE { - ueCapabilityInformationConfirm-r3 - UECapabilityInformationConfirm-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - ueCapabilityInformationConfirm-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - ueCapabilityInformationConfirm-v770ext UECapabilityInformationConfirm-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -UECapabilityInformationConfirm-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier -} - -UECapabilityInformationConfirm-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - acceptanceOfChangeOfCapability ENUMERATED { - refused, accepted, acceptedWithReconfigurationToFollow - } OPTIONAL -} - --- *************************************************** --- --- UPLINK DIRECT TRANSFER --- --- *************************************************** - -UplinkDirectTransfer ::= SEQUENCE { - -- Core network IEs - cn-DomainIdentity CN-DomainIdentity, - nas-Message NAS-Message, - -- Measurement IEs - measuredResultsOnRACH MeasuredResultsOnRACH OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - uplinkDirectTransfer-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - uplinkDirectTransfer-v690ext UplinkDirectTransfer-v690ext-IEs, - v7g0NonCriticalExtensions SEQUENCE { - uplinkDirectTransfer-v7g0ext UplinkDirectTransfer-v7g0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - uplinkDirectTransfer-vb50ext UplinkDirectTransfer-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -UplinkDirectTransfer-v690ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACHinterFreq MeasuredResultsOnRACHinterFreq OPTIONAL -} - -UplinkDirectTransfer-v7g0ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACH-v7g0ext MeasuredResultsOnRACH-v7g0ext OPTIONAL -} - -UplinkDirectTransfer-vb50ext-IEs ::= SEQUENCE { - -- Measurement IEs - measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL -} - --- *************************************************** --- --- UPLINK PHYSICAL CHANNEL CONTROL --- --- *************************************************** - -UplinkPhysicalChannelControl ::= CHOICE { - r3 SEQUENCE { - uplinkPhysicalChannelControl-r3 UplinkPhysicalChannelControl-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - uplinkPhysicalChannelControl-r3-add-ext BIT STRING OPTIONAL, - v4b0NonCriticalExtensions SEQUENCE { - uplinkPysicalChannelControl-v4b0ext UplinkPhysicalChannelControl-v4b0ext-IEs, - -- Extension mechanism for non-release 4 information - noncriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r4 SEQUENCE { - uplinkPhysicalChannelControl-r4 UplinkPhysicalChannelControl-r4-IEs, - v4d0NonCriticalExtensions SEQUENCE { - -- Container for adding non critical extensions after freezing REL-5 - uplinkPhysicalChannelControl-r4-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - uplinkPhysicalChannelControl-v690ext - UplinkPhysicalChannelControl-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r5 SEQUENCE { - uplinkPhysicalChannelControl-r5 UplinkPhysicalChannelControl-r5-IEs, - -- Container for adding non critical extensions after freezing REL-6 - uplinkPhysicalChannelControl-r5-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - uplinkPhysicalChannelControl-v690ext - UplinkPhysicalChannelControl-v690ext-IEs, - v6a0NonCriticalExtensions SEQUENCE{ - uplinkPhysicalChannelControl-v6a0ext - UplinkPhysicalChannelControl-v6a0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - uplinkPhysicalChannelControl-r7 UplinkPhysicalChannelControl-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - uplinkPhysicalChannelControl-r7-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } -} - -UplinkPhysicalChannelControl-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - -- Physical channel IEs - ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo OPTIONAL, - timingAdvance UL-TimingAdvanceControl OPTIONAL, - alpha Alpha OPTIONAL, - specialBurstScheduling SpecialBurstScheduling OPTIONAL, - prach-ConstantValue ConstantValueTdd OPTIONAL, - pusch-ConstantValue ConstantValueTdd OPTIONAL -} - -UplinkPhysicalChannelControl-v4b0ext-IEs ::= SEQUENCE { - -- In case of TDD, openLoopPowerControl-IPDL-TDD is included instead of IE - -- up-IPDL-Parameters in up-OTDOA-AssistanceData - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL -} - -UplinkPhysicalChannelControl-r4-IEs ::= SEQUENCE { - -- Physical channel IEs - ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo-r4 OPTIONAL, - specialBurstScheduling SpecialBurstScheduling OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - timingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - alpha Alpha OPTIONAL, - prach-ConstantValue ConstantValueTdd OPTIONAL, - pusch-ConstantValue ConstantValueTdd OPTIONAL, - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL - }, - tdd128 SEQUENCE { - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL - } - } -} - -UplinkPhysicalChannelControl-r5-IEs ::= SEQUENCE { - -- Physical channel IEs - ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo-r5 OPTIONAL, - specialBurstScheduling SpecialBurstScheduling OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - timingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - alpha Alpha OPTIONAL, - prach-ConstantValue ConstantValueTdd OPTIONAL, - pusch-ConstantValue ConstantValueTdd OPTIONAL, - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL, - hs-SICH-PowerControl HS-SICH-Power-Control-Info-TDD384 OPTIONAL - }, - tdd128 SEQUENCE { - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL - } - } -} - -UplinkPhysicalChannelControl-v690ext-IEs ::= SEQUENCE { - -- Physical Channel IEs - beaconPLEst BEACON-PL-Est OPTIONAL -} - -UplinkPhysicalChannelControl-v6a0ext-IEs ::= SEQUENCE { - -- Physical Channel IEs - desired-HS-SICH-PowerLevel INTEGER (-120..-58) OPTIONAL, - tpc-Step-Size ENUMERATED { s1, s2, s3 , spare1 } OPTIONAL -} - -UplinkPhysicalChannelControl-r7-IEs ::= SEQUENCE { - -- Physical channel IEs - ccTrCH-PowerControlInfo CCTrCH-PowerControlInfo-r7 OPTIONAL, - specialBurstScheduling SpecialBurstScheduling OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - timingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - alpha Alpha OPTIONAL, - prach-ConstantValue ConstantValueTdd OPTIONAL, - pusch-ConstantValue ConstantValueTdd OPTIONAL, - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL, - hs-SICH-PowerControl HS-SICH-Power-Control-Info-TDD384 OPTIONAL - }, - tdd768 SEQUENCE { - timingAdvance UL-TimingAdvanceControl-r7 OPTIONAL, - alpha Alpha OPTIONAL, - prach-ConstantValue ConstantValueTdd OPTIONAL, - pusch-ConstantValue ConstantValueTdd OPTIONAL, - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL, - hs-SICH-PowerControl HS-SICH-Power-Control-Info-TDD768 OPTIONAL - }, - tdd128 SEQUENCE { - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - desired-HS-SICH-PowerLevel INTEGER (-120..-58) OPTIONAL, - tpc-Step-Size ENUMERATED { s1, s2, s3 , spare1 } OPTIONAL - } - } -} - --- *************************************************** --- --- URA UPDATE --- --- *************************************************** - -URAUpdate ::= SEQUENCE { - -- User equipment IEs - u-RNTI U-RNTI, - ura-UpdateCause URA-UpdateCause, - protocolErrorIndicator ProtocolErrorIndicatorWithMoreInfo, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - uraUpdate-r3-add-ext BIT STRING - (CONTAINING URAUpdate-r3-add-ext-IEs) OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - uraUpdate-v770ext UraUpdate-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - uraUpdate-v860ext URAUpdate-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - uraUpdate-va40ext URAUpdate-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -URAUpdate-r3-add-ext-IEs ::= SEQUENCE { - uraUpdate-v7e0ext URAUpdate-v7e0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -UraUpdate-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - support-hsdschReception-CellUraPch ENUMERATED { true } OPTIONAL, - support-hsdschReception-CellFach ENUMERATED { true } OPTIONAL -} - -URAUpdate-v7e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForTwoDRXSchemesInPCH ENUMERATED { true } OPTIONAL -} - -URAUpdate-v860ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportOfHS-DSCHDRXOperation ENUMERATED { true } OPTIONAL, - supportOfCommonEDCH ENUMERATED { true } OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL -} - -URAUpdate-va40ext-IEs ::= SEQUENCE { - loggedMeasAvailable ENUMERATED { true } OPTIONAL, - loggedANRResultsAvailable ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- URA UPDATE CONFIRM --- --- *************************************************** - -URAUpdateConfirm ::= CHOICE { - r3 SEQUENCE { - uraUpdateConfirm-r3 URAUpdateConfirm-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - uraUpdateConfirm-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - uraUpdateConfirm-v690ext URAUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r5 SEQUENCE { - uraUpdateConfirm-r5 URAUpdateConfirm-r5-IEs, - v690NonCriticalExtensions SEQUENCE { - uraUpdateConfirm-v690ext URAUpdateConfirm-v690ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE { - uraUpdateConfirm-r7 URAUpdateConfirm-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - uraUpdateConfirm-r7-add-ext BIT STRING OPTIONAL, - v860NonCriticalExtensions SEQUENCE { - uraUpdateConfirm-v860ext URAUpdateConfirm-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } -} - -URAUpdateConfirm-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL -} - -URAUpdateConfirm-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfo OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL -} - -URAUpdateConfirm-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL -} - -URAUpdateConfirm-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - rrc-StateIndicator RRC-StateIndicator, - utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfo OPTIONAL, - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL -} - -URAUpdateConfirm-v860ext-IEs ::= SEQUENCE { - -- User equipment IEs - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - -- Specification mode information - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DefaultConfigForCellFACH OPTIONAL -} - --- *************************************************** --- --- URA UPDATE CONFIRM for CCCH --- --- *************************************************** - -URAUpdateConfirm-CCCH ::= CHOICE { - r3 SEQUENCE { - uraUpdateConfirm-CCCH-r3 URAUpdateConfirm-CCCH-r3-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - uraUpdateConfirm-CCCH-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - uraUpdateConfirm-v690ext URAUpdateConfirm-v690ext-IEs, - v860NonCriticalExtensions SEQUENCE { - uraUpdateConfirm-v860ext URAUpdateConfirm-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - u-RNTI U-RNTI, - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions SEQUENCE {} - } -} - -URAUpdateConfirm-CCCH-r3-IEs ::= SEQUENCE { - -- User equipment IEs - u-RNTI U-RNTI, - -- The rest of the message is identical to the one sent on DCCH. - uraUpdateConfirm URAUpdateConfirm-r3-IEs -} - --- *************************************************** --- --- UTRAN MOBILITY INFORMATION --- --- *************************************************** - -UTRANMobilityInformation ::= CHOICE { - r3 SEQUENCE { - utranMobilityInformation-r3 UTRANMobilityInformation-r3-IEs, - v3a0NonCriticalExtensions SEQUENCE { - utranMobilityInformation-v3a0ext UTRANMobilityInformation-v3a0ext-IEs, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - utranMobilityInformation-r3-add-ext BIT STRING OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - utranMobilityInformation-v690ext UtranMobilityInformation-v690ext-IEs, - v860NonCriticalExtentions SEQUENCE { - utranMobilityInformation-v860ext UTRANMobilityInformation-v860ext1-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - }, - later-than-r3 SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r5 SEQUENCE { - utranMobilityInformation-r5 UTRANMobilityInformation-r5-IEs, - v690NonCriticalExtensions SEQUENCE { - utranMobilityInformation-v690ext UtranMobilityInformation-v690ext-IEs, - v860NonCriticalExtentions SEQUENCE { - utranMobilityInformation-v860ext UTRANMobilityInformation-v860ext1-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r7 SEQUENCE{ - utranMobilityInformation-r7 UTRANMobilityInformation-r7-IEs, - -- Container for adding non critical extensions after freezing REL-8 - utranMobilityInformation-r7-add-ext BIT STRING OPTIONAL, - v860NonCriticalExtensions SEQUENCE { - utranMobilityInformation-v860ext UTRANMobilityInformation-v860ext2-IEs, - vb50NonCriticalExtentions SEQUENCE { - utranMobilityInformation-vb50ext - UTRANMobilityInformation-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE{ - utranMobilityInformation-r11 UTRANMobilityInformation-r11-IEs, - -- Container for adding non critical extensions after freezing REL-12 - utranMobilityInformation-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } - } - } -} - -UTRANMobilityInformation-r3-IEs ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - ue-ConnTimersAndConstants UE-ConnTimersAndConstants OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfoFull OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo OPTIONAL, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -UTRANMobilityInformation-v3a0ext-IEs ::= SEQUENCE { - ue-ConnTimersAndConstants-v3a0ext UE-ConnTimersAndConstants-v3a0ext -} - -UTRANMobilityInformation-r5-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo OPTIONAL, - cipheringModeInfo CipheringModeInfo OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r5 OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfoFull OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL -} - -UtranMobilityInformation-v690ext-IEs ::= SEQUENCE { - -- Core network IEs - primary-plmn-Identity PLMN-Identity OPTIONAL -} - -UTRANMobilityInformation-r7-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r5 OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfoFull OPTIONAL, - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL -} - -UTRANMobilityInformation-v860ext1-IEs ::= SEQUENCE { - -- User equipment IEs - -- UE shall take into account the following ue-ConnTimersAndConstants - -- only when ue-ConnTimersAndConstants IE is present in - -- UTRANMobilityInformation-r3-IEs or UTRANMobilityInformation-r5-IEs. - -- Otherwise, UE shall discard it. - ue-ConnTimersAndConstants UE-ConnTimersAndConstants-v860ext -} - -UTRANMobilityInformation-v860ext2-IEs ::= SEQUENCE { - -- User equipment IEs - newPrimary-E-RNTI E-RNTI OPTIONAL, - -- UE shall take into account the following ue-ConnTimersAndConstants - -- only when ue-ConnTimersAndConstants IE is present in - -- UTRANMobilityInformation-r7-IEs. Otherwise, UE shall discard it. - ue-ConnTimersAndConstants UE-ConnTimersAndConstants-v860ext, - -- UTRAN Mobility IEs - dedicatedPriorityInformation DedicatedPriorityInformation OPTIONAL -} - -UTRANMobilityInformation-vb50ext-IEs ::= SEQUENCE { - -- UTRAN Mobility IEs - dedicatedPriorityInformation DedicatedPriorityInformation-r11 OPTIONAL -} - -UTRANMobilityInformation-r11-IEs ::= SEQUENCE { - -- User equipment IEs - integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, - cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, - new-U-RNTI U-RNTI OPTIONAL, - new-C-RNTI C-RNTI OPTIONAL, - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r11 OPTIONAL, - -- CN information elements - cn-InformationInfo CN-InformationInfoFull OPTIONAL, - primary-plmn-Identity PLMN-Identity OPTIONAL, - -- UTRAN mobility IEs - ura-Identity URA-Identity OPTIONAL, - supportForChangeOfUE-Capability BOOLEAN OPTIONAL, - dedicatedPriorityInformation DedicatedPriorityInformation-r11 OPTIONAL, - -- Radio bearer IEs - dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL -} - --- *************************************************** --- --- UTRAN MOBILITY INFORMATION CONFIRM --- --- *************************************************** - -UTRANMobilityInformationConfirm ::= SEQUENCE { - -- User equipment IEs - rrc-TransactionIdentifier RRC-TransactionIdentifier, - ul-IntegProtActivationInfo IntegrityProtActivationInfo OPTIONAL, - -- Radio bearer IEs - count-C-ActivationTime ActivationTime OPTIONAL, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy RB-ActivationTimeInfoList OPTIONAL, - ul-CounterSynchronisationInfo UL-CounterSynchronisationInfo OPTIONAL, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - utranMobilityInformationConfirm-r3-add-ext BIT STRING OPTIONAL, - v770NonCriticalExtension SEQUENCE { - utranMobilityInformationConfirm-v770ext - UTRANMobilityInformationConfirm-v770ext-IEs, - va40NonCriticalExtensions SEQUENCE { - utranMobilityInformationConfirm-va40ext - UTRANMobilityInformationConfirm-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -UTRANMobilityInformationConfirm-v770ext-IEs ::= SEQUENCE { - deferredMeasurementControlReading ENUMERATED { true } OPTIONAL -} - -UTRANMobilityInformationConfirm-va40ext-IEs ::= SEQUENCE { - loggedMeasAvailable ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- UTRAN MOBILITY INFORMATION FAILURE --- --- *************************************************** - -UTRANMobilityInformationFailure ::= SEQUENCE { - -- UE information elements - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr, - laterNonCriticalExtensions SEQUENCE { - -- Container for additional R99 extensions - utranMobilityInformationFailure-r3-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - --- *************************************************** --- --- MBMS ACCESS INFORMATION --- --- *************************************************** - -MBMSAccessInformation ::= SEQUENCE { - -- Access Information IEs - mbms-ServiceAccessInfoList MBMS-ServiceAccessInfoList-r6, - -- Non critical extensions - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - --- *************************************************** --- --- MBMS COMMON PTM RB INFORMATION --- --- *************************************************** - -MBMSCommonPTMRBInformation ::= SEQUENCE { - -- Common PTM RB Information IEs - mbms-CommonRBInformationList MBMS-CommonRBInformationList-r6, - mbms-TranspChInfoForEachTrCh MBMS-TranspChInfoForEachTrCh-r6, - mbms-TranspChInfoForEachCCTrCh MBMS-TranspChInfoForEachCCTrCh-r6 OPTIONAL, - -- For FDD and TDD 3.84Mcps in a cell operating in MBSFN only mode and for TDD 7.68Mcps the - -- IE mbms-PhyChInformationList shall be ignored. - mbms-PhyChInformationList MBMS-PhyChInformationList-r6, - -- Non critical extensions - v770NonCriticalExtensions SEQUENCE { - mbmsCommonPTMRBInformation-v770ext - MBMSCommonPTMRBInformation-v770ext-IEs, - v780NonCriticalExtensions SEQUENCE { - mbmsCommonPTMRBInformation-v780ext - MBMSCommonPTMRBInformation-v780ext-IEs, - v860NonCriticalExtensions SEQUENCE { - mbmsCommonPTMRBInformation-v860ext - MBMSCommonPTMRBInformation-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MBMSCommonPTMRBInformation-v770ext-IEs ::= SEQUENCE { - -- TABULAR: CHOICE mode == "FDD or TDD" - mbms-PhyChInformationList-r7 MBMS-PhyChInformationList-r7 OPTIONAL -} - -MBMSCommonPTMRBInformation-v780ext-IEs ::= SEQUENCE { - mbsfn-TDDInformation-LCR MBSFN-TDDInformation-LCR OPTIONAL -} - -MBMSCommonPTMRBInformation-v860ext-IEs ::= SEQUENCE { - -- TABULAR: CHOICE mode == "3.84 Mcps TDD IMB" - mbms-PhyChInformationList MBMS-PhyChInformationList-IMB384 OPTIONAL -} - --- *************************************************** --- --- MBMS CURRENT CELL PTM RB INFORMATION --- --- *************************************************** - -MBMSCurrentCellPTMRBInformation ::= SEQUENCE { - -- Current Cell PTM RB Information IEs - mbms-CurrentCell-SCCPCHList MBMS-CurrentCell-SCCPCHList-r6 OPTIONAL, - mbms-SIBType5-SCCPCHList MBMS-SIBType5-SCCPCHList-r6 OPTIONAL, - -- Non critical extensions - v770NonCriticalExtensions SEQUENCE { - mbmsCurrentCellPTMRBInfo-v770ext - MBMSCurrentCellPTMRBInfo-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -MBMSCurrentCellPTMRBInfo-v770ext-IEs ::= SEQUENCE { - mbsfn-TDM-Info-List MBSFN-TDM-Info-List OPTIONAL -} - --- *************************************************** --- --- MBMS GENERAL INFORMATION --- --- *************************************************** - -MBMSGeneralInformation ::= SEQUENCE { - -- MBMS General Information IEs - mbms-PreferredFrequencyInfo MBMS-PreferredFrequencyList-r6 OPTIONAL, - mbms-TimersAndCounters MBMS-TimersAndCounters-r6, - michConfigurationInfo MBMS-MICHConfigurationInfo-r6, - cellGroupIdentity MBMS-CellGroupIdentity-r6, - mschDefaultConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL, - -- Non critical extensions - v6b0NonCriticalExtensions SEQUENCE { - mbmsGeneralInformation-v6b0ext MBMSGeneralInformation-v6b0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - mbmsGeneralInformation-v770ext MBMSGeneralInformation-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - mbmsGeneralInformation-v860ext MBMSGeneralInformation-v860ext-IEs, - v890NoncriticalExtensions SEQUENCE { - mbmsGeneralInformation-v890ext MBMSGeneralInformation-v890ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MBMSGeneralInformation-v6b0ext-IEs ::= SEQUENCE { - indicateChangeInSelectedServices BOOLEAN -} - -MBMSGeneralInformation-v770ext-IEs ::= SEQUENCE { - mbmsMICHConfiguration MBMS-MICHConfigurationInfo-v770ext OPTIONAL, - mbsfnInterFrequencyNeighbourList - MBSFN-InterFrequencyNeighbourList-r7 OPTIONAL -} - -MBMSGeneralInformation-v860ext-IEs ::= SEQUENCE { - mbsfnInterFrequencyNeighbourList - MBSFN-InterFrequencyNeighbourList-v860ext OPTIONAL -} - -MBMSGeneralInformation-v890ext-IEs ::= SEQUENCE { - mbmsNetworkStandardTimeInformation-LCR - MBMS-NetworkStandardTimeInformation-LCR-v890ext OPTIONAL, - mbmsMICHConfiguration MBMS-MICHConfigurationInfo-v890ext OPTIONAL -} - --- *************************************************** --- --- MBMS MODIFICATION REQUEST --- --- *************************************************** - -MBMSModificationRequest ::= SEQUENCE { - -- MBMS Modification Request IEs - mbms-PreferredFreqRequest MBMS-ServiceIdentity-r6 OPTIONAL, - rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, - -- Non critical extensions - v6b0NonCriticalExtensions SEQUENCE { - mbmsModificationRequest-v6b0ext MBMSModificationRequest-v6b0ext-IEs, - v6f0NonCriticalExtensions SEQUENCE { - mbmsModificationRequest-v6f0ext MBMSModificationRequest-v6f0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MBMSModificationRequest-v6b0ext-IEs ::= SEQUENCE { - mbmsSelectedServiceInfo MBMS-SelectedServiceInfo -} - -MBMSModificationRequest-v6f0ext-IEs ::= SEQUENCE { - mbmsSupportOfServiceChangeForAPtpRB ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- MBMS MODIFIED SERVICES INFORMATION --- --- *************************************************** - -MBMSModifiedServicesInformation ::= SEQUENCE { - -- MBMS Modified Services Information IEs - modifedServiceList MBMS-ModifedServiceList-r6 OPTIONAL, - mbms-ReacquireMCCH ENUMERATED { true } OPTIONAL, - mbms-DynamicPersistenceLevel DynamicPersistenceLevel OPTIONAL, - endOfModifiedMCCHInformation INTEGER (1..16) OPTIONAL, - mbmsNumberOfNeighbourCells MBMS-NumberOfNeighbourCells-r6, - mbms-AllUnmodifiedPTMServices ENUMERATED { true } OPTIONAL, - mbms-PTMActivationTime MBMS-PTMActivationTime-r6 OPTIONAL, - -- Non critical extensions - v770NonCriticalExtensions SEQUENCE { - mbmsModifiedServicesInformation-v770ext - MBMSModifiedServicesInformation-v770ext-IEs, - v7c0NonCriticalExtensions SEQUENCE { - mbmsModifiedServicesInformation-v7c0ext - MBMSModifiedServicesInformation-v7c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MBMSModifiedServicesInformation-v770ext-IEs ::= SEQUENCE { - modifiedServiceList MBMS-ModifiedServiceList-v770ext OPTIONAL, - mib-ValueTag MIB-ValueTag OPTIONAL -} - -MBMSModifiedServicesInformation-v7c0ext-IEs ::= SEQUENCE { - modifiedServiceList MBMS-ModifiedServiceList-LCR-v7c0ext OPTIONAL -} - --- *************************************************** --- --- MBMS NEIGHBOURING CELL PTM RB INFORMATION --- --- *************************************************** - -MBMSNeighbouringCellPTMRBInformation ::= SEQUENCE { - -- MBMS Neighbouring Cell PTM RB Information IEs - neighbouringCellIdentity IntraFreqCellID, - neighbouringCellSCCPCHList MBMS-NeighbouringCellSCCPCHList-r6, - -- Non critical extensions - v770NonCriticalExtensions SEQUENCE { - mbmsNeighbouringCellPTMRBInformation-v770ext - MBMSNeighbouringCellPTMRBInformation-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -MBMSNeighbouringCellPTMRBInformation-v770ext-IEs ::= SEQUENCE { - -- The "choice_PhyCH" in the tabular is realized by using the following IE due to the - -- constraint in the ASN.1 implementation. - neighbouringCellSCCPCHList MBMS-NeighbouringCellSCCPCHList-v770ext OPTIONAL -} - - --- *************************************************** --- --- MBMS SCHEDULING INFORMATION --- --- *************************************************** - -MBMSSchedulingInformation ::= SEQUENCE { - -- MBMS Scheduling Information IEs - serviceSchedulingInfoList MBMS-ServiceSchedulingInfoList-r6, - -- Non critical extensions - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - --- *************************************************** --- --- MBMS UNMODIFIED SERVICES INFORMATION --- --- *************************************************** - -MBMSUnmodifiedServicesInformation ::= SEQUENCE { - -- MBMS Unmodified Services Information IEs - unmodifiedServiceList MBMS-UnmodifiedServiceList-r6 OPTIONAL, - -- Non critical extensions - v770NonCriticalExtensions SEQUENCE { - mbmsUnmodifiedServicesInformation-v770ext - MBMSUnmodifiedServicesInformation-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -MBMSUnmodifiedServicesInformation-v770ext-IEs ::= SEQUENCE { - unmodifiedServiceList MBMS-UnmodifiedServiceList-v770ext OPTIONAL -} - --- *************************************************** --- --- System Information Container --- --- *************************************************** - -System-Information-Container ::= SEQUENCE { - mib OCTET STRING (CONTAINING MasterInformationBlock), - sysInfoTypeSB1 OCTET STRING (CONTAINING SysInfoTypeSB1) OPTIONAL, - sysInfoTypeSB2 OCTET STRING (CONTAINING SysInfoTypeSB2) OPTIONAL, - sysInfoType1 OCTET STRING (CONTAINING SysInfoType1), - sysInfoType3 OCTET STRING (CONTAINING SysInfoType3), - sysInfoType5 OCTET STRING (CONTAINING SysInfoType5), - sysInfoType7 OCTET STRING (CONTAINING SysInfoType7), - sysInfoType11 OCTET STRING (CONTAINING SysInfoType11) OPTIONAL, - sysInfoType11bis OCTET STRING (CONTAINING SysInfoType11bis) OPTIONAL, - sysInfoType12 OCTET STRING (CONTAINING SysInfoType12) OPTIONAL, - vb50NonCriticalExtensions SEQUENCE { - system-Information-Container-vb50ext System-Information-Container-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -System-Information-Container-vb50ext-IEs ::= SEQUENCE { - sysInfoType22 OCTET STRING (CONTAINING SysInfoType22) OPTIONAL -} - --- *************************************************** --- --- LOGGING MEASUREMENT CONFIGURATION --- --- *************************************************** - -LoggingMeasurementConfiguration ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r10 SEQUENCE { - loggingMeasurementConfiguration-r10-IEs LoggingMeasurementConfiguration-r10-IEs, - -- Container for additional R10 extensions - loggingMeasurementConfiguration-r10-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - loggingMeasurementConfiguration-r11-IEs LoggingMeasurementConfiguration-r11-IEs, - loggingMeasurementConfiguration-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -LoggingMeasurementConfiguration-r10-IEs ::= SEQUENCE { - loggedMeasurementsConfigurationInfo LoggedMeasurementsConfigurationInfo OPTIONAL, - loggedANRConfigurationInfo LoggedANRConfigurationInfo OPTIONAL -} - -LoggingMeasurementConfiguration-r11-IEs ::= SEQUENCE { - loggedMeasurementsConfigurationInfo LoggedMeasurementsConfigurationInfo-r11 OPTIONAL, - loggedANRConfigurationInfo LoggedANRConfigurationInfo OPTIONAL -} - --- *************************************************** --- --- UE INFORMATION RESPONSE --- --- *************************************************** - -UEInformationResponse ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - loggedMeasReport LoggedMeasReport OPTIONAL, - loggedANRReportInfoList LoggedANRReportInfoList OPTIONAL, - vb50NonCriticalExtensions SEQUENCE { - ueInformationResponse-vb50ext UEInformationResponse-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -UEInformationResponse-vb50ext-IEs ::= SEQUENCE { - loggedMeasReport LoggedMeasReport-vb50ext OPTIONAL, - connectionEstablishmentFailureReport - ConnectionEstablishmentFailureReport OPTIONAL, - loggedANRReportInfoList LoggedANRReportInfoList-vb50ext OPTIONAL -} - --- *************************************************** --- --- UE INFORMATION REQUEST --- --- *************************************************** - -UEInformationRequest ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - r10 SEQUENCE { - ueInformationRequest-r10 UEInformationRequest-r10-IEs, - -- Container for additional R10 extensions - ueInformationRequest-r10-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions CHOICE { - r11 SEQUENCE { - ueInformationRequest-r11 UEInformationRequest-r11-IEs, - -- Container for additional R11 extensions - ueInformationRequest-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} - } - } -} - -UEInformationRequest-r10-IEs ::= SEQUENCE { - loggedMeasReportRequest ENUMERATED { true } OPTIONAL, - loggedANRReportRequest ENUMERATED { true } OPTIONAL -} - -UEInformationRequest-r11-IEs ::= SEQUENCE { - loggedMeasReportRequest ENUMERATED { true } OPTIONAL, - loggedANRReportRequest ENUMERATED { true } OPTIONAL, - connectionEstablishmentFailureRequest ENUMERATED { true } OPTIONAL -} - --- *************************************************** --- --- CORE NETWORK INFORMATION ELEMENTS (10.3.1) --- --- *************************************************** - -Ansi-41-IDNNS ::= BIT STRING (SIZE (14)) - -CN-DomainIdentity ::= ENUMERATED { - cs-domain, - ps-domain } - -CN-DomainInformation ::= SEQUENCE { - cn-DomainIdentity CN-DomainIdentity, - cn-DomainSpecificNAS-Info NAS-SystemInformationGSM-MAP -} - -CN-DomainInformationFull ::= SEQUENCE { - cn-DomainIdentity CN-DomainIdentity, - cn-DomainSpecificNAS-Info NAS-SystemInformationGSM-MAP, - cn-DRX-CycleLengthCoeff CN-DRX-CycleLengthCoefficient -} - -CN-DomainInformationList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF - CN-DomainInformation - -CN-DomainInformationListFull ::= SEQUENCE (SIZE (1..maxCNdomains)) OF - CN-DomainInformationFull - -CN-DomainSysInfo ::= SEQUENCE { - cn-DomainIdentity CN-DomainIdentity, - cn-Type CHOICE { - gsm-MAP NAS-SystemInformationGSM-MAP, - ansi-41 NAS-SystemInformationANSI-41 - }, - cn-DRX-CycleLengthCoeff CN-DRX-CycleLengthCoefficient -} - -CN-DomainSysInfoList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF - CN-DomainSysInfo - -CN-InformationInfo ::= SEQUENCE { - plmn-Identity PLMN-Identity OPTIONAL, - cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP OPTIONAL, - cn-DomainInformationList CN-DomainInformationList OPTIONAL -} - -CN-InformationInfo-r6 ::= SEQUENCE { - plmn-Identity PLMN-Identity OPTIONAL, - cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP OPTIONAL, - cn-DomainInformationList CN-DomainInformationList OPTIONAL, - primary-plmn-Identity PLMN-Identity OPTIONAL -} - -CN-InformationInfoFull ::= SEQUENCE { - plmn-Identity PLMN-Identity OPTIONAL, - cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP OPTIONAL, - cn-DomainInformationListFull CN-DomainInformationListFull OPTIONAL -} - -Digit ::= INTEGER (0..9) - -DomainSpecificEAB-Parameters ::= SEQUENCE { - cs-DomainSpecificEAB-Parameters EAB-Configuration OPTIONAL, - ps-DomainSpecificEAB-Parameters EAB-Configuration OPTIONAL, - commonEAB-Parameters EAB-Configuration OPTIONAL -} - -EAB-AccessClassBarredList ::= SEQUENCE (SIZE (10)) OF - AccessClassBarred - -EAB-Configuration ::= SEQUENCE { - eab-Category ENUMERATED {a,b,c}, - eab-AccessClassBarredList EAB-AccessClassBarredList -} - -EAB-Parameters ::= CHOICE { - eab-ParametersPerPLMN-List EAB-ParametersPerPLMN-List, - eab-ParametersForAll DomainSpecificEAB-Parameters -} - -EAB-ParametersPerPLMN ::= SEQUENCE { - domainSpecificEAB-Parameters DomainSpecificEAB-Parameters OPTIONAL -} - -EAB-ParametersPerPLMN-List ::= SEQUENCE (SIZE (1..6)) OF EAB-ParametersPerPLMN - -Ec-N0forANR ::= SEQUENCE { - ec-N0 INTEGER (-24..0) OPTIONAL -} - -Gsm-map-IDNNS ::= SEQUENCE { - routingbasis CHOICE { - localPTMSI SEQUENCE { - routingparameter RoutingParameter - }, - tMSIofsamePLMN SEQUENCE { - routingparameter RoutingParameter - }, - tMSIofdifferentPLMN SEQUENCE { - routingparameter RoutingParameter - }, - iMSIresponsetopaging SEQUENCE { - routingparameter RoutingParameter - }, - iMSIcauseUEinitiatedEvent SEQUENCE { - routingparameter RoutingParameter - }, - iMEI SEQUENCE { - routingparameter RoutingParameter - }, - spare2 SEQUENCE { - routingparameter RoutingParameter - }, - spare1 SEQUENCE { - routingparameter RoutingParameter - } - }, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy BOOLEAN -} - -IMEI ::= SEQUENCE (SIZE (15)) OF - IMEI-Digit - -IMEI-Digit ::= INTEGER (0..15) - -IMSI-GSM-MAP ::= SEQUENCE (SIZE (6..21)) OF - Digit - -IntraDomainNasNodeSelector ::= SEQUENCE { - version CHOICE { - release99 SEQUENCE { - cn-Type CHOICE { - gsm-Map-IDNNS Gsm-map-IDNNS, - ansi-41-IDNNS Ansi-41-IDNNS - } - }, - later SEQUENCE { - futurecoding BIT STRING (SIZE (15)) - } - } -} - -LAI ::= SEQUENCE { - plmn-Identity PLMN-Identity, - lac BIT STRING (SIZE (16)) -} - -LocationRegistrationAccessClassBarredList ::= SEQUENCE (SIZE (15)) OF - AccessClassBarred - -LocationRegistrationParameters ::= CHOICE { - noRestriction NULL, - restriction LocationRegistrationAccessClassBarredList -} - -MCC ::= SEQUENCE (SIZE (3)) OF - Digit - -MNC ::= SEQUENCE (SIZE (2..3)) OF - Digit - -MultiplePLMN-List-r6 ::= SEQUENCE { - mibPLMN-Identity BOOLEAN, - multiplePLMNs SEQUENCE (SIZE (1..5)) OF - PLMN-IdentityWithOptionalMCC-r6 -} - -NAS-Message ::= OCTET STRING (SIZE (1..4095)) - -NAS-Synchronisation-Indicator ::= BIT STRING(SIZE(4)) - -NAS-SystemInformationGSM-MAP ::= OCTET STRING (SIZE (1..8)) - -P-TMSI-GSM-MAP ::= BIT STRING (SIZE (32)) - -PagingPermissionWithAccessControlForSharedNetwork ::= CHOICE { - pagingPermissionWithAccessControlList PagingPermissionWithAccessControlList, - pagingPermissionWithAccessControlForAll PagingPermissionWithAccessControlParameters -} - -PagingPermissionWithAccessControlList ::= SEQUENCE { - pagingPermissionWithAccessControlParametersForOperator1 - PagingPermissionWithAccessControlParameters OPTIONAL, - pagingPermissionWithAccessControlParametersForOperator2 - PagingPermissionWithAccessControlParameters OPTIONAL, - pagingPermissionWithAccessControlParametersForOperator3 - PagingPermissionWithAccessControlParameters OPTIONAL, - pagingPermissionWithAccessControlParametersForOperator4 - PagingPermissionWithAccessControlParameters OPTIONAL, - pagingPermissionWithAccessControlParametersForOperator5 - PagingPermissionWithAccessControlParameters OPTIONAL -} - -PagingPermissionWithAccessControlParameters ::= SEQUENCE { - pagingResponseRestrictionIndicator ENUMERATED {all, cS, pS, none}, - locationRegistrationRestrictionIndicator ENUMERATED {all, cS, pS}, - locationRegistration LocationRegistrationParameters -} - -PagingRecordTypeID ::= ENUMERATED { - imsi-GSM-MAP, - tmsi-GSM-MAP-P-TMSI, - imsi-DS-41, - tmsi-DS-41 } - -PLMN-Identity ::= SEQUENCE { - mcc MCC, - mnc MNC -} - -PLMN-IdentityWithOptionalMCC-r6 ::= SEQUENCE { - mcc MCC OPTIONAL, - mnc MNC -} - -PLMN-Type ::= CHOICE { - gsm-MAP SEQUENCE { - plmn-Identity PLMN-Identity - }, - ansi-41 SEQUENCE { - p-REV P-REV, - min-P-REV Min-P-REV, - sid SID, - nid NID - }, - gsm-MAP-and-ANSI-41 SEQUENCE { - plmn-Identity PLMN-Identity, - p-REV P-REV, - min-P-REV Min-P-REV, - sid SID, - nid NID - }, - spare NULL -} - -RAB-Identity ::= CHOICE { - gsm-MAP-RAB-Identity BIT STRING (SIZE (8)), - ansi-41-RAB-Identity BIT STRING (SIZE (8)) -} - -RAI ::= SEQUENCE { - lai LAI, - rac RoutingAreaCode -} - -RoutingAreaCode ::= BIT STRING (SIZE (8)) - -RoutingParameter ::= BIT STRING (SIZE (10)) - -TMSI-GSM-MAP ::= BIT STRING (SIZE (32)) - --- *************************************************** --- --- UTRAN MOBILITY INFORMATION ELEMENTS (10.3.2) --- --- *************************************************** - -AccessClassBarred ::= ENUMERATED { - barred, notBarred } - -AccessClassBarredList ::= SEQUENCE (SIZE (maxAC)) OF - AccessClassBarred - -AllowedIndicator ::= ENUMERATED { - allowed, notAllowed } - -CellAccessRestriction ::= SEQUENCE { - cellBarred CellBarred, - cellReservedForOperatorUse ReservedIndicator, - cellReservationExtension ReservedIndicator, - -- NOTE: IE accessClassBarredList should not be included if the IE CellAccessRestriction - -- is included in the IE SysInfoType4 - accessClassBarredList AccessClassBarredList OPTIONAL -} - -CellAccessRestriction-v870ext ::= SEQUENCE { - cellReservedForCSG ENUMERATED { true } OPTIONAL -} - -CellBarred ::= CHOICE { - barred SEQUENCE { - intraFreqCellReselectionInd AllowedIndicator, - t-Barred T-Barred - }, - notBarred NULL -} - -CellIdentity ::= BIT STRING (SIZE (28)) - -CellIdentity-PerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF CellIdentity - -CellIDListItem ::= SEQUENCE { - cell-Identity CellIdentity, - plmn-Identity PLMN-Identity OPTIONAL -} - -CellSelectReselectInfoSIB-3-4 ::= SEQUENCE { - mappingInfo MappingInfo OPTIONAL, - cellSelectQualityMeasure CHOICE { - cpich-Ec-N0 SEQUENCE { - -- Default value for q-HYST-2-S is q-HYST-1-S - q-HYST-2-S Q-Hyst-S OPTIONAL - }, - cpich-RSCP NULL - }, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - s-Intrasearch S-SearchQual OPTIONAL, - s-Intersearch S-SearchQual OPTIONAL, - s-SearchHCS S-SearchRXLEV OPTIONAL, - rat-List RAT-FDD-InfoList OPTIONAL, - q-QualMin Q-QualMin, - q-RxlevMin Q-RxlevMin - }, - tdd SEQUENCE { - s-Intrasearch S-SearchRXLEV OPTIONAL, - s-Intersearch S-SearchRXLEV OPTIONAL, - s-SearchHCS S-SearchRXLEV OPTIONAL, - rat-List RAT-TDD-InfoList OPTIONAL, - q-RxlevMin Q-RxlevMin - } - }, - q-Hyst-l-S Q-Hyst-S, - t-Reselection-S T-Reselection-S, - hcs-ServingCellInformation HCS-ServingCellInformation OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power -} - -CSG-DedicatedFrequencyInfoList ::= SEQUENCE (SIZE (1..maxDedicatedCSGFreq)) OF - FrequencyInfo - -CSG-Identity ::= BIT STRING (SIZE (27)) - -CSG-PSCSplitInfo ::= SEQUENCE { - -- Actual value = IE value * 8 - startPSC INTEGER (0..63), - numberOfPSCs ENUMERATED { psc5, psc10, psc15, psc20, - psc30, psc40, psc50, psc64, psc80, - psc120, psc160, psc256, alltheRest, - spare3, spare2, spare1 }, - -- Actual value = IE value * 8 - pscRange2Offset INTEGER (1..63) OPTIONAL -} - -DomainSpecificAccessRestrictionForSharedNetwork-v670ext ::= CHOICE { - domainSpecificAccessRestictionList DomainSpecificAccessRestrictionList-v670ext, - domainSpecificAccessRestictionParametersForAll - DomainSpecificAccessRestrictionParam-v670ext -} - -DomainSpecificAccessRestrictionList-v670ext ::= SEQUENCE { - domainSpecificAccessRestrictionParametersForOperator1 - DomainSpecificAccessRestrictionParam-v670ext OPTIONAL, - domainSpecificAccessRestrictionParametersForOperator2 - DomainSpecificAccessRestrictionParam-v670ext OPTIONAL, - domainSpecificAccessRestrictionParametersForOperator3 - DomainSpecificAccessRestrictionParam-v670ext OPTIONAL, - domainSpecificAccessRestrictionParametersForOperator4 - DomainSpecificAccessRestrictionParam-v670ext OPTIONAL, - domainSpecificAccessRestrictionParametersForOperator5 - DomainSpecificAccessRestrictionParam-v670ext OPTIONAL -} - -DomainSpecificAccessRestrictionParam-v670ext ::= SEQUENCE { - cSDomainSpecificAccessRestriction DomainSpecificAccessRestriction-v670ext, - pSDomainSpecificAccessRestriction DomainSpecificAccessRestriction-v670ext -} - -DomainSpecificAccessRestriction-v670ext ::= CHOICE { - noRestriction NULL, - restriction SEQUENCE { - domainSpecficAccessClassBarredList AccessClassBarredList OPTIONAL - } -} - -MapParameter ::= INTEGER (0..127) - -Mapping ::= SEQUENCE { - rat RAT, - mappingFunctionParameterList MappingFunctionParameterList -} - -Mapping-LCR-r4 ::= SEQUENCE { - mappingFunctionParameterList MappingFunctionParameterList -} - -MappingFunctionParameter ::= SEQUENCE { - functionType MappingFunctionType, - mapParameter1 MapParameter OPTIONAL, - mapParameter2 MapParameter, - -- The presence of upperLimit is conditional on the number of repetition - upperLimit UpperLimit OPTIONAL -} - -MappingFunctionParameterList ::= SEQUENCE (SIZE (1..maxMeasIntervals)) OF - MappingFunctionParameter - -MappingFunctionType ::= ENUMERATED { - linear, - functionType2, - functionType3, - functionType4 } - --- In MappingInfo list, mapping for FDD and 3.84Mcps TDD is defined. --- For 1.28Mcps TDD, Mapping-LCR-r4 is used instead. -MappingInfo ::= SEQUENCE (SIZE (1..maxRAT)) OF - Mapping - -OccurrenceSequenceNumberOfPICH ::= INTEGER (1..maxSCCPCH) - -DedicatedPriorityInformation ::= SEQUENCE { - action CHOICE { - clearDedicatedPriorities NULL, - configureDedicatedPriorities SEQUENCE { - t-322 T-322 OPTIONAL, - priorityLevelList PriorityLevelList OPTIONAL, - eutraDetection BOOLEAN - } - } -} - -DedicatedPriorityInformation-r11 ::= SEQUENCE { - action CHOICE { - clearDedicatedPriorities NULL, - configureDedicatedPriorities SEQUENCE { - t-322 T-322 OPTIONAL, - priorityLevelList PriorityLevelList-r11 OPTIONAL, - eutraDetection BOOLEAN - } - } -} - -PriorityLevel ::= SEQUENCE { - priority INTEGER (0..maxPrio-1) OPTIONAL, - radioAccessTechnology CHOICE { - utraFDD SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF SEQUENCE{ - uarfcn UARFCN - }, - utraTDD SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF SEQUENCE{ - uarfcn UARFCN - }, - eutra SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF SEQUENCE{ - earfcn EARFCN - }, - gsm SEQUENCE { - gsm-CellGroup GSM-CellGroup - } - } -} - -PriorityLevel-r11 ::= SEQUENCE { - priority INTEGER (0..maxPrio-1) OPTIONAL, - radioAccessTechnology CHOICE { - utraFDD SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF SEQUENCE{ - uarfcn UARFCN - }, - utraTDD SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF SEQUENCE{ - uarfcn UARFCN - }, - eutra SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EARFCNRange, - gsm SEQUENCE { - gsm-CellGroup GSM-CellGroup - } - } -} - -PriorityLevelList ::= SEQUENCE (SIZE (1..maxPrio)) OF - PriorityLevel - -PriorityLevelList-r11 ::= SEQUENCE (SIZE (1..maxPrio)) OF - PriorityLevel-r11 - --- Actual value Q-Hyst-S = IE value * 2 -Q-Hyst-S ::= INTEGER (0..20) - -Q-Hyst-S-Fine ::= INTEGER (0..40) - -RAT ::= ENUMERATED { - utra-FDD, - utra-TDD, - gsm, - cdma2000 } - -RAT-FDD-Info ::= SEQUENCE { - rat-Identifier RAT-Identifier, - s-SearchRAT S-SearchQual, - s-HCS-RAT S-SearchRXLEV OPTIONAL, - s-Limit-SearchRAT S-SearchQual -} - -RAT-FDD-InfoList ::= SEQUENCE (SIZE (1..maxOtherRAT)) OF - RAT-FDD-Info - -RAT-Identifier ::= ENUMERATED { - gsm, cdma2000 } - -RAT-TDD-Info ::= SEQUENCE { - rat-Identifier RAT-Identifier, - s-SearchRAT S-SearchRXLEV, - s-HCS-RAT S-SearchRXLEV OPTIONAL, - s-Limit-SearchRAT S-SearchRXLEV -} - -RAT-TDD-InfoList ::= SEQUENCE (SIZE (1..maxOtherRAT)) OF - RAT-TDD-Info - -ReservedIndicator ::= ENUMERATED { - reserved, - notReserved } - --- Actual value S-SearchQual = IE value * 2 -S-SearchQual ::= INTEGER (-16..10) - --- Actual value S-SearchRXLEV = (IE value * 2) + 1 -S-SearchRXLEV ::= INTEGER (-53..45) - --- Actual value ScalingFactor = IE value * 0.1 -SpeedDependentScalingFactor ::= INTEGER (0..10) - -T-Barred ::= ENUMERATED { - s10, s20, s40, s80, - s160, s320, s640, s1280 } - -T-Reselection-S ::= INTEGER (0..31) - --- Actual value T-Reselection-S-Fine = IE value * 0.2 -T-Reselection-S-Fine ::= INTEGER (0..31) - --- Actual value ScalingFactor = IE value * 0.25 -TreselectionScalingFactor ::= INTEGER (4..19) - --- Actual value ScalingFactor2 = IE value * 0.25 -TreselectionScalingFactor2 ::= INTEGER (1..16) - --- For UpperLimit, the used range depends on the RAT used. -UpperLimit ::= INTEGER (1..91) - -URA-Identity ::= BIT STRING (SIZE (16)) - -URA-IdentityList ::= SEQUENCE (SIZE (1..maxURA)) OF - URA-Identity - --- *************************************************** --- --- USER EQUIPMENT INFORMATION ELEMENTS (10.3.3) --- --- *************************************************** - -AccessStratumReleaseIndicator ::= ENUMERATED { - rel-4, rel-5, rel-6, rel-7, rel-8, - rel-9, rel-10, rel-11, spare8, - spare7, spare6, spare5, spare4, spare3, - spare2, spare1 } - --- TABULAR : for ActivationTime, value 'now' always appear as default, and is encoded --- by absence of the field -ActivationTime ::= INTEGER (0..255) - -BackoffControlParams ::= SEQUENCE { - n-AP-RetransMax N-AP-RetransMax, - n-AccessFails N-AccessFails, - nf-BO-NoAICH NF-BO-NoAICH, - ns-BO-Busy NS-BO-Busy, - nf-BO-AllBusy NF-BO-AllBusy, - nf-BO-Mismatch NF-BO-Mismatch, - t-CPCH T-CPCH -} - -BandComb ::= INTEGER (1..256) - -C-RNTI ::= BIT STRING (SIZE (16)) - -CapabilityUpdateRequirement ::= SEQUENCE { - ue-RadioCapabilityFDDUpdateRequirement BOOLEAN, - -- ue-RadioCapabilityTDDUpdateRequirement is for 3.84Mcps TDD update requirement - ue-RadioCapabilityTDDUpdateRequirement BOOLEAN, - systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList OPTIONAL -} - -CapabilityUpdateRequirement-r4-ext ::= SEQUENCE { - ue-RadioCapabilityUpdateRequirement-TDD128 BOOLEAN -} - -CapabilityUpdateRequirement-r4 ::= SEQUENCE { - ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN, - systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList OPTIONAL -} - -CapabilityUpdateRequirement-r5 ::= SEQUENCE { - ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN, - systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r5 OPTIONAL -} - -CapabilityUpdateRequirement-v770ext ::= SEQUENCE { - ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN -} - -CapabilityUpdateRequirement-r7 ::= SEQUENCE { - ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN, - systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r5 OPTIONAL -} - -CapabilityUpdateRequirement-v860ext ::= SEQUENCE { - -- If both IEs are present, the elements in the IE SystemSpecificCapUpdateReqList-r8 - -- shall be appended to the elements in the IE SystemSpecificCapUpdateReqList - systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL -} - -CapabilityUpdateRequirement-r8 ::= SEQUENCE { - ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN, - ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN, - systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL -} - --- If the IE CellUpdateCause has the value 'cellUpdateCause-ext', the actual value is --- defined in the IE CellUpdateCause-ext. -CellUpdateCause ::= ENUMERATED { - cellReselection, - periodicalCellUpdate, - uplinkDataTransmission, - utran-pagingResponse, - re-enteredServiceArea, - radiolinkFailure, - rlc-unrecoverableError, - cellUpdateCause-ext } - --- The IE CellUpdateCause-ext shall be present, if the IE CellUpdateCause has the --- value 'cellUpdateCause-ext'. --- dummy is not used in this version of the specification, it should not be sent --- and if received it should be ignored by the receiver. -CellUpdateCause-ext ::= ENUMERATED { - mbms-Reception, - mbms-PTP-RB-Request, - dummy, - spare1 } - - -ChipRateCapability ::= ENUMERATED { - mcps3-84, mcps1-28 } - -CipheringAlgorithm ::= ENUMERATED { - uea0, uea1 } - -CipheringAlgorithm-r7 ::= ENUMERATED { - uea0, uea1, uea2 } - -CipheringModeCommand ::= CHOICE { - startRestart CipheringAlgorithm, - dummy NULL -} - -CipheringModeCommand-r7 ::= SEQUENCE { - startRestart CipheringAlgorithm-r7 -} - -CipheringModeInfo ::= SEQUENCE { - -- TABULAR: The ciphering algorithm is included in the CipheringModeCommand. - cipheringModeCommand CipheringModeCommand, - activationTimeForDPCH ActivationTime OPTIONAL, - rb-DL-CiphActivationTimeInfo RB-ActivationTimeInfoList OPTIONAL -} - -CipheringModeInfo-r7 ::= SEQUENCE { - -- TABULAR: The ciphering algorithm is included in the CipheringModeCommand. - cipheringModeCommand CipheringModeCommand-r7, - activationTimeForDPCH ActivationTime OPTIONAL, - rb-DL-CiphActivationTimeInfo RB-ActivationTimeInfoList OPTIONAL -} - -CN-DRX-CycleLengthCoefficient ::= INTEGER (6..9) - -CN-PagedUE-Identity ::= CHOICE { - imsi-GSM-MAP IMSI-GSM-MAP, - tmsi-GSM-MAP TMSI-GSM-MAP, - p-TMSI-GSM-MAP P-TMSI-GSM-MAP, - imsi-DS-41 IMSI-DS-41, - tmsi-DS-41 TMSI-DS-41, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -CompressedModeMeasCapability ::= SEQUENCE { - fdd-Measurements BOOLEAN, - -- TABULAR: The IEs tdd-Measurements, gsm-Measurements and multiCarrierMeasurements - -- are made optional since they are conditional based on another information element. - -- Their absence corresponds to the case where the condition is not true. - -- The IE 'tdd-Measurements' applies to either or both TDD 3.84 Mcps and TDD 7.68 Mcps, - -- depending on the RF capability conditions. - tdd-Measurements BOOLEAN OPTIONAL, - gsm-Measurements GSM-Measurements OPTIONAL, - multiCarrierMeasurements BOOLEAN OPTIONAL -} - -CompressedModeMeasCapability-LCR-r4 ::= SEQUENCE { - tdd128-Measurements BOOLEAN OPTIONAL -} - -CompressedModeMeasCapability-v860ext ::= SEQUENCE { - adjacentFrequencyMeasurements ENUMERATED { true } OPTIONAL -} - -CompressedModeMeasCapability-v920ext ::= SEQUENCE { - interBandMeasurements ENUMERATED { true } OPTIONAL -} - -CompressedModeMeasCapability-va40ext ::= SEQUENCE { - enhancedInterFrequencyMeasurements ENUMERATED { true } OPTIONAL, - freqSpecificCompressedMode ENUMERATED { true } OPTIONAL -} - -CompressedModeMeasCapabEUTRA ::= SEQUENCE { - radioFrequencyBandEUTRA RadioFrequencyBandEUTRA, - compressedMode BOOLEAN -} - -CompressedModeMeasCapabEUTRAExt ::=SEQUENCE { - radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt -} - -CompressedModeMeasCapabEUTRAList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF - CompressedModeMeasCapabEUTRA - -CompressedModeMeasCapabEUTRAList2 ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF - CompressedModeMeasCapabEUTRAExt - -CompressedModeMeasCapabFDDList ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - CompressedModeMeasCapabFDD - -CompressedModeMeasCapabFDDList2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - CompressedModeMeasCapabFDD2 - -CompressedModeMeasCapabFDDList3 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF - CompressedModeMeasCapabFDD3 - -CompressedModeMeasCapabFDDList-ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - CompressedModeMeasCapabFDD-ext - -CompressedModeMeasCapabFDD ::= SEQUENCE { - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - dl-MeasurementsFDD BOOLEAN, - ul-MeasurementsFDD BOOLEAN -} - -CompressedModeMeasCapabFDD2 ::= SEQUENCE { - -- UE may omit both IEs if this IE indicates the compressed mode capability within the same - -- frequency band. Otherwise, the UE shall include either one of the following OPTIONAL IEs. - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, - dl-MeasurementsFDD BOOLEAN, - ul-MeasurementsFDD BOOLEAN -} - -CompressedModeMeasCapabFDD3 ::= SEQUENCE { - -- UE may omit radioFrequencyBandFDD3 if this IE indicates the compressed mode capability within - -- the same frequency band. Otherwise, the UE shall include the IE. - radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL, - dl-MeasurementsFDD BOOLEAN, - ul-MeasurementsFDD BOOLEAN -} - -CompressedModeMeasCapabFDD-ext ::= SEQUENCE { - radioFrequencyBandFDD2 RadioFrequencyBandFDD2, - dl-MeasurementsFDD BOOLEAN, - ul-MeasurementsFDD BOOLEAN -} - -CompressedModeMeasCapabTDDList ::= SEQUENCE (SIZE (1..maxFreqBandsTDD)) OF - CompressedModeMeasCapabTDD - -CompressedModeMeasCapabTDD ::= SEQUENCE { - radioFrequencyBandTDD RadioFrequencyBandTDD, - dl-MeasurementsTDD BOOLEAN, - ul-MeasurementsTDD BOOLEAN -} - -CompressedModeMeasCapabGSMList ::= SEQUENCE (SIZE (1..maxFreqBandsGSM)) OF - CompressedModeMeasCapabGSM - -CompressedModeMeasCapabGSM ::= SEQUENCE { - radioFrequencyBandGSM RadioFrequencyBandGSM, - dl-MeasurementsGSM BOOLEAN, - ul-MeasurementsGSM BOOLEAN -} - -CompressedModeMeasCapabMC ::= SEQUENCE { - dl-MeasurementsMC BOOLEAN, - ul-MeasurementsMC BOOLEAN -} - -CPCH-Parameters ::= SEQUENCE { - initialPriorityDelayList InitialPriorityDelayList OPTIONAL, - backoffControlParams BackoffControlParams, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm, - dl-DPCCH-BER DL-DPCCH-BER -} - -CSG-ProximityIndicationCapability ::= SEQUENCE { - supportOfIntraFreqProximityIndication ENUMERATED { true } OPTIONAL, - supportOfInterFreqProximityIndication ENUMERATED { true } OPTIONAL, - supportOfE-UtraProximityIndication ENUMERATED { true } OPTIONAL -} - -DL-CapabilityWithSimultaneousHS-DSCHConfig ::= ENUMERATED{kbps32, kbps64, kbps128, kbps384} - -DL-DPCCH-BER ::= INTEGER (0..63) - -DL-InformationPerSecondaryRL-List ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF - DL-InformationPerSecondaryRL - -DL-InformationPerSecondaryRL ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-id CellIdentity OPTIONAL, - dl-FDPCHInfoPerRL-SecULFreq DL-FDPCH-InfoPerRL-r7, - e-AGCH-Information E-AGCH-Information OPTIONAL, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -DL-PhysChCapabilityFDD ::= SEQUENCE { - -- The IE "maxNoDPCH-PDSCH-Codes" only gives information on the maximum number of DPCH Codes. - maxNoDPCH-PDSCH-Codes INTEGER (1..8), - maxNoPhysChBitsReceived MaxNoPhysChBitsReceived, - supportForSF-512 BOOLEAN, - -- dummy and dummy2 are not used in this version of the specification - -- and if received they should be ignored. - dummy BOOLEAN, - dummy2 SimultaneousSCCPCH-DPCH-Reception -} - -DL-PhysChCapabilityFDD-v380ext ::= SEQUENCE { - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SupportOfDedicatedPilotsForChEstimation OPTIONAL -} - -SupportOfDedicatedPilotsForChEstimation ::= ENUMERATED { true } - -DL-PhysChCapabilityFDD-v770ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - hsscchlessHsdschOperation ENUMERATED { true } OPTIONAL, - enhancedFdpch ENUMERATED { true } OPTIONAL, - hsdschReception-CellFach ENUMERATED { true } OPTIONAL, - hsdschReception-CellUraPch ENUMERATED { true } OPTIONAL -} - -DL-PhysChCapabilityFDD-v860ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext2 HSDSCH-physical-layer-category-ext2 OPTIONAL, - supportOfTargetCellPreConfig ENUMERATED { true } OPTIONAL, - supportOfHsdschDrxOperation ENUMERATED { true } OPTIONAL -} - -DL-PhysChCapabilityFDD-v920ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext3 HSDSCH-physical-layer-category-ext3 OPTIONAL, - supportOfMimoOnlySingleStream ENUMERATED { true } OPTIONAL -} - -DL-PhysChCapabilityFDD-va40ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext4 HSDSCH-physical-layer-category-ext4 OPTIONAL, - hsdsch-physical-layer-category-ext5 HSDSCH-physical-layer-category-ext5 OPTIONAL -} - -DL-PhysChCapabilityFDD-vb50ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext6 HSDSCH-physical-layer-category-ext6 OPTIONAL, - hsdsch-physical-layer-category-ext7 HSDSCH-physical-layer-category-ext7 OPTIONAL, - hsdsch-physical-layer-category-ext8 HSDSCH-physical-layer-category-ext8 OPTIONAL, - supportOf4x4MimoDualStreamRestriction ENUMERATED { true } OPTIONAL, - supportOfHS-DSCHSecondDRXOperation ENUMERATED { true } OPTIONAL, - supportOfNodeBTrigHS-DPCCHTransmission ENUMERATED { true } OPTIONAL -} - -DL-PhysChCapabilityTDD ::= SEQUENCE { - maxTS-PerFrame MaxTS-PerFrame, - maxPhysChPerFrame MaxPhysChPerFrame, - minimumSF MinimumSF-DL, - supportOfPDSCH BOOLEAN, - maxPhysChPerTS MaxPhysChPerTS -} - -DL-PhysChCapabilityTDD-LCR-r4 ::= SEQUENCE { - maxTS-PerSubFrame MaxTS-PerSubFrame-r4, - maxPhysChPerFrame MaxPhysChPerSubFrame-r4, - minimumSF MinimumSF-DL, - supportOfPDSCH BOOLEAN, - maxPhysChPerTS MaxPhysChPerTS, - supportOf8PSK BOOLEAN -} - -DL-PhysChCapabilityTDD-128-v770ext ::= SEQUENCE { - multiCarrier-physical-layer-category MultiCarrier-HSDSCH-physical-layer-category OPTIONAL -} - -DL-PhysChCapabilityTDD-128-v860ext ::= SEQUENCE { - hSDSCH-physical-layer-category-extension - HSDSCH-physical-layer-category-extension OPTIONAL, - multiCarrier-physical-layer-category-extension - MultiCarrier-HSDSCH-physical-layer-category-extension OPTIONAL, - supportOfSFModeForHSPDSCHDualStream ENUMERATED { sf1, sf1sf16 } OPTIONAL -} - -DL-PhysChCapabilityInfoTDD-128-va40ext::= SEQUENCE { - multiCarrier-physical-layer-category-extension2 - MultiCarrier-HSDSCH-physical-layer-category-extension2 OPTIONAL -} - -DL-PhysChCapabilityTDD-768 ::= SEQUENCE { - maxTS-PerFrame MaxTS-PerFrame, - maxPhysChPerFrame MaxPhysChPerFrame-768, - minimumSF MinimumSF-DL-768, - supportOfPDSCH BOOLEAN, - tdd768-hspdsch CHOICE { - supported HSDSCH-physical-layer-category, - unsupported NULL - }, - maxPhysChPerTS MaxPhysChPerTS-768 -} - -DL-PhysChCapabilityInfoTDD-768 ::= SEQUENCE { - maxTS-PerFrame MaxTS-PerFrame, - maxPhysChPerFrame MaxPhysChPerFrame-768, - minimumSF MinimumSF-DL-768, - supportOfPDSCH BOOLEAN, - maxPhysChPerTS MaxPhysChPerTS-768 -} - -DL-TransChCapability ::= SEQUENCE { - maxNoBitsReceived MaxNoBits, - maxConvCodeBitsReceived MaxNoBits, - turboDecodingSupport TurboSupport, - maxSimultaneousTransChs MaxSimultaneousTransChsDL, - maxSimultaneousCCTrCH-Count MaxSimultaneousCCTrCH-Count, - maxReceivedTransportBlocks MaxTransportBlocksDL, - maxNumberOfTFC MaxNumberOfTFC-DL, - maxNumberOfTF MaxNumberOfTF -} - -DRAC-SysInfo ::= SEQUENCE { - transmissionProbability TransmissionProbability, - maximumBitRate MaximumBitRate -} - -DRAC-SysInfoList ::= SEQUENCE (SIZE (1..maxDRACclasses)) OF - DRAC-SysInfo - -DSCH-RNTI ::= BIT STRING (SIZE (16)) - -DelayRestrictionFlag ::= ENUMERATED { true } - -E-RNTI ::= BIT STRING (SIZE (16)) - -ESN-DS-41 ::= BIT STRING (SIZE (32)) - -EstablishmentCause ::= ENUMERATED { - originatingConversationalCall, - originatingStreamingCall, - originatingInteractiveCall, - originatingBackgroundCall, - originatingSubscribedTrafficCall, - terminatingConversationalCall, - terminatingStreamingCall, - terminatingInteractiveCall, - terminatingBackgroundCall, - emergencyCall, - interRAT-CellReselection, - interRAT-CellChangeOrder, - registration, - detach, - originatingHighPrioritySignalling, - originatingLowPrioritySignalling, - callRe-establishment, - terminatingHighPrioritySignalling, - terminatingLowPrioritySignalling, - terminatingCauseUnknown, - mbms-Reception, - mbms-PTP-RB-Request, - delayTolerantAccess, - spare9, - spare8, - spare7, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1 } - -ExtendedWaitTime ::= INTEGER (1..1800) - -FailureCauseWithProtErr ::= CHOICE { - configurationUnsupported NULL, - physicalChannelFailure NULL, - incompatibleSimultaneousReconfiguration - NULL, - compressedModeRuntimeError TGPSI, - protocolError ProtocolErrorInformation, - cellUpdateOccurred NULL, - invalidConfiguration NULL, - configurationIncomplete NULL, - unsupportedMeasurement NULL, - mbmsSessionAlreadyReceivedCorrectly NULL, - lowerPriorityMBMSService NULL, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -FailureCauseWithProtErrTrId ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - failureCause FailureCauseWithProtErr -} - -FrequencyBandsIndicatorSupport ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - frequencyBandsSupportFDD FrequencyBandsRedirectionFDD - }, - tdd SEQUENCE { - frequencyBandsSupportTDD128 FrequencyBandsIndicatorTDD128 - } - } -} - -FrequencyBandsIndicatorTDD128 ::= SEQUENCE (SIZE (1..maxFreqBandsIndicatorSupport)) OF - FrequencyBandsIndicatorSupportTDD128 - -FrequencyBandsIndicatorSupportTDD128 ::= SEQUENCE { - frequencyBandsIndicatorTDD RadioFrequencyBandTDD-r10 -} - -FrequencyBandsRedirectionFDD ::= SEQUENCE (SIZE (1..maxFreqBandsIndicatorSupport)) OF - FrequencyBandsIndicatorFDD - -FrequencyBandsIndicatorFDD ::= CHOICE { - frequencyBandsIndicator1 RadioFrequencyBandFDD, - frequencyBandsIndicator2 RadioFrequencyBandFDD2, - frequencyBandsIndicator3 RadioFrequencyBandFDD3 -} - -GANSS-Mode ::= ENUMERATED { - networkBased, - uEBased, - both, - none } - -GroupIdentityWithReleaseInformation ::= SEQUENCE { - rrc-ConnectionReleaseInformation RRC-ConnectionReleaseInformation, - groupReleaseInformation GroupReleaseInformation - } - -GroupReleaseInformation ::= SEQUENCE { - uRNTI-Group U-RNTI-Group -} - -GSM-Measurements ::= SEQUENCE { - gsm900 BOOLEAN, - dcs1800 BOOLEAN, - gsm1900 BOOLEAN -} - -H-RNTI ::= BIT STRING (SIZE (16)) - -High-MobilityDetected ::= ENUMERATED { high-MobilityDetected } - -HSDSCH-physical-layer-category ::= INTEGER (1..64) - -HSDSCH-physical-layer-category-ext ::= INTEGER (1..20) - -HSDSCH-physical-layer-category-ext2 ::= INTEGER (21..24) - -HSDSCH-physical-layer-category-ext3 ::= INTEGER (25..28) - -HSDSCH-physical-layer-category-ext4 ::= INTEGER (29..30) - -HSDSCH-physical-layer-category-ext5 ::= INTEGER (31..32) - -HSDSCH-physical-layer-category-ext6 ::= INTEGER (33..34) - -HSDSCH-physical-layer-category-ext7 ::= INTEGER (35..36) - -HSDSCH-physical-layer-category-ext8 ::= INTEGER (37..38) - -HSDSCH-physical-layer-category-extension ::= INTEGER (1..64) - -MultiCarrier-HSDSCH-physical-layer-category ::= INTEGER (1..64) - -MultiCarrier-HSDSCH-physical-layer-category-extension ::= INTEGER (1..36) - -MultiCarrier-HSDSCH-physical-layer-category-extension2 ::= INTEGER (37..64) - -MultiflowCapabBandCombination ::= SEQUENCE { - numberOfCellsBandA INTEGER(2..6), - numberOfFrequenciesBandA INTEGER(1..3), - numberOfCellsBandB INTEGER(2..6), - numberOfFrequenciesBandB INTEGER(1..3) -} - -MultiflowCapabBandCombList ::= SEQUENCE (SIZE (1..16)) OF MultiflowCapabBandCombination - -MultiflowCapability ::= SEQUENCE { - mimoInDifferentBands MultiflowMIMOCapability OPTIONAL, - longerHARQProcessing ENUMERATED { true } OPTIONAL -} - -MultiflowPerBandCapability ::= SEQUENCE { - numberOfCells INTEGER(2..8), - numberOfFrequencies INTEGER(1..4), - mimo MultiflowMIMOCapability OPTIONAL, - nonContiguousCapability MultiflowNonContiguousCapability OPTIONAL -} - -MultiflowMIMOCapability ::= ENUMERATED { single-stream, dual-stream } - -MultiflowNonContiguousCapability ::= SEQUENCE { - gapSize ENUMERATED { fiveMHz, tenMHz, anyGapSize, - spare5, spare4, spare3, spare2, spare1 } -} - -UESpecificBehaviourInformation1idle ::= BIT STRING (SIZE (4)) - -UESpecificBehaviourInformation1interRAT ::= BIT STRING (SIZE (8)) - -IdleIntervalMeasCapabEUTRA ::= SEQUENCE { - radioFrequencyBandEUTRA RadioFrequencyBandEUTRA, - idleInterval BOOLEAN -} - -IdleIntervalMeasCapabEUTRAExtension ::= SEQUENCE { - radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt -} - -IdleIntervalMeasCapabEUTRAList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF - IdleIntervalMeasCapabEUTRA - -IdleIntervalMeasCapabEUTRAExtensionList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF - IdleIntervalMeasCapabEUTRAExtension - -IMSI-and-ESN-DS-41 ::= SEQUENCE { - imsi-DS-41 IMSI-DS-41, - esn-DS-41 ESN-DS-41 -} - -IMSI-DS-41 ::= OCTET STRING (SIZE (5..7)) - -InitialPriorityDelayList ::= SEQUENCE (SIZE (1..maxASC)) OF - NS-IP - -InitialUE-Identity ::= CHOICE { - imsi IMSI-GSM-MAP, - tmsi-and-LAI TMSI-and-LAI-GSM-MAP, - p-TMSI-and-RAI P-TMSI-and-RAI-GSM-MAP, - imei IMEI, - esn-DS-41 ESN-DS-41, - imsi-DS-41 IMSI-DS-41, - imsi-and-ESN-DS-41 IMSI-and-ESN-DS-41, - tmsi-DS-41 TMSI-DS-41 -} - -IntegrityCheckInfo ::= SEQUENCE { - messageAuthenticationCode MessageAuthenticationCode, - rrc-MessageSequenceNumber RRC-MessageSequenceNumber -} - -IntegrityProtActivationInfo ::= SEQUENCE { - rrc-MessageSequenceNumberList RRC-MessageSequenceNumberList -} - -IntegrityProtectionAlgorithm ::= ENUMERATED { - uia1 } - -IntegrityProtectionAlgorithm-r7 ::= ENUMERATED { - uia1, uia2 } - -IntegrityProtectionModeCommand ::= CHOICE { - startIntegrityProtection SEQUENCE { - integrityProtInitNumber IntegrityProtInitNumber - }, - modify SEQUENCE { - dl-IntegrityProtActivationInfo IntegrityProtActivationInfo - } -} - -IntegrityProtectionModeInfo ::= SEQUENCE { - -- TABULAR: DL integrity protection activation info and Integrity - -- protection intialisation number have been nested inside - -- IntegrityProtectionModeCommand. - integrityProtectionModeCommand IntegrityProtectionModeCommand, - integrityProtectionAlgorithm IntegrityProtectionAlgorithm OPTIONAL -} - -IntegrityProtectionModeInfo-r7 ::= SEQUENCE { - -- TABULAR: DL integrity protection activation info and Integrity - -- protection intialisation number have been nested inside - -- IntegrityProtectionModeCommand. - integrityProtectionModeCommand IntegrityProtectionModeCommand, - integrityProtectionAlgorithm IntegrityProtectionAlgorithm-r7 OPTIONAL -} - -IntegrityProtInitNumber ::= BIT STRING (SIZE (32)) - --- dummy is not used in this version of the specification, it should --- not be sent and if received it should be ignored. -MaxHcContextSpace ::= ENUMERATED { - dummy, by1024, by2048, by4096, - by8192 } - -MaxHcContextSpace-r5-ext ::= ENUMERATED { - by16384, by32768, by65536, by131072 } - - -MaxROHC-ContextSessions-r4 ::= ENUMERATED { - s2, s4, s8, s12, s16, s24, s32, s48, - s64, s128, s256, s512, s1024, s16384 } - -MaximumAM-EntityNumberRLC-Cap ::= ENUMERATED { - dummy, am4, am5, am6, - am8, am16, am30 } - --- Actual value MaximumBitRate = IE value * 16 -MaximumBitRate ::= INTEGER (0..32) - -MaximumRLC-WindowSize ::= ENUMERATED { mws2047, mws4095 } - -MaxNoDPDCH-BitsTransmitted ::= ENUMERATED { - b600, b1200, b2400, b4800, - b9600, b19200, b28800, b38400, - b48000, b57600 } - -MaxNoBits ::= ENUMERATED { - b640, b1280, b2560, b3840, b5120, - b6400, b7680, b8960, b10240, - b20480, b40960, b81920, b163840 } - -MaxNoPhysChBitsReceived ::= ENUMERATED { - dummy, b1200, b2400, b3600, - b4800, b7200, b9600, b14400, - b19200, b28800, b38400, b48000, - b57600, b67200, b76800 } - -MaxNoSCCPCH-RL ::= ENUMERATED { - rl1 } - -MaxNumberOfTF ::= ENUMERATED { - tf32, tf64, tf128, tf256, - tf512, tf1024 } - -MaxNumberOfTFC-DL ::= ENUMERATED { - tfc16, tfc32, tfc48, tfc64, tfc96, - tfc128, tfc256, tfc512, tfc1024 } - -MaxNumberOfTFC-UL ::= ENUMERATED { - dummy1, dummy2, tfc16, tfc32, tfc48, tfc64, - tfc96, tfc128, tfc256, tfc512, tfc1024 } - --- the values 1 to 4 for MaxPhysChPerFrame are not used in this version of the protocol -MaxPhysChPerFrame ::= INTEGER (1..224) - -MaxPhysChPerFrame-768 ::= INTEGER (1..448) - -MaxPhysChPerSubFrame-r4 ::= INTEGER (1..96) - -MaxPhysChPerTimeslot ::= ENUMERATED { - ts1, ts2 } - -MaxPhysChPerTimeslot-LCR-r7 ::= INTEGER (1..4) - --- the values 1 to 4 for MaxPhysChPerTS are not used in this version of the protocol -MaxPhysChPerTS ::= INTEGER (1..16) - -MaxPhysChPerTS-768 ::= INTEGER (1..32) - -MaxSimultaneousCCTrCH-Count ::= INTEGER (1..8) - -MaxSimultaneousTransChsDL ::= ENUMERATED { - e4, e8, e16, e32 } - -MaxSimultaneousTransChsUL ::= ENUMERATED { - dummy, e4, e8, e16, e32 } - -MaxTransportBlocksDL ::= ENUMERATED { - tb4, tb8, tb16, tb32, tb48, - tb64, tb96, tb128, tb256, tb512 } - -MaxTransportBlocksUL ::= ENUMERATED { - dummy, tb4, tb8, tb16, tb32, tb48, - tb64, tb96, tb128, tb256, tb512 } - -MaxTS-PerFrame ::= INTEGER (1..14) - -MaxTS-PerSubFrame-r4 ::= INTEGER (1..6) - --- TABULAR: MeasurementCapability contains dependencies to UE-MultiModeRAT-Capability, --- the conditional fields have been left mandatory for now. -MeasurementCapability ::= SEQUENCE { - downlinkCompressedMode CompressedModeMeasCapability, - uplinkCompressedMode CompressedModeMeasCapability -} - -MeasurementCapabilityExt ::= SEQUENCE{ - compressedModeMeasCapabFDDList CompressedModeMeasCapabFDDList, - compressedModeMeasCapabTDDList CompressedModeMeasCapabTDDList OPTIONAL, - compressedModeMeasCapabGSMList CompressedModeMeasCapabGSMList OPTIONAL, - compressedModeMeasCapabMC CompressedModeMeasCapabMC OPTIONAL -} - -MeasurementCapabilityExt2 ::= SEQUENCE{ - compressedModeMeasCapabFDDList CompressedModeMeasCapabFDDList2, - compressedModeMeasCapabTDDList CompressedModeMeasCapabTDDList OPTIONAL, - compressedModeMeasCapabGSMList CompressedModeMeasCapabGSMList OPTIONAL, - compressedModeMeasCapabMC CompressedModeMeasCapabMC OPTIONAL -} - -MeasurementCapabilityExt3 ::= SEQUENCE { - compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList OPTIONAL -} - -MeasurementCapabilityExt4 ::= SEQUENCE{ - compressedModeMeasCapabFDDList2 CompressedModeMeasCapabFDDList2 OPTIONAL, - compressedModeMeasCapabFDDList3 CompressedModeMeasCapabFDDList3 OPTIONAL, - compressedModeMeasCapabTDDList CompressedModeMeasCapabTDDList OPTIONAL, - compressedModeMeasCapabGSMList CompressedModeMeasCapabGSMList OPTIONAL, - compressedModeMeasCapabMC CompressedModeMeasCapabMC OPTIONAL, - compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList OPTIONAL -} - -MeasurementCapabilityExt5 ::= SEQUENCE { - compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList2 OPTIONAL -} - -MeasurementCapability-r4-ext ::= SEQUENCE { - downlinkCompressedMode-LCR CompressedModeMeasCapability-LCR-r4, - uplinkCompressedMode-LCR CompressedModeMeasCapability-LCR-r4 -} - -MeasurementCapability-v860ext ::= SEQUENCE { - downlinkCompressedMode CompressedModeMeasCapability-v860ext -} - -MeasurementCapability-v920ext ::= SEQUENCE { - downlinkCompressedMode CompressedModeMeasCapability-v920ext -} - -MeasurementCapability-va40ext ::= SEQUENCE { - interFrequencyDetectedSetMeasurements ENUMERATED { true } OPTIONAL, - downlinkCompressedMode CompressedModeMeasCapability-va40ext -} - -MeasurementCapability-vb50ext ::= SEQUENCE { - interFrequencyMeasOnConfigCarriersWithoutCompMode ENUMERATED { true } OPTIONAL, - cellsExcludedFromDetectedSetMeasurements ENUMERATED { true } OPTIONAL -} - -MeasurementCapabilityTDD ::= SEQUENCE { - idleIntervalMeasCapabEUTRAList IdleIntervalMeasCapabEUTRAList OPTIONAL -} - -MeasurementCapabilityTDD-vb50ext ::= SEQUENCE { - idleIntervalMeasCapabEUTRAList IdleIntervalMeasCapabEUTRAExtensionList OPTIONAL -} - -MessageAuthenticationCode ::= BIT STRING (SIZE (32)) - -MinimumSF-DL ::= ENUMERATED { - sf1, sf16 } - -MinimumSF-DL-768 ::= ENUMERATED { - sf1, sf32 } - -MinimumSF-UL ::= ENUMERATED { - sf1, sf2, sf4, sf8, dummy } - -NonContiguousMultiCellCombinationList ::= SEQUENCE (SIZE (1..maxNonContiguousMultiCellCombinations)) OF - NonContiguousMultiCell - -NonContiguousMultiCell ::= SEQUENCE { - aggregatedCells ENUMERATED { nc-2c, nc-3c, nc-4c }, - gapSize ENUMERATED { fiveMHz, tenMHz, anyGapSize, - spare5, spare4, spare3, spare2, spare1 }, - nonContiguousMultiCellCombination22 ENUMERATED { true } OPTIONAL, - nonContiguousMultiCellCombination31-13 ENUMERATED { true } OPTIONAL -} - -MultiModeCapability ::= ENUMERATED { - tdd, fdd, fdd-tdd } - -MultiRAT-Capability ::= SEQUENCE { - supportOfGSM BOOLEAN, - supportOfMulticarrier BOOLEAN -} - -MultiModeRAT-Capability-v590ext ::= SEQUENCE { - supportOfUTRAN-ToGERAN-NACC BOOLEAN -} - -MultiModeRAT-Capability-v680ext ::= SEQUENCE { - supportOfHandoverToGAN ENUMERATED { doesSupportHandoverToGAN } OPTIONAL -} - -MultiModeRAT-Capability-v770ext ::= SEQUENCE { - supportOfPSHandoverToGAN ENUMERATED { doesSupportPSHandoverToGAN } OPTIONAL -} - -MultiModeRAT-Capability-v860ext ::= SEQUENCE { - supportOfEUTRAFDD ENUMERATED { doesSupportEUTRAFDD } OPTIONAL, - supportOfInterRATHOToEUTRAFDD ENUMERATED { doesSupportInterRATHOToEUTRAFDD } OPTIONAL, - supportOfEUTRATDD ENUMERATED { doesSupportEUTRATDD } OPTIONAL, - supportOfInterRATHOToEUTRATDD ENUMERATED { doesSupportInterRATHOToEUTRATDD } OPTIONAL, - eutraFeatureGroupIndicators BIT STRING (SIZE (4)) OPTIONAL -} - -MultiModeRAT-Capability-vb50ext ::= SEQUENCE { - supportOfEUTRAFDDMeasurementReportingInCELLFACH ENUMERATED { doesSupportOfEUTRAFDDMeasurementReportingInCELLFACH } OPTIONAL, - supportOfEUTRATDDMeasurementReportingInCELLFACH ENUMERATED { doesSupportOfEUTRATDDMeasurementReportingInCELLFACH } OPTIONAL -} - -N-300 ::= INTEGER (0..7) - -N-301 ::= INTEGER (0..7) - -N-302 ::= INTEGER (0..7) - -N-304 ::= INTEGER (0..7) - -N-308 ::= INTEGER (1..8) - -N-310 ::= INTEGER (0..7) - -N-312 ::= ENUMERATED { - s1, s50, s100, s200, s400, - s600, s800, s1000 } - -N-312ext ::= ENUMERATED { - s2, s4, s10, s20 } - -N-312-r5 ::= ENUMERATED { - s1, s2, s4, s10, s20, - s50, s100, s200, s400, - s600, s800, s1000 } - -N-313 ::= ENUMERATED { - s1, s2, s4, s10, s20, - s50, s100, s200 } - -N-315 ::= ENUMERATED { - s1, s50, s100, s200, s400, - s600, s800, s1000 } - -N-315ext ::= ENUMERATED { - s2, s4, s10, s20 } - -N-315-r5 ::= ENUMERATED { - s1, s2, s4, s10, s20, - s50, s100, s200, s400, - s600, s800, s1000 } - - -N-AccessFails ::= INTEGER (1..64) - -N-AP-RetransMax ::= INTEGER (1..64) - -NeighCellSI-AcquisitionCapability ::= SEQUENCE { - supportOfIntraFreqSIAcquisitionForHO ENUMERATED { true } OPTIONAL, - supportOfInterFreqSIAcquisitionForHO ENUMERATED { true } OPTIONAL, - supportOfE-UtraSIAcquisitionForHO ENUMERATED { true } OPTIONAL -} - -NetworkAssistedGANSS-Supported-List ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE { - gANSS-Id ENUMERATED { - sbas, modernizedGPS, qzss, glonass, spare4, - spare3, spare2, spare1 } OPTIONAL, - gANSS-Mode GANSS-Mode, - gANSS-SignalId GANSS-Signal-Id OPTIONAL, - supportForUE-GANSS-TimingOfCellFrames BOOLEAN, - supportForUE-GANSS-CarrierPhaseMeasurement BOOLEAN OPTIONAL -} - --- Each element in the NetworkAssistedGANSS-Supported-List-v860ext provides extension information --- to the corresponding element (position) in the NetworkAssistedGANSS-Supported-List -NetworkAssistedGANSS-Supported-List-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE { - sbas-Ids BIT STRING (SIZE (8)) OPTIONAL, - gANSS-SignalIds BIT STRING (SIZE (8)) OPTIONAL, - non-native-AD-choices-supported ENUMERATED { true } OPTIONAL -} - -NetworkAssistedGPS-Supported ::= ENUMERATED { - networkBased, - ue-Based, - bothNetworkAndUE-Based, - noNetworkAssistedGPS } - -NF-BO-AllBusy ::= INTEGER (0..31) - -NF-BO-NoAICH ::= INTEGER (0..31) - -NF-BO-Mismatch ::= INTEGER (0..127) - -NS-BO-Busy ::= INTEGER (0..63) - -NS-IP ::= INTEGER (0..28) - -P-TMSI-and-RAI-GSM-MAP ::= SEQUENCE { - p-TMSI P-TMSI-GSM-MAP, - rai RAI -} - -PagingCause ::= ENUMERATED { - terminatingConversationalCall, - terminatingStreamingCall, - terminatingInteractiveCall, - terminatingBackgroundCall, - terminatingHighPrioritySignalling, - terminatingLowPrioritySignalling, - terminatingCauseUnknown, - spare - } - -PagingRecord ::= CHOICE { - cn-Identity SEQUENCE { - pagingCause PagingCause, - cn-DomainIdentity CN-DomainIdentity, - cn-pagedUE-Identity CN-PagedUE-Identity - }, - utran-Identity SEQUENCE { - u-RNTI U-RNTI, - cn-OriginatedPage-connectedMode-UE SEQUENCE { - pagingCause PagingCause, - cn-DomainIdentity CN-DomainIdentity, - pagingRecordTypeID PagingRecordTypeID - } OPTIONAL - } -} - -PagingRecord2-r5 ::= CHOICE { - utran-SingleUE-Identity SEQUENCE { - u-RNTI U-RNTI, - cn-OriginatedPage-connectedMode-UE SEQUENCE { - pagingCause PagingCause, - cn-DomainIdentity CN-DomainIdentity, - pagingRecordTypeID PagingRecordTypeID - } OPTIONAL, - rrc-ConnectionReleaseInformation RRC-ConnectionReleaseInformation - }, - utran-GroupIdentity SEQUENCE ( SIZE (1 .. maxURNTI-Group) ) OF - GroupIdentityWithReleaseInformation -} - -PagingRecordList ::= SEQUENCE (SIZE (1..maxPage1)) OF - PagingRecord - -PagingRecord2List-r5 ::= SEQUENCE (SIZE (1..maxPage1)) OF - PagingRecord2-r5 - -PDCP-Capability ::= SEQUENCE { - losslessSRNS-RelocationSupport BOOLEAN, - -- If present, the "maxHcContextSpace" in the IE "PDCP-Capability-r5-ext" overrides the - -- "supported" value in this IE. The value in this IE may be used by a pre-REL-5 UTRAN. - supportForRfc2507 CHOICE { - notSupported NULL, - supported MaxHcContextSpace - } -} - -PDCP-Capability-r4-ext ::= SEQUENCE { - supportForRfc3095 CHOICE { - notSupported NULL, - supported SEQUENCE { - maxROHC-ContextSessions MaxROHC-ContextSessions-r4 DEFAULT s16, - reverseCompressionDepth INTEGER (0..65535) DEFAULT 0 - } - } -} - -PDCP-Capability-r5-ext ::= SEQUENCE { - supportForRfc3095ContextRelocation BOOLEAN, - maxHcContextSpace MaxHcContextSpace-r5-ext OPTIONAL -} - -PDCP-Capability-r5-ext2 ::= SEQUENCE { - losslessDLRLC-PDUSizeChange ENUMERATED { true } OPTIONAL -} - -PDCP-Capability-v770ext ::= SEQUENCE { - supportForCSVoiceoverHSPA ENUMERATED { true } OPTIONAL -} - -PhysicalChannelCapability ::= SEQUENCE { - fddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityFDD, - uplinkPhysChCapability UL-PhysChCapabilityFDD - } OPTIONAL, - -- tddPhysChCapability describes the 3.84Mcps TDD physical channel capability - tddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityTDD, - uplinkPhysChCapability UL-PhysChCapabilityTDD - } OPTIONAL -} - -PhysicalChannelCapability-v770ext ::= SEQUENCE { - fddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityFDD-v770ext, - uplinkPhysChCapability UL-PhysChCapabilityFDD-v770ext - } OPTIONAL, - tddPhysChCapability-384 SEQUENCE { - -- No TDD384 DL physical channel capability extension - uplinkPhysChCapability UL-PhysChCapabilityTDD-384-v770ext - } OPTIONAL, - tddPhysChCapability-768 SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityTDD-768, - uplinkPhysChCapability UL-PhysChCapabilityTDD-768 - } OPTIONAL, - tddPhysChCapability-128 SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityTDD-128-v770ext, - uplinkPhysChCapability UL-PhysChCapabilityTDD-128-v770ext - } OPTIONAL -} - -PhysicalChannelCapability-v860ext ::= SEQUENCE { - fddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityFDD-v860ext - } OPTIONAL, - tddPhysChCapability-128 SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityTDD-128-v860ext - } OPTIONAL -} - -PhysicalChannelCapability-v920ext ::= SEQUENCE { - fddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityFDD-v920ext, - uplinkPhysChCapability UL-PhysChCapabilityFDD-v920ext - } OPTIONAL -} - -PhysicalChannelCapability-va40ext ::= SEQUENCE { - fddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityFDD-va40ext - } OPTIONAL, - tddPhysChCapability-128 SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-128-va40ext, - uplinkPhysChCapability UL-PhysChCapabilityInfoTDD-128-va40ext - } OPTIONAL -} - -PhysicalChannelCapability-vb50ext ::= SEQUENCE { - fddPhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityFDD-vb50ext, - uplinkPhysChCapability UL-PhysChCapabilityFDD-vb50ext - } OPTIONAL -} - -PhysicalChannelCapabilityInfo-v770ext ::= SEQUENCE { - tddPhysChCapability-768 SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-768, - uplinkPhysChCapability UL-PhysChCapabilityTDD - } OPTIONAL, - tddPhysChCapability-128 SEQUENCE { - uplinkPhysChCapability UL-PhysChCapabilityInfoTDD-128-v770ext - } OPTIONAL -} - --- PhysicalChannelCapability-LCR-r4 describes the 1.28Mcps TDD physical channel capability -PhysicalChannelCapability-LCR-r4 ::= SEQUENCE { - tdd128-PhysChCapability SEQUENCE { - downlinkPhysChCapability DL-PhysChCapabilityTDD-LCR-r4, - uplinkPhysChCapability UL-PhysChCapabilityTDD-LCR-r4 - } OPTIONAL -} - --- PhysicalChannelCapability-hspdsch-r5 describes the HS-PDSCH physical channel capability -PhysicalChannelCapability-hspdsch-r5 ::= SEQUENCE { - fdd-hspdsch CHOICE { - supported SEQUENCE { - -- hsdsch-physical-layer-category values shall be restricted to the range [1..12] - -- even if the UE physical capability category is above 12. - hsdsch-physical-layer-category HSDSCH-physical-layer-category, - -- dummy and dummy2 are not used in this version of the specification - -- and if received they should be ignored. - dummy BOOLEAN, - dummy2 BOOLEAN - }, - unsupported NULL - }, - tdd384-hspdsch CHOICE { - supported HSDSCH-physical-layer-category, - unsupported NULL - }, - tdd128-hspdsch CHOICE { - supported HSDSCH-physical-layer-category, - unsupported NULL - } -} - -PNBSCH-Allocation-r4 ::= SEQUENCE { - numberOfRepetitionsPerSFNPeriod ENUMERATED { - c2, c3, c4, c5, c6, c7, c8, c9, c10, - c12, c14, c16, c18, c20, c24, c28, c32, - c36, c40, c48, c56, c64, c72, c80 } -} - -Pre-RedirectionInfo ::= SEQUENCE { - supportEUTRA-FDD BOOLEAN, - supportEUTRA-TDD BOOLEAN -} - -ProtocolErrorCause ::= ENUMERATED { - asn1-ViolationOrEncodingError, - messageTypeNonexistent, - messageNotCompatibleWithReceiverState, - ie-ValueNotComprehended, - informationElementMissing, - messageExtensionNotComprehended, - spare2, spare1 } - -ProtocolErrorIndicator ::= ENUMERATED { - noError, errorOccurred } - -ProtocolErrorIndicatorWithMoreInfo ::= - CHOICE { - noError NULL, - errorOccurred SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - protocolErrorInformation ProtocolErrorInformation - } -} - -ProtocolErrorMoreInformation ::= SEQUENCE { - diagnosticsType CHOICE { - type1 CHOICE { - asn1-ViolationOrEncodingError NULL, - messageTypeNonexistent NULL, - messageNotCompatibleWithReceiverState - IdentificationOfReceivedMessage, - ie-ValueNotComprehended IdentificationOfReceivedMessage, - conditionalInformationElementError IdentificationOfReceivedMessage, - messageExtensionNotComprehended IdentificationOfReceivedMessage, - spare1 NULL, - spare2 NULL - }, - spare NULL - } -} - -RadioFrequencyBandEUTRA ::= INTEGER (1..64) - -RadioFrequencyBandEUTRAExt ::= INTEGER (65..256) - -RadioFrequencyBandFDD ::= ENUMERATED { - -- fdd2100, fdd1900, fdd1800 correspond to Band I, Band II and Band III respectively - fdd2100, - fdd1900, - fdd1800, - bandVI, - bandIV, - bandV, - bandVII, - extension-indicator } - -RadioFrequencyBandFDD2 ::= ENUMERATED { - bandVIII, - bandIX, - bandX, - bandXI, - bandXII, - bandXIII, - bandXIV, - bandXV, - bandXVI, - bandXVII, - bandXVIII, - bandXIX, - bandXX, - bandXXI, - bandXXII, - extension-indicator } - -RadioFrequencyBandFDD3 ::= ENUMERATED {spare64, spare63, bandXXV, bandXXVI, spare60, spare59, spare58, spare57, spare56, spare55, spare54, spare53, spare52, spare51, spare50, spare49, spare48, spare47, spare46, spare45, spare44, spare43, spare42, spare41, spare40, spare39, spare38, spare37, spare36, spare35, spare34, spare33, spare32, spare31, spare30, spare29, spare28, spare27, spare26, spare25, spare24, spare23, spare22, spare21, spare20, spare19, spare18, spare17, spare16, spare15, spare14, spare13, spare12, spare11, spare10, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, extension-indicator } - -RadioFrequencyBandTDDList ::= ENUMERATED { - a, b, c, ab, ac, bc, abc, spare } - -RadioFrequencyBandTDDList-r7 ::= ENUMERATED { - a, b, c, d, ab, ac, ad, bc, bd, cd, abc, abd, acd, bcd, - abcd, notabcd } - -RadioFrequencyBandTDDext ::= ENUMERATED { - e, f, g, h, i, j, k, l, m, n, o, p, spare4, spare3, - spare2, spare1 } - -RadioFrequencyBandTDDextList ::= SEQUENCE (SIZE (1..maxFreqBandsTDD-ext)) OF - RadioFrequencyBandTDDext - -RadioFrequencyBandTDD ::= ENUMERATED { - a, b, c, d } - -RadioFrequencyBandTDD-r10 ::= ENUMERATED { - a, b, c, d, e, f, spare2, spare1 } - -RadioFrequencyBandGSM ::= ENUMERATED { - gsm450, - gsm480, - gsm850, - gsm900P, - gsm900E, - gsm1800, - gsm1900, - spare9, spare8, spare7, spare6, spare5, - spare4, spare3, spare2, spare1} - -Rb-timer-indicator ::= SEQUENCE { - t314-expired BOOLEAN, - t315-expired BOOLEAN } - -Re-EstablishmentTimer ::= ENUMERATED { - useT314, useT315 -} - -RedirectionInfo ::= CHOICE { - frequencyInfo FrequencyInfo, - interRATInfo InterRATInfo -} - -RedirectionInfo-r6 ::= CHOICE { - frequencyInfo FrequencyInfo, - interRATInfo InterRATInfo-r6 -} - -RedirectionInfo-v860ext ::= CHOICE { - -- CHOICE frequencyInfo is provided in IE RedirectionInfo or IE RedirectionInfo-r6 - frequencyInfo NULL, - interRATInfo InterRATInfo-v860ext -} - -RejectionCause ::= ENUMERATED { - congestion, - unspecified } - -ReleaseCause ::= ENUMERATED { - normalEvent, - unspecified, - pre-emptiveRelease, - congestion, - re-establishmentReject, - directedsignallingconnectionre-establishment, - userInactivity, - spare } - -RF-Capability ::= SEQUENCE { - fddRF-Capability SEQUENCE { - ue-PowerClass UE-PowerClass, - txRxFrequencySeparation TxRxFrequencySeparation - } OPTIONAL, - tddRF-Capability SEQUENCE { - ue-PowerClass UE-PowerClass, - radioFrequencyTDDBandList RadioFrequencyBandTDDList, - chipRateCapability ChipRateCapability - } OPTIONAL -} - -RF-Capability-r4-ext ::= SEQUENCE { - tddRF-Capability SEQUENCE { - ue-PowerClass UE-PowerClass, - radioFrequencyBandTDDList RadioFrequencyBandTDDList, - chipRateCapability ChipRateCapability - } OPTIONAL -} - -RF-Capability-v770ext ::= SEQUENCE { - -- If TDD384 and/or TDD128 RF capability is indicated in IEs 'RF-Capability' or - -- 'RF-Capability-r4-ext', the corresponding IE 'RadioFrequencyBandTDDList-r7' shall - -- be included in this IE. - tdd384RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL, - tdd768RF-Capability SEQUENCE { - ue-PowerClass UE-PowerClass, - radioFrequencyBandTDDList RadioFrequencyBandTDDList-r7 - -- The element 'chipRateCapability' = 'mcps7-68' - } OPTIONAL, - tdd128RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL -} - -RF-Capability-v860ext ::= SEQUENCE { - tdd128RF-Capability RadioFrequencyBandTDDextList OPTIONAL, - tdd384RF-Capability RadioFrequencyBandTDDextList OPTIONAL, - tdd768RF-Capability RadioFrequencyBandTDDextList OPTIONAL -} - -RF-Capability-vaa0ext ::= SEQUENCE { - supportOfMFBI ENUMERATED { true } OPTIONAL -} - -RLC-Capability ::= SEQUENCE { - -- If present, the "totalRLC-AM-BufferSize" in the IE "RLC-Capability-r5-ext" overrides the - -- corresponding value in this IE. The value in this IE may be used by a pre-REL-5 UTRAN. - totalRLC-AM-BufferSize TotalRLC-AM-BufferSize, - maximumRLC-WindowSize MaximumRLC-WindowSize, - maximumAM-EntityNumber MaximumAM-EntityNumberRLC-Cap -} - -RLC-Capability-r5-ext ::= SEQUENCE { - totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-r5-ext OPTIONAL -} - -RLC-Capability-v770ext ::= SEQUENCE { - supportOfTwoLogicalChannel BOOLEAN -} - -RLC-Capability-v920ext ::= SEQUENCE { - totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-v920ext OPTIONAL -} - -RLC-Capability-va40ext ::= SEQUENCE { - totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-va40ext OPTIONAL -} - -RLC-Capability-vb50ext ::= SEQUENCE { - totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-vb50ext OPTIONAL -} - -RRC-ConnectionReleaseInformation ::= CHOICE { - noRelease NULL, - release SEQUENCE { - releaseCause ReleaseCause - } -} - -RRC-MessageSequenceNumber ::= INTEGER (0..15) - - -RRC-MessageSequenceNumberList ::= SEQUENCE (SIZE (4..5)) OF - RRC-MessageSequenceNumber - -RRC-StateIndicator ::= ENUMERATED { - cell-DCH, cell-FACH, cell-PCH, ura-PCH } - -RRC-TransactionIdentifier ::= INTEGER (0..3) - -RSR-VCC-Info ::= SEQUENCE { - nonce BIT STRING (SIZE (128)) OPTIONAL, - ims-Information OCTET STRING (SIZE (1.. 32)) -} - -S-RNTI ::= BIT STRING (SIZE (20)) - -S-RNTI-2 ::= BIT STRING (SIZE (10)) - -SecurityCapability ::= SEQUENCE { - cipheringAlgorithmCap BIT STRING { - -- For each bit value "0" means false/ not supported - spare15(0), - spare14(1), - spare13(2), - spare12(3), - spare11(4), - spare10(5), - spare9(6), - spare8(7), - spare7(8), - spare6(9), - spare5(10), - spare4(11), - spare3(12), - uea2(13), - uea1(14), - uea0(15) - } (SIZE (16)), - integrityProtectionAlgorithmCap BIT STRING { - -- For each bit value "0" means false/ not supported - spare15(0), - spare14(1), - spare13(2), - spare12(3), - spare11(4), - spare10(5), - spare9(6), - spare8(7), - spare7(8), - spare6(9), - spare5(10), - spare4(11), - spare3(12), - uia2(13), - uia1(14), - spare0(15) - } (SIZE (16)) -} - -SecondaryServingEDCHCell-Info ::= SEQUENCE { - primary-E-RNTI E-RNTI OPTIONAL, - secondary-E-RNTI E-RNTI OPTIONAL - } - -SecondaryEDCH-Info-Common ::= SEQUENCE { - frequencyInfo FrequencyInfo, - scramblingCodeType ScramblingCodeType, - scramblingCodeNumber UL-ScramblingCode, - ms2-SchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL, - servingGrant SEQUENCE { - primary-Secondary-GrantSelector ENUMERATED { primary, secondary } - } OPTIONAL, - minReduced-E-DPDCH-GainFactor MinReduced-E-DPDCH-GainFactor OPTIONAL, - e-DCH-minimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL, - dpcchPowerOffset-SecondaryULFrequency INTEGER(0..7), - pc-Preamble PC-Preamble -} - -Serving-HSDSCH-CellInformation ::= SEQUENCE { - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode, - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - dl-hspdsch-Information DL-HSPDSCH-Information OPTIONAL, - harqInfo HARQ-Info OPTIONAL, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL -} - -Serving-HSDSCH-CellInformation-r7 ::= SEQUENCE { - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode, - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - dl-hspdsch-Information DL-HSPDSCH-Information-r7 OPTIONAL, - harqInfo HARQ-Info-r7 OPTIONAL, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL -} - -Serving-HSDSCH-CellInformation-r8 ::= SEQUENCE { - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode, - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - dl-hspdsch-Information DL-HSPDSCH-Information-r8 OPTIONAL, - harqInfo HARQ-Info-r7 OPTIONAL, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL -} - -Serving-HSDSCH-CellInformation-r9 ::= SEQUENCE { - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode, - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - dl-hspdsch-Information DL-HSPDSCH-Information-r9 OPTIONAL, - harqInfo HARQ-Info-r7 OPTIONAL, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL -} - -Serving-HSDSCH-CellInformation-r11 ::= SEQUENCE { - deltaACK DeltaACK-r11 OPTIONAL, - deltaNACK DeltaNACK-r11 OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode, - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - dl-hspdsch-Information DL-HSPDSCH-Information-r11 OPTIONAL, - harqInfo HARQ-Info-r11 OPTIONAL, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL, - mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL -} - -SimultaneousSCCPCH-DPCH-Reception ::= CHOICE { - notSupported NULL, - supported SEQUENCE { - maxNoSCCPCH-RL MaxNoSCCPCH-RL, - -- simultaneousSCCPCH-DPCH-DPDCH-Reception is applicable only if - -- the IE Support of PDSCH = TRUE - -- Note: the reference to DPDCH in the element name below is incorrect (see tabular). The - -- name is not changed, to keep it aligned with R99. - simultaneousSCCPCH-DPCH-DPDCH-Reception BOOLEAN - } -} - -SRNC-Identity ::= BIT STRING (SIZE (12)) - -SR-VCC-Info ::= SEQUENCE { - nonce BIT STRING (SIZE (128)) OPTIONAL -} - -SR-VCC-SecurityRABInfo-v860ext ::= SEQUENCE { - sr-vcc-Info SR-VCC-Info, - rab-InfoReplace RAB-InfoReplace -} - -START-Value ::= BIT STRING (SIZE (20)) - -STARTList ::= SEQUENCE (SIZE (1..maxCNdomains)) OF - STARTSingle - -STARTSingle ::= SEQUENCE { - cn-DomainIdentity CN-DomainIdentity, - start-Value START-Value -} - -SystemSpecificCapUpdateReq ::= ENUMERATED { - gsm } - -SystemSpecificCapUpdateReq-v590ext ::= ENUMERATED { - geranIu } - -SystemSpecificCapUpdateReq-r5 ::= ENUMERATED { - gsm, geranIu } - -SystemSpecificCapUpdateReq-r8 ::= ENUMERATED { - gsm, geranIu, eutra, spare5, - spare4, spare3, spare2, spare1 } - -SystemSpecificCapUpdateReqList ::= SEQUENCE (SIZE (1..maxSystemCapability)) OF - SystemSpecificCapUpdateReq - -SystemSpecificCapUpdateReqList-r5 ::= SEQUENCE (SIZE (1..maxSystemCapability)) OF - SystemSpecificCapUpdateReq-r5 - -SystemSpecificCapUpdateReqList-r8 ::= SEQUENCE (SIZE (1..maxSystemCapability)) OF - SystemSpecificCapUpdateReq-r8 - -T-300 ::= ENUMERATED { - ms100, ms200, ms400, ms600, ms800, - ms1000, ms1200, ms1400, ms1600, - ms1800, ms2000, ms3000, ms4000, - ms6000, ms8000 } - -T-301 ::= ENUMERATED { - ms100, ms200, ms400, ms600, ms800, - ms1000, ms1200, ms1400, ms1600, - ms1800, ms2000, ms3000, ms4000, - ms6000, ms8000, spare } - -T-302 ::= ENUMERATED { - ms100, ms200, ms400, ms600, ms800, - ms1000, ms1200, ms1400, ms1600, - ms1800, ms2000, ms3000, ms4000, - ms6000, ms8000, spare } - -T-304 ::= ENUMERATED { - ms100, ms200, ms400, - ms1000, ms2000, spare3, spare2, spare1 } - -T-305 ::= ENUMERATED { - noUpdate, m5, m10, m30, - m60, m120, m360, m720 } - -T-307 ::= ENUMERATED { - s5, s10, s15, s20, - s30, s40, s50, spare } - -T-308 ::= ENUMERATED { - ms40, ms80, ms160, ms320 } - -T-309 ::= INTEGER (1..8) - -T-310 ::= ENUMERATED { - ms40, ms80, ms120, ms160, - ms200, ms240, ms280, ms320 } - -T-311 ::= ENUMERATED { - ms250, ms500, ms750, ms1000, - ms1250, ms1500, ms1750, ms2000 } - --- The value 0 for T-312 is not used in this version of the specification -T-312 ::= INTEGER (0..15) - -T-313 ::= INTEGER (0..15) - -T-314 ::= ENUMERATED { - s0, s2, s4, s6, s8, - s12, s16, s20 } - -T-315 ::= ENUMERATED { - s0, s10, s30, s60, s180, - s600, s1200, s1800 } - -T-316 ::= ENUMERATED { - s0, s10, s20, s30, s40, - s50, s-inf, spare } - --- All the values are changed to "infinity" in Rel-5 -T-317 ::= ENUMERATED { - infinity0, infinity1, infinity2, infinity3, infinity4, - infinity5, infinity6, infinity7} - -T-318 ::= ENUMERATED { - ms250, ms500, ms750, ms1000, ms1250, ms1500, - ms1750, ms2000, ms3000, ms4000, ms6000, ms8000, - ms10000, ms12000, ms16000 } - -T-319 ::= ENUMERATED { - ms80, ms160, ms320, ms640, ms1280, ms2560, ms5120 } - -T-321 ::= ENUMERATED { - ms100, ms200, ms400, ms800 } - -T-322 ::= ENUMERATED { m5, m10, m20, m30, m60, - m120, m180, spare1 } - -T-323 ::= ENUMERATED { s0, s5, s10, s20, s30, s60, s90, s120 } - -T-328 ::= ENUMERATED { ms20, ms40, ms60, ms80 } - -T-329 ::= ENUMERATED { s05p, s1, s2, s4 } - -T-CPCH ::= ENUMERATED { - ct0, ct1 } - -TMSI-and-LAI-GSM-MAP ::= SEQUENCE { - tmsi TMSI-GSM-MAP, - lai LAI -} - -TMSI-DS-41 ::= OCTET STRING (SIZE (2..17)) - -TotalRLC-AM-BufferSize ::= ENUMERATED { - dummy, kb10, kb50, kb100, - kb150, kb500, kb1000, spare } - -TotalRLC-AM-BufferSize-r5-ext ::= ENUMERATED { - kb200, kb300, kb400, kb750 } - -TotalRLC-AM-BufferSize-v920ext ::= ENUMERATED { - kb1150, kb1250 } - -TotalRLC-AM-BufferSize-va40ext ::= ENUMERATED { - kb1500, kb1800, kb2300, kb2550 } - -TotalRLC-AM-BufferSize-vb50ext ::= ENUMERATED { - kb3400, kb3500, kb4400, kb4500, kb5000, spare3, spare2, spare1 } - --- Actual value TransmissionProbability = IE value * 0.125 -TransmissionProbability ::= INTEGER (1..8) - -TransportChannelCapability ::= SEQUENCE { - dl-TransChCapability DL-TransChCapability, - ul-TransChCapability UL-TransChCapability -} - -TurboSupport ::= CHOICE { - notSupported NULL, - supported MaxNoBits -} - --- Values defined as spare shall not be sent in this version of the protocol. If a spare value is --- received, it should be interpreted as 'default-RxTX-sparation'. -TxRxFrequencySeparation ::= ENUMERATED { - default-TxRx-separation, spare2, spare1 } - -U-RNTI ::= SEQUENCE { - srnc-Identity SRNC-Identity, - s-RNTI S-RNTI -} - -U-RNTI-Group ::= CHOICE { --- TABULAR: not following the tabular strictly, but this will most likely save bits - all NULL, - u-RNTI-BitMaskIndex-b1 BIT STRING (SIZE (31)), - u-RNTI-BitMaskIndex-b2 BIT STRING (SIZE (30)), - u-RNTI-BitMaskIndex-b3 BIT STRING (SIZE (29)), - u-RNTI-BitMaskIndex-b4 BIT STRING (SIZE (28)), - u-RNTI-BitMaskIndex-b5 BIT STRING (SIZE (27)), - u-RNTI-BitMaskIndex-b6 BIT STRING (SIZE (26)), - u-RNTI-BitMaskIndex-b7 BIT STRING (SIZE (25)), - u-RNTI-BitMaskIndex-b8 BIT STRING (SIZE (24)), - u-RNTI-BitMaskIndex-b9 BIT STRING (SIZE (23)), - u-RNTI-BitMaskIndex-b10 BIT STRING (SIZE (22)), - u-RNTI-BitMaskIndex-b11 BIT STRING (SIZE (21)), - u-RNTI-BitMaskIndex-b12 BIT STRING (SIZE (20)), - u-RNTI-BitMaskIndex-b13 BIT STRING (SIZE (19)), - u-RNTI-BitMaskIndex-b14 BIT STRING (SIZE (18)), - u-RNTI-BitMaskIndex-b15 BIT STRING (SIZE (17)), - u-RNTI-BitMaskIndex-b16 BIT STRING (SIZE (16)), - u-RNTI-BitMaskIndex-b17 BIT STRING (SIZE (15)), - u-RNTI-BitMaskIndex-b18 BIT STRING (SIZE (14)), - u-RNTI-BitMaskIndex-b19 BIT STRING (SIZE (13)), - u-RNTI-BitMaskIndex-b20 BIT STRING (SIZE (12)), - u-RNTI-BitMaskIndex-b21 BIT STRING (SIZE (11)), - u-RNTI-BitMaskIndex-b22 BIT STRING (SIZE (10)), - u-RNTI-BitMaskIndex-b23 BIT STRING (SIZE (9)), - u-RNTI-BitMaskIndex-b24 BIT STRING (SIZE (8)), - u-RNTI-BitMaskIndex-b25 BIT STRING (SIZE (7)), - u-RNTI-BitMaskIndex-b26 BIT STRING (SIZE (6)), - u-RNTI-BitMaskIndex-b27 BIT STRING (SIZE (5)), - u-RNTI-BitMaskIndex-b28 BIT STRING (SIZE (4)), - u-RNTI-BitMaskIndex-b29 BIT STRING (SIZE (3)), - u-RNTI-BitMaskIndex-b30 BIT STRING (SIZE (2)), - u-RNTI-BitMaskIndex-b31 BIT STRING (SIZE (1)) -} - -U-RNTI-Short ::= SEQUENCE { - srnc-Identity SRNC-Identity, - s-RNTI-2 S-RNTI-2 -} - -UE-BasedNetworkPerformanceMeasurementsParameters ::= SEQUENCE { - supportOfLoggedMeasurementsIdlePCH ENUMERATED { true } OPTIONAL -} - -UE-CapabilityContainer-IEs ::= SEQUENCE { --- Container for transparent transfer of capability information not related to --- features for which early implementation is desired - ue-RadioAccessCapability-v690ext UE-RadioAccessCapability-v690ext, - ue-RATSpecificCapability-v690ext InterRAT-UE-RadioAccessCapability-v690ext OPTIONAL, - v6b0NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v6b0ext UE-RadioAccessCapability-v6b0ext-IEs, - v6e0NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v6e0ext UE-RadioAccessCapability-v6e0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v770ext UE-RadioAccessCapability-v770ext-IEs, - v790NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v790ext UE-RadioAccessCapability-v790ext-IEs, - v860NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v860ext - UE-RadioAccessCapability-v860ext-IEs, - ue-RATSpecificCapability-v860ext - InterRAT-UE-RadioAccessCapability-v860ext OPTIONAL, - v880NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v880ext - UE-RadioAccessCapability-v880ext-IEs, - v890NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v890ext - UE-RadioAccessCapability-v890ext-IEs, - v920NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v920ext - UE-RadioAccessCapability-v920ext-IEs, - v970NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v970ext - UE-RadioAccessCapability-v970ext-IEs, - va40NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-va40ext - UE-RadioAccessCapability-va40ext-IEs, - va60NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-va60ext - UE-RadioAccessCapability-va60ext-IEs, - va80NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-va80ext - UE-RadioAccessCapability-va80ext-IEs, - laterNonCriticalExtensions - UE-RadioAccessCapability-LaterNonCriticalExtensions OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -UE-RadioAccessCapability-v6b0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForSIB11bis ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v6e0ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForFDPCH ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v770ext-IEs ::= SEQUENCE { - -- User equipment IEs - pdcp-Capability PDCP-Capability-v770ext OPTIONAL, - rlc-Capability RLC-Capability-v770ext, - rf-Capability RF-Capability-v770ext OPTIONAL, - physicalChannelCapability PhysicalChannelCapability-v770ext, - multiModeRAT-Capability MultiModeRAT-Capability-v770ext, - ue-PositioningCapability UE-PositioningCapability-v770ext, - mac-ehsSupport ENUMERATED { true } OPTIONAL, - ue-specificCapabilityInformation UE-SpecificCapabilityInformation-LCRTDD OPTIONAL -} - -UE-RadioAccessCapability-v790ext-IEs ::= SEQUENCE { - -- User equipment IEs - supportForEDPCCHPowerBoosting ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v860ext-IEs ::= SEQUENCE { - -- UE radio access capability - rf-Capability RF-Capability-v860ext OPTIONAL, - physicalChannelCapability PhysicalChannelCapability-v860ext, - multiModeRAT-Capability MultiModeRAT-Capability-v860ext, - ue-PositioningCapability UE-PositioningCapability-v860ext, - measurementCapability MeasurementCapability-v860ext OPTIONAL, - measurementCapabilityTDD MeasurementCapabilityTDD OPTIONAL, - supportOfCommonEDCH ENUMERATED { true } OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL, - supportOfSPSOperation ENUMERATED { true } OPTIONAL, - supportOfControlChannelDRXOperation ENUMERATED { true } OPTIONAL, - supportOfCSG ENUMERATED { true } OPTIONAL, - -- UE radio access capability extension - ue-RadioAccessCapabBandFDDList3 UE-RadioAccessCapabBandFDDList3 OPTIONAL -} - -UE-RadioAccessCapability-v880ext-IEs ::= SEQUENCE { - -- UE radio access capability - supportForPriorityReselectionInUTRAN ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v890ext-IEs ::= SEQUENCE { - -- UE radio access capability - supportCellSpecificTxDiversityinDC-Operation ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v920ext-IEs ::= SEQUENCE { - -- UE physical channel capability, - ue-RadioAccessCapabBandCombList UE-RadioAccessCapabBandCombList OPTIONAL, - physicalChannelCapability PhysicalChannelCapability-v920ext, - rlc-Capability RLC-Capability-v920ext, - supportOfenhancedTS0 ENUMERATED { true } OPTIONAL, - measurementCapability MeasurementCapability-v920ext OPTIONAL, - -- UE radio access capability - csgProximityIndicationCapability CSG-ProximityIndicationCapability OPTIONAL, - neighCellSI-AcquisitionCapability NeighCellSI-AcquisitionCapability OPTIONAL -} - -UE-RadioAccessCapability-v970ext-IEs ::= SEQUENCE { - -- UE physical channel capability - ue-ExtendedMeasurementSupport ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v9c0ext-IEs ::= SEQUENCE { - -- UE voice over IMS related capability - voiceOverUTRA-PS-HS-Support ENUMERATED { true } OPTIONAL, - srvcc-SupportFromUTRA-to-UTRA ENUMERATED { true } OPTIONAL, - srvcc-SupportFromUTRA-to-GERAN ENUMERATED { true } OPTIONAL, - -- UE radio access capability - ue-supportMac-ehsWindowSizeExtension ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-LaterNonCriticalExtensions ::= SEQUENCE { - v9c0NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-v9c0ext UE-RadioAccessCapability-v9c0ext-IEs, - vaa0NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-vaa0ext UE-RadioAccessCapability-vaa0ext-IEs, - vb50NonCriticalExtensions SEQUENCE { - ue-RadioAccessCapability-vb50ext UE-RadioAccessCapability-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } -} - - -UE-RadioAccessCapability-va40ext-IEs ::= SEQUENCE { - -- UE physical channel capability - ue-RadioAccessCapabBandCombList-va40ext - UE-RadioAccessCapabBandCombList-va40ext OPTIONAL, - physicalChannelCapability PhysicalChannelCapability-va40ext, - rlc-Capability RLC-Capability-va40ext, - measurementCapability MeasurementCapability-va40ext OPTIONAL, - supportOfMUMIMO ENUMERATED { uplink, uplink-and-downlink } OPTIONAL, - supportForDualCellMimoInDifferentBands ENUMERATED { true } OPTIONAL, - ue-BasedNetworkPerformanceMeasurementsParameters - UE-BasedNetworkPerformanceMeasurementsParameters OPTIONAL, - supportOfUTRANANR ENUMERATED { true } OPTIONAL, - -- UE radio access capability extension - ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4 OPTIONAL -} - -UE-RadioAccessCapability-va60ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4-va60ext OPTIONAL -} - -UE-RadioAccessCapability-va80ext-IEs ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4-va80ext OPTIONAL -} - -UE-RadioAccessCapability-vaa0ext-IEs ::= SEQUENCE { - supportOfUMRLCre-establish-via-reconfig ENUMERATED { true } OPTIONAL, - rf-capability RF-Capability-vaa0ext OPTIONAL -} - -UE-RadioAccessCapability-vb50ext-IEs ::= SEQUENCE { - multiModeRAT-Capability MultiModeRAT-Capability-vb50ext, - supportOfCommonERGCHBasedInterferenceControl ENUMERATED { true } OPTIONAL, - supportOfFallbackToR99PRACH ENUMERATED { true } OPTIONAL, - supportOfConcurrentDeployment ENUMERATED { true } OPTIONAL, - supportOfTTIalignmentAndPerHARQProcess ENUMERATED { true } OPTIONAL, - -- UE physical channel capability - ue-RadioAccessCapabBandCombList-vb50ext - UE-RadioAccessCapabBandCombList-vb50ext OPTIONAL, - multiflowCapabBandCombList MultiflowCapabBandCombList OPTIONAL, - physicalChannelCapability PhysicalChannelCapability-vb50ext, - rlc-Capability RLC-Capability-vb50ext, - multiflowCapability MultiflowCapability OPTIONAL, - -- UE radio access capability extension - ue-RadioAccessCapabBandFDDList6 UE-RadioAccessCapabBandFDDList6 OPTIONAL, - -- Measurement capability - measurementCapability MeasurementCapability-vb50ext OPTIONAL, - measurementCapabilityTDD MeasurementCapabilityTDD-vb50ext OPTIONAL, - -- UE voice over IMS related capability - rsrvcc-SupportFromUTRA-CS-to-EUTRA-FDD ENUMERATED { true } OPTIONAL, - rsrvcc-SupportFromUTRA-CS-to-EUTRA-TDD ENUMERATED { true } OPTIONAL, - supportOfHSDPCCHPowerOffsetExtension ENUMERATED { true } OPTIONAL, - supportOfSTTDOnDLControlChannelsWhenMultiflowOperationIsActive ENUMERATED { true } OPTIONAL -} - -UE-ConnTimersAndConstants ::= SEQUENCE { --- Optional is used also for parameters for which the default value is the last one read in SIB1 --- t-301 and n-301 should not be used by the UE in this version of the specification - t-301 T-301 DEFAULT ms2000, - n-301 N-301 DEFAULT 2, - t-302 T-302 DEFAULT ms4000, - n-302 N-302 DEFAULT 3, - t-304 T-304 DEFAULT ms2000, - n-304 N-304 DEFAULT 2, - t-305 T-305 DEFAULT m30, - t-307 T-307 DEFAULT s30, - t-308 T-308 DEFAULT ms160, - t-309 T-309 DEFAULT 5, - t-310 T-310 DEFAULT ms160, - n-310 N-310 DEFAULT 4, - t-311 T-311 DEFAULT ms2000, - t-312 T-312 DEFAULT 1, - -- n-312 shall be ignored if n-312 in UE-ConnTimersAndConstants-v3a0ext is present, and the - -- value of that element shall be used instead. - n-312 N-312 DEFAULT s1, - t-313 T-313 DEFAULT 3, - n-313 N-313 DEFAULT s20, - t-314 T-314 DEFAULT s12, - t-315 T-315 DEFAULT s180, - -- n-315 shall be ignored if n-315 in UE-ConnTimersAndConstants-v3a0ext is present, and the - -- value of that element shall be used instead. - n-315 N-315 DEFAULT s1, - t-316 T-316 DEFAULT s30, - t-317 T-317 DEFAULT infinity4 -} - -UE-ConnTimersAndConstants-v3a0ext ::= SEQUENCE { - n-312 N-312ext OPTIONAL, - n-315 N-315ext OPTIONAL -} - -UE-ConnTimersAndConstants-r5 ::= SEQUENCE { --- Optional is used also for parameters for which the default value is the last one read in SIB1 --- t-301 and n-301 should not be used by the UE in this version of the specification - t-301 T-301 DEFAULT ms2000, - n-301 N-301 DEFAULT 2, - t-302 T-302 DEFAULT ms4000, - n-302 N-302 DEFAULT 3, - t-304 T-304 DEFAULT ms2000, - n-304 N-304 DEFAULT 2, - t-305 T-305 DEFAULT m30, - t-307 T-307 DEFAULT s30, - t-308 T-308 DEFAULT ms160, - t-309 T-309 DEFAULT 5, - t-310 T-310 DEFAULT ms160, - n-310 N-310 DEFAULT 4, - t-311 T-311 DEFAULT ms2000, - t-312 T-312 DEFAULT 1, - n-312 N-312-r5 DEFAULT s1, - t-313 T-313 DEFAULT 3, - n-313 N-313 DEFAULT s20, - t-314 T-314 DEFAULT s12, - t-315 T-315 DEFAULT s180, - n-315 N-315-r5 DEFAULT s1, - t-316 T-316 DEFAULT s30, - t-317 T-317 DEFAULT infinity4 -} - -UE-ConnTimersAndConstants-v860ext ::= SEQUENCE { - t-323 T-323 OPTIONAL -} - -UE-ConnTimersAndConstants-r11 ::= SEQUENCE { --- Optional is used also for parameters for which the default value is the last one read in SIB1 --- t-301 and n-301 should not be used by the UE in this version of the specification - t-301 T-301 DEFAULT ms2000, - n-301 N-301 DEFAULT 2, - t-302 T-302 DEFAULT ms4000, - n-302 N-302 DEFAULT 3, - t-304 T-304 DEFAULT ms2000, - n-304 N-304 DEFAULT 2, - t-305 T-305 DEFAULT m30, - t-307 T-307 DEFAULT s30, - t-308 T-308 DEFAULT ms160, - t-309 T-309 DEFAULT 5, - t-310 T-310 DEFAULT ms160, - n-310 N-310 DEFAULT 4, - t-311 T-311 DEFAULT ms2000, - t-312 T-312 DEFAULT 1, - n-312 N-312-r5 DEFAULT s1, - t-313 T-313 DEFAULT 3, - n-313 N-313 DEFAULT s20, - t-314 T-314 DEFAULT s12, - t-315 T-315 DEFAULT s180, - n-315 N-315-r5 DEFAULT s1, - t-316 T-316 DEFAULT s30, - t-317 T-317 DEFAULT infinity4, - t-323 T-323 OPTIONAL -} - -UE-GANSSPositioning-Capability ::= SEQUENCE { - networkAssistedGANSS-supportedList NetworkAssistedGANSS-Supported-List OPTIONAL -} - -UE-GANSSPositioning-Capability-v860ext-IEs ::= SEQUENCE { - networkAssistedGANSS-supportedList NetworkAssistedGANSS-Supported-List-v860ext OPTIONAL -} - -UE-IdleTimersAndConstants ::= SEQUENCE { - t-300 T-300, - n-300 N-300, - t-312 T-312, - -- n-312 shall be ignored if n-312 in UE-IdleTimersAndConstants-v3a0ext is present, and the - -- value of that element shall be used instead. - n-312 N-312 -} - -UE-HSPA-Identities-r6 ::= SEQUENCE { - new-H-RNTI H-RNTI OPTIONAL, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL -} - -UE-IdleTimersAndConstants-v3a0ext ::= SEQUENCE { - n-312 N-312ext OPTIONAL -} - -UE-MultiModeRAT-Capability ::= SEQUENCE { - multiRAT-CapabilityList MultiRAT-Capability, - multiModeCapability MultiModeCapability -} - -UE-PowerClass ::= INTEGER (1..4) - -UE-PowerClassExt ::= ENUMERATED {class1, class2, class3, class4, - spare4, spare3, spare2, spare1 } - -UE-RadioAccessCapability ::= SEQUENCE { - -- UE-RadioAccessCapability is compatible with R99, although accessStratumReleaseIndicator - -- is removed from this IE, since its encoding did not result in bits. The - -- accessStratumReleaseIndicator is provided in the relevant REL-4 extension IEs. - pdcp-Capability PDCP-Capability, - rlc-Capability RLC-Capability, - transportChannelCapability TransportChannelCapability, - rf-Capability RF-Capability, - physicalChannelCapability PhysicalChannelCapability, - ue-MultiModeRAT-Capability UE-MultiModeRAT-Capability, - securityCapability SecurityCapability, - ue-positioning-Capability UE-Positioning-Capability, - measurementCapability MeasurementCapability OPTIONAL -} - -UE-RadioAccessCapabilityInfo ::= SEQUENCE { - ue-RadioAccessCapability UE-RadioAccessCapability, - ue-RadioAccessCapability-v370ext UE-RadioAccessCapability-v370ext -} - -UE-RadioAccessCapability-v370ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList UE-RadioAccessCapabBandFDDList -} - -UE-RadioAccessCapability-v380ext ::= SEQUENCE { - ue-PositioningCapabilityExt-v380 UE-PositioningCapabilityExt-v380 -} - -UE-RadioAccessCapability-v3a0ext ::= SEQUENCE { - ue-PositioningCapabilityExt-v3a0 UE-PositioningCapabilityExt-v3a0 -} - -UE-RadioAccessCapability-v3g0ext ::= SEQUENCE { - ue-PositioningCapabilityExt-v3g0 UE-PositioningCapabilityExt-v3g0 -} - -UE-RadioAccessCapability-v650ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList2 UE-RadioAccessCapabBandFDDList2, - -- This IE shall be included if the UE also supports Band I-VII - ue-RadioAccessCapabBandFDDList-ext UE-RadioAccessCapabBandFDDList-ext OPTIONAL -} - -UE-RadioAccessCapability-v690ext ::= SEQUENCE { - physicalchannelcapability-edch PhysicalChannelCapability-edch-r6, - -- TABULAR: deviceType is MD in tabular description - -- Default value is 'doesBenefitFromBatteryConsumptionOptimisation' - deviceType ENUMERATED { doesNotBenefitFromBatteryConsumptionOptimisation } OPTIONAL -} - -UE-RadioAccessCapability-v7e0ext ::= SEQUENCE { - -- User equipment IEs - supportForTwoDRXSchemesInPCH ENUMERATED { true } OPTIONAL, - supportEDPDCHPowerInterpolation ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v7f0ext ::= SEQUENCE { - supportofTxDivOnNonMIMOChannel ENUMERATED { true } OPTIONAL, - -- IE physicalChannelCapability-LCR and ue-RadioAccessCapabilityComp-TDD128 shall only be - -- included in InterRATHandoverInfo for 1.28 Mcps TDD, otherwise these IEs are not needed here. - physicalChannelCapability-LCR PhysicalChannelCapability-LCR-r4 OPTIONAL, - ue-RadioAccessCapabilityComp-TDD128 UE-RadioAccessCapabilityComp-TDD128-v7f0ext OPTIONAL -} - -UE-RadioAccessCapabilityInfo-v770ext ::= SEQUENCE { - rf-Capability RF-Capability-v770ext OPTIONAL, - physicalChannelCapability PhysicalChannelCapabilityInfo-v770ext, - ganssSupportIndication ENUMERATED { true } OPTIONAL, - mac-ehsSupport ENUMERATED { true } OPTIONAL, - ue-SpecificCapabilityInformation UE-SpecificCapabilityInformation-LCRTDD OPTIONAL -} - -UE-RadioAccessCapabilityInfo-TDD128-v8b0ext ::= SEQUENCE { - -- INTER RAT HANDOVER INFO - measurementCapabilityTDD MeasurementCapabilityTDD OPTIONAL, - hSDSCH-physical-layer-category-extension - HSDSCH-physical-layer-category-extension OPTIONAL -} - -UE-RadioAccessCapabilityInfo-TDD128-vb50ext ::= SEQUENCE { - -- INTER RAT HANDOVER INFO - measurementCapabilityTDD MeasurementCapabilityTDD-vb50ext OPTIONAL -} - -UE-RadioAccessCapability-v860ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList3 UE-RadioAccessCapabBandFDDList3 -} - -UE-RadioAccessCapability-v880ext ::= SEQUENCE { - -- INTER RAT HANDOVER INFO - supportForPriorityReselectionInUTRAN ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v890ext ::= SEQUENCE { - -- UE radio access capability - supportCellSpecificTxDiversityinDC-Operation ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-v920ext ::= SEQUENCE { - supportOfenhancedTS0 ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapability-va40ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4 -} - -UE-RadioAccessCapability-va60ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList4 UE-RadioAccessCapabBandFDDList4-va60ext OPTIONAL -} - -UE-RadioAccessCapability-va80ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList4-va60ext UE-RadioAccessCapabBandFDDList4-va60ext OPTIONAL, - ue-RadioAccessCapabBandFDDList4-va80ext UE-RadioAccessCapabBandFDDList4-va80ext OPTIONAL -} - -UE-RadioAccessCapability-vb50ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList6 UE-RadioAccessCapabBandFDDList6 OPTIONAL -} - -UE-RadioAccessCapabBand-va40ext ::= SEQUENCE { - ue-RadioAccessCapabBandFDDList5 UE-RadioAccessCapabBandFDDList5, - -- This IE shall be included if the UE also supports Band I – Band XXII - ue-RadioAccessCapabBandFDDList-ext2 UE-RadioAccessCapabBandFDDList-ext2 OPTIONAL -} - -UE-RadioAccessCapabBandFDDList2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - UE-RadioAccessCapabBandFDD2 - -UE-RadioAccessCapabBandFDDList3 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - UE-RadioAccessCapabBandFDD3 - -UE-RadioAccessCapabBandFDDList4 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - UE-RadioAccessCapabBandFDD4 - -UE-RadioAccessCapabBandFDDList4-va60ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - UE-RadioAccessCapabBandFDD4-va60ext - -UE-RadioAccessCapabBandFDDList4-va80ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext3)) OF - UE-RadioAccessCapabBandFDD4-va80ext - -UE-RadioAccessCapabBandFDDList5 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF - UE-RadioAccessCapabBandFDD5 - -UE-RadioAccessCapabBandFDDList6 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD3)) OF - UE-RadioAccessCapabBandFDD6 - -UE-RadioAccessCapabBandFDD2 ::= SEQUENCE { - radioFrequencyBandFDD2 RadioFrequencyBandFDD2, - fddRF-Capability SEQUENCE { - ue-PowerClass UE-PowerClassExt, - txRxFrequencySeparation TxRxFrequencySeparation - } OPTIONAL, - measurementCapability2 MeasurementCapabilityExt2 -} - -UE-RadioAccessCapabBandFDD3 ::= SEQUENCE { - -- UE may omit both IEs if this IE indicates the same EUTRA compressed - -- mode capability for all supported UTRA bands - -- Otherwise, the UE shall include either one of the following OPTIONAL IEs. - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, - measurementCapability3 MeasurementCapabilityExt3 -} - -UE-RadioAccessCapabBandFDD4 ::= SEQUENCE { - -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same - -- capability for all supported UTRA bands - -- Otherwise, the UE shall include either one of the following OPTIONAL IEs. - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, - radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL, - additionalSecondaryCells ENUMERATED { a1, a2 } OPTIONAL, - nonContiguousMultiCellCombinationList NonContiguousMultiCellCombinationList OPTIONAL -} - -UE-RadioAccessCapabBandFDD4-va60ext ::= SEQUENCE { - supportofULOLTD ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapabBandFDD4-va80ext ::= SEQUENCE { - -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same - -- capability for all supported UTRA bands - -- Otherwise, the UE shall include either one of the following OPTIONAL IEs. - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, - radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL, - additionalSecondaryCells ENUMERATED { a1, a2 } OPTIONAL, - nonContiguousMultiCellCombinationList NonContiguousMultiCellCombinationList OPTIONAL, - supportofULOLTD ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapabBandFDD5 ::= SEQUENCE { - radioFrequencyBandFDD3 RadioFrequencyBandFDD3, - fddRF-Capability SEQUENCE { - ue-PowerClass UE-PowerClassExt, - txRxFrequencySeparation TxRxFrequencySeparation - } OPTIONAL, - measurementCapability4 MeasurementCapabilityExt4 -} - -UE-RadioAccessCapabBandFDD6 ::= SEQUENCE { - -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same - -- capability for all supported UTRA bands - -- Otherwise, the UE shall include either one of the following OPTIONAL IEs. - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, - radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL, - additionalSecondaryCells2 ENUMERATED { a3, a4, a5, a6 } OPTIONAL, - supportOfULCLTD ENUMERATED { true } OPTIONAL, - multiflowCapability MultiflowPerBandCapability OPTIONAL, - mimo4x4CapabilityBand ENUMERATED { true } OPTIONAL, - supportOfULMIMO ENUMERATED { true } OPTIONAL, - measurementCapability5 MeasurementCapabilityExt5, - freqSpecificCompressedModeForNonContiguous ENUMERATED { true } OPTIONAL -} - -UE-PositioningCapabilityExt-v380 ::= SEQUENCE { - rx-tx-TimeDifferenceType2Capable BOOLEAN -} - -UE-PositioningCapabilityExt-v3a0 ::= SEQUENCE { - validity-CellPCH-UraPCH ENUMERATED { true } -} - -UE-PositioningCapabilityExt-v3g0 ::= SEQUENCE { - sfn-sfnType2Capability ENUMERATED { true } -} - -UE-PositioningCapability-v770ext ::= SEQUENCE { - ue-GANSSPositioning-Capability UE-GANSSPositioning-Capability OPTIONAL -} - -UE-PositioningCapability-v860ext ::= SEQUENCE { - ue-GANSSPositioning-Capability-v860ext - UE-GANSSPositioning-Capability-v860ext-IEs OPTIONAL -} - -UE-RadioAccessCapabBandCombList ::= SEQUENCE (SIZE (1..16)) OF BandComb - -UE-RadioAccessCapabBandFDDList ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - UE-RadioAccessCapabBandFDD - -UE-RadioAccessCapabBandFDDList-ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - UE-RadioAccessCapabBandFDD-ext - -UE-RadioAccessCapabBandFDDList-ext2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD2)) OF - UE-RadioAccessCapabBandFDD-ext2 - -UE-RadioAccessCapabBandFDD ::= SEQUENCE{ - radioFrequencyBandFDD RadioFrequencyBandFDD, - fddRF-Capability SEQUENCE { - ue-PowerClass UE-PowerClassExt, - txRxFrequencySeparation TxRxFrequencySeparation - } OPTIONAL, - measurementCapability MeasurementCapabilityExt -} - -UE-RadioAccessCapabBandFDD-ext ::= SEQUENCE { - radioFrequencyBandFDD RadioFrequencyBandFDD, - compressedModeMeasCapabFDDList-ext CompressedModeMeasCapabFDDList-ext -} - -UE-RadioAccessCapabBandFDD-ext2 ::= SEQUENCE { - radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, - radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, - compressedModeMeasCapabFDDList3 CompressedModeMeasCapabFDDList3 -} - -UE-RadioAccessCapability-v4b0ext ::= SEQUENCE { - pdcp-Capability-r4-ext PDCP-Capability-r4-ext, - tdd-CapabilityExt SEQUENCE { - rf-Capability RF-Capability-r4-ext, - physicalChannelCapability-LCR PhysicalChannelCapability-LCR-r4, - measurementCapability-r4-ext MeasurementCapability-r4-ext - } OPTIONAL, - -- IE " AccessStratumReleaseIndicator" is not needed in RRC CONNECTION SETUP COMPLETE - accessStratumReleaseIndicator AccessStratumReleaseIndicator OPTIONAL -} - -UE-RadioAccessCapabilityComp ::= SEQUENCE { - totalAM-RLCMemoryExceeds10kB BOOLEAN, - rf-CapabilityComp RF-CapabilityComp -} - -UE-RadioAccessCapabilityComp-ext ::= SEQUENCE { - rf-CapabilityFDDComp RF-CapabBandListFDDComp-ext -} - -UE-RadioAccessCapabilityComp-TDD128-v7f0ext ::= SEQUENCE { - hSDSCH-physical-layer-category - HSDSCH-physical-layer-category OPTIONAL, - multiCarrier-physical-layer-category - MultiCarrier-HSDSCH-physical-layer-category OPTIONAL, - tdd-edch-PhysicalLayerCategory INTEGER (1..6) OPTIONAL, - dl-CapabilityWithSimultaneousHS-DSCHConfig - DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL, - supportForCSVoiceoverHSPA ENUMERATED { true } OPTIONAL, - totalRLC-AM-BufferSize TotalRLC-AM-BufferSize-r5-ext OPTIONAL -} - -UE-RadioAccessCapabilityComp-v770ext ::= SEQUENCE { - rf-CapabilityComp RF-CapabilityComp-v770ext, - securityCapabilityIndication ENUMERATED { true } OPTIONAL, - ganssSupportIndication ENUMERATED { true } OPTIONAL, - mac-ehsSupport ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapabilityComp2 ::= SEQUENCE { - fddPhysicalChannelCapab-hspdsch-edch SEQUENCE { - dl-CapabilityWithSimultaneousHS-DSCHConfig - DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL, - physicalChannelCapabComp-hspdsch-r6 HSDSCH-physical-layer-category, - physicalChannelCapability-edch-r6 PhysicalChannelCapability-edch-r6 - } OPTIONAL -} - -UE-RadioAccessCapabilityComp2-v770ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext HSDSCH-physical-layer-category-ext OPTIONAL, - edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL, - hsscchlessHsdschOperation ENUMERATED { true } OPTIONAL, - enhancedFdpch ENUMERATED { true } OPTIONAL, - hsdschReception-CellFach ENUMERATED { true } OPTIONAL, - hsdschReception-CellUraPch ENUMERATED { true } OPTIONAL, - discontinuousDpcchTransmission ENUMERATED { true } OPTIONAL, - slotFormat4 ENUMERATED { true } OPTIONAL, - pdcp-Capability PDCP-Capability-v770ext OPTIONAL -} - -UE-RadioAccessCapabilityComp2-v7f0ext ::= SEQUENCE { - supportofTxDivOnNonMIMOChannel ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapabilityComp2-v860ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext2 HSDSCH-physical-layer-category-ext2 OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapabilityComp2-v920ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext3 HSDSCH-physical-layer-category-ext3 OPTIONAL, - edch-PhysicalLayerCategory-extension2 INTEGER (8..9) OPTIONAL -} - -UE-RadioAccessCapabilityComp2-va40ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext4 HSDSCH-physical-layer-category-ext4 OPTIONAL, - hsdsch-physical-layer-category-ext5 HSDSCH-physical-layer-category-ext5 OPTIONAL -} - -UE-RadioAccessCapabilityComp2-vb50ext ::= SEQUENCE { - hsdsch-physical-layer-category-ext6 HSDSCH-physical-layer-category-ext6 OPTIONAL, - hsdsch-physical-layer-category-ext7 HSDSCH-physical-layer-category-ext7 OPTIONAL, - hsdsch-physical-layer-category-ext8 HSDSCH-physical-layer-category-ext8 OPTIONAL, - edch-PhysicalLayerCategory-extension3 INTEGER (10..12) OPTIONAL, - supportOfHSDPCCHPowerOffsetExtension ENUMERATED { true } OPTIONAL -} - -UE-RadioAccessCapabilityComp-TDD128 ::= SEQUENCE { - tdd128RF-Capability RadioFrequencyBandTDDextList OPTIONAL, - supportOfSFModeForHSPDSCHDualStream ENUMERATED { sf1, sf1sf16 } OPTIONAL, - supportOfCommonEDCH ENUMERATED { true } OPTIONAL, - supportOfMACiis ENUMERATED { true } OPTIONAL, - supportOfSPSOperation ENUMERATED { true } OPTIONAL, - supportOfControlChannelDRXOperation ENUMERATED { true } OPTIONAL -} - -RF-CapabilityComp ::= SEQUENCE { - fdd CHOICE { - notSupported NULL, - supported RF-CapabBandListFDDComp - }, - tdd384-RF-Capability CHOICE { - notSupported NULL, - supported RadioFrequencyBandTDDList - }, - tdd128-RF-Capability CHOICE { - notSupported NULL, - supported RadioFrequencyBandTDDList - } -} - -RF-CapabilityComp-v770ext ::= SEQUENCE { - -- If support of TDD384 and/or TDD128 RF capability is indicated in IEs 'RF-CapabilityComp', - -- the corresponding IE 'RadioFrequencyBandTDDList-r7' shall be included in this IE. - tdd384-RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL, - tdd768-RF-Capability CHOICE { - notSupported NULL, - supported RadioFrequencyBandTDDList-r7 - }, - tdd128-RF-Capability RadioFrequencyBandTDDList-r7 OPTIONAL -} - --- NOTE: This IE defines the supported TX/RX frequency separation for the respective supported --- frequency band. Values defined as spare shall not be sent in this version of the protocol. --- If a spare value is received, it should be interpreted as 'default-RxTX-sparation'. -RF-CapabBandFDDComp ::= ENUMERATED { notSupported, - default-TxRx-separation, spare2, spare1 } - -RF-CapabBandListFDDComp ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF - -- The first entry corresponds with the first value of IE RadioFrequencyBandFDD, - -- fdd2100, and so on. No more than seven entries should be included in this IE. The - -- 8'th entry, if present, shall be ignored. - -- An extension of this IE may be provided using the IE 'RF-CapabBandListFDDComp-ext'. - RF-CapabBandFDDComp - -RF-CapabBandListFDDComp-ext ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext)) OF - -- The first entry corresponds with the first value of IE RadioFrequencyBandFDD2, - -- bandVIII, and so on. - RF-CapabBandFDDComp - -RF-CapabBandListFDDComp-ext2 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF - -- The first entry corresponds with the first value of IE RadioFrequencyBandFDD3, - -- 23 (Band XXIII), and so on. - RF-CapabBandFDDComp - -UE-RadioAccessCapabBandCombList-va40ext ::= SEQUENCE (SIZE (1..16)) OF SupportedCarrierCombination - -UE-RadioAccessCapabBandCombList-vb50ext ::= SEQUENCE (SIZE (1..16)) OF - SupportedCarrierCombination-ext - -SupportedCarrierCombination ::= SEQUENCE { - carrierCombination12 BOOLEAN, - carrierCombination21 BOOLEAN, - carrierCombination13 BOOLEAN, - carrierCombination31 BOOLEAN, - carrierCombination22 BOOLEAN -} - -SupportedCarrierCombination-ext ::= SEQUENCE { - carrierCombination14 BOOLEAN, - carrierCombination41 BOOLEAN, - carrierCombination15 BOOLEAN, - carrierCombination51 BOOLEAN, - carrierCombination16 BOOLEAN, - carrierCombination61 BOOLEAN, - carrierCombination17 BOOLEAN, - carrierCombination71 BOOLEAN, - carrierCombination23 BOOLEAN, - carrierCombination32 BOOLEAN, - carrierCombination24 BOOLEAN, - carrierCombination42 BOOLEAN, - carrierCombination25 BOOLEAN, - carrierCombination52 BOOLEAN, - carrierCombination26 BOOLEAN, - carrierCombination62 BOOLEAN, - carrierCombination33 BOOLEAN, - carrierCombination34 BOOLEAN, - carrierCombination43 BOOLEAN, - carrierCombination44 BOOLEAN, - carrierCombination35 BOOLEAN, - carrierCombination53 BOOLEAN -} - -UE-RadioAccessCapability-v590ext ::= SEQUENCE { - dl-CapabilityWithSimultaneousHS-DSCHConfig - DL-CapabilityWithSimultaneousHS-DSCHConfig OPTIONAL, - pdcp-Capability-r5-ext PDCP-Capability-r5-ext, - rlc-Capability-r5-ext RLC-Capability-r5-ext, - physicalChannelCapability PhysicalChannelCapability-hspdsch-r5, - multiModeRAT-Capability-v590ext MultiModeRAT-Capability-v590ext -} - -UE-RadioAccessCapability-v5c0ext ::= SEQUENCE { - pdcp-Capability-r5-ext2 PDCP-Capability-r5-ext2 -} - -UE-RadioAccessCapability-v680ext ::= SEQUENCE { - multiModeRAT-Capability-v680ext MultiModeRAT-Capability-v680ext -} - -UL-OLTD-InfoFDD ::= SEQUENCE { - ulOLTDActivation ENUMERATED {true} -} - -UL-PhysChCapabilityFDD ::= SEQUENCE { - maxNoDPDCH-BitsTransmitted MaxNoDPDCH-BitsTransmitted, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy BOOLEAN -} - -UL-PhysChCapabilityFDD-r6 ::= SEQUENCE { - maxNoDPDCH-BitsTransmitted MaxNoDPDCH-BitsTransmitted, - physicalchannelcapability-edch PhysicalChannelCapability-edch-r6 -} - -UL-PhysChCapabilityFDD-v770ext ::= SEQUENCE { - edch-PhysicalLayerCategory-extension INTEGER (7) OPTIONAL, - discontinuousDpcchTransmission ENUMERATED { true } OPTIONAL, - slotFormat4 ENUMERATED { true } OPTIONAL -} - -UL-PhysChCapabilityFDD-v920ext ::= SEQUENCE { - edch-PhysicalLayerCategory-extension2 INTEGER (8..9) OPTIONAL -} -UL-PhysChCapabilityFDD-vb50ext ::= SEQUENCE { - edch-PhysicalLayerCategory-extension3 INTEGER (10..12) OPTIONAL -} - -UL-PhysChCapabilityTDD ::= SEQUENCE { - maxTS-PerFrame MaxTS-PerFrame, - maxPhysChPerTimeslot MaxPhysChPerTimeslot, - minimumSF MinimumSF-UL, - supportOfPUSCH BOOLEAN -} - -UL-PhysChCapabilityTDD-384-v770ext ::= SEQUENCE { - tdd384-edch CHOICE { - supported SEQUENCE { - tdd-edch-PhysicalLayerCategory INTEGER (1..16) - }, - unsupported NULL - } -} - -UL-PhysChCapabilityTDD-LCR-r4 ::= SEQUENCE { - maxTS-PerSubFrame MaxTS-PerSubFrame-r4, - maxPhysChPerTimeslot MaxPhysChPerTimeslot, - minimumSF MinimumSF-UL, - supportOfPUSCH BOOLEAN, - supportOf8PSK BOOLEAN -} - -UL-PhysChCapabilityTDD-128-v770ext ::= SEQUENCE { - maxPhysChPerTimeslot MaxPhysChPerTimeslot-LCR-r7, - tdd128-edch CHOICE { - supported SEQUENCE { - tdd-edch-PhysicalLayerCategory INTEGER (1..6) - }, - unsupported NULL - } -} - -UL-PhysChCapabilityInfoTDD-128-v770ext ::= SEQUENCE { - maxPhysChPerTimeslot MaxPhysChPerTimeslot-LCR-r7 -} - -UL-PhysChCapabilityInfoTDD-128-va40ext ::= SEQUENCE { - multiCarrier-EdchPhysicalLayerCategory-128 INTEGER (1..8) OPTIONAL, - maxNumberCarrierForMCHSUPA-TDD ENUMERATED {nf-2, nf-3, nf-6, spare} OPTIONAL -} - -UL-PhysChCapabilityTDD-768 ::= SEQUENCE { - maxTS-PerFrame MaxTS-PerFrame, - maxPhysChPerTimeslot MaxPhysChPerTimeslot, - minimumSF MinimumSF-UL, - supportOfPUSCH BOOLEAN, - tdd384-edch CHOICE { - supported SEQUENCE { - tdd-edch-PhysicalLayerCategory INTEGER (1..16) - }, - unsupported NULL - } -} - -UL-SecondaryCellInfoFDD ::= CHOICE { - continue NULL, - newConfiguration SEQUENCE { - secondaryServingEDCHCell-Info SecondaryServingEDCHCell-Info OPTIONAL, - secondaryEDCH-Info-Common SecondaryEDCH-Info-Common OPTIONAL, - dl-InformationPerSecondaryRL-List DL-InformationPerSecondaryRL-List OPTIONAL - } -} - -PhysicalChannelCapability-edch-r6 ::= SEQUENCE { - fdd-edch CHOICE { - supported SEQUENCE { - edch-PhysicalLayerCategory INTEGER (1..16) - }, - unsupported NULL - } -} - -UL-TransChCapability ::= SEQUENCE { - maxNoBitsTransmitted MaxNoBits, - maxConvCodeBitsTransmitted MaxNoBits, - turboEncodingSupport TurboSupport, - maxSimultaneousTransChs MaxSimultaneousTransChsUL, - modeSpecificInfo CHOICE { - fdd NULL, - tdd SEQUENCE { - maxSimultaneousCCTrCH-Count MaxSimultaneousCCTrCH-Count - } - }, - maxTransmittedBlocks MaxTransportBlocksUL, - maxNumberOfTFC MaxNumberOfTFC-UL, - maxNumberOfTF MaxNumberOfTF -} - -UE-Positioning-Capability ::= SEQUENCE { - standaloneLocMethodsSupported BOOLEAN, - ue-BasedOTDOA-Supported BOOLEAN, - networkAssistedGPS-Supported NetworkAssistedGPS-Supported, - supportForUE-GPS-TimingOfCellFrames BOOLEAN, - supportForIPDL BOOLEAN -} - -UE-SecurityInformation ::= SEQUENCE { - start-CS START-Value -} - -UE-SecurityInformation2 ::= SEQUENCE { - start-PS START-Value -} - -UE-SpecificCapabilityInformation-LCRTDD ::= ENUMERATED { - nF, - nFMc-TriRx-UniTx, - nFMc-TriRx-TriTx, - nFMc-HexRx-UniTx, - nFMc-HexRx-TriTx, - nFMc-HexRx-HexTx, - nFMc-TwoRx-UniTx-Discontiguous, - nFMc-TwoRx-TwoTx-Discontiguous, - nFMc-TwoRx-UniTx-Contiguous, - nFMc-TwoRx-TwoTx-Contiguous, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1 } - -URA-UpdateCause ::= ENUMERATED { - changeOfURA, - periodicURAUpdate, - dummy, - spare1 } - -UTRAN-DRX-CycleLengthCoefficient ::= INTEGER (3..9) - -UTRAN-DRX-CycleLengthCoefficient-r7 ::= SEQUENCE { - drx-CycleLengthCoefficient INTEGER (3..9), - drx-CycleLengthCoefficient2 INTEGER (3..9) OPTIONAL, - timeForDRXCycle2 T-319 OPTIONAL -} - -WaitTime ::= INTEGER (0..15) - --- *************************************************** --- --- RADIO BEARER INFORMATION ELEMENTS (10.3.4) --- --- *************************************************** - -AlgorithmSpecificInfo ::= CHOICE { - rfc2507-Info RFC2507-Info -} - -AlgorithmSpecificInfo-r4 ::= CHOICE { - rfc2507-Info RFC2507-Info, - rfc3095-Info RFC3095-Info-r4 -} - -CID-InclusionInfo-r4 ::= ENUMERATED { - pdcp-Header, - rfc3095-PacketFormat } - -CommonRBMappingInfo ::= SEQUENCE { - logicalChannelIdentity LogicalChannelIdentity, - mac-ehs-QueueId MAC-ehs-QueueId -} - --- Upper limit of COUNT-C is 2^32 - 1 -COUNT-C ::= INTEGER (0..4294967295) - --- Upper limit of COUNT-C-MSB is 2^25 - 1 -COUNT-C-MSB ::= INTEGER (0..33554431) - -CS-HSPA-Information ::= SEQUENCE { - ul-AMR-Rate UL-AMR-Rate OPTIONAL, - maxCS-Delay MaxCS-Delay -} - -DefaultConfigForCellFACH ::= SEQUENCE { - defaultConfigMode DefaultConfigMode, - defaultConfigIdForCellFACH DefaultConfigIdForCellFACH -} - -DefaultConfigIdentity ::= INTEGER (0..10) - -DefaultConfigIdentity-r4 ::= INTEGER (0..12) - -DefaultConfigIdentity-r5 ::= INTEGER (0..13) - --- DefaultConfigIdentity-r6 values 25..31 are spare and shall not be used in this version of --- the protocol -DefaultConfigIdentity-r6 ::= INTEGER (0..31) - --- DefaultConfigIdForCellFACH values 1..15 are spare and shall not be used in this version of --- the protocol -DefaultConfigIdForCellFACH ::= INTEGER (0..15) - -DefaultConfigMode ::= ENUMERATED { - fdd, - tdd } - -DDI ::= INTEGER (0..62) - -DL-AM-RLC-Mode ::= SEQUENCE { - inSequenceDelivery BOOLEAN, - receivingWindowSize ReceivingWindowSize, - dl-RLC-StatusInfo DL-RLC-StatusInfo -} - -DL-AM-RLC-Mode-r5 ::= SEQUENCE { - dl-RLC-PDU-size OctetModeRLC-SizeInfoType1, - inSequenceDelivery BOOLEAN, - receivingWindowSize ReceivingWindowSize, - dl-RLC-StatusInfo DL-RLC-StatusInfo -} - -DL-AM-RLC-Mode-r7 ::= SEQUENCE { - dl-RLC-PDU-size CHOICE { - fixedSize OctetModeRLC-SizeInfoType1, - flexibleSize ENUMERATED { size7, size15 } - }, - inSequenceDelivery BOOLEAN, - receivingWindowSize ReceivingWindowSize, - dl-RLC-StatusInfo DL-RLC-StatusInfo -} - -DL-AM-RLC-Mode-r11 ::= SEQUENCE { - dl-RLC-PDU-size CHOICE { - fixedSize OctetModeRLC-SizeInfoType1, - flexibleSize ENUMERATED { size7, size15 } - }, - inSequenceDelivery BOOLEAN, - receivingWindowSize ReceivingWindowSize, - dl-RLC-StatusInfo DL-RLC-StatusInfo-r11 -} - -DL-CounterSynchronisationInfo ::= SEQUENCE { - rB-WithPDCP-InfoList RB-WithPDCP-InfoList OPTIONAL -} - -DL-CounterSynchronisationInfo-r5 ::= SEQUENCE { - rb-WithPDCP-InfoList RB-WithPDCP-InfoList OPTIONAL, - rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL -} - -DL-LogicalChannelMapping ::= SEQUENCE { - -- TABULAR: DL-TransportChannelType contains TransportChannelIdentity as well. - dl-TransportChannelType DL-TransportChannelType, - logicalChannelIdentity LogicalChannelIdentity OPTIONAL -} - -DL-LogicalChannelMapping-r5 ::= SEQUENCE { - -- TABULAR: DL-TransportChannelType contains TransportChannelIdentity as well. - dl-TransportChannelType DL-TransportChannelType-r5, - logicalChannelIdentity LogicalChannelIdentity OPTIONAL -} - -DL-LogicalChannelMapping-r7 ::= SEQUENCE { - -- TABULAR: DL-TransportChannelType contains TransportChannelIdentity as well. - dl-TransportChannelType DL-TransportChannelType-r7, - logicalChannelIdentity LogicalChannelIdentity OPTIONAL -} - -DL-LogicalChannelMappingList ::= SEQUENCE (SIZE (1..maxLoCHperRLC)) OF - DL-LogicalChannelMapping - -DL-LogicalChannelMappingList-r5 ::= SEQUENCE (SIZE (1..maxLoCHperRLC)) OF - DL-LogicalChannelMapping-r5 - -DL-LogicalChannelMappingList-r7 ::= SEQUENCE (SIZE (1..maxLoCHperRLC)) OF - DL-LogicalChannelMapping-r7 - -DL-Reception-Window-Size-r6 ::= ENUMERATED { size32, size48, size64, size80, size96, size112 } - -DL-RFC3095-r4 ::= SEQUENCE { - -- dummy is not used in this version of the specification and shall be ignored by the receiver. - dummy CID-InclusionInfo-r4, - max-CID INTEGER (1..16383) DEFAULT 15, - reverseDecompressionDepth INTEGER (0..65535) DEFAULT 0 -} - -DL-RLC-Mode ::= CHOICE { - dl-AM-RLC-Mode DL-AM-RLC-Mode, - dl-UM-RLC-Mode NULL, - dl-TM-RLC-Mode DL-TM-RLC-Mode -} - -DL-RLC-Mode-r5 ::= CHOICE { - dl-AM-RLC-Mode DL-AM-RLC-Mode-r5, - dl-UM-RLC-Mode DL-UM-RLC-Mode-r5, - dl-TM-RLC-Mode DL-TM-RLC-Mode -} - -DL-RLC-Mode-r6 ::= CHOICE { - dl-AM-RLC-Mode DL-AM-RLC-Mode-r5, - dl-UM-RLC-Mode DL-UM-RLC-Mode-r6, - dl-TM-RLC-Mode DL-TM-RLC-Mode -} - -DL-RLC-Mode-r7 ::= CHOICE { - dl-AM-RLC-Mode DL-AM-RLC-Mode-r7, - dl-UM-RLC-Mode DL-UM-RLC-Mode-r6, - dl-TM-RLC-Mode DL-TM-RLC-Mode -} - -DL-RLC-Mode-r11 ::= CHOICE { - dl-AM-RLC-Mode DL-AM-RLC-Mode-r11, - dl-UM-RLC-Mode DL-UM-RLC-Mode-r6, - dl-TM-RLC-Mode DL-TM-RLC-Mode -} - -DL-RLC-StatusInfo ::= SEQUENCE { - timerStatusProhibit TimerStatusProhibit OPTIONAL, - -- dummy is not used in this version of the specification, it should not be sent - -- and if received they should be ignored. - dummy TimerEPC OPTIONAL, - missingPDU-Indicator BOOLEAN, - timerStatusPeriodic TimerStatusPeriodic OPTIONAL -} - -DL-RLC-StatusInfo-r11 ::= SEQUENCE { - timerStatusProhibit TimerStatusProhibit OPTIONAL, - missingPDU-Indicator BOOLEAN, - timerStatusPeriodic TimerStatusPeriodic OPTIONAL, - timerReordering TimerReordering OPTIONAL -} - -DL-TM-RLC-Mode ::= SEQUENCE { - segmentationIndication BOOLEAN -} - -DL-TransportChannelType ::= CHOICE { - dch TransportChannelIdentity, - fach NULL, - -- The choice "dsch" should not be used in FDD mode, and if received - -- the UE behaviour is unspecified. - dsch TransportChannelIdentity, - -- The choice "dch-and-dsch" should not be used in FDD mode, and if received the UE - -- behaviour is unspecified - dch-and-dsch TransportChannelIdentityDCHandDSCH -} - -DL-TransportChannelType-r5 ::= CHOICE { - dch TransportChannelIdentity, - fach NULL, - -- The choice "dsch" should not be used in FDD mode, and if received - -- the UE behaviour is unspecified. - dsch TransportChannelIdentity, - -- The choice "dch-and-dsch" should not be used in FDD mode, and if received the UE - -- behaviour is unspecified - dch-and-dsch TransportChannelIdentityDCHandDSCH, - hsdsch MAC-d-FlowIdentity, - dch-and-hsdsch MAC-d-FlowIdentityDCHandHSDSCH -} - -DL-TransportChannelType-r7 ::= CHOICE { - dch TransportChannelIdentity, - fach NULL, - -- The choice "dsch" should not be used in FDD mode, and if received - -- the UE behaviour is unspecified. - dsch TransportChannelIdentity, - -- The choice "dch-and-dsch" should not be used in FDD mode, and if received the UE - -- behaviour is unspecified - dch-and-dsch TransportChannelIdentityDCHandDSCH, - hsdsch CHOICE { - mac-hs MAC-d-FlowIdentity, - mac-ehs MAC-ehs-QueueId - }, - dch-and-hsdsch CHOICE { - mac-hs MAC-d-FlowIdentityDCHandHSDSCH, - mac-ehs MAC-ehs-QueueIdDCHandHSDSCH - } -} - -DL-UM-RLC-LI-size ::= ENUMERATED { - size7, size15 } - -DL-UM-RLC-Mode-r5 ::= SEQUENCE { - dl-UM-RLC-LI-size DL-UM-RLC-LI-size -} - -DL-UM-RLC-Mode-r6 ::= SEQUENCE { - dl-UM-RLC-LI-size DL-UM-RLC-LI-size, - dl-Reception-Window-Size DL-Reception-Window-Size-r6 OPTIONAL -} - -ExpectReordering ::= ENUMERATED { - reorderingNotExpected, - reorderingExpected } - -ExplicitDiscard ::= SEQUENCE { - timerMRW TimerMRW, - timerDiscard TimerDiscard, - maxMRW MaxMRW -} - -HeaderCompressionInfo ::= SEQUENCE { - algorithmSpecificInfo AlgorithmSpecificInfo -} - -HeaderCompressionInfoList ::= SEQUENCE (SIZE (1..maxPDCPAlgoType)) OF - HeaderCompressionInfo - -HeaderCompressionInfo-r4 ::= SEQUENCE { - algorithmSpecificInfo AlgorithmSpecificInfo-r4 -} - -HeaderCompressionInfoList-r4 ::= SEQUENCE (SIZE (1..maxPDCPAlgoType)) OF - HeaderCompressionInfo-r4 - -LogicalChannelIdentity ::= INTEGER (1..15) - -LosslessSRNS-RelocSupport ::= CHOICE { - supported MaxPDCP-SN-WindowSize, - notSupported NULL -} - -MAC-d-HFN-initial-value ::= BIT STRING (SIZE (24)) - -MAC-LogicalChannelPriority ::= INTEGER (1..8) - --- Actual value MaxCS-Delay = (IE value * 10) + 20 -MaxCS-Delay ::= INTEGER (0..18) - -MaxDAT ::= ENUMERATED { - dat1, dat2, dat3, dat4, dat5, dat6, - dat7, dat8, dat9, dat10, dat15, dat20, - dat25, dat30, dat35, dat40 } - -MaxDAT-Retransmissions ::= SEQUENCE { - maxDAT MaxDAT, - timerMRW TimerMRW, - maxMRW MaxMRW -} - -MaxMRW ::= ENUMERATED { - mm1, mm4, mm6, mm8, mm12, mm16, - mm24, mm32 } - -MaxPDCP-SN-WindowSize ::= ENUMERATED { - sn255, sn65535 } - -MaxRST ::= ENUMERATED { - rst1, rst4, rst6, rst8, rst12, - rst16, rst24, rst32 } - -NoExplicitDiscard ::= ENUMERATED { - dt10, dt20, dt30, dt40, dt50, - dt60, dt70, dt80, dt90, dt100 } - -PDCP-Info ::= SEQUENCE { - losslessSRNS-RelocSupport LosslessSRNS-RelocSupport OPTIONAL, - -- TABULAR: pdcp-PDU-Header is MD in the tabular format and it can be encoded - -- in one bit, so the OPTIONAL is removed for compactness. - pdcp-PDU-Header PDCP-PDU-Header, - headerCompressionInfoList HeaderCompressionInfoList OPTIONAL -} - -PDCP-Info-r4 ::= SEQUENCE { - losslessSRNS-RelocSupport LosslessSRNS-RelocSupport OPTIONAL, - -- TABULAR: pdcp-PDU-Header is MD in the tabular format and it can be encoded - -- in one bit, so the OPTIONAL is removed for compactness. - pdcp-PDU-Header PDCP-PDU-Header, - headerCompressionInfoList HeaderCompressionInfoList-r4 OPTIONAL -} - -PDCP-InfoReconfig ::= SEQUENCE { - pdcp-Info PDCP-Info, - -- dummy is not used in this version of the specification and - -- it should be ignored. - dummy INTEGER (0..65535) -} - -PDCP-InfoReconfig-r4 ::= SEQUENCE { - pdcp-Info PDCP-Info-r4 -} - -PDCP-PDU-Header ::= ENUMERATED { - present, absent } - -PDCP-ROHC-TargetMode ::= ENUMERATED { o-Mode, r-Mode } - -PDCP-SN-Info ::= INTEGER (0..65535) - -Poll-PDU ::= ENUMERATED { - pdu1, pdu2, pdu4, pdu8, pdu16, - pdu32, pdu64, pdu128 } - -Poll-SDU ::= ENUMERATED { - sdu1, sdu4, sdu16, sdu64 } - -PollingInfo ::= SEQUENCE { - timerPollProhibit TimerPollProhibit OPTIONAL, - timerPoll TimerPoll OPTIONAL, - poll-PDU Poll-PDU OPTIONAL, - poll-SDU Poll-SDU OPTIONAL, - lastTransmissionPDU-Poll BOOLEAN, - lastRetransmissionPDU-Poll BOOLEAN, - pollWindow PollWindow OPTIONAL, - timerPollPeriodic TimerPollPeriodic OPTIONAL -} - -PollWindow ::= ENUMERATED { - pw50, pw60, pw70, pw80, pw85, - pw90, pw95, pw99 } - -PredefinedConfigIdentity ::= INTEGER (0..15) - -PredefinedConfigValueTag ::= INTEGER (0..15) - -PredefinedRB-Configuration ::= SEQUENCE { - re-EstablishmentTimer Re-EstablishmentTimer, - srb-InformationList SRB-InformationSetupList, - rb-InformationList RB-InformationSetupList -} - -PreDefRadioConfiguration ::= SEQUENCE { - -- Radio bearer IEs - predefinedRB-Configuration PredefinedRB-Configuration, - -- Transport channel IEs - preDefTransChConfiguration PreDefTransChConfiguration, - -- Physical channel IEs - preDefPhyChConfiguration PreDefPhyChConfiguration -} - -PreDefRadioConfiguration-v770ext ::= SEQUENCE { - -- Physical channel IEs - preDefPhyChConfiguration PreDefPhyChConfiguration-v770ext -} - -PreDefRadioConfiguration-v920ext ::= SEQUENCE { - -- Transport channel IEs - mac-ehsWindowSize MAC-hs-WindowSize-r9 -} - -PredefinedConfigStatusList ::= SEQUENCE (SIZE (maxPredefConfig)) OF - PredefinedConfigStatusInfo - -PredefinedConfigStatusInfo ::= CHOICE { - storedWithValueTagSameAsPrevius NULL, - other CHOICE { - notStored NULL, - storedWithDifferentValueTag PredefinedConfigValueTag - } -} - -PredefinedConfigStatusListComp ::= SEQUENCE { - setsWithDifferentValueTag PredefinedConfigSetsWithDifferentValueTag, - otherEntries PredefinedConfigStatusListVarSz OPTIONAL -} - -PredefinedConfigSetsWithDifferentValueTag ::= SEQUENCE (SIZE (1..2)) OF - PredefinedConfigSetWithDifferentValueTag - -PredefinedConfigSetWithDifferentValueTag ::= SEQUENCE { - startPosition INTEGER (0..10) DEFAULT 0, - -- numberOfEntries INTEGER (6..16), - -- numberOfEntries is covered by the size of the list in IE PredefinedConfigValueTagList - valueTagList PredefinedConfigValueTagList -} - - -PredefinedConfigValueTagList ::= SEQUENCE (SIZE (1..maxPredefConfig)) OF - PredefinedConfigValueTag - -PredefinedConfigStatusListVarSz ::= SEQUENCE (SIZE (1..maxPredefConfig)) OF - PredefinedConfigStatusInfo - -RAB-Info ::= SEQUENCE { - rab-Identity RAB-Identity, - cn-DomainIdentity CN-DomainIdentity, - nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL, - re-EstablishmentTimer Re-EstablishmentTimer -} - -RAB-Info-r6-ext ::= SEQUENCE { - mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL -} - -RAB-Info-v6b0ext ::= SEQUENCE { - mbms-ServiceIdentity OCTET STRING (SIZE (3)) -} - -RAB-Info-r6 ::= SEQUENCE { - rab-Identity RAB-Identity, - mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL, - cn-DomainIdentity CN-DomainIdentity, - nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL, - re-EstablishmentTimer Re-EstablishmentTimer -} - -RAB-Info-r7 ::= SEQUENCE { - rab-Identity RAB-Identity, - mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL, - mbms-ServiceIdentity OCTET STRING (SIZE (3)) OPTIONAL, - cn-DomainIdentity CN-DomainIdentity, - nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL, - re-EstablishmentTimer Re-EstablishmentTimer -} - -RAB-InfoReplace ::= SEQUENCE { - rab-Identity RAB-Identity, - cn-DomainIdentity CN-DomainIdentity -} - -RAB-InformationList ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-Info - -RAB-InformationList-r6 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-Info-r6 - -RAB-InformationReconfigList ::= SEQUENCE (SIZE (1.. maxRABsetup)) OF - RAB-InformationReconfig - -RAB-InformationReconfigList-r8 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationReconfig-r8 - -RAB-InformationReconfig ::= SEQUENCE { - rab-Identity RAB-Identity, - cn-DomainIdentity CN-DomainIdentity, - nas-Synchronisation-Indicator NAS-Synchronisation-Indicator -} - -RAB-InformationReconfig-r8 ::= SEQUENCE { - rab-Identity RAB-Identity, - cn-DomainIdentity CN-DomainIdentity, - nas-Synchronisation-Indicator NAS-Synchronisation-Indicator, - cs-HSPA-Information CS-HSPA-Information OPTIONAL -} - -RAB-Info-Post ::= SEQUENCE { - rab-Identity RAB-Identity, - cn-DomainIdentity CN-DomainIdentity, - nas-Synchronisation-Indicator NAS-Synchronisation-Indicator OPTIONAL -} - -RAB-InformationMBMSPtp ::= SEQUENCE { - rb-Identity RB-Identity, - mbms-ServiceIdentity OCTET STRING (SIZE (3)), - mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL -} - -RAB-InformationMBMSPtpList ::= SEQUENCE (SIZE (1..maxMBMSservSelect)) OF - RAB-InformationMBMSPtp - -RAB-InformationSetup ::= SEQUENCE { - rab-Info RAB-Info, - rb-InformationSetupList RB-InformationSetupList -} - -RAB-InformationSetup-r4 ::= SEQUENCE { - rab-Info RAB-Info, - rb-InformationSetupList RB-InformationSetupList-r4 -} - -RAB-InformationSetup-r5 ::= SEQUENCE { - rab-Info RAB-Info, - rb-InformationSetupList RB-InformationSetupList-r5 -} - -RAB-InformationSetup-r6-ext ::= SEQUENCE { - rab-Info-r6-ext RAB-Info-r6-ext -} - -RAB-InformationSetup-r6 ::= SEQUENCE { - rab-Info RAB-Info-r6, - rb-InformationSetupList RB-InformationSetupList-r6 -} - -RAB-InformationSetup-v6b0ext ::= SEQUENCE { - rab-Info-v6b0ext RAB-Info-v6b0ext OPTIONAL -} - -RAB-InformationSetup-r7 ::= SEQUENCE { - rab-Info RAB-Info-r7, - rb-InformationSetupList RB-InformationSetupList-r7 -} - -RAB-InformationSetup-r8 ::= SEQUENCE { - rab-Info RAB-Info-r7, - cs-HSPA-Information CS-HSPA-Information OPTIONAL, - rab-InfoReplace RAB-InfoReplace OPTIONAL, - rb-InformationSetupList RB-InformationSetupList-r8 -} - -RAB-InformationSetup-v820ext ::= SEQUENCE { - cs-HSPA-Information CS-HSPA-Information OPTIONAL -} - -RAB-InformationSetup-r11 ::= SEQUENCE { - rab-Info RAB-Info-r7, - cs-HSPA-Information CS-HSPA-Information OPTIONAL, - rab-InfoReplace RAB-InfoReplace OPTIONAL, - rb-InformationSetupList RB-InformationSetupList-r11 -} - -RAB-InformationSetupList ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup - -RAB-InformationSetupList-r4 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r4 - -RAB-InformationSetupList-r5 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r5 - -RAB-InformationSetupList-r6 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r6 - --- The IE 'RAB-InformationSetupList-r6-ext' provides elements of extension information, which --- are added to the corresponding elements of the IE 'RAB-InformationSetupList/-r4/-r5'. -RAB-InformationSetupList-r6-ext ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r6-ext - -RAB-InformationSetupList-v6b0ext ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-v6b0ext - -RAB-InformationSetupList-r7 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r7 - -RAB-InformationSetupList-r8 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r8 - -RAB-InformationSetupList-v820ext ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-v820ext - -RAB-InformationSetupList-r11 ::= SEQUENCE (SIZE (1..maxRABsetup)) OF - RAB-InformationSetup-r11 - -RB-ActivationTimeInfo ::= SEQUENCE { - rb-Identity RB-Identity, - rlc-SequenceNumber RLC-SequenceNumber -} - -RB-ActivationTimeInfoList ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-ActivationTimeInfo - -RB-COUNT-C-Information ::= SEQUENCE { - rb-Identity RB-Identity, - count-C-UL COUNT-C, - count-C-DL COUNT-C -} - -RB-COUNT-C-InformationList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF - RB-COUNT-C-Information - -RB-COUNT-C-MSB-Information ::= SEQUENCE { - rb-Identity RB-Identity, - count-C-MSB-UL COUNT-C-MSB, - count-C-MSB-DL COUNT-C-MSB -} - -RB-COUNT-C-MSB-InformationList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF - RB-COUNT-C-MSB-Information - -RB-Identity ::= INTEGER (1..32) - -RB-IdentityList ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-Identity - -RB-InformationAffected ::= SEQUENCE { - rb-Identity RB-Identity, - rb-MappingInfo RB-MappingInfo -} - -RB-InformationAffected-r5 ::= SEQUENCE { - rb-Identity RB-Identity, - rb-MappingInfo RB-MappingInfo-r5 -} - -RB-InformationAffected-r6 ::= SEQUENCE { - rb-Identity RB-Identity, - rb-MappingInfo RB-MappingInfo-r6 -} - -RB-InformationAffected-r7 ::= SEQUENCE { - rb-Identity RB-Identity, - rb-MappingInfo RB-MappingInfo-r7 -} - -RB-InformationAffected-r8 ::= SEQUENCE { - rb-Identity RB-Identity, - rb-MappingInfo RB-MappingInfo-r8 -} - -RB-InformationAffectedList ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationAffected - -RB-InformationAffectedList-r5 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationAffected-r5 - -RB-InformationAffectedList-r6 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationAffected-r6 - -RB-InformationAffectedList-r7 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationAffected-r7 - -RB-InformationAffectedList-r8 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationAffected-r8 - -RB-InformationChanged-r6 ::= SEQUENCE { - rb-Identity RB-Identity, - rb-Change CHOICE { - release NULL, - re-mapToDefaultRb RB-Identity - } -} - -RB-InformationChangedList-r6 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationChanged-r6 - -RB-InformationReconfig ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info OPTIONAL, - rb-MappingInfo RB-MappingInfo OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfig-r4 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info OPTIONAL, - rb-MappingInfo RB-MappingInfo OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfig-r5 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info-r5 OPTIONAL, - rb-MappingInfo RB-MappingInfo-r5 OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfig-r6 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info-r6 OPTIONAL, - rb-MappingInfo RB-MappingInfo-r6 OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfig-r7 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info-r7 OPTIONAL, - rb-MappingInfo RB-MappingInfo-r7 OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfig-r8 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info-r7 OPTIONAL, - rb-MappingInfo RB-MappingInfo-r8 OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfig-r11 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-InfoReconfig-r4 OPTIONAL, - pdcp-SN-Info PDCP-SN-Info OPTIONAL, - rlc-Info RLC-Info-r11 OPTIONAL, - rb-MappingInfo RB-MappingInfo-r8 OPTIONAL, - rb-StopContinue RB-StopContinue OPTIONAL -} - -RB-InformationReconfigList ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig - -RB-InformationReconfigList-r4 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig-r4 - -RB-InformationReconfigList-r5 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig-r5 - -RB-InformationReconfigList-r6 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig-r6 - -RB-InformationReconfigList-r7 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig-r7 - -RB-InformationReconfigList-r8 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig-r8 - -RB-InformationReconfigList-r11 ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-InformationReconfig-r11 - -RB-InformationReleaseList ::= SEQUENCE (SIZE (1..maxRB)) OF - RB-Identity - -RB-InformationSetup ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info OPTIONAL, - rlc-InfoChoice RLC-InfoChoice, - rb-MappingInfo RB-MappingInfo -} - -RB-InformationSetup-r4 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info-r4 OPTIONAL, - rlc-InfoChoice RLC-InfoChoice, - rb-MappingInfo RB-MappingInfo -} - -RB-InformationSetup-r5 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info-r4 OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r5, - rb-MappingInfo RB-MappingInfo-r5 -} - -RB-InformationSetup-r6 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info-r4 OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r6, - rb-MappingInfo RB-MappingInfo-r6 -} - -RB-InformationSetup-r7 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info-r4 OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r7, - rb-MappingInfo RB-MappingInfo-r7 -} - -RB-InformationSetup-r8 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info-r4 OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r7, - rb-MappingInfo RB-MappingInfo-r8 -} - -RB-InformationSetup-r11 ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-Info PDCP-Info-r4 OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r11, - rb-MappingInfo RB-MappingInfo-r8 -} - -RB-InformationSetupList ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup - -RB-InformationSetupList-r4 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup-r4 - -RB-InformationSetupList-r5 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup-r5 - -RB-InformationSetupList-r6 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup-r6 - -RB-InformationSetupList-r7 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup-r7 - -RB-InformationSetupList-r8 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup-r8 - -RB-InformationSetupList-r11 ::= SEQUENCE (SIZE (1..maxRBperRAB)) OF - RB-InformationSetup-r11 - -RB-MappingInfo ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF - RB-MappingOption - -RB-MappingInfo-r5 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF - RB-MappingOption-r5 - -RB-MappingInfo-r6 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF - RB-MappingOption-r6 - -RB-MappingInfo-r7 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF - RB-MappingOption-r7 - -RB-MappingInfo-r8 ::= SEQUENCE (SIZE (1..maxRBMuxOptions)) OF - RB-MappingOption-r8 - -RB-MappingOption ::= SEQUENCE { - ul-LogicalChannelMappings UL-LogicalChannelMappings OPTIONAL, - dl-LogicalChannelMappingList DL-LogicalChannelMappingList OPTIONAL -} - -RB-MappingOption-r5 ::= SEQUENCE { - ul-LogicalChannelMappings UL-LogicalChannelMappings OPTIONAL, - dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r5 OPTIONAL -} - -RB-MappingOption-r6 ::= SEQUENCE { - ul-LogicalChannelMappings UL-LogicalChannelMappings-r6 OPTIONAL, - dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r5 OPTIONAL -} - -RB-MappingOption-r7 ::= SEQUENCE { - ul-LogicalChannelMappings UL-LogicalChannelMappings-r6 OPTIONAL, - dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r7 OPTIONAL -} - -RB-MappingOption-r8 ::= SEQUENCE { - ul-LogicalChannelMappings UL-LogicalChannelMappings-r8 OPTIONAL, - dl-LogicalChannelMappingList DL-LogicalChannelMappingList-r7 OPTIONAL -} - -RB-PDCPContextRelocation ::= SEQUENCE { - rb-Identity RB-Identity, - dl-RFC3095-Context-Relocation BOOLEAN, - ul-RFC3095-Context-Relocation BOOLEAN -} - -RB-PDCPContextRelocationList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF - RB-PDCPContextRelocation - -RB-StopContinue ::= ENUMERATED { - stopRB, continueRB } - -RB-WithPDCP-Info ::= SEQUENCE { - rb-Identity RB-Identity, - pdcp-SN-Info PDCP-SN-Info -} - -RB-WithPDCP-InfoList ::= SEQUENCE (SIZE (1..maxRBallRABs)) OF - RB-WithPDCP-Info - -ReceivingWindowSize ::= ENUMERATED { - rw1, rw8, rw16, rw32, rw64, rw128, rw256, - rw512, rw768, rw1024, rw1536, rw2047, - rw2560, rw3072, rw3584, rw4095 } - -RFC2507-Info ::= SEQUENCE { - f-MAX-PERIOD INTEGER (1..65535) DEFAULT 256, - f-MAX-TIME INTEGER (1..255) DEFAULT 5, - max-HEADER INTEGER (60..65535) DEFAULT 168, - tcp-SPACE INTEGER (3..255) DEFAULT 15, - non-TCP-SPACE INTEGER (3..65535) DEFAULT 15, - -- TABULAR: expectReordering has only two possible values, so using Optional or Default - -- would be wasteful - expectReordering ExpectReordering -} - -RFC3095-Info-r4 ::= SEQUENCE { - rohcProfileList ROHC-ProfileList-r4, - ul-RFC3095 UL-RFC3095-r4 OPTIONAL, - dl-RFC3095 DL-RFC3095-r4 OPTIONAL -} - -RLC-Info ::= SEQUENCE { - ul-RLC-Mode UL-RLC-Mode OPTIONAL, - dl-RLC-Mode DL-RLC-Mode OPTIONAL -} - -RLC-Info-r5 ::= SEQUENCE { - ul-RLC-Mode UL-RLC-Mode OPTIONAL, - dl-RLC-Mode DL-RLC-Mode-r5 OPTIONAL, - rlc-OneSidedReEst BOOLEAN -} - -RLC-Info-r6 ::= SEQUENCE { - ul-RLC-Mode UL-RLC-Mode OPTIONAL, - dl-RLC-Mode DL-RLC-Mode-r6 OPTIONAL, - rlc-OneSidedReEst BOOLEAN, - altE-bitInterpretation ENUMERATED { true } OPTIONAL -} - -RLC-Info-r7 ::= SEQUENCE { - ul-RLC-Mode UL-RLC-Mode OPTIONAL, - dl-RLC-Mode DL-RLC-Mode-r7 OPTIONAL, - rlc-OneSidedReEst BOOLEAN, - altE-bitInterpretation ENUMERATED { true } OPTIONAL, - useSpecialValueOfHEField ENUMERATED { true } OPTIONAL -} - -RLC-Info-r11 ::= SEQUENCE { - ul-RLC-Mode UL-RLC-Mode OPTIONAL, - dl-RLC-Mode DL-RLC-Mode-r11 OPTIONAL, - rlc-OneSidedReEst BOOLEAN, - altE-bitInterpretation ENUMERATED { true } OPTIONAL, - useSpecialValueOfHEField ENUMERATED { true } OPTIONAL -} - -RLC-Info-MCCH-r6 ::= SEQUENCE { - dl-UM-RLC-LI-size DL-UM-RLC-LI-size, - dl-UM-RLC-OutOSeqDelivery-Info UM-RLC-OutOSeqDelivery-Info-r6 OPTIONAL -} - -RLC-Info-MSCH-r6 ::= SEQUENCE { - dl-UM-RLC-LI-size DL-UM-RLC-LI-size -} - -RLC-Info-MTCH-r6 ::= SEQUENCE { - dl-UM-RLC-LI-size DL-UM-RLC-LI-size, - dl-UM-RLC-DuplAvoid-Reord-Info UM-RLC-DuplAvoid-Reord-Info-r6 OPTIONAL -} - -RLC-InfoChoice ::= CHOICE { - rlc-Info RLC-Info, - same-as-RB RB-Identity -} - -RLC-InfoChoice-r5 ::= CHOICE { - rlc-Info RLC-Info-r5, - same-as-RB RB-Identity -} - -RLC-InfoChoice-r6 ::= CHOICE { - rlc-Info RLC-Info-r6, - same-as-RB RB-Identity -} - -RLC-InfoChoice-r7 ::= CHOICE { - rlc-Info RLC-Info-r7, - same-as-RB RB-Identity -} - -RLC-InfoChoice-r11 ::= CHOICE { - rlc-Info RLC-Info-r11, - same-as-RB RB-Identity -} - -RLC-PDU-Size ::= OctetModeRLC-SizeInfoType1 - -RLC-PDU-SizeConstraint ::= SEQUENCE { - lengthIndicatorSize ENUMERATED { size7, size15 } OPTIONAL, - -- the actual values are (IE value * 8) + 16 - minRLC-PDU-Size INTEGER (0..1503), - largestRLC-PDU-Size INTEGER (0..1503) -} - -RLC-PDU-SizeList ::= SEQUENCE (SIZE (1..maxRLCPDUsizePerLogChan)) OF - RLC-PDU-Size - -RLC-SequenceNumber ::= INTEGER (0..4095) - -RLC-SizeInfo ::= SEQUENCE { - rlc-SizeIndex INTEGER (1..maxTF) -} - -RLC-SizeExplicitList ::= SEQUENCE (SIZE (1..maxTF)) OF - RLC-SizeInfo - -ROHC-Profile-r4 ::= INTEGER (1..3) - -ROHC-ProfileList-r4 ::= SEQUENCE (SIZE (1..maxROHC-Profile-r4)) OF - ROHC-Profile-r4 - -ROHC-PacketSize-r4 ::= INTEGER (2..1500) - -ROHC-PacketSizeList-r4 ::= SEQUENCE (SIZE (1..maxROHC-PacketSizes-r4)) OF - ROHC-PacketSize-r4 - -SRB-InformationSetup ::= SEQUENCE { - -- The default value for rb-Identity is the smallest value not used yet. - rb-Identity RB-Identity OPTIONAL, - rlc-InfoChoice RLC-InfoChoice, - rb-MappingInfo RB-MappingInfo -} - -SRB-InformationSetup-r5 ::= SEQUENCE { - -- The default value for rb-Identity is the smallest value not used yet. - rb-Identity RB-Identity OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r5, - rb-MappingInfo RB-MappingInfo-r5 -} - -SRB-InformationSetup-r6 ::= SEQUENCE { - -- The default value for rb-Identity is the smallest value not used yet. - rb-Identity RB-Identity OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r6, - rb-MappingInfo RB-MappingInfo-r6 -} - -SRB-InformationSetup-r7 ::= SEQUENCE { - -- The default value for rb-Identity is the smallest value not used yet. - rb-Identity RB-Identity OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r7, - rb-MappingInfo RB-MappingInfo-r7 -} - -SRB-InformationSetup-r8 ::= SEQUENCE { - -- The default value for rb-Identity is the smallest value not used yet. - rb-Identity RB-Identity OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r7, - rb-MappingInfo RB-MappingInfo-r8 -} - -SRB-InformationSetup-r11 ::= SEQUENCE { - -- The default value for rb-Identity is the smallest value not used yet. - rb-Identity RB-Identity OPTIONAL, - rlc-InfoChoice RLC-InfoChoice-r11, - rb-MappingInfo RB-MappingInfo-r8 -} - -SRB-InformationSetupList ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF - SRB-InformationSetup - -SRB-InformationSetupList-r5 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF - SRB-InformationSetup-r5 - -SRB-InformationSetupList-r6 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF - SRB-InformationSetup-r6 - -SRB-InformationSetupList-r7 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF - SRB-InformationSetup-r7 - -SRB-InformationSetupList-r8 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF - SRB-InformationSetup-r8 - -SRB-InformationSetupList-r11 ::= SEQUENCE (SIZE (1..maxSRBsetup)) OF - SRB-InformationSetup-r11 - -SRB-InformationSetupList2 ::= SEQUENCE (SIZE (3..4)) OF - SRB-InformationSetup - -SRB-InformationSetupList2-r6 ::= SEQUENCE (SIZE (3..4)) OF - SRB-InformationSetup-r6 - -SRB-InformationSetupList2-r7 ::= SEQUENCE (SIZE (3..4)) OF - SRB-InformationSetup-r7 - -SRB-InformationSetupList2-r8 ::= SEQUENCE (SIZE (3..4)) OF - SRB-InformationSetup-r8 - -TimerDAR-r6 ::= ENUMERATED { - ms40, ms80, ms120, ms160, ms240, ms320, ms480, ms640, - ms960, ms1280, ms1920, ms2560, ms3840, ms5120 } - -TimerDiscard ::= ENUMERATED { - td0-1, td0-25, td0-5, td0-75, - td1, td1-25, td1-5, td1-75, - td2, td2-5, td3, td3-5, td4, - td4-5, td5, td7-5 } - -TimerEPC ::= ENUMERATED { - te50, te60, te70, te80, te90, - te100, te120, te140, te160, te180, - te200, te300, te400, te500, te700, - te900 } - -TimerMRW ::= ENUMERATED { - te50, te60, te70, te80, te90, te100, - te120, te140, te160, te180, te200, - te300, te400, te500, te700, te900 } - -TimerOSD-r6 ::= ENUMERATED { - ms40, ms80, ms120, ms160, ms240, ms320, ms480, ms640, - ms960, ms1280, ms1920, ms2560, ms3840, ms5120 } - -TimerPoll ::= ENUMERATED { - tp10, tp20, tp30, tp40, tp50, - tp60, tp70, tp80, tp90, tp100, - tp110, tp120, tp130, tp140, tp150, - tp160, tp170, tp180, tp190, tp200, - tp210, tp220, tp230, tp240, tp250, - tp260, tp270, tp280, tp290, tp300, - tp310, tp320, tp330, tp340, tp350, - tp360, tp370, tp380, tp390, tp400, - tp410, tp420, tp430, tp440, tp450, - tp460, tp470, tp480, tp490, tp500, - tp510, tp520, tp530, tp540, tp550, - tp600, tp650, tp700, tp750, tp800, - tp850, tp900, tp950, tp1000 } - -TimerPollPeriodic ::= ENUMERATED { - tper100, tper200, tper300, tper400, - tper500, tper750, tper1000, tper2000 } - -TimerPollProhibit ::= ENUMERATED { - tpp10, tpp20, tpp30, tpp40, tpp50, - tpp60, tpp70, tpp80, tpp90, tpp100, - tpp110, tpp120, tpp130, tpp140, tpp150, - tpp160, tpp170, tpp180, tpp190, tpp200, - tpp210, tpp220, tpp230, tpp240, tpp250, - tpp260, tpp270, tpp280, tpp290, tpp300, - tpp310, tpp320, tpp330, tpp340, tpp350, - tpp360, tpp370, tpp380, tpp390, tpp400, - tpp410, tpp420, tpp430, tpp440, tpp450, - tpp460, tpp470, tpp480, tpp490, tpp500, - tpp510, tpp520, tpp530, tpp540, tpp550, - tpp600, tpp650, tpp700, tpp750, tpp800, - tpp850, tpp900, tpp950, tpp1000 } - -TimerReordering ::= ENUMERATED { - tr50, tr100, tr150, tr200, tr400, tr600, tr800, tr1000 } - -TimerRST ::= ENUMERATED { - tr50, tr100, tr150, tr200, tr250, tr300, - tr350, tr400, tr450, tr500, tr550, - tr600, tr700, tr800, tr900, tr1000 } - -TimerStatusPeriodic ::= ENUMERATED { - tsp100, tsp200, tsp300, tsp400, tsp500, - tsp750, tsp1000, tsp2000 } - -TimerStatusProhibit ::= ENUMERATED { - tsp10,tsp20,tsp30,tsp40,tsp50, - tsp60,tsp70,tsp80,tsp90,tsp100, - tsp110,tsp120,tsp130,tsp140,tsp150, - tsp160,tsp170,tsp180,tsp190,tsp200, - tsp210,tsp220,tsp230,tsp240,tsp250, - tsp260,tsp270,tsp280,tsp290,tsp300, - tsp310,tsp320,tsp330,tsp340,tsp350, - tsp360,tsp370,tsp380,tsp390,tsp400, - tsp410,tsp420,tsp430,tsp440,tsp450, - tsp460,tsp470,tsp480,tsp490,tsp500, - tsp510,tsp520,tsp530,tsp540,tsp550, - tsp600,tsp650,tsp700,tsp750,tsp800, - tsp850,tsp900,tsp950,tsp1000 } - -TransmissionRLC-Discard ::= CHOICE { - timerBasedExplicit ExplicitDiscard, - timerBasedNoExplicit NoExplicitDiscard, - maxDAT-Retransmissions MaxDAT-Retransmissions, - noDiscard MaxDAT -} - -TransmissionWindowSize ::= ENUMERATED { - tw1, tw8, tw16, tw32, tw64, tw128, tw256, - tw512, tw768, tw1024, tw1536, tw2047, - tw2560, tw3072, tw3584, tw4095 } - --- Actual bit rate per each value is defined in [62] and [63] -UL-AMR-Rate ::= ENUMERATED { - t0, t1, t2, t3, t4, t5, t6, t7, t8, spare7, spare6, spare5, - spare4, spare3, spare2, spare1 } - -UL-AM-RLC-Mode ::= SEQUENCE { - transmissionRLC-Discard TransmissionRLC-Discard, - transmissionWindowSize TransmissionWindowSize, - timerRST TimerRST, - max-RST MaxRST, - pollingInfo PollingInfo OPTIONAL -} - -UL-CounterSynchronisationInfo ::= SEQUENCE { - rB-WithPDCP-InfoList RB-WithPDCP-InfoList OPTIONAL, - startList STARTList -} - -UL-LogicalChannelMapping ::= SEQUENCE { - -- TABULAR: UL-TransportChannelType contains TransportChannelIdentity as well. - ul-TransportChannelType UL-TransportChannelType, - logicalChannelIdentity LogicalChannelIdentity OPTIONAL, - rlc-SizeList CHOICE { - allSizes NULL, - configured NULL, - explicitList RLC-SizeExplicitList - }, - mac-LogicalChannelPriority MAC-LogicalChannelPriority -} - -UL-LogicalChannelMapping-r6 ::= SEQUENCE { - ul-TrCH-Type CHOICE { - dch-rach-usch SEQUENCE { - -- TABULAR: UL-TransportChannelType contains TransportChannelIdentity as well. - ul-TransportChannelType UL-TransportChannelType, - logicalChannelIdentity LogicalChannelIdentity OPTIONAL, - rlc-SizeList CHOICE { - allSizes NULL, - configured NULL, - explicitList RLC-SizeExplicitList - } - }, - e-dch SEQUENCE { - logicalChannelIdentity LogicalChannelIdentity, - e-DCH-MAC-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - ddi DDI, - rlc-PDU-SizeList RLC-PDU-SizeList, - includeInSchedulingInfo BOOLEAN - } - }, - mac-LogicalChannelPriority MAC-LogicalChannelPriority -} - -UL-LogicalChannelMapping-r8 ::= SEQUENCE { - ul-TrCH-Type CHOICE { - dch-rach-usch SEQUENCE { - -- TABULAR: UL-TransportChannelType contains TransportChannelIdentity as well. - ul-TransportChannelType UL-TransportChannelType, - logicalChannelIdentity LogicalChannelIdentity OPTIONAL, - rlc-SizeList CHOICE { - allSizes NULL, - configured NULL, - explicitList RLC-SizeExplicitList - } - }, - e-dch SEQUENCE { - logicalChannelIdentity LogicalChannelIdentity, - e-DCH-MAC-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - rlc-PDU-Size CHOICE { - fixedSize SEQUENCE { - ddi DDI, - rlc-PDU-SizeList RLC-PDU-SizeList - }, - flexibleSize RLC-PDU-SizeConstraint - }, - includeInSchedulingInfo BOOLEAN - } - }, - mac-LogicalChannelPriority MAC-LogicalChannelPriority -} - -UL-LogicalChannelMappingList ::= SEQUENCE { - -- rlc-LogicalChannelMappingIndicator shall be set to TRUE in this version - -- of the specification - rlc-LogicalChannelMappingIndicator BOOLEAN, - ul-LogicalChannelMapping SEQUENCE (SIZE (maxLoCHperRLC)) OF - UL-LogicalChannelMapping -} - -UL-LogicalChannelMappingList-r6 ::= SEQUENCE { - -- rlc-LogicalChannelMappingIndicator shall be set to TRUE in this version - -- of the specification - rlc-LogicalChannelMappingIndicator BOOLEAN, - ul-LogicalChannelMapping SEQUENCE (SIZE (maxLoCHperRLC)) OF - UL-LogicalChannelMapping-r6 -} - -UL-LogicalChannelMappingList-r8 ::= SEQUENCE { - -- rlc-LogicalChannelMappingIndicator shall be set to TRUE in this version - -- of the specification - rlc-LogicalChannelMappingIndicator BOOLEAN, - ul-LogicalChannelMapping SEQUENCE (SIZE (maxLoCHperRLC)) OF - UL-LogicalChannelMapping-r8 -} - -UL-LogicalChannelMappings ::= CHOICE { - oneLogicalChannel UL-LogicalChannelMapping, - twoLogicalChannels UL-LogicalChannelMappingList -} - -UL-LogicalChannelMappings-r6 ::= CHOICE { - oneLogicalChannel UL-LogicalChannelMapping-r6, - twoLogicalChannels UL-LogicalChannelMappingList-r6 -} - -UL-LogicalChannelMappings-r8 ::= CHOICE { - oneLogicalChannel UL-LogicalChannelMapping-r8, - twoLogicalChannels UL-LogicalChannelMappingList-r8 -} - -UL-RFC3095-r4 ::= SEQUENCE { - -- dummy1 is not used in this version of the specification and shall be ignored by the receiver. - dummy1 CID-InclusionInfo-r4, - max-CID INTEGER (1..16383) DEFAULT 15, - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy ROHC-PacketSizeList-r4 -} - -UL-RLC-Mode ::= CHOICE { - ul-AM-RLC-Mode UL-AM-RLC-Mode, - ul-UM-RLC-Mode UL-UM-RLC-Mode, - ul-TM-RLC-Mode UL-TM-RLC-Mode, - spare NULL -} - -UL-TM-RLC-Mode ::= SEQUENCE { - transmissionRLC-Discard TransmissionRLC-Discard OPTIONAL, - segmentationIndication BOOLEAN -} - -UL-UM-RLC-Mode ::= SEQUENCE { - transmissionRLC-Discard TransmissionRLC-Discard OPTIONAL -} - -UL-TransportChannelType ::= CHOICE { - dch TransportChannelIdentity, - rach NULL, - -- dummy is not used in this version of the specification and - -- if received the UE behaviour is not specified. - dummy NULL, - usch TransportChannelIdentity -} - -UM-RLC-DuplAvoid-Reord-Info-r6 ::= SEQUENCE { - timer-DAR TimerDAR-r6, - widowSize-DAR WindowSizeDAR-r6 -} - -UM-RLC-OutOSeqDelivery-Info-r6 ::= SEQUENCE { - timer-OSD TimerOSD-r6 OPTIONAL, - windowSize-OSD WindowSizeOSD-r6 -} - -WindowSizeDAR-r6 ::= ENUMERATED { - ws4, ws8, ws16, ws32, ws40, ws48, - ws56, ws64 } - -WindowSizeOSD-r6 ::= ENUMERATED { - ws8, ws16, ws32, ws40, ws48, - ws56, ws64 } - --- *************************************************** --- --- TRANSPORT CHANNEL INFORMATION ELEMENTS (10.3.5) --- --- *************************************************** - -AddOrReconfMAC-dFlow ::= SEQUENCE { - mac-hs-AddReconfQueue-List MAC-hs-AddReconfQueue-List OPTIONAL, - mac-hs-DelQueue-List MAC-hs-DelQueue-List OPTIONAL -} - -AddOrReconfMAC-ehs-ReordQ ::= SEQUENCE { - mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy MAC-ehs-DelReordQ-List OPTIONAL -} - -AddOrReconfMAC-ehs-ReordQ-r9 ::= SEQUENCE { - mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List-r9 OPTIONAL -} - -AddOrReconfMAC-ehs-ReordQ-TDD128-v9c0ext ::= SEQUENCE { - mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List-TDD128-v9c0ext OPTIONAL -} - -AddOrReconfMAC-ehs-ReordQ-r11 ::= SEQUENCE { - mac-ehs-AddReconfQueue-List MAC-ehs-AddReconfReordQ-List-r11 OPTIONAL -} - -AllowedTFC-List ::= SEQUENCE (SIZE (1..maxTFC)) OF - TFC-Value - -AllowedTFI-List ::= SEQUENCE (SIZE (1..maxTF)) OF - INTEGER (0..31) - -BitModeRLC-SizeInfo ::= CHOICE { - sizeType1 INTEGER (0..127), - -- Actual value sizeType2 = (part1 * 8) + 128 + part2 - sizeType2 SEQUENCE { - part1 INTEGER (0..15), - part2 INTEGER (1..7) OPTIONAL - }, - -- Actual value sizeType3 = (part1 * 16) + 256 + part2 - sizeType3 SEQUENCE { - part1 INTEGER (0..47), - part2 INTEGER (1..15) OPTIONAL - }, - -- Actual value sizeType4 = (part1 * 64) + 1024 + part2 - sizeType4 SEQUENCE { - part1 INTEGER (0..62), - part2 INTEGER (1..63) OPTIONAL - } -} - --- Actual value BLER-QualityValue = IE value * 0.1 -BLER-QualityValue ::= INTEGER (-63..0) - -ChannelCodingType ::= CHOICE { - -- noCoding is only used for TDD in this version of the specification, - -- otherwise it should be ignored - noCoding NULL, - convolutional CodingRate, - turbo NULL -} - -CodingRate ::= ENUMERATED { - half, - third } - -Common-E-DCH-MAC-d-Flow ::= SEQUENCE { - mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset, - mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans, - mac-d-FlowMultiplexingList E-DCH-MAC-d-FlowMultiplexingList OPTIONAL, - e-dch-mac-d-flow-retransmission-timer E-DCH-MAC-d-FlowRetransTimer OPTIONAL -} - -Common-E-DCH-MAC-d-FlowList ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF - Common-E-DCH-MAC-d-Flow - -Common-E-DCH-MAC-d-Flow-Info-ConcurrentTTI ::= SEQUENCE { - mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset OPTIONAL, - mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans OPTIONAL -} - -Common-E-DCH-MAC-d-Flow-Info-List-ConcurrentTTI ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF - Common-E-DCH-MAC-d-Flow-Info-ConcurrentTTI - -CommonDynamicTF-Info ::= SEQUENCE { - rlc-Size CHOICE { - fdd SEQUENCE { - octetModeRLC-SizeInfoType2 OctetModeRLC-SizeInfoType2 - }, - tdd SEQUENCE { - commonTDD-Choice CHOICE { - bitModeRLC-SizeInfo BitModeRLC-SizeInfo, - octetModeRLC-SizeInfoType1 OctetModeRLC-SizeInfoType1 - } - } - }, - numberOfTbSizeList SEQUENCE (SIZE (1..maxTF)) OF - NumberOfTransportBlocks, - logicalChannelList LogicalChannelList -} - -CommonDynamicTF-Info-DynamicTTI ::= SEQUENCE { - commonTDD-Choice CHOICE { - bitModeRLC-SizeInfo BitModeRLC-SizeInfo, - octetModeRLC-SizeInfoType1 OctetModeRLC-SizeInfoType1 - }, - numberOfTbSizeAndTTIList NumberOfTbSizeAndTTIList, - logicalChannelList LogicalChannelList -} - -CommonDynamicTF-InfoList ::= SEQUENCE (SIZE (1..maxTF)) OF - CommonDynamicTF-Info - -CommonDynamicTF-InfoList-DynamicTTI ::= SEQUENCE (SIZE (1..maxTF)) OF - CommonDynamicTF-Info-DynamicTTI - -CommonTransChTFS ::= SEQUENCE { - tti CHOICE { - tti10 CommonDynamicTF-InfoList, - tti20 CommonDynamicTF-InfoList, - tti40 CommonDynamicTF-InfoList, - tti80 CommonDynamicTF-InfoList, - dynamic CommonDynamicTF-InfoList-DynamicTTI - }, - semistaticTF-Information SemistaticTF-Information -} - -CommonTransChTFS-LCR ::= SEQUENCE { - tti CHOICE { - tti5 CommonDynamicTF-InfoList, - tti10 CommonDynamicTF-InfoList, - tti20 CommonDynamicTF-InfoList, - tti40 CommonDynamicTF-InfoList, - tti80 CommonDynamicTF-InfoList, - dynamic CommonDynamicTF-InfoList-DynamicTTI - }, - semistaticTF-Information SemistaticTF-Information -} - -Common-MAC-ehs-ReorderingQueue ::= SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, - t1-ReleaseTimer T1-ReleaseTimer, - reorderingResetTimer Treset-ResetTimer OPTIONAL, - mac-ehsWindowSize MAC-hs-WindowSize -} - -Common-MAC-ehs-ReorderingQueueList ::= SEQUENCE (SIZE (1.. maxCommonQueueID)) OF - Common-MAC-ehs-ReorderingQueue - -Concurrent-Deployment-2ms-10ms-TTI ::= SEQUENCE { - tti-selection CHOICE { - fixed SEQUENCE { - fixed-TTI-Selection ENUMERATED { tti2, tti10 } - }, - threshold-based SEQUENCE { - common-E-DCH-TTI-Selection-Thresh INTEGER (0..15) - } - }, - concurrent-TTI-Partition-Index INTEGER (0..maxEDCHs-1), - commonEDCHSystemInfoParamConcurrentTTI CommonEDCHSystemInfoParamConcurrentTTI OPTIONAL -} - -CPCH-SetID ::= INTEGER (1..maxCPCHsets) - -CRC-Size ::= ENUMERATED { - crc0, crc8, crc12, crc16, crc24 } - -DedicatedDynamicTF-Info ::= SEQUENCE { - rlc-Size CHOICE { - bitMode BitModeRLC-SizeInfo, - octetModeType1 OctetModeRLC-SizeInfoType1 - }, - numberOfTbSizeList SEQUENCE (SIZE (1..maxTF)) OF - NumberOfTransportBlocks, - logicalChannelList LogicalChannelList -} - -DedicatedDynamicTF-Info-DynamicTTI ::= SEQUENCE { - rlc-Size CHOICE { - bitMode BitModeRLC-SizeInfo, - octetModeType1 OctetModeRLC-SizeInfoType1 - }, - numberOfTbSizeAndTTIList NumberOfTbSizeAndTTIList, - logicalChannelList LogicalChannelList -} - -DedicatedDynamicTF-InfoList ::= SEQUENCE (SIZE (1..maxTF)) OF - DedicatedDynamicTF-Info - -DedicatedDynamicTF-InfoList-DynamicTTI ::= SEQUENCE (SIZE (1..maxTF)) OF - DedicatedDynamicTF-Info-DynamicTTI - -DedicatedTransChTFS ::= SEQUENCE { - tti CHOICE { - tti10 DedicatedDynamicTF-InfoList, - tti20 DedicatedDynamicTF-InfoList, - tti40 DedicatedDynamicTF-InfoList, - tti80 DedicatedDynamicTF-InfoList, - dynamic DedicatedDynamicTF-InfoList-DynamicTTI - }, - semistaticTF-Information SemistaticTF-Information -} - --- The maximum allowed size of DL-AddReconfTransChInfo2List sequence is 16 -DL-AddReconfTransChInfo2List ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation2 - --- The maximum allowed size of DL-AddReconfTransChInfoList sequence is 16 -DL-AddReconfTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation - --- The maximum allowed size of DL-AddReconfTransChInfoList-r4 sequence is 16 -DL-AddReconfTransChInfoList-r4 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation-r4 - --- The maximum allowed size of DL-AddReconfTransChInfoList-r5 sequence is 16 -DL-AddReconfTransChInfoList-r5 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation-r5 - --- The maximum allowed size of DL-AddReconfTransChInfoList-r7 sequence is 16 -DL-AddReconfTransChInfoList-r7 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation-r7 - -DL-AddReconfTransChInfoList-r9 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation-r9 - -DL-AddReconfTransChInfoList-TDD128-v9c0ext ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation-TDD128-v9c0ext - -DL-AddReconfTransChInfoList-r11 ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - DL-AddReconfTransChInformation-r11 - --- ASN.1 for IE "Added or Reconfigured DL TrCH information" --- in case of messages other than: Radio Bearer Release message and --- Radio Bearer Reconfiguration message -DL-AddReconfTransChInformation ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-Type, - dl-transportChannelIdentity TransportChannelIdentity, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity - }, - dch-QualityTarget QualityTarget OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy TM-SignallingInfo OPTIONAL -} - -DL-AddReconfTransChInformation-r4 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-Type, - dl-transportChannelIdentity TransportChannelIdentity, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity - }, - dch-QualityTarget QualityTarget OPTIONAL -} - -DL-AddReconfTransChInformation-r5 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-TypeId1-r5, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity, - hsdsch HSDSCH-Info - }, - dch-QualityTarget QualityTarget OPTIONAL -} - -DL-AddReconfTransChInformation-r7 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-TypeId1-r5, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity, - hsdsch HSDSCH-Info-r7 - }, - dch-QualityTarget QualityTarget OPTIONAL -} - -DL-AddReconfTransChInformation-r9 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-TypeId1-r5, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity, - hsdsch HSDSCH-Info-r9 - }, - dch-QualityTarget QualityTarget OPTIONAL -} - -DL-AddReconfTransChInformation-TDD128-v9c0ext ::= SEQUENCE { - hsdsch HSDSCH-Info-TDD128-v9c0ext OPTIONAL -} - -DL-AddReconfTransChInformation-r11 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-TypeId1-r5, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity, - hsdsch HSDSCH-Info-r11 - }, - dch-QualityTarget QualityTarget OPTIONAL -} - --- ASN.1 for IE "Added or Reconfigured DL TrCH information" --- in case of Radio Bearer Release message and --- Radio Bearer Reconfiguration message -DL-AddReconfTransChInformation2 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-Type, - transportChannelIdentity TransportChannelIdentity, - tfs-SignallingMode CHOICE { - explicit-config TransportFormatSet, - sameAsULTrCH UL-TransportChannelIdentity - }, - qualityTarget QualityTarget OPTIONAL -} - -DL-CommonTransChInfo ::= SEQUENCE { - sccpch-TFCS TFCS OPTIONAL, - -- modeSpecificInfo should be optional. A new version of this IE should be defined - -- to be used in later versions of messages using this IE - modeSpecificInfo CHOICE { - fdd SEQUENCE { - dl-Parameters CHOICE { - dl-DCH-TFCS TFCS, - sameAsUL NULL - } OPTIONAL - }, - tdd SEQUENCE { - individualDL-CCTrCH-InfoList IndividualDL-CCTrCH-InfoList - OPTIONAL - } - } -} - -DL-CommonTransChInfo-r4 ::= SEQUENCE { - sccpch-TFCS TFCS OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - dl-Parameters CHOICE { - dl-DCH-TFCS SEQUENCE { - tfcs TFCS OPTIONAL - }, - sameAsUL NULL - } OPTIONAL - }, - tdd SEQUENCE { - individualDL-CCTrCH-InfoList IndividualDL-CCTrCH-InfoList - OPTIONAL - } - } OPTIONAL -} - -DL-DeletedTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - DL-TransportChannelIdentity - -DL-DeletedTransChInfoList-r5 ::= SEQUENCE (SIZE (1..maxTrCH)) OF - DL-TransportChannelIdentity-r5 - -DL-DeletedTransChInfoList-r7 ::= SEQUENCE (SIZE (1..maxTrCH)) OF - DL-TransportChannelIdentity-r7 - -DL-TransportChannelIdentity ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-Type, - dl-TransportChannelIdentity TransportChannelIdentity -} - -DL-TransportChannelIdentity-r5 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-TypeId2-r5 -} - -DL-TransportChannelIdentity-r7 ::= SEQUENCE { - dl-TransportChannelType DL-TrCH-TypeId2-r7 -} - --- The choice "dsch" should not be used in FDD mode, and if received the UE behaviour is unspecified -DL-TrCH-Type ::= ENUMERATED {dch, dsch} - -DL-TrCH-TypeId1-r5 ::= CHOICE { - dch TransportChannelIdentity, - -- The choice "dsch" should not be used in FDD mode, and if received - -- the UE behaviour is unspecified. - dsch TransportChannelIdentity, - hsdsch NULL -} - -DL-TrCH-TypeId2-r5 ::= CHOICE { - dch TransportChannelIdentity, - -- The choice "dsch" should not be used in FDD mode, and if received - -- the UE behaviour is unspecified. - dsch TransportChannelIdentity, - hsdsch MAC-d-FlowIdentity -} - -DL-TrCH-TypeId2-r7 ::= CHOICE { - dch TransportChannelIdentity, - -- The choice "dsch" should not be used in FDD mode, and if received - -- the UE behaviour is unspecified. - dsch TransportChannelIdentity, - hsdsch CHOICE { - mac-hs MAC-d-FlowIdentity, - mac-ehs MAC-ehs-QueueId - } -} - -DRAC-ClassIdentity ::= INTEGER (1..maxDRACclasses) - -DRAC-StaticInformation ::= SEQUENCE { - transmissionTimeValidity TransmissionTimeValidity, - timeDurationBeforeRetry TimeDurationBeforeRetry, - drac-ClassIdentity DRAC-ClassIdentity -} - -DRAC-StaticInformationList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - DRAC-StaticInformation - -E-DCH-AddReconf-MAC-d-Flow ::= SEQUENCE { - mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset OPTIONAL, - mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans OPTIONAL, - mac-d-FlowMultiplexingList E-DCH-MAC-d-FlowMultiplexingList OPTIONAL, - transmissionGrantType CHOICE { - non-ScheduledTransGrantInfo SEQUENCE { - maxMAC-e-PDUContents INTEGER (1..19982), - ms2-NonSchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL - }, - scheduledTransmissionGrantInfo NULL - } OPTIONAL -} - -E-DCH-AddReconf-MAC-d-Flow-r7 ::= SEQUENCE { - mac-d-FlowIdentity E-DCH-MAC-d-FlowIdentity, - mac-d-FlowPowerOffset E-DCH-MAC-d-FlowPowerOffset OPTIONAL, - mac-d-FlowMaxRetrans E-DCH-MAC-d-FlowMaxRetrans OPTIONAL, - mac-d-FlowRetransTimer E-DCH-MAC-d-FlowRetransTimer OPTIONAL, - mac-d-FlowMultiplexingList E-DCH-MAC-d-FlowMultiplexingList OPTIONAL, - transmissionGrantType CHOICE { - non-ScheduledTransGrantInfo SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - maxMAC-e-PDUContents INTEGER (1..19982), - ms2-NonSchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL - }, - tdd NULL - } - }, - scheduledTransmissionGrantInfo NULL - } OPTIONAL -} - -E-DCH-AddReconf-MAC-d-FlowList ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF - E-DCH-AddReconf-MAC-d-Flow - -E-DCH-AddReconf-MAC-d-FlowList-r7 ::= SEQUENCE (SIZE (1..maxE-DCHMACdFlow)) OF - E-DCH-AddReconf-MAC-d-Flow-r7 - -E-DCH-MAC-d-FlowIdentity ::= INTEGER (0..maxE-DCHMACdFlow-1) - -E-DCH-MAC-d-FlowMaxRetrans ::= INTEGER (0..15) - -E-DCH-MAC-d-FlowMultiplexingList ::= BIT STRING (SIZE (maxE-DCHMACdFlow)) - -E-DCH-MAC-d-FlowPowerOffset ::= INTEGER (0..6) - -E-DCH-MAC-d-FlowRetransTimer ::= ENUMERATED { - ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, - ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, - ms100, ms110, ms120, ms140, ms160, ms200, ms240, ms280, - ms320, ms400, ms480, ms560 } - -E-DCH-TTI ::= ENUMERATED { tti2, tti10 } - -ExplicitTFCS-Configuration ::= CHOICE { - complete TFCS-ReconfAdd, - addition TFCS-ReconfAdd, - removal TFCS-RemovalList, - replacement SEQUENCE { - tfcsRemoval TFCS-RemovalList, - tfcsAdd TFCS-ReconfAdd - } -} - -GainFactor ::= INTEGER (0..15) - -GainFactorInformation ::= CHOICE { - signalledGainFactors SignalledGainFactors, - computedGainFactors ReferenceTFC-ID -} - -HSDSCH-Info ::= SEQUENCE { - harqInfo HARQ-Info OPTIONAL, - addOrReconfMAC-dFlow AddOrReconfMAC-dFlow OPTIONAL -} - -HSDSCH-Info-r7 ::= SEQUENCE { - harqInfo HARQ-Info-r7 OPTIONAL, - dl-MAC-HeaderType CHOICE { - mac-hs AddOrReconfMAC-dFlow, - mac-ehs AddOrReconfMAC-ehs-ReordQ - } OPTIONAL -} - -HSDSCH-Info-r9 ::= SEQUENCE { - harqInfo HARQ-Info-r7 OPTIONAL, - dl-MAC-HeaderType CHOICE { - mac-hs AddOrReconfMAC-dFlow, - mac-ehs AddOrReconfMAC-ehs-ReordQ-r9 - } OPTIONAL -} - -HSDSCH-Info-TDD128-v9c0ext ::= SEQUENCE { - mac-ehs AddOrReconfMAC-ehs-ReordQ-TDD128-v9c0ext OPTIONAL -} - -HSDSCH-Info-r11 ::= SEQUENCE { - harqInfo HARQ-Info-r11 OPTIONAL, - dl-MAC-HeaderType CHOICE { - mac-hs AddOrReconfMAC-dFlow, - mac-ehs AddOrReconfMAC-ehs-ReordQ-r11 - } OPTIONAL -} - -HARQ-Info ::= SEQUENCE { - numberOfProcesses INTEGER (1..8), - memoryPartitioning CHOICE { - implicit NULL, - explicit SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize - } -} - -HARQ-Info-r7 ::= SEQUENCE { - numberOfProcesses ENUMERATED { n1, n2, n3, n4, n5, n6, n7, n8, - n12, n14, n16 }, - memoryPartitioning CHOICE { - implicit NULL, - explicit SEQUENCE { - memorySize SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize, - additionalMemorySizesForMIMO SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize OPTIONAL - } - } -} - -HARQ-Info-r11 ::= SEQUENCE { - numberOfProcesses ENUMERATED { n1, n2, n3, n4, n5, n6, n7, n8, - n12, n14, n16, n24, n28, n32 }, - memoryPartitioning CHOICE { - implicit NULL, - explicit SEQUENCE { - memorySize SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize, - additionalMemorySizesForMIMO SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize OPTIONAL, - additionalMemorySizesThirdMIMOStream SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize OPTIONAL, - additionalMemorySizesFourthMIMOStream SEQUENCE (SIZE (1..maxHProcesses)) OF - HARQMemorySize OPTIONAL - } - } -} - -HARQMemorySize ::= ENUMERATED { - hms800, hms1600, hms2400, hms3200, hms4000, - hms4800, hms5600, hms6400, hms7200, hms8000, - hms8800, hms9600, hms10400, hms11200, hms12000, - hms12800, hms13600, hms14400, hms15200, hms16000, - hms17600, hms19200, hms20800, hms22400, hms24000, - hms25600, hms27200, hms28800, hms30400, hms32000, - hms36000, hms40000, hms44000, hms48000, hms52000, - hms56000, hms60000, hms64000, hms68000, hms72000, - hms76000, hms80000, hms88000, hms96000, hms104000, - hms112000, hms120000, hms128000, hms136000, hms144000, - hms152000, hms160000, hms176000, hms192000, hms208000, - hms224000, hms240000, hms256000, hms272000, hms288000, - hms304000 } - -IndividualDL-CCTrCH-Info ::= SEQUENCE { - dl-TFCS-Identity TFCS-Identity, - tfcs-SignallingMode CHOICE { - explicit-config TFCS, - sameAsUL TFCS-Identity - } -} - -IndividualDL-CCTrCH-InfoList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - IndividualDL-CCTrCH-Info - -IndividualUL-CCTrCH-Info ::= SEQUENCE { - ul-TFCS-Identity TFCS-Identity, - ul-TFCS TFCS , - tfc-Subset TFC-Subset -} - -IndividualUL-CCTrCH-InfoList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - IndividualUL-CCTrCH-Info - -LogicalChannelByRB ::= SEQUENCE { - rb-Identity RB-Identity, - logChOfRb INTEGER (0..1) OPTIONAL -} - -LogicalChannelList ::= CHOICE { - allSizes NULL, - configured NULL, - explicitList SEQUENCE (SIZE (1..15)) OF - LogicalChannelByRB -} - -MAC-d-FlowIdentityDCHandHSDSCH ::= SEQUENCE { - dch-transport-ch-id TransportChannelIdentity, - hsdsch-mac-d-flow-id MAC-d-FlowIdentity -} - -MAC-d-FlowIdentity ::= INTEGER (0..7) - -MAC-d-PDU-SizeInfo-List ::= SEQUENCE (SIZE(1.. maxMAC-d-PDUsizes)) OF - MAC-d-PDUsizeInfo - ---MAC-d-Pdu sizes need to be defined -MAC-d-PDUsizeInfo ::= SEQUENCE{ - mac-d-PDU-Size INTEGER (1..5000), - mac-d-PDU-Index INTEGER(0..7) -} - -MAC-hs-AddReconfQueue-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-hs-AddReconfQueue - -MAC-hs-AddReconfQueue ::= SEQUENCE { - mac-hsQueueId INTEGER(0..7), - mac-dFlowId MAC-d-FlowIdentity, - reorderingReleaseTimer T1-ReleaseTimer, - mac-hsWindowSize MAC-hs-WindowSize, - mac-d-PDU-SizeInfo-List MAC-d-PDU-SizeInfo-List OPTIONAL -} - -MAC-hs-DelQueue-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-hs-DelQueue - -MAC-hs-DelQueue ::= SEQUENCE { - mac-hsQueueId INTEGER(0..7) -} - -MAC-ehs-AddReconfReordQ-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-ehs-AddReconfReordQ - -MAC-ehs-AddReconfReordQ-List-r9 ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-ehs-AddReconfReordQ-r9 - -MAC-ehs-AddReconfReordQ-List-TDD128-v9c0ext ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-ehs-AddReconfReordQ-TDD128-v9c0ext - -MAC-ehs-AddReconfReordQ-List-r11 ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-ehs-AddReconfReordQ-r11 - -MAC-ehs-AddReconfReordQ ::= SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, - reorderingReleaseTimer T1-ReleaseTimer, - reorderingResetTimer Treset-ResetTimer OPTIONAL, - mac-ehsWindowSize MAC-hs-WindowSize -} - -MAC-ehs-AddReconfReordQ-r9 ::= SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, - reorderingReleaseTimer T1-ReleaseTimer, - reorderingResetTimer Treset-ResetTimer OPTIONAL, - mac-ehsWindowSize MAC-hs-WindowSize-r9 -} - -MAC-ehs-AddReconfReordQ-TDD128-v9c0ext ::= SEQUENCE { - mac-ehsWindowSize-extension MAC-ehs-WindowSize-TDD128-v9c0ext OPTIONAL -} - -MAC-ehs-AddReconfReordQ-r11 ::= SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId, - reorderingReleaseTimer T1-ReleaseTimer, - reorderingResetTimer Treset-ResetTimer OPTIONAL, - mac-ehsWindowSize MAC-hs-WindowSize-r11, - -- For 1.28Mcps TDD only - mac-ehsWindowSize-extension MAC-ehs-WindowSize-TDD128-v9c0ext OPTIONAL -} - -MAC-ehs-DelReordQ-List ::= SEQUENCE (SIZE(1..maxQueueIDs)) OF - MAC-ehs-DelReordQ - -MAC-ehs-DelReordQ ::= SEQUENCE { - mac-ehs-QueueId MAC-ehs-QueueId -} - -MAC-ehs-QueueIdDCHandHSDSCH ::= SEQUENCE { - dch-transport-ch-id TransportChannelIdentity, - hsdsch-mac-ehs-QueueId MAC-ehs-QueueId -} - -MAC-ehs-QueueId ::= INTEGER (0..7) - -MAC-hs-WindowSize ::= ENUMERATED { - mws4, mws6, mws8, mws12, mws16, mws24, mws32 } - -MAC-hs-WindowSize-r9 ::= ENUMERATED { - mws4, mws6, mws8, mws12, mws16, mws24, mws32, - mw64, mw128 } - -MAC-ehs-WindowSize-TDD128-v9c0ext ::= ENUMERATED { - mws96, mws160, mws192, mws256 } - -MAC-hs-WindowSize-r11 ::= ENUMERATED { - mws4, mws6, mws8, mws12, mws16, mws24, mws32, - mws64, mws128, mws256, spare6, spare5, spare4, - spare3, spare2, spare1 } - -NumberOfTbSizeAndTTIList ::= SEQUENCE (SIZE (1..maxTF)) OF SEQUENCE { - numberOfTransportBlocks NumberOfTransportBlocks, - transmissionTimeInterval TransmissionTimeInterval -} - -MessType ::= ENUMERATED { - transportFormatCombinationControl } - -Non-allowedTFC-List ::= SEQUENCE (SIZE (1..maxTFC)) OF - TFC-Value - -NumberOfTransportBlocks ::= CHOICE { - zero NULL, - one NULL, - small INTEGER (2..17), - large INTEGER (18..512) -} - -OctetModeRLC-SizeInfoType1 ::= CHOICE { - -- Actual size = (8 * sizeType1) + 16 - sizeType1 INTEGER (0..31), - sizeType2 SEQUENCE { - -- Actual size = (32 * part1) + 272 + (part2 * 8) - part1 INTEGER (0..23), - part2 INTEGER (1..3) OPTIONAL - }, - sizeType3 SEQUENCE { - -- Actual size = (64 * part1) + 1040 + (part2 * 8) - part1 INTEGER (0..61), - part2 INTEGER (1..7) OPTIONAL - } -} - -OctetModeRLC-SizeInfoType2 ::= CHOICE { - -- Actual size = (sizeType1 * 8) + 48 - sizeType1 INTEGER (0..31), - -- Actual size = (sizeType2 * 16) + 312 - sizeType2 INTEGER (0..63), - -- Actual size = (sizeType3 *64) + 1384 - sizeType3 INTEGER (0..56) -} - -PowerOffsetInfoShort ::= SEQUENCE { - referenceTFC TFC-Value, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - gainFactorBetaC GainFactor - }, - tdd NULL - }, - gainFactorBetaD GainFactor -} - -PowerOffsetInformation ::= SEQUENCE { - gainFactorInformation GainFactorInformation, - -- PowerOffsetPp-m is always absent in TDD - powerOffsetPp-m PowerOffsetPp-m OPTIONAL -} - -PowerOffsetPp-m ::= INTEGER (-5..10) - -PreDefTransChConfiguration ::= SEQUENCE { - ul-CommonTransChInfo UL-CommonTransChInfo, - ul-AddReconfTrChInfoList UL-AddReconfTransChInfoList, - dl-CommonTransChInfo DL-CommonTransChInfo, - dl-TrChInfoList DL-AddReconfTransChInfoList -} - -QualityTarget ::= SEQUENCE { - bler-QualityValue BLER-QualityValue -} - -RateMatchingAttribute ::= INTEGER (1..hiRM) - - -ReferenceTFC-ID ::= INTEGER (0..3) - -RestrictedTrChInfo ::= SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - restrictedTrChIdentity TransportChannelIdentity, - allowedTFI-List AllowedTFI-List OPTIONAL -} - -RestrictedTrChInfoList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - RestrictedTrChInfo - -SemistaticTF-Information ::= SEQUENCE { - -- TABULAR: Transmission time interval has been included in the IE CommonTransChTFS. - channelCodingType ChannelCodingType, - rateMatchingAttribute RateMatchingAttribute, - crc-Size CRC-Size -} - -SignalledGainFactors ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - gainFactorBetaC GainFactor - }, - tdd NULL - }, - gainFactorBetaD GainFactor, - referenceTFC-ID ReferenceTFC-ID OPTIONAL -} - -SplitTFCI-Signalling ::= SEQUENCE { - splitType SplitType OPTIONAL, - tfci-Field2-Length INTEGER (1..10) OPTIONAL, - tfci-Field1-Information ExplicitTFCS-Configuration OPTIONAL, - tfci-Field2-Information TFCI-Field2-Information OPTIONAL -} - -SplitType ::= ENUMERATED { - hardSplit, logicalSplit } - -T1-ReleaseTimer ::= ENUMERATED { - rt10, rt20, rt30, rt40, rt50, - rt60, rt70, rt80, rt90, rt100, - rt120, rt140, rt160, rt200, rt300, - rt400 } - -TFC-Subset ::= CHOICE { - minimumAllowedTFC-Number TFC-Value, - allowedTFC-List AllowedTFC-List, - non-allowedTFC-List Non-allowedTFC-List, - restrictedTrChInfoList RestrictedTrChInfoList, - fullTFCS NULL -} - -TFC-SubsetList ::= SEQUENCE (SIZE (1.. maxTFCsub)) OF SEQUENCE { - modeSpecificInfo CHOICE { - fdd NULL, - tdd SEQUENCE { - tfcs-ID TFCS-Identity OPTIONAL - } - }, - tfc-Subset TFC-Subset -} - -TFC-Value ::= INTEGER (0..1023) - -TFCI-Field2-Information ::= CHOICE { - tfci-Range TFCI-RangeList, - explicit-config ExplicitTFCS-Configuration -} - -TFCI-Range ::= SEQUENCE { - maxTFCIField2Value INTEGER (1..1023), - tfcs-InfoForDSCH TFCS-InfoForDSCH -} - -TFCI-RangeList ::= SEQUENCE (SIZE (1..maxPDSCH-TFCIgroups)) OF - TFCI-Range - -TFCS ::= CHOICE { - normalTFCI-Signalling ExplicitTFCS-Configuration, - -- dummy is not used in this version of specification, it should - -- not be sent and if received the UE behaviour is not specified. - dummy SplitTFCI-Signalling -} - -TFCS-Identity ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - sharedChannelIndicator BOOLEAN -} - -TFCS-IdentityPlain ::= INTEGER (1..8) - -TFCS-InfoForDSCH ::= CHOICE { - ctfc2bit INTEGER (0..3), - ctfc4bit INTEGER (0..15), - ctfc6bit INTEGER (0..63), - ctfc8bit INTEGER (0..255), - ctfc12bit INTEGER (0..4095), - ctfc16bit INTEGER (0..65535), - ctfc24bit INTEGER (0..16777215) -} - -TFCS-ReconfAdd ::= SEQUENCE{ - ctfcSize CHOICE{ - ctfc2Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { - ctfc2 INTEGER (0..3), - powerOffsetInformation PowerOffsetInformation OPTIONAL - }, - ctfc4Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { - ctfc4 INTEGER (0..15), - powerOffsetInformation PowerOffsetInformation OPTIONAL - }, - ctfc6Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { - ctfc6 INTEGER (0..63), - powerOffsetInformation PowerOffsetInformation OPTIONAL - }, - ctfc8Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { - ctfc8 INTEGER (0..255), - powerOffsetInformation PowerOffsetInformation OPTIONAL - }, - ctfc12Bit SEQUENCE (SIZE(1..maxTFC)) OF SEQUENCE { - ctfc12 INTEGER (0..4095), - powerOffsetInformation PowerOffsetInformation OPTIONAL - }, - ctfc16Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { - ctfc16 INTEGER(0..65535), - powerOffsetInformation PowerOffsetInformation OPTIONAL - }, - ctfc24Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { - ctfc24 INTEGER(0..16777215), - powerOffsetInformation PowerOffsetInformation OPTIONAL - } - } -} - -TFCS-Removal ::= SEQUENCE { - tfci INTEGER (0..1023) -} - -TFCS-RemovalList ::= SEQUENCE (SIZE (1..maxTFC)) OF - TFCS-Removal - -TimeDurationBeforeRetry ::= INTEGER (1..256) - -TM-SignallingInfo ::= SEQUENCE { - messType MessType, - tm-SignallingMode CHOICE { - mode1 NULL, - mode2 SEQUENCE { - -- in ul-controlledTrChList, TrCH-Type is always DCH - ul-controlledTrChList UL-ControlledTrChList - } - } -} - -TransmissionTimeInterval ::= ENUMERATED { - tti10, tti20, tti40, tti80 } - -TransmissionTimeValidity ::= INTEGER (1..256) - -TransportChannelIdentity ::= INTEGER (1..32) - -TransportChannelIdentityDCHandDSCH ::= SEQUENCE { - dch-transport-ch-id TransportChannelIdentity, - dsch-transport-ch-id TransportChannelIdentity -} - - -TransportFormatSet ::= CHOICE { - dedicatedTransChTFS DedicatedTransChTFS, - commonTransChTFS CommonTransChTFS -} - -TransportFormatSet-LCR ::= CHOICE { - dedicatedTransChTFS DedicatedTransChTFS, - commonTransChTFS-LCR CommonTransChTFS-LCR -} - -Treset-ResetTimer ::= ENUMERATED { - rt1, rt2, rt3, rt4 } - --- The maximum allowed size of UL-AddReconfTransChInfoList sequence is 16 -UL-AddReconfTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCHpreconf)) OF - UL-AddReconfTransChInformation - --- The maximum allowed size of UL-AddReconfTransChInfoList-r6 sequence is 32 -UL-AddReconfTransChInfoList-r6 ::= SEQUENCE (SIZE (1..maxTrCH)) OF - UL-AddReconfTransChInformation-r6 - --- The maximum allowed size of UL-AddReconfTransChInfoList-r7 sequence is 32 -UL-AddReconfTransChInfoList-r7 ::= SEQUENCE (SIZE (1..maxTrCH)) OF - UL-AddReconfTransChInformation-r7 - --- The maximum allowed size of UL-AddReconfTransChInfoList-r8 sequence is 32 -UL-AddReconfTransChInfoList-r8 ::= SEQUENCE (SIZE (1..maxTrCH)) OF - UL-AddReconfTransChInformation-r8 - -UL-AddReconfTransChInformation ::= SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - transportChannelIdentity TransportChannelIdentity, - transportFormatSet TransportFormatSet -} - -UL-AddReconfTransChInformation-r6 ::= CHOICE { - dch-usch SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - transportChannelIdentity TransportChannelIdentity, - transportFormatSet TransportFormatSet - }, - e-dch SEQUENCE { - tti E-DCH-TTI, - harq-Info ENUMERATED { rv0, rvtable }, - addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList OPTIONAL - } -} - -UL-AddReconfTransChInformation-r7 ::= CHOICE { - dch-usch SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - transportChannelIdentity TransportChannelIdentity, - transportFormatSet TransportFormatSet - }, - e-dch SEQUENCE { - modeSpecific CHOICE { - fdd SEQUENCE { - tti E-DCH-TTI - }, - tdd NULL - }, - harq-Info ENUMERATED { rv0, rvtable }, - addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList-r7 OPTIONAL - } -} - -UL-AddReconfTransChInformation-r8 ::= CHOICE { - dch-usch SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - transportChannelIdentity TransportChannelIdentity, - transportFormatSet TransportFormatSet - }, - e-dch SEQUENCE { - ul-MAC-HeaderType ENUMERATED { mac-iis } OPTIONAL, - modeSpecific CHOICE { - fdd SEQUENCE { - tti E-DCH-TTI - }, - tdd NULL - }, - harq-Info ENUMERATED { rv0, rvtable }, - addReconf-MAC-d-FlowList E-DCH-AddReconf-MAC-d-FlowList-r7 OPTIONAL - } -} - -UL-CommonTransChInfo ::= SEQUENCE { - -- TABULAR: tfc-subset is applicable to FDD only, TDD specifies tfc-subset in individual - -- CCTrCH Info. - tfc-Subset TFC-Subset OPTIONAL, - prach-TFCS TFCS OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-TFCS TFCS - }, - tdd SEQUENCE { - - individualUL-CCTrCH-InfoList IndividualUL-CCTrCH-InfoList - OPTIONAL - } - } OPTIONAL -} - -UL-CommonTransChInfo-r4 ::= SEQUENCE { - -- TABULAR: tfc-subset is applicable to FDD only, TDD specifies tfc-subset in individual - -- CCTrCH Info. - tfc-Subset TFC-Subset OPTIONAL, - prach-TFCS TFCS OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-TFCS TFCS - }, - tdd SEQUENCE { - individualUL-CCTrCH-InfoList IndividualUL-CCTrCH-InfoList OPTIONAL - } - } OPTIONAL, - tfc-SubsetList TFC-SubsetList OPTIONAL -} - --- In UL-ControlledTrChList, TrCH-Type is always DCH -UL-ControlledTrChList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - TransportChannelIdentity - -UL-DeletedTransChInfoList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - UL-TransportChannelIdentity - -UL-DeletedTransChInfoList-r6 ::= SEQUENCE (SIZE (1..maxTrCH)) OF - UL-TransportChannelIdentity-r6 - -UL-TransportChannelIdentity ::= SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - ul-TransportChannelIdentity TransportChannelIdentity -} - -UL-TransportChannelIdentity-r6 ::= CHOICE { - dch-usch SEQUENCE { - ul-TransportChannelType UL-TrCH-Type, - ul-TransportChannelIdentity TransportChannelIdentity - }, - e-dch E-DCH-MAC-d-FlowIdentity -} - -UL-TrCH-Type ::= ENUMERATED {dch, usch} - -USCH-TransportChannelsInfo ::= SEQUENCE (SIZE (1..maxTrCH)) OF - SEQUENCE { - usch-TransportChannelIdentity TransportChannelIdentity, - usch-TFS TransportFormatSet -} - --- *************************************************** --- --- PHYSICAL CHANNEL INFORMATION ELEMENTS (10.3.6) --- --- *************************************************** - -ACK-NACK-repetitionFactor ::= INTEGER(1..4) - -AC-To-ASC-Mapping ::= INTEGER (0..7) - -AC-To-ASC-MappingTable ::= SEQUENCE (SIZE (maxASCmap)) OF - AC-To-ASC-Mapping - -AccessServiceClass-FDD ::= SEQUENCE { - availableSignatureStartIndex INTEGER (0..15), - availableSignatureEndIndex INTEGER (0..15), - - assignedSubChannelNumber BIT STRING { - b3(0), - b2(1), - b1(2), - b0(3) - } (SIZE(4)) -} - -AccessServiceClass-TDD ::= SEQUENCE { - channelisationCodeIndices BIT STRING { - chCodeIndex7(0), - chCodeIndex6(1), - chCodeIndex5(2), - chCodeIndex4(3), - chCodeIndex3(4), - chCodeIndex2(5), - chCodeIndex1(6), - chCodeIndex0(7) - } (SIZE(8)) OPTIONAL, - subchannelSize CHOICE { - size1 NULL, - size2 SEQUENCE { - -- subch0 means bitstring '01' in the tabular, subch1 means bitsring '10' - subchannels ENUMERATED { subch0, subch1 } OPTIONAL - }, - size4 SEQUENCE { - subchannels BIT STRING { - subCh3(0), - subCh2(1), - subCh1(2), - subCh0(3) - } (SIZE(4)) OPTIONAL - }, - size8 SEQUENCE { - subchannels BIT STRING { - subCh7(0), - subCh6(1), - subCh5(2), - subCh4(3), - subCh3(4), - subCh2(5), - subCh1(6), - subCh0(7) - } (SIZE(8)) OPTIONAL - } - } -} - -AccessServiceClass-TDD-r7 ::= SEQUENCE { - channelisationCodeIndices BIT STRING { - chCodeIndex15(0), - chCodeIndex14(1), - chCodeIndex13(2), - chCodeIndex12(3), - chCodeIndex11(4), - chCodeIndex10(5), - chCodeIndex9(6), - chCodeIndex8(7), - chCodeIndex7(8), - chCodeIndex6(9), - chCodeIndex5(10), - chCodeIndex4(11), - chCodeIndex3(12), - chCodeIndex2(13), - chCodeIndex1(14), - chCodeIndex0(15) - } (SIZE(16)) OPTIONAL, - subchannelSize CHOICE { - size1 NULL, - size2 SEQUENCE { - -- subch0 means bitstring '01' in the tabular, subch1 means bitsring '10' - subchannels ENUMERATED { subch0, subch1 } OPTIONAL - }, - size4 SEQUENCE { - subchannels BIT STRING { - subCh3(0), - subCh2(1), - subCh1(2), - subCh0(3) - } (SIZE(4)) OPTIONAL - }, - size8 SEQUENCE { - subchannels BIT STRING { - subCh7(0), - subCh6(1), - subCh5(2), - subCh4(3), - subCh3(4), - subCh2(5), - subCh1(6), - subCh0(7) - } (SIZE(8)) OPTIONAL - }, - size16 SEQUENCE { - subchannels BIT STRING { - subCh15(0), - subCh14(1), - subCh13(2), - subCh12(3), - subCh11(4), - subCh10(5), - subCh9(6), - subCh8(7), - subCh7(8), - subCh6(9), - subCh5(10), - subCh4(11), - subCh3(12), - subCh2(13), - subCh1(14), - subCh0(15) - } (SIZE(16)) OPTIONAL - } - } -} - -AccessServiceClass-TDD-LCR-r4 ::= SEQUENCE { - availableSYNC-UlCodesIndics BIT STRING { - sulCodeIndex7(0), - sulCodeIndex6(1), - sulCodeIndex5(2), - sulCodeIndex4(3), - sulCodeIndex3(4), - sulCodeIndex2(5), - sulCodeIndex1(6), - sulCodeIndex0(7) - } (SIZE(8)) OPTIONAL, - subchannelSize CHOICE { - size1 NULL, - size2 SEQUENCE { - -- subch0 means bitstring '01' in the tabular, subch1 means bitsring '10'. - subchannels ENUMERATED { subch0, subch1 } OPTIONAL - }, - size4 SEQUENCE { - subchannels BIT STRING { - subCh3(0), - subCh2(1), - subCh1(2), - subCh0(3) - } (SIZE(4)) OPTIONAL - }, - size8 SEQUENCE { - subchannels BIT STRING { - subCh7(0), - subCh6(1), - subCh5(2), - subCh4(3), - subCh3(4), - subCh2(5), - subCh1(6), - subCh0(7) - } (SIZE(8)) OPTIONAL - } - } - -} - -ActivationTimeOffset ::= INTEGER (0 .. 255) - -AdditionalPRACH-TF-and-TFCS-CCCH-IEs ::= SEQUENCE { - powerOffsetInformation PowerOffsetInformation, - dynamicTFInformationCCCH DynamicTFInformationCCCH -} - -AdditionalPRACH-TF-and-TFCS-CCCH ::= SEQUENCE { - additionalPRACH-TF-and-TFCS-CCCH-IEs AdditionalPRACH-TF-and-TFCS-CCCH-IEs OPTIONAL -} - --- The order is the same as in the PRACH-SystemInformationList -AdditionalPRACH-TF-and-TFCS-CCCH-List ::= SEQUENCE (SIZE (1..maxPRACH)) OF - AdditionalPRACH-TF-and-TFCS-CCCH - -AdditionalDLSecCellInfoListFDD ::= SEQUENCE (SIZE (2)) OF - AdditionalDLSecCellInfoFDD - -AdditionalDLSecCellInfoListFDD-r11 ::= SEQUENCE (SIZE (2)) OF - AdditionalDLSecCellInfoFDD-r11 - -AdditionalDLSecCellInfoListFDD2 ::= SEQUENCE (SIZE (4)) OF - AdditionalDLSecCellInfoFDD-r11 - --- AdditionalDLSecCellInfoFDD is introduced to avoid a SEQUENCE of SEQUENCE, a convention in RAN2. -AdditionalDLSecCellInfoFDD ::= SEQUENCE { - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL -} - -AdditionalDLSecCellInfoFDD-r11 ::= SEQUENCE { - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL -} - -AICH-Info ::= SEQUENCE { - channelisationCode256 ChannelisationCode256, - sttd-Indicator BOOLEAN, - aich-TransmissionTiming AICH-TransmissionTiming -} - -AICH-Info-Compressed ::= SEQUENCE { - channelisationCode256 ChannelisationCode256 -} - -AICH-PowerOffset ::= INTEGER (-22..5) - -AICH-TransmissionTiming ::= ENUMERATED { - e0, e1 } - -AllocationPeriodInfo ::= SEQUENCE { - allocationActivationTime INTEGER (0..255), - allocationDuration INTEGER (1..256) -} - --- Actual value Alpha = IE value * 0.125 -Alpha ::= INTEGER (0..8) - -Antenna3And4 ::= SEQUENCE { - antenna3And4-S-CPICH Antenna3And4-S-CPICH OPTIONAL, - antenna3And4-D-CPICH Antenna3And4-D-CPICH OPTIONAL -} - -Antenna3And4-S-CPICH ::= SEQUENCE { - antenna3-S-CPICH Antenna3-S-CPICH OPTIONAL, - antenna4-S-CPICH Antenna4-S-CPICH OPTIONAL, - s-cpich-PowerOffset-Mimo S-CPICH-PowerOffset-4x4MIMO OPTIONAL -} - -Antenna3And4-D-CPICH ::= SEQUENCE { - antenna3-D-CPICH Antenna3-D-CPICH OPTIONAL, - antenna4-D-CPICH Antenna4-D-CPICH OPTIONAL, - d-cpich-PowerOffset-Mimo D-CPICH-PowerOffset-4x4MIMO OPTIONAL, - initialD-CPICHStatus ENUMERATED { activated } OPTIONAL -} - -Antenna3-D-CPICH ::= SEQUENCE { - channelisationCode ChannelisationCode256 -} - -Antenna4-D-CPICH ::= SEQUENCE { - channelisationCode ChannelisationCode256 -} - -Antenna3-S-CPICH ::= SEQUENCE { - channelisationCode ChannelisationCode256 -} - -Antenna4-S-CPICH ::= SEQUENCE { - channelisationCode ChannelisationCode256 -} - -AP-AICH-ChannelisationCode ::= INTEGER (0..255) - -AP-PreambleScramblingCode ::= INTEGER (0..79) - -AP-Signature ::= INTEGER (0..15) - -AP-Signature-VCAM ::= SEQUENCE { - ap-Signature AP-Signature, - availableAP-SubchannelList AvailableAP-SubchannelList OPTIONAL -} - -AP-Subchannel ::= INTEGER (0..11) - -ASCSetting-FDD ::= SEQUENCE { - -- TABULAR: accessServiceClass-FDD is MD in tabular description - -- Default value is previous ASC - -- If this is the first ASC, the default value is all available signature and sub-channels - accessServiceClass-FDD AccessServiceClass-FDD OPTIONAL -} - -ASCSetting-TDD ::= SEQUENCE { - -- TABULAR: accessServiceClass-TDD is MD in tabular description - -- Default value is previous ASC - -- If this is the first ASC, the default value is all available channelisation codes and - -- all available sub-channels with subchannelSize=size1. - accessServiceClass-TDD AccessServiceClass-TDD OPTIONAL -} - -ASCSetting-TDD-r7 ::= SEQUENCE { - -- TABULAR: accessServiceClass-TDD is MD in tabular description - -- Default value is previous ASC - -- If this is the first ASC, the default value is all available channelisation codes and - -- all available sub-channels with subchannelSize=size1. - accessServiceClass-TDD AccessServiceClass-TDD-r7 OPTIONAL -} - -ASCSetting-TDD-LCR-r4 ::= SEQUENCE { - -- TABULAR: accessServiceClass-TDD-LCR is MD in tabular description - -- Default value is previous ASC - -- If this is the first ASC, the default value is all available SYNC_UL codes and - -- all available sub-channels with subchannelSize=size1. - accessServiceClass-TDD-LCR AccessServiceClass-TDD-LCR-r4 OPTIONAL -} - -AvailableAP-Signature-VCAMList ::= SEQUENCE (SIZE (1..maxPCPCH-APsig)) OF - AP-Signature-VCAM - -AvailableAP-SignatureList ::= SEQUENCE (SIZE (1..maxPCPCH-APsig)) OF - AP-Signature - -AvailableAP-SubchannelList ::= SEQUENCE (SIZE (1..maxPCPCH-APsubCh)) OF - AP-Subchannel - -AvailableMinimumSF-ListVCAM ::= SEQUENCE (SIZE (1..maxPCPCH-SF)) OF - AvailableMinimumSF-VCAM - -AvailableMinimumSF-VCAM ::= SEQUENCE { - minimumSpreadingFactor MinimumSpreadingFactor, - nf-Max NF-Max, - maxAvailablePCPCH-Number MaxAvailablePCPCH-Number, - availableAP-Signature-VCAMList AvailableAP-Signature-VCAMList -} - -AvailableSignatures ::= BIT STRING { - signature15(0), - signature14(1), - signature13(2), - signature12(3), - signature11(4), - signature10(5), - signature9(6), - signature8(7), - signature7(8), - signature6(9), - signature5(10), - signature4(11), - signature3(12), - signature2(13), - signature1(14), - signature0(15) - } (SIZE(16)) - -AvailableSubChannelNumbers ::= BIT STRING { - subCh11(0), - subCh10(1), - subCh9(2), - subCh8(3), - subCh7(4), - subCh6(5), - subCh5(6), - subCh4(7), - subCh3(8), - subCh2(9), - subCh1(10), - subCh0(11) - } (SIZE(12)) - -BEACON-PL-Est ::= ENUMERATED { true } - -BurstType ::= ENUMERATED { - type1, type2 } - --- Actual value Bler-Target = IE value * 0.05 -Bler-Target ::= INTEGER (-63..0) - -CCTrCH-PowerControlInfo ::= SEQUENCE { - tfcs-Identity TFCS-Identity OPTIONAL, - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo -} - -CCTrCH-PowerControlInfo-r4 ::= SEQUENCE { - tfcs-Identity TFCS-Identity OPTIONAL, - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r4 -} - -CCTrCH-PowerControlInfo-r5 ::= SEQUENCE { - tfcs-Identity TFCS-Identity OPTIONAL, - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r5 -} - -CCTrCH-PowerControlInfo-r7 ::= SEQUENCE { - tfcs-Identity TFCS-Identity OPTIONAL, - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r7 -} - -CD-AccessSlotSubchannel ::= INTEGER (0..11) - -CD-AccessSlotSubchannelList ::= SEQUENCE (SIZE (1..maxPCPCH-CDsubCh)) OF - CD-AccessSlotSubchannel - -CD-CA-ICH-ChannelisationCode ::= INTEGER (0..255) - -CD-PreambleScramblingCode ::= INTEGER (0..79) - -CD-SignatureCode ::= INTEGER (0..15) - -CD-SignatureCodeList ::= SEQUENCE (SIZE (1..maxPCPCH-CDsig)) OF - CD-SignatureCode - -CellAndChannelIdentity ::= SEQUENCE { - -- burstType may be set to either value and should be ignored by the receiver for 1.28 Mcps TDD. - burstType BurstType, - midambleShift MidambleShiftLong, - timeslot TimeslotNumber, - cellParametersID CellParametersID - } - -CellParametersID ::= INTEGER (0..127) - -Cfntargetsfnframeoffset ::= INTEGER(0..255) - -ChannelAssignmentActive ::= CHOICE { - notActive NULL, - isActive AvailableMinimumSF-ListVCAM -} - -ChannelisationCode256 ::= INTEGER (0..255) - -ChannelReqParamsForUCSM ::= SEQUENCE { - availableAP-SignatureList AvailableAP-SignatureList, - availableAP-SubchannelList AvailableAP-SubchannelList OPTIONAL -} - -ClosedLoopTimingAdjMode ::= ENUMERATED { - slot1, slot2 } - -CodeNumberDSCH ::= INTEGER (0..255) - -CodeRange ::= SEQUENCE { - pdsch-CodeMapList PDSCH-CodeMapList -} - -CodeResourceInformation-TDD128 ::= SEQUENCE { - start-code HS-ChannelisationCode-LCR, - stop-code HS-ChannelisationCode-LCR -} - -CodeWordSet ::= ENUMERATED { - longCWS, - mediumCWS, - shortCWS, - ssdtOff } - -Common-E-DCH-ResourceInfoList ::= SEQUENCE { - s-offset INTEGER (0..9) OPTIONAL, - f-dpch-ChannelisationCodeNumber INTEGER (0..255) OPTIONAL, - e-RGCH-Information E-RGCH-Information-CommonEdch OPTIONAL, - e-hich-Info E-HICH-Information-CommonEdch, - ul-DPCH-CodeInfoForCommonEDCH UL-DPCH-CodeInfoForCommonEDCH -} - -Common-E-DCH-ResourceInfoListExt ::= SEQUENCE { - twoMsHarqConfiguration TwoMsHarqConfiguration -} - -Common-E-RNTI-Info ::= SEQUENCE (SIZE (1..maxERUCCH)) OF - SEQUENCE { - starting-E-RNTI E-RNTI, - number-of-group INTEGER (1..maxERNTIgroup), - number-of-ENRTI-per-group INTEGER (1..maxERNTIperGroup) -} - -CommonEDCHResourceConfigInfoListExt::= SEQUENCE { - scheduledTransmissionConfiguration ScheduledTransmissionConfiguration OPTIONAL, - cOffset INTEGER (0..29) OPTIONAL -} - - -- For FDD, the network should not include the IE CommonEDCHSystemInfo. - -- Instead, the IE commonEDCHSystemInfoFDD should be used. - -- If included, the UE behavior is unspecified. -CommonEDCHSystemInfo ::= SEQUENCE { - ul-InterferenceForCommonEDCH UL-Interference OPTIONAL, - common-E-DCH-MAC-d-FlowList Common-E-DCH-MAC-d-FlowList, - modeSpecificInfo CHOICE { - dummy SEQUENCE {}, - tdd CHOICE { - tdd768 NULL, - tdd384 NULL, - tdd128 SEQUENCE { - e-RUCCH-Info E-RUCCH-Info-TDD128, - e-PUCH-Info E-PUCH-Info-TDD128, - e-hich-Information E-HICH-Information-TDD128, - e-agch-Information E-AGCH-Information-TDD128, - harq-Info ENUMERATED { rv0, rvtable }, - ccch-transmission-Info SEQUENCE { - common-e-rnti-Info Common-E-RNTI-Info, - harq-MaximumNumberOfRetransmissions INTEGER (0..7), - harq-retransmission-timer ENUMERATED { - ms10, ms15, ms20, ms25, - ms30, ms35, ms40, ms45, - ms50, ms55, ms60, ms65, - ms70, ms75, ms80, ms85, - ms90, ms95, ms100, ms110, - ms120, ms140, ms160 }, - harq-power-offset INTEGER (0..6) - } - } - } - } -} - -CommonEDCHSystemInfoFDD ::= SEQUENCE { - ul-InterferenceForCommonEDCH UL-Interference OPTIONAL, - common-E-DCH-MAC-d-FlowList Common-E-DCH-MAC-d-FlowList, - prach-PreambleForEnhancedUplink PRACH-PreambleForEnhancedUplink, - initialServingGrantValue INTEGER (0..37), - e-dch-TTI E-DCH-TTI, - e-agch-Information E-AGCH-Information, - harq-Info ENUMERATED { rv0, rvtable }, - ul-DPCHpowerControlInfoForCommonEDCH - UL-DPCHpowerControlInfoForCommonEDCH, - e-dpcch-Info E-DPCCH-Info-r7, - e-dpdch-Info E-DPDCH-Info-r8, - -- Actual value dl-FDPCH-TPCcommandErrorRate = IE value * 0.01 - dl-FDPCH-TPCcommandErrorRate INTEGER (1..10), - additional-E-DCH-TransmitBackoff INTEGER (0..15), - max-CCCH-ResourceAllocation ENUMERATED { - tti8, tti12, tti16, tti20, tti24, tti32, - tti40, tti80 }, - max-PeriodForCollisionResolution INTEGER (8..24), - e-dch-TransmitContinuationOffset ENUMERATED { - tti0, tti4, tti8, tti16, tti24, tti40, - tti80,infinity }, - ack-nack-support-on-HS-DPCCH BOOLEAN, - measurement-Feedback-Info Measurement-Feedback-Info-r7 OPTIONAL, - common-E-DCH-ResourceInfoList SEQUENCE (SIZE (1..maxEDCHs)) OF - Common-E-DCH-ResourceInfoList -} - -CommonEDCHSystemInfoParamConcurrentTTI ::= SEQUENCE { - common-E-DCH-MAC-d-Flow-Info-List-ConcurrentTTI - Common-E-DCH-MAC-d-Flow-Info-List-ConcurrentTTI OPTIONAL, - initialServingGrantValue INTEGER (0..37) OPTIONAL, - e-agch-Information E-AGCH-Information OPTIONAL, - ul-DPCHpowerControlInfoConcurrentTTI - UL-DPCHpowerControlInfoConcurrentTTI OPTIONAL, - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL, - e-dpdch-Info E-DPDCH-Info-r8, - additional-E-DCH-TransmitBackoff INTEGER (0..15) OPTIONAL, - max-CCCH-ResourceAllocation ENUMERATED { - tti8, tti12, tti16, tti20, tti24, tti32, - tti40, tti80 } OPTIONAL, - max-PeriodForCollisionResolution INTEGER (8..24) OPTIONAL, - e-dch-TransmitContinuationOffset ENUMERATED { - tti0, tti4, tti8, tti16, tti24, tti40, - tti80,infinity } OPTIONAL, - measurement-Feedback-Info-ConcurrentTTI Measurement-Feedback-Info-ConcurrentTTI OPTIONAL -} - -CommonERGCHChannelConfig ::= SEQUENCE { - channelisationCode INTEGER (0..127) OPTIONAL, - signatureSequence INTEGER (0..39) OPTIONAL -} - -CommonERGCHInfoFDD ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - eRGCHNeighbourCellList BIT STRING (SIZE (maxCellMeas)), - commonERGCHChannelConfigList SEQUENCE (SIZE (1.. maxCellMeas)) OF - CommonERGCHChannelConfig, - minimumServingGrantValue INTEGER (0..37) OPTIONAL, - reportingRange ReportingRange, - filterCoefficient FilterCoefficient DEFAULT fc0 - } - } -} - -CommonTimeslotInfo ::= SEQUENCE { - -- TABULAR: secondInterleavingMode is MD, but since it can be encoded in a single - -- bit it is not defined as OPTIONAL. - secondInterleavingMode SecondInterleavingMode, - tfci-Coding TFCI-Coding OPTIONAL, - puncturingLimit PuncturingLimit, - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL -} - -CommonTimeslotInfoMBMS ::= SEQUENCE { - -- TABULAR: secondInterleavingMode is MD, but since it can be encoded in a single - -- bit it is not defined as OPTIONAL. - secondInterleavingMode SecondInterleavingMode, - tfci-Coding TFCI-Coding OPTIONAL, - puncturingLimit PuncturingLimit -} - -CommonTimeslotInfoSCCPCH ::= SEQUENCE { - -- TABULAR: secondInterleavingMode is MD, but since it can be encoded in a single - -- bit it is not defined as OPTIONAL. - secondInterleavingMode SecondInterleavingMode, - tfci-Coding TFCI-Coding OPTIONAL, - puncturingLimit PuncturingLimit, - repetitionPeriodLengthAndOffset RepetitionPeriodLengthAndOffset OPTIONAL -} - -ConstantValue ::= INTEGER (-35..-10) - -ConstantValueTdd ::= INTEGER (-35..10) - -ControlChannelDRXCycle-TDD128 ::= ENUMERATED { - sub-frames-1, sub-frames-2, sub-frames-4, sub-frames-8, - sub-frames-16, sub-frames-32, sub-frames-64, spare1 } - -ControlChannelDRXInfo-TDD128-r8 ::= SEQUENCE { - controlChannelDrxOperation CHOICE { - continue SEQUENCE { - enablingDelay EnablingDelay-TDD128 OPTIONAL - }, - newOperation SEQUENCE { - hS-SCCH-Drx-Info HS-SCCH-DRX-Info-TDD128, - e-AGCH-Drx-Info E-AGCH-DRX-Info-TDD128 OPTIONAL, - enablingDelay EnablingDelay-TDD128 - } - } -} - -CPCH-PersistenceLevels ::= SEQUENCE { - cpch-SetID CPCH-SetID, - dynamicPersistenceLevelTF-List DynamicPersistenceLevelTF-List -} - -CPCH-PersistenceLevelsList ::= SEQUENCE (SIZE (1..maxCPCHsets)) OF - CPCH-PersistenceLevels - -CPCH-SetInfo ::= SEQUENCE { - cpch-SetID CPCH-SetID, - transportFormatSet TransportFormatSet, - tfcs TFCS, - ap-PreambleScramblingCode AP-PreambleScramblingCode, - ap-AICH-ChannelisationCode AP-AICH-ChannelisationCode, - cd-PreambleScramblingCode CD-PreambleScramblingCode, - cd-CA-ICH-ChannelisationCode CD-CA-ICH-ChannelisationCode, - cd-AccessSlotSubchannelList CD-AccessSlotSubchannelList OPTIONAL, - cd-SignatureCodeList CD-SignatureCodeList OPTIONAL, - deltaPp-m DeltaPp-m, - ul-DPCCH-SlotFormat UL-DPCCH-SlotFormat, - n-StartMessage N-StartMessage, - n-EOT N-EOT, - -- TABULAR: VCAM info has been nested inside ChannelAssignmentActive, - -- which in turn is mandatory since it's only a binary choice. - channelAssignmentActive ChannelAssignmentActive, - cpch-StatusIndicationMode CPCH-StatusIndicationMode, - pcpch-ChannelInfoList PCPCH-ChannelInfoList -} - -CPCH-SetInfoList ::= SEQUENCE (SIZE (1..maxCPCHsets)) OF - CPCH-SetInfo - -CPCH-StatusIndicationMode ::= ENUMERATED { - pa-mode, - pamsf-mode } - -CQI-DTX-Timer ::= ENUMERATED { - sub-frames-0, - sub-frames-1, - sub-frames-2, - sub-frames-4, - sub-frames-8, - sub-frames-16, - sub-frames-32, - sub-frames-64, - sub-frames-128, - sub-frames-256, - sub-frames-512, - sub-frames-Infinity, - spare4, - spare3, - spare2, - spare1 } - -CQI-RepetitionFactor ::= INTEGER(1..4) - -CSICH-PowerOffset ::= INTEGER (-10..5) - -D-CPICH-PowerOffset-4x4MIMO ::= INTEGER (-12..0) - --- DefaultDPCH-OffsetValueFDD and DefaultDPCH-OffsetValueTDD corresponds to --- IE "Default DPCH Offset Value" depending on the mode. --- Actual value DefaultDPCH-OffsetValueFDD = IE value * 512 -DefaultDPCH-OffsetValueFDD ::= INTEGER (0..599) - -DefaultDPCH-OffsetValueTDD ::= INTEGER (0..7) - -DeltaPp-m ::= INTEGER (-10..10) - -DeltaCQI ::= INTEGER (0..8) - -DeltaCQI-r11 ::= INTEGER (0..10) - -DeltaNACK ::= INTEGER (0..8) - -DeltaNACK-r11 ::= INTEGER (0..10) - -DeltaACK ::= INTEGER (0..8) - -DeltaACK-r11 ::= INTEGER (0..10) - --- Actual value DeltaSIR = IE value * 0.1 -DeltaSIR ::= INTEGER (0..30) - -DHS-Sync ::= INTEGER (-20..10) - -DL-CCTrCh ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - timeInfo TimeInfo, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL, - ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL -} - -DL-CCTrCh-r4 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - timeInfo TimeInfo, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL - }, - tdd128 SEQUENCE { - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL - } - }, - ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL -} - -DL-CCTrCh-r7 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - timeInfo TimeInfo, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-r7 OPTIONAL - }, - tdd768 SEQUENCE { - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL - } - }, - ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL -} - -DL-CCTrChList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - DL-CCTrCh - -DL-CCTrChList-r7 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - DL-CCTrCh-r7 - -DL-CCTrChList-r4 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - DL-CCTrCh-r4 - -DL-CCTrChListToRemove ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - TFCS-IdentityPlain - -DL-ChannelisationCode ::= SEQUENCE { - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - sf-AndCodeNumber SF512-AndCodeNumber, - scramblingCodeChange ScramblingCodeChange OPTIONAL -} - -DL-ChannelisationCodeList ::= SEQUENCE (SIZE (1..maxDPCH-DLchan)) OF - DL-ChannelisationCode - -DL-CommonInformation ::= SEQUENCE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-Information OPTIONAL - }, - tdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - } -} - -DL-CommonInformation-r4 ::= SEQUENCE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r4 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-Information-r4 OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - } -} - - -DL-CommonInformation-r5 ::= SEQUENCE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r4 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-Information-r4 OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - }, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL -} - -DL-CommonInformation-r6 ::= SEQUENCE { - dl-dpchInfoCommon CHOICE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6, - dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6 - } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - }, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL -} - -DL-CommonInformation-r7 ::= SEQUENCE { - dl-dpchInfoCommon CHOICE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6, - dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6 - } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - }, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL -} - -DL-CommonInformation-r8 ::= SEQUENCE { - dl-dpchInfoCommon CHOICE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6, - dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6 - } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo-r8 OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - }, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL -} - -DL-CommonInformation-r10 ::= SEQUENCE { - dl-dpchInfoCommon CHOICE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6, - dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6 - } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo-r10 OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - }, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL -} - -DL-CommonInformation-r11 ::= SEQUENCE { - dl-dpchInfoCommon CHOICE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r6, - dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6 - } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, - dpch-CompressedModeInfo DPCH-CompressedModeInfo-r10 OPTIONAL, - tx-DiversityMode TX-DiversityMode OPTIONAL - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL - } - }, - mac-hsResetIndicator ENUMERATED { true } OPTIONAL, - postVerificationPeriod ENUMERATED { true } OPTIONAL, - mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL -} - -DL-CommonInformationPost ::= SEQUENCE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommonPost -} - -DL-CommonInformationPredef ::= SEQUENCE { - dl-DPCH-InfoCommon DL-DPCH-InfoCommonPredef OPTIONAL -} - -DL-CompressedModeMethod ::= ENUMERATED { - -- dummy is not used in this version of the specification, it should - -- not be sent and if received the UE behaviour is not specified. - dummy, sf-2, - higherLayerScheduling } - -DL-DPCH-InfoCommon ::= SEQUENCE { - cfnHandling CHOICE { - maintain NULL, - initialise SEQUENCE { - -- IE dummy is not used in this version of the specification - -- The IE should not be sent and if received it should be ignored - dummy Cfntargetsfnframeoffset OPTIONAL - } - }, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL, - powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch, - dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL, - -- TABULAR: The number of pilot bits is nested inside the spreading factor. - spreadingFactorAndPilot SF512-AndPilot, - positionFixedOrFlexible PositionFixedOrFlexible, - tfci-Existence BOOLEAN - }, - tdd SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL - } - } -} - -DL-DPCH-InfoCommon-r4 ::= SEQUENCE { - cfnHandling CHOICE { - maintain NULL, - initialise SEQUENCE { - -- IE dummy is not used in this version of the specification - -- The IE should not be sent and if received it should be ignored - dummy Cfntargetsfnframeoffset OPTIONAL - } - }, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL, - powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch, - dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL, - -- TABULAR: The number of pilot bits is nested inside the spreading factor. - spreadingFactorAndPilot SF512-AndPilot, - positionFixedOrFlexible PositionFixedOrFlexible, - tfci-Existence BOOLEAN - }, - tdd SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL - } - }, --- The IE mac-d-HFN-initial-value should be absent in the RRCConnectionSetup-r4-IEs or --- RRCConnectionSetup-r5-IEs or HandoverToUTRANCommand-r4-IEs or HandoverToUTRANCommand-r5-IEs and --- if the IE is included, the general error handling for conditional IEs applies. - mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL - -} - -DL-DPCH-InfoCommon-r6 ::= SEQUENCE { - cfnHandling CHOICE { - maintain SEQUENCE { - timingmaintainedsynchind TimingMaintainedSynchInd OPTIONAL - }, - initialise NULL - }, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL, - powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch, - dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL, - -- TABULAR: The number of pilot bits is nested inside the spreading factor. - spreadingFactorAndPilot SF512-AndPilot, - positionFixedOrFlexible PositionFixedOrFlexible, - tfci-Existence BOOLEAN - }, - tdd SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL - } - }, - -- The IE mac-d-HFN-initial-value should be absent in the RRCConnectionSetup and the - -- HandoverToUTRANCommand messages. If the IE is included, the general error handling - -- for conditional IEs applies. - mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL -} - -DL-DPCH-InfoCommonPost ::= SEQUENCE { - dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL -} - -DL-DPCH-InfoCommonPredef ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- TABULAR: The number of pilot bits is nested inside the spreading factor. - spreadingFactorAndPilot SF512-AndPilot, - positionFixedOrFlexible PositionFixedOrFlexible, - tfci-Existence BOOLEAN - }, - tdd SEQUENCE { - commonTimeslotInfo CommonTimeslotInfo - } - } -} - -DL-DPCH-InfoPerRL ::= CHOICE { - fdd SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - dpch-FrameOffset DPCH-FrameOffset, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - dl-ChannelisationCodeList DL-ChannelisationCodeList, - tpc-CombinationIndex TPC-CombinationIndex, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-CellIdentity OPTIONAL, - closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL - }, - tdd SEQUENCE { - dl-CCTrChListToEstablish DL-CCTrChList OPTIONAL, - dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL - } -} - -DL-DPCH-InfoPerRL-r4 ::= CHOICE { - fdd SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - dpch-FrameOffset DPCH-FrameOffset, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - dl-ChannelisationCodeList DL-ChannelisationCodeList, - tpc-CombinationIndex TPC-CombinationIndex, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-CellIdentity OPTIONAL, - closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL - }, - tdd SEQUENCE { - dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL, - dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL - } -} - -DL-DPCH-InfoPerRL-r5 ::= CHOICE { - fdd SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - dpch-FrameOffset DPCH-FrameOffset, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - dl-ChannelisationCodeList DL-ChannelisationCodeList, - tpc-CombinationIndex TPC-CombinationIndex, - powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SSDT-CellIdentity OPTIONAL, - closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL - }, - tdd SEQUENCE { - dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL, - dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL - } -} - -DL-DPCH-InfoPerRL-r6 ::= CHOICE { - fdd SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - dpch-FrameOffset DPCH-FrameOffset, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - dl-ChannelisationCodeList DL-ChannelisationCodeList, - tpc-CombinationIndex TPC-CombinationIndex, - powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL, - closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL - }, - tdd SEQUENCE { - dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL, - dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL - } -} - -DL-DPCH-InfoPerRL-r7 ::= CHOICE { - fdd SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - dpch-FrameOffset DPCH-FrameOffset, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - dl-ChannelisationCodeList DL-ChannelisationCodeList, - tpc-CombinationIndex TPC-CombinationIndex, - powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL, - closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL - }, - tdd SEQUENCE { - dl-CCTrChListToEstablish DL-CCTrChList-r7 OPTIONAL, - dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL - } -} - -DL-FDPCH-InfoPerRL-r6 ::= SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - fdpch-FrameOffset DPCH-FrameOffset, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - dl-ChannelisationCode INTEGER (0..255), - tpc-CombinationIndex TPC-CombinationIndex -} - -DL-FDPCH-InfoPerRL-r7 ::= SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - fdpch-FrameOffset DPCH-FrameOffset, - fdpch-SlotFormat FDPCH-SlotFormat OPTIONAL, - secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - dl-ChannelisationCode INTEGER (0..255), - tpc-CombinationIndex TPC-CombinationIndex, - sttdIndication STTDIndication OPTIONAL -} - -DL-DPCH-InfoPerRL-PostFDD ::= SEQUENCE { - pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, - dl-ChannelisationCode DL-ChannelisationCode, - tpc-CombinationIndex TPC-CombinationIndex -} - -DL-DPCH-InfoPerRL-PostTDD ::= SEQUENCE { - dl-DPCH-TimeslotsCodes DownlinkTimeslotsCodes -} - -DL-DPCH-InfoPerRL-PostTDD-LCR-r4 ::= SEQUENCE { - dl-CCTrCH-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 -} - -DL-DPCH-PowerControlInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - dpc-Mode DPC-Mode - }, - tdd SEQUENCE { - tpc-StepSizeTDD TPC-StepSizeTDD OPTIONAL - } - } -} - -DL-FDPCH-InfoCommon-r6 ::= SEQUENCE { - cfnHandling CHOICE { - maintain SEQUENCE { - timingmaintainedsynchind TimingMaintainedSynchInd OPTIONAL - }, - initialise NULL - }, - dl-FDPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL, - -- Actual value dl-FDPCH-TPCcommandErrorRate = IE value * 0.01 - -- dl-FDPCH-TPCcommandErrorRate values 11..16 are spare and shall not be used in this version of - -- the protocol. - -- In addition, this IE shall always be included otherwise the UE behaviour is unspecified. - dl-FDPCH-TPCcommandErrorRate INTEGER (1..16) OPTIONAL -} - -DL-FrameType ::= ENUMERATED { - dl-FrameTypeA, dl-FrameTypeB } - -DL-HSPDSCH-Information ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info OPTIONAL, - measurement-feedback-Info Measurement-Feedback-Info OPTIONAL, - modeSpecificInfo CHOICE { - tdd CHOICE{ - tdd384 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL - }, - tdd128 SEQUENCE { - hs-PDSCH-Midamble-Configuration-tdd128 - HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL - } - }, - fdd NULL - } -} - -DL-HSPDSCH-Information-r6 ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info-r6 OPTIONAL, - measurement-feedback-Info Measurement-Feedback-Info OPTIONAL, - modeSpecificInfo CHOICE { - tdd CHOICE { - tdd384 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL - }, - tdd128 SEQUENCE { - hs-PDSCH-Midamble-Configuration-tdd128 - HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL - } - }, - fdd NULL - } -} - -DL-HSPDSCH-Information-r7 ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info-r7 OPTIONAL, - measurement-feedback-Info Measurement-Feedback-Info-r7 OPTIONAL, - modeSpecificInfo CHOICE { - tdd CHOICE { - tdd384 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL - }, - tdd768 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - hs-PDSCH-Midamble-Configuration-tdd128 - HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL - } - }, - fdd SEQUENCE { - dl-64QAM-Configured ENUMERATED { true } OPTIONAL - } - } -} - -DL-HSPDSCH-Information-r8 ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info-r7 OPTIONAL, - measurement-feedback-Info Measurement-Feedback-Info-r7 OPTIONAL, - modeSpecificInfo CHOICE { - tdd CHOICE { - tdd384 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL - }, - tdd768 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - hs-PDSCH-Midamble-Configuration-tdd128 - HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL - } - }, - fdd SEQUENCE { - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL - } - } -} - -DL-HSPDSCH-Information-r8-ext ::= SEQUENCE { - modeSpecificInfo CHOICE { - tdd CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - outofSyncWindow OutofSyncWindow OPTIONAL - } - }, - fdd NULL - } -} - -DL-HSPDSCH-Information-r8-ext2 ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info-r8-ext OPTIONAL -} - -DL-HSPDSCH-Information-r9 ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info-r9 OPTIONAL, - measurement-feedback-Info Measurement-Feedback-Info-r7 OPTIONAL, - modeSpecificInfo CHOICE { - tdd CHOICE { - tdd384 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL - }, - tdd768 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - hs-PDSCH-Midamble-Configuration-tdd128 - HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL, - tS0-Indicator ENUMERATED { true } OPTIONAL, - outofSyncWindow OutofSyncWindow OPTIONAL - } - }, - fdd SEQUENCE { - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL - } - } -} - -DL-HSPDSCH-Information-r11 ::= SEQUENCE { - hs-scch-Info HS-SCCH-Info-r9 OPTIONAL, - measurement-feedback-Info Measurement-Feedback-Info-r11 OPTIONAL, - modeSpecificInfo CHOICE { - tdd CHOICE { - tdd384 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL - }, - tdd768 SEQUENCE { - dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - hs-PDSCH-Midamble-Configuration-tdd128 - HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL, - tS0-Indicator ENUMERATED { true } OPTIONAL, - outofSyncWindow OutofSyncWindow OPTIONAL - } - }, - fdd SEQUENCE { - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL - } - } -} - -OutofSyncWindow ::= ENUMERATED { - ms40, ms80, ms160, ms320, - ms640, spare3, spare2, spare1 } - -DL-HSPDSCH-MultiCarrier-Information ::= SEQUENCE (SIZE (1..maxTDD128Carrier)) OF - SEQUENCE { - uarfcn-Carrier UARFCN, - harqInfo HARQ-Info OPTIONAL, - hs-PDSCH-Midamble-Configuration HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, - hs-SCCH-TDD128-MultiCarrier SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD128-MultiCarrier OPTIONAL - } - --- The IE 'DL-HSPDSCH-TS-Configuration' applies to tdd-384 REL-5 onward -DL-HSPDSCH-TS-Configuration ::= SEQUENCE (SIZE (1..maxTS-1)) OF - SEQUENCE { - timeslot TimeslotNumber, - midambleShiftAndBurstType MidambleShiftAndBurstType-DL -} - --- The IE 'DL-HSPDSCH-TS-Configuration-VHCR' applies to tdd-768 REL-7 onward -DL-HSPDSCH-TS-Configuration-VHCR ::= SEQUENCE (SIZE (1..maxTS-1)) OF - SEQUENCE { - timeslot TimeslotNumber, - midambleShiftAndBurstType MidambleShiftAndBurstType-DL-VHCR -} - -DL-InformationPerRL ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - -- dummy1 and dummy 2 are not used in this version of specification, they should - -- not be sent and if received they should be ignored. - dummy1 PDSCH-SHO-DCH-Info OPTIONAL, - dummy2 PDSCH-CodeMapping OPTIONAL - }, - tdd PrimaryCCPCH-Info - }, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SCCPCH-InfoForFACH OPTIONAL -} - -DL-InformationPerRL-r4 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - -- dummy1 and dummy 2 are not used in this version of specification, they should - -- not be sent and if received they should be ignored. - dummy1 PDSCH-SHO-DCH-Info OPTIONAL, - dummy2 PDSCH-CodeMapping OPTIONAL - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r4 OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SCCPCH-InfoForFACH-r4 OPTIONAL, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-r5 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - -- dummy1 and dummy 2 are not used in this version of specification, they should - -- not be sent and if received they should be ignored. - dummy1 PDSCH-SHO-DCH-Info OPTIONAL, - dummy2 PDSCH-CodeMapping OPTIONAL, - servingHSDSCH-RL-indicator BOOLEAN - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5 OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SCCPCH-InfoForFACH-r4 OPTIONAL, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-r5bis ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - -- dummy1 and dummy 2 are not used in this version of specification, they should - -- not be sent and if received they should be ignored. - dummy1 PDSCH-SHO-DCH-Info OPTIONAL, - dummy2 PDSCH-CodeMapping OPTIONAL - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5 OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SCCPCH-InfoForFACH-r4 OPTIONAL, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-r6 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - servingHSDSCH-RL-indicator BOOLEAN, - servingEDCH-RL-indicator BOOLEAN - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r6, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r6 - } OPTIONAL, - e-AGCH-Information E-AGCH-Information OPTIONAL, - e-HICH-Info CHOICE { - e-HICH-Information E-HICH-Information, - releaseIndicator NULL - } OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-v6b0ext ::= SEQUENCE { - sttdIndication STTDIndication OPTIONAL -} - -DL-InformationPerRL-r7 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - servingHSDSCH-RL-indicator BOOLEAN, - servingEDCH-RL-indicator BOOLEAN - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - } OPTIONAL, - e-AGCH-Information E-AGCH-Information-r7 OPTIONAL, - modeSpecificInfo2 CHOICE { - fdd SEQUENCE { - e-HICH-Info CHOICE { - e-HICH-Information E-HICH-Information, - releaseIndicator NULL - } OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL - }, - tdd CHOICE { - tdd384-tdd768 SEQUENCE { - e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL - }, - tdd128 SEQUENCE { - e-HICH-Info E-HICH-Information-TDD128 OPTIONAL - } - } - }, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-r8 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - servingHSDSCH-RL-indicator BOOLEAN, - servingEDCH-RL-indicator BOOLEAN - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - } OPTIONAL, - e-AGCH-Information E-AGCH-Information-r8 OPTIONAL, - modeSpecificInfo2 CHOICE { - fdd SEQUENCE { - e-HICH-Info CHOICE { - e-HICH-Information E-HICH-Information, - releaseIndicator NULL - } OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL - }, - tdd CHOICE { - tdd384-tdd768 SEQUENCE { - e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL - }, - tdd128 SEQUENCE { - e-HICH-Info E-HICH-Information-TDD128 OPTIONAL - } - } - }, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-r11 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - servingHSDSCH-RL-indicator BOOLEAN, - servingEDCH-RL-indicator BOOLEAN - }, - tdd PrimaryCCPCH-Info-r4 - }, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r7, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - } OPTIONAL, - e-AGCH-Information E-AGCH-Information-r8 OPTIONAL, - e-ROCH-Information E-ROCH-Information OPTIONAL, - modeSpecificInfo2 CHOICE { - fdd SEQUENCE { - e-HICH-Info CHOICE { - e-HICH-Information E-HICH-Information-r11, - releaseIndicator NULL, - secondaryReleaseIndicator NULL - } OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL, - f-TPICH-Info CHOICE { - f-TPICH-Information F-TPICH-Information, - releaseIndicator NULL - } OPTIONAL - }, - tdd CHOICE { - tdd384-tdd768 SEQUENCE { - e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL - }, - tdd128 SEQUENCE { - e-HICH-Info E-HICH-Information-TDD128 OPTIONAL - } - } - }, - cell-id CellIdentity OPTIONAL -} - -DL-InformationPerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL - -DL-InformationPerRL-List-r4 ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r4 - -DL-InformationPerRL-List-r5 ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r5 - -DL-InformationPerRL-List-r6 ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r6 - -DL-InformationPerRL-List-v6b0ext ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-v6b0ext - -DL-InformationPerRL-List-r5bis ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r5bis - -DL-InformationPerRL-List-r7 ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r7 - -DL-InformationPerRL-List-r8 ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r8 - -DL-InformationPerRL-List-r11 ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-r11 - -DL-InformationPerRL-ListPostFDD ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-InformationPerRL-PostFDD - -DL-InformationPerRL-PostFDD ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-PostFDD -} - -DL-InformationPerRL-PostTDD ::= SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-InfoPost, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-PostTDD -} - -DL-InformationPerRL-PostTDD-LCR-r4 ::= SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-InfoPostTDD-LCR-r4, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-PostTDD-LCR-r4 -} - ---for 1.28Mcps TDD Multi-Carrier -DL-MultiCarrier-Information ::= SEQUENCE { - tsn-Length ENUMERATED { tsn-6bits, tsn-9bits } OPTIONAL, - multiCarrierNumber INTEGER (1..maxTDD128Carrier) OPTIONAL, - dl-HSPDSCH-MultiCarrier-Information DL-HSPDSCH-MultiCarrier-Information OPTIONAL -} - -DL-PDSCH-Information ::= SEQUENCE { - -- dummy1 and dummy 2 are not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy1 PDSCH-SHO-DCH-Info OPTIONAL, - dummy2 PDSCH-CodeMapping OPTIONAL -} - -Dl-rate-matching-restriction ::= SEQUENCE { - restrictedTrCH-InfoList RestrictedTrCH-InfoList OPTIONAL -} - -DL-SecondaryCellInfoFDD ::= CHOICE { - continue NULL, - newConfiguration SEQUENCE { - new-H-RNTI H-RNTI, - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL, - primaryCPICH-Info PrimaryCPICH-Info, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL, - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - measurementPowerOffset MeasurementPowerOffset, - uarfcn-DL UARFCN - } -} - -DL-SecondaryCellInfoFDD-v890ext ::= SEQUENCE { - differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL -} - -DL-SecondaryCellInfoFDD-r9 ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - new-H-RNTI H-RNTI, - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL, - primaryCPICH-Info PrimaryCPICH-Info, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL, - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - measurementPowerOffset MeasurementPowerOffset, - uarfcn-DL UARFCN, - differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL - } - }, - secondaryCellMIMOparameters SecondaryCellMIMOparametersFDD OPTIONAL -} - -DL-SecondaryCellInfoFDD-r10 ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - new-H-RNTI H-RNTI, - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL, - primaryCPICH-Info PrimaryCPICH-Info, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL, - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - measurementPowerOffset MeasurementPowerOffset, - uarfcn-DL UARFCN, - differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL - } - }, - secondaryCellMIMOparameters SecondaryCellMIMOparametersFDD-r10 OPTIONAL -} - -DL-SecondaryCellInfoFDD-r11 ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - new-H-RNTI H-RNTI, - dl-64QAM-Configured ENUMERATED { true } OPTIONAL, - hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL, - primaryCPICH-Info PrimaryCPICH-Info, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL, - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - measurementPowerOffset MeasurementPowerOffset, - measurementPowerOffset1 MeasurementPowerOffset OPTIONAL, - uarfcn-DL UARFCN, - differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL, - multiflowConfigurationInfo MultiflowConfigurationInfo OPTIONAL - } - }, - secondaryCellMIMOparameters SecondaryCellMIMOparametersFDD-r10 OPTIONAL, - secondaryCell4x4MIMOparameters SecondaryCell4x4MIMOparametersFDD OPTIONAL -} - -DL-TPC-PowerOffsetPerRL ::= SEQUENCE { - powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL -} - --- NOTE: The radio links in the following list have a one-to-one mapping with the --- radio links in the message. -DL-TPC-PowerOffsetPerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF - DL-TPC-PowerOffsetPerRL - -DL-TS-ChannelisationCode ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -DL-TS-ChannelisationCode-VHCR ::= ENUMERATED { - cc32-1, cc32-2, cc32-3, cc32-4, - cc132-5, cc32-6, cc32-7, cc32-8, - cc32-9, cc32-10, cc32-11, cc32-12, - cc32-13, cc32-14, cc32-15, cc32-16, - cc32-17, cc32-18, cc32-19, cc32-20, - cc32-21, cc32-22, cc32-23, cc32-24, - cc32-25, cc32-26, cc32-27, cc32-28, - cc32-29, cc32-30, cc32-31, cc32-32 } - -DL-TS-ChannelisationCodesShort ::= SEQUENCE { - codesRepresentation CHOICE { - consecutive SEQUENCE { - firstChannelisationCode DL-TS-ChannelisationCode, - lastChannelisationCode DL-TS-ChannelisationCode - }, - bitmap BIT STRING { - chCode16-SF16(0), - chCode15-SF16(1), - chCode14-SF16(2), - chCode13-SF16(3), - chCode12-SF16(4), - chCode11-SF16(5), - chCode10-SF16(6), - chCode9-SF16(7), - chCode8-SF16(8), - chCode7-SF16(9), - chCode6-SF16(10), - chCode5-SF16(11), - chCode4-SF16(12), - chCode3-SF16(13), - chCode2-SF16(14), - chCode1-SF16(15) - } (SIZE (16)) - } -} - -DL-TS-ChannelisationCodesShort-VHCR ::= SEQUENCE { - codesRepresentation CHOICE { - consecutive SEQUENCE { - firstChannelisationCode DL-TS-ChannelisationCode-VHCR, - lastChannelisationCode DL-TS-ChannelisationCode-VHCR - }, - bitmap BIT STRING { - chCode32-SF32(0), - chCode31-SF32(1), - chCode30-SF32(2), - chCode29-SF32(3), - chCode28-SF32(4), - chCode27-SF32(5), - chCode26-SF32(6), - chCode25-SF32(7), - chCode24-SF32(8), - chCode23-SF32(9), - chCode22-SF32(10), - chCode21-SF32(11), - chCode20-SF32(12), - chCode19-SF32(13), - chCode18-SF32(14), - chCode17-SF32(15), - chCode16-SF32(16), - chCode15-SF32(17), - chCode14-SF32(18), - chCode13-SF32(19), - chCode12-SF32(20), - chCode11-SF32(21), - chCode10-SF32(22), - chCode9-SF32(23), - chCode8-SF32(24), - chCode7-SF32(25), - chCode6-SF32(26), - chCode5-SF32(27), - chCode4-SF32(28), - chCode3-SF32(29), - chCode2-SF32(30), - chCode1-SF32(31) - } (SIZE (32)) - } -} - -DL-ChannelCodes-MBSFN-IMB384 ::= SEQUENCE { - firstChannelisationCode INTEGER (1..15), - lastChannelisationCode INTEGER (1..15) OPTIONAL -} - -DLUL-HSPA-Information-r8 ::= SEQUENCE { - ul-EDCH-Information UL-EDCH-Information-r8, - dl-CommonInformation DL-CommonInformation-r8, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r8 -} - -DLUL-HSPA-Information-r9 ::= SEQUENCE { - ul-EDCH-Information UL-EDCH-Information-r9, - dl-CommonInformation DL-CommonInformation-r8, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 -} - -DLUL-HSPA-Information-r10 ::= SEQUENCE { - ul-EDCH-Information UL-EDCH-Information-r9, - dl-CommonInformation DL-CommonInformation-r10, - dl-InformationPerRL-List DL-InformationPerRL-List-r7, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 -} - -DownlinkAdditionalTimeslots ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort - } - } -} - -DownlinkAdditionalTimeslots-VHCR ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-VHCR, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort-VHCR - } - } -} - -DownlinkAdditionalTimeslots-LCR-r4 ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4 - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort - } - } -} - -DownlinkAdditionalTimeslots-r7 ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-r7, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort - } - } -} - -DownlinkTimeslotsCodes ::= SEQUENCE { - firstIndividualTimeslotInfo IndividualTimeslotInfo, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive INTEGER (1..maxTS-1), - timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF - DownlinkAdditionalTimeslots - } - } -} - -DownlinkTimeslotsCodes-VHCR ::= SEQUENCE { - firstIndividualTimeslotInfo IndividualTimeslotInfo-VHCR, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort-VHCR, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive INTEGER (1..maxTS-1), - timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF - DownlinkAdditionalTimeslots-VHCR - } - } -} - -DownlinkTimeslotsCodes-LCR-r4 ::= SEQUENCE { - firstIndividualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive INTEGER (1..maxTS-LCR-1), - timeslotList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF - DownlinkAdditionalTimeslots-LCR-r4 - } - } -} -DownlinkTimeslotsCodes-r7 ::= SEQUENCE { - firstIndividualTimeslotInfo IndividualTimeslotInfo-r7, - dl-TS-ChannelisationCodesShort DL-TS-ChannelisationCodesShort, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive INTEGER (1..maxTS-1), - timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF - DownlinkAdditionalTimeslots-r7 - } - } -} - -DPC-Mode ::= ENUMERATED { - singleTPC, - tpcTripletInSoft } - --- Actual value DPCCH-PowerOffset = IE value * 2 -DPCCH-PowerOffset ::= INTEGER (-82..-3) - --- Actual value DPCCH-PowerOffset2 = 2 + (IE value * 4) -DPCCH-PowerOffset2 ::= INTEGER (-28..-13) - -DPCH-CompressedModeInfo ::= SEQUENCE { - tgp-SequenceList TGP-SequenceList -} - -DPCH-CompressedModeInfo-r8 ::= SEQUENCE { - tgp-SequenceList TGP-SequenceList-r8 -} - -DPCH-CompressedModeInfo-r10 ::= SEQUENCE { - tgp-SequenceList TGP-SequenceList-r10 -} - -DPCH-CompressedModeStatusInfo ::= SEQUENCE { - tgps-Reconfiguration-CFN TGPS-Reconfiguration-CFN, - tgp-SequenceShortList SEQUENCE (SIZE (1..maxTGPS)) OF - TGP-SequenceShort -} - -DPCH-CompressedModeStatusInfo-r10 ::= SEQUENCE { - tgps-Reconfiguration-CFN TGPS-Reconfiguration-CFN, - tgp-SequenceShortList SEQUENCE (SIZE (1..maxTGPS)) OF - TGP-SequenceShort-r10 -} - --- Actual value DPCH-FrameOffset = IE value * 256 -DPCH-FrameOffset ::= INTEGER (0..149) - -FDPCH-SlotFormat ::= INTEGER (0..9) - -UE-DRX-Cycle-InactivityThreshold ::= ENUMERATED { - sub-frames-0, - sub-frames-1, - sub-frames-2, - sub-frames-4, - sub-frames-8, - sub-frames-16, - sub-frames-32, - sub-frames-64, - sub-frames-128, - sub-frames-256, - sub-frames-512, - spare5, - spare4, - spare3, - spare2, - spare1 } - -DRX-Info ::= SEQUENCE { - ue-drx-Cycle UE-DRX-Cycle, - ue-drx-Cycle-InactivityThreshold UE-DRX-Cycle-InactivityThreshold, - ue-GrantMonitoring-InactivityThreshold - UE-GrantMonitoring-InactivityThreshold, - ue-drx-GrantMonitoring BOOLEAN -} - -DSCH-Mapping ::= SEQUENCE { - maxTFCI-Field2Value MaxTFCI-Field2Value, - spreadingFactor SF-PDSCH, - codeNumber CodeNumberDSCH, - multiCodeInfo MultiCodeInfo -} - -DSCH-MappingList ::= SEQUENCE (SIZE (1..maxPDSCH-TFCIgroups)) OF - DSCH-Mapping - -DSCH-RadioLinkIdentifier ::= INTEGER (0..511) - -DSCH-TransportChannelsInfo ::= SEQUENCE (SIZE (1..maxTrCH)) OF - SEQUENCE { - dsch-transport-channel-identity TransportChannelIdentity, - dsch-TFS TransportFormatSet -} - -DTX-DRX-Info-r7 ::= SEQUENCE { - dtx-Info DTX-Info OPTIONAL, - drx-Info DRX-Info OPTIONAL, - uplink-DPCCHSlotFormatInformation Uplink-DPCCH-Slot-Format-Information -} - -DTX-E-DCH-TTI-10ms ::= SEQUENCE { - ue-dtx-Cycle1-10ms UE-DTX-Cycle1-10ms, - ue-dtx-Cycle2-10ms UE-DTX-Cycle2-10ms, - mac-dtx-Cycle-10ms MAC-DTX-Cycle-10ms -} - -DTX-E-DCH-TTI-2ms ::= SEQUENCE { - ue-dtx-Cycle1-2ms UE-DTX-Cycle1-2ms, - ue-dtx-Cycle2-2ms UE-DTX-Cycle2-2ms, - mac-dtx-Cycle-2ms MAC-DTX-Cycle-2ms -} - -DTX-Info ::= SEQUENCE { - e-dch-TTI-Length CHOICE { - dtx-e-dch-TTI-10ms DTX-E-DCH-TTI-10ms, - dtx-e-dch-TTI-2ms DTX-E-DCH-TTI-2ms - }, - ue-dtx-cycle2InactivityThreshold UE-DTX-Cycle2InactivityThreshold, - ue-dtx-cycle2DefaultSG INTEGER (0..38) OPTIONAL, - -- if ue-dtx-long-preamble-length is not present, the value is '2 slots' - ue-dtx-long-preamble-length UE-DTX-long-preamble-length OPTIONAL, - mac-InactivityThreshold MAC-InactivityThreshold, - cqi-dtx-Timer CQI-DTX-Timer, - ue-dpcch-Burst1 UE-DPCCH-Burst, - ue-dpcch-Burst2 UE-DPCCH-Burst -} - -DurationTimeInfo ::= INTEGER (1..4096) - -DynamicPersistenceLevel ::= INTEGER (1..8) - -DynamicPersistenceLevelList ::= SEQUENCE (SIZE (1..maxPRACH)) OF - DynamicPersistenceLevel - -DynamicPersistenceLevelTF-List ::= SEQUENCE (SIZE (1..maxTF-CPCH)) OF - DynamicPersistenceLevel - -DynamicTFInformationCCCH ::= SEQUENCE { - octetModeRLC-SizeInfoType2 OctetModeRLC-SizeInfoType2 -} - -E-AGCH-ChannelisationCode ::= INTEGER (0..255) - -E-AGCH-DRX-Info-TDD128 ::= SEQUENCE { - e-AGCH-DRX-InfoType CHOICE { - sameAsHS-SCCH NULL, - e-AGCH-DRX-Parameters SEQUENCE { - e-AGCH-DRX-Cycle ControlChannelDRXCycle-TDD128, - e-AGCH-InactivityMonitorThreshold E-AGCH-InactivityMonitorThreshold-TDD128 - OPTIONAL, - e-AGCH-DRX-Offset INTEGER (0..63) - } - } -} - -E-AGCH-InactivityMonitorThreshold-TDD128 ::= ENUMERATED { - radio-frames-0, radio-frames-1, radio-frames-2, - radio-frames-4, radio-frames-8, radio-frames-16, - radio-frames-32, radio-frames-64, radio-frames-128, - radio-frames-256, radio-frames-512, - spare5, spare4, spare3, spare2, infinity } - -E-AGCH-Individual ::= SEQUENCE { - tS-number INTEGER (0..14), - channelisation-code DL-TS-ChannelisationCode, - midambleShiftAndBurstType MidambleShiftAndBurstType-EDCH -} - -E-AGCH-Individual-VHCR ::= SEQUENCE { - tS-number INTEGER (0..14), - channelisation-code DL-TS-ChannelisationCode-VHCR, - midambleShiftAndBurstType MidambleShiftAndBurstType-EDCH -} - -E-AGCH-Individual-LCR ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - firstChannelisationCode HS-ChannelisationCode-LCR, - secondChannelisationCode HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) -} - -E-AGCH-Information ::= SEQUENCE { - e-AGCH-ChannelisationCode E-AGCH-ChannelisationCode -} - -E-AGCH-Information-r7 ::= SEQUENCE { - modeSpecific CHOICE { - fdd SEQUENCE { - e-AGCH-ChannelisationCode E-AGCH-ChannelisationCode - }, - tdd CHOICE { - tdd384 SEQUENCE { - long-Term-Grant-Indicator BOOLEAN OPTIONAL, - length-of-TTRI-field INTEGER (1..12), - e-AGCH-Set-Config E-AGCH-Set-Config, - e-AGCH-BLER-Target Bler-Target - }, - tdd768 SEQUENCE { - long-Term-Grant-Indicator BOOLEAN OPTIONAL, - length-of-TTRI-field INTEGER (1..12), - e-AGCH-Set-Config E-AGCH-Set-Config-VHCR, - e-AGCH-BLER-Target Bler-Target - }, - tdd128 SEQUENCE { - rdi-Indicator BOOLEAN, - tpc-StepSize TPC-StepSizeTDD, - e-AGCH-Set-Config E-AGCH-Set-Config-LCR, - e-AGCH-BLER-Target Bler-Target - } - } - } -} - -E-AGCH-Information-r8 ::= SEQUENCE { - modeSpecific CHOICE { - fdd SEQUENCE { - e-AGCH-ChannelisationCode E-AGCH-ChannelisationCode - }, - tdd CHOICE { - tdd384 SEQUENCE { - long-Term-Grant-Indicator BOOLEAN OPTIONAL, - length-of-TTRI-field INTEGER (1..12), - e-AGCH-Set-Config E-AGCH-Set-Config, - e-AGCH-BLER-Target Bler-Target - }, - tdd768 SEQUENCE { - long-Term-Grant-Indicator BOOLEAN OPTIONAL, - length-of-TTRI-field INTEGER (1..12), - e-AGCH-Set-Config E-AGCH-Set-Config-VHCR, - e-AGCH-BLER-Target Bler-Target - }, - tdd128 SEQUENCE { - rdi-Indicator BOOLEAN, - tpc-StepSize TPC-StepSizeTDD, - e-AGCH-Set-Config E-AGCH-Set-Config-LCR, - e-AGCH-BLER-Target Bler-Target, - e-AGCH-InactivityMonitorThreshold E-AGCH-InactivityMonitorThreshold-TDD128 - OPTIONAL - } - } - } -} - -E-AGCH-Information-TDD128 ::= SEQUENCE { - rdi-Indicator BOOLEAN, - tpc-StepSize TPC-StepSizeTDD, - e-AGCH-Set-Config E-AGCH-Set-Config-LCR, - e-AGCH-BLER-Target Bler-Target -} - -E-AGCH-Set-Config ::= SEQUENCE (SIZE (1..maxNumE-AGCH)) OF - E-AGCH-Individual - -E-AGCH-Set-Config-VHCR ::= SEQUENCE (SIZE (1..maxNumE-AGCH)) OF - E-AGCH-Individual-VHCR - -E-AGCH-Set-Config-LCR ::= SEQUENCE (SIZE (1..maxNumE-AGCH)) OF - E-AGCH-Individual-LCR - -E-ROCH-ChannelisationCode ::= INTEGER (0..255) - -E-ROCH-Information ::= SEQUENCE { - e-ROCH-ChannelisationCode E-ROCH-ChannelisationCode, - e-roch-e-rnti E-RNTI -} - -E-DCH-MinimumSet-E-TFCI ::= INTEGER (0..127) - -E-DCH-ReconfigurationInfo ::= SEQUENCE { - e-DCH-RL-InfoNewServingCell E-DCH-RL-InfoNewServingCell OPTIONAL, - e-DCH-RL-InfoOtherCellList SEQUENCE (SIZE (1..maxEDCHRL)) OF - E-DCH-RL-InfoOtherCell OPTIONAL -} - -E-DCH-ReconfigurationInfo-r7 ::= SEQUENCE { - e-DCH-RL-InfoNewServingCell E-DCH-RL-InfoNewServingCell-r7 OPTIONAL, - e-DCH-RL-InfoOtherCellList SEQUENCE (SIZE (1..maxEDCHRL)) OF - E-DCH-RL-InfoOtherCell OPTIONAL -} - -E-DCH-ReconfigurationInfo-r11 ::= SEQUENCE { - e-DCH-RL-InfoNewServingCell E-DCH-RL-InfoNewServingCell-r11 OPTIONAL, - e-DCH-RL-InfoOtherCellList SEQUENCE (SIZE (1..maxEDCHRL)) OF - E-DCH-RL-InfoOtherCell-r11 OPTIONAL -} - -E-DCH-ReconfigurationInfo-SecULFrequency ::= SEQUENCE { - e-DCH-RL-InfoNewSecServingCell E-DCH-RL-InfoNewSecServingCell OPTIONAL, - e-DCH-RL-InfoOtherCellList-SecULFreq SEQUENCE (SIZE (1..maxEDCHRL)) OF - E-DCH-RL-InfoOtherCell-SecULFreq OPTIONAL -} - -E-DCH-RL-InfoNewServingCell ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - e-AGCH-Information E-AGCH-Information, - servingGrant SEQUENCE { - value INTEGER (0..38) OPTIONAL, - primary-Secondary-GrantSelector ENUMERATED { primary, secondary } - } OPTIONAL, - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList OPTIONAL, - powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL, - threeIndexStepThreshold INTEGER (0..37) OPTIONAL, - twoIndexStepThreshold INTEGER (0..37) OPTIONAL, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoNewServingCell-r7 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - e-AGCH-Information E-AGCH-Information, - servingGrant SEQUENCE { - value INTEGER (0..38) OPTIONAL, - primary-Secondary-GrantSelector ENUMERATED { primary, secondary } - } OPTIONAL, - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7 OPTIONAL, - powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL, - threeIndexStepThreshold INTEGER (0..37) OPTIONAL, - twoIndexStepThreshold INTEGER (0..37) OPTIONAL, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoNewServingCell-r11 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - e-AGCH-Information E-AGCH-Information, - e-ROCH-Information E-ROCH-Information OPTIONAL, - servingGrant SEQUENCE { - value INTEGER (0..38) OPTIONAL, - primary-Secondary-GrantSelector ENUMERATED { primary, secondary } - } OPTIONAL, - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7 OPTIONAL, - powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL, - threeIndexStepThreshold INTEGER (0..37) OPTIONAL, - twoIndexStepThreshold INTEGER (0..37) OPTIONAL, - e-HICH-Information E-HICH-Information-r11 OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoNewSecServingCell ::= SEQUENCE { - e-AGCH-Information E-AGCH-Information, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoOtherCell ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - e-HICH-Info CHOICE { - e-HICH-Information E-HICH-Information, - releaseIndicator NULL - } OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoOtherCell-r11 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - e-HICH-Info CHOICE { - e-HICH-Information E-HICH-Information-r11, - releaseIndicator NULL, - secondaryReleaseIndicator NULL - } OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoOtherCell-SecULFreq ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Info CHOICE { - e-RGCH-Information E-RGCH-Information, - releaseIndicator NULL - } OPTIONAL -} - -E-DCH-RL-InfoSameServingCell ::= SEQUENCE { - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7 OPTIONAL -} - -E-DCH-SPS-Information-TDD128 ::= SEQUENCE { - e-dch-SPS-Operation CHOICE { - continue NULL, - newOperation E-DCH-SPS-NewOperation-TDD128 - } -} - -E-DCH-SPS-NewOperation-TDD128 ::= SEQUENCE { - e-hich-Info E-HICH-Information-For-SPS-TDD128, - e-dch-TxPattern E-DCH-TxPatternList-TDD128 OPTIONAL, - initialSPSInfoForEDCH SEQUENCE { - n-E-UCCH INTEGER (1..8), - codeResourceInfo UL-TS-ChannelisationCode, - timeslotResourceRelatedInfo BIT STRING (SIZE (5)), - powerResourceRelatedInfo INTEGER (1..32), - activationTime ActivationTime, - subframeNum INTEGER (0..1), - initialTxPatternIndex INTEGER (0..maxEDCHTxPattern-TDD128-1) - } OPTIONAL -} - -E-DCH-TxPatternList-TDD128 ::= SEQUENCE (SIZE (1..maxEDCHTxPattern-TDD128)) OF - SEQUENCE { - repetitionPeriodAndLength RepetitionPeriodAndLengthForSPS -} - -E-DPCCH-Info ::= SEQUENCE { - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset, - happyBit-DelayCondition HappyBit-DelayCondition -} - -E-DPCCH-Info-r7 ::= SEQUENCE { - e-DPCCH-DPCCH-PowerOffset E-DPCCH-DPCCH-PowerOffset, - happyBit-DelayCondition HappyBit-DelayCondition, - e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, - e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL -} - -E-DPCCH-DPCCH-PowerOffset ::= INTEGER (0..8) - -E-DPDCH-Info ::= SEQUENCE { - e-TFCI-TableIndex E-TFCI-TableIndex, - e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList, - maxChannelisationCodes E-DPDCH-MaxChannelisationCodes, - pl-NonMax E-DPDCH-PL-NonMax, - schedulingInfoConfiguration E-DPDCH-SchedulingInfoConfiguration, - threeIndexStepThreshold INTEGER (0..37) OPTIONAL, - twoIndexStepThreshold INTEGER (0..37) OPTIONAL -} - -E-DPDCH-Info-r7 ::= SEQUENCE { - e-TFCI-TableIndex E-TFCI-TableIndex, - e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7, - maxChannelisationCodes E-DPDCH-MaxChannelisationCodes, - pl-NonMax E-DPDCH-PL-NonMax, - schedulingInfoConfiguration E-DPDCH-SchedulingInfoConfiguration, - threeIndexStepThreshold INTEGER (0..37) OPTIONAL, - twoIndexStepThreshold INTEGER (0..37) OPTIONAL -} - -E-DPDCH-Info-r8 ::= SEQUENCE { - e-TFCI-TableIndex E-TFCI-TableIndex, - e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL, - reference-E-TFCIs E-DPDCH-Reference-E-TFCIList-r7, - minReduced-E-DPDCH-GainFactor MinReduced-E-DPDCH-GainFactor OPTIONAL, - maxChannelisationCodes E-DPDCH-MaxChannelisationCodes, - pl-NonMax E-DPDCH-PL-NonMax, - schedulingInfoConfiguration E-DPDCH-SchedulingInfoConfiguration, - threeIndexStepThreshold INTEGER (0..37) OPTIONAL, - twoIndexStepThreshold INTEGER (0..37) OPTIONAL -} - -E-DPDCH-PeriodicyOfSchedInfo ::= ENUMERATED { - everyEDCHTTI, ms4, ms10, ms20, ms50, ms100, ms200, ms500, - ms1000 } - --- The actual value of E-DPDCH-PL-NonMax is: IE value * 0.04 -E-DPDCH-PL-NonMax ::= INTEGER (11..25) - -E-DPDCH-PowerInterpolation ::= BOOLEAN - -E-DPDCH-Reference-E-TFCI ::= SEQUENCE { - reference-E-TFCI INTEGER (0..127), - reference-E-TFCI-PO INTEGER (0..29) -} - -E-DPDCH-Reference-E-TFCI-r7 ::= SEQUENCE { - reference-E-TFCI INTEGER (0..127), - reference-E-TFCI-PO-r7 INTEGER (0..31) -} - -E-DPDCH-Reference-E-TFCIList ::= SEQUENCE (SIZE (1..8)) OF E-DPDCH-Reference-E-TFCI - -E-DPDCH-Reference-E-TFCIList-r7 ::= SEQUENCE (SIZE (1..8)) OF E-DPDCH-Reference-E-TFCI-r7 - -E-DPDCH-SchedulingInfoConfiguration ::= SEQUENCE { - periodicityOfSchedInfo-NoGrant E-DPDCH-PeriodicyOfSchedInfo OPTIONAL, - periodicityOfSchedInfo-Grant E-DPDCH-PeriodicyOfSchedInfo OPTIONAL, - powerOffsetForSchedInfo INTEGER (0..6) -} - -E-DPDCH-SchedulingTransmConfiguration ::= SEQUENCE { - ms2-SchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL, - servingGrant SEQUENCE { - value INTEGER (0..38), - primary-Secondary-GrantSelector ENUMERATED { primary, secondary } - } OPTIONAL -} - -E-DPDCH-MaxChannelisationCodes ::= ENUMERATED { - sf256, sf128, sf64, sf32, sf16, sf8, sf4, sf4x2, - sf2x2, sf4x2-and-sf2x2 } - -E-HICH-ChannelisationCode ::= INTEGER (0..127) - -E-HICH-Information ::= SEQUENCE { - channelisationCode E-HICH-ChannelisationCode, - signatureSequence E-HICH-RGCH-SignatureSequence -} - -E-HICH-Information-r11 ::= SEQUENCE { - channelisationCode E-HICH-ChannelisationCode, - signatureSequence E-HICH-RGCH-SignatureSequence, - secondarySignatureSequence E-HICH-RGCH-SignatureSequence OPTIONAL -} - -E-HICH-Information-CommonEdch ::= SEQUENCE { - channelisationCode E-HICH-ChannelisationCode OPTIONAL, - signatureSequence E-HICH-RGCH-SignatureSequence OPTIONAL -} - -E-HICH-Information-TDD384-768 ::= SEQUENCE { - n-E-HICH INTEGER (4..44), - tS-Number INTEGER (0..14), - modeSpecificInfo CHOICE { - tdd384 DL-TS-ChannelisationCode, - tdd768 DL-TS-ChannelisationCode-VHCR - }, - burst-Type ENUMERATED { type1, type2 }, - midamble-Allocation-Mode ENUMERATED { default, common } -} - -E-HICH-Information-LCR ::= SEQUENCE { - ei INTEGER (0..3), - timeslotNumber TimeslotNumber-LCR-r4, - channelisation-Code HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) -} - -E-HICH-Information-TDD128 ::= SEQUENCE { - n-E-HICH INTEGER (4..15), - e-HICH-InfoList E-HICH-Information-LCR-List -} - -E-HICH-Information-LCR-List ::= SEQUENCE (SIZE (1..maxNumE-HICH)) OF - E-HICH-Information-LCR - -E-HICH-RGCH-SignatureSequence ::= INTEGER (0..39) - -E-HICH-Information-For-SPS-TDD128 ::= SEQUENCE { - configurationmode CHOICE{ - implicit SEQUENCE { - ei INTEGER (0..3) OPTIONAL - }, - explicit SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - channelisation-Code HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) - } - }, - signatureSequenceGroupIndex INTEGER (0..19) -} - -E-PUCH-Info ::= SEQUENCE { - e-TFCS-Info E-TFCS-Info, - modeSpecificInfo CHOICE { - tdd348-tdd768 SEQUENCE { - noSlotsForTFCIandTPC INTEGER (1..12), - e-PUCH-ContantValue INTEGER (-35..10), - e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-2)) OF E-PUCH-TS-Slots, - e-PUCH-CodeHopping BOOLEAN, - e-PUCH-TPC-Step-Size INTEGER (1..3), - minimum-Allowed-Code-Rate INTEGER (0..63), - maximum-Allowed-Code-Rate INTEGER (0..63) - }, - tdd128 SEQUENCE { - snpl-ReportType ENUMERATED { type1, type2 } OPTIONAL, - prxdes-base INTEGER (-112..-50), - beaconPLEst BOOLEAN OPTIONAL, - tpc-StepSize TPC-StepSizeTDD, - pebase-PowerControlGAP PowerControlGAP OPTIONAL, - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF - E-PUCH-TS-Slots-LCR, - minimum-Allowed-Code-Rate INTEGER (0..63), - maximum-Allowed-Code-Rate INTEGER (0..63), - maximumNumOfRetransSchedInfo INTEGER (0..15), - retransTimerForSchedInfo ENUMERATED { ms10, ms15, ms20, ms25, ms30, ms35, - ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, - ms80, ms85, ms90, ms95, ms100, ms110, ms120, - ms140, ms160, ms200, ms240,ms280, ms320, ms400, - ms480, ms560 } - } - }, - -- For 3.84/7.68 TDD only, should be ignored for 1.28Mcps TDD mode - powerOffsetForSchedInfo INTEGER (0..6) OPTIONAL -} - -E-PUCH-Info-TDD128 ::= SEQUENCE { - e-TFCS-Info E-TFCS-Info, - snpl-ReportType ENUMERATED { type1, type2 } OPTIONAL, - prxdes-base INTEGER (-112..-50), - beaconPLEst BOOLEAN OPTIONAL, - tpc-StepSize TPC-StepSizeTDD, - pebase-PowerControlGAP INTEGER (1..255) OPTIONAL, - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF - E-PUCH-TS-Slots-LCR, - minimum-Allowed-Code-Rate INTEGER (0..63), - maximum-Allowed-Code-Rate INTEGER (0..63), - maximumNumOfRetransSchedInfo INTEGER (0..15), - retransTimerForSchedInfo ENUMERATED { ms10, ms15, ms20, ms25, ms30, ms35, - ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, - ms80, ms85, ms90, ms95, ms100, ms110, ms120, - ms140, ms160, ms200, ms240,ms280, ms320, ms400, - ms480, ms560 }, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy INTEGER (0..6) OPTIONAL -} - -E-PUCH-Info-MulticarrierEDCH-TDD128 ::= SEQUENCE { - e-PUCH-TS-ConfigurationList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF - E-PUCH-TS-Slots-LCR -} - -E-PUCH-TS-Slots ::= SEQUENCE { - ts-Number INTEGER (0..14), - midambleShiftAndBurstType MidambleShiftAndBurstType-EDCH -} - -E-PUCH-TS-Slots-LCR ::= SEQUENCE { - -- Note: For 1.28Mcps TDD operation, valid value for timeslotNumber is INTEGER (1..5) - timeslotNumber TimeslotNumber-LCR-r4, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) -} - -E-RGCH-CombinationIndex ::= INTEGER (0..5) - -E-RGCH-Information ::= SEQUENCE { - signatureSequence E-HICH-RGCH-SignatureSequence, - rg-CombinationIndex E-RGCH-CombinationIndex -} - -E-RGCH-Information-CommonEdch ::= SEQUENCE { - signatureSequence E-HICH-RGCH-SignatureSequence OPTIONAL -} - -E-RUCCH-AccessServiceClass ::= PRACH-Partitioning-LCR-r4 - -E-RUCCH-Info ::= SEQUENCE { - modeSpecificInfo CHOICE { - tdd384-tdd768 SEQUENCE { - e-RUCCH-ConstantValue INTEGER (-35..10), - e-RUCCH-PersistenceScalingFactor PersistenceScalingFactor, - t-RUCCH ENUMERATED {ms40, ms80, ms120, ms160, ms200, - ms240, ms280, ms320} OPTIONAL, - e-RUCCH-TS-Number INTEGER (0..14) OPTIONAL, - e-RUCCH-Midamble ENUMERATED {direct, direct-Inverted} OPTIONAL, - t-adv ENUMERATED { sec1, sec2, sec4, sec8, sec16, - sec32, sec128, infinity } OPTIONAL, - t-SCHED ENUMERATED { zero, ms40, ms80, ms160, ms250, - sec1, sec2, sec4 } OPTIONAL, - modeSpecificInfo CHOICE { - tdd384 CHOICE { - sF16 SEQUENCE (SIZE (1..8)) OF SF16Codes, - sF8 SEQUENCE (SIZE (1..8)) OF SF8Codes - }, - tdd768 CHOICE { - sF32 SEQUENCE (SIZE (1..16)) OF SF32Codes, - sF816 SEQUENCE (SIZE (1..16)) OF SF16Codes2 - } - } - }, - tdd128 SEQUENCE { - t-RUCCH ENUMERATED { ms20, ms40, ms60, ms80, ms120, - ms160, ms200, ms240, ms280, ms320, - ms400, ms500, ms600, ms800, ms1000, - ms2000 } OPTIONAL, - n-RUCCH INTEGER (0..7) OPTIONAL, - t-WAIT ENUMERATED { everyEDCHTTI, ms40, ms80, ms160, - ms320, ms640, ms1000, ms2000 } OPTIONAL, - t-SI ENUMERATED { everyEDCHTTI, ms20, ms40, ms60, ms80, - ms160, ms200 } OPTIONAL, - extendedEstimationWindow INTEGER (2..5) OPTIONAL, - e-RUCCH-AccessServiceClass E-RUCCH-AccessServiceClass OPTIONAL, - e-RUCCH-PersistenceScalingFactor PersistenceScalingFactorList OPTIONAL, - sync-UL-InfoForE-RUCCH SYNC-UL-InfoForE-RUCCH OPTIONAL, - prach-information PRACH-Information-LCR-List OPTIONAL - } - } -} - -E-RUCCH-Info-TDD128 ::= SEQUENCE { - t-RUCCH ENUMERATED { ms20, ms40, ms60, ms80, ms120, - ms160, ms200, ms240, ms280, ms320, - ms400, ms500, ms600, ms800, ms1000, - ms2000 } OPTIONAL, - n-RUCCH INTEGER (0..7) OPTIONAL, - t-WAIT ENUMERATED { everyEDCHTTI, ms40, ms80, ms160, - ms320, ms640, ms1000, ms2000 } OPTIONAL, - t-SI ENUMERATED { everyEDCHTTI, ms20, ms40, ms60, ms80, - ms160, ms200 } OPTIONAL, - extendedEstimationWindow INTEGER (2..5) OPTIONAL, - e-RUCCH-AccessServiceClass E-RUCCH-AccessServiceClass OPTIONAL, - e-RUCCH-PersistenceScalingFactor PersistenceScalingFactorList OPTIONAL, - sync-UL-InfoForE-RUCCH SYNC-UL-InfoForE-RUCCH OPTIONAL, - prach-information PRACH-Information-LCR-List OPTIONAL -} - -E-TFC-Boost-Info-r7 ::= SEQUENCE { - e-TFCI-Boost INTEGER (0..127), - delta-T2TP INTEGER (0..6) OPTIONAL -} - -E-TFCI-TableIndex ::= INTEGER (0..1) - -E-TFCS-Info ::= SEQUENCE { - reference-Beta-QPSK-List SEQUENCE (SIZE (1..8)) OF Reference-Beta-QPSK, - reference-Beta-16QAM-List SEQUENCE (SIZE (1..8)) OF Reference-Beta-16QAM -} - -EARFCN ::= INTEGER (0..65535) - -EARFCNExtension ::= INTEGER (65536..262143) - -EARFCNRange ::= SEQUENCE { --- If the IE earfcn is set to a value of 65535, then the EARFCN --- value for that instance shall be read from the IE earfcnExt. - earfcn EARFCN, - earfcnExt EARFCNExtension OPTIONAL -} - -EnablingDelay ::= ENUMERATED { - radio-frames-0, - radio-frames-1, - radio-frames-2, - radio-frames-4, - radio-frames-8, - radio-frames-16, - radio-frames-32, - radio-frames-64, - radio-frames-128, - spare7, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1 } - -EnablingDelay-TDD128 ::= ENUMERATED { - radio-frames-0, radio-frames-1, radio-frames-2, - radio-frames-4, radio-frames-8, radio-frames-16, - radio-frames-32, radio-frames-64, radio-frames-128, - spare7, spare6, spare5, spare4, spare3, spare2, - infinity } - -EXT-UL-TimingAdvance ::= SEQUENCE { - modeSpecificInfo CHOICE { - tdd384 SEQUENCE { - ex-ul-TimingAdvance INTEGER (0..255) - }, - tdd768 SEQUENCE { - ex-ul-TimingAdvance INTEGER (0..511) - } - } -} - -FACH-PCH-Information ::= SEQUENCE { - transportFormatSet TransportFormatSet, - transportChannelIdentity TransportChannelIdentity, - ctch-Indicator BOOLEAN -} - -FACH-PCH-InformationList ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF - FACH-PCH-Information - -Fallback-R99-PRACH-info-IEs::= SEQUENCE { - cCCH-Fallback BOOLEAN, - dCCH-Fallback BOOLEAN -} - -Feedback-cycle ::= ENUMERATED { - fc0, fc2, fc4, fc8, fc10, fc20, fc40, fc80, fc160} - -Feedback-cycle-r7 ::= ENUMERATED { - fc0, fc2, fc4, fc8, fc10, fc20, fc40, fc80, fc160, - fc16, fc32, fc64, spare4, spare3, spare2, spare1 } - -FPACH-Info-r4 ::= SEQUENCE { - timeslot TimeslotNumber-LCR-r4, - channelisationCode TDD-FPACH-CCode16-r4, - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - wi Wi-LCR -} - -F-TPICH-InfoNewServingCell ::= SEQUENCE { - f-tpich-Information F-TPICH-Information -} - -F-TPICH-InfoOtherCell ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - f-tpich-Info CHOICE { - f-tpich-Information F-TPICH-Information, - releaseIndicator NULL - } -} - -F-TPICH-Information ::= SEQUENCE { - ftpich-SlotFormat FTPICH-SlotFormat, - ftpich-CodeNumber INTEGER (0..255), - ftpich-FrameOffset FTPICH-FrameOffset -} - -F-TPICH-ReconfigurationInfo ::= SEQUENCE { - f-tpich-InfoNewServingCell F-TPICH-InfoNewServingCell OPTIONAL, - f-tpich-InfoOtherCellList SEQUENCE (SIZE (1..maxRL)) OF - F-TPICH-InfoOtherCell OPTIONAL -} - --- Actual value FTPICH-FrameOffset = IE value * 256 -FTPICH-FrameOffset ::= INTEGER (0..149) - -FTPICH-SlotFormat ::= INTEGER (0..9) - -FreqIndexListForEnhancedMeas ::= SEQUENCE (SIZE (1..maxFreqMeasWithoutCM)) OF - FrequencyIndexForEnhancedMeas - -FrequencyInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd FrequencyInfoFDD, - tdd FrequencyInfoTDD } -} - -FrequencyInfoFDD ::= SEQUENCE { - uarfcn-UL UARFCN OPTIONAL, - uarfcn-DL UARFCN -} - -FrequencyInfoTDD ::= SEQUENCE { - uarfcn-Nt UARFCN -} - -FrequencyIndexForEnhancedMeas ::= INTEGER (0..maxCellMeas-1) - -HappyBit-DelayCondition ::= ENUMERATED { - ms2, ms10, ms20, ms50, ms100, ms200, ms500, ms1000 } - -HARQ-Preamble-Mode ::= INTEGER (0..1) - -HS-ChannelisationCode-LCR ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -HS-ChannelisationCodeSetInfo-LCR ::= SEQUENCE { - startCode HS-ChannelisationCode-LCR, - stopCode HS-ChannelisationCode-LCR -} - -HS-DSCH-CommonSystemInformation ::= SEQUENCE { - ccch-MappingInfo CommonRBMappingInfo, - srb1-MappingInfo CommonRBMappingInfo OPTIONAL, - common-MAC-ehs-ReorderingQueueList Common-MAC-ehs-ReorderingQueueList, - hs-scch-SystemInfo HS-SCCH-SystemInfo, - harq-SystemInfo HARQ-Info, - common-H-RNTI-information SEQUENCE (SIZE (1..maxCommonHRNTI)) OF - H-RNTI, - bcchSpecific-H-RNTI H-RNTI -} - -HS-DSCH-CommonSystemInformation-TDD128 ::= SEQUENCE { - ccch-MappingInfo CommonRBMappingInfo, - srb1-MappingInfo CommonRBMappingInfo OPTIONAL, - common-MAC-ehs-ReorderingQueueList Common-MAC-ehs-ReorderingQueueList, - hs-scch-SystemInfo-tdd128 HS-SCCH-SystemInfo-TDD128, - harq-SystemInfo HARQ-Info, - hs-pdsch-MidambleConfiguration HS-PDSCH-Midamble-Configuration-TDD128, - common-H-RNTI-information SEQUENCE (SIZE (1..maxCommonHRNTI)) OF H-RNTI, - bcchSpecific-H-RNTI H-RNTI -} - -HS-DSCH-DrxBurstFach ::= ENUMERATED { - f1, f2, f4, f8, f16, spare3, spare2, spare1 } - -HS-DSCH-DrxCellfach-info ::= SEQUENCE { - t-321 T-321, - hs-dsch-DrxCycleFach HS-DSCH-DrxCycleFach, - hs-dsch-DrxBurstFach HS-DSCH-DrxBurstFach, - drxInterruption-hs-dsch BOOLEAN -} - -HS-DSCH-DrxCellfach-info-TDD128 ::= SEQUENCE { - t-321 T-321, - hs-dsch-DrxCycleFach HS-DSCH-DrxCycleFach, - hs-dsch-DrxBurstFach HS-DSCH-DrxBurstFach -} - -HS-DSCH-DrxCellfach-SecondDrx-info ::= SEQUENCE { - hs-dsch-SecondDrx-CycleFach HS-DSCH-SecondDrx-CycleFach, - drx-level CHOICE { - one-level-DRX SEQUENCE { - hs-dsch-Second-Rx-BurstFach HS-DSCH-Second-Rx-BurstFach OPTIONAL, - t329 T-329 OPTIONAL - }, - two-level-DRX SEQUENCE { - t328 T-328 OPTIONAL, - hs-dsch-First-Rx-BurstFach HS-DSCH-First-Rx-BurstFach OPTIONAL, - hs-dsch-First-Drx-CycleFach HS-DSCH-First-Drx-CycleFach OPTIONAL, - hs-dsch-Second-Rx-BurstFach HS-DSCH-Second-Rx-BurstFach OPTIONAL, - t329 T-329 OPTIONAL - } - } -} - -HS-DSCH-DrxCycleFach ::= ENUMERATED { - f4, f8, f16, f32 } - -HS-DSCH-First-Drx-CycleFach ::= ENUMERATED { - f2, f4, f8, f16, f32, f64 } - -HS-DSCH-First-Rx-BurstFach ::= ENUMERATED { - f0p4, f0p8 } - -HS-DSCH-PagingSystemInformation ::= SEQUENCE { - dlScramblingCode SecondaryScramblingCode OPTIONAL, - pich-ForHSDPASupportedPagingList SEQUENCE (SIZE (1..maxSCCPCH)) OF - PICH-ForHSDPASupportedPaging, - numberOfPcchTransmissions INTEGER(1..5), - transportBlockSizeList SEQUENCE (SIZE (1..2)) OF - TransportBlockSizeIndex -} - -HS-DSCH-PagingSystemInformation-TDD128 ::= SEQUENCE { - pich-ForHsdschList SEQUENCE (SIZE (1..maxSCCPCH)) OF - PICH-ForHSDPASupportedPaging-TDD128, - dtch-DCCH-reception-window-size INTEGER (1..16), - pcch-InformationList PCCH-InformationList OPTIONAL -} - -HS-DSCH-RxPatternList-TDD128 ::= SEQUENCE (SIZE (1..maxRxPatternForHSDSCH-TDD128)) OF - SEQUENCE { - repetitionPeriodAndLength RepetitionPeriodAndLengthForSPS -} - -HS-DSCH-Second-Rx-BurstFach ::= ENUMERATED { - f1, f2 } - -HS-DSCH-SecondDrx-CycleFach ::= ENUMERATED { - f4, f8, f16, f32, f64, f128, f256, f512 } - -HS-DSCH-TBSizeTable ::= ENUMERATED { octetAligned } - -HS-DSCH-TbsList-TDD128 ::= SEQUENCE (SIZE (1..maxTbsForHSDSCH-TDD128)) OF - SEQUENCE { - hs-dsch-TBSizeIndex INTEGER (1..63) -} - -HS-DSCH-SPS-Information-TDD128 ::= SEQUENCE { - hs-dsch-SPS-Operation CHOICE { - continue NULL, - newOperation HS-DSCH-SPS-NewOperation-TDD128 - } -} - -HS-DSCH-SPS-NewOperation-TDD128 ::= SEQUENCE { - hs-dsch-TbsList HS-DSCH-TbsList-TDD128 OPTIONAL, - hs-dsch-RxPatternList HS-DSCH-RxPatternList-TDD128 OPTIONAL, - hARQInfoForSPS SEQUENCE { - numberOfProcesses INTEGER (1..8), - memorySize HARQMemorySize - } OPTIONAL, - hs-sich-List HS-SICH-List-TDD128, - initialSPSInfoForHSDSCH SEQUENCE { - timeslotInfo BIT STRING (SIZE (5)), - codeResourceInfo HS-ChannelisationCodeSetInfo-LCR, - activationTime ActivationTime, - sfnNum INTEGER (0..1), - initialRxPatternIndex INTEGER (0..maxRxPatternForHSDSCH-TDD128-1), - initialTfsIndex INTEGER (0..maxTbsForHSDSCH-TDD128-1), - modulation ENUMERATED { modQPSK, mod16QAM }, - hs-sich-Index INTEGER (0..maxHSSICH-TDD128-1) - } OPTIONAL -} - -HS-PDSCH-Midamble-Configuration-TDD128 ::= SEQUENCE { - midambleAllocationMode CHOICE{ - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) -} - -HS-SCCH-Info ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL - }, - tdd CHOICE { - tdd384 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD384 - }, - tdd128 SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD128 - } - } -} - -HS-SCCH-Info-r6 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL - }, - tdd CHOICE { - tdd384 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384, - dhs-sync DHS-Sync OPTIONAL, - bler-target Bler-Target, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD384-r6 - }, - tdd128 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - power-level-HSSICH INTEGER (-120..-58), - tpc-step-size ENUMERATED { s1, s2, s3 , spare1 }, - bler-target Bler-Target, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD128-r6 - } - } - } -} - -HS-SCCH-Info-r7 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL - }, - tdd CHOICE { - tdd384 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384, - dhs-sync DHS-Sync OPTIONAL, - bler-target Bler-Target, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD384-r6 - }, - tdd768 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD768, - dhs-sync DHS-Sync OPTIONAL, - bler-target Bler-Target, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD768 - }, - tdd128 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - power-level-HSSICH INTEGER (-120..-58), - tpc-step-size ENUMERATED { s1, s2, s3 , spare1 }, - bler-target Bler-Target, - powerControlGAP PowerControlGAP OPTIONAL, - pathlossCompensationSwitch BOOLEAN OPTIONAL, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD128-r6 - } - } - } -} - -HS-SCCH-Info-r8-ext ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd NULL, - tdd CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - hS-SCCH-tpc-step-size ENUMERATED { s1, s2, s3, spare1 } OPTIONAL - } - } - } -} - -HS-SCCH-Info-r9 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes, - dl-ScramblingCode SecondaryScramblingCode OPTIONAL - }, - tdd CHOICE { - tdd384 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD384, - dhs-sync DHS-Sync OPTIONAL, - bler-target Bler-Target, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD384-r6 - }, - tdd768 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - hs-SICH-PowerControl-Info HS-SICH-Power-Control-Info-TDD768, - dhs-sync DHS-Sync OPTIONAL, - bler-target Bler-Target, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD768 - }, - tdd128 SEQUENCE { - nack-ack-power-offset INTEGER (-7..8), - power-level-HSSICH INTEGER (-120..-58), - tpc-step-size ENUMERATED { s1, s2, s3, spare1 }, - bler-target Bler-Target, - hS-SCCH-tpc-step-size ENUMERATED { s1, s2, s3, spare1 } OPTIONAL, - powerControlGAP PowerControlGAP OPTIONAL, - pathlossCompensationSwitch BOOLEAN OPTIONAL, - hS-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD128-r6 - } - } - } -} - -HS-SCCH-DRX-InactivityThreshold-TDD128 ::= ENUMERATED { - sub-frames-1, sub-frames-2, sub-frames-4, - sub-frames-8, sub-frames-16, sub-frames-32, - sub-frames-64, sub-frames-128, sub-frames-256, - sub-frames-512, - spare6, spare5, spare4, spare3, spare2, - infinity } - -HS-SCCH-DRX-Info-TDD128 ::= SEQUENCE { - hS-SCCH-DRX-Cycle ControlChannelDRXCycle-TDD128, - hS-SCCH-DRX-InactivityThreshold HS-SCCH-DRX-InactivityThreshold-TDD128 OPTIONAL, - hS-SCCH-DRX-Offset INTEGER (0..63) -} - -HS-SCCH-Codes ::= INTEGER (0..127) - -HS-SCCH-Less-NewOperation ::= SEQUENCE { - hs-pdsch-CodeIndex INTEGER (1..15), - hs-scch-LessTFS HS-SCCH-LessTFSList -} - -HS-SCCH-LessInfo-r7 ::= SEQUENCE { - hs-scchLessOperation CHOICE { - continue NULL, - newOperation HS-SCCH-Less-NewOperation - } -} - -HS-SCCH-LessTFSList ::= SEQUENCE (SIZE (1..maxHS-SCCHLessTrBlk)) OF - SEQUENCE { - hs-scch-LessTFSI INTEGER (1..90), - hs-scch-LessSecondCodeSupport BOOLEAN -} - -HS-SCCH-SystemInfo ::= SEQUENCE { - dl-ScramblingCode SecondaryScramblingCode OPTIONAL, - hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-Codes -} - -HS-SCCH-SystemInfo-TDD128 ::= SEQUENCE { - hs-SCCH-SetConfiguration SEQUENCE (SIZE (1..maxHSSCCHs)) OF - HS-SCCH-TDD128-r6, - power-level-HSSICH INTEGER (-120..-58), - nack-ack-power-offset INTEGER (-7..8), - tpc-step-size ENUMERATED { s1, s2, s3 , spare1 }, - bler-target Bler-Target, - power-control-gap INTEGER (1..255) OPTIONAL, - pathloss-compensation-switch BOOLEAN OPTIONAL -} - -HS-SCCH-TDD128 ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - firstChannelisationCode HS-ChannelisationCode-LCR, - secondChannelisationCode HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble INTEGER(0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - bler-target Bler-Target, - hs-sich-configuration HS-SICH-Configuration-TDD128 -} - -HS-SCCH-TDD128-r6 ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - firstChannelisationCode HS-ChannelisationCode-LCR, - secondChannelisationCode HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble INTEGER(0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - hs-sich-configuration HS-SICH-Configuration-TDD128-r6 -} - ---for TDD128 Multi-Carrier -HS-SCCH-TDD128-MultiCarrier ::= SEQUENCE { - uarfcn-HS-SCCH-Rx UARFCN, - timeslotNumber TimeslotNumber-LCR-r4, - firstChannelisationCode HS-ChannelisationCode-LCR, - secondChannelisationCode HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble INTEGER(0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - bler-target Bler-Target, - hs-sich-configuration HS-SICH-Configuration-TDD128 -} - -HS-SICH-Configuration-TDD128 ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - channelisationCode HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - nack-ack-power-offset INTEGER (-7..8), - power-level-HSSICH INTEGER (-120..-58), - tpc-step-size ENUMERATED { s1, s2, s3 , spare1} -} - -HS-SICH-Configuration-TDD128-r6 ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - channelisationCode HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) -} - -HS-SICH-List-TDD128 ::= SEQUENCE (SIZE (1..maxHSSICH-TDD128)) OF - CHOICE { - implicit SEQUENCE { - hS-SCCH-Index INTEGER (0..maxHSSCCHs-1) - }, - explicit SEQUENCE { - hS-SICH-Info HS-SICH-Configuration-TDD128-r6 - } -} - ---The order of the list corresponds to the order of HS-SCCHs in HS-SCCH info -HS-SICH-ReferenceSignalInfoList ::= SEQUENCE ( SIZE (1.. maxHSSCCHs)) OF - SEQUENCE { - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - midambleShift INTEGER (0..15), - timeSlot INTEGER (1..5) -} - -HS-SCCH-TDD384 ::= SEQUENCE { - timeslotNumber TimeslotNumber, - channelisationCode DL-TS-ChannelisationCode, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - midambleconfiguration MidambleConfigurationBurstType1and3, - bler-target Bler-Target, - hs-sich-configuration HS-SICH-Configuration-TDD384 -} - -HS-SCCH-TDD384-r6 ::= SEQUENCE { - timeslotNumber TimeslotNumber, - channelisationCode DL-TS-ChannelisationCode, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - midambleconfiguration MidambleConfigurationBurstType1and3, - hs-sich-configuration HS-SICH-Configuration-TDD384 -} - -HS-SCCH-TDD768 ::= SEQUENCE { - timeslotNumber TimeslotNumber, - channelisationCode DL-TS-ChannelisationCode-VHCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - midambleconfiguration MidambleConfigurationBurstType1and3, - hs-sich-configuration HS-SICH-Configuration-TDD768 -} - -HS-SICH-Configuration-TDD384 ::= SEQUENCE { - timeslotNumber TimeslotNumber, - channelisationCode DL-TS-ChannelisationCode, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - midambleconfiguration MidambleConfigurationBurstType1and3 -} - -HS-SICH-Configuration-TDD768 ::= SEQUENCE { - timeslotNumber TimeslotNumber, - channelisationCode DL-TS-ChannelisationCode-VHCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - }, - midambleconfiguration MidambleConfigurationBurstType1and3 -} - -HS-SICH-Power-Control-Info-TDD384 ::= SEQUENCE { - -- Actual value ul-target-SIR = IE value * 0.5 - ul-target-SIR INTEGER (-22..40), - -- Note: IE 'ConstantValue' is used (instead of IE 'ConstantValueTDD') to keep - -- compatibility with REL-5 - hs-sich-ConstantValue ConstantValue -} - -HS-SICH-Power-Control-Info-TDD768 ::= SEQUENCE { - -- Actual value ul-target-SIR = IE value * 0.5 - ul-target-SIR INTEGER (-22..40), - -- Note: IE 'ConstantValue' is used (instead of IE 'ConstantValueTDD') to keep - -- compatibility with REL-5 - hs-sich-ConstantValue ConstantValue -} - -IndividualTimeslotInfo ::= SEQUENCE { - timeslotNumber TimeslotNumber, - tfci-Existence BOOLEAN, - midambleShiftAndBurstType MidambleShiftAndBurstType -} - -IndividualTimeslotInfo-VHCR ::= SEQUENCE { - timeslotNumber TimeslotNumber, - tfci-Existence BOOLEAN, - midambleShiftAndBurstType-VHCR MidambleShiftAndBurstType-VHCR -} - -IndividualTimeslotInfo-LCR-r4 ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - tfci-Existence BOOLEAN, - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - modulation ENUMERATED { mod-QPSK, mod-8PSK }, - ss-TPC-Symbols ENUMERATED { zero, one, sixteenOverSF }, - additionalSS-TPC-Symbols INTEGER(1..15) OPTIONAL -} - -IndividualTimeslotInfo-LCR-r4-ext ::= SEQUENCE { --- timeslotNumber and tfci-Existence is taken from IndividualTimeslotInfo. --- midambleShiftAndBurstType in IndividualTimeslotInfo shall be ignored. - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - modulation ENUMERATED { mod-QPSK, mod-8PSK }, - ss-TPC-Symbols ENUMERATED { zero, one, sixteenOverSF } -} - -IndividualTimeslotInfo-r7 ::= SEQUENCE { - timeslotNumber TimeslotNumber, - tfci-Existence BOOLEAN, - midambleShiftAndBurstType MidambleShiftAndBurstType-r7 -} - -IndividualTS-Interference ::= SEQUENCE { - timeslot TimeslotNumber, - ul-TimeslotInterference TDD-UL-Interference -} - -IndividualTS-InterferenceList ::= SEQUENCE (SIZE (1..maxTS)) OF - IndividualTS-Interference - -ITP ::= ENUMERATED { - mode0, mode1 } - -NidentifyAbort ::= INTEGER (1..128) - -MAC-DTX-Cycle-10ms ::= ENUMERATED { - sub-frames-5, - sub-frames-10, - sub-frames-20, - spare1 } - -MAC-DTX-Cycle-2ms ::= ENUMERATED { - sub-frames-1, - sub-frames-4, - sub-frames-5, - sub-frames-8, - sub-frames-10, - sub-frames-16, - sub-frames-20, - spare1 } - -MAC-InactivityThreshold ::= ENUMERATED { - e-dch-tti-1, - e-dch-tti-2, - e-dch-tti-4, - e-dch-tti-8, - e-dch-tti-16, - e-dch-tti-32, - e-dch-tti-64, - e-dch-tti-128, - e-dch-tti-256, - e-dch-tti-512, - e-dch-tti-Infinity, - spare5, - spare4, - spare3, - spare2, - spare1 } - -MaxAllowedUL-TX-Power ::= INTEGER (-50..33) - -MaxAvailablePCPCH-Number ::= INTEGER (1..64) -MaxPowerIncrease-r4 ::= INTEGER (0..3) - -MaxTFCI-Field2Value ::= INTEGER (1..1023) - -Measurement-Feedback-Info ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - measurementPowerOffset MeasurementPowerOffset, - feedback-cycle Feedback-cycle, - cqi-RepetitionFactor CQI-RepetitionFactor, - deltaCQI DeltaCQI - }, - tdd NULL - } -} - -Measurement-Feedback-Info-r7 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - measurementPowerOffset MeasurementPowerOffset, - feedback-cycle Feedback-cycle-r7, - cqi-RepetitionFactor CQI-RepetitionFactor, - deltaCQI DeltaCQI - }, - tdd NULL - } -} - -Measurement-Feedback-Info-r11 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - measurementPowerOffset MeasurementPowerOffset, - feedback-cycle Feedback-cycle-r7, - cqi-RepetitionFactor CQI-RepetitionFactor, - cqi-RepetitionFactor-Assisting CQI-RepetitionFactor OPTIONAL, - deltaCQI DeltaCQI-r11 - }, - tdd NULL - } -} - -Measurement-Feedback-Info-ConcurrentTTI ::= SEQUENCE { - feedback-cycle Feedback-cycle-r7 OPTIONAL, - cqi-RepetitionFactor CQI-RepetitionFactor OPTIONAL, - deltaCQI DeltaCQI OPTIONAL -} - -MidambleConfigurationBurstType1and3 ::= ENUMERATED {ms4, ms8, ms16} - -MidambleConfigurationBurstType1 ::= ENUMERATED {ms4, ms8, ms16} - -MidambleConfigurationBurstType2 ::= ENUMERATED {ms3, ms6} - -MidambleConfigurationBurstType2-VHCR ::= ENUMERATED {ms4, ms8} - -MidambleShiftAndBurstType ::= SEQUENCE { - burstType CHOICE { - type1 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - type2 SEQUENCE { - midambleConfigurationBurstType2 MidambleConfigurationBurstType2, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftShort - } - } - }, - type3 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - } - } -} - -MidambleShiftAndBurstType-VHCR ::= SEQUENCE { - burstType CHOICE { - type1 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - type2 SEQUENCE { - midambleConfigurationBurstType2 MidambleConfigurationBurstType2-VHCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftShort-VHCR - } - } - }, - type3 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - -- mbsfnBurstType4 is only used DL - mbsfnBurstType4 NULL - } -} - -MidambleShiftAndBurstType-r7 ::= SEQUENCE { - burstType CHOICE { - type1 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - type2 SEQUENCE { - midambleConfigurationBurstType2 MidambleConfigurationBurstType2, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftShort - } - } - }, - type3 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - -- mbsfnBurstType4 is only used DL - mbsfnBurstType4 NULL - } -} - -MidambleShiftAndBurstType-DL ::= SEQUENCE { - burstType CHOICE { - type1 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - type2 SEQUENCE { - midambleConfigurationBurstType2 MidambleConfigurationBurstType2, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftShort - } - } - } - } -} - -MidambleShiftAndBurstType-DL-VHCR ::= SEQUENCE { - burstType CHOICE { - type1 SEQUENCE { - midambleConfigurationBurstType1and3 MidambleConfigurationBurstType1and3, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - type2 SEQUENCE { - midambleConfigurationBurstType2 MidambleConfigurationBurstType2-VHCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftShort-VHCR - } - } - } - } -} - -MidambleShiftAndBurstType-LCR-r4 ::= SEQUENCE { - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift INTEGER (0..15) - } - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8) -} - -MidambleShiftAndBurstType-EDCH ::= SEQUENCE { - burstType CHOICE { - type1 SEQUENCE { - midambleConfigurationBurstType1 MidambleConfigurationBurstType1, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftLong - } - } - }, - type2 SEQUENCE { - midambleConfigurationBurstType2 MidambleConfigurationBurstType2, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - commonMidamble NULL, - ueSpecificMidamble SEQUENCE { - midambleShift MidambleShiftShort - } - } - } - } -} - -MidambleShiftLong ::= INTEGER (0..15) - - -MidambleShiftShort ::= INTEGER (0..5) - -MidambleShiftShort-VHCR ::= INTEGER (0..7) - -MIMO-N-M-Ratio ::= ENUMERATED { - mnm1-2, mnm2-3, mnm3-4, mnm4-5, mnm5-6, - mnm6-7, mnm7-8, mnm8-9, mnm9-10, mnm1-1 } - -MIMO-Operation ::= ENUMERATED { - start, continue } - -MIMO-Parameters-r7 ::= SEQUENCE { - mimoOperation MIMO-Operation, - mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimoPilotConfiguration MIMO-PilotConfiguration OPTIONAL -} - -MIMO4x4-Parameters ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - mimo4x4N-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimo4x4PilotConfiguration MIMO4x4-PilotConfiguration OPTIONAL, - precodingWeightSetRestriction BIT STRING (SIZE (64)) OPTIONAL - } - } -} - -MIMO-Parameters-v7f0ext ::= MIMO-PilotConfiguration-v7f0ext - -MIMO-Parameters-v7g0ext ::= SEQUENCE { - precodingWeightSetRestriction ENUMERATED { true } OPTIONAL -} - -MIMO-Parameters-r8 ::= SEQUENCE { - mimoOperation MIMO-Operation, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimoPilotConfiguration MIMO-PilotConfiguration OPTIONAL - }, - tdd CHOICE { - tdd128 SEQUENCE { - mimoSFModeForHSPDSCHDualStream ENUMERATED {sf1, sf1sf16}, - hs-sich-ReferenceSignalInfoList HS-SICH-ReferenceSignalInfoList OPTIONAL - }, - tdd384-tdd768 NULL - } - } -} - -MIMO-Parameters-r9 ::= SEQUENCE { - mimoOperation MIMO-Operation, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimoPilotConfiguration MIMO-PilotConfiguration-r9 OPTIONAL, - precodingWeightSetRestriction ENUMERATED { true } OPTIONAL - }, - tdd CHOICE { - tdd128 SEQUENCE { - mimoSFModeForHSPDSCHDualStream ENUMERATED {sf1, sf1sf16}, - hs-sich-ReferenceSignalInfoList HS-SICH-ReferenceSignalInfoList OPTIONAL - }, - tdd384-tdd768 NULL - } - } -} - -MIMO-PilotConfiguration ::= SEQUENCE { - secondCPICH-Pattern CHOICE { - normalPattern NULL, - diversityPattern SEQUENCE { - channelisationCode ChannelisationCode256 - } - } -} - -MIMO-PilotConfiguration-v7f0ext ::= SEQUENCE { - s-cpich-PowerOffset-Mimo S-CPICH-PowerOffset-MIMO OPTIONAL -} - -MIMO-PilotConfiguration-r9 ::= SEQUENCE { - secondCPICH-Pattern CHOICE { - normalPattern NULL, - diversityPattern SEQUENCE { - channelisationCode ChannelisationCode256, - s-cpich-PowerOffset-Mimo S-CPICH-PowerOffset-MIMO OPTIONAL - } - } -} - -MIMO4x4-PilotConfiguration ::= SEQUENCE { - antenna2 MIMO-PilotConfiguration-r9 OPTIONAL, - antenna3And4 Antenna3And4 OPTIONAL -} - -MinimumSpreadingFactor ::= ENUMERATED { - sf4, sf8, sf16, sf32, - sf64, sf128, sf256 } - -MinReduced-E-DPDCH-GainFactor ::= ENUMERATED { - m8-15, m11-15, m15-15, m21-15, m30-15, - m42-15, m60-15, m84-15 } - -MultiCodeInfo ::= INTEGER (1..16) - --- These IEs are applied for 1.28 Mcps TDD only -Multi-frequencyInfo-LCR-r7 ::= SEQUENCE { - -- If the secondary frequency is present, it indicates working frequency - secondFrequencyInfo FrequencyInfoTDD OPTIONAL, - fPachFrequencyInfo FrequencyInfoTDD OPTIONAL, - --If a cell UpPCH uses other uplink service timeslot, it indicates the UpPCH position - upPCHpositionInfo UpPCHposition-LCR OPTIONAL -} - -MultiflowCellType ::= ENUMERATED { intra-nodeB, inter-nodeB } - -MultiflowConfigurationInfo ::= SEQUENCE { - cellType MultiflowCellType, - timeReferenceCell ENUMERATED { true } OPTIONAL -} - -MU-MIMO-Info-TDD128 ::= CHOICE { - continue NULL, - newConfiguration SEQUENCE { - mu-MIMO-Operation MU-MIMO-Operation, - standaloneMidambleInfo StandaloneMidambleInfo-TDD128 OPTIONAL - } -} - -MU-MIMO-Operation ::= ENUMERATED { - uL, dL, uLandDL, spare } - -N-EOT ::= INTEGER (0..7) - -N-GAP ::= ENUMERATED { - f2, f4, f8 } - -N-PCH ::= INTEGER (1..8) - -N-StartMessage ::= INTEGER (1..8) - -NB01 ::= INTEGER (0..50) - -NewTiming ::= SEQUENCE { - enablingDelay EnablingDelay, - ue-dtx-drx-Offset UE-DTX-DRX-Offset -} - -NF-Max ::= INTEGER (1..64) - -NodeB-Trigger-HS-DPCCH-Transmission ::= SEQUENCE { - hs-dpcch-TransmitContinuationOffset ENUMERATED { - ms10, ms20, ms30, ms40, ms80, ms160, - ms320, ms800} OPTIONAL -} - -Non-ScheduledTransGrantInfoTDD ::= CHOICE { - tdd384-768 SEQUENCE { - timeslotResourceRelatedInfo BIT STRING (SIZE (13)), - powerResourceRelatedInfo INTEGER (1..32), - activationTime ActivationTime, - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL, - codeResourceInfo UL-TS-ChannelisationCode - }, - tdd128 SEQUENCE { - n-E-UCCH INTEGER (1..8) OPTIONAL, - n-E-HICH INTEGER (4..15) OPTIONAL, - timeslotResourceRelatedInfo BIT STRING (SIZE (5)), - powerResourceRelatedInfo INTEGER (1..32), - activationTime ActivationTime, - sfnNum INTEGER (0..1), - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL, - codeResourceInfo UL-TS-ChannelisationCode, - e-HICH-Info SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - channelisation-Code HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - signatureSequenceGroupIndex INTEGER (0..19) - } - } -} - -Non-ScheduledTransGrantInfoTDD-ext ::= CHOICE { - tdd384-768 NULL, - tdd128 SEQUENCE { - t-SI-nst ENUMERATED { - everyEDCHTTI, ms20, ms40, ms60, ms80, ms160, - ms200 } OPTIONAL - } -} - -Non-ScheduledTransGrantInfoTDD-r9 ::= CHOICE { - tdd384-768 SEQUENCE { - timeslotResourceRelatedInfo BIT STRING (SIZE (13)), - powerResourceRelatedInfo INTEGER (1..32), - activationTime ActivationTime, - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL, - codeResourceInfo UL-TS-ChannelisationCode - }, - tdd128 SEQUENCE { - n-E-UCCH INTEGER (1..8) OPTIONAL, - n-E-HICH INTEGER (4..15) OPTIONAL, - timeslotResourceRelatedInfo BIT STRING (SIZE (5)), - powerResourceRelatedInfo INTEGER (1..32), - activationTime ActivationTime, - sfnNum INTEGER (0..1), - repetitionPeriodAndLength RepetitionPeriodAndLength OPTIONAL, - codeResourceInfo UL-TS-ChannelisationCode, - e-HICH-Info SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4, - channelisation-Code HS-ChannelisationCode-LCR, - midambleAllocationMode CHOICE { - defaultMidamble NULL, - ueSpecificMidamble INTEGER (0..15) - }, - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - signatureSequenceGroupIndex INTEGER (0..19) - }, - t-SI-nst ENUMERATED { - everyEDCHTTI, ms20, ms40, ms60, ms80, ms160, - ms200 } OPTIONAL - } -} - -NumberOfDPDCH ::= INTEGER (1..maxDPDCH-UL) - -NumberOfFBI-Bits ::= INTEGER (1..2) - -NumberOfTPC-Bits ::= ENUMERATED { tpc4 } - -OpenLoopPowerControl-TDD ::= SEQUENCE { - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, - -- alpha, prach-ConstantValue, dpch-ConstantValue and pusch-ConstantValue - -- shall be ignored in 1.28Mcps TDD mode. - alpha Alpha OPTIONAL, - prach-ConstantValue ConstantValueTdd, - dpch-ConstantValue ConstantValueTdd, - pusch-ConstantValue ConstantValueTdd OPTIONAL -} - -OpenLoopPowerControl-IPDL-TDD-r4 ::= SEQUENCE { - ipdl-alpha Alpha, - maxPowerIncrease MaxPowerIncrease-r4 -} - -PagingIndicatorLength ::= ENUMERATED { - pi4, pi8, pi16 } - -PC-Preamble ::= INTEGER (0..7) - -PCCH-InformationList ::= SEQUENCE { - paging-associatedHspdschInfo SEQUENCE (SIZE (1.. maxSCCPCH)) OF - SEQUENCE { - hs-pdsch-MidambleConfiguration HS-PDSCH-Midamble-Configuration-TDD128, - timeslotResourceRelatedInfo BIT STRING (SIZE (6)), - codeResourceInformation CodeResourceInformation-TDD128 - }, - paging-sub-Channel-size INTEGER (1..3), - transportBlockSizeList SEQUENCE (SIZE (1..2)) OF TransportBlockSizeIndex -} - -PCP-Length ::= ENUMERATED { - as0, as8 } - -PCPCH-ChannelInfo ::= SEQUENCE { - pcpch-UL-ScramblingCode INTEGER (0..79), - pcpch-DL-ChannelisationCode INTEGER (0..511), - pcpch-DL-ScramblingCode SecondaryScramblingCode OPTIONAL, - pcp-Length PCP-Length, - ucsm-Info UCSM-Info OPTIONAL -} - -PCPCH-ChannelInfoList ::= SEQUENCE (SIZE (1..maxPCPCHs)) OF - PCPCH-ChannelInfo - -PCPICH-UsageForChannelEst ::= ENUMERATED { - mayBeUsed, - shallNotBeUsed } - -PDSCH-CapacityAllocationInfo ::= SEQUENCE { - -- pdsch-PowerControlInfo is conditional on new-configuration branch below, if this - -- selected the IE is OPTIONAL otherwise it should not be sent - pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL, - pdsch-AllocationPeriodInfo AllocationPeriodInfo, - configuration CHOICE { - old-Configuration SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - pdsch-Identity PDSCH-Identity - }, - new-Configuration SEQUENCE { - pdsch-Info PDSCH-Info, - pdsch-Identity PDSCH-Identity OPTIONAL - } - } -} - -PDSCH-CapacityAllocationInfo-r4 ::= SEQUENCE { - pdsch-AllocationPeriodInfo AllocationPeriodInfo, - configuration CHOICE { - old-Configuration SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - pdsch-Identity PDSCH-Identity - }, - new-Configuration SEQUENCE { - pdsch-Info PDSCH-Info-r4, - pdsch-Identity PDSCH-Identity OPTIONAL, - pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL - } - } -} - -PDSCH-CapacityAllocationInfo-r7 ::= SEQUENCE { - pdsch-AllocationPeriodInfo AllocationPeriodInfo, - configuration CHOICE { - old-Configuration SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - pdsch-Identity PDSCH-Identity - }, - new-Configuration SEQUENCE { - pdsch-Info PDSCH-Info-r7, - pdsch-Identity PDSCH-Identity OPTIONAL, - pdsch-PowerControlInfo PDSCH-PowerControlInfo OPTIONAL - } - } -} - -PDSCH-CodeInfo ::= SEQUENCE { - spreadingFactor SF-PDSCH, - codeNumber CodeNumberDSCH, - multiCodeInfo MultiCodeInfo -} - -PDSCH-CodeInfoList ::= SEQUENCE (SIZE (1..maxTFCI-2-Combs)) OF - PDSCH-CodeInfo - -PDSCH-CodeMap ::= SEQUENCE { - spreadingFactor SF-PDSCH, - multiCodeInfo MultiCodeInfo, - codeNumberStart CodeNumberDSCH, - codeNumberStop CodeNumberDSCH -} - -PDSCH-CodeMapList ::= SEQUENCE (SIZE (1..maxPDSCH-TFCIgroups)) OF - PDSCH-CodeMap - -PDSCH-CodeMapping ::= SEQUENCE { - dl-ScramblingCode SecondaryScramblingCode OPTIONAL, - signallingMethod CHOICE { - codeRange CodeRange, - tfci-Range DSCH-MappingList, - explicit-config PDSCH-CodeInfoList, - replace ReplacedPDSCH-CodeInfoList - } -} - -PDSCH-Identity ::= INTEGER (1..hiPDSCHidentities) - -PDSCH-Info ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - pdsch-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL -} - -PDSCH-Info-r4 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - pdsch-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL - }, - tdd128 SEQUENCE { - pdsch-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL - } - } -} - -PDSCH-Info-r7 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - pdsch-TimeslotsCodes DownlinkTimeslotsCodes OPTIONAL - }, - tdd768 SEQUENCE { - pdsch-TimeslotsCodes DownlinkTimeslotsCodes-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - pdsch-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL - } - } -} - -PDSCH-Info-LCR-r4 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - pdsch-TimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 OPTIONAL -} - -PDSCH-PowerControlInfo ::= SEQUENCE { - tpc-StepSizeTDD TPC-StepSizeTDD OPTIONAL, - ul-CCTrChTPCList UL-CCTrChTPCList OPTIONAL -} - -PDSCH-SHO-DCH-Info ::= SEQUENCE { - dsch-RadioLinkIdentifier DSCH-RadioLinkIdentifier, - rl-IdentifierList RL-IdentifierList OPTIONAL -} - -PDSCH-SysInfo ::= SEQUENCE { - pdsch-Identity PDSCH-Identity, - pdsch-Info PDSCH-Info, - dsch-TFS TransportFormatSet OPTIONAL, - dsch-TFCS TFCS OPTIONAL -} - -PDSCH-SysInfo-VHCR-r7 ::= SEQUENCE { - pdsch-Identity PDSCH-Identity, - pdsch-Info PDSCH-Info-r7, - dsch-TransportChannelsInfo DSCH-TransportChannelsInfo OPTIONAL, - dsch-TFCS TFCS OPTIONAL -} - -PDSCH-SysInfo-HCR-r5 ::= SEQUENCE { - pdsch-Identity PDSCH-Identity, - pdsch-Info PDSCH-Info, - dsch-TransportChannelsInfo DSCH-TransportChannelsInfo OPTIONAL, - dsch-TFCS TFCS OPTIONAL -} - -PDSCH-SysInfo-LCR-r4 ::= SEQUENCE { - pdsch-Identity PDSCH-Identity, - pdsch-Info PDSCH-Info-LCR-r4, - dsch-TFS TransportFormatSet OPTIONAL, - dsch-TFCS TFCS OPTIONAL -} - -PDSCH-SysInfoList ::= SEQUENCE (SIZE (1..maxPDSCH)) OF - PDSCH-SysInfo - -PDSCH-SysInfoList-VHCR-r7 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF PDSCH-SysInfo-VHCR-r7 - -PDSCH-SysInfoList-HCR-r5 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF PDSCH-SysInfo-HCR-r5 - -PDSCH-SysInfoList-LCR-r4 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF - PDSCH-SysInfo-LCR-r4 - -PDSCH-SysInfoList-SFN ::= SEQUENCE (SIZE (1..maxPDSCH)) OF - SEQUENCE { - pdsch-SysInfo PDSCH-SysInfo, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -PDSCH-SysInfoList-SFN-HCR-r5 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF - SEQUENCE { - pdsch-SysInfo PDSCH-SysInfo-HCR-r5, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -PDSCH-SysInfoList-SFN-LCR-r4 ::= SEQUENCE (SIZE (1..maxPDSCH)) OF - SEQUENCE { - pdsch-SysInfo PDSCH-SysInfo-LCR-r4, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -PersistenceScalingFactor ::= ENUMERATED { - psf0-9, psf0-8, psf0-7, psf0-6, - psf0-5, psf0-4, psf0-3, psf0-2 } - -PersistenceScalingFactorList ::= SEQUENCE (SIZE (1..maxASCpersist)) OF - PersistenceScalingFactor - -PI-CountPerFrame ::= ENUMERATED { - e18, e36, e72, e144 } - -PichChannelisationCodeList-LCR-r4 ::= SEQUENCE (SIZE (1..2)) OF - DL-TS-ChannelisationCode - -PICH-ForHSDPASupportedPaging ::= SEQUENCE { - hsdpa-AssociatedPichInfo PICH-Info, - hs-pdschChannelisationCode INTEGER(1..15) -} - -PICH-ForHSDPASupportedPaging-TDD128 ::= CHOICE { - implicit SEQUENCE { - occurrenceSequenceNumberOfPICH OccurrenceSequenceNumberOfPICH OPTIONAL - }, - explicit PICH-Info-LCR-r4 -} - -PICH-Info ::= CHOICE { - fdd SEQUENCE { - channelisationCode256 ChannelisationCode256, - pi-CountPerFrame PI-CountPerFrame, - sttd-Indicator BOOLEAN - }, - tdd SEQUENCE { - channelisationCode TDD-PICH-CCode OPTIONAL, - timeslot TimeslotNumber OPTIONAL, - midambleShiftAndBurstType MidambleShiftAndBurstType, - repetitionPeriodLengthOffset RepPerLengthOffset-PICH OPTIONAL, - pagingIndicatorLength PagingIndicatorLength DEFAULT pi4, - n-GAP N-GAP DEFAULT f4, - n-PCH N-PCH DEFAULT 2 - } -} - -PICH-Info-HCR-VHCR-r7 ::= SEQUENCE { - channelisationCode CHOICE { - tdd384 TDD-PICH-CCode, - tdd768 TDD768-PICH-CCode - } OPTIONAL, - timeslot TimeslotNumber OPTIONAL, - midambleShiftAndBurstType MidambleShiftAndBurstType, - repetitionPeriodLengthOffset RepPerLengthOffset-PICH OPTIONAL, - pagingIndicatorLength PagingIndicatorLength DEFAULT pi4, - n-GAP N-GAP DEFAULT f4, - n-PCH N-PCH DEFAULT 2 -} - -PICH-Info-LCR-r4 ::= SEQUENCE { - timeslot TimeslotNumber-LCR-r4 OPTIONAL, - pichChannelisationCodeList-LCR-r4 PichChannelisationCodeList-LCR-r4, - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - repetitionPeriodLengthOffset RepPerLengthOffset-PICH OPTIONAL, - pagingIndicatorLength PagingIndicatorLength DEFAULT pi4, - n-GAP N-GAP DEFAULT f4, - n-PCH N-PCH DEFAULT 2 -} - -PICH-PowerOffset ::= INTEGER (-10..5) - -PilotBits128 ::= ENUMERATED { - pb4, pb8 } - -PilotBits256 ::= ENUMERATED { - pb2, pb4, pb8 } - - -- Actual measurement power offset value = IE value * 0.5 -MeasurementPowerOffset ::= INTEGER (-12..26) - -PLCCH-Info ::= SEQUENCE { - plcchSequenceNumber INTEGER(1..14), - timeslotNumber TimeslotNumber-LCR-r4, - channelisationCode DL-TS-ChannelisationCode, - tpcCommandTargetRate TPC-CommandTargetRate -} - -PositionFixedOrFlexible ::= ENUMERATED { - fixed, - flexible } - -PowerControlAlgorithm ::= CHOICE { - algorithm1 TPC-StepSizeFDD, - algorithm2 NULL -} - -PowerControlGAP ::= INTEGER (0..255) - -PowerOffsetPilot-pdpdch ::= INTEGER (0..24) - -PowerOffsetTPC-pdpdch ::= INTEGER (0..24) - -PowerRampStep ::= INTEGER (1..8) - -PRACH-ChanCodes-LCR-r4 ::= SEQUENCE (SIZE (1..4)) OF - TDD-PRACH-CCode-LCR-r4 - -PRACH-ChanCodes-List-LCR ::= SEQUENCE (SIZE (1..2)) OF - TDD-PRACH-CCode-LCR-r4 - -PRACH-Definition-LCR-r4 ::= SEQUENCE { - timeslot TimeslotNumber-PRACH-LCR-r4, - prach-ChanCodes-LCR PRACH-ChanCodes-LCR-r4, - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - fpach-Info FPACH-Info-r4 -} - -PRACH-Information-LCR ::= SEQUENCE { - timeslot TimeslotNumber-PRACH-LCR-r4, - prach-ChanCodes-list-LCR PRACH-ChanCodes-List-LCR, - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - fpach-Info FPACH-Info-r4 OPTIONAL -} - -PRACH-Information-LCR-List ::= SEQUENCE (SIZE (1..maxPRACH-FPACH)) OF - PRACH-Information-LCR - -PRACH-Midamble ::= ENUMERATED { - direct, - direct-Inverted } - -PRACH-Partitioning ::= CHOICE { - fdd SEQUENCE (SIZE (1..maxASC)) OF - -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-FDD are listed, - -- the remaining (NumASC+2 through maxASC) ASCs are unspecified. - ASCSetting-FDD, - tdd SEQUENCE (SIZE (1..maxASC)) OF - -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-TDD are listed, - -- the remaining (NumASC+2 through maxASC) ASCs are unspecified. - ASCSetting-TDD -} - -PRACH-Partitioning-r7 ::= CHOICE { - fdd SEQUENCE (SIZE (1..maxASC)) OF - -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-FDD are listed, - -- the remaining (NumASC+2 through maxASC) ASCs are unspecified. - ASCSetting-FDD, - tdd SEQUENCE (SIZE (1..maxASC)) OF - -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-TDD are listed, - -- the remaining (NumASC+2 through maxASC) ASCs are unspecified. - ASCSetting-TDD-r7 -} - -PRACH-Partitioning-LCR-r4 ::= SEQUENCE (SIZE (1..maxASC)) OF - -- TABULAR: If only "NumASC+1" (with, NumASC+1 < maxASC) ASCSetting-TDD-LCR-r4 are listed, - -- the remaining (NumASC+2 through maxASC) ASCs are unspecified. - ASCSetting-TDD-LCR-r4 - -PRACH-PowerOffset ::= SEQUENCE { - powerRampStep PowerRampStep, - preambleRetransMax PreambleRetransMax -} - -PRACH-PreambleForEnhancedUplink ::= SEQUENCE { - availableSignatures AvailableSignatures OPTIONAL, - e-ai-Indication BOOLEAN, - preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber OPTIONAL, - availableSubChannelNumbers AvailableSubChannelNumbers OPTIONAL, - prach-Partitioning PRACH-Partitioning-r7 OPTIONAL, - persistenceScalingFactorList PersistenceScalingFactorList OPTIONAL, - ac-To-ASC-MappingTable AC-To-ASC-MappingTable OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - constantValue ConstantValue OPTIONAL, - prach-PowerOffset PRACH-PowerOffset OPTIONAL, - rach-TransmissionParameters RACH-TransmissionParameters OPTIONAL, - aich-Info AICH-Info OPTIONAL, - powerOffsetPp-e INTEGER (-5..10) -} -PRACH-PreambleForEnhancedUplinkExt ::= SEQUENCE { - availableSignatures AvailableSignatures, - preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber, - aich-Info AICH-Info-Compressed OPTIONAL -} - -PRACH-PreambleForEnhancedUplinkExtList ::= SEQUENCE (SIZE (1..maxPRACH-EUL)) OF - PRACH-PreambleForEnhancedUplinkExtWithWeight - - -PRACH-PreambleForEnhancedUplinkExtWithWeight ::= SEQUENCE { - prach-PreambleForEnhancedUplinkExt PRACH-PreambleForEnhancedUplinkExt, - -- Actual value weight = IE value * 0.2 - weight INTEGER (1..5) OPTIONAL -} - - - - -PRACH-RACH-Info ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - availableSignatures AvailableSignatures, - availableSF SF-PRACH, - preambleScramblingCodeWordNumber PreambleScramblingCodeWordNumber, - puncturingLimit PuncturingLimit, - availableSubChannelNumbers AvailableSubChannelNumbers - }, - tdd SEQUENCE { - timeslot TimeslotNumber, - channelisationCodeList TDD-PRACH-CCodeList, - prach-Midamble PRACH-Midamble - } - } -} - -PRACH-RACH-Info-VHCR-r7 ::= SEQUENCE { - timeslot TimeslotNumber, - channelisationCodeList TDD768-PRACH-CCodeList, - prach-Midamble PRACH-Midamble -} - -PRACH-RACH-Info-LCR-v770ext ::= SEQUENCE { - e-RUCCH-Sync-UL-Codes-Bitmap Sync-UL-Codes-Bitmap -} - -PRACH-RACH-Info-LCR-r4 ::= SEQUENCE { - sync-UL-Info SYNC-UL-Info-r4, - prach-DefinitionList SEQUENCE (SIZE (1..maxPRACH-FPACH)) OF - PRACH-Definition-LCR-r4 -} - -PRACH-SystemInformation ::= SEQUENCE { - prach-RACH-Info PRACH-RACH-Info, - transportChannelIdentity TransportChannelIdentity, - rach-TransportFormatSet TransportFormatSet OPTIONAL, - rach-TFCS TFCS OPTIONAL, - prach-Partitioning PRACH-Partitioning OPTIONAL, - persistenceScalingFactorList PersistenceScalingFactorList OPTIONAL, - ac-To-ASC-MappingTable AC-To-ASC-MappingTable OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - constantValue ConstantValue OPTIONAL, - prach-PowerOffset PRACH-PowerOffset OPTIONAL, - rach-TransmissionParameters RACH-TransmissionParameters OPTIONAL, - aich-Info AICH-Info OPTIONAL - }, - tdd NULL - } -} - -PRACH-SystemInformation-VHCR-r7 ::= SEQUENCE { - prach-RACH-Info PRACH-RACH-Info-VHCR-r7, - prach-Partitioning PRACH-Partitioning-r7 OPTIONAL -} - -PRACH-SystemInformation-LCR-r4 ::= SEQUENCE { - prach-RACH-Info-LCR PRACH-RACH-Info-LCR-r4, - rach-TransportFormatSet-LCR TransportFormatSet-LCR OPTIONAL, - prach-Partitioning-LCR PRACH-Partitioning-LCR-r4 OPTIONAL -} - -PRACH-SystemInformation-LCR-v770ext ::= SEQUENCE { - prach-RACH-Info-LCR PRACH-RACH-Info-LCR-v770ext -} - -PRACH-SystemInformationList ::= SEQUENCE (SIZE (1..maxPRACH)) OF - PRACH-SystemInformation - -PRACH-SystemInformationList-VHCR-r7 ::= SEQUENCE (SIZE (1..maxPRACH)) OF - PRACH-SystemInformation-VHCR-r7 - -PRACH-SystemInformationList-LCR-r4 ::= SEQUENCE (SIZE (1..maxPRACH)) OF - PRACH-SystemInformation-LCR-r4 - -PRACH-SystemInformationList-LCR-v770ext ::= SEQUENCE (SIZE (1..maxPRACH)) OF - PRACH-SystemInformation-LCR-v770ext - -PreambleRetransMax ::= INTEGER (1..64) - -PreambleScramblingCodeWordNumber ::= INTEGER (0..15) - -PreDefPhyChConfiguration ::= SEQUENCE { - ul-DPCH-InfoPredef UL-DPCH-InfoPredef, - dl-CommonInformationPredef DL-CommonInformationPredef OPTIONAL -} - -PreDefPhyChConfiguration-v770ext ::= SEQUENCE { - ul-DPCH-InfoPredef UL-DPCH-InfoPredef-v770ext -} - -PrimaryCCPCH-Info ::= CHOICE { - fdd SEQUENCE { - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - -- syncCase should be ignored for 1.28Mcps TDD mode - syncCase CHOICE { - syncCase1 SEQUENCE { - timeslot TimeslotNumber - }, - syncCase2 SEQUENCE { - timeslotSync2 TimeslotSync2 - } - } OPTIONAL, - cellParametersID CellParametersID OPTIONAL, - sctd-Indicator BOOLEAN - } -} - -PrimaryCCPCH-Info-r4 ::= CHOICE { - fdd SEQUENCE { - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - tddOption CHOICE { - tdd384-tdd768 SEQUENCE { - syncCase CHOICE { - syncCase1 SEQUENCE { - timeslot TimeslotNumber - }, - syncCase2 SEQUENCE { - timeslotSync2 TimeslotSync2 - } - } OPTIONAL - }, - tdd128 SEQUENCE { - tstd-Indicator BOOLEAN - } - }, - cellParametersID CellParametersID OPTIONAL, - sctd-Indicator BOOLEAN - } -} - -PrimaryCCPCH-Info-LCR-r4 ::= SEQUENCE { - tstd-Indicator BOOLEAN, - cellParametersID CellParametersID OPTIONAL, - sctd-Indicator BOOLEAN -} - --- For 1.28Mcps TDD, the following IE includes elements for the PCCPCH Info additional to those --- in PrimaryCCPCH-Info -PrimaryCCPCH-Info-LCR-r4-ext ::= SEQUENCE { - tstd-Indicator BOOLEAN -} - -PrimaryCCPCH-InfoPost ::= SEQUENCE { - syncCase CHOICE { - syncCase1 SEQUENCE { - timeslot TimeslotNumber - }, - syncCase2 SEQUENCE { - timeslotSync2 TimeslotSync2 - } - }, - cellParametersID CellParametersID, - sctd-Indicator BOOLEAN -} - -PrimaryCCPCH-InfoPostTDD-LCR-r4 ::= SEQUENCE { - tstd-Indicator BOOLEAN, - cellParametersID CellParametersID, - sctd-Indicator BOOLEAN -} - -PrimaryCCPCH-TX-Power ::= INTEGER (6..43) - -PrimaryCPICH-Info ::= SEQUENCE { - primaryScramblingCode PrimaryScramblingCode -} - -PrimaryCPICH-TX-Power ::= INTEGER (-10..50) - -PrimaryScramblingCode ::= INTEGER (0..511) - -PuncturingLimit ::= ENUMERATED { - pl0-40, pl0-44, pl0-48, pl0-52, pl0-56, - pl0-60, pl0-64, pl0-68, pl0-72, pl0-76, - pl0-80, pl0-84, pl0-88, pl0-92, pl0-96, pl1 } - -PUSCH-CapacityAllocationInfo ::= SEQUENCE { - pusch-Allocation CHOICE { - pusch-AllocationPending NULL, - pusch-AllocationAssignment SEQUENCE { - pusch-AllocationPeriodInfo AllocationPeriodInfo, - pusch-PowerControlInfo UL-TargetSIR OPTIONAL, - configuration CHOICE { - old-Configuration SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - pusch-Identity PUSCH-Identity - }, - new-Configuration SEQUENCE { - pusch-Info PUSCH-Info, - pusch-Identity PUSCH-Identity OPTIONAL - } - } - } - } -} - -PUSCH-CapacityAllocationInfo-r4 ::= SEQUENCE { - pusch-Allocation CHOICE { - pusch-AllocationPending NULL, - pusch-AllocationAssignment SEQUENCE { - pusch-AllocationPeriodInfo AllocationPeriodInfo, - pusch-PowerControlInfo PUSCH-PowerControlInfo-r4 OPTIONAL, - configuration CHOICE { - old-Configuration SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - pusch-Identity PUSCH-Identity - }, - new-Configuration SEQUENCE { - pusch-Info PUSCH-Info-r4, - pusch-Identity PUSCH-Identity OPTIONAL - } - } - } - } -} - -PUSCH-CapacityAllocationInfo-r7 ::= SEQUENCE { - pusch-Allocation CHOICE { - pusch-AllocationPending NULL, - pusch-AllocationAssignment SEQUENCE { - pusch-AllocationPeriodInfo AllocationPeriodInfo, - pusch-PowerControlInfo PUSCH-PowerControlInfo-r7 OPTIONAL, - configuration CHOICE { - old-Configuration SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - pusch-Identity PUSCH-Identity - }, - new-Configuration SEQUENCE { - pusch-Info PUSCH-Info-VHCR, - pusch-Identity PUSCH-Identity OPTIONAL - } - } - } - } -} - -PUSCH-Identity ::= INTEGER (1..hiPUSCHidentities) - -PUSCH-Info ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - pusch-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL -} - -PUSCH-Info-r4 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - pusch-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL - }, - tdd128 SEQUENCE { - pusch-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 OPTIONAL - } - } -} - -PUSCH-Info-VHCR ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - pusch-TimeslotsCodes-VHCR UplinkTimeslotsCodes-VHCR OPTIONAL -} - -PUSCH-Info-LCR-r4 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - pusch-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 OPTIONAL -} - -PUSCH-PowerControlInfo-r4 ::= SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-PUSCHdes for 1.28Mcps TDD - -- Actual value PRX-PUSCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR, - tddOption CHOICE { - tdd384 NULL, - tdd128 SEQUENCE { - tpc-StepSize TPC-StepSizeTDD OPTIONAL - } - } -} - -PUSCH-PowerControlInfo-r7 ::= SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-PUSCHdes for 1.28Mcps TDD - -- Actual value PRX-PUSCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR, - tddOption CHOICE { - tdd384 NULL, - tdd768 NULL, - tdd128 SEQUENCE { - tpc-StepSize TPC-StepSizeTDD OPTIONAL - } - } -} - -PUSCH-SysInfo ::= SEQUENCE { - pusch-Identity PUSCH-Identity, - pusch-Info PUSCH-Info, - usch-TFS TransportFormatSet OPTIONAL, - usch-TFCS TFCS OPTIONAL -} - -PUSCH-SysInfo-VHCR ::= SEQUENCE { - pusch-Identity PUSCH-Identity, - pusch-Info-VHCR PUSCH-Info-VHCR, - usch-TransportChannelsInfo USCH-TransportChannelsInfo OPTIONAL, - usch-TFCS TFCS OPTIONAL -} - -PUSCH-SysInfo-HCR-r5 ::= SEQUENCE { - pusch-Identity PUSCH-Identity, - pusch-Info PUSCH-Info, - usch-TransportChannelsInfo USCH-TransportChannelsInfo OPTIONAL, - usch-TFCS TFCS OPTIONAL -} - -PUSCH-SysInfo-LCR-r4 ::= SEQUENCE { - pusch-Identity PUSCH-Identity, - pusch-Info PUSCH-Info-LCR-r4, - usch-TFS TransportFormatSet OPTIONAL, - usch-TFCS TFCS OPTIONAL -} - -PUSCH-SysInfoList ::= SEQUENCE (SIZE (1..maxPUSCH)) OF - PUSCH-SysInfo - -PUSCH-SysInfoList-HCR-r5 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF PUSCH-SysInfo-HCR-r5 - -PUSCH-SysInfoList-LCR-r4 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF - PUSCH-SysInfo-LCR-r4 - -PUSCH-SysInfoList-SFN ::= SEQUENCE (SIZE (1..maxPUSCH)) OF - SEQUENCE { - pusch-SysInfo PUSCH-SysInfo, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -PUSCH-SysInfoList-SFN-HCR-r5 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF - SEQUENCE { - pusch-SysInfo PUSCH-SysInfo-HCR-r5, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -PUSCH-SysInfoList-SFN-LCR-r4 ::= SEQUENCE (SIZE (1..maxPUSCH)) OF - SEQUENCE { - pusch-SysInfo PUSCH-SysInfo-LCR-r4, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -PUSCH-SysInfoList-SFN-VHCR ::= SEQUENCE (SIZE (1..maxPUSCH)) OF - SEQUENCE { - pusch-SysInfo-VHCR PUSCH-SysInfo-VHCR, - sfn-TimeInfo SFN-TimeInfo OPTIONAL -} - -RACH-TransmissionParameters ::= SEQUENCE { - mmax INTEGER (1..32), - nb01Min NB01, - nb01Max NB01 -} - -ReducedScramblingCodeNumber ::= INTEGER (0..8191) - -Reference-Beta-QPSK ::= SEQUENCE { - reference-Code-Rate INTEGER (0..10), - reference-Beta INTEGER (-15..16) -} - -Reference-Beta-16QAM ::= SEQUENCE { - reference-Code-Rate INTEGER (0..10), - reference-Beta INTEGER (-15..16) -} - -RepetitionPeriodAndLength ::= CHOICE { - repetitionPeriod1 NULL, - -- repetitionPeriod2 could just as well be NULL also. - repetitionPeriod2 INTEGER (1..1), - repetitionPeriod4 INTEGER (1..3), - repetitionPeriod8 INTEGER (1..7), - repetitionPeriod16 INTEGER (1..15), - repetitionPeriod32 INTEGER (1..31), - repetitionPeriod64 INTEGER (1..63) -} - -RepetitionPeriodLengthAndOffset ::= CHOICE { - repetitionPeriod1 NULL, - repetitionPeriod2 SEQUENCE { - length NULL, - offset INTEGER (0..1) - }, - repetitionPeriod4 SEQUENCE { - length INTEGER (1..3), - offset INTEGER (0..3) - }, - repetitionPeriod8 SEQUENCE { - length INTEGER (1..7), - offset INTEGER (0..7) - }, - repetitionPeriod16 SEQUENCE { - length INTEGER (1..15), - offset INTEGER (0..15) - }, - repetitionPeriod32 SEQUENCE { - length INTEGER (1..31), - offset INTEGER (0..31) - }, - repetitionPeriod64 SEQUENCE { - length INTEGER (1..63), - offset INTEGER (0..63) - } -} - -RepetitionPeriodAndLengthForSPS ::= CHOICE { - repetitionPeriod1 NULL, - -- repetitionPeriod2 could just as well be NULL also. - repetitionPeriod2 INTEGER (1..1), - repetitionPeriod4 INTEGER (1..3), - repetitionPeriod8 INTEGER (1..7), - repetitionPeriod16 INTEGER (1..15), - repetitionPeriod32 INTEGER (1..31) -} - -ReplacedPDSCH-CodeInfo ::= SEQUENCE { - tfci-Field2 MaxTFCI-Field2Value, - spreadingFactor SF-PDSCH, - codeNumber CodeNumberDSCH, - multiCodeInfo MultiCodeInfo -} - -ReplacedPDSCH-CodeInfoList ::= SEQUENCE (SIZE (1..maxTFCI-2-Combs)) OF - ReplacedPDSCH-CodeInfo - -RepPerLengthOffset-PICH ::= CHOICE { - rpp4-2 INTEGER (0..3), - rpp8-2 INTEGER (0..7), - rpp8-4 INTEGER (0..7), - rpp16-2 INTEGER (0..15), - rpp16-4 INTEGER (0..15), - rpp32-2 INTEGER (0..31), - rpp32-4 INTEGER (0..31), - rpp64-2 INTEGER (0..63), - rpp64-4 INTEGER (0..63) -} - -RepPerLengthOffset-MICH ::= CHOICE { - rpp4-2 INTEGER (0..3), - rpp8-2 INTEGER (0..7), - rpp8-4 INTEGER (0..7), - rpp16-2 INTEGER (0..15), - rpp16-4 INTEGER (0..15), - rpp32-2 INTEGER (0..31), - rpp32-4 INTEGER (0..31), - rpp64-2 INTEGER (0..63), - rpp64-4 INTEGER (0..63) -} - -RestrictedTrCH ::= SEQUENCE { - dl-restrictedTrCh-Type DL-TrCH-Type, - restrictedDL-TrCH-Identity TransportChannelIdentity, - allowedTFIList AllowedTFI-List -} - -RestrictedTrCH-InfoList ::= SEQUENCE (SIZE(1..maxTrCH)) OF - RestrictedTrCH - -RL-AdditionInformation ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL, - -- dummy and dummy2 are not used in this version of specification - -- and the IEs should be ignored. - dummy BOOLEAN, - dummy2 SCCPCH-InfoForFACH OPTIONAL -} - -RL-AdditionInformation-r6 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-Id CellIdentity OPTIONAL, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r6 - }, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Information E-RGCH-Information OPTIONAL -} - -RL-AdditionInformation-r7 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-Id CellIdentity OPTIONAL, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Information E-RGCH-Information OPTIONAL -} - -RL-AdditionInformation-r8 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-Id CellIdentity OPTIONAL, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Information E-RGCH-Information OPTIONAL, - targetCellPreconfigInfo TargetCellPreconfigInfo OPTIONAL -} - -RL-AdditionInformation-r9 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-Id CellIdentity OPTIONAL, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Information E-RGCH-Information OPTIONAL, - targetCellPreconfigInfo TargetCellPreconfigInfo-r9 OPTIONAL -} - -RL-AdditionInformation-r10 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-Id CellIdentity OPTIONAL, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - e-HICH-Information E-HICH-Information OPTIONAL, - e-RGCH-Information E-RGCH-Information OPTIONAL, - targetCellPreconfigInfo TargetCellPreconfigInfo-r10 OPTIONAL -} - -RL-AdditionInformation-vb50ext ::= SEQUENCE { - targetCellPreconfigInfo TargetCellPreconfigInfo-vb50ext OPTIONAL -} - -RL-AdditionInformation-r11 ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-Id CellIdentity OPTIONAL, - dl-dpchInfo CHOICE { - dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r5, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 - }, - e-HICH-Information E-HICH-Information-r11 OPTIONAL, - e-RGCH-Information E-RGCH-Information OPTIONAL, - f-TPICH-Information F-TPICH-Information OPTIONAL, - targetCellPreconfigInfo TargetCellPreconfigInfo-r11 OPTIONAL -} - -RL-AdditionInformation-v6b0ext ::= SEQUENCE { - sttdIndication STTDIndication OPTIONAL -} - -RL-AdditionInformation-v890ext ::= SEQUENCE { - targetCellPreconfigInfo TargetCellPreconfigInfo-v890ext OPTIONAL -} - -RL-AdditionInformation-v950ext ::= SEQUENCE { - targetCellPreconfigInfo TargetCellPreconfigInfo-v950ext OPTIONAL -} - -RL-AdditionInformationList ::= SEQUENCE (SIZE (1..maxRL-1)) OF - RL-AdditionInformation - -RL-AdditionInformationList-r6 ::= SEQUENCE (SIZE (1..maxRL-1)) OF - RL-AdditionInformation-r6 - -RL-AdditionInformationList-r7 ::= SEQUENCE (SIZE (1..maxRL-1)) OF - RL-AdditionInformation-r7 - -RL-AdditionInformation-list-v6b0ext ::= SEQUENCE (SIZE (1..maxRL)) OF - RL-AdditionInformation-v6b0ext - -RL-AdditionInformationList-r8 ::= SEQUENCE (SIZE(1..maxRL-1)) OF - RL-AdditionInformation-r8 - -RL-AdditionInformationList-v890ext ::= SEQUENCE (SIZE (1..maxRL-1)) OF - RL-AdditionInformation-v890ext - -RL-AdditionInformationList-r9 ::= SEQUENCE (SIZE(1..maxRL-1)) OF - RL-AdditionInformation-r9 - -RL-AdditionInformationList-v950ext ::= SEQUENCE (SIZE(1..maxRL-1)) OF - RL-AdditionInformation-v950ext - -RL-AdditionInformationList-r10 ::= SEQUENCE (SIZE(1..maxRL-1)) OF - RL-AdditionInformation-r10 - -RL-AdditionInformationList-vb50ext ::= SEQUENCE (SIZE(1..maxRL-1)) OF - RL-AdditionInformation-vb50ext - -RL-AdditionInformationList-r11 ::= SEQUENCE (SIZE(1..maxRL-1)) OF - RL-AdditionInformation-r11 - -RL-AdditionInformationList-SecULFreq ::= SEQUENCE (SIZE(1..maxEDCHRL-1)) OF - RL-AdditionInformation-SecULFreq - - -RL-AdditionInformation-SecULFreq ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cell-id CellIdentity OPTIONAL, - dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7, - e-HICH-Information E-HICH-Information, - e-RGCH-Information E-RGCH-Information OPTIONAL -} - -RL-IdentifierList ::= SEQUENCE (SIZE (1..maxRL)) OF - PrimaryCPICH-Info - -RL-RemovalInformationList ::= SEQUENCE (SIZE (1..maxRL)) OF - PrimaryCPICH-Info - -RL-RemovalInformationList-SecULFreq ::= SEQUENCE (SIZE(1..maxEDCHRL)) OF - PrimaryCPICH-Info - -RPP ::= ENUMERATED { - mode0, mode1 } - -S-Field ::= ENUMERATED { - e1bit, e2bits } - -SCCPCH-ChannelisationCode ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -SCCPCH-ChannelisationCode-VHCR ::= ENUMERATED { - cc32-1, cc32-2, cc32-3, cc32-4, - cc32-5, cc32-6, cc32-7, cc32-8, - cc32-9, cc32-10, cc32-11, cc32-12, - cc32-13, cc32-14, cc32-15, cc32-16, - cc32-17, cc32-18, cc32-19, cc32-20, - cc32-21, cc32-22, cc32-23, cc32-24, - cc32-25, cc32-26, cc32-27, cc32-28, - cc32-29, cc32-30, cc32-31, cc32-32 } - -SCCPCH-ChannelisationCodeList ::= SEQUENCE (SIZE (1..16)) OF - SCCPCH-ChannelisationCode - -SCCPCH-ChannelisationCodeList-VHCR ::= SEQUENCE (SIZE (1..32)) OF - SCCPCH-ChannelisationCode-VHCR - -SCCPCH-InfoForFACH ::= SEQUENCE { - secondaryCCPCH-Info SecondaryCCPCH-Info, - tfcs TFCS, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - fach-PCH-InformationList FACH-PCH-InformationList, - sib-ReferenceListFACH SIB-ReferenceListFACH - }, - tdd SEQUENCE { - fach-PCH-InformationList FACH-PCH-InformationList - } - } -} - -SCCPCH-InfoForFACH-r4 ::= SEQUENCE { - secondaryCCPCH-Info SecondaryCCPCH-Info-r4, - tfcs TFCS, - fach-PCH-InformationList FACH-PCH-InformationList, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - sib-ReferenceListFACH SIB-ReferenceListFACH - }, - tdd NULL - } -} - -SCCPCH-SystemInformation ::= SEQUENCE { - secondaryCCPCH-Info SecondaryCCPCH-Info, - tfcs TFCS OPTIONAL, - fach-PCH-InformationList FACH-PCH-InformationList OPTIONAL, - pich-Info PICH-Info OPTIONAL -} - -SCCPCH-SystemInformation-LCR-r4-ext ::= SEQUENCE { - secondaryCCPCH-LCR-Extensions SecondaryCCPCH-Info-LCR-r4-ext, - -- pich-Info in the SCCPCH-SystemInformation IE shall be absent, - -- and instead the following used. - pich-Info PICH-Info-LCR-r4 OPTIONAL -} - -SCCPCH-SystemInformation-HCR-VHCR-r7 ::= SEQUENCE { - secondaryCCPCH-Info SecondaryCCPCH-Info-HCR-VHCR-r7, - tfcs TFCS OPTIONAL, - fach-PCH-InformationList FACH-PCH-InformationList OPTIONAL, - pich-Info PICH-Info-HCR-VHCR-r7 OPTIONAL -} - -SCCPCH-SystemInformationList ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - SCCPCH-SystemInformation - -SCCPCH-SystemInformationList-HCR-VHCR-r7 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - SCCPCH-SystemInformation-HCR-VHCR-r7 - --- SCCPCH-SystemInformationList-LCR-r4-ext includes elements additional to those in --- SCCPCH-SystemInformationList for the 1.28Mcps TDD. The order of the IEs --- indicates which SCCPCH-SystemInformation-LCR-r4-ext IE extends which --- SCCPCH-SystemInformation IE. -SCCPCH-SystemInformationList-LCR-r4-ext ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - SCCPCH-SystemInformation-LCR-r4-ext - --- The SCCPCH-SystemInformation-MBMS-r6 is used for an S-CCPCH dedicated for MBMS purposes. -SCCPCH-SystemInformation-MBMS-r6 ::= SEQUENCE { - secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r6, - transportFormatCombinationSet TFCS, - fachCarryingMCCH SEQUENCE { - mcch-transportFormatSet TransportFormatSet, - mcch-ConfigurationInfo MBMS-MCCH-ConfigurationInfo-r6 - }, - fachCarryingMTCH-List MBMS-FACHCarryingMTCH-List OPTIONAL, - -- If schedulingInformation is provided - fachCarryingMSCH SEQUENCE { - msch-transportFormatSet TransportFormatSet, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy MBMS-MSCH-ConfigurationInfo-r6 - } OPTIONAL -} - --- The SCCPCH-SystemInformation-MBMS-r7 is used for an S-CCPCH dedicated for MBMS purposes. -SCCPCH-SystemInformation-MBMS-r7 ::= SEQUENCE { - secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r7, - transportFormatCombinationSet TFCS, - fachCarryingMCCH SEQUENCE { - mcch-transportFormatSet TransportFormatSet, - mcch-ConfigurationInfo MBMS-MCCH-ConfigurationInfo-r6 - }, - fachCarryingMTCH-List MBMS-FACHCarryingMTCH-List OPTIONAL, - -- If schedulingInformation is provided - fachCarryingMSCH SEQUENCE { - msch-transportFormatSet TransportFormatSet - } OPTIONAL -} - -S-CPICH-PowerOffset-MIMO ::= INTEGER (-6..0) - -S-CPICH-PowerOffset-4x4MIMO ::= INTEGER (-12..0) - -ScheduledTransmissionConfiguration ::= SEQUENCE { - common-E-DCH-ResourceInfoListExt SEQUENCE (SIZE (1..maxEDCHs)) OF - Common-E-DCH-ResourceInfoListExt -} - -ScramblingCodeChange ::= ENUMERATED { - codeChange, noCodeChange } - -ScramblingCodeType ::= ENUMERATED { - shortSC, - longSC } - -SecondaryCCPCH-Info ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - -- dummy1 is not used in this version of the specification and should be ignored. - dummy1 PCPICH-UsageForChannelEst, - -- dummy2 is not used in this version of the specification. It should not - -- be sent and if received it should be ignored. - dummy2 SecondaryCPICH-Info OPTIONAL, - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - sttd-Indicator BOOLEAN, - sf-AndCodeNumber SF256-AndCodeNumber, - pilotSymbolExistence BOOLEAN, - tfci-Existence BOOLEAN, - positionFixedOrFlexible PositionFixedOrFlexible, - timingOffset TimingOffset DEFAULT 0 - }, - tdd SEQUENCE { - -- TABULAR: the offset is included in CommonTimeslotInfoSCCPCH - commonTimeslotInfo CommonTimeslotInfoSCCPCH, - individualTimeslotInfo IndividualTimeslotInfo, - channelisationCode SCCPCH-ChannelisationCodeList - } - } -} - -SecondaryCCPCH-Info-r4 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - sttd-Indicator BOOLEAN, - sf-AndCodeNumber SF256-AndCodeNumber, - pilotSymbolExistence BOOLEAN, - tfci-Existence BOOLEAN, - positionFixedOrFlexible PositionFixedOrFlexible, - timingOffset TimingOffset DEFAULT 0 - }, - tdd SEQUENCE { - -- TABULAR: the offset is included in CommonTimeslotInfoSCCPCH - commonTimeslotInfo CommonTimeslotInfoSCCPCH, - tddOption CHOICE { - tdd384 SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo - }, - tdd128 SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-LCR-r4 - } - }, - channelisationCode SCCPCH-ChannelisationCodeList - } - } -} - -SecondaryCCPCH-Info-HCR-VHCR-r7 ::= SEQUENCE { - modeSpecificInfo CHOICE { - tdd384 SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-r7, - channelisationCode SCCPCH-ChannelisationCodeList - }, - tdd768 SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-VHCR, - channelisationCode SCCPCH-ChannelisationCodeList-VHCR - } - } -} - -SecondaryCCPCH-Info-LCR-r4-ext ::= SEQUENCE { - individualTimeslotLCR-Ext IndividualTimeslotInfo-LCR-r4-ext -} - -SecondaryCCPCHFrameType2Info ::= SEQUENCE { - subFrameNumber INTEGER (0..4), - dl-ChannelisationCodes DL-ChannelCodes-MBSFN-IMB384, - modulation CHOICE { - modQPSK NULL, - mod16QAM SEQUENCE { - cpich-SecCCPCH-PowerOffset INTEGER (-11..4) - } - } -} - -SecondaryCCPCHInfo-MBMS-r6 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - sttd-Indicator BOOLEAN, - sf-AndCodeNumber SF256-AndCodeNumber, - timingOffset TimingOffset DEFAULT 0 - }, - tdd384 SEQUENCE { - commonTimeslotInfoMBMS CommonTimeslotInfoMBMS, - downlinkTimeslotsCodes DownlinkTimeslotsCodes - }, - tdd128 SEQUENCE { - commonTimeslotInfoMBMS CommonTimeslotInfoMBMS, - downlinkTimeslotsCodes DownlinkTimeslotsCodes-LCR-r4 - } - } -} - -SecondaryCCPCHInfo-MBMS-r7 ::= SEQUENCE { - modeSpecificInfo CHOICE { - -- The CHOICE fdd is used for both "fdd" and "3.84 Mcps TDD MBSFN IMB" - fdd SEQUENCE { - -- The IE secondaryScramblingCode is not applicable for "3.84 Mcps TDD MBSFN IMB" - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - -- The IE sttd-Indicator is not applicable for cells operating in MBSFN mode, - -- the UE behaviour is unspecified - sttd-Indicator BOOLEAN, - sf-AndCodeNumber SF256-AndCodeNumber, - -- The IE timingOffset is not applicable for "3.84 Mcps TDD MBSFN IMB" - timingOffset TimingOffset DEFAULT 0, - modulation CHOICE { - modQPSK NULL, - -- The CHOICE mod16QAM is not applicable for MCCH in "3.84 Mcps TDD MBSFN IMB" - mod16QAM INTEGER (-11..4) - } OPTIONAL - }, - tdd384 SEQUENCE { - commonTimeslotInfoMBMS CommonTimeslotInfoMBMS, - downlinkTimeslotsCodes DownlinkTimeslotsCodes-r7, - modulation ENUMERATED { modQPSK, mod16QAM } - }, - tdd768 SEQUENCE { - commonTimeslotInfoMBMS CommonTimeslotInfoMBMS, - downlinkTimeslotsCodes DownlinkTimeslotsCodes-VHCR, - modulation ENUMERATED { modQPSK, mod16QAM } - }, - tdd128 SEQUENCE { - commonTimeslotInfoMBMS CommonTimeslotInfoMBMS, - downlinkTimeslotsCodes DownlinkTimeslotsCodes-LCR-r4, - mbsfnSpecialTimeSlot TimeSlotLCR-ext OPTIONAL, - modulation ENUMERATED { modQPSK, mod16QAM } - } - } -} - -SecondaryCCPCHInfoDiff-MBMS ::= SEQUENCE { - secondaryScramblingCode SecondaryScramblingCode OPTIONAL, - sttd-Indicator BOOLEAN, - sf-AndCodeNumber SF256-AndCodeNumber OPTIONAL, - timingOffset TimingOffset OPTIONAL -} - -SecondaryCPICH-Info ::= SEQUENCE { - secondaryDL-ScramblingCode SecondaryScramblingCode OPTIONAL, - channelisationCode ChannelisationCode256 -} - -SecondaryScramblingCode ::= INTEGER (1..15) - -SecondaryCellMIMOparametersFDD ::= CHOICE { - continue NULL, - newConfiguration SEQUENCE { - mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimoPilotConfiguration MIMO-PilotConfiguration-r9 OPTIONAL - } -} - -SecondaryCellMIMOparametersFDD-v950ext ::= SEQUENCE { - precodingWeightSetRestriction ENUMERATED { true } OPTIONAL -} - -SecondaryCellMIMOparametersFDD-r10 ::= CHOICE { - continue NULL, - newConfiguration SEQUENCE { - mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimoPilotConfiguration MIMO-PilotConfiguration-r9 OPTIONAL, - precodingWeightSetRestriction ENUMERATED { true } OPTIONAL - } -} - -SecondaryCell4x4MIMOparametersFDD ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - mimoN-M-Ratio MIMO-N-M-Ratio OPTIONAL, - mimoPilotConfiguration MIMO4x4-PilotConfiguration OPTIONAL, - precodingWeightSetRestriction BIT STRING (SIZE (64)) OPTIONAL - } - } -} - -SecondInterleavingMode ::= ENUMERATED { - frameRelated, timeslotRelated } - -ServingCellChangeMACreset ::= BOOLEAN - -ServingCellChangeMsgType ::= ENUMERATED { - radioBearerSetup, - radioBearerReconfiguration, - transportChannelReconfiguration, - physicalChannelReconfiguration } - -ServingCellChangeParameters ::= SEQUENCE { - servingCellChangeMACreset ServingCellChangeMACreset, - servingCellChangeMsgType ServingCellChangeMsgType, - servingCellChangeTrId ServingCellChangeTrId -} - -ServingCellChangeTrId ::= INTEGER (0..3) - -SF8Codes ::= ENUMERATED { - cc8-1, cc8-2, cc8-3, cc8-4, cc8-5, cc8-6, cc8-7, cc8-8} - -SF16Codes ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, cc16-5, cc16-6, cc16-7, - cc16-8} - -SF16Codes2 ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, cc16-5, cc16-6, cc16-7, - cc16-8, cc16-9, cc16-10, cc16-11, cc16-12, cc16-13, cc16-14, - cc16-15, cc16-16} - -SF32Codes ::= ENUMERATED { - cc32-1, cc32-2, cc32-3, cc32-4, cc32-5, cc32-6, cc32-7, - cc32-8, cc32-9, cc32-10, cc32-11, cc32-12, cc32-13, cc32-14, - cc32-15, cc32-16} - --- SF256-AndCodeNumber encodes both "Spreading factor" and "Code Number" -SF256-AndCodeNumber ::= CHOICE { - sf4 INTEGER (0..3), - sf8 INTEGER (0..7), - sf16 INTEGER (0..15), - sf32 INTEGER (0..31), - sf64 INTEGER (0..63), - sf128 INTEGER (0..127), - sf256 INTEGER (0..255) -} - --- SF512-AndCodeNumber encodes both "Spreading factor" and "Code Number" -SF512-AndCodeNumber ::= CHOICE { - sf4 INTEGER (0..3), - sf8 INTEGER (0..7), - sf16 INTEGER (0..15), - sf32 INTEGER (0..31), - sf64 INTEGER (0..63), - sf128 INTEGER (0..127), - sf256 INTEGER (0..255), - sf512 INTEGER (0..511) -} - --- SF512-AndPilot encodes both "Spreading factor" and "Number of bits for Pilot bits" -SF512-AndPilot ::= CHOICE { - sfd4 NULL, - sfd8 NULL, - sfd16 NULL, - sfd32 NULL, - sfd64 NULL, - sfd128 PilotBits128, - sfd256 PilotBits256, - sfd512 NULL -} -SF-PDSCH ::= ENUMERATED { - sfp4, sfp8, sfp16, sfp32, - sfp64, sfp128, sfp256 } - -SF-PRACH ::= ENUMERATED { - sfpr32, sfpr64, sfpr128, sfpr256 } - -SFN-TimeInfo ::= SEQUENCE { - activationTimeSFN INTEGER (0..4095), - physChDuration DurationTimeInfo -} - --- actual scheduling value = 2(signalled value +1) and is the periodicity of sending --- special burst frames -SpecialBurstScheduling ::= INTEGER (0..7) - -SpreadingFactor ::= ENUMERATED { - sf4, sf8, sf16, sf32, - sf64, sf128, sf256 } - -SPS-Information-TDD128-r8 ::= SEQUENCE { - e-dch-SPS-Info E-DCH-SPS-Information-TDD128 OPTIONAL, - hs-dsch-SPS-Info HS-DSCH-SPS-Information-TDD128 OPTIONAL -} - -SRB-delay ::= INTEGER (0..7) - -SSDT-CellIdentity ::= ENUMERATED { - ssdt-id-a, ssdt-id-b, ssdt-id-c, - ssdt-id-d, ssdt-id-e, ssdt-id-f, - ssdt-id-g, ssdt-id-h } - -SSDT-Information ::= SEQUENCE { - s-Field S-Field, - codeWordSet CodeWordSet -} - -SSDT-Information-r4 ::= SEQUENCE { - s-Field S-Field, - codeWordSet CodeWordSet, - ssdt-UL-r4 SSDT-UL OPTIONAL -} - -SSDT-UL ::= ENUMERATED { - ul, ul-AndDL } - -StandaloneMidambleInfo-TDD128 ::= SEQUENCE { - -- Actual value midambleConfiguration = IE value * 2 - midambleConfiguration INTEGER (1..8), - midambleShift INTEGER (0..15), - timeSlotInformation BIT STRING (SIZE (5)), - activationTime ActivationTime, - subframeNum INTEGER (0..1), - repetitionPeriod ENUMERATED { - v1, v2, v4, v8, - v16, v32, v64, spare}, - referenceBeta INTEGER (-15..16) OPTIONAL -} - -STTDIndication ::= ENUMERATED { true } - -SynchronisationParameters-r4 ::= SEQUENCE { - sync-UL-CodesBitmap BIT STRING { - code7(0), - code6(1), - code5(2), - code4(3), - code3(4), - code2(5), - code1(6), - code0(7) - } (SIZE (8)), - fpach-Info FPACH-Info-r4, - -- Actual value prxUpPCHdes = IE value - 120 - prxUpPCHdes INTEGER (0..62), - sync-UL-Procedure SYNC-UL-Procedure-r4 OPTIONAL -} - -Sync-UL-Codes-Bitmap ::= BIT STRING { - code7(0), - code6(1), - code5(2), - code4(3), - code3(4), - code2(5), - code1(6), - code0(7) - } (SIZE (8)) - -SYNC-UL-Procedure-r4 ::= SEQUENCE { - max-SYNC-UL-Transmissions ENUMERATED { tr1, tr2, tr4, tr8 }, - powerRampStep INTEGER (0..3) -} - -SYNC-UL-Info-r4 ::= SEQUENCE { - sync-UL-Codes-Bitmap Sync-UL-Codes-Bitmap, - -- Actual value prxUpPCHdes = IE value - 120 - prxUpPCHdes INTEGER (0..62), - powerRampStep INTEGER (0..3), - max-SYNC-UL-Transmissions ENUMERATED { tr1, tr2, tr4, tr8 }, - mmax INTEGER(1..32) -} - -SYNC-UL-InfoForE-RUCCH ::= SEQUENCE { - prxUpPCHdes INTEGER (0..62) OPTIONAL, - powerRampStep INTEGER (0..3) OPTIONAL, - max-SYNC-UL-Transmissions ENUMERATED { tr1, tr2, tr4, tr8 } OPTIONAL, - e-RUCCH-Sync-UL-Codes-Bitmap Sync-UL-Codes-Bitmap, - mmax INTEGER(1..32) -} - -TargetCellPreconfigInfo ::= SEQUENCE { - activationTimeOffset ActivationTimeOffset OPTIONAL, - new-H-RNTI H-RNTI, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r8, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD OPTIONAL -} - -TargetCellPreconfigInfo-v890ext ::= MIMO-Parameters-v7f0ext - -TargetCellPreconfigInfo-r9 ::= SEQUENCE { - activationTimeOffset ActivationTimeOffset OPTIONAL, - new-H-RNTI H-RNTI, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - e-dch-ReconfigurationInfo-SecULFrequency - E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL -} - -TargetCellPreconfigInfo-v950ext ::= SecondaryCellMIMOparametersFDD-v950ext - -TargetCellPreconfigInfo-r10 ::= SEQUENCE { - activationTimeOffset ActivationTimeOffset OPTIONAL, - new-H-RNTI H-RNTI, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r9, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r7, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - e-dch-ReconfigurationInfo-SecULFrequency - E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL -} - -TargetCellPreconfigInfo-vb50ext ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -TargetCellPreconfigInfo-r11 ::= SEQUENCE { - activationTimeOffset ActivationTimeOffset OPTIONAL, - new-H-RNTI H-RNTI, - newPrimary-E-RNTI E-RNTI OPTIONAL, - newSecondary-E-RNTI E-RNTI OPTIONAL, - serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r11, - e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11, - dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, - hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, - mimoParameters MIMO-Parameters-r9 OPTIONAL, - mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, - additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, - e-dch-ReconfigurationInfo-SecULFrequency - E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL, - ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, - f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL, - uL-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - ul-16QAM-Config UL-16QAM-Config OPTIONAL, - ul-64QAM-Config UL-64QAM-Config OPTIONAL, - ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL -} - -TDD-FPACH-CCode16-r4 ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -TDD-UL-Interference ::= INTEGER (-110..-52) - -TDD-PICH-CCode ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -TDD768-PICH-CCode ::= ENUMERATED { - cc32-1, cc32-2, cc32-3, cc32-4, - cc32-5, cc32-6, cc32-7, cc32-8, - cc32-9, cc32-10, cc32-11, cc32-12, - cc32-13, cc32-14, cc32-15, cc32-16, - cc32-17, cc32-18, cc32-19, cc32-20, - cc32-21, cc32-22, cc32-23, cc32-24, - cc32-25, cc32-26, cc32-27, cc32-28, - cc32-29, cc32-30, cc32-31, cc32-32 } - -TDD-MBSFNInformation ::= SEQUENCE (SIZE (1..maxTS)) OF - TDD-MBSFNTSlotInfo - -TDD-MBSFNTSlotInfo ::= SEQUENCE { - timeSlotNumber TimeslotNumber, - cellParametersID CellParametersID -} - -TDD-PRACH-CCode8 ::= ENUMERATED { - cc8-1, cc8-2, cc8-3, cc8-4, - cc8-5, cc8-6, cc8-7, cc8-8 } - -TDD-PRACH-CCode16 ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -TDD-PRACH-CCode-LCR-r4 ::= ENUMERATED { - cc4-1, cc4-2, cc4-3, cc4-4, - cc8-1, cc8-2, cc8-3, cc8-4, - cc8-5, cc8-6, cc8-7, cc8-8, - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -TDD-PRACH-CCodeList ::= CHOICE { - sf8 SEQUENCE (SIZE (1..8)) OF - TDD-PRACH-CCode8, --- Channelisation codes cc16-9, cc16-10, cc16-11, cc16-12, cc16-13, cc16-14, --- cc16-15 and cc16-16 shall not be used - sf16 SEQUENCE (SIZE (1..8)) OF - TDD-PRACH-CCode16 -} - -TDD768-PRACH-CCode16 ::= ENUMERATED { - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -TDD768-PRACH-CCode32 ::= ENUMERATED { - cc32-1, cc32-2, cc32-3, cc32-4, - cc32-5, cc32-6, cc32-7, cc32-8, - cc32-9, cc32-10, cc32-11, cc32-12, - cc32-13, cc32-14, cc32-15, cc32-16 } - -TDD768-PRACH-CCodeList ::= CHOICE { - sf32 SEQUENCE (SIZE (1..16)) OF - TDD768-PRACH-CCode32, --- Channelisation codes cc32-17, cc32-18, cc32-19, cc32-20, cc32-21, cc32-22, --- cc32-23, cc32-24, cc32-25, cc32-26, cc32-27, cc32-28, cc32-29, cc32-30, cc32-31 --- and cc32-32 shall not be used - sf16 SEQUENCE (SIZE (1..16)) OF - TDD768-PRACH-CCode16 -} - -TFC-ControlDuration ::= ENUMERATED { - tfc-cd1, tfc-cd2, tfc-cd4, tfc-cd8, - tfc-cd16, tfc-cd24, tfc-cd32, - tfc-cd48, tfc-cd64, tfc-cd128, - tfc-cd192, tfc-cd256, tfc-cd512 } - -TFCI-Coding ::= ENUMERATED { - tfci-bits-4, tfci-bits-8, - tfci-bits-16, tfci-bits-32 } - -TGCFN ::= INTEGER (0..255) - --- In TGD, value 270 represents "undefined" in the tabular description. -TGD ::= INTEGER (15..270) - -TGL ::= INTEGER (1..14) - -TGMP ::= ENUMERATED { - tdd-Measurement, fdd-Measurement, - gsm-CarrierRSSIMeasurement, - gsm-initialBSICIdentification, gsmBSICReconfirmation, - multi-carrier } - -TGMP-r8 ::= ENUMERATED { - tdd-Measurement, fdd-Measurement, - gsm-CarrierRSSIMeasurement, - gsm-initialBSICIdentification, gsmBSICReconfirmation, - multi-carrier, e-UTRA, spare } - -TGP-Sequence ::= SEQUENCE { - tgpsi TGPSI, - tgps-Status CHOICE { - activate SEQUENCE { - tgcfn TGCFN - }, - deactivate NULL - }, - tgps-ConfigurationParams TGPS-ConfigurationParams OPTIONAL -} - -TGP-Sequence-r8 ::= SEQUENCE { - tgpsi TGPSI, - tgps-Status CHOICE { - activate SEQUENCE { - tgcfn TGCFN - }, - deactivate NULL - }, - tgps-ConfigurationParams TGPS-ConfigurationParams-r8 OPTIONAL -} - -TGP-Sequence-r10 ::= SEQUENCE { - tgpsi TGPSI, - tgps-Status CHOICE { - activate SEQUENCE { - tgcfn TGCFN - }, - deactivate NULL - }, - tgps-ConfigurationParams TGPS-ConfigurationParams-r10 OPTIONAL -} - -TGPS-Reconfiguration-CFN ::= INTEGER (0..255) - -TGP-SequenceList ::= SEQUENCE (SIZE (1..maxTGPS)) OF - TGP-Sequence - -TGP-SequenceList-r8 ::= SEQUENCE (SIZE (1..maxTGPS)) OF - TGP-Sequence-r8 - -TGP-SequenceList-r10 ::= SEQUENCE (SIZE (1..maxTGPS)) OF - TGP-Sequence-r10 - -TGP-SequenceShort ::= SEQUENCE { - tgpsi TGPSI, - tgps-Status CHOICE { - activate SEQUENCE { - tgcfn TGCFN - }, - deactivate NULL - } -} - -TGP-SequenceShort-r10 ::= SEQUENCE { - tgpsi TGPSI, - tgps-Status CHOICE { - activate SEQUENCE { - tgcfn TGCFN - }, - deactivate NULL - }, - freqSpecificCompressedMode ENUMERATED { true } OPTIONAL -} - -TGPL ::= INTEGER (1..144) - --- TABULAR: In TGPRC, value 0 represents "infinity" in the tabular description. -TGPRC ::= INTEGER (0..511) - -TGPS-ConfigurationParams ::= SEQUENCE { - tgmp TGMP, - tgprc TGPRC, - tgsn TGSN, - tgl1 TGL, - tgl2 TGL OPTIONAL, - tgd TGD, - tgpl1 TGPL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it shall be ignored. - dummy TGPL OPTIONAL, - rpp RPP, - itp ITP, - -- TABULAR: Compressed mode method is nested inside UL-DL-Mode - ul-DL-Mode UL-DL-Mode, - dl-FrameType DL-FrameType, - deltaSIR1 DeltaSIR, - deltaSIRAfter1 DeltaSIR, - deltaSIR2 DeltaSIR OPTIONAL, - deltaSIRAfter2 DeltaSIR OPTIONAL, - nidentifyAbort NidentifyAbort OPTIONAL, - treconfirmAbort TreconfirmAbort OPTIONAL -} - -TGPS-ConfigurationParams-r8 ::= SEQUENCE { - tgmp TGMP-r8, - tgprc TGPRC, - tgsn TGSN, - tgl1 TGL, - tgl2 TGL OPTIONAL, - tgd TGD, - tgpl1 TGPL, - rpp RPP, - itp ITP, - -- TABULAR: Compressed mode method is nested inside UL-DL-Mode - ul-DL-Mode UL-DL-Mode, - dl-FrameType DL-FrameType, - deltaSIR1 DeltaSIR, - deltaSIRAfter1 DeltaSIR, - deltaSIR2 DeltaSIR OPTIONAL, - deltaSIRAfter2 DeltaSIR OPTIONAL, - nidentifyAbort NidentifyAbort OPTIONAL, - treconfirmAbort TreconfirmAbort OPTIONAL -} - -TGPS-ConfigurationParams-r10 ::= SEQUENCE { - tgmp TGMP-r8, - freqSpecificCompressedMode ENUMERATED { true } OPTIONAL, - tgprc TGPRC, - tgsn TGSN, - tgl1 TGL, - tgl2 TGL OPTIONAL, - tgd TGD, - tgpl1 TGPL, - rpp RPP, - itp ITP, - -- TABULAR: Compressed mode method is nested inside UL-DL-Mode - ul-DL-Mode UL-DL-Mode, - dl-FrameType DL-FrameType, - deltaSIR1 DeltaSIR, - deltaSIRAfter1 DeltaSIR, - deltaSIR2 DeltaSIR OPTIONAL, - deltaSIRAfter2 DeltaSIR OPTIONAL, - nidentifyAbort NidentifyAbort OPTIONAL, - treconfirmAbort TreconfirmAbort OPTIONAL -} - -TGPSI ::= INTEGER (1..maxTGPS) - -TGSN ::= INTEGER (0..14) - -TimeInfo ::= SEQUENCE { - activationTime ActivationTime OPTIONAL, - durationTimeInfo DurationTimeInfo OPTIONAL -} - -TimeSlotLCR-ext ::= ENUMERATED { - ts7, spare3, spare2, spare1 } - -TimeslotList ::= SEQUENCE (SIZE (1..maxTS)) OF - TimeslotNumber - -TimeslotList-r4 ::= CHOICE { --- the choice for 7.68 Mcps TDD is as for 3.84 Mcps TDD -- - tdd384 SEQUENCE (SIZE (1..maxTS)) OF - TimeslotNumber, - tdd128 SEQUENCE (SIZE (1..maxTS-LCR)) OF - TimeslotNumber-LCR-r4 -} - --- If TimeslotNumber is included for a 1.28Mcps TDD description, it shall take values from 0..6 -TimeslotNumber ::= INTEGER (0..14) - -TimeslotNumber-LCR-r4 ::= INTEGER (0..6) - -TimeslotNumber-PRACH-LCR-r4 ::= INTEGER (1..6) - -TimeslotSync2 ::= INTEGER (0..6) - -DTX-DRX-TimingInfo-r7 ::= SEQUENCE { - timing CHOICE { - continue NULL, - newTiming NewTiming - } -} - --- Actual value TimingOffset = IE value * 256 -TimingOffset ::= INTEGER (0..149) - -TimingMaintainedSynchInd ::= ENUMERATED { false } - -TPC-CombinationIndex ::= INTEGER (0..5) - -TPC-CommandTargetRate ::= INTEGER (0..10) - --- Actual value TPC-StepSizeFDD = IE value + 1 -TPC-StepSizeFDD ::= INTEGER (0..1) - -TPC-StepSizeTDD ::= INTEGER (1..3) - -TransportBlockSizeIndex ::= INTEGER (1..32) - --- Actual value TreconfirmAbort = IE value * 0.5 seconds -TreconfirmAbort ::= INTEGER (1..20) - -TwoMsHarqConfiguration ::= SEQUENCE { - harqProcessAllocation BIT STRING (SIZE (8)) OPTIONAL -} - -TX-DiversityMode ::= ENUMERATED { - noDiversity, - sttd, - closedLoopMode1, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy } - -UARFCN ::= INTEGER (0..16383) - -UCSM-Info ::= SEQUENCE { - minimumSpreadingFactor MinimumSpreadingFactor, - nf-Max NF-Max, - channelReqParamsForUCSM ChannelReqParamsForUCSM -} - -UE-DPCCH-Burst ::= ENUMERATED { - sub-frames-1, - sub-frames-2, - sub-frames-5, - spare1 } - -UE-DRX-Cycle ::= ENUMERATED { - sub-frames-4, - sub-frames-5, - sub-frames-8, - sub-frames-10, - sub-frames-16, - sub-frames-20, - spare2, - spare1 } - -UE-DTX-Cycle1-10ms ::= ENUMERATED { - sub-frames-1, - sub-frames-5, - sub-frames-10, - sub-frames-20 } - -UE-DTX-Cycle1-2ms ::= ENUMERATED { - sub-frames-1, - sub-frames-4, - sub-frames-5, - sub-frames-8, - sub-frames-10, - sub-frames-16, - sub-frames-20, - spare1 } - -UE-DTX-Cycle2-10ms ::= ENUMERATED { - sub-frames-5, - sub-frames-10, - sub-frames-20, - sub-frames-40, - sub-frames-80, - sub-frames-160, - spare2, - spare1 } - -UE-DTX-Cycle2-2ms ::= ENUMERATED { - sub-frames-4, - sub-frames-5, - sub-frames-8, - sub-frames-10, - sub-frames-16, - sub-frames-20, - sub-frames-32, - sub-frames-40, - sub-frames-64, - sub-frames-80, - sub-frames-128, - sub-frames-160, - spare4, - spare3, - spare2, - spare1 } - -UE-DTX-Cycle2InactivityThreshold ::= ENUMERATED { - e-dch-tti-1, - e-dch-tti-4, - e-dch-tti-8, - e-dch-tti-16, - e-dch-tti-32, - e-dch-tti-64, - e-dch-tti-128, - e-dch-tti-256, - spare8, - spare7, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1 } - -UE-DTX-long-preamble-length ::= ENUMERATED { - slots-4, - slots-15 } - -UE-DTX-DRX-Offset ::= INTEGER (0..159) - -UE-GrantMonitoring-InactivityThreshold ::= ENUMERATED { - e-dch-tti-0, - e-dch-tti-1, - e-dch-tti-2, - e-dch-tti-4, - e-dch-tti-8, - e-dch-tti-16, - e-dch-tti-32, - e-dch-tti-64, - e-dch-tti-128, - e-dch-tti-256, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1 } - -UL-16QAM-Config ::= SEQUENCE { - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL, - e-TFCI-TableIndex E-TFCI-TableIndex OPTIONAL, - mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL -} - -UL-16QAM-Settings ::= SEQUENCE { - beta-Ed-Gain-E-AGCH-Table-Selection INTEGER (0..1) -} - -UL-64QAM-Config ::= SEQUENCE { - ul-64QAM-Settings UL-64QAM-Settings OPTIONAL, - mac-is-i-resetIndicator ENUMERATED { true } OPTIONAL -} - -UL-64QAM-Settings ::= SEQUENCE { - beta-Ed-Gain-E-AGCH-Table-Selection INTEGER (0..1) -} - -UL-CCTrCH ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - ul-TargetSIR UL-TargetSIR, - timeInfo TimeInfo, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL -} - -UL-CCTrCH-r4 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR, - timeInfo TimeInfo, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL - }, - tdd128 SEQUENCE { - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 OPTIONAL - } - } -} - -UL-CCTrCH-r7 ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain DEFAULT 1, - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR, - timeInfo TimeInfo, - commonTimeslotInfo CommonTimeslotInfo OPTIONAL, - tddOption CHOICE { - tdd384 SEQUENCE { - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes OPTIONAL - }, - tdd768 SEQUENCE { - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-VHCR OPTIONAL - }, - tdd128 SEQUENCE { - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-LCR-r7 OPTIONAL - } - } -} - -UL-CCTrCHList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - UL-CCTrCH - -UL-CCTrCHList-r4 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - UL-CCTrCH-r4 - -UL-CCTrCHList-r7 ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - UL-CCTrCH-r7 - -UL-CCTrCHListToRemove ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - TFCS-IdentityPlain - -UL-CCTrChTPCList ::= SEQUENCE (SIZE (0..maxCCTrCH)) OF - TFCS-Identity - -UL-ChannelRequirement ::= CHOICE { - ul-DPCH-Info UL-DPCH-Info, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received the UE behaviour is not specified. - dummy CPCH-SetInfo -} - -UL-ChannelRequirement-r4 ::= CHOICE { - ul-DPCH-Info UL-DPCH-Info-r4, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received the UE behaviour is not specified. - dummy CPCH-SetInfo -} - -UL-ChannelRequirement-r5 ::= CHOICE { - ul-DPCH-Info UL-DPCH-Info-r5, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received the UE behaviour is not specified. - dummy CPCH-SetInfo -} - --- Note: the reference to CPCH in the element name below is incorrect. The name is not --- changed to keep it aligned with R99. -UL-ChannelRequirementWithCPCH-SetID ::= CHOICE { - ul-DPCH-Info UL-DPCH-Info, - -- dummy1 and dummy 2 are not used in this version of the specification, they should - -- not be sent and if received the UE behaviour is not specified. - dummy1 CPCH-SetInfo, - dummy2 CPCH-SetID -} - --- Note: the reference to CPCH in the element name below is incorrect. The name is not --- changed to keep it aligned with R99. -UL-ChannelRequirementWithCPCH-SetID-r4 ::= CHOICE { - ul-DPCH-Info UL-DPCH-Info-r4, - -- dummy1 and dummy2 are not used in this version of the specification, they - -- should not be sent and if received the UE behaviour is not specified. - dummy1 CPCH-SetInfo, - dummy2 CPCH-SetID -} - --- Note: the reference to CPCH in the element name below is incorrect. The name is not --- changed to keep it aligned with R99. -UL-ChannelRequirementWithCPCH-SetID-r5 ::= CHOICE { - ul-DPCH-Info UL-DPCH-Info-r5, - -- dummy1 and dummy2 are not used in this version of the specification, they should - -- not be sent and if received the UE behaviour is not specified. - dummy1 CPCH-SetInfo, - dummy2 CPCH-SetID -} - - -UL-CLTD-InfoFDD ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - s-dpcch-Info S-DPCCH-Information, - initial-CLTD-ActivationState ENUMERATED { first-state, second-state } OPTIONAL, - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL - } - } -} - -UL-CompressedModeMethod ::= ENUMERATED { - sf-2, - higherLayerScheduling } - -UL-DL-Mode ::= CHOICE { - ul UL-CompressedModeMethod, - dl DL-CompressedModeMethod, - ul-and-dl SEQUENCE { - ul UL-CompressedModeMethod, - dl DL-CompressedModeMethod - }} - -UL-DPCCH-SlotFormat ::= ENUMERATED { - slf0, slf1, slf2 } - -UL-DPCH-CodeInfoForCommonEDCH ::= SEQUENCE { - ul-DPCCHscramblingCodeType ScramblingCodeType, - ul-DPCCHscramblingCode UL-ScramblingCode OPTIONAL -} - -UL-DPCH-Info ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - scramblingCodeType ScramblingCodeType, - scramblingCode UL-ScramblingCode, - numberOfDPDCH NumberOfDPDCH DEFAULT 1, - spreadingFactor SpreadingFactor, - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - puncturingLimit PuncturingLimit - }, - tdd SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl OPTIONAL, - ul-CCTrCHList UL-CCTrCHList OPTIONAL, - ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL - } - } -} - -UL-DPCH-Info-r4 ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r4 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - scramblingCodeType ScramblingCodeType, - scramblingCode UL-ScramblingCode, - numberOfDPDCH NumberOfDPDCH DEFAULT 1, - spreadingFactor SpreadingFactor, - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - puncturingLimit PuncturingLimit - }, - tdd SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - ul-CCTrCHList UL-CCTrCHList-r4 OPTIONAL, - ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL - } - } -} - -UL-DPCH-Info-r5 ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r5 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - scramblingCodeType ScramblingCodeType, - scramblingCode UL-ScramblingCode, - numberOfDPDCH NumberOfDPDCH DEFAULT 1, - spreadingFactor SpreadingFactor, - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - puncturingLimit PuncturingLimit - }, - tdd SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - ul-CCTrCHList UL-CCTrCHList-r4 OPTIONAL, - ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL - } - } -} - -UL-DPCH-Info-r6 ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r6 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - scramblingCodeType ScramblingCodeType, - scramblingCode UL-ScramblingCode, - dpdchPresence CHOICE { - present SEQUENCE { - numberOfDPDCH NumberOfDPDCH DEFAULT 1, - spreadingFactor SpreadingFactor, - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - puncturingLimit PuncturingLimit - }, - notPresent SEQUENCE { - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL - } - } - }, - tdd SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl-r4 OPTIONAL, - ul-CCTrCHList UL-CCTrCHList-r4 OPTIONAL, - ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL - } - } -} - -UL-DPCH-Info-r7 ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r7 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - scramblingCodeType ScramblingCodeType, - scramblingCode UL-ScramblingCode, - dpdchPresence CHOICE { - present SEQUENCE { - numberOfDPDCH NumberOfDPDCH DEFAULT 1, - spreadingFactor SpreadingFactor, - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL, - puncturingLimit PuncturingLimit - }, - notPresent SEQUENCE { - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL - } - } - }, - tdd SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl-r7 OPTIONAL, - ul-CCTrCHList UL-CCTrCHList-r7 OPTIONAL, - ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL - } - } -} - -UL-DPCH-Info-r11 ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfo-r11 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - scramblingCodeType ScramblingCodeType, - scramblingCode UL-ScramblingCode, - dpdchPresence CHOICE { - present SEQUENCE { - numberOfDPDCH NumberOfDPDCH DEFAULT 1, - spreadingFactor SpreadingFactor, - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL, - puncturingLimit PuncturingLimit - }, - notPresent SEQUENCE { - tfci-Existence BOOLEAN, - -- numberOfFBI-Bits is conditional based on history - numberOfFBI-Bits NumberOfFBI-Bits OPTIONAL, - numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL - } - } - }, - tdd SEQUENCE { - ul-TimingAdvance UL-TimingAdvanceControl-r7 OPTIONAL, - ul-CCTrCHList UL-CCTrCHList-r7 OPTIONAL, - ul-CCTrCHListToRemove UL-CCTrCHListToRemove OPTIONAL - } - } -} - -UL-DPCH-InfoPostFDD ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPostFDD, - scramblingCodeType ScramblingCodeType, - reducedScramblingCodeNumber ReducedScramblingCodeNumber, - spreadingFactor SpreadingFactor - -} - -UL-DPCH-InfoPostTDD ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPostTDD, - ul-TimingAdvance UL-TimingAdvanceControl OPTIONAL, - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes -} - -UL-DPCH-InfoPostTDD-LCR-r4 ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPostTDD-LCR-r4, - ul-TimingAdvance UL-TimingAdvanceControl-LCR-r4 OPTIONAL, - ul-CCTrCH-TimeslotsCodes UplinkTimeslotsCodes-LCR-r4 -} - -UL-DPCH-InfoPredef ::= SEQUENCE { - ul-DPCH-PowerControlInfo UL-DPCH-PowerControlInfoPredef, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - tfci-Existence BOOLEAN, - puncturingLimit PuncturingLimit - }, - tdd SEQUENCE { - commonTimeslotInfo CommonTimeslotInfo - } - } -} - -UL-DPCH-InfoPredef-v770ext ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - numberOfTPC-Bits NumberOfTPC-Bits OPTIONAL - }, - tdd NULL } -} - -UL-DPCH-PowerControlInfo ::= CHOICE { - fdd SEQUENCE { - dpcch-PowerOffset DPCCH-PowerOffset, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm - }, - tdd SEQUENCE { - ul-TargetSIR UL-TargetSIR OPTIONAL, - ul-OL-PC-Signalling CHOICE { - broadcast-UL-OL-PC-info NULL, - individuallySignalled SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValueTdd, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } OPTIONAL - } -} - -UL-DPCH-PowerControlInfo-r4 ::= CHOICE { - fdd SEQUENCE { - dpcch-PowerOffset DPCCH-PowerOffset, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm - }, - tdd SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR OPTIONAL, - ul-OL-PC-Signalling CHOICE { - broadcast-UL-OL-PC-info NULL, - individuallySignalled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd128 SEQUENCE { - tpc-StepSize TPC-StepSizeTDD - } - }, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } -} - -UL-DPCH-PowerControlInfo-r5 ::= CHOICE { - fdd SEQUENCE { - dpcch-PowerOffset DPCCH-PowerOffset, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm, - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL - }, - tdd SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR OPTIONAL, - ul-OL-PC-Signalling CHOICE { - broadcast-UL-OL-PC-info NULL, - individuallySignalled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd128 SEQUENCE { - tpc-StepSize TPC-StepSizeTDD - } - }, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } -} - -UL-DPCH-PowerControlInfo-r6 ::= CHOICE { - fdd SEQUENCE { - dpcch-PowerOffset DPCCH-PowerOffset, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm, - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode - }, - tdd SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR OPTIONAL, - ul-OL-PC-Signalling CHOICE { - broadcast-UL-OL-PC-info NULL, - individuallySignalled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd128 SEQUENCE { - beaconPLEst BEACON-PL-Est OPTIONAL, - tpc-StepSize TPC-StepSizeTDD - } - }, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } -} - -UL-DPCH-PowerControlInfo-r7 ::= CHOICE { - fdd SEQUENCE { - dpcch-PowerOffset DPCCH-PowerOffset, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm, - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode - }, - tdd SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR OPTIONAL, - ul-OL-PC-Signalling CHOICE { - broadcast-UL-OL-PC-info NULL, - individuallySignalled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd768 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd128 SEQUENCE { - beaconPLEst BEACON-PL-Est OPTIONAL, - tpc-StepSize TPC-StepSizeTDD - } - }, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } -} - -UL-DPCH-PowerControlInfo-r11 ::= CHOICE { - fdd SEQUENCE { - dpcch-PowerOffset DPCCH-PowerOffset, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay, - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm, - deltaACK DeltaACK-r11 OPTIONAL, - deltaNACK DeltaNACK-r11 OPTIONAL, - ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL, - ack-NACK-repetition-factor-assisting ACK-NACK-repetitionFactor OPTIONAL, - harq-Preamble-Mode HARQ-Preamble-Mode - }, - tdd SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR OPTIONAL, - ul-OL-PC-Signalling CHOICE { - broadcast-UL-OL-PC-info NULL, - individuallySignalled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd768 SEQUENCE { - individualTS-InterferenceList IndividualTS-InterferenceList, - dpch-ConstantValue ConstantValue - }, - tdd128 SEQUENCE { - beaconPLEst BEACON-PL-Est OPTIONAL, - tpc-StepSize TPC-StepSizeTDD - } - }, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power - } - } - } -} - -UL-DPCHpowerControlInfoConcurrentTTI ::= SEQUENCE { - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL -} - -UL-DPCHpowerControlInfoForCommonEDCH ::= SEQUENCE { - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm, - deltaACK DeltaACK OPTIONAL, - deltaNACK DeltaNACK OPTIONAL, - ack-NACK-repetition-factor ACK-NACK-repetitionFactor OPTIONAL -} - -UL-DPCH-PowerControlInfoPostFDD ::= SEQUENCE { - -- DPCCH-PowerOffset2 has a smaller range to save bits - dpcch-PowerOffset DPCCH-PowerOffset2, - pc-Preamble PC-Preamble, - sRB-delay SRB-delay -} - -UL-DPCH-PowerControlInfoPostTDD ::= SEQUENCE { - ul-TargetSIR UL-TargetSIR, - ul-TimeslotInterference TDD-UL-Interference -} - -UL-DPCH-PowerControlInfoPostTDD-LCR-r4 ::= SEQUENCE { - -- The IE ul-TargetSIR corresponds to PRX-DPCHdes for 1.28Mcps TDD - -- Actual value PRX-DPCHdes = (value of IE "ul-TargetSIR" - 120) - ul-TargetSIR UL-TargetSIR -} - -UL-DPCH-PowerControlInfoPredef ::= CHOICE { - fdd SEQUENCE { - -- TABULAR: TPC step size nested inside PowerControlAlgorithm - powerControlAlgorithm PowerControlAlgorithm - }, - tdd SEQUENCE { - -- dpch-ConstantValue shall be ignored if in 1.28Mcps TDD mode. - dpch-ConstantValue ConstantValueTdd - } -} - - -UL-EDCH-Information-ext ::= CHOICE { - fdd NULL, - tdd SEQUENCE { - non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD-ext OPTIONAL - } -} - -UL-EDCH-Information-r6 ::= SEQUENCE { - mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL, - e-DPCCH-Info E-DPCCH-Info OPTIONAL, - e-DPDCH-Info E-DPDCH-Info OPTIONAL, - schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL -} - -UL-EDCH-Information-r7 ::= SEQUENCE { - mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL, - e-DPDCH-Info E-DPDCH-Info-r7 OPTIONAL, - schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL - }, - tdd SEQUENCE { - e-RUCCH-Info E-RUCCH-Info OPTIONAL, - e-PUCH-Info E-PUCH-Info OPTIONAL, - non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD OPTIONAL - } - } -} - -UL-EDCH-Information-r8 ::= SEQUENCE { - mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL, - e-DPDCH-Info E-DPDCH-Info-r8 OPTIONAL, - schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL - }, - tdd SEQUENCE { - e-RUCCH-Info E-RUCCH-Info OPTIONAL, - e-PUCH-Info E-PUCH-Info OPTIONAL, - non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD OPTIONAL - } - } -} - -UL-EDCH-Information-r9 ::= SEQUENCE { - mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL, - e-DPDCH-Info E-DPDCH-Info-r8 OPTIONAL, - schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL - }, - tdd SEQUENCE { - e-RUCCH-Info E-RUCCH-Info OPTIONAL, - e-PUCH-Info E-PUCH-Info OPTIONAL, - non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD-r9 OPTIONAL - } - } -} - -UL-EDCH-Information-r11 ::= SEQUENCE { - mac-es-e-resetIndicator ENUMERATED { true } OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - e-DPCCH-Info E-DPCCH-Info-r7 OPTIONAL, - e-DPDCH-Info E-DPDCH-Info-r8 OPTIONAL, - ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL, - schedulingTransmConfiguration E-DPDCH-SchedulingTransmConfiguration OPTIONAL, - ul-16QAM-Settings UL-16QAM-Settings OPTIONAL, - ul-64QAM-Settings UL-64QAM-Settings OPTIONAL - }, - tdd SEQUENCE { - e-RUCCH-Info E-RUCCH-Info OPTIONAL, - e-PUCH-Info E-PUCH-Info OPTIONAL, - non-ScheduledTransGrantInfo Non-ScheduledTransGrantInfoTDD-r9 OPTIONAL - } - } -} - -UL-MIMO-InfoFDD ::= SEQUENCE { - configurationInfo CHOICE { - continue NULL, - newConfiguration SEQUENCE { - s-e-dpcch-power-offset INTEGER(0..17), - rank2-minimum-E-TFCI E-DCH-MinimumSet-E-TFCI, - inter-stream-compensation INTEGER(0..15) OPTIONAL - } - } -} - -UL-MulticarrierEDCH-InfolistItem-TDD128 ::= SEQUENCE { - uarfcn UARFCN, - prxdes-base INTEGER (-112..-50), - e-PUCH-info E-PUCH-Info-MulticarrierEDCH-TDD128 OPTIONAL, - e-AGCH-info E-AGCH-Information-TDD128 OPTIONAL, - e-HICH-info E-HICH-Information-TDD128 OPTIONAL -} - -UL-MulticarrierEDCH-Infolist-TDD128 ::= SEQUENCE (SIZE (1..maxTDD128Carrier-1)) OF - UL-MulticarrierEDCH-InfolistItem-TDD128 - -UL-MulticarrierEDCH-Deletelist-TDD128 ::= SEQUENCE (SIZE (1..maxTDD128Carrier-1)) OF - UARFCN - -UL-MulticarrierEDCHInfo-TDD128 ::= SEQUENCE { - configuration-info CHOICE { - continue NULL, - newConfiguration UL-MulticarrierEDCH-NewConfigurationInfo-TDD128 - } -} - -UL-MulticarrierEDCH-NewConfigurationInfo-TDD128 ::= SEQUENCE { - tsn-Length ENUMERATED { tsn-14bits } OPTIONAL, - ul-MulticarrierEDCH-Infolist UL-MulticarrierEDCH-Infolist-TDD128 OPTIONAL, - ul-MulticarrierEDCH-Deletelist UL-MulticarrierEDCH-Deletelist-TDD128 OPTIONAL -} - -UL-Interference ::= INTEGER (-110..-70) - -UL-ScramblingCode ::= INTEGER (0..16777215) - - -UL-SynchronisationParameters-r4 ::= SEQUENCE { - stepSize INTEGER (1..8), - frequency INTEGER (1..8) -} - --- Actual value UL-TargetSIR = (IE value * 0.5) - 11 -UL-TargetSIR ::= INTEGER (0..62) - -UL-TimingAdvance ::= INTEGER (0..63) - -UL-TimingAdvanceControl ::= CHOICE { - disabled NULL, - enabled SEQUENCE { - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - activationTime ActivationTime OPTIONAL - } -} - -UL-TimingAdvanceControl-r4 ::= CHOICE { - disabled NULL, - enabled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - activationTime ActivationTime OPTIONAL - }, - tdd128 SEQUENCE { - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - synchronisationParameters SynchronisationParameters-r4 OPTIONAL - } - } - } -} - -UL-TimingAdvanceControl-r7 ::= CHOICE { - disabled NULL, - enabled SEQUENCE { - tddOption CHOICE { - tdd384 SEQUENCE { - ul-TimingAdvance UL-TimingAdvance OPTIONAL, - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - activationTime ActivationTime OPTIONAL - }, - tdd768 SEQUENCE { - ext-UL-TimingAdvance EXT-UL-TimingAdvance OPTIONAL, - activationTime ActivationTime OPTIONAL - }, - tdd128 SEQUENCE { - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - synchronisationParameters SynchronisationParameters-r4 OPTIONAL - } - } - } -} - -UL-TimingAdvanceControl-LCR-r4 ::= CHOICE { - disabled NULL, - enabled SEQUENCE { - ul-SynchronisationParameters UL-SynchronisationParameters-r4 OPTIONAL, - synchronisationParameters SynchronisationParameters-r4 OPTIONAL - } -} - -UL-TS-ChannelisationCode ::= ENUMERATED { - cc1-1, cc2-1, cc2-2, - cc4-1, cc4-2, cc4-3, cc4-4, - cc8-1, cc8-2, cc8-3, cc8-4, - cc8-5, cc8-6, cc8-7, cc8-8, - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16 } - -UL-TS-ChannelisationCodeList ::= SEQUENCE (SIZE (1..2)) OF - UL-TS-ChannelisationCode - -UL-TS-ChannelisationCodeList-r7 ::= SEQUENCE (SIZE (1..2)) OF - SEQUENCE { - ul-TS-Channelisation-Code UL-TS-ChannelisationCode, - plcch-info PLCCH-Info OPTIONAL -} - -UL-TS-ChannelisationCode-VHCR ::= ENUMERATED { - cc1-1, cc2-1, cc2-2, - cc4-1, cc4-2, cc4-3, cc4-4, - cc8-1, cc8-2, cc8-3, cc8-4, - cc8-5, cc8-6, cc8-7, cc8-8, - cc16-1, cc16-2, cc16-3, cc16-4, - cc16-5, cc16-6, cc16-7, cc16-8, - cc16-9, cc16-10, cc16-11, cc16-12, - cc16-13, cc16-14, cc16-15, cc16-16, - cc32-1, cc32-2, cc32-3, cc32-4, - cc32-5, cc32-6, cc32-7, cc32-8, - cc32-9, cc32-10, cc32-11, cc32-12, - cc32-13, cc32-14, cc32-15, cc32-16, - cc32-17, cc32-18, cc32-19, cc32-20, - cc32-21, cc32-22, cc32-23, cc32-24, - cc32-25, cc32-26, cc32-27, cc32-28, - cc32-29, cc32-30, cc32-31, cc32-32 } - -UL-TS-ChannelisationCodeList-VHCR ::= SEQUENCE (SIZE (1..2)) OF - UL-TS-ChannelisationCode-VHCR - -Uplink-DPCCH-Slot-Format-Information ::= ENUMERATED { - slot-format-1, - -- dummy is not used in this version of - -- specification, it should not be sent and if - -- received it should be ignored. - dummy, - slot-format-4, - spare1 } - -UplinkAdditionalTimeslots ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList - } - } -} - -UplinkAdditionalTimeslots-LCR-r4 ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList - } - } -} - -UplinkAdditionalTimeslots-LCR-r7 ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - -- plcch-info assigned as previously defined slot - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList-r7 - } - } -} - -UplinkAdditionalTimeslots-VHCR ::= SEQUENCE { - parameters CHOICE { - sameAsLast SEQUENCE { - timeslotNumber TimeslotNumber - }, - newParameters SEQUENCE { - individualTimeslotInfo IndividualTimeslotInfo-VHCR, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList - } - } -} - -UplinkTimeslotsCodes ::= SEQUENCE { - dynamicSFusage BOOLEAN, - firstIndividualTimeslotInfo IndividualTimeslotInfo, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive SEQUENCE { - numAdditionalTimeslots INTEGER (1..maxTS-1) - }, - timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF - UplinkAdditionalTimeslots - } - } -} - -UplinkTimeslotsCodes-VHCR ::= SEQUENCE { - dynamicSFusage BOOLEAN, - firstIndividualTimeslotInfo IndividualTimeslotInfo-VHCR, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList-VHCR, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive SEQUENCE { - numAdditionalTimeslots INTEGER (1..maxTS-1) - }, - timeslotList SEQUENCE (SIZE (1..maxTS-1)) OF - UplinkAdditionalTimeslots-VHCR - } - } -} - -UplinkTimeslotsCodes-LCR-r4 ::= SEQUENCE { - dynamicSFusage BOOLEAN, - firstIndividualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive SEQUENCE { - numAdditionalTimeslots INTEGER (1..maxTS-LCR-1) - }, - timeslotList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF - UplinkAdditionalTimeslots-LCR-r4 - } - } -} - -UplinkTimeslotsCodes-LCR-r7 ::= SEQUENCE { - dynamicSFusage BOOLEAN, - firstIndividualTimeslotInfo IndividualTimeslotInfo-LCR-r4, - ul-TS-ChannelisationCodeList UL-TS-ChannelisationCodeList-r7, - moreTimeslots CHOICE { - noMore NULL, - additionalTimeslots CHOICE { - consecutive SEQUENCE { - -- the choice of 'consecutive' is not needed because there is only 1 option. - numAdditionalTimeslots INTEGER (1..maxTS-LCR-1) - }, - timeslotList SEQUENCE (SIZE (1..maxTS-LCR-1)) OF - UplinkAdditionalTimeslots-LCR-r7 - } - } -} - -UpPCHposition-LCR ::= INTEGER (0..127) - -Wi-LCR ::= INTEGER (1..4) - --- *************************************************** --- --- MEASUREMENT INFORMATION ELEMENTS (10.3.7) --- --- *************************************************** - -AcquisitionSatInfo ::= SEQUENCE { - satID SatID, - -- Actual value dopplerOthOrder = IE value * 2.5 - doppler0thOrder INTEGER (-2048..2047), - extraDopplerInfo ExtraDopplerInfo OPTIONAL, - codePhase INTEGER (0..1022), - integerCodePhase INTEGER (0..19), - gps-BitNumber INTEGER (0..3), - codePhaseSearchWindow CodePhaseSearchWindow, - azimuthAndElevation AzimuthAndElevation OPTIONAL -} - -AcquisitionSatInfo-va40ext ::= SEQUENCE { - azimuthAndElevation AzimuthAndElevation-va40ext OPTIONAL -} - -AcquisitionSatInfo-r10 ::= SEQUENCE { - satID SatID, - -- Actual value dopplerOthOrder = IE value * 2.5 - doppler0thOrder INTEGER (-2048..2047), - extraDopplerInfo ExtraDopplerInfo OPTIONAL, - codePhase INTEGER (0..1022), - integerCodePhase INTEGER (0..19), - gps-BitNumber INTEGER (0..3), - codePhaseSearchWindow CodePhaseSearchWindow, - azimuthAndElevation AzimuthAndElevation-r10 OPTIONAL -} - -AcquisitionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF - AcquisitionSatInfo - -AcquisitionSatInfoList-va40ext ::= SEQUENCE (SIZE (1..maxSat)) OF - AcquisitionSatInfo-va40ext - -AcquisitionSatInfoList-r10 ::= SEQUENCE (SIZE (1..maxSat)) OF - AcquisitionSatInfo-r10 - -AdditionalMeasurementID-List ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF - MeasurementIdentity - -AdditionalMeasurementID-List-r9 ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF - MeasurementIdentity-r9 - -AlmanacSatInfo ::= SEQUENCE { - dataID INTEGER (0..3), - satID SatID, - e BIT STRING (SIZE (16)), - t-oa BIT STRING (SIZE (8)), - deltaI BIT STRING (SIZE (16)), - omegaDot BIT STRING (SIZE (16)), - satHealth BIT STRING (SIZE (8)), - a-Sqrt BIT STRING (SIZE (24)), - omega0 BIT STRING (SIZE (24)), - m0 BIT STRING (SIZE (24)), - omega BIT STRING (SIZE (24)), - af0 BIT STRING (SIZE (11)), - af1 BIT STRING (SIZE (11)) -} - -AlmanacSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF - AlmanacSatInfo - -ALM-ECEFsbasAlmanacSet ::= SEQUENCE { - sat-info-SBASecefList GANSS-SAT-Info-Almanac-SBASecefList -} - -ALM-GlonassAlmanacSet ::= SEQUENCE { - sat-info-GLOkpList GANSS-SAT-Info-Almanac-GLOkpList -} - -ALM-keplerianParameters ::= SEQUENCE { - -- time of week by 4096s steps - t-oa INTEGER (0..147), - iod-a INTEGER (0..3), - sat-info-kpList GANSS-SAT-Info-Almanac-KpList -} - -ALM-MidiAlmanacSet ::= SEQUENCE { - -- time of week by 4096s steps - t-oa INTEGER (0..147), - sat-info-MIDIkpList GANSS-SAT-Info-Almanac-MIDIkpList -} - -ALM-NAVKeplerianSet ::= SEQUENCE { - -- time of week by 4096s steps - t-oa INTEGER (0..147), - sat-info-NAVkpList GANSS-SAT-Info-Almanac-NAVkpList -} - -ALM-ReducedKeplerianSet ::= SEQUENCE { - -- time of week by 4096s steps - t-oa INTEGER (0..147), - sat-info-REDkpList GANSS-SAT-Info-Almanac-REDkpList -} - -AuxInfoGANSS-ID1 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF AuxInfoGANSS-ID1-element - -AuxInfoGANSS-ID1-element ::= SEQUENCE { - svID INTEGER(0..63), - signalsAvailable BIT STRING (SIZE(8)) -} - -AuxInfoGANSS-ID3 ::= SEQUENCE (SIZE (1.. maxGANSSSat)) OF AuxInfoGANSS-ID3-element - -AuxInfoGANSS-ID3-element ::= SEQUENCE { - svID INTEGER (0..63), - signalsAvailable BIT STRING (SIZE (8)), - channelNumber INTEGER (-7..13) -} - -AverageRLC-BufferPayload ::= ENUMERATED { - pla0, pla4, pla8, pla16, pla32, - pla64, pla128, pla256, pla512, - pla1024, pla2k, pla4k, pla8k, pla16k, - pla32k, pla64k, pla128k, pla256k, - pla512k, pla1024k, spare12, spare11, - spare10, spare9, spare8, spare7, spare6, - spare5, spare4, spare3, spare2, spare1 } - -AzimuthAndElevation ::= SEQUENCE { - -- Actual value azimuth = IE value * 11.25 + IE value of azimuthLSB * 0.703125 degrees - azimuth INTEGER (0..31), - -- Actual value elevation = IE value * 11.25 + IE value of elevationLSB * 0.703125 degrees - elevation INTEGER (0..7) -} - -AzimuthAndElevation-va40ext ::= SEQUENCE { - azimuthLSB INTEGER (0..15), - elevationLSB INTEGER (0..15) -} - -AzimuthAndElevation-r10 ::= SEQUENCE { - -- Actual value azimuth = IE value * 11.25 + IE value of azimuthLSB * 0.703125 degrees - azimuth INTEGER (0..31), - -- Actual value elevation = IE value * 11.25 + IE value of elevationLSB * 0.703125 degrees - elevation INTEGER (0..7), - azimuthLSB INTEGER (0..15), - elevationLSB INTEGER (0..15) -} - -BadSatList ::= SEQUENCE (SIZE (1..maxSat)) OF - INTEGER (0..63) - -Frequency-Band ::= ENUMERATED { - dcs1800BandUsed, pcs1900BandUsed } - -BCCH-ARFCN ::= INTEGER (0..1023) - -BLER-MeasurementResults ::= SEQUENCE { - transportChannelIdentity TransportChannelIdentity, - dl-TransportChannelBLER DL-TransportChannelBLER OPTIONAL -} - -BLER-MeasurementResultsList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - BLER-MeasurementResults - -BLER-TransChIdList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - TransportChannelIdentity - -BSIC-VerificationRequired ::= ENUMERATED { - required, notRequired } - -BSICReported ::= CHOICE { - -- Value maxCellMeas is not allowed for verifiedBSIC - verifiedBSIC INTEGER (0..maxCellMeas), - nonVerifiedBSIC BCCH-ARFCN -} - -BurstModeParameters ::= SEQUENCE { - burstStart INTEGER (0..15), - burstLength INTEGER (10..25), - burstFreq INTEGER (1..16) -} - -CellDCH-ReportCriteria ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria, - periodicalReportingCriteria PeriodicalReportingCriteria -} - -CellDCH-ReportCriteria-LCR-r4 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-LCR-r4, - periodicalReportingCriteria PeriodicalReportingCriteria -} - -CellDCHMeasOccasionPattern-LCR ::= SEQUENCE { - patternIdentifier INTEGER(0..maxMeasOccasionPattern-1), - statusFlag ENUMERATED { - activate, deactivate}, - measurementPurpose BIT STRING (SIZE (5)) OPTIONAL, - measurementOccasionPatternParameter MeasurementOccasionPatternParameter OPTIONAL -} -CellDCHMeasOccasionInfo-TDD128-r9::= SEQUENCE { - cellDCHMeasOccasionSequenceList SEQUENCE (SIZE (1..maxMeasOccasionPattern)) OF - CellDCHMeasOccasionPattern-LCR -} - --- Actual value CellIndividualOffset = IE value * 0.5 -CellIndividualOffset ::= INTEGER (-20..20) - - -CellInfo ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList OPTIONAL, - readSFN-Indicator BOOLEAN - } - } -} - -CellInfo-r4 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info-r4, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList-r4 OPTIONAL, - readSFN-Indicator BOOLEAN - - } - } -} - -CellInfo-LCR-r8-ext ::= SEQUENCE { - cellSelectionReselectionInfo CellSelectReselectInfoMC-RSCP OPTIONAL -} - -CellInfo-r9 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info-r4, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList-r4 OPTIONAL, - readSFN-Indicator BOOLEAN - } - }, - -- For 1.28 Mcps TDD, cellSelectionReselectionInfo is optional present when sent - -- in Measurement Control.For FDD, this IE is not needed. - cellSelectionReselectionInfo CellSelectReselectInfoMC-RSCP OPTIONAL -} - -CellInfoListToBeExcluded::= SEQUENCE (SIZE (1..maxExcludedDetectedSetCells )) OF - PrimaryCPICH-Info - -CellInfoSI-RSCP ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList OPTIONAL, - readSFN-Indicator BOOLEAN - } - }, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-RSCP OPTIONAL -} - -CellInfoSI-RSCP-LCR-r4 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL, - readSFN-Indicator BOOLEAN, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-RSCP OPTIONAL -} - -CellInfoSI-ECN0 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList OPTIONAL, - readSFN-Indicator BOOLEAN - } - }, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-ECN0 OPTIONAL -} - -CellInfoSI-ECN0-LCR-r4 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL, - readSFN-Indicator BOOLEAN, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-ECN0 OPTIONAL -} - -CellInfoSI-HCS-RSCP ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList OPTIONAL, - readSFN-Indicator BOOLEAN - } - }, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-RSCP OPTIONAL -} - -CellInfoSI-HCS-RSCP-LCR-r4 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL, - readSFN-Indicator BOOLEAN, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-RSCP OPTIONAL -} - -CellInfoSI-HCS-ECN0 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, - primaryCPICH-TX-Power PrimaryCPICH-TX-Power OPTIONAL, - readSFN-Indicator BOOLEAN, - tx-DiversityIndicator BOOLEAN - }, - tdd SEQUENCE { - primaryCCPCH-Info PrimaryCCPCH-Info, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList OPTIONAL, - readSFN-Indicator BOOLEAN - } - }, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-ECN0 OPTIONAL -} - -CellInfoSI-HCS-ECN0-LCR-r4 ::= SEQUENCE { - cellIndividualOffset CellIndividualOffset DEFAULT 0, - referenceTimeDifferenceToCell ReferenceTimeDifferenceToCell OPTIONAL, - primaryCCPCH-Info PrimaryCCPCH-Info-LCR-r4, - primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power OPTIONAL, - timeslotInfoList TimeslotInfoList-LCR-r4 OPTIONAL, - readSFN-Indicator BOOLEAN, - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12-HCS-ECN0 OPTIONAL -} - -CellMeasuredResults ::= SEQUENCE { - cellIdentity CellIdentity OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy SFN-SFN-ObsTimeDifference OPTIONAL, - cellSynchronisationInfo CellSynchronisationInfo OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL, - cpich-RSCP CPICH-RSCP OPTIONAL, - pathloss Pathloss OPTIONAL - }, - tdd SEQUENCE { - cellParametersID CellParametersID, - proposedTGSN TGSN OPTIONAL, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL, - pathloss Pathloss OPTIONAL, - timeslotISCP-List TimeslotISCP-List OPTIONAL - } - } -} - --- The IE is created in order to add missing DeltaRSCPPerCell IE from Rel-5. -CellMeasuredResults-r9 ::= SEQUENCE { - cellIdentity CellIdentity OPTIONAL, - cellSynchronisationInfo CellSynchronisationInfo OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL, - cpich-RSCP CPICH-RSCP OPTIONAL, - deltaRSCPPerCell DeltaRSCPPerCell OPTIONAL, - pathloss Pathloss OPTIONAL - }, - tdd SEQUENCE { - cellParametersID CellParametersID, - proposedTGSN TGSN OPTIONAL, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL, - pathloss Pathloss OPTIONAL, - timeslotISCP-List TimeslotISCP-List OPTIONAL - } - } -} - -CellMeasuredResults-v920ext ::= SEQUENCE { - csgIdentity CSG-Identity OPTIONAL, - csgMemberIndication ENUMERATED { member } OPTIONAL -} - -CellMeasurementEventResults ::= CHOICE { - fdd SEQUENCE (SIZE (1..maxCellMeas)) OF - PrimaryCPICH-Info, - tdd SEQUENCE (SIZE (1..maxCellMeas)) OF - PrimaryCCPCH-Info -} - -CellMeasurementEventResultsOnSecUlFreq ::= CHOICE { - fdd SEQUENCE (SIZE (1.. maxCellMeasOnSecULFreq)) OF - PrimaryCPICH-Info, - spare NULL -} - -CellMeasurementEventResults-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - PrimaryCCPCH-Info-LCR-r4 - -CellReportingQuantities ::= SEQUENCE { - -- dummy is not used in this version of the specification - -- and if received it should be ignored. - dummy SFN-SFN-OTD-Type, - cellIdentity-reportingIndicator BOOLEAN, - cellSynchronisationInfoReportingIndicator BOOLEAN, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - cpich-Ec-N0-reportingIndicator BOOLEAN, - cpich-RSCP-reportingIndicator BOOLEAN, - pathloss-reportingIndicator BOOLEAN - }, - tdd SEQUENCE { - timeslotISCP-reportingIndicator BOOLEAN, - proposedTGSN-ReportingRequired BOOLEAN, - primaryCCPCH-RSCP-reportingIndicator BOOLEAN, - pathloss-reportingIndicator BOOLEAN - } - } -} - -CellSelectReselectInfoMC-RSCP ::= SEQUENCE { - q-OffsetS-N Q-OffsetS-N DEFAULT 0, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - hcs-NeighbouringCellInformation-RSCP - HCS-NeighbouringCellInformation-RSCP OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - q-QualMin Q-QualMin OPTIONAL, - q-RxlevMin Q-RxlevMin OPTIONAL - }, - tdd SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - }, - gsm SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - } - } -} - -CellSelectReselectInfoSIB-11-12 ::= SEQUENCE { - q-Offset1S-N Q-OffsetS-N DEFAULT 0, - q-Offset2S-N Q-OffsetS-N OPTIONAL, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - hcs-NeighbouringCellInformation-RSCP - HCS-NeighbouringCellInformation-RSCP OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - q-QualMin Q-QualMin OPTIONAL, - q-RxlevMin Q-RxlevMin OPTIONAL - }, - tdd SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - }, - gsm SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - } - } -} - -CellSelectReselectInfoSIB-11-12-RSCP ::= SEQUENCE { - q-OffsetS-N Q-OffsetS-N DEFAULT 0, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - q-QualMin Q-QualMin OPTIONAL, - q-RxlevMin Q-RxlevMin OPTIONAL - }, - tdd SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - }, - gsm SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - } - } -} - -CellSelectReselectInfoSIB-11-12-ECN0 ::= SEQUENCE { - q-Offset1S-N Q-OffsetS-N DEFAULT 0, - q-Offset2S-N Q-OffsetS-N DEFAULT 0, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - q-QualMin Q-QualMin OPTIONAL, - q-RxlevMin Q-RxlevMin OPTIONAL - }, - tdd SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - }, - gsm SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - } - } -} - -CellSelectReselectInfoSIB-11-12-HCS-RSCP ::= SEQUENCE { - q-OffsetS-N Q-OffsetS-N DEFAULT 0, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - hcs-NeighbouringCellInformation-RSCP - HCS-NeighbouringCellInformation-RSCP OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - q-QualMin Q-QualMin OPTIONAL, - q-RxlevMin Q-RxlevMin OPTIONAL - }, - tdd SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - }, - gsm SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - } - } -} - -CellSelectReselectInfoSIB-11-12-HCS-ECN0 ::= SEQUENCE { - q-Offset1S-N Q-OffsetS-N DEFAULT 0, - q-Offset2S-N Q-OffsetS-N DEFAULT 0, - maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - hcs-NeighbouringCellInformation-ECN0 - HCS-NeighbouringCellInformation-ECN0 OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - q-QualMin Q-QualMin OPTIONAL, - q-RxlevMin Q-RxlevMin OPTIONAL - }, - tdd SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - }, - gsm SEQUENCE { - q-RxlevMin Q-RxlevMin OPTIONAL - } - } -} - -CellSelectReselectInfo-v590ext ::= SEQUENCE { - deltaQrxlevmin DeltaQrxlevmin OPTIONAL, - deltaQhcs DeltaRSCP OPTIONAL -} - -CellSelectReselectInfoPCHFACH-v5b0ext ::= SEQUENCE { - q-Hyst-l-S-PCH Q-Hyst-S-Fine OPTIONAL, - q-Hyst-l-S-FACH Q-Hyst-S-Fine OPTIONAL, - q-Hyst-2-S-PCH Q-Hyst-S-Fine OPTIONAL, - q-Hyst-2-S-FACH Q-Hyst-S-Fine OPTIONAL, - t-Reselection-S-PCH T-Reselection-S OPTIONAL, - t-Reselection-S-FACH T-Reselection-S-Fine OPTIONAL -} - -CellSelectReselectInfoTreselectionScaling-v5c0ext ::= SEQUENCE { - -- For speed detection, the same HCS parameters are utilised - non-HCS-t-CR-Max T-CRMax OPTIONAL, - speedDependentScalingFactor SpeedDependentScalingFactor OPTIONAL, - interFrequencyTreselectionScalingFactor TreselectionScalingFactor OPTIONAL, - interRATTreselectionScalingFactor TreselectionScalingFactor OPTIONAL -} - -CellsForInterFreqMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - InterFreqCellID - -CellsForInterRATMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - InterRATCellID - -CellsForIntraFreqMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - IntraFreqCellID - -CellsForIntraFreqMeasListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF - IntraFreqCellIDOnSecULFreq - -CellSynchronisationInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - countC-SFN-Frame-difference CountC-SFN-Frame-difference OPTIONAL, - tm INTEGER(0..38399) - }, - tdd SEQUENCE { - countC-SFN-Frame-difference CountC-SFN-Frame-difference OPTIONAL - } - } -} - -CellToReport ::= SEQUENCE { - bsicReported BSICReported -} - -CellToReportList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - CellToReport - -CNAVclockModel ::= SEQUENCE { - cnavToc BIT STRING (SIZE (11)), - cnavTop BIT STRING (SIZE (11)), - cnavURA0 BIT STRING (SIZE (5)), - cnavURA1 BIT STRING (SIZE (3)), - cnavURA2 BIT STRING (SIZE (3)), - cnavAf2 BIT STRING (SIZE (10)), - cnavAf1 BIT STRING (SIZE (20)), - cnavAf0 BIT STRING (SIZE (26)), - cnavTgd BIT STRING (SIZE (13)), - cnavISCl1cp BIT STRING (SIZE (13)) OPTIONAL, - cnavISCl1cd BIT STRING (SIZE (13)) OPTIONAL, - cnavISCl1ca BIT STRING (SIZE (13)) OPTIONAL, - cnavISCl2c BIT STRING (SIZE (13)) OPTIONAL, - cnavISCl5i5 BIT STRING (SIZE (13)) OPTIONAL, - cnavISCl5q5 BIT STRING (SIZE (13)) OPTIONAL -} - -CodePhaseSearchWindow ::= ENUMERATED { - w1023, w1, w2, w3, w4, w6, w8, - w12, w16, w24, w32, w48, w64, - w96, w128, w192 } - -CountC-SFN-Frame-difference ::= SEQUENCE { - -- Actual value countC-SFN-High = IE value * 256 - countC-SFN-High INTEGER(0..15), - off INTEGER(0..255) -} - --- SPARE: CPICH-Ec-No, Max = 49 --- Values above Max are spare -CPICH-Ec-N0 ::= INTEGER (0..63) - --- SPARE: CPICH- RSCP, Max = 91 --- Values above Max are spare -CPICH-RSCP ::= INTEGER (0..127) - -CSGCellInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - startPSC PrimaryCPICH-Info, - numberOfPSCs INTEGER (1..512) - }, - tdd NULL - } -} - -CSGCellInfoList ::= SEQUENCE (SIZE (1..maxMeasCSGRange)) OF - CSGCellInfo - -CSGInterFreqCellInfo ::= SEQUENCE { - frequencyInfo FrequencyInfo, - cSGInterFreqCellInfoListperFreq CSGCellInfoList -} - -CSGInterFreqCellInfoList ::= SEQUENCE (SIZE (1..maxFreq)) OF - CSGInterFreqCellInfo - -CSGIntraFreqCellInfoList ::= CSGCellInfoList - -CSGProximityDetection ::= SEQUENCE { - uTRACSGProximityDetec ENUMERATED { enable } OPTIONAL, - e-UTRACSGProximityDetec ENUMERATED { enable } OPTIONAL -} - -CSGProximityIndication ::= SEQUENCE { - cSGproximityInd ENUMERATED {entering, leaving }, - radioAccessTechnology CHOICE { - uTRA SEQUENCE { - cSGFrequencyInfoUTRA FrequencyInfo - }, - e-UTRA SEQUENCE { - cSGFrequencyInfoEUTRA EARFCN - } - } -} - -CSGProximityIndication-vb50ext ::= SEQUENCE { - cSGFrequencyInfoEUTRA EARFCNExtension OPTIONAL -} - -DataBitAssistance ::= SEQUENCE { - ganss-signal-id GANSS-Signal-Id, - data-bits BIT STRING (SIZE (1..1024)) -} - -DataBitAssistanceList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - DataBitAssistanceSat - -DataBitAssistanceSat ::= SEQUENCE { - satID INTEGER(0..63), - dataBitAssistanceSgnList DataBitAssistanceSgnList -} - -DataBitAssistanceSgnList ::= SEQUENCE (SIZE (1..maxSgnType)) OF - DataBitAssistance - -DeltaPRC ::= INTEGER (-127..127) - ---Actual value DeltaQrxlevmin = IE value * 2 -DeltaQrxlevmin ::= INTEGER (-2..-1) - -DeltaRSCP ::= INTEGER (-5..-1) - -DeltaRSCPPerCell ::= SEQUENCE { - deltaRSCP DeltaRSCP OPTIONAL -} - --- Actual value DeltaRRC = IE value * 0.032 -DeltaRRC ::= INTEGER (-7..7) - -DeltaUT1 ::= SEQUENCE { - b1 BIT STRING (SIZE (11)), - b2 BIT STRING (SIZE (10)) -} - -DGANSSInfo ::= SEQUENCE { - ganssSignalId GANSS-Signal-Id OPTIONAL, - ganssStatusHealth GANSS-Status-Health, - dgansssignalInformationList DGANSSSignalInformationList OPTIONAL -} - -DGANSSInfo-r9 ::= SEQUENCE { - ganssSignalId GANSS-Signal-Id OPTIONAL, - ganssStatusHealth GANSS-Status-Health, - dgansssignalInformationList DGANSSSignalInformationList-r9 OPTIONAL -} - -DGANSSInfo-v920ext ::= SEQUENCE { - dgansssignalInformationList DGANSSSignalInformationList-v920ext OPTIONAL -} - -DGANSSInfoList ::= SEQUENCE (SIZE (1..maxSgnType)) OF - DGANSSInfo - -DGANSSInfoList-r9 ::= SEQUENCE (SIZE (1..maxSgnType)) OF - DGANSSInfo-r9 - -DGANSSInfoList-v920ext ::= SEQUENCE (SIZE (1..maxSgnType)) OF - DGANSSInfo-v920ext - -DGANSSSignalInformation ::= SEQUENCE { - satId INTEGER (0..63), - iode-dganss BIT STRING (SIZE (10)), - udre UDRE, - ganss-prc INTEGER (-2047..2047), -- scale factor 0.32 - ganss-rrc INTEGER (-127..127) -- scale factor 0.032 -} - -DGANSSSignalInformation-r9 ::= SEQUENCE { - satId INTEGER (0..63), - iode-dganss BIT STRING (SIZE (10)), - udre UDRE, - ganss-prc INTEGER (-2047..2047), -- scale factor 0.32 - ganss-rrc INTEGER (-127..127), -- scale factor 0.032 - udreGrowthRate UDREGrowthRate OPTIONAL, - udreValidityTime UDREValidityTime OPTIONAL -} - -DGANSSSignalInformation-v920ext ::= SEQUENCE { - udreGrowthRate UDREGrowthRate OPTIONAL, - udreValidityTime UDREValidityTime OPTIONAL -} - -DGANSSSignalInformationList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - DGANSSSignalInformation - -DGANSSSignalInformationList-r9 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - DGANSSSignalInformation-r9 - -DGANSSSignalInformationList-v920ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - DGANSSSignalInformation-v920ext - -DGANSS-Sig-Id-Req ::= BIT STRING (SIZE (8)) - -DGPS-CorrectionSatInfo ::= SEQUENCE { - satID SatID, - iode IODE, - udre UDRE, - prc PRC, - rrc RRC, --- dummy1 and dummy2 are not used in this version of the specification and should be ignored. - dummy1 DeltaPRC, - dummy2 DeltaRRC, - -- dummy3 and dummy4 are not used in this version of the specification. They should not - -- be sent and if received they should be ignored. - dummy3 DeltaPRC OPTIONAL, - dummy4 DeltaRRC OPTIONAL -} - -DGPS-CorrectionSatInfo-r9 ::= SEQUENCE { - satID SatID, - iode IODE, - udre UDRE, - prc PRC, - rrc RRC, - udreGrowthRate UDREGrowthRate OPTIONAL, - udreValidityTime UDREValidityTime OPTIONAL -} - -DGPS-CorrectionSatInfo-v920ext ::= SEQUENCE { - udreGrowthRate UDREGrowthRate OPTIONAL, - udreValidityTime UDREValidityTime OPTIONAL -} - -DGPS-CorrectionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF - DGPS-CorrectionSatInfo - -DGPS-CorrectionSatInfoList-r9 ::= SEQUENCE (SIZE (1..maxSat)) OF - DGPS-CorrectionSatInfo-r9 - -DGPS-CorrectionSatInfoList-v920ext ::= SEQUENCE (SIZE (1..maxSat)) OF - DGPS-CorrectionSatInfo-v920ext - -DiffCorrectionStatus ::= ENUMERATED { - udre-1-0, udre-0-75, udre-0-5, udre-0-3, - udre-0-2, udre-0-1, noData, invalidData } - -DL-TransportChannelBLER ::= INTEGER (0..63) - -DopplerUncertainty ::= ENUMERATED { - hz12-5, hz25, hz50, hz100, hz200, - spare3, spare2, spare1 } - -EllipsoidPoint ::= SEQUENCE { - latitudeSign ENUMERATED { north, south }, - latitude INTEGER (0..8388607), - longitude INTEGER (-8388608..8388607) -} - - -EllipsoidPointAltitude ::= SEQUENCE { - latitudeSign ENUMERATED { north, south }, - latitude INTEGER (0..8388607), - longitude INTEGER (-8388608..8388607), - altitudeDirection ENUMERATED {height, depth}, - altitude INTEGER (0..32767) -} - - -EllipsoidPointAltitudeEllipsoide ::= SEQUENCE { - latitudeSign ENUMERATED { north, south }, - latitude INTEGER (0..8388607), - longitude INTEGER (-8388608..8388607), - altitudeDirection ENUMERATED {height, depth}, - altitude INTEGER (0..32767), - uncertaintySemiMajor INTEGER (0..127), - uncertaintySemiMinor INTEGER (0..127), - -- Actual value orientationMajorAxis = IE value * 2 - orientationMajorAxis INTEGER (0..89), - uncertaintyAltitude INTEGER (0..127), - confidence INTEGER (0..100) -} - - -EllipsoidPointUncertCircle ::= SEQUENCE { - latitudeSign ENUMERATED { north, south }, - latitude INTEGER (0..8388607), - longitude INTEGER (-8388608..8388607), - uncertaintyCode INTEGER (0..127) -} - - -EllipsoidPointUncertEllipse ::= SEQUENCE { - latitudeSign ENUMERATED { north, south }, - latitude INTEGER (0..8388607), - longitude INTEGER (-8388608..8388607), - uncertaintySemiMajor INTEGER (0..127), - uncertaintySemiMinor INTEGER (0..127), - -- Actual value orientationMajorAxis = IE value * 2 - orientationMajorAxis INTEGER (0..89), - confidence INTEGER (0..100) -} - - -EnvironmentCharacterisation ::= ENUMERATED { - possibleHeavyMultipathNLOS, - lightMultipathLOS, - notDefined, - spare } - -Eutra-EventResult ::= SEQUENCE { - earfcn EARFCN, - reportedCells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF - EUTRA-PhysicalCellIdentity -} - -EUTRA-EventResult-vb50ext ::= SEQUENCE { - earfcn EARFCNExtension OPTIONAL -} - -Eutra-EventResultList ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF - Eutra-EventResult - -EUTRA-EventResultList-vb50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF - EUTRA-EventResult-vb50ext - -EUTRA-EventResults ::= SEQUENCE { - eventID EventIDInterRAT, - eutra-EventResultsList Eutra-EventResultList -} - -EUTRA-EventResults-vb50ext ::= SEQUENCE { - eutra-EventResultsList EUTRA-EventResultList-vb50ext -} - -EUTRA-EventResultsForCELLFACH ::= SEQUENCE { - eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH)) -} - -EUTRA-FrequencyAndPriorityInfo ::= SEQUENCE { - earfcn EARFCN, - measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, - priority INTEGER (0..maxPrio-1), - -- Actual value = IE value * 2 - qRxLevMinEUTRA INTEGER (-70..-22), - -- Actual value = IE value * 2 - threshXhigh INTEGER (0..31), - -- Actual value = IE value * 2 - threshXlow INTEGER (0..31), - eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL, - eutraDetection BOOLEAN -} - -EUTRA-FrequencyAndPriorityInfo-v920ext ::= SEQUENCE { - qqualMinEUTRA INTEGER (-34..-3) OPTIONAL, - threshXhigh2 INTEGER (0..31) OPTIONAL, - threshXlow2 INTEGER (0..31) OPTIONAL -} - -EUTRA-FrequencyAndPriorityInfo-vb50ext ::= SEQUENCE { - qqualMinEUTRA-WB INTEGER (-34..-3) OPTIONAL -} - -EUTRA-FrequencyAndPriorityInfoExtension-vb50ext ::= SEQUENCE { - earfcn EARFCNExtension, - measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, - priority INTEGER (0..maxPrio-1), - -- Actual value = IE value * 2 - qRxLevMinEUTRA INTEGER (-70..-22), - -- Actual value = IE value * 2 - threshXhigh INTEGER (0..31), - -- Actual value = IE value * 2 - threshXlow INTEGER (0..31), - qqualMinEUTRA INTEGER (-34..-3) OPTIONAL, - threshXhigh2 INTEGER (0..31) OPTIONAL, - threshXlow2 INTEGER (0..31) OPTIONAL, - eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL, - eutraDetection BOOLEAN -} - -EUTRA-FrequencyAndPriorityInfoExtensionList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EUTRA-FrequencyAndPriorityInfoExtension-vb50ext - -EUTRA-FrequencyAndPriorityInfoList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EUTRA-FrequencyAndPriorityInfo - -EUTRA-FrequencyAndPriorityInfoList-v920ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EUTRA-FrequencyAndPriorityInfo-v920ext - -EUTRA-FrequencyAndPriorityInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EUTRA-FrequencyAndPriorityInfo-vb50ext - -EUTRA-FrequencyList ::= SEQUENCE { - eutraFrequencyRemoval EUTRA-FrequencyRemoval, - eutraNewFrequencies EUTRA-FrequencyInfoList OPTIONAL -} - -EUTRA-FrequencyList-r9 ::= SEQUENCE { - eutraFrequencyRemoval EUTRA-FrequencyRemoval, - eutraNewFrequencies EUTRA-FrequencyInfoList OPTIONAL, - eutraSIAcquisition EUTRA-SIAcquisition OPTIONAL -} - -EUTRA-FrequencyList-r11 ::= SEQUENCE { - eutraFrequencyRemoval EUTRA-FrequencyRemoval-r11, - eutraNewFrequencies EUTRA-FrequencyInfoList-r11 OPTIONAL, - eutraSIAcquisition EUTRA-SIAcquisition-r11 OPTIONAL -} - -EUTRA-SIAcquisition ::= SEQUENCE { - earfcn EARFCN, - physicalCellIdentity EUTRA-PhysicalCellIdentity -} - -EUTRA-SIAcquisition-r11 ::= SEQUENCE { --- If the IE earfcn is set to a value of 65535, then the EARFCN --- value for that instance shall be read from the IE earfcnExt. - earfcn EARFCN, - earfcnExt EARFCNExtension OPTIONAL, - physicalCellIdentity EUTRA-PhysicalCellIdentity -} - -EUTRA-MeasuredCells ::= SEQUENCE { - physicalCellIdentity EUTRA-PhysicalCellIdentity, - rSRP INTEGER (0..97) OPTIONAL, - rSRQ INTEGER (0..33) OPTIONAL -} - -Eutra-MeasuredResult ::= SEQUENCE { - earfcn EARFCN, - measuredEUTRACells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF - EUTRA-MeasuredCells -} - -EUTRA-MeasuredResult-vb50ext ::= SEQUENCE { - earfcn EARFCNExtension OPTIONAL -} - -Eutra-MeasuredResultList ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF - Eutra-MeasuredResult - -EUTRA-MeasuredResultList-vb50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF - EUTRA-MeasuredResult-vb50ext - -EUTRA-MeasuredResults ::= SEQUENCE { - eutraMeasuredResultList Eutra-MeasuredResultList -} - -EUTRA-MeasuredResults-vb50ext ::= SEQUENCE { - eutraMeasuredResultList EUTRA-MeasuredResultList-vb50ext -} - -EUTRA-MeasuredCells-v920ext ::= SEQUENCE { - eutraSIacquisitionResults EUTRA-SIacquisitionResults -} - -Eutra-MeasuredResult-v920ext ::= SEQUENCE { - measuredEUTRACells-v920ext SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF - EUTRA-MeasuredCells-v920ext -} - -Eutra-MeasuredResultList-v920ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF - Eutra-MeasuredResult-v920ext - - -EUTRA-MeasuredResults-v920ext ::= SEQUENCE { - eutraMeasuredResultList-v920ext Eutra-MeasuredResultList-v920ext -} - -EUTRA-SIacquisitionResults ::= SEQUENCE { - cgiInfo SEQUENCE { - plmn-Identity PLMN-Identity, - cellIdentity BIT STRING (SIZE (28)), - trackingAreaCode BIT STRING (SIZE (16)) - }, - csgIdentity CSG-Identity OPTIONAL, - csgMemberIndication ENUMERATED { member } OPTIONAL -} - -EUTRA-FrequencyRemoval ::= CHOICE { - removeAllFrequencies NULL, - removeSomeFrequencies SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EARFCN, - removeNoFrequencies NULL -} - -EUTRA-FrequencyRemoval-r11 ::= CHOICE { - removeAllFrequencies NULL, - removeSomeFrequencies FrequenciesToRemove, - removeNoFrequencies NULL -} - -EUTRA-FrequencyInfoList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EUTRA-FrequencyInfo - -EUTRA-FrequencyInfoList-r11 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EUTRA-FrequencyInfo-r11 - -EUTRA-FrequencyInfo ::= SEQUENCE { - earfcn EARFCN, - measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, - eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL -} - -EUTRA-FrequencyInfo-r11 ::= SEQUENCE { --- If the IE earfcn is set to a value of 65535, then the EARFCN --- value for that instance shall be read from the IE earfcnExt. - earfcn EARFCN, - earfcnExt EARFCNExtension OPTIONAL, - measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, - eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL, - widebandRSRQMeasurements ENUMERATED {true} OPTIONAL -} - -EUTRA-FrequencyRACHReportingInfo ::= SEQUENCE { - eutra-FrequencyListIndicator BIT STRING (SIZE (maxNumEUTRAFreqs)), - eutra-FrequencyRepQuantityRACH ENUMERATED { rsrp, rsrq }, - eutra-FrequencyRACHReportingThreshold INTEGER (0..97), - rachReportingPriority ENUMERATED { intraEUTRAInter, interIntraEUTRA, - interEUTRAIntra, eUTRAIntraInter, - eUTRAInterIntra, spare3, - spare2, spare1 } OPTIONAL -} - -EUTRA-MeasurementBandwidth ::= ENUMERATED { mbw6, mbw15, mbw25, mbw50, mbw75, mbw100 } - -EUTRA-MeasurementForCELLFACH ::= SEQUENCE { - eutraFrequenciesForMeasurement SEQUENCE (SIZE (1..maxNumEUTRAFreqs-FACH)) OF - EARFCNRange, - reportCriteria ENUMERATED { event-triggeredreporting, periodicalReporting }, - measurementQuantity ENUMERATED { rsrp, rsrq }, - reportingThreshold INTEGER (0..97) -} - -FrequenciesToRemove ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - EARFCNRange - -Event1a ::= SEQUENCE { - triggeringCondition TriggeringCondition2, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList OPTIONAL, - w W, - reportDeactivationThreshold ReportDeactivationThreshold, - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -Event1a-r4 ::= SEQUENCE { - triggeringCondition TriggeringCondition2, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList-r4 OPTIONAL, - w W, - reportDeactivationThreshold ReportDeactivationThreshold, - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -Event1a-OnSecUlFreq-r9 ::= SEQUENCE { - triggeringCondition TriggeringCondition2, - reportingRange ReportingRange, - forbiddenAffectCellListOnSecULFreq ForbiddenAffectCellListOnSecULFreq OPTIONAL, - w W, - reportDeactivationThreshold ReportDeactivationThreshold, - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -Event1a-LCR-r4 ::= SEQUENCE { - triggeringCondition TriggeringCondition2, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList-LCR-r4 OPTIONAL, - w W, - reportDeactivationThreshold ReportDeactivationThreshold, - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -Event1b ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList OPTIONAL, - w W -} - -Event1b-r4 ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList-r4 OPTIONAL, - w W -} - -Event1b-r7 ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList-r4 OPTIONAL, - w W, - periodicReportingInfo-1b PeriodicReportingInfo-1b OPTIONAL -} - -Event1b-OnSecUlFreq-r9 ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - reportingRange ReportingRange, - forbiddenAffectCellListOnSecULFreq ForbiddenAffectCellListOnSecULFreq OPTIONAL, - w W, - periodicReportingInfo-1b PeriodicReportingInfo-1b OPTIONAL -} - -Event1b-LCR-r4 ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - reportingRange ReportingRange, - forbiddenAffectCellList ForbiddenAffectCellList-LCR-r4 OPTIONAL, - w W -} - -Event1c ::= SEQUENCE { - replacementActivationThreshold ReplacementActivationThreshold, - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -Event1d ::= SEQUENCE { - triggeringCondition TriggeringCondition2 OPTIONAL, - useCIO BOOLEAN OPTIONAL -} - -Event1e ::= SEQUENCE { - triggeringCondition TriggeringCondition2, - thresholdUsedFrequency ThresholdUsedFrequency -} - -Event1e-r6 ::= SEQUENCE { - triggeringCondition TriggeringCondition2, - thresholdUsedFrequency ThresholdUsedFrequency-r6 -} - -Event1f ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - thresholdUsedFrequency ThresholdUsedFrequency -} - -Event1f-r6 ::= SEQUENCE { - triggeringCondition TriggeringCondition1, - thresholdUsedFrequency ThresholdUsedFrequency-r6 -} - -Event1j-r6 ::= SEQUENCE { - replacementActivationThreshold ReplacementActivationThreshold, - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -Event2a ::= SEQUENCE { - -- dummy is not used in this version of the specification and should be ignored - dummy Threshold, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL -} - -Event2a-r6 ::= SEQUENCE { - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqWList-r6 OPTIONAL -} - -Event2a-r10 ::= SEQUENCE { - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreq2aParameterList-r10 OPTIONAL -} - -Event2a-r11 ::= SEQUENCE { - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreq2aParameterList-r11 OPTIONAL -} - -Event2b ::= SEQUENCE { - usedFreqThreshold Threshold, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL -} - -Event2b-r6 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r6 OPTIONAL -} - -Event2b-r10 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r10 OPTIONAL -} - -Event2b-r11 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r11 OPTIONAL -} - -Event2c ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL -} - -Event2c-r6 ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r6 OPTIONAL -} - -Event2c-r10 ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r10 OPTIONAL -} - -Event2c-r11 ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r11 OPTIONAL -} - -Event2d ::= SEQUENCE { - usedFreqThreshold Threshold, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -Event2d-r6 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -Event2d-r10 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL -} - -Event2e ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList OPTIONAL -} - -Event2e-r6 ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r6 OPTIONAL -} - -Event2e-r10 ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r10 OPTIONAL -} - -Event2e-r11 ::= SEQUENCE { - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL, - nonUsedFreqParameterList NonUsedFreqParameterList-r11 OPTIONAL -} - -Event2f ::= SEQUENCE { - usedFreqThreshold Threshold, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -Event2f-r6 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -Event2f-r10 ::= SEQUENCE { - usedFreqThreshold Threshold-r6, - usedFreqW W, - hysteresis HysteresisInterFreq, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL -} - -Event3a ::= SEQUENCE { - thresholdOwnSystem Threshold, - w W, - thresholdOtherSystem Threshold, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -Event3b ::= SEQUENCE { - thresholdOtherSystem Threshold, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL - -} - -Event3c ::= SEQUENCE { - thresholdOtherSystem Threshold, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -Event3d ::= SEQUENCE { - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -EventIDInterFreq ::= ENUMERATED { - e2a, e2b, e2c, e2d, e2e, e2f, spare2, spare1 } - -EventIDInterRAT ::= ENUMERATED { - e3a, e3b, e3c, e3d } - -EventIDIntraFreq ::= ENUMERATED { - e1a, e1b, e1c, e1d, e1e, - e1f, e1g, e1h, e1i, e1j, - spare6, spare5, spare4, spare3, spare2, - spare1 } - -EventResults ::= CHOICE { - intraFreqEventResults IntraFreqEventResults, - interFreqEventResults InterFreqEventResults, - interRATEventResults InterRATEventResults, - trafficVolumeEventResults TrafficVolumeEventResults, - qualityEventResults QualityEventResults, - ue-InternalEventResults UE-InternalEventResults, - ue-positioning-MeasurementEventResults UE-Positioning-MeasurementEventResults, - spare NULL -} - -EventResults-v770ext ::= CHOICE { - ue-positioning-MeasurementEventResults UE-Positioning-MeasurementEventResults-v770ext -} - -EventResults-v860ext ::= CHOICE { - ue-positioning-MeasurementEventResults UE-Positioning-MeasurementEventResults-v860ext -} - -EventResults-va40ext ::= CHOICE { - interFreqEventResults InterFreqEventResults-va40ext -} - -EventResultsOnSecUlFreq ::= SEQUENCE { - intraFreqEventResults IntraFreqEventResultsOnSecUlFreq -} - -ExtraDoppler ::= SEQUENCE { - -- Doppler 1st order term, -0.2..+0.1 m/s2 - -- ( = -42..+21 with 1/210 m/s2 resolution) - dopplerFirstOrder INTEGER (-42.. 21), - dopplerUncertainty ENUMERATED { dopU40, dopU20, dopU10, dopU5, dopU2-5, - spare3, spare2, spare1 } -} - -ExtraDopplerInfo ::= SEQUENCE { - -- Actual value doppler1stOrder = IE value * 0.023 - doppler1stOrder INTEGER (-42..21), - dopplerUncertainty DopplerUncertainty -} - -FACH-MeasurementOccasionInfo ::= SEQUENCE { - fACH-meas-occasion-coeff INTEGER (1..12) OPTIONAL, - inter-freq-FDD-meas-ind BOOLEAN, - -- inter-freq-TDD-meas-ind is for 3.84Mcps TDD and 7.68 Mcps TDD. For 1.28Mcps TDD, the IE in - -- FACH-MeasurementOccasionInfo-LCR-r4-ext is used. - inter-freq-TDD-meas-ind BOOLEAN, - inter-RAT-meas-ind SEQUENCE (SIZE (1..maxOtherRAT)) OF - RAT-Type OPTIONAL -} - -FACH-MeasurementOccasionInfo-LCR-r4-ext ::= SEQUENCE { - inter-freq-TDD128-meas-ind BOOLEAN -} - -FilterCoefficient ::= ENUMERATED { - fc0, fc1, fc2, fc3, fc4, fc5, - fc6, fc7, fc8, fc9, fc11, fc13, - fc15, fc17, fc19, spare1 } - --- Actual value FineSFN-SFN = IE value * 0.0625 -FineSFN-SFN ::= INTEGER (0..15) - -ForbiddenAffectCell ::= CHOICE { - fdd PrimaryCPICH-Info, - tdd PrimaryCCPCH-Info -} - -ForbiddenAffectCell-r4 ::= CHOICE { - fdd PrimaryCPICH-Info, - tdd PrimaryCCPCH-Info-r4 -} - -ForbiddenAffectCell-LCR-r4 ::= SEQUENCE { - tdd PrimaryCCPCH-Info-LCR-r4 -} - -ForbiddenAffectCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - ForbiddenAffectCell - -ForbiddenAffectCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - ForbiddenAffectCell-r4 - -ForbiddenAffectCellList-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - ForbiddenAffectCell-LCR-r4 - -ForbiddenAffectCellListOnSecULFreq ::= SEQUENCE (SIZE (1.. maxCellMeasOnSecULFreq)) OF - ForbiddenAffectCellOnSecULFreq - -ForbiddenAffectCellOnSecULFreq ::= SEQUENCE { - primaryCPICH PrimaryCPICH-Info -} - -FreqQualityEstimateQuantity-FDD ::= ENUMERATED { - cpich-Ec-N0, - cpich-RSCP } - -FreqQualityEstimateQuantity-TDD ::= ENUMERATED { - primaryCCPCH-RSCP } - -GanssDataBits ::= SEQUENCE { - ganssTod INTEGER (0..86399), - dataBitAssistance ReqDataBitAssistance -} - -GANSSDecipheringKeys ::= SEQUENCE { - currentDecipheringKey BIT STRING (SIZE (56)), - nextDecipheringKey BIT STRING (SIZE (56)) -} - -GANSSGenericData ::= SEQUENCE { - ganssId INTEGER (0..7) OPTIONAL, - ganssTimeModelsList GANSSTimeModelsList OPTIONAL, - uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections OPTIONAL, - uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL, - uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL, - uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL, - uePositioningGANSSReferenceMeasurementInfo - UE-Positioning-GANSS-ReferenceMeasurementInfo OPTIONAL, - uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac OPTIONAL, - uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL -} - -GANSSGenericData-v860ext ::= SEQUENCE { - uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, - uePositioningGANSSAddNavigationModels - UE-Positioning-GANSS-AddNavigationModels OPTIONAL, - uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-v860ext OPTIONAL, - uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL, - uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL -} - -GANSSGenericData-r8 ::= SEQUENCE { - ganssId INTEGER (0..7) OPTIONAL, - uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, - ganssTimeModelsList GANSSTimeModelsList OPTIONAL, - uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections OPTIONAL, - uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL, - uePositioningGANSSAddNavigationModels - UE-Positioning-GANSS-AddNavigationModels OPTIONAL, - uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL, - uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL, - uePositioningGANSSReferenceMeasurementInfo - UE-Positioning-GANSS-ReferenceMeasurementInfo OPTIONAL, - uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r8 OPTIONAL, - uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL, - uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL, - uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL -} - -GANSSGenericData-r9 ::= SEQUENCE { - ganssId INTEGER (0..7) OPTIONAL, - uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, - ganssTimeModelsList GANSSTimeModelsList OPTIONAL, - uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-r9 OPTIONAL, - uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL, - uePositioningGANSSAddNavigationModels - UE-Positioning-GANSS-AddNavigationModels OPTIONAL, - uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL, - uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL, - uePositioningGANSSReferenceMeasurementInfo - UE-Positioning-GANSS-ReferenceMeasurementInfo OPTIONAL, - uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r8 OPTIONAL, - uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL, - uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL, - uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL -} - -GANSSGenericData-v920ext ::= SEQUENCE { - uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-v920ext OPTIONAL -} - -GANSSGenericData-va40ext ::= SEQUENCE { - ganssTimeModelsList GANSSTimeModelsList-va40ext OPTIONAL, - uePositioningGANSSReferenceMeasurementInfo - UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext - OPTIONAL, - uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-va40ext OPTIONAL -} - -GANSSGenericData-r10 ::= SEQUENCE { - ganssId INTEGER (0..7) OPTIONAL, - uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, - ganssTimeModelsList GANSSTimeModelsList-r10 OPTIONAL, - uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-r9 OPTIONAL, - uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL, - uePositioningGANSSAddNavigationModels - UE-Positioning-GANSS-AddNavigationModels OPTIONAL, - uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL, - uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL, - uePositioningGANSSReferenceMeasurementInfo - UE-Positioning-GANSS-ReferenceMeasurementInfo-r10 - OPTIONAL, - uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r10 OPTIONAL, - uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL, - uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL, - uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL -} - -GANSSGenericDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData - -GANSSGenericDataList-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData-v860ext - -GANSSGenericDataList-r8 ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData-r8 - -GANSSGenericDataList-r9 ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData-r9 - -GANSSGenericDataList-v920ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData-v920ext - -GANSSGenericDataList-va40ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData-va40ext - -GANSSGenericDataList-r10 ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GANSSGenericData-r10 - -GANSSGenericMeasurementInfo ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE { - ganssId INTEGER (0..7) OPTIONAL, - ganssMeasurementSignalList GANSSMeasurementSignalList -} - -GANSSGenericMeasurementInfo-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE { - ganssMeasurementSignalList GANSSMeasurementSignalList-v860ext -} - -GANSSMeasurementParameters ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE { - satId INTEGER (0..63), - cSurNzero INTEGER (0..63), - multipathIndicator ENUMERATED { nm, low, medium, high }, - carrierQualityIndication BIT STRING (SIZE (2)) OPTIONAL, - ganssCodePhase INTEGER (0..2097151), - ganssIntegerCodePhase INTEGER (0..63) OPTIONAL, - codePhaseRmsError INTEGER (0..63), - doppler INTEGER (-32768..32767), - adr INTEGER (0..33554431) OPTIONAL -} - -GANSSMeasurementParameters-v860ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE { - ganssIntegerCodePhaseExt INTEGER (64..127) OPTIONAL -} - -GANSSMeasurementSignalList ::= SEQUENCE (SIZE (1..maxSgnType)) OF SEQUENCE { - ganssSignalId GANSS-Signal-Id OPTIONAL, - ganssCodePhaseAmbiguity INTEGER (0..31) OPTIONAL, - ganssMeasurementParameters GANSSMeasurementParameters -} - -GANSSMeasurementSignalList-v860ext ::= SEQUENCE (SIZE (1..maxSgnType)) OF SEQUENCE { - ganssCodePhaseAmbiguityExt INTEGER (32..127) OPTIONAL, - ganssMeasurementParameters GANSSMeasurementParameters-v860ext -} - -GanssNavigationModelAdditionalData ::= SEQUENCE { - ganssWeek INTEGER (0..4095), - ganssToe INTEGER (0..167), - t-toeLimit INTEGER (0..10), - satellitesListRelatedDataList SatellitesListRelatedDataList OPTIONAL -} - -GANSSReferenceTimeOnly ::= SEQUENCE { - gANSS-tod INTEGER (0..3599999), - gANSS-timeId INTEGER (0..7) OPTIONAL, - gANSS-tod-uncertainty INTEGER (0..127) OPTIONAL -} - -GanssReqGenericData ::= SEQUENCE { - ganssId INTEGER (0..7) OPTIONAL, - ganssRealTimeIntegrity BOOLEAN, - ganssDifferentialCorrection DGANSS-Sig-Id-Req OPTIONAL, - ganssAlmanac BOOLEAN, - ganssNavigationModel BOOLEAN, - ganssTimeModelGNSS-GNSS BIT STRING (SIZE (8)) OPTIONAL, - ganssReferenceMeasurementInfo BOOLEAN, - ganssDataBits GanssDataBits OPTIONAL, - ganssUTCModel BOOLEAN, - ganssNavigationModelAdditionalData GanssNavigationModelAdditionalData OPTIONAL -} - -GanssReqGenericData-v860ext ::= SEQUENCE { - sbasId UE-Positioning-GANSS-SBAS-ID OPTIONAL, - ganssAddNavigationModel ENUMERATED { true } OPTIONAL, - ganssAddUTCmodel ENUMERATED { true } OPTIONAL, - ganssAuxInfo ENUMERATED { true } OPTIONAL, - ganssAddADchoices SEQUENCE { - orbitModelID INTEGER (0..7) OPTIONAL, - clockModelID INTEGER (0..7) OPTIONAL, - utcModelID INTEGER (0..7) OPTIONAL, - almanacModelID INTEGER (0..7) OPTIONAL - } OPTIONAL -} - -GanssRequestedGenericAssistanceDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GanssReqGenericData - -GanssRequestedGenericAssistanceDataList-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF - GanssReqGenericData-v860ext - -GANSSSatelliteInformation ::= SEQUENCE { - ganssSatId INTEGER (0..63), - dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s - extraDoppler ExtraDoppler OPTIONAL, - codePhase INTEGER (0..1023), - integerCodePhase INTEGER (0..127), - codePhaseSearchWindow BIT STRING (SIZE (5)), - azimuthandElevation AzimuthAndElevation OPTIONAL -} - -GANSSSatelliteInformation-va40ext ::= SEQUENCE { - azimuthAndElevation AzimuthAndElevation-va40ext OPTIONAL -} - -GANSSSatelliteInformation-r10 ::= SEQUENCE { - ganssSatId INTEGER (0..63), - dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s - extraDoppler ExtraDoppler OPTIONAL, - codePhase INTEGER (0..1023), - integerCodePhase INTEGER (0..127), - codePhaseSearchWindow BIT STRING (SIZE (5)), - azimuthandElevation AzimuthAndElevation-r10 OPTIONAL -} - -GANSSSatelliteInformationList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSSSatelliteInformation - -GANSSSatelliteInformationList-va40ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSSSatelliteInformation-va40ext - -GANSSSatelliteInformationList-r10 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSSSatelliteInformation-r10 - -GANSSTimeModelsList ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF - UE-Positioning-GANSS-TimeModel - -GANSSTimeModelsList-va40ext ::= SEQUENCE (SIZE (1.. maxGANSS-1)) OF - UE-Positioning-GANSS-TimeModel-va40ext - -GANSSTimeModelsList-r10 ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF - UE-Positioning-GANSS-TimeModel-r10 - -GANSS-SAT-Info-Almanac-GLOkp ::= SEQUENCE { - gloAlmNA BIT STRING (SIZE (11)), - gloAlmnA BIT STRING (SIZE (5)), - gloAlmHA BIT STRING (SIZE (5)), - gloAlmLambdaA BIT STRING (SIZE (21)), - gloAlmTlambdaA BIT STRING (SIZE (21)), - gloAlmDeltaIA BIT STRING (SIZE (18)), - gloAkmDeltaTA BIT STRING (SIZE (22)), - gloAlmDeltaTdotA BIT STRING (SIZE (7)), - gloAlmEpsilonA BIT STRING (SIZE (15)), - gloAlmOmegaA BIT STRING (SIZE (16)), - gloAlmTauA BIT STRING (SIZE (10)), - gloAlmCA BIT STRING (SIZE (1)), - gloAlmMA BIT STRING (SIZE (2)) OPTIONAL -} - -GANSS-SAT-Info-Almanac-Kp ::= SEQUENCE { - svId INTEGER(0..63), - ganss-alm-e BIT STRING (SIZE (11)), - ganss-delta-I-alm BIT STRING (SIZE (11)), - ganss-omegadot-alm BIT STRING (SIZE (11)), - ganss-svhealth-alm BIT STRING (SIZE (4)), - ganss-delta-a-sqrt-alm BIT STRING (SIZE (17)), - ganss-omegazero-alm BIT STRING (SIZE (16)), - ganss-m-zero-alm BIT STRING (SIZE (16)), - ganss-omega-alm BIT STRING (SIZE (16)), - ganss-af-zero-alm BIT STRING (SIZE (14)), - ganss-af-one-alm BIT STRING (SIZE (11)) -} - -GANSS-SAT-Info-Almanac-MIDIkp ::= SEQUENCE { - svID INTEGER(0..63), - midiAlmE BIT STRING (SIZE (11)), - midiAlmDeltaI BIT STRING (SIZE (11)), - midiAlmOmegaDot BIT STRING (SIZE (11)), - midiAlmSqrtA BIT STRING (SIZE (17)), - midiAlmOmega0 BIT STRING (SIZE (16)), - midiAlmOmega BIT STRING (SIZE (16)), - midiAlmMo BIT STRING (SIZE (16)), - midiAlmaf0 BIT STRING (SIZE (11)), - midiAlmaf1 BIT STRING (SIZE (10)), - midiAlmL1Health BIT STRING (SIZE (1)), - midiAlmL2Health BIT STRING (SIZE (1)), - midiAlmL5Health BIT STRING (SIZE (1)) -} - -GANSS-SAT-Info-Almanac-NAVkp ::= SEQUENCE { - svID INTEGER(0..63), - navAlmE BIT STRING (SIZE (16)), - navAlmDeltaI BIT STRING (SIZE (16)), - navAlmOMEGADOT BIT STRING (SIZE (16)), - navAlmSVHealth BIT STRING (SIZE (8)), - navAlmSqrtA BIT STRING (SIZE (24)), - navAlmOMEGAo BIT STRING (SIZE (24)), - navAlmOmega BIT STRING (SIZE (24)), - navAlmMo BIT STRING (SIZE (24)), - navAlmaf0 BIT STRING (SIZE (11)), - navAlmaf1 BIT STRING (SIZE (11)) -} - -GANSS-SAT-Info-Almanac-REDkp ::= SEQUENCE { - svID INTEGER(0..63), - redAlmDeltaA BIT STRING (SIZE (8)), - redAlmOmega0 BIT STRING (SIZE (7)), - redAlmPhi0 BIT STRING (SIZE (7)), - redAlmL1Health BIT STRING (SIZE (1)), - redAlmL2Health BIT STRING (SIZE (1)), - redAlmL5Health BIT STRING (SIZE (1)) -} - -GANSS-SAT-Info-Almanac-SBASecef ::= SEQUENCE { - sbasAlmDataID BIT STRING (SIZE (2)), - svID INTEGER (0..63), - sbasAlmHealth BIT STRING (SIZE (8)), - sbasAlmXg BIT STRING (SIZE (15)), - sbasAlmYg BIT STRING (SIZE (15)), - sbasAlmZg BIT STRING (SIZE (9)), - sbasAlmXgdot BIT STRING (SIZE (3)), - sbasAlmYgDot BIT STRING (SIZE (3)), - sbasAlmZgDot BIT STRING (SIZE (4)), - sbasAlmTo BIT STRING (SIZE (11)) -} - -GANSS-SAT-Info-Almanac-GLOkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSS-SAT-Info-Almanac-GLOkp - -GANSS-SAT-Info-Almanac-KpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSS-SAT-Info-Almanac-Kp - -GANSS-SAT-Info-Almanac-MIDIkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSS-SAT-Info-Almanac-MIDIkp - -GANSS-SAT-Info-Almanac-NAVkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSS-SAT-Info-Almanac-NAVkp - -GANSS-SAT-Info-Almanac-REDkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSS-SAT-Info-Almanac-REDkp - -GANSS-SAT-Info-Almanac-SBASecefList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - GANSS-SAT-Info-Almanac-SBASecef - -Ganss-Sat-Info-AddNav ::= SEQUENCE { - satId INTEGER (0..63), - svHealth BIT STRING (SIZE (6)), - iod BIT STRING (SIZE (11)), - ganssClockModel UE-Positioning-GANSS-AddClockModels, - ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels -} - -Ganss-Sat-Info-Nav ::= SEQUENCE { - satId INTEGER (0..63), - svHealth BIT STRING (SIZE (5)), - iod BIT STRING (SIZE (10)), - ganssClockModel UE-Positioning-GANSS-ClockModel, - ganssOrbitModel UE-Positioning-GANSS-OrbitModel -} - -Ganss-Sat-Info-AddNavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - Ganss-Sat-Info-AddNav - -Ganss-Sat-Info-NavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - Ganss-Sat-Info-Nav - -GANSS-Signal-Id ::= INTEGER (0..7) - -GANSS-Status-Health ::= ENUMERATED { - udre-scale-1dot0, - udre-scale-0dot75, - udre-scale-0dot5, - udre-scale-0dot3, - udre-scale-0dot2, - udre-scale-0dot1, - no-data, - invalid-data } - -GANSS-Storm-Flag ::= SEQUENCE { - storm-flag-one BOOLEAN, - storm-flag-two BOOLEAN, - storm-flag-three BOOLEAN, - storm-flag-four BOOLEAN, - storm-flag-five BOOLEAN -} - -GLONASSclockModel ::= SEQUENCE { - gloTau BIT STRING (SIZE (22)), - gloGamma BIT STRING (SIZE (11)), - gloDeltaTau BIT STRING (SIZE (5)) OPTIONAL -} - -GPS-MeasurementParam ::= SEQUENCE { - satelliteID INTEGER (0..63), - c-N0 INTEGER (0..63), - doppler INTEGER (-32768..32768), - wholeGPS-Chips INTEGER (0..1022), - fractionalGPS-Chips INTEGER (0..1023), - multipathIndicator MultipathIndicator, - pseudorangeRMS-Error INTEGER (0..63) -} - -GPS-MeasurementParamList ::= SEQUENCE (SIZE (1..maxSat)) OF - GPS-MeasurementParam - -GSM-CarrierRSSI ::= BIT STRING (SIZE (6)) - -GSM-CellGroup ::= SEQUENCE { - startingARFCN BCCH-ARFCN, - bandIndicator ENUMERATED { dcs1800, pcs1900 }, - followingARFCNs CHOICE { - explicitListOfARFCNs SEQUENCE (SIZE (0..31)) OF BCCH-ARFCN, - equallySpacedARFCNs SEQUENCE { - arfcn-Spacing INTEGER (1..8), - numberOfFollowingARFCNs INTEGER (0..31) - }, - variableBitMapOfARFCNs OCTET STRING (SIZE (1..16)), - continuousRangeOfARFCNs SEQUENCE { - endingARFCN BCCH-ARFCN - } - } -} - -GSM-MeasuredResults ::= SEQUENCE { - gsm-CarrierRSSI GSM-CarrierRSSI OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy INTEGER (46..173) OPTIONAL, - bsicReported BSICReported, - -- dummy2 is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy2 ObservedTimeDifferenceToGSM OPTIONAL -} - -GSM-MeasuredResultsList ::= SEQUENCE (SIZE (1..maxReportedGSMCells)) OF - GSM-MeasuredResults - -GPS-TOW-1msec ::= INTEGER (0..604799999) - -GPS-TOW-1sec ::= INTEGER (0..604799) - -GPS-TOW-Assist ::= SEQUENCE { - satID SatID, - tlm-Message BIT STRING (SIZE (14)), - tlm-Reserved BIT STRING (SIZE (2)), - alert BOOLEAN, - antiSpoof BOOLEAN -} - -GPS-TOW-AssistList ::= SEQUENCE (SIZE (1..maxSat)) OF - GPS-TOW-Assist - -GSM-CellID ::= SEQUENCE { - gsm-CellID INTEGER (0..maxCellMeas-1) -} - -GSM-PriorityInfo ::= SEQUENCE { - gsmCellGroup GSM-CellGroup, - priority INTEGER (0..maxPrio-1), - -- Actual value = IE value * 2 + 1 - qRxLevMinGSM INTEGER (-58..-13), - -- Actual value = IE value * 2 - threshXhigh INTEGER (0..31), - -- Actual value = IE value * 2 - threshXlow INTEGER (0..31) -} - -GSM-PriorityInfoList ::= SEQUENCE (SIZE (1..maxNumGSMCellGroup)) OF - GSM-PriorityInfo - -GSMCellGroupingList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - GSM-CellID - -HCS-CellReselectInformation-RSCP ::= SEQUENCE { - -- TABULAR: The default value for penaltyTime is "notUsed" - -- Temporary offset is nested inside PenaltyTime-RSCP - penaltyTime PenaltyTime-RSCP -} - -HCS-CellReselectInformation-ECN0 ::= SEQUENCE { - -- TABULAR: The default value for penaltyTime is "notUsed" - -- Temporary offset is nested inside PenaltyTime-ECN0 - penaltyTime PenaltyTime-ECN0 -} - -HCS-NeighbouringCellInformation-RSCP ::= SEQUENCE { - hcs-PRIO HCS-PRIO DEFAULT 0, - q-HCS Q-HCS DEFAULT 0, - hcs-CellReselectInformation HCS-CellReselectInformation-RSCP -} - -HCS-NeighbouringCellInformation-ECN0 ::= SEQUENCE { - hcs-PRIO HCS-PRIO DEFAULT 0, - q-HCS Q-HCS DEFAULT 0, - hcs-CellReselectInformation HCS-CellReselectInformation-ECN0 -} - -HCS-PRIO ::= INTEGER (0..7) - -HCS-ServingCellInformation ::= SEQUENCE { - hcs-PRIO HCS-PRIO DEFAULT 0, - q-HCS Q-HCS DEFAULT 0, - t-CR-Max T-CRMax OPTIONAL -} - -HorizontalVelocity ::= SEQUENCE { - bearing INTEGER (0..359), - horizontalSpeed INTEGER (0..2047) - } - -HorizontalWithVerticalVelocity ::= SEQUENCE { - verticalSpeedDirection ENUMERATED { upward, downward }, - bearing INTEGER (0..359), - horizontalSpeed INTEGER (0..2047), - verticalSpeed INTEGER (0..255) -} - -HorizontalVelocityWithUncertainty ::= SEQUENCE { - bearing INTEGER (0..359), - horizontalSpeed INTEGER (0..2047), - horizontalSpeedUncertainty INTEGER (0..255) -} - -HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE { - verticalSpeedDirection ENUMERATED { upward, downward }, - bearing INTEGER (0..359), - horizontalSpeed INTEGER (0..2047), - verticalSpeed INTEGER (0..255), - horizontalUncertaintySpeed INTEGER (0..255), - verticalUncertaintySpeed INTEGER (0..255) -} - --- Actual value Hysteresis = IE value * 0.5 -Hysteresis ::= INTEGER (0..15) - --- Actual value HysteresisInterFreq = IE value * 0.5 -HysteresisInterFreq ::= INTEGER (0..29) - -IdleIntervalInfo ::= SEQUENCE { - k INTEGER (2..3) OPTIONAL, - offset INTEGER (0..7) OPTIONAL -} - -InterFreqCell ::= SEQUENCE { - frequencyInfo FrequencyInfo, - nonFreqRelatedEventResults CellMeasurementEventResults -} - -InterFreqCell-LCR-r4 ::= SEQUENCE { - frequencyInfo FrequencyInfo, - nonFreqRelatedEventResults CellMeasurementEventResults-LCR-r4 -} - -InterFreqCellID ::= INTEGER (0..maxCellMeas-1) - -InterFreqCellInfoList ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellList OPTIONAL, - cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL -} - -InterFreqCellInfoList-r4 ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellList-r4 OPTIONAL, - cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL -} - -InterFreqCellInfoList-r8 ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellList-r8 OPTIONAL, - cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL -} - -InterFreqCellInfoList-r9 ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellList-r9 OPTIONAL, - cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL, - cSGInterFreqCellInfoList CSGInterFreqCellInfoList OPTIONAL, - interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL -} - -InterFreqCellInfoList-r10 ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellList-r10 OPTIONAL, - cellsForInterFreqMeasList CellsForInterFreqMeasList OPTIONAL, - cSGInterFreqCellInfoList CSGInterFreqCellInfoList OPTIONAL, - interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL -} - -InterFreqSIAcquisition ::= SEQUENCE { - frequencyInfo FrequencyInfo, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryScramblingCode PrimaryCPICH-Info - }, - tdd NULL - } -} - - -InterFreqCellInfoSI-List-RSCP ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-RSCP OPTIONAL -} - -InterFreqCellInfoSI-List-ECN0 ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-ECN0 OPTIONAL -} - -InterFreqCellInfoSI-List-HCS-RSCP ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP OPTIONAL -} -InterFreqCellInfoSI-List-HCS-ECN0 ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0 OPTIONAL -} - -InterFreqCellInfoSI-List-RSCP-LCR ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-RSCP-LCR-r4 OPTIONAL -} - -InterFreqCellInfoSI-List-ECN0-LCR ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-ECN0-LCR-r4 OPTIONAL -} - -InterFreqCellInfoSI-List-HCS-RSCP-LCR ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP-LCR-r4 OPTIONAL -} -InterFreqCellInfoSI-List-HCS-ECN0-LCR ::= SEQUENCE { - removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0-LCR-r4 OPTIONAL -} - -InterFreqCellList ::= SEQUENCE (SIZE (1..maxFreq)) OF - InterFreqCell - -InterFreqCellList-LCR-r4-ext ::= SEQUENCE (SIZE (1..maxFreq)) OF - InterFreqCell-LCR-r4 - -InterFreqCellMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - CellMeasuredResults - -InterFreqCellMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - CellMeasuredResults-v920ext - -InterFreqEvent ::= CHOICE { - event2a Event2a, - event2b Event2b, - event2c Event2c, - event2d Event2d, - event2e Event2e, - event2f Event2f -} - -InterFreqEvent-r6 ::= CHOICE { - event2a Event2a-r6, - event2b Event2b-r6, - event2c Event2c-r6, - event2d Event2d-r6, - event2e Event2e-r6, - event2f Event2f-r6 -} - -InterFreqEvent-r10 ::= CHOICE { - event2a Event2a-r10, - event2b Event2b-r10, - event2c Event2c-r10, - event2d Event2d-r10, - event2e Event2e-r10, - event2f Event2f-r10 -} - -InterFreqEvent-r11 ::= CHOICE { - event2a Event2a-r11, - event2b Event2b-r11, - event2c Event2c-r11, - event2d Event2d-r10, - event2e Event2e-r11, - event2f Event2f-r10 -} - -InterFreqEventList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - InterFreqEvent - -InterFreqEventList-r6 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - InterFreqEvent-r6 - -InterFreqEventList-r10 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - InterFreqEvent-r10 - -InterFreqEventList-r11 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - InterFreqEvent-r11 - ---Following IE shall be used regardless of CPICH RSCP(FDD) or Primary CCPCH RSCP(TDD) ---The order of the list corresponds to the order of the cells in InterFrequencyMeasuredResultsList ---The IE is only used for measured results and not for additional measured results. -InterFrequencyMeasuredResultsList-v590ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - DeltaRSCPPerCell - -Inter-FreqEventCriteria-v590ext ::= SEQUENCE { - threholdUsedFrequency-delta DeltaRSCP, - threholdNonUsedFrequency-deltaList ThreholdNonUsedFrequency-deltaList OPTIONAL -} - ---The order of the list corresponds to the order of the events in Inter-FreqEventList -Inter-FreqEventCriteriaList-v590ext ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - Inter-FreqEventCriteria-v590ext - ---The order of the list corresponds to the order of relevant events in Intra-FreqEventCriteriaList ---i.e. the first element of the list corresponds to the first occurance of event 1e, 1f, 1h, 1i, ---the second element of the list corresponds to the second occurance of event 1e, 1f, 1h, 1i -Intra-FreqEventCriteriaList-v590ext ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - DeltaRSCP - ---Following IE shall be used regardless of CPICH RSCP(FDD) or Primary CCPCH RSCP(TDD) ---The order of the list corresponds to the order of the cells in IntraFrequencyMeasuredResultsList ---The IE is only used for measured results and not for additional measured results. -IntraFrequencyMeasuredResultsList-v590ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - DeltaRSCPPerCell - - -InterFreqEventResults ::= SEQUENCE { - eventID EventIDInterFreq, - interFreqCellList InterFreqCellList OPTIONAL -} - -InterFreqEventResults-va40ext ::= SEQUENCE { - detectedSetTrigger ENUMERATED {true} OPTIONAL -} - -InterFreqEventResults-LCR-r4-ext ::= SEQUENCE { - eventID EventIDInterFreq, - interFreqCellList InterFreqCellList-LCR-r4-ext OPTIONAL -} - -InterFreqMeasQuantity ::= SEQUENCE { - reportingCriteria CHOICE { - intraFreqReportingCriteria SEQUENCE { - intraFreqMeasQuantity IntraFreqMeasQuantity - }, - interFreqReportingCriteria SEQUENCE { - filterCoefficient FilterCoefficient DEFAULT fc0, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - freqQualityEstimateQuantity-FDD FreqQualityEstimateQuantity-FDD - }, - tdd SEQUENCE { - freqQualityEstimateQuantity-TDD FreqQualityEstimateQuantity-TDD - } - } - } - } -} - -InterFreqMeasuredResults ::= SEQUENCE { - frequencyInfo FrequencyInfo OPTIONAL, - utra-CarrierRSSI UTRA-CarrierRSSI OPTIONAL, - interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList OPTIONAL -} - -InterFreqMeasuredResults-v920ext ::= SEQUENCE { - interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList-v920ext OPTIONAL -} - -InterFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF - InterFreqMeasuredResults - -InterFreqMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxFreq)) OF - InterFreqMeasuredResults-v920ext - -InterFreqMeasurementSysInfo-RSCP ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-RSCP OPTIONAL -} - -InterFreqMeasurementSysInfo-ECN0 ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-ECN0 OPTIONAL -} - -InterFreqMeasurementSysInfo-HCS-RSCP ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-RSCP OPTIONAL -} - -InterFreqMeasurementSysInfo-HCS-ECN0 ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-ECN0 OPTIONAL -} - -InterFreqMeasurementSysInfo-RSCP-LCR-r4 ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-RSCP-LCR OPTIONAL -} - -InterFreqMeasurementSysInfo-ECN0-LCR-r4 ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-ECN0-LCR OPTIONAL -} - -InterFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-RSCP-LCR OPTIONAL -} - -InterFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 ::= SEQUENCE { - interFreqCellInfoSI-List InterFreqCellInfoSI-List-HCS-ECN0-LCR OPTIONAL -} - -InterFreqRACHRepCellsList ::= SEQUENCE (SIZE (1..maxFreq)) OF -InterFreqCellID - -Dummy-InterFreqRACHReportingInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - interFreqRepQuantityRACH-FDD InterFreqRepQuantityRACH-FDD - }, - tdd SEQUENCE { - interFreqRepQuantityRACH-TDDList InterFreqRepQuantityRACH-TDDList - }, - interFreqRACHReportingThreshold Threshold, - maxReportedCellsOnRACHinterFreq MaxReportedCellsOnRACHinterFreq - } -} - -InterFreqRACHReportingInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - interFreqRepQuantityRACH-FDD InterFreqRepQuantityRACH-FDD - }, - tdd SEQUENCE { - interFreqRepQuantityRACH-TDDList InterFreqRepQuantityRACH-TDDList - } - }, - interFreqRACHReportingThreshold Threshold, - maxReportedCellsOnRACHinterFreq MaxReportedCellsOnRACHinterFreq -} - -InterFreqReportCriteria ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria, - interFreqReportingCriteria InterFreqReportingCriteria, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -InterFreqReportCriteria-r4 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r4, - interFreqReportingCriteria InterFreqReportingCriteria, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -InterFreqReportCriteria-r6 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r6, - interFreqReportingCriteria InterFreqReportingCriteria-r6, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -InterFreqReportCriteria-r7 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r7, - interFreqReportingCriteria InterFreqReportingCriteria-r6, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -InterFreqReportCriteria-r9 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r9, - interFreqReportingCriteria InterFreqReportingCriteria-r6, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -InterFreqReportCriteria-r10 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r9, - interFreqReportingCriteria InterFreqReportingCriteria-r10, - periodicalReportingCriteria PeriodicalWithReportingCellStatus-r10, - noReporting ReportingCellStatusOpt-r10 -} - -InterFreqReportCriteria-r11 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r11, - interFreqReportingCriteria InterFreqReportingCriteria-r11, - periodicalReportingCriteria PeriodicalWithReportingCellStatus-r10, - noReporting ReportingCellStatusOpt-r10 -} - -InterFreqReportingCriteria ::= SEQUENCE { - interFreqEventList InterFreqEventList OPTIONAL -} - -InterFreqReportingCriteria-r6 ::= SEQUENCE { - interFreqEventList InterFreqEventList-r6 OPTIONAL -} - -InterFreqReportingCriteria-r10 ::= SEQUENCE { - interFreqEventList InterFreqEventList-r10 OPTIONAL -} - -InterFreqReportingCriteria-r11 ::= SEQUENCE { - interFreqEventList InterFreqEventList-r11 OPTIONAL -} - -InterFreqReportingQuantity ::= SEQUENCE { - utra-Carrier-RSSI BOOLEAN, - frequencyQualityEstimate BOOLEAN, - nonFreqRelatedQuantities CellReportingQuantities -} - -InterFreqRepQuantityRACH-FDD ::= ENUMERATED { - cpich-EcN0, cpich-RSCP } - --- dummy is not used in this version of the specification, it should --- not be sent and if received the UE behaviour is not specified. -InterFreqRepQuantityRACH-TDD ::= ENUMERATED { - dummy, - primaryCCPCH-RSCP } - -InterFreqRepQuantityRACH-TDDList ::= SEQUENCE (SIZE (1..2)) OF - InterFreqRepQuantityRACH-TDD - -InterFrequencyMeasurement ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - reportCriteria InterFreqReportCriteria -} - - -InterFrequencyMeasurement-r4 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r4, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - reportCriteria InterFreqReportCriteria-r4 -} - -InterFrequencyMeasurement-r6 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r4, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - reportCriteria InterFreqReportCriteria-r6 -} - -InterFrequencyMeasurement-r7 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r4, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - reportCriteria InterFreqReportCriteria-r7 -} - -InterFrequencyMeasurement-r8 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r8, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - adjacentFrequencyIndex INTEGER (0..31) OPTIONAL, - reportCriteria InterFreqReportCriteria-r7 -} - -InterFrequencyMeasurement-r9 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r9, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - adjacentFrequencyIndex INTEGER (0..31) OPTIONAL, - interBandFrequencyIndex INTEGER (0..31) OPTIONAL, - reportCriteria InterFreqReportCriteria-r9 -} - -InterFrequencyMeasurement-r10 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r10, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - adjacentFrequencyIndex INTEGER (0..31) OPTIONAL, - interBandFrequencyIndex INTEGER (0..31) OPTIONAL, - freqIndexListForEnhancedMeas FreqIndexListForEnhancedMeas OPTIONAL, - reportCriteria InterFreqReportCriteria-r10 -} - -InterFrequencyMeasurement-r11 ::= SEQUENCE { - interFreqCellInfoList InterFreqCellInfoList-r10, - interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, - interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, - adjacentFrequencyIndex INTEGER (0..31) OPTIONAL, - interBandFrequencyIndex INTEGER (0..31) OPTIONAL, - freqIndexListForEnhancedMeas FreqIndexListForEnhancedMeas OPTIONAL, - reportCriteria InterFreqReportCriteria-r11 -} - -InterRAT-TargetCellDescription ::= SEQUENCE { - technologySpecificInfo CHOICE { - gsm SEQUENCE { - bsic BSIC, - frequency-band Frequency-Band, - bcch-ARFCN BCCH-ARFCN, - ncMode NC-Mode OPTIONAL - }, - is-2000 NULL, - spare2 NULL, - spare1 NULL - } -} - -InterRATCellID ::= INTEGER (0..maxCellMeas-1) - -InterRATCellInfoIndication ::= INTEGER (0..3) - -InterRATCellInfoList ::= SEQUENCE { - removedInterRATCellList RemovedInterRATCellList, - -- NOTE: Future revisions of dedicated messages including IE newInterRATCellList - -- should use a corrected version of this IE - newInterRATCellList NewInterRATCellList, - cellsForInterRATMeasList CellsForInterRATMeasList OPTIONAL -} - -InterRATCellInfoList-B ::= SEQUENCE { - removedInterRATCellList RemovedInterRATCellList, - -- NOTE: IE newInterRATCellList should be optional. However, system information - -- does not support message versions. Hence, this can not be corrected - newInterRATCellList NewInterRATCellList-B -} - -InterRATCellInfoList-r4 ::= SEQUENCE { - removedInterRATCellList RemovedInterRATCellList, - newInterRATCellList NewInterRATCellList OPTIONAL, - cellsForInterRATMeasList CellsForInterRATMeasList OPTIONAL -} - -InterRATCellInfoList-r6 ::= SEQUENCE { - removedInterRATCellList RemovedInterRATCellList, - newInterRATCellList NewInterRATCellList OPTIONAL, - cellsForInterRATMeasList CellsForInterRATMeasList OPTIONAL, - interRATCellInfoIndication-r6 InterRATCellInfoIndication OPTIONAL -} - -InterRATCellIndividualOffset ::= INTEGER (-50..50) - -InterRATEvent ::= CHOICE { - event3a Event3a, - event3b Event3b, - event3c Event3c, - event3d Event3d -} - -InterRATEventList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - InterRATEvent - -InterRATEventResults ::= SEQUENCE { - eventID EventIDInterRAT, - cellToReportList CellToReportList -} - -InterRATInfo ::= ENUMERATED { - gsm } - -InterRATInfo-r6 ::= SEQUENCE { - rat InterRATInfo, - gsm-TargetCellInfoList GSM-TargetCellInfoList OPTIONAL -} - -InterRATInfo-v860ext ::= CHOICE { - -- CHOICE gsm is provided in IE InterRATInfo or IE InterRATInfo-r6 - gsm NULL, - eutra SEQUENCE { - eutra-TargetFreqInfoList EUTRA-TargetFreqInfoList - } -} - -InterRATMeasQuantity ::= SEQUENCE { - measQuantityUTRAN-QualityEstimate IntraFreqMeasQuantity OPTIONAL, - ratSpecificInfo CHOICE { - gsm SEQUENCE { - measurementQuantity MeasurementQuantityGSM, - filterCoefficient FilterCoefficient DEFAULT fc0, - bsic-VerificationRequired BSIC-VerificationRequired - }, - is-2000 SEQUENCE { - tadd-EcIo INTEGER (0..63), - tcomp-EcIo INTEGER (0..15), - softSlope INTEGER (0..63) OPTIONAL, - addIntercept INTEGER (0..63) OPTIONAL - } - } -} - -InterRATMeasQuantity-r8 ::= SEQUENCE { - measQuantityUTRAN-QualityEstimate IntraFreqMeasQuantity OPTIONAL, - ratSpecificInfo CHOICE { - gsm SEQUENCE { - measurementQuantity MeasurementQuantityGSM, - filterCoefficient FilterCoefficient DEFAULT fc0, - bsic-VerificationRequired BSIC-VerificationRequired - }, - is-2000 SEQUENCE { - tadd-EcIo INTEGER (0..63), - tcomp-EcIo INTEGER (0..15), - softSlope INTEGER (0..63) OPTIONAL, - addIntercept INTEGER (0..63) OPTIONAL - }, - e-UTRA SEQUENCE { - measurementQuantity MeasurementQuantityEUTRA, - filterCoefficient FilterCoefficient DEFAULT fc0 - } - } -} - -InterRATMeasuredResults ::= CHOICE { - gsm GSM-MeasuredResultsList, - spare NULL -} - -InterRATMeasuredResultsList ::= SEQUENCE (SIZE (1..maxOtherRAT-16)) OF - InterRATMeasuredResults - -InterRATMeasurement ::= SEQUENCE { - interRATCellInfoList InterRATCellInfoList OPTIONAL, - interRATMeasQuantity InterRATMeasQuantity OPTIONAL, - interRATReportingQuantity InterRATReportingQuantity OPTIONAL, - reportCriteria InterRATReportCriteria -} - -InterRATMeasurement-r4 ::= SEQUENCE { - interRATCellInfoList InterRATCellInfoList-r4 OPTIONAL, - interRATMeasQuantity InterRATMeasQuantity OPTIONAL, - interRATReportingQuantity InterRATReportingQuantity OPTIONAL, - reportCriteria InterRATReportCriteria -} - -InterRATMeasurement-r6 ::= SEQUENCE { - interRATCellInfoList InterRATCellInfoList-r6 OPTIONAL, - interRATMeasQuantity InterRATMeasQuantity OPTIONAL, - interRATReportingQuantity InterRATReportingQuantity OPTIONAL, - reportCriteria InterRATReportCriteria -} - -InterRATMeasurement-r8 ::= SEQUENCE { - interRATMeasurementObjects CHOICE { - interRATCellInfoList InterRATCellInfoList-r6, - eutra-FrequencyList EUTRA-FrequencyList - } OPTIONAL, - interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL, - interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL, - reportCriteria InterRATReportCriteria, - idleIntervalInfo IdleIntervalInfo OPTIONAL -} - -InterRATMeasurement-r9 ::= SEQUENCE { - interRATMeasurementObjects CHOICE { - interRATCellInfoList InterRATCellInfoList-r6, - eutra-FrequencyList EUTRA-FrequencyList-r9 - } OPTIONAL, - interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL, - interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL, - reportCriteria InterRATReportCriteria, - idleIntervalInfo IdleIntervalInfo OPTIONAL -} - -InterRATMeasurement-r11 ::= SEQUENCE { - interRATMeasurementObjects CHOICE { - interRATCellInfoList InterRATCellInfoList-r6, - eutra-FrequencyList EUTRA-FrequencyList-r11 - } OPTIONAL, - interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL, - interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL, - reportCriteria InterRATReportCriteria, - idleIntervalInfo IdleIntervalInfo OPTIONAL -} - -InterRATMeasurementSysInfo ::= SEQUENCE { - interRATCellInfoList InterRATCellInfoList OPTIONAL -} - -InterRATMeasurementSysInfo-B ::= SEQUENCE { - interRATCellInfoList InterRATCellInfoList-B OPTIONAL -} - -InterRATReportCriteria ::= CHOICE { - interRATReportingCriteria InterRATReportingCriteria, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -InterRATReportingCriteria ::= SEQUENCE { - interRATEventList InterRATEventList OPTIONAL -} - -InterRATReportingQuantity ::= SEQUENCE { - utran-EstimatedQuality BOOLEAN, - ratSpecificInfo CHOICE { - gsm SEQUENCE { - -- dummy and dummy2 are not used in this version of the specification - -- and when received they should be ignored. - dummy BOOLEAN, - dummy2 BOOLEAN, - gsm-Carrier-RSSI BOOLEAN - } - } -} - -InterRATReportingQuantity-r8 ::= SEQUENCE { - utran-EstimatedQuality BOOLEAN, - ratSpecificInfo CHOICE { - gsm SEQUENCE { - gsm-Carrier-RSSI BOOLEAN - }, - eutra SEQUENCE { - reportingQuantity ENUMERATED { measurementQuantity, - both } - } - } -} - -IntraFreqCellID ::= INTEGER (0..maxCellMeas-1) - -IntraFreqCellIDOnSecULFreq ::= INTEGER (0..maxCellMeasOnSecULFreq-1) - -IntraFreqCellInfoList ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellList OPTIONAL, - cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL -} - -IntraFreqCellInfoList-r4 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellList-r4 OPTIONAL, - cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL -} - -IntraFreqCellInfoListInfoOnSecULFreq ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellListOnSecULFreq OPTIONAL, - newIntraFreqCellList NewIntraFreqCellListOnSecULFreq OPTIONAL, - cellsForIntraFreqMeasList CellsForIntraFreqMeasListOnSecULFreq OPTIONAL -} - -IntraFreqCellInfoListOnSecULFreq ::= SEQUENCE { - intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListInfoOnSecULFreq -} - -IntraFreqCellInfoList-r9 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellList-r9 OPTIONAL, - cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL, - cSGIntraFreqCellInfoList CSGIntraFreqCellInfoList OPTIONAL, - intraFreqSIAcquisition IntraFreqSIAcquisition OPTIONAL - -} - -IntraFreqCellInfoList-r10 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellList-r10 OPTIONAL, - cellsForIntraFreqMeasList CellsForIntraFreqMeasList OPTIONAL, - cSGIntraFreqCellInfoList CSGIntraFreqCellInfoList OPTIONAL, - intraFreqSIAcquisition IntraFreqSIAcquisition OPTIONAL -} - -IntraFreqSIAcquisitionInfo::= SEQUENCE (SIZE (1..maxSIrequest)) OF - PrimaryCPICH-Info - -IntraFreqSIAcquisition ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - intraFreqSIAcquisitionInfo IntraFreqSIAcquisitionInfo OPTIONAL - }, - tdd NULL - } -} - -IntraFreqCellInfoSI-List-RSCP ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-RSCP -} - -IntraFreqCellInfoSI-List-ECN0 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-ECN0 -} - -IntraFreqCellInfoSI-List-HCS-RSCP ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP -} - -IntraFreqCellInfoSI-List-HCS-ECN0 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0 -} - -IntraFreqCellInfoSI-List-RSCP-LCR-r4 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-RSCP-LCR-r4 -} - -IntraFreqCellInfoSI-List-ECN0-LCR-r4 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-ECN0-LCR-r4 -} - -IntraFreqCellInfoSI-List-HCS-RSCP-LCR-r4 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4 -} - -IntraFreqCellInfoSI-List-HCS-ECN0-LCR-r4 ::= SEQUENCE { - removedIntraFreqCellList RemovedIntraFreqCellList OPTIONAL, - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4 -} - -IntraFreqEvent ::= CHOICE { - e1a Event1a, - e1b Event1b, - e1c Event1c, - e1d NULL, - e1e Event1e, - e1f Event1f, - e1g NULL, - e1h ThresholdUsedFrequency, - e1i ThresholdUsedFrequency -} - -IntraFreqEvent-r4 ::= CHOICE { - e1a Event1a-r4, - e1b Event1b-r4, - e1c Event1c, - e1d NULL, - e1e Event1e, - e1f Event1f, - e1g NULL, - e1h ThresholdUsedFrequency, - e1i ThresholdUsedFrequency -} - -IntraFreqEvent-LCR-r4 ::= CHOICE { - e1a Event1a-LCR-r4, - e1b Event1b-LCR-r4, - e1c Event1c, - e1d NULL, - e1e Event1e, - e1f Event1f, - e1g NULL, - e1h ThresholdUsedFrequency, - e1i ThresholdUsedFrequency -} - -IntraFreqEvent-r6 ::= CHOICE { - e1a Event1a-r4, - e1b Event1b-r4, - e1c Event1c, - e1d Event1d, - e1e Event1e-r6, - e1f Event1f-r6, - e1g NULL, - e1h ThresholdUsedFrequency-r6, - e1i ThresholdUsedFrequency-r6, - e1j Event1j-r6 -} - -IntraFreqEvent-r7 ::= CHOICE { - e1a Event1a-r4, - e1b Event1b-r7, - e1c Event1c, - e1d Event1d, - e1e Event1e-r6, - e1f Event1f-r6, - e1g NULL, - e1h ThresholdUsedFrequency-r6, - e1i ThresholdUsedFrequency-r6, - e1j Event1j-r6 -} - -IntraFreqEventOnSecULFreq ::= CHOICE { - e1a Event1a-OnSecUlFreq-r9, - e1b Event1b-OnSecUlFreq-r9, - e1c Event1c, - e1e Event1e-r6, - e1f Event1f-r6 -} - -IntraFreqEvent-1d-r5 ::= SEQUENCE { - triggeringCondition TriggeringCondition2 OPTIONAL, - useCIO BOOLEAN OPTIONAL -} - -IntraFreqEventCriteria ::= SEQUENCE { - event IntraFreqEvent, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -IntraFreqEventCriteria-r4 ::= SEQUENCE { - event IntraFreqEvent-r4, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -IntraFreqEventCriteria-LCR-r4 ::= SEQUENCE { - event IntraFreqEvent-LCR-r4, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -IntraFreqEventCriteria-r6 ::= SEQUENCE { - event IntraFreqEvent-r6, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -IntraFreqEventCriteria-r7 ::= SEQUENCE { - event IntraFreqEvent-r7, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -IntraFreqEventCriteriaOnSecULFreq ::= SEQUENCE { - event IntraFreqEventOnSecULFreq, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -IntraFreqEventCriteriaList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - IntraFreqEventCriteria - -IntraFreqEventCriteriaList-r4 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - IntraFreqEventCriteria-r4 - -IntraFreqEventCriteriaList-LCR-r4 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - IntraFreqEventCriteria-LCR-r4 - -IntraFreqEventCriteriaList-r6 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - IntraFreqEventCriteria-r6 - -IntraFreqEventCriteriaList-r7 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - IntraFreqEventCriteria-r7 - -IntraFreqEventCriteriaListOnSecULFreq ::= SEQUENCE{ - frequencyInfo FrequencyInfo, - intraFreqEventCriteria SEQUENCE (SIZE (1..maxMeasEventOnSecULFreq)) OF - IntraFreqEventCriteriaOnSecULFreq -} - -IntraFreqEventResults ::= SEQUENCE { - eventID EventIDIntraFreq, - cellMeasurementEventResults CellMeasurementEventResults -} - -IntraFreqEventResultsOnSecUlFreq ::= SEQUENCE { - eventID EventIDIntraFreq, - cellMeasurementEventResultsOnSecUlFreq CellMeasurementEventResultsOnSecUlFreq -} - -IntraFreqMeasQuantity ::= SEQUENCE { - filterCoefficient FilterCoefficient DEFAULT fc0, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - intraFreqMeasQuantity-FDD IntraFreqMeasQuantity-FDD - }, - tdd SEQUENCE { - intraFreqMeasQuantity-TDDList IntraFreqMeasQuantity-TDDList - } - } -} - --- If IntraFreqMeasQuantity-FDD is used in InterRATMeasQuantity, then only --- cpich-Ec-N0 and cpich-RSCP are allowed. --- dummy is not used in this version of the specification, it should --- not be sent and if received the UE behaviour is not specified. -IntraFreqMeasQuantity-FDD ::= ENUMERATED { - cpich-Ec-N0, - cpich-RSCP, - pathloss, - dummy } - -IntraFreqMeasQuantity-FDD-sib3 ::= ENUMERATED { - cpich-Ec-N0, cpich-RSCP } - --- dummy is not used in this version of the specification, it should --- not be sent and if received the UE behaviour is not specified. -IntraFreqMeasQuantity-TDD ::= ENUMERATED { - primaryCCPCH-RSCP, - pathloss, - timeslotISCP, - dummy } - -IntraFreqMeasQuantity-TDDList ::= SEQUENCE (SIZE (1..4)) OF - IntraFreqMeasQuantity-TDD - -IntraFreqMeasQuantity-TDD-sib3List ::= SEQUENCE (SIZE (1..2)) OF - ENUMERATED { primaryCCPCH-RSCP, timeslotISCP } - -IntraFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - CellMeasuredResults - -IntraFreqMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - CellMeasuredResults-v920ext - - -IntraFreqMeasurementSysInfo-RSCP ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-RSCP OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL -} - -IntraFreqMeasurementSysInfo-ECN0 ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-ECN0 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL -} - -IntraFreqMeasurementSysInfo-HCS-RSCP ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-RSCP OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL -} - -IntraFreqMeasurementSysInfo-HCS-ECN0 ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-ECN0 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH OPTIONAL -} - -IntraFreqMeasurementSysInfo-RSCP-LCR-r4 ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-RSCP-LCR-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL -} - -IntraFreqMeasurementSysInfo-ECN0-LCR-r4 ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-ECN0-LCR-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL -} - -IntraFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-RSCP-LCR-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL -} - -IntraFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 ::= SEQUENCE { - intraFreqMeasurementID MeasurementIdentity DEFAULT 1, - intraFreqCellInfoSI-List IntraFreqCellInfoSI-List-HCS-ECN0-LCR-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH OPTIONAL, - maxReportedCellsOnRACH MaxReportedCellsOnRACH OPTIONAL, - reportingInfoForCellDCH ReportingInfoForCellDCH-LCR-r4 OPTIONAL -} - -IntraFreqReportCriteria ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -IntraFreqReportCriteria-r4 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r4, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -IntraFreqReportCriteria-r6 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r6, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -IntraFreqReportCriteria-r7 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r7, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -IntraFreqReportCriteria-r9 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r9, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -IntraFreqReportCriteria-r11 ::= CHOICE { - intraFreqReportingCriteria IntraFreqReportingCriteria-r11, - periodicalReportingCriteria PeriodicalWithReportingCellStatus, - noReporting ReportingCellStatusOpt -} - -IntraFreqReportingCriteria ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList OPTIONAL -} - -IntraFreqReportingCriteria-r4 ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList-r4 OPTIONAL -} - -IntraFreqReportingCriteria-LCR-r4 ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList-LCR-r4 OPTIONAL -} - -IntraFreqReportingCriteria-r6 ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList-r6 OPTIONAL -} - -IntraFreqReportingCriteria-r7 ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList-r7 OPTIONAL -} - -IntraFreqReportingCriteria-r9 ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList-r7 OPTIONAL, - eventCriteriaListOnSecULFreq IntraFreqEventCriteriaListOnSecULFreq OPTIONAL -} - -IntraFreqReportingCriteria-r11 ::= SEQUENCE { - eventCriteriaList IntraFreqEventCriteriaList-r7 OPTIONAL, - eventCriteriaListOnSecULFreq IntraFreqEventCriteriaListOnSecULFreq OPTIONAL, - excludedCellInfoList CellInfoListToBeExcluded OPTIONAL -} - -IntraFreqReportingCriteria-1b-r5 ::= SEQUENCE { - periodicReportingInfo-1b PeriodicReportingInfo-1b -} - -IntraFreqReportingQuantity ::= SEQUENCE { - activeSetReportingQuantities CellReportingQuantities, - monitoredSetReportingQuantities CellReportingQuantities, - detectedSetReportingQuantities CellReportingQuantities OPTIONAL -} - -IntraFreqReportingQuantityForRACH ::= SEQUENCE { - sfn-SFN-OTD-Type SFN-SFN-OTD-Type, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - intraFreqRepQuantityRACH-FDD IntraFreqRepQuantityRACH-FDD - }, - tdd SEQUENCE { - intraFreqRepQuantityRACH-TDDList IntraFreqRepQuantityRACH-TDDList - } - } -} - -IntraFreqRepQuantityRACH-FDD ::= ENUMERATED { - cpich-EcN0, cpich-RSCP, - pathloss, noReport } - -IntraFreqRepQuantityRACH-TDD ::= ENUMERATED { - timeslotISCP, - primaryCCPCH-RSCP, - noReport } - -IntraFreqRepQuantityRACH-TDDList ::= SEQUENCE (SIZE (1..2)) OF - IntraFreqRepQuantityRACH-TDD - -IntraFrequencyMeasurement ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria IntraFreqReportCriteria OPTIONAL -} - -IntraFrequencyMeasurement-r4 ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria IntraFreqReportCriteria-r4 OPTIONAL -} - -IntraFrequencyMeasurement-r6 ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - -- reportCriteria is optional in later versions of this message - reportCriteria IntraFreqReportCriteria-r6 -} - -IntraFrequencyMeasurement-r7 ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList-r4 OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria IntraFreqReportCriteria-r7 OPTIONAL -} - -IntraFrequencyMeasurement-r9 ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList-r9 OPTIONAL, - intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListOnSecULFreq OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria IntraFreqReportCriteria-r9 OPTIONAL -} - -IntraFrequencyMeasurement-r10 ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList-r10 OPTIONAL, - intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListOnSecULFreq OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria IntraFreqReportCriteria-r9 OPTIONAL -} - -IntraFrequencyMeasurement-r11 ::= SEQUENCE { - intraFreqCellInfoList IntraFreqCellInfoList-r10 OPTIONAL, - intraFreqCellInfoListOnSecULFreq IntraFreqCellInfoListOnSecULFreq OPTIONAL, - intraFreqMeasQuantity IntraFreqMeasQuantity OPTIONAL, - intraFreqReportingQuantity IntraFreqReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria IntraFreqReportCriteria-r11 OPTIONAL, - periodicalReportingCriteriaOnSecULFreq - PeriodicalWithReportingCellStatusOnSecULFreq OPTIONAL -} - -IntraFrequencyMeasuredResultsListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF - CellMeasuredResults-r9 - -IntraUTRAANR ::= SEQUENCE { - loggingAbsoluteThreshold LoggingAbsoluteThreshold, - loggingRelativeThreshold LoggingRelativeThreshold OPTIONAL -} - -IODE ::= INTEGER (0..255) - -IP-Length ::= ENUMERATED { - ipl5, ipl10 } - -IP-PCCPCH-r4 ::= BOOLEAN - -IP-Spacing ::= ENUMERATED { - e5, e7, e10, e15, e20, - e30, e40, e50 } - -IP-Spacing-TDD ::= ENUMERATED { - e30, e40, e50, e70, e100} - -IS-2000SpecificMeasInfo ::= ENUMERATED { - frequency, timeslot, colourcode, - outputpower, pn-Offset } - -LoggedANRConfigurationInfo ::= SEQUENCE { - loggingDuration ENUMERATED { min10, min30, hr1, spare2, spare1 }, - intraUTRAANR IntraUTRAANR OPTIONAL, - interRATANRforEUTRAIndicator ENUMERATED { true } OPTIONAL, - interRATANRforGSMIndicator ENUMERATED { true } OPTIONAL -} - -LoggedANRReportInfoList ::= SEQUENCE (SIZE (1..maxNumANRLoggedItems)) OF - LoggedANRReportInfo - -LoggedANRReportInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxNumANRLoggedItems)) OF - LoggedANRReportInfo-vb50ext - -LoggedANRReportInfo ::= SEQUENCE { - plmn-Identity PLMN-Identity, - servingCell CellIdentity, - loggedCellInfo LoggedCellInfo -} - -LoggedANRReportInfo-vb50ext ::= SEQUENCE { - loggedCellInfo LoggedCellInfo-vb50ext -} - -LoggedCellInfo ::= CHOICE { - loggedUTRACellInfo LoggedUTRACellInfo, - loggedEUTRACellInfo LoggedEUTRACellInfo, - loggedGSMCellInfo LoggedGSMCellInfo -} - -LoggedCellInfo-vb50ext ::= CHOICE { - loggedEUTRACellInfo LoggedEUTRACellInfo-vb50ext -} - -LoggedConnectionEstablishmentFailureInfo-FDD ::= SEQUENCE { - loggedConnectionEstablishmentFailureAccessInfo-FDD - LoggedConnectionEstablishmentFailureAccessInfo-FDD, - loggedMeasFailedCellMeas LoggedMeasServingCellMeas-FDD, - loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourList-FDD OPTIONAL, - loggedMeasInterfreqList LoggedMeasInterfreqList-FDD OPTIONAL, - loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL, - loggedConnectionEstablishmentFailureLocationInfo - LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL -} - -LoggedConnectionEstablishmentFailureInfo-TDD128 ::= SEQUENCE { - loggedConnectionEstablishmentFailureAccessInfo-TDD - LoggedConnectionEstablishmentFailureAccessInfo-TDD, - loggedMeasFailedCellMeas LoggedMeasServingCellMeas-TDD128, - loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourMeasList-TDD128 OPTIONAL, - loggedMeasInterfreqList LoggedMeasInterfreqList-TDD128 OPTIONAL, - loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL, - loggedConnectionEstablishmentFailureLocationInfo - LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL -} - -LoggedConnectionEstablishmentFailureAccessInfo-FDD ::= SEQUENCE { - numberOfRRCMsgTransmitted INTEGER (0..8) -} - -LoggedConnectionEstablishmentFailureAccessInfo-TDD ::= SEQUENCE { - numberOfRRCMsgTransmitted INTEGER (0..8), - fpachReceived BOOLEAN, - e-RUCCHFailure BOOLEAN OPTIONAL -} - -LoggedConnectionEstablishmentFailureLocationInfo ::= SEQUENCE { - location CHOICE { - ellipsoidPoint EllipsoidPoint, - ellipsoidPointUncertCircle EllipsoidPointUncertCircle, - ellipsoidPointUncertEllipse EllipsoidPointUncertEllipse, - ellipsoidPointAltitude EllipsoidPointAltitude, - ellipsoidPointAltitudeEllipse EllipsoidPointAltitudeEllipsoide - }, - horizontalVelocity HorizontalVelocity OPTIONAL -} - -ConnectionEstablishmentFailureReport ::= SEQUENCE { - timeSinceFailure INTEGER (0..172800), - modeSpecificInfo CHOICE { - fdd SEQUENCE { - loggedConnectionEstablishmentFailureInfo - LoggedConnectionEstablishmentFailureInfo-FDD - }, - tdd SEQUENCE { - loggedConnectionEstablishmentFailureInfo - LoggedConnectionEstablishmentFailureInfo-TDD128 - } - } -} - -LoggedEUTRACellInfo ::= SEQUENCE { - plmn-Identity PLMN-Identity, - trackingAreaCode BIT STRING (SIZE (16)), - eutraCellIdentity BIT STRING (SIZE (28)), - earfcn EARFCN, - physicalCellIdentity EUTRA-PhysicalCellIdentity -} - -LoggedEUTRACellInfo-vb50ext ::= SEQUENCE { - earfcn EARFCNExtension OPTIONAL -} - -LoggedGSMCellInfo ::= SEQUENCE { - plmn-Identity PLMN-Identity, - lac BIT STRING (SIZE (16)), - gsmCellIdentity BIT STRING (SIZE (16)), - bcch-ARFCN BCCH-ARFCN, - bandIndicator Frequency-Band, - bsic BSIC -} - -LoggedMeasurementsConfigurationInfo ::= SEQUENCE { - absoluteTimeInfo BIT STRING (SIZE(48)), - loggingDuration ENUMERATED {min10, min20, min40, hr1, hr1min30,hr2,spare2,spare1}, - loggingInterval ENUMERATED {li128,li256,li512,li1024,li2048,li3072,li4096,li6144}, - traceReference TraceReference, - traceRecordingSession TraceRecordingSession, - tce-Id TCE-Id, - areaConfiguration CHOICE { - cellIDList SEQUENCE (SIZE (1..32)) OF - CellIdentity, - locationAreaList SEQUENCE (SIZE (1..8)) OF - LAI, - routingAreaList SEQUENCE (SIZE (1..8)) OF - RAI - } OPTIONAL -} - -LoggedMeasurementsConfigurationInfo-r11 ::= SEQUENCE { - absoluteTimeInfo BIT STRING (SIZE(48)), - loggingDuration ENUMERATED {min10, min20, min40, hr1, hr1min30,hr2,spare2,spare1}, - loggingInterval ENUMERATED {li128,li256,li512,li1024,li2048,li3072,li4096,li6144}, - traceReference TraceReference, - traceRecordingSession TraceRecordingSession, - tce-Id TCE-Id, - plmnList PlmnList OPTIONAL, - areaConfiguration CHOICE { - cellIDList SEQUENCE (SIZE (1..32)) OF CellIDListItem, - locationAreaList SEQUENCE (SIZE (1..8)) OF - LAI, - routingAreaList SEQUENCE (SIZE (1..8)) OF - RAI - } OPTIONAL -} - -LoggedMeasInterfreqList-FDD ::= SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF - LoggedMeasInterfreqInfo-FDD - -LoggedMeasInterfreqInfo-FDD ::= SEQUENCE { - frequencyInfo FrequencyInfo, - loggedMeasInterfreqNeighbourList SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF - LoggedMeasNeighbourInfo-FDD -} - -LoggedMeasInterfreqInfo-TDD128 ::= SEQUENCE { - frequencyInfo FrequencyInfo, - loggedMeasInterfreqNeighbourList LoggedMeasInterfreqNeighbourList-TDD128 -} - -LoggedMeasInterRATNeighbourMeas ::= SEQUENCE { - loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList OPTIONAL, - loggedMeasGSMNeighbourCellsList LoggedMeasGSMNeighbourCellsList OPTIONAL -} - -LoggedMeasInterRATNeighbourMeas-vb50ext ::= SEQUENCE { - loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-vb50ext -} - -LoggedMeasIntrafreqNeighbourList-FDD ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF - LoggedMeasNeighbourInfo-FDD - -LoggedMeasNeighbourInfo-FDD ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - cpich-RSCP CPICH-RSCP, - cpich-Ec-N0 CPICH-Ec-N0 -} - -LoggedMeasIntrafreqNeighbourMeasList-TDD128 ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF - LoggedMeasNeighbourMeas-TDD128 - -LoggedMeasNeighbourMeas-TDD128 ::= SEQUENCE { - cellParametersID CellParametersID, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP -} - -LoggedMeasGSMNeighbourCellsList ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF - LoggedMeasGSMNeighbourCellsinfo - -LoggedMeasGSMNeighbourCellsinfo ::= SEQUENCE { - bsic BSIC, - frequency-band Frequency-Band, - bcch-ARFCN BCCH-ARFCN, - gsm-CarrierRSSI GSM-CarrierRSSI -} - -LoggedMeasEUTRAFreqList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs))OF - LoggedMeasEUTRAFreqInfo - -LoggedMeasEUTRAFreqList-vb50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF - LoggedMeasEUTRAFreqInfo-vb50ext - -LoggedMeasEUTRAFreqInfo ::= SEQUENCE { - earfcn EARFCN, - loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF - LoggedMeasEUTRAFreqNeighbourInfo -} - -LoggedMeasEUTRAFreqInfo-vb50ext ::= SEQUENCE { - earfcn EARFCNExtension OPTIONAL -} - -LoggedMeasEUTRAFreqNeighbourInfo ::= SEQUENCE { - physicalCellIdentity EUTRA-PhysicalCellIdentity, - rSRP INTEGER (0..97) , - rSRQ INTEGER (0..33) -} - -LoggedMeasInfo-FDD ::= SEQUENCE { - relativeTimeStamp INTEGER (0..7200), - loggedMeasServingCellMeas LoggedMeasServingCellMeas-FDD, - loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourList-FDD OPTIONAL, - loggedMeasInterfreqList LoggedMeasInterfreqList-FDD OPTIONAL, - loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas OPTIONAL, - loggedMeasLocationInfo LoggedMeasLocationInfo OPTIONAL -} - -LoggedMeasInfo-FDD-vb50ext ::= SEQUENCE { - loggedMeasServingCellMeas LoggedMeasServingCellMeas-FDD-vb50ext OPTIONAL, - loggedMeasLocationInfo LoggedMeasLocationInfo-vb50ext OPTIONAL, - loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL -} - -LoggedMeasInfo-TDD128 ::= SEQUENCE { - relativeTimeStamp INTEGER (0..7200), - loggedMeasServingCellMeas LoggedMeasServingCellMeas-TDD128, - loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourMeasList-TDD128 OPTIONAL, - loggedMeasInterfreqList LoggedMeasInterfreqList-TDD128 OPTIONAL, - loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas OPTIONAL, - loggedMeasLocationInfo LoggedMeasLocationInfo OPTIONAL -} - -LoggedMeasInfo-TDD128-vb50ext ::= SEQUENCE { - loggedMeasServingCellMeas LoggedMeasServingCellMeas-TDD128-vb50ext OPTIONAL, - loggedMeasLocationInfo LoggedMeasLocationInfo-vb50ext OPTIONAL, - loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL -} - -LoggedMeasInfoList-FDD ::= SEQUENCE (SIZE (1.. maxLoggedMeasReport)) OF LoggedMeasInfo-FDD - -LoggedMeasInfoList-FDD-vb50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-FDD-vb50ext - -LoggedMeasInfoList-TDD128 ::= SEQUENCE (SIZE (1.. maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128 - -LoggedMeasInfoList-TDD128-vb50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128-vb50ext - -LoggedMeasInfoList ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - loggedMeasInfoList LoggedMeasInfoList-FDD - }, - tdd SEQUENCE { - loggedMeasInfoList LoggedMeasInfoList-TDD128 - } - } -} - -LoggedMeasInfoList-vb50ext ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - loggedMeasInfoList LoggedMeasInfoList-FDD-vb50ext - }, - tdd SEQUENCE { - loggedMeasInfoList LoggedMeasInfoList-TDD128-vb50ext - } - } -} - -LoggedMeasInterfreqList-TDD128 ::= SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF - LoggedMeasInterfreqInfo-TDD128 - -LoggedMeasInterfreqNeighbourList-TDD128 ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF - LoggedMeasNeighbourMeas-TDD128 - -LoggedMeasLocationInfo ::= CHOICE { - ellipsoidPoint EllipsoidPoint, - ellipsoidPointAltitude EllipsoidPointAltitude -} - -LoggedMeasLocationInfo-vb50ext ::= CHOICE { - ellipsoidPointUncertCircle EllipsoidPointUncertCircle, - ellipsoidPointUncertEllipse EllipsoidPointUncertEllipse, - ellipsoidPointAltitudeEllipse EllipsoidPointAltitudeEllipsoide -} - -LoggedMeasReport ::= SEQUENCE { - absoluteTimeInfo BIT STRING (SIZE(48)), - traceReference TraceReference, - traceRecordingSession TraceRecordingSession, - tce-Id TCE-Id, - loggedMeasInfoList LoggedMeasInfoList OPTIONAL, - loggedMeasAvailable ENUMERATED { true } OPTIONAL -} - -LoggedMeasReport-vb50ext ::= SEQUENCE { - loggedMeasInfoList LoggedMeasInfoList-vb50ext OPTIONAL -} - -LoggedMeasServingCellMeas-FDD ::= SEQUENCE { - cellIdentity CellIdentity, - cpich-RSCP CPICH-RSCP, - cpich-Ec-N0 CPICH-Ec-N0 -} - -LoggedMeasServingCellMeas-FDD-vb50ext ::= SEQUENCE { - plmnIdentity PLMN-Identity OPTIONAL -} - -LoggedMeasServingCellMeas-TDD128 ::= SEQUENCE { - cellIdentity CellIdentity, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP -} - -LoggedMeasServingCellMeas-TDD128-vb50ext ::= SEQUENCE { - plmnIdentity PLMN-Identity OPTIONAL -} - -LoggedUTRACellInfo ::= SEQUENCE { - plmn-Identity PLMN-Identity, - cellIdentity CellIdentity, - uarfcn UARFCN, - cellParametersID CellParametersID OPTIONAL, - primaryScramblingCode PrimaryScramblingCode OPTIONAL -} - -LoggingAbsoluteThreshold ::= CHOICE { - rscpforANR RSCPforANR, - ec-N0forANR Ec-N0forANR -} - --- it applies to RSCP by step of 2 and Ec/N0 by step of 1 --- Actual value LoggingRelativeThreshold = IE value * 2 (RSCP) --- Actual value LoggingRelativeThreshold = IE value (Ec/N0) -LoggingRelativeThreshold ::= INTEGER (-4..16) - -KeplerianParameters ::= SEQUENCE { - toe-nav BIT STRING (SIZE (14)), - ganss-omega-nav BIT STRING (SIZE (32)), - delta-n-nav BIT STRING (SIZE (16)), - m-zero-nav BIT STRING (SIZE (32)), - omegadot-nav BIT STRING (SIZE (24)), - ganss-e-nav BIT STRING (SIZE (32)), - idot-nav BIT STRING (SIZE (14)), - a-sqrt-nav BIT STRING (SIZE (32)), - i-zero-nav BIT STRING (SIZE (32)), - omega-zero-nav BIT STRING (SIZE (32)), - c-rs-nav BIT STRING (SIZE (16)), - c-is-nav BIT STRING (SIZE (16)), - c-us-nav BIT STRING (SIZE (16)), - c-rc-nav BIT STRING (SIZE (16)), - c-ic-nav BIT STRING (SIZE (16)), - c-uc-nav BIT STRING (SIZE (16)) -} - -MaxNumberOfReportingCellsType1 ::= ENUMERATED { - e1, e2, e3, e4, e5, e6} - -MaxNumberOfReportingCellsType2 ::= ENUMERATED { - e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12} - -MaxNumberOfReportingCellsType3 ::= ENUMERATED { - viactCellsPlus1, - viactCellsPlus2, - viactCellsPlus3, - viactCellsPlus4, - viactCellsPlus5, - viactCellsPlus6 } - -MaxReportedCellsOnRACH ::= ENUMERATED { - noReport, - currentCell, - currentAnd-1-BestNeighbour, - currentAnd-2-BestNeighbour, - currentAnd-3-BestNeighbour, - currentAnd-4-BestNeighbour, - currentAnd-5-BestNeighbour, - currentAnd-6-BestNeighbour } - -MaxReportedCellsOnRACHinterFreq ::= INTEGER (1..8) - -MeasuredResults ::= CHOICE { - intraFreqMeasuredResultsList IntraFreqMeasuredResultsList, - interFreqMeasuredResultsList InterFreqMeasuredResultsList, - interRATMeasuredResultsList InterRATMeasuredResultsList, - trafficVolumeMeasuredResultsList TrafficVolumeMeasuredResultsList, - qualityMeasuredResults QualityMeasuredResults, - ue-InternalMeasuredResults UE-InternalMeasuredResults, - ue-positioning-MeasuredResults UE-Positioning-MeasuredResults, - spare NULL -} - -MeasuredResultsOnSecUlFreq ::= SEQUENCE { - intraFreqMeasuredResultsList IntraFrequencyMeasuredResultsListOnSecULFreq -} - -MeasuredResults-v390ext ::= SEQUENCE { - ue-positioning-MeasuredResults-v390ext UE-Positioning-MeasuredResults-v390ext -} - - -MeasuredResults-v590ext ::= CHOICE { - intraFrequencyMeasuredResultsList IntraFrequencyMeasuredResultsList-v590ext, - interFrequencyMeasuredResultsList InterFrequencyMeasuredResultsList-v590ext -} - -MeasuredResults-v770ext ::= CHOICE { - ueInternalMeasuredResults UE-InternalMeasuredResults-v770ext, - ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-v770ext -} - -MeasuredResults-v860ext ::= CHOICE { - ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-v860ext -} - -MeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF - MeasuredResults-v920ext - -MeasuredResultsListOnSecUlFreq ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF - MeasuredResultsOnSecUlFreq - -MeasuredResults-v920ext ::= CHOICE { - intraFreqMeasuredResultsList IntraFreqMeasuredResultsList-v920ext, - interFreqMeasuredResultsList InterFreqMeasuredResultsList-v920ext -} - -MeasuredResults-LCR-r4 ::= CHOICE { - intraFreqMeasuredResultsList IntraFreqMeasuredResultsList, - interFreqMeasuredResultsList InterFreqMeasuredResultsList, - interRATMeasuredResultsList InterRATMeasuredResultsList, - trafficVolumeMeasuredResultsList TrafficVolumeMeasuredResultsList, - qualityMeasuredResults QualityMeasuredResults, - ue-InternalMeasuredResults UE-InternalMeasuredResults-LCR-r4, - ue-positioniing-MeasuredResults UE-Positioning-MeasuredResults, - spare NULL -} - -MeasuredResultsList ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF - MeasuredResults - -MeasuredResultsList-LCR-r4-ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF - MeasuredResults-LCR-r4 - -MeasuredResultsList-v770xet ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF SEQUENCE { - -- The 'measuredResults' element shall be present, if 'v770' extended measurement results - -- associated with the corresponding element in the IE 'MeasuredResultList' shall be - -- provided, otherwise it is not needed - measuredResults MeasuredResults-v770ext OPTIONAL -} - -MeasuredResultsList-v860ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF SEQUENCE { - -- The 'measuredResults' element shall be present, if 'v860' extended measurement results - -- associated with the corresponding element in the IE 'MeasuredResultList' shall be - -- provided, otherwise it is not needed - measuredResults MeasuredResults-v860ext OPTIONAL -} - -MeasuredResultsOnRACH ::= SEQUENCE { - currentCell SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - measurementQuantity CHOICE { - cpich-Ec-N0 CPICH-Ec-N0, - cpich-RSCP CPICH-RSCP, - pathloss Pathloss, - spare NULL - } - }, - tdd SEQUENCE { - -- For 3.84 Mcps, 7.68 Mcps and 1.28 Mcps TDD - timeslotISCP TimeslotISCP-List OPTIONAL, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL - } - } - }, - monitoredCells MonitoredCellRACH-List OPTIONAL -} - -MeasuredResultsOnRACH-v7g0ext ::= SEQUENCE { - currentCell-DeltaRSCP DeltaRSCPPerCell OPTIONAL, - monitoredCellRACH-List-v7g0ext MonitoredCellRACH-List-v7g0ext OPTIONAL -} - ---The order of the list corresponds to the order of the cells in MonitoredCellRACH-List -MonitoredCellRACH-List-v7g0ext ::= SEQUENCE (SIZE (1..8)) OF - DeltaRSCPPerCell - ---TDD choice is removed, compared to tabular, in order to optimise FDD format -MeasuredResultsOnRACHFDD-r11 ::= SEQUENCE { - currentCell SEQUENCE { - measurementQuantity CHOICE { - cpich-Ec-N0 CPICH-Ec-N0, - cpich-RSCP CPICH-RSCP, - pathloss Pathloss, - spare NULL - } - }, - measuredResultsUsedFreq MonitoredCellRACH-ListFDD-r11 OPTIONAL, - measuredResultsNonUsedFreq MeasuredResultsOnRACHinterFreq OPTIONAL, - measuredResultsEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL -} - -MeasuredResultsOnRACHinterFreq ::= SEQUENCE { - interFreqCellIndication-SIB11 INTEGER (0..1), - interFreqCellIndication-SIB12 INTEGER (0..1), - interFreqRACHRepCellsList InterFreqRACHRepCellsList -} -MeasuredResultsOnRACH-EUTRAFreq ::= SEQUENCE { - eutraFrequencyIndication-SIB19 INTEGER (0..1), - eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH)) -} - -MeasurementCommand ::= CHOICE { - setup MeasurementType, - modify SEQUENCE { - measurementType MeasurementType OPTIONAL - }, - release NULL -} - -MeasurementCommand-r4 ::= CHOICE { - setup MeasurementType-r4, - modify SEQUENCE { - measurementType MeasurementType-r4 OPTIONAL - }, - release NULL -} - -MeasurementCommand-r6 ::= CHOICE { - setup MeasurementType-r6, - modify SEQUENCE { - measurementType MeasurementType-r6 OPTIONAL - }, - release NULL -} - -MeasurementCommand-r7 ::= CHOICE { - setup MeasurementType-r7, - modify SEQUENCE { - measurementType MeasurementType-r7 OPTIONAL - }, - release NULL -} - -MeasurementCommand-r8 ::= CHOICE { - setup MeasurementType-r8, - modify SEQUENCE { - measurementType MeasurementType-r8 OPTIONAL - }, - release NULL -} - -MeasurementCommand-r9 ::= CHOICE { - setup MeasurementType-r9, - modify SEQUENCE { - measurementType MeasurementType-r9 OPTIONAL - }, - release NULL -} - -MeasurementCommand-r10 ::= CHOICE { - setup MeasurementType-r10, - modify SEQUENCE { - measurementType MeasurementType-r10 OPTIONAL - }, - release NULL -} - -MeasurementCommand-r11 ::= CHOICE { - setup MeasurementType-r11, - modify SEQUENCE { - measurementType MeasurementType-r11 OPTIONAL - }, - release NULL -} - -MeasurementControlSysInfo ::= SEQUENCE { - -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. - use-of-HCS CHOICE { - hcs-not-used SEQUENCE { - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-RSCP OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-RSCP OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-ECN0 OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-ECN0 OPTIONAL - } - }, - interRATMeasurementSysInfo InterRATMeasurementSysInfo-B OPTIONAL - }, - hcs-used SEQUENCE { - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-RSCP OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-RSCP OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-ECN0 OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-ECN0 OPTIONAL - } - }, - interRATMeasurementSysInfo InterRATMeasurementSysInfo OPTIONAL - } - }, - trafficVolumeMeasSysInfo TrafficVolumeMeasSysInfo OPTIONAL, - -- dummy is not used in this version of specification and it shall be ignored by the UE. - dummy UE-InternalMeasurementSysInfo OPTIONAL -} - -MeasurementControlSysInfoExtension ::= SEQUENCE { - -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. - use-of-HCS CHOICE { - hcs-not-used SEQUENCE { - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-RSCP OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-RSCP OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-ECN0 OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-ECN0 OPTIONAL - } - }, - newInterRATCellList NewInterRATCellList OPTIONAL - }, - hcs-used SEQUENCE { - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0 OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0 OPTIONAL - } - }, - newInterRATCellList NewInterRATCellList OPTIONAL - } - } -} - -MeasurementControlSysInfoExtensionAddon-r5 ::= SEQUENCE { - --The order of the list corresponds to the order of cell in newIntraFrequencyCellInfoList - newIntraFrequencyCellInfoListAddon-r5 SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - --The order of the list corresponds to the order of cell in newInterFrequencyCellInfoList - newInterFrequencyCellInfoListAddon-r5 SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - --The order of the list corresponds to the order of cell in newInterRATCellInfoList - newInterRATCellInfoListAddon-r5 SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL -} - -MeasurementControlSysInfoExtension-LCR-r4 ::= SEQUENCE { - -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. - use-of-HCS CHOICE { - hcs-not-used SEQUENCE { - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-RSCP-LCR-r4 OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-RSCP-LCR-r4 OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-ECN0-LCR-r4 OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-ECN0-LCR-r4 OPTIONAL - } - }, - newInterRATCellList NewInterRATCellList OPTIONAL - }, - hcs-used SEQUENCE { - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4 OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP-LCR-r4 OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - newIntraFreqCellList NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4 OPTIONAL, - newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0-LCR-r4 OPTIONAL - } - }, - newInterRATCellList NewInterRATCellList OPTIONAL - } - } -} - -MeasurementControlSysInfo-LCR-r4-ext ::= SEQUENCE { - -- CHOICE use-of-HCS shall have the same value as the use-of-HCS - -- in MeasurementControlSysInfo - -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. - use-of-HCS CHOICE { - hcs-not-used SEQUENCE { - -- CHOICE cellSelectQualityMeasure shall have the same value as the - -- cellSelectQualityMeasure in MeasurementControlSysInfo - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-RSCP-LCR-r4 OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-RSCP-LCR-r4 OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-ECN0-LCR-r4 OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-ECN0-LCR-r4 OPTIONAL - } - } - }, - hcs-used SEQUENCE { - -- CHOICE cellSelectQualityMeasure shall have the same value as the - -- cellSelectQualityMeasure in MeasurementControlSysInfo - cellSelectQualityMeasure CHOICE { - cpich-RSCP SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-RSCP-LCR-r4 OPTIONAL - }, - cpich-Ec-N0 SEQUENCE { - intraFreqMeasurementSysInfo IntraFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 OPTIONAL, - interFreqMeasurementSysInfo InterFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 OPTIONAL - } - } - } - } -} - -MeasurementIdentity ::= INTEGER (1..16) - -MeasurementIdentityExt ::= INTEGER (17..32) - -MeasurementIdentity-r9 ::= INTEGER (1..32) - -MeasurementOccasionPatternParameter ::= SEQUENCE { - measurement-Occasion-Coeff INTEGER (1..9), - measurement-Occasion-Offset INTEGER (0..511), - measurement-Occasion-Length INTEGER (1..512), - timeslotBitmap BIT STRING (SIZE (7)) OPTIONAL -} - -MeasurementQuantityGSM ::= ENUMERATED { - gsm-CarrierRSSI, - dummy } - -MeasurementQuantityEUTRA ::= ENUMERATED { - rsrp, - rsrq } - -MeasurementReportingMode ::= SEQUENCE { - measurementReportTransferMode TransferMode, - periodicalOrEventTrigger PeriodicalOrEventTrigger -} - -MeasurementType ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement, - interFrequencyMeasurement InterFrequencyMeasurement, - interRATMeasurement InterRATMeasurement, - ue-positioning-Measurement UE-Positioning-Measurement, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement -} - -MeasurementType-r4 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r4, - interFrequencyMeasurement InterFrequencyMeasurement-r4, - interRATMeasurement InterRATMeasurement-r4, - up-Measurement UE-Positioning-Measurement-r4, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4 -} - -MeasurementType-r6 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r6, - interFrequencyMeasurement InterFrequencyMeasurement-r6, - interRATMeasurement InterRATMeasurement-r6, - up-Measurement UE-Positioning-Measurement-r4, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4 -} - -MeasurementType-r7 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r7, - interFrequencyMeasurement InterFrequencyMeasurement-r7, - interRATMeasurement InterRATMeasurement-r6, - up-Measurement UE-Positioning-Measurement-r7, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4 -} - -MeasurementType-r8 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r7, - interFrequencyMeasurement InterFrequencyMeasurement-r8, - interRATMeasurement InterRATMeasurement-r8, - up-Measurement UE-Positioning-Measurement-r8, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4 -} - -MeasurementType-r9 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r9, - interFrequencyMeasurement InterFrequencyMeasurement-r9, - interRATMeasurement InterRATMeasurement-r9, - up-Measurement UE-Positioning-Measurement-r9, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4, - csgProximityDetection CSGProximityDetection -} - -MeasurementType-r10 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r10, - interFrequencyMeasurement InterFrequencyMeasurement-r10, - interRATMeasurement InterRATMeasurement-r9, - up-Measurement UE-Positioning-Measurement-r10, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4, - csgProximityDetection CSGProximityDetection -} - -MeasurementType-r11 ::= CHOICE { - intraFrequencyMeasurement IntraFrequencyMeasurement-r11, - interFrequencyMeasurement InterFrequencyMeasurement-r11, - interRATMeasurement InterRATMeasurement-r11, - up-Measurement UE-Positioning-Measurement-r10, - trafficVolumeMeasurement TrafficVolumeMeasurement, - qualityMeasurement QualityMeasurement, - ue-InternalMeasurement UE-InternalMeasurement-r4, - csgProximityDetection CSGProximityDetection, - eutraMeasurementForCELLFACH EUTRA-MeasurementForCELLFACH -} - -MeasurementValidity ::= SEQUENCE { - ue-State ENUMERATED { - cell-DCH, all-But-Cell-DCH, all-States } -} - -MonitoredCellRACH-List ::= SEQUENCE (SIZE (1..8)) OF - MonitoredCellRACH-Result - -MonitoredCellRACH-Result ::= SEQUENCE { - sfn-SFN-ObsTimeDifference SFN-SFN-ObsTimeDifference OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - measurementQuantity CHOICE { - cpich-Ec-N0 CPICH-Ec-N0, - cpich-RSCP CPICH-RSCP, - pathloss Pathloss, - spare NULL - } OPTIONAL - }, - tdd SEQUENCE { - cellParametersID CellParametersID, - primaryCCPCH-RSCP PrimaryCCPCH-RSCP - } - } -} - -MonitoredCellRACH-ListFDD-r11 ::= SEQUENCE (SIZE (1..8)) OF - MonitoredCellRACH-ResultFDD-r11 - ---TDD choice is removed, compared to tabular, in order to optimise FDD format -MonitoredCellRACH-ResultFDD-r11 ::= SEQUENCE { - sfn-SFN-ObsTimeDifference SFN-SFN-ObsTimeDifference OPTIONAL, - primaryCPICH-Info PrimaryCPICH-Info, - measurementQuantity CHOICE { - cpich-Ec-N0 CPICH-Ec-N0, - cpich-RSCP CPICH-RSCP, - pathloss Pathloss, - spare NULL - } -} - -MultipathIndicator ::= ENUMERATED { - nm, - low, - medium, - high } - -MultipleEUTRAFrequencyBandIndicatorList ::= SEQUENCE (SIZE (1.. maxMultipleFrequencyBandsEUTRA)) OF - RadioFrequencyBandEUTRA - -MultipleEUTRAFrequencyBandIndicatorExtensionList ::= SEQUENCE (SIZE (1.. maxMultipleFrequencyBandsEUTRA)) - OF RadioFrequencyBandEUTRAExt - -MultipleEUTRAFrequencyBandInfo ::= SEQUENCE { - multipleEUTRAFrequencyBandIndicatorlist MultipleEUTRAFrequencyBandIndicatorList OPTIONAL -} - -MultipleEUTRAFrequencyBandExtensionInfo ::= SEQUENCE { - multipleEUTRAFrequencyBandIndicatorlist MultipleEUTRAFrequencyBandIndicatorExtensionList OPTIONAL -} - -MultipleEUTRAFrequencyInfoList ::= SEQUENCE (SIZE (1.. maxNumEUTRAFreqs)) OF - MultipleEUTRAFrequencyBandInfo - -MultipleEUTRAFrequencyInfoExtensionList ::= SEQUENCE (SIZE (1.. maxNumEUTRAFreqs)) OF - MultipleEUTRAFrequencyBandExtensionInfo - -MultipleFrequencyBandIndicatorListFDD::= SEQUENCE (SIZE (1..maxMultipleFrequencyBandsFDD)) OF - FrequencyBandsIndicatorFDD - -MultipleFrequencyBandInfo ::= SEQUENCE { - multipleFrequencyBandIndicatorListFDD MultipleFrequencyBandIndicatorListFDD OPTIONAL -} - -MultipleFrequencyInfoListFDD ::= SEQUENCE (SIZE (1.. maxNumFDDFreqs)) OF - MultipleFrequencyBandInfo - -N-CR-T-CRMaxHyst ::= SEQUENCE { - n-CR INTEGER (1..16) DEFAULT 8, - t-CRMaxHyst T-CRMaxHyst -} - -NAVclockModel ::= SEQUENCE { - navToc BIT STRING (SIZE (16)), - navaf2 BIT STRING (SIZE (8)), - navaf1 BIT STRING (SIZE (16)), - navaf0 BIT STRING (SIZE (22)), - navTgd BIT STRING (SIZE (8)) -} - -NavigationModelSatInfo ::= SEQUENCE { - satID SatID, - satelliteStatus SatelliteStatus, - ephemerisParameter EphemerisParameter OPTIONAL -} - -NavigationModelSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF - NavigationModelSatInfo - -NavModel-CNAVKeplerianSet ::= SEQUENCE { - cnavTop BIT STRING (SIZE (11)), - cnavURAindex BIT STRING (SIZE (5)), - cnavDeltaA BIT STRING (SIZE (26)), - cnavAdot BIT STRING (SIZE (25)), - cnavDeltaNo BIT STRING (SIZE (17)), - cnavDeltaNoDot BIT STRING (SIZE (23)), - cnavMo BIT STRING (SIZE (33)), - cnavE BIT STRING (SIZE (33)), - cnavOmega BIT STRING (SIZE (33)), - cnavOMEGA0 BIT STRING (SIZE (33)), - cnavDeltaOmegaDot BIT STRING (SIZE (17)), - cnavIo BIT STRING (SIZE (33)), - cnavIoDot BIT STRING (SIZE (15)), - cnavCis BIT STRING (SIZE (16)), - cnavCic BIT STRING (SIZE (16)), - cnavCrs BIT STRING (SIZE (24)), - cnavCrc BIT STRING (SIZE (24)), - cnavCus BIT STRING (SIZE (21)), - cnavCuc BIT STRING (SIZE (21)) -} - -NavModel-GLONASSecef ::= SEQUENCE { - gloEn BIT STRING (SIZE (5)), - gloP1 BIT STRING (SIZE (2)), - gloP2 BIT STRING (SIZE (1)), - gloM BIT STRING (SIZE (2)) OPTIONAL, - gloX BIT STRING (SIZE (27)), - gloXdot BIT STRING (SIZE (24)), - gloXdotdot BIT STRING (SIZE (5)), - gloY BIT STRING (SIZE (27)), - gloYdot BIT STRING (SIZE (24)), - gloYdotdot BIT STRING (SIZE (5)), - gloZ BIT STRING (SIZE (27)), - gloZdot BIT STRING (SIZE (24)), - gloZdotdot BIT STRING (SIZE (5)) -} - -NavModel-NAVKeplerianSet ::= SEQUENCE { - navURA BIT STRING (SIZE (4)), - navFitFlag BIT STRING (SIZE (1)), - navToe BIT STRING (SIZE (16)), - navOmega BIT STRING (SIZE (32)), - navDeltaN BIT STRING (SIZE (16)), - navM0 BIT STRING (SIZE (32)), - navOmegaADot BIT STRING (SIZE (24)), - navE BIT STRING (SIZE (32)), - navIDot BIT STRING (SIZE (14)), - navAPowerHalf BIT STRING (SIZE (32)), - navI0 BIT STRING (SIZE (32)), - navOmegaA0 BIT STRING (SIZE (32)), - navCrs BIT STRING (SIZE (16)), - navCis BIT STRING (SIZE (16)), - navCus BIT STRING (SIZE (16)), - navCrc BIT STRING (SIZE (16)), - navCic BIT STRING (SIZE (16)), - navCuc BIT STRING (SIZE (16)) -} - -NavModel-SBASecef ::= SEQUENCE { - sbasTo BIT STRING (SIZE (13)) OPTIONAL, - sbasAccuracy BIT STRING (SIZE (4)), - sbasXg BIT STRING (SIZE (30)), - sbasYg BIT STRING (SIZE (30)), - sbasZg BIT STRING (SIZE (25)), - sbasXgDot BIT STRING (SIZE (17)), - sbasYgDot BIT STRING (SIZE (17)), - sbasZgDot BIT STRING (SIZE (18)), - sbasXgDotDot BIT STRING (SIZE (10)), - sbagYgDotDot BIT STRING (SIZE (10)), - sbasZgDotDot BIT STRING (SIZE (10)) -} - -EphemerisParameter ::= SEQUENCE { - codeOnL2 BIT STRING (SIZE (2)), - uraIndex BIT STRING (SIZE (4)), - satHealth BIT STRING (SIZE (6)), - iodc BIT STRING (SIZE (10)), - l2Pflag BIT STRING (SIZE (1)), - sf1Revd SubFrame1Reserved, - t-GD BIT STRING (SIZE (8)), - t-oc BIT STRING (SIZE (16)), - af2 BIT STRING (SIZE (8)), - af1 BIT STRING (SIZE (16)), - af0 BIT STRING (SIZE (22)), - c-rs BIT STRING (SIZE (16)), - delta-n BIT STRING (SIZE (16)), - m0 BIT STRING (SIZE (32)), - c-uc BIT STRING (SIZE (16)), - e BIT STRING (SIZE (32)), - c-us BIT STRING (SIZE (16)), - a-Sqrt BIT STRING (SIZE (32)), - t-oe BIT STRING (SIZE (16)), - fitInterval BIT STRING (SIZE (1)), - aodo BIT STRING (SIZE (5)), - c-ic BIT STRING (SIZE (16)), - omega0 BIT STRING (SIZE (32)), - c-is BIT STRING (SIZE (16)), - i0 BIT STRING (SIZE (32)), - c-rc BIT STRING (SIZE (16)), - omega BIT STRING (SIZE (32)), - omegaDot BIT STRING (SIZE (24)), - iDot BIT STRING (SIZE (14)) -} -NC-Mode ::= BIT STRING (SIZE (3)) - -Neighbour ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - neighbourIdentity PrimaryCPICH-Info OPTIONAL, - uE-RX-TX-TimeDifferenceType2Info UE-RX-TX-TimeDifferenceType2Info OPTIONAL - }, - tdd SEQUENCE { - neighbourAndChannelIdentity CellAndChannelIdentity OPTIONAL - } - }, - neighbourQuality NeighbourQuality, - sfn-SFN-ObsTimeDifference2 SFN-SFN-ObsTimeDifference2} - -Neighbour-v390ext ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - frequencyInfo FrequencyInfo - }, - tdd NULL - } -} - -NeighbourList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - Neighbour - -Neighbour-TDD-r7 ::= SEQUENCE { - uarfcn UARFCN OPTIONAL -} - --- The order of the cells in IE NeighbourList-TDD-r7 shall be the --- same as the order in IE NeighbourList -NeighbourList-TDD-r7 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF Neighbour-TDD-r7 - --- The order of the cells in IE NeighbourList-v390ext shall be the --- same as the order in IE NeighbourList -NeighbourList-v390ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - Neighbour-v390ext - -NeighbourQuality ::= SEQUENCE { - ue-Positioning-OTDOA-Quality UE-Positioning-OTDOA-Quality -} - -NewInterFreqCell ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfo -} - -NewInterFreqCell-r4 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfo-r4 -} - -NewInterFreqCell-v7b0ext ::= SEQUENCE { - intraSecondaryFreqIndicator BOOLEAN -} - -NewInterFreqCell-LCR-v8a0ext ::= SEQUENCE { - cellInfo-LCR-r8 CellInfo-LCR-r8-ext OPTIONAL -} - -NewInterFreqCell-r8 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfo-r4, - modeSpecificInfo CHOICE { - noInfo NULL, - tdd128 SEQUENCE { - intraSecondaryFreqIndicator BOOLEAN - } - } -} - -NewInterFreqCell-r9 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfo-r9, - modeSpecificInfo CHOICE { - noInfo NULL, - tdd128 SEQUENCE { - intraSecondaryFreqIndicator BOOLEAN - } - } -} - -NewInterFreqCell-r10 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfo-r9, - modeSpecificInfo CHOICE { - noInfo NULL, - tdd128 SEQUENCE { - intraSecondaryFreqIndicator BOOLEAN, - sNPLMonitorSetIndicator-TDD128 BIT STRING (SIZE (5)) OPTIONAL - } - } -} - -NewInterFreqCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell - -NewInterFreqCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell-r4 - --- The order of the list corresponds to the order of cells in newInterFreqCellList -NewInterFreqCellList-v7b0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell-v7b0ext - --- The order of the list corresponds to the order of cells in newInterFreqCellList -NewInterFreqCellList-LCR-v8a0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell-LCR-v8a0ext - -NewInterFreqCellList-r8 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell-r8 - -NewInterFreqCellList-r9 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell-r9 - -NewInterFreqCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCell-r10 - -NewInterFreqCellSI-RSCP ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-RSCP -} - -NewInterFreqCellSI-ECN0 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-ECN0 -} - -NewInterFreqCellSI-HCS-RSCP ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-HCS-RSCP -} - -NewInterFreqCellSI-HCS-ECN0 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-HCS-ECN0 -} - -NewInterFreqCellSI-RSCP-LCR-r4 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-RSCP-LCR-r4 -} - -NewInterFreqCellSI-ECN0-LCR-r4 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-ECN0-LCR-r4 -} - -NewInterFreqCellSI-HCS-RSCP-LCR-r4 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-HCS-RSCP-LCR-r4 -} - -NewInterFreqCellSI-HCS-ECN0-LCR-r4 ::= SEQUENCE { - interFreqCellID InterFreqCellID OPTIONAL, - frequencyInfo FrequencyInfo OPTIONAL, - cellInfo CellInfoSI-HCS-ECN0-LCR-r4 -} - -NewInterFreqCellSI-List-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-ECN0 - -NewInterFreqCellSI-List-HCS-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-HCS-RSCP - -NewInterFreqCellSI-List-HCS-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-HCS-ECN0 - -NewInterFreqCellSI-List-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-RSCP - -NewInterFreqCellSI-List-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-ECN0-LCR-r4 - -NewInterFreqCellSI-List-HCS-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-HCS-RSCP-LCR-r4 - -NewInterFreqCellSI-List-HCS-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-HCS-ECN0-LCR-r4 - -NewInterFreqCellSI-List-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterFreqCellSI-RSCP-LCR-r4 - -NewInterRATCell ::= SEQUENCE { - interRATCellID InterRATCellID OPTIONAL, - technologySpecificInfo CHOICE { - gsm SEQUENCE { - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12 OPTIONAL, - interRATCellIndividualOffset InterRATCellIndividualOffset, - bsic BSIC, - frequency-band Frequency-Band, - bcch-ARFCN BCCH-ARFCN, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy NULL OPTIONAL - }, - is-2000 SEQUENCE { - is-2000SpecificMeasInfo IS-2000SpecificMeasInfo - }, - -- ASN.1 inconsistency: NewInterRATCellList should be optional within - -- InterRATCellInfoList. The UE shall consider IE NewInterRATCell with - -- technologySpecificInfo set to "absent" as valid and handle the - -- message as if the IE NewInterRATCell was absent - absent NULL, - spare1 NULL - } -} - -NewInterRATCell-B ::= SEQUENCE { - interRATCellID InterRATCellID OPTIONAL, - technologySpecificInfo CHOICE { - gsm SEQUENCE { - cellSelectionReselectionInfo CellSelectReselectInfoSIB-11-12 OPTIONAL, - interRATCellIndividualOffset InterRATCellIndividualOffset, - bsic BSIC, - frequency-band Frequency-Band, - bcch-ARFCN BCCH-ARFCN, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy NULL OPTIONAL - }, - is-2000 SEQUENCE { - is-2000SpecificMeasInfo IS-2000SpecificMeasInfo - }, - -- ASN.1 inconsistency: NewInterRATCellList-B should be optional within - -- InterRATCellInfoList-B. The UE shall consider IE NewInterRATCell-B with - -- technologySpecificInfo set to "absent" as valid and handle the - -- message as if the IE NewInterRATCell-B was absent - absent NULL, - spare1 NULL - } -} - -NewInterRATCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterRATCell - -NewInterRATCellList-B ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewInterRATCell-B - -NewIntraFreqCell ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfo -} - -NewIntraFreqCell-r4 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfo-r4 -} -NewIntraFreqCell-r9 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfo-r9 -} - -NewIntraFreqCell-r10 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfo-r9, - modeSpecificInfo CHOICE { - noInfo NULL, - tdd128 SEQUENCE { - sNPLMonitorSetIndicator-TDD128 BIT STRING (SIZE (5)) OPTIONAL - } - } -} - -NewIntraFreqCellOnSecULFreq ::= SEQUENCE { - intraFreqCellIDOnSecULFreq IntraFreqCellIDOnSecULFreq OPTIONAL, - cellInfo CellInfo-r4 -} - -NewIntraFreqCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCell - -NewIntraFreqCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCell-r4 - -NewIntraFreqCellList-r9 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCell-r9 - -NewIntraFreqCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCell-r10 - -NewIntraFreqCell-LCR-v8a0ext ::= SEQUENCE { - cellInfo-LCR-r8 CellInfo-LCR-r8-ext OPTIONAL -} - --- The order of the list corresponds to the order of cells in newIntraFreqCellList -NewIntraFreqCellList-LCR-v8a0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCell-LCR-v8a0ext - -NewIntraFreqCellListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF - NewIntraFreqCellOnSecULFreq - -NewIntraFreqCellSI-RSCP ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-RSCP -} - -NewIntraFreqCellSI-ECN0 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-ECN0 -} -NewIntraFreqCellSI-HCS-RSCP ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-HCS-RSCP -} - -NewIntraFreqCellSI-HCS-ECN0 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-HCS-ECN0 -} - -NewIntraFreqCellSI-RSCP-LCR-r4 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-RSCP-LCR-r4 -} - -NewIntraFreqCellSI-ECN0-LCR-r4 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-ECN0-LCR-r4 -} -NewIntraFreqCellSI-HCS-RSCP-LCR-r4 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-HCS-RSCP-LCR-r4 -} - -NewIntraFreqCellSI-HCS-ECN0-LCR-r4 ::= SEQUENCE { - intraFreqCellID IntraFreqCellID OPTIONAL, - cellInfo CellInfoSI-HCS-ECN0-LCR-r4 -} - -NewIntraFreqCellSI-List-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-RSCP - -NewIntraFreqCellSI-List-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-ECN0 - -NewIntraFreqCellSI-List-HCS-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-HCS-RSCP - -NewIntraFreqCellSI-List-HCS-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-HCS-ECN0 - -NewIntraFreqCellSI-List-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-RSCP-LCR-r4 - -NewIntraFreqCellSI-List-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-ECN0-LCR-r4 - -NewIntraFreqCellSI-List-HCS-RSCP-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-HCS-RSCP-LCR-r4 - -NewIntraFreqCellSI-List-HCS-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - NewIntraFreqCellSI-HCS-ECN0-LCR-r4 - - -- IE "nonUsedFreqThreshold" is not needed in case of event 2a - -- In case of event 2a UTRAN should include value 0 within IE "nonUsedFreqThreshold" - -- In case of event 2a, the UE shall be ignore IE "nonUsedFreqThreshold" - -- In later versions of the message including this IE, a special version of - -- IE "NonUsedFreqParameterList" may be defined for event 2a, namely a - -- version not including IE "nonUsedFreqThreshold" -NonUsedFreqParameter ::= SEQUENCE { - nonUsedFreqThreshold Threshold, - nonUsedFreqW W -} - -NonUsedFreqParameter-r6 ::= SEQUENCE { - nonUsedFreqThreshold Threshold-r6, - nonUsedFreqW W -} - -NonUsedFreqParameter-r10 ::= SEQUENCE { - nonUsedFreqThreshold Threshold-r6, - nonUsedFreqW W, - nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL -} - -NonUsedFreqParameter-r11 ::= SEQUENCE { - nonUsedFreqThreshold Threshold-r6, - nonUsedFreqW W, - nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL, - excludedCellInfoList CellInfoListToBeExcluded OPTIONAL -} - -NonUsedFreq2aParameter-r10 ::= SEQUENCE { - nonUsedFreqW W, - nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL -} - -NonUsedFreq2aParameter-r11 ::= SEQUENCE { - nonUsedFreqW W, - nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL, - excludedCellInfoList CellInfoListToBeExcluded OPTIONAL -} - -NonUsedFreqParameterList ::= SEQUENCE (SIZE (1..maxFreq)) OF - NonUsedFreqParameter - -NonUsedFreqParameterList-r6 ::= SEQUENCE (SIZE (1..maxFreq)) OF - NonUsedFreqParameter-r6 - -NonUsedFreqParameterList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF - NonUsedFreqParameter-r10 - -NonUsedFreqParameterList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF - NonUsedFreqParameter-r11 - -NonUsedFreq2aParameterList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF - NonUsedFreq2aParameter-r10 - -NonUsedFreq2aParameterList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF - NonUsedFreq2aParameter-r11 - -NonUsedFreqWList-r6 ::= SEQUENCE (SIZE (1..maxFreq)) OF W - -ObservedTimeDifferenceToGSM ::= INTEGER (0..4095) - -OTDOA-SearchWindowSize ::= ENUMERATED { - c20, c40, c80, c160, c320, - c640, c1280, moreThan1280 } - --- SPARE: Pathloss, Max = 158 --- Values above Max are spare -Pathloss ::= INTEGER (46..173) - -PenaltyTime-RSCP ::= CHOICE { - notUsed NULL, - pt10 TemporaryOffset1, - pt20 TemporaryOffset1, - pt30 TemporaryOffset1, - pt40 TemporaryOffset1, - pt50 TemporaryOffset1, - pt60 TemporaryOffset1 -} - -PenaltyTime-ECN0 ::= CHOICE { - notUsed NULL, - pt10 TemporaryOffsetList, - pt20 TemporaryOffsetList, - pt30 TemporaryOffsetList, - pt40 TemporaryOffsetList, - pt50 TemporaryOffsetList, - pt60 TemporaryOffsetList -} - -PendingTimeAfterTrigger ::= ENUMERATED { - ptat0-25, ptat0-5, ptat1, - ptat2, ptat4, ptat8, ptat16 } - -PeriodicalOrEventTrigger ::= ENUMERATED { - periodical, - eventTrigger } - -PeriodicalReportingCriteria ::= SEQUENCE { - reportingAmount ReportingAmount DEFAULT ra-Infinity, - reportingInterval ReportingIntervalLong -} - -PeriodicReportingInfo-1b ::= SEQUENCE { - reportingAmount ReportingAmount, - reportingInterval ReportingInterval -} - -PeriodicalWithReportingCellStatus ::= SEQUENCE { - periodicalReportingCriteria PeriodicalReportingCriteria, - reportingCellStatus ReportingCellStatus OPTIONAL -} - -PeriodicalWithReportingCellStatus-r10 ::= SEQUENCE { - periodicalReportingCriteria PeriodicalReportingCriteria, - reportingCellStatus ReportingCellStatus-r10 OPTIONAL -} - -PeriodicalWithReportingCellStatusOnSecULFreq ::= SEQUENCE { - frequencyInfo FrequencyInfo, - periodicalWithReportingCellStatus PeriodicalWithReportingCellStatus-r10 -} - -PLMNIdentitiesOfNeighbourCells ::= SEQUENCE { - plmnsOfIntraFreqCellsList PLMNsOfIntraFreqCellsList OPTIONAL, - plmnsOfInterFreqCellsList PLMNsOfInterFreqCellsList OPTIONAL, - plmnsOfInterRATCellsList PLMNsOfInterRATCellsList OPTIONAL -} - -PLMNIdentitiesOfNeighbourCells-v860ext ::= SEQUENCE { - multipleplmnsOfIntraFreqCellsList MultiplePLMNsOfIntraFreqCellsList OPTIONAL, - multipleplmnsOfInterFreqCellsList MultiplePLMNsOfInterFreqCellsList OPTIONAL -} - -PlmnList ::= SEQUENCE (SIZE (1..maxNumMDTPLMN)) OF PLMN-Identity - -PLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - SEQUENCE { - plmn-Identity PLMN-Identity OPTIONAL -} - -MultiplePLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - SEQUENCE { - multiplePLMN-list SEQUENCE (SIZE (1..6)) OF - PLMN-IdentityWithOptionalMCC-r6 OPTIONAL -} - -PLMNsOfIntraFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - SEQUENCE { - plmn-Identity PLMN-Identity OPTIONAL -} - -MultiplePLMNsOfIntraFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - SEQUENCE { - multiplePLMN-list SEQUENCE (SIZE (1..6)) OF - PLMN-IdentityWithOptionalMCC-r6 OPTIONAL -} - -PLMNsOfInterRATCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - SEQUENCE { - plmn-Identity PLMN-Identity OPTIONAL -} - -PositionEstimate ::= CHOICE { - ellipsoidPoint EllipsoidPoint, - ellipsoidPointUncertCircle EllipsoidPointUncertCircle, - ellipsoidPointUncertEllipse EllipsoidPointUncertEllipse, - ellipsoidPointAltitude EllipsoidPointAltitude, - ellipsoidPointAltitudeEllipse EllipsoidPointAltitudeEllipsoide -} - -PositioningMethod ::= ENUMERATED { - otdoa, - gps, - otdoaOrGPS, cellID } - --- Actual value PRC = IE value * 0.32 -PRC ::= INTEGER (-2047..2047) - --- SPARE: PrimaryCCPCH-RSCP, Max = 91 --- Values above Max are spare -PrimaryCCPCH-RSCP ::= INTEGER (0..127) - -Q-HCS ::= INTEGER (0..99) - -Q-OffsetS-N ::= INTEGER (-50..50) - -Q-QualMin ::= INTEGER (-24..0) - -Q-QualMin-Offset ::= INTEGER (1..16) - --- Actual value Q-RxlevMin = (IE value * 2) + 1 -Q-RxlevMin ::= INTEGER (-58..-13) - --- Actual value Q-RxlevMin-Offset = (IE value * 2) -Q-RxlevMin-Offset ::= INTEGER (1..8) - -QualityEventResults ::= SEQUENCE (SIZE (1..maxTrCH)) OF - TransportChannelIdentity - -QualityMeasuredResults ::= SEQUENCE { - blerMeasurementResultsList BLER-MeasurementResultsList OPTIONAL, - modeSpecificInfo CHOICE { - fdd NULL, - tdd SEQUENCE { - sir-MeasurementResults SIR-MeasurementList OPTIONAL - } - } -} - -QualityMeasurement ::= SEQUENCE { - qualityReportingQuantity QualityReportingQuantity OPTIONAL, - reportCriteria QualityReportCriteria -} - -QualityReportCriteria ::= CHOICE { - qualityReportingCriteria QualityReportingCriteria, - periodicalReportingCriteria PeriodicalReportingCriteria, - noReporting NULL -} - -QualityReportingCriteria ::= SEQUENCE (SIZE (1..maxTrCH)) OF - QualityReportingCriteriaSingle - -QualityReportingCriteriaSingle ::= SEQUENCE { - transportChannelIdentity TransportChannelIdentity, - totalCRC INTEGER (1..512), - badCRC INTEGER (1..512), - pendingAfterTrigger INTEGER (1..512) -} - -QualityReportingQuantity ::= SEQUENCE { - dl-TransChBLER BOOLEAN, - bler-dl-TransChIdList BLER-TransChIdList OPTIONAL, - modeSpecificInfo CHOICE { - fdd NULL, - tdd SEQUENCE { - sir-TFCS-List SIR-TFCS-List OPTIONAL - } - } -} - -RAT-Type ::= ENUMERATED { - gsm, is2000 } - -ReferenceCellPosition ::= CHOICE { - ellipsoidPoint EllipsoidPoint, - ellipsoidPointWithAltitude EllipsoidPointAltitude -} - --- ReferenceLocation, as defined in 23.032 -ReferenceLocation ::= SEQUENCE { - ellipsoidPointAltitudeEllipsoide EllipsoidPointAltitudeEllipsoide -} - -ReferenceLocationGANSS ::= SEQUENCE { - ellipsoidPointAltitudeEllipsoide EllipsoidPointAltitudeEllipsoide -} - -ReferenceTimeDifferenceToCell ::= CHOICE { - -- Actual value accuracy40 = IE value * 40 - accuracy40 INTEGER (0..960), - -- Actual value accuracy256 = IE value * 256 - accuracy256 INTEGER (0..150), - -- Actual value accuracy2560 = IE value * 2560 - accuracy2560 INTEGER (0..15) -} - -RemovedInterFreqCellList ::= CHOICE { - removeAllInterFreqCells NULL, - removeSomeInterFreqCells SEQUENCE (SIZE (1..maxCellMeas)) OF - InterFreqCellID, - removeNoInterFreqCells NULL -} - -RemovedInterRATCellList ::= CHOICE { - removeAllInterRATCells NULL, - removeSomeInterRATCells SEQUENCE (SIZE (1..maxCellMeas)) OF - InterRATCellID, - removeNoInterRATCells NULL -} - -RemovedIntraFreqCellList ::= CHOICE { - removeAllIntraFreqCells NULL, - removeSomeIntraFreqCells SEQUENCE (SIZE (1..maxCellMeas)) OF - IntraFreqCellID, - removeNoIntraFreqCells NULL -} - -RemovedIntraFreqCellListOnSecULFreq ::= CHOICE { - removeAllIntraFreqCells NULL, - removeSomeIntraFreqCells SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF - IntraFreqCellIDOnSecULFreq, - removeNoIntraFreqCells NULL -} - -ReplacementActivationThreshold ::= ENUMERATED { - notApplicable, t1, t2, - t3, t4, t5, t6, t7 } - -ReportDeactivationThreshold ::= ENUMERATED { - notApplicable, t1, t2, - t3, t4, t5, t6, t7 } - -ReportingAmount ::= ENUMERATED { - ra1, ra2, ra4, ra8, ra16, ra32, - ra64, ra-Infinity } - -ReportingCellStatus ::= CHOICE{ - withinActiveSet MaxNumberOfReportingCellsType1, - withinMonitoredSetUsedFreq MaxNumberOfReportingCellsType1, - withinActiveAndOrMonitoredUsedFreq MaxNumberOfReportingCellsType1, - withinDetectedSetUsedFreq MaxNumberOfReportingCellsType1, - withinMonitoredAndOrDetectedUsedFreq - MaxNumberOfReportingCellsType1, - allActiveplusMonitoredSet MaxNumberOfReportingCellsType3, - allActivePlusDetectedSet MaxNumberOfReportingCellsType3, - allActivePlusMonitoredAndOrDetectedSet - MaxNumberOfReportingCellsType3, - withinVirtualActSet MaxNumberOfReportingCellsType1, - withinMonitoredSetNonUsedFreq MaxNumberOfReportingCellsType1, - withinMonitoredAndOrVirtualActiveSetNonUsedFreq - MaxNumberOfReportingCellsType1, - allVirtualActSetplusMonitoredSetNonUsedFreq - MaxNumberOfReportingCellsType3, - withinActSetOrVirtualActSet-InterRATcells - MaxNumberOfReportingCellsType2, - withinActSetAndOrMonitoredUsedFreqOrVirtualActSetAndOrMonitoredNonUsedFreq - MaxNumberOfReportingCellsType2 -} - -ReportingCellStatus-r10 ::= CHOICE{ - withinActiveSet MaxNumberOfReportingCellsType1, - withinMonitoredSetUsedFreq MaxNumberOfReportingCellsType1, - withinActiveAndOrMonitoredUsedFreq MaxNumberOfReportingCellsType1, - withinDetectedSetUsedFreq MaxNumberOfReportingCellsType1, - withinMonitoredAndOrDetectedUsedFreq - MaxNumberOfReportingCellsType1, - allActiveplusMonitoredSet MaxNumberOfReportingCellsType3, - allActivePlusDetectedSet MaxNumberOfReportingCellsType3, - allActivePlusMonitoredAndOrDetectedSet - MaxNumberOfReportingCellsType3, - withinVirtualActSet MaxNumberOfReportingCellsType1, - withinMonitoredSetNonUsedFreq MaxNumberOfReportingCellsType1, - withinMonitoredAndOrVirtualActiveSetNonUsedFreq - MaxNumberOfReportingCellsType1, - allVirtualActSetplusMonitoredSetNonUsedFreq - MaxNumberOfReportingCellsType3, - withinActSetOrVirtualActSet-InterRATcells - MaxNumberOfReportingCellsType2, - withinActSetAndOrMonitoredUsedFreqOrVirtualActSetAndOrMonitoredNonUsedFreq - MaxNumberOfReportingCellsType2, - allVirtualActSetplusMonitoredSetplusDetectedSetNonUsedFreq - MaxNumberOfReportingCellsType3 -} - -ReportingCellStatusOpt ::= SEQUENCE { - reportingCellStatus ReportingCellStatus OPTIONAL -} - -ReportingCellStatusOpt-r10 ::= SEQUENCE { - reportingCellStatus ReportingCellStatus-r10 OPTIONAL -} - -ReportingInfoForCellDCH ::= SEQUENCE { - intraFreqReportingQuantity IntraFreqReportingQuantity, - measurementReportingMode MeasurementReportingMode, - reportCriteria CellDCH-ReportCriteria -} - -ReportingInfoForCellDCH-LCR-r4 ::= SEQUENCE { - intraFreqReportingQuantity IntraFreqReportingQuantity, - measurementReportingMode MeasurementReportingMode, - reportCriteria CellDCH-ReportCriteria-LCR-r4 -} - -ReportingInterval ::= ENUMERATED { - noPeriodicalreporting, ri0-25, - ri0-5, ri1, ri2, ri4, ri8, ri16 } - -ReportingIntervalLong ::= ENUMERATED { - ril0, ril0-25, ril0-5, ril1, - ril2, ril3, ril4, ril6, ril8, - ril12, ril16, ril20, ril24, - ril28, ril32, ril64 } - -- When the value "ril0" is used, the UE behaviour is not - -- defined. - --- Actual value ReportingRange = IE value * 0.5 -ReportingRange ::= INTEGER (0..29) - -ReqDataBitAssistance ::= SEQUENCE { - ganssSignalID DGANSS-Sig-Id-Req, - ganssDataBitInterval INTEGER(0..15), - ganssSatelliteInfo SEQUENCE (SIZE (1..maxGANSSSat)) OF INTEGER(0..63) OPTIONAL -} - -RL-AdditionInfoList ::= SEQUENCE (SIZE (1..maxRL)) OF - PrimaryCPICH-Info - -RL-InformationLists ::= SEQUENCE { - rl-AdditionInfoList RL-AdditionInfoList OPTIONAL, - rL-RemovalInformationList RL-RemovalInformationList OPTIONAL -} - -RLC-BuffersPayload ::= ENUMERATED { - pl0, pl4, pl8, pl16, pl32, - pl64, pl128, pl256, pl512, pl1024, - pl2k, pl4k, pl8k, pl16k, pl32k, - pl64k, pl128k, pl256k, pl512k, pl1024k, - spare12, spare11, spare10, spare9, spare8, - spare7, spare6, spare5, spare4, spare3, - spare2, spare1 } - --- Actual value RRC = IE value * 0.032 -RRC ::= INTEGER (-127..127) - -RSCPforANR ::= SEQUENCE { - rSCP INTEGER (-120..-25) OPTIONAL -} - -SatData ::= SEQUENCE{ - satID SatID, - iode IODE -} - -SatDataList ::= SEQUENCE (SIZE (0..maxSat)) OF - SatData - -SatellitesListRelatedData ::= SEQUENCE { - satId INTEGER (0..63), - iod INTEGER (0..1023) -} - -SatellitesListRelatedDataList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF - SatellitesListRelatedData - -SatelliteStatus ::= ENUMERATED { - ns-NN-U, - es-SN, - es-NN-U, - rev2, - rev } - -Satellite-clock-model ::= SEQUENCE { - t-oc BIT STRING (SIZE (14)), - af2 BIT STRING (SIZE (12)), - af1 BIT STRING (SIZE (18)), - af0 BIT STRING (SIZE (28)), - tgd BIT STRING (SIZE (10)) OPTIONAL, - model-id INTEGER (0..1) OPTIONAL -} - -Satellite-clock-modelList ::= SEQUENCE (SIZE (1..maxSatClockModels)) OF Satellite-clock-model - --- Identifies the satellite and is equal to (SV ID No - 1) where SV ID No is defined in [12]. -SatID ::= INTEGER (0..63) - -SBASclockModel ::= SEQUENCE { - sbasTo BIT STRING (SIZE (13)), - sbasAgfo BIT STRING (SIZE (12)), - sbasAgf1 BIT STRING (SIZE (8)) -} - -S-DPCCH-Information ::= SEQUENCE { - s-DPCCH-DPCCH-PowerOffset S-DPCCH-DPCCH-PowerOffset -} - -S-DPCCH-DPCCH-PowerOffset ::= INTEGER (0..6) - -SFN-Offset-Validity ::= ENUMERATED { false } - -SFN-SFN-Drift ::= ENUMERATED { - sfnsfndrift0, sfnsfndrift1, sfnsfndrift2, - sfnsfndrift3, sfnsfndrift4, sfnsfndrift5, - sfnsfndrift8, sfnsfndrift10, sfnsfndrift15, - sfnsfndrift25, sfnsfndrift35, sfnsfndrift50, - sfnsfndrift65, sfnsfndrift80, sfnsfndrift100, - sfnsfndrift-1, sfnsfndrift-2, sfnsfndrift-3, - sfnsfndrift-4, sfnsfndrift-5, sfnsfndrift-8, - sfnsfndrift-10, sfnsfndrift-15, sfnsfndrift-25, - sfnsfndrift-35, sfnsfndrift-50, sfnsfndrift-65, - sfnsfndrift-80, sfnsfndrift-100} - -SFN-SFN-ObsTimeDifference ::= CHOICE { - type1 SFN-SFN-ObsTimeDifference1, - type2 SFN-SFN-ObsTimeDifference2 -} - --- SPARE: SFN-SFN-ObsTimeDifference1, Max = 9830399 --- For 1.28Mcps TDD, Max value of SFN-SFN-ObsTimeDifference1 is 3276799. --- Values above Max are spare -SFN-SFN-ObsTimeDifference1 ::= INTEGER (0..16777215) - --- SPARE: SFN-SFN-ObsTimeDifference2, Max = 40961 --- For 1.28Mcps TDD, Max value of SFN-SFN-ObsTimeDifference2 is 27649. --- Values above Max are spare -SFN-SFN-ObsTimeDifference2 ::= INTEGER (0..65535) - -SFN-SFN-OTD-Type ::= ENUMERATED { - noReport, - type1, - type2 } - -SFN-SFN-RelTimeDifference1 ::= SEQUENCE { - sfn-Offset INTEGER (0 .. 4095), - sfn-sfn-Reltimedifference INTEGER (0.. 38399) -} - -SFN-TOW-Uncertainty ::= ENUMERATED { - lessThan10, - moreThan10 } - - -SIR ::= INTEGER (0..63) - - -SIR-MeasurementList ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - SIR-MeasurementResults - - -SIR-MeasurementResults ::= SEQUENCE { - tfcs-ID TFCS-IdentityPlain, - sir-TimeslotList SIR-TimeslotList -} - -SIR-TFCS ::= TFCS-IdentityPlain - - -SIR-TFCS-List ::= SEQUENCE (SIZE (1..maxCCTrCH)) OF - SIR-TFCS - -SIR-TimeslotList ::= SEQUENCE (SIZE (1..maxTS)) OF - SIR - --- SubFrame1Reserved, reserved bits in subframe 1 of the GPS navigation message -SubFrame1Reserved ::= SEQUENCE { - reserved1 BIT STRING (SIZE (23)), - reserved2 BIT STRING (SIZE (24)), - reserved3 BIT STRING (SIZE (24)), - reserved4 BIT STRING (SIZE (16)) -} - -T-ADVinfo ::= SEQUENCE { - t-ADV INTEGER(0..2047), - sfn INTEGER(0..4095) -} - -T-ADVinfo-ext ::= SEQUENCE { - t-ADV INTEGER (0..8191), - sfn INTEGER (0..4095) -} - -T-CRMax ::= CHOICE { - notUsed NULL, - t30 N-CR-T-CRMaxHyst, - t60 N-CR-T-CRMaxHyst, - t120 N-CR-T-CRMaxHyst, - t180 N-CR-T-CRMaxHyst, - t240 N-CR-T-CRMaxHyst -} - -T-CRMaxHyst ::= ENUMERATED { - notUsed, t10, t20, t30, - t40, t50, t60, t70 } - -TCE-Id ::= SEQUENCE { - tce-Id OCTET STRING (SIZE (1)) -} - -TemporaryOffset1 ::= ENUMERATED { - to3, to6, to9, to12, to15, - to18, to21, infinite } - -TemporaryOffset2 ::= ENUMERATED { - to2, to3, to4, to6, to8, - to10, to12, infinite } - -TemporaryOffsetList ::= SEQUENCE { - temporaryOffset1 TemporaryOffset1, - temporaryOffset2 TemporaryOffset2 -} - -Threshold ::= INTEGER (-115..0) - -Threshold-r6 ::= INTEGER (-120..0) - --- The order of the list corresponds to the order of frequency defined in Inter-FreqEventCriteria -ThreholdNonUsedFrequency-deltaList ::= SEQUENCE (SIZE (1..maxFreq)) OF - DeltaRSCPPerCell - -ThresholdPositionChange ::= ENUMERATED { - pc10, pc20, pc30, pc40, pc50, - pc100, pc200, pc300, pc500, - pc1000, pc2000, pc5000, pc10000, - pc20000, pc50000, pc100000 } - -ThresholdSFN-GANSS-TOW ::= ENUMERATED { - us1, us2, us3, us5, us10, - us20, us50, us100 } - -ThresholdSFN-GPS-TOW ::= ENUMERATED { - ms1, ms2, ms3, ms5, ms10, - ms20, ms50, ms100 } - -ThresholdSFN-GPS-TOW-us ::= ENUMERATED { - us1, us2, us3, us5, us10, - us20, us50, us100 } - -ThresholdSFN-SFN-Change ::= ENUMERATED { - c0-25, c0-5, c1, c2, c3, c4, c5, - c10, c20, c50, c100, c200, c500, - c1000, c2000, c5000 } - -ThresholdUsedFrequency ::= INTEGER (-115..165) - -ThresholdUsedFrequency-r6 ::= INTEGER (-120..165) - --- Actual value TimeInterval = IE value * 20. -TimeInterval ::= INTEGER (1..13) - - -TimeslotInfo ::= SEQUENCE { - timeslotNumber TimeslotNumber, - burstType BurstType -} - -TimeslotInfo-LCR-r4 ::= SEQUENCE { - timeslotNumber TimeslotNumber-LCR-r4 -} - -TimeslotInfoList ::= SEQUENCE (SIZE (1..maxTS)) OF - TimeslotInfo - -TimeslotInfoList-LCR-r4 ::= SEQUENCE (SIZE (1..maxTS-LCR)) OF - TimeslotInfo-LCR-r4 - -TimeslotInfoList-r4 ::= CHOICE { - -- the choice for 7.68 Mcps TDD is the same as for 3.84 Mcps TDD -- - tdd384 SEQUENCE (SIZE (1..maxTS)) OF - TimeslotInfo, - tdd128 SEQUENCE (SIZE (1..maxTS-LCR)) OF - TimeslotInfo-LCR-r4 -} - --- SPARE: TimeslotISCP, Max = 91 --- Values above Max are spare -TimeslotISCP ::= INTEGER (0..127) - - --- TimeslotISCP-List shall not include more than 6 elements in 1.28Mcps TDD mode. -TimeslotISCP-List ::= SEQUENCE (SIZE (1..maxTS)) OF - TimeslotISCP - -TimeslotListWithISCP ::= SEQUENCE (SIZE (1..maxTS)) OF - TimeslotWithISCP - -TimeslotWithISCP ::= SEQUENCE { - timeslot TimeslotNumber, - timeslotISCP TimeslotISCP -} - -TimeToTrigger ::= ENUMERATED { - ttt0, ttt10, ttt20, ttt40, ttt60, - ttt80, ttt100, ttt120, ttt160, - ttt200, ttt240, tt320, ttt640, - ttt1280, ttt2560, ttt5000 } - -TraceReference ::= SEQUENCE { - plmn-Identity PLMN-Identity, - traceId OCTET STRING (SIZE (3)) -} - -TraceRecordingSession ::= SEQUENCE { - traceRecordingSession OCTET STRING (SIZE (2)) -} - -TrafficVolumeEventParam ::= SEQUENCE { - eventID TrafficVolumeEventType, - reportingThreshold TrafficVolumeThreshold, - timeToTrigger TimeToTrigger OPTIONAL, - pendingTimeAfterTrigger PendingTimeAfterTrigger OPTIONAL, - tx-InterruptionAfterTrigger TX-InterruptionAfterTrigger OPTIONAL -} - -TrafficVolumeEventResults ::= SEQUENCE { - ul-transportChannelCausingEvent UL-TrCH-Identity, - trafficVolumeEventIdentity TrafficVolumeEventType -} - -TrafficVolumeEventType ::= ENUMERATED { - e4a, - e4b } - -TrafficVolumeMeasQuantity ::= CHOICE { - rlc-BufferPayload NULL, - averageRLC-BufferPayload TimeInterval, - varianceOfRLC-BufferPayload TimeInterval -} - -TrafficVolumeMeasSysInfo ::= SEQUENCE { - trafficVolumeMeasurementID MeasurementIdentity DEFAULT 4, - trafficVolumeMeasurementObjectList TrafficVolumeMeasurementObjectList OPTIONAL, - trafficVolumeMeasQuantity TrafficVolumeMeasQuantity OPTIONAL, - trafficVolumeReportingQuantity TrafficVolumeReportingQuantity OPTIONAL, - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy TrafficVolumeReportingCriteria OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - measurementReportingMode MeasurementReportingMode, - reportCriteriaSysInf TrafficVolumeReportCriteriaSysInfo - -} - -TrafficVolumeMeasuredResults ::= SEQUENCE { - rb-Identity RB-Identity, - rlc-BuffersPayload RLC-BuffersPayload OPTIONAL, - averageRLC-BufferPayload AverageRLC-BufferPayload OPTIONAL, - varianceOfRLC-BufferPayload VarianceOfRLC-BufferPayload OPTIONAL -} - -TrafficVolumeMeasuredResultsList ::= SEQUENCE (SIZE (1..maxRB)) OF - TrafficVolumeMeasuredResults - -TrafficVolumeMeasurement ::= SEQUENCE { - trafficVolumeMeasurementObjectList TrafficVolumeMeasurementObjectList OPTIONAL, - trafficVolumeMeasQuantity TrafficVolumeMeasQuantity OPTIONAL, - trafficVolumeReportingQuantity TrafficVolumeReportingQuantity OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria TrafficVolumeReportCriteria -} - -TrafficVolumeMeasurementObjectList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - UL-TrCH-Identity - -TrafficVolumeReportCriteria ::= CHOICE { - trafficVolumeReportingCriteria TrafficVolumeReportingCriteria, - periodicalReportingCriteria PeriodicalReportingCriteria, - noReporting NULL -} - -TrafficVolumeReportCriteriaSysInfo ::= CHOICE { - trafficVolumeReportingCriteria TrafficVolumeReportingCriteria, - periodicalReportingCriteria PeriodicalReportingCriteria -} - -TrafficVolumeReportingCriteria ::= SEQUENCE { - -- NOTE: transChCriteriaList should be mandatory in later versions of this message - transChCriteriaList TransChCriteriaList OPTIONAL -} - -TrafficVolumeReportingQuantity ::= SEQUENCE { - rlc-RB-BufferPayload BOOLEAN, - rlc-RB-BufferPayloadAverage BOOLEAN, - rlc-RB-BufferPayloadVariance BOOLEAN -} - -TrafficVolumeThreshold ::= ENUMERATED { - th8, th16, th32, th64, th128, - th256, th512, th1024, th2k, th3k, - th4k, th6k, th8k, th12k, th16k, - th24k, th32k, th48k, th64k, th96k, - th128k, th192k, th256k, th384k, - th512k, th768k } - -TransChCriteria ::= SEQUENCE { - ul-transportChannelID UL-TrCH-Identity OPTIONAL, - eventSpecificParameters SEQUENCE (SIZE (1..maxMeasParEvent)) OF - TrafficVolumeEventParam OPTIONAL -} - -TransChCriteriaList ::= SEQUENCE (SIZE (1..maxTrCH)) OF - TransChCriteria - -TransferMode ::= ENUMERATED { - acknowledgedModeRLC, - unacknowledgedModeRLC } - -TransmittedPowerThreshold ::= INTEGER (-50..33) - -TriggeringCondition1 ::= ENUMERATED { - activeSetCellsOnly, - monitoredSetCellsOnly, - activeSetAndMonitoredSetCells } - -TriggeringCondition2 ::= ENUMERATED { - activeSetCellsOnly, - monitoredSetCellsOnly, - activeSetAndMonitoredSetCells, - detectedSetCellsOnly, - detectedSetAndMonitoredSetCells } - -Tutran-Ganss-DriftRate ::= ENUMERATED { - ugdr0, ugdr1, ugdr2, ugdr5, ugdr10, ugdr15 , ugdr25, - ugdr50, ugdr-1, ugdr-2, ugdr-5, ugdr-10, ugdr-15, - ugdr-25, ugdr-50, spare } - -TX-InterruptionAfterTrigger ::= ENUMERATED { - txiat0-25, txiat0-5, txiat1, - txiat2, txiat4, txiat8, txiat16 } - -UDRE ::= ENUMERATED { - lessThan1, - between1-and-4, - between4-and-8, - over8 } - -UDREGrowthRate ::= ENUMERATED { - growth-1-5, - growth-2, - growth-4, - growth-6, - growth-8, - growth-10, - growth-12, - growth-16 } - -UDREValidityTime ::= ENUMERATED { - val-20sec, - val-40sec, - val-80sec, - val-160sec, - val-320sec, - val-640sec, - val-1280sec, - val-2560sec } - -UE-6AB-Event ::= SEQUENCE { - timeToTrigger TimeToTrigger, - transmittedPowerThreshold TransmittedPowerThreshold -} - -UE-6FG-Event ::= SEQUENCE { - timeToTrigger TimeToTrigger, - -- in 1.28 Mcps TDD ue-RX-TX-TimeDifferenceThreshold corresponds to TADV Threshold - ue-RX-TX-TimeDifferenceThreshold UE-RX-TX-TimeDifferenceThreshold -} - --- dummy and dummy2 are not used in this version of the specification, they should --- not be sent and if received the UE behaviour is not specified. -UE-AutonomousUpdateMode ::= CHOICE { - dummy NULL, - onWithNoReporting NULL, - dummy2 RL-InformationLists -} - -UE-InternalEventParam ::= CHOICE { - event6a UE-6AB-Event, - event6b UE-6AB-Event, - event6c TimeToTrigger, - event6d TimeToTrigger, - event6e TimeToTrigger, - event6f UE-6FG-Event, - event6g UE-6FG-Event -} - -UE-InternalEventParamList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - UE-InternalEventParam - -UE-InternalEventResults ::= CHOICE { - event6a NULL, - event6b NULL, - event6c NULL, - event6d NULL, - event6e NULL, - event6f PrimaryCPICH-Info, - event6g PrimaryCPICH-Info, - spare NULL -} - -UE-InternalMeasQuantity ::= SEQUENCE { - measurementQuantity UE-MeasurementQuantity, - filterCoefficient FilterCoefficient DEFAULT fc0 -} - -UE-InternalMeasuredResults ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ue-TransmittedPowerFDD UE-TransmittedPower OPTIONAL, - ue-RX-TX-ReportEntryList UE-RX-TX-ReportEntryList OPTIONAL - }, - tdd SEQUENCE { - ue-TransmittedPowerTDD-List UE-TransmittedPowerTDD-List OPTIONAL, - appliedTA UL-TimingAdvance OPTIONAL - } - } -} - -UE-InternalMeasuredResults-LCR-r4 ::= SEQUENCE { - ue-TransmittedPowerTDD-List UE-TransmittedPowerTDD-List OPTIONAL, - -- If TA value is not greater than 2047, then use this IE to report. - t-ADVinfo T-ADVinfo OPTIONAL -} - -UE-InternalMeasuredResults-v770ext ::= SEQUENCE { - modeSpecificInfo CHOICE { - tdd384-768 SEQUENCE { - appliedTA EXT-UL-TimingAdvance OPTIONAL - }, - tdd128 SEQUENCE { - -- If TA value is greater than 2047, then use this IE to report - t-ADVinfo T-ADVinfo-ext OPTIONAL - } - } -} - -UE-InternalMeasurement ::= SEQUENCE { - ue-InternalMeasQuantity UE-InternalMeasQuantity OPTIONAL, - ue-InternalReportingQuantity UE-InternalReportingQuantity OPTIONAL, - reportCriteria UE-InternalReportCriteria -} - -UE-InternalMeasurement-r4 ::= SEQUENCE { - ue-InternalMeasQuantity UE-InternalMeasQuantity OPTIONAL, - ue-InternalReportingQuantity UE-InternalReportingQuantity-r4 OPTIONAL, - reportCriteria UE-InternalReportCriteria -} - -UE-InternalMeasurementSysInfo ::= SEQUENCE { - ue-InternalMeasurementID MeasurementIdentity DEFAULT 5, - ue-InternalMeasQuantity UE-InternalMeasQuantity -} - -UE-InternalReportCriteria ::= CHOICE { - ue-InternalReportingCriteria UE-InternalReportingCriteria, - periodicalReportingCriteria PeriodicalReportingCriteria, - noReporting NULL -} - -UE-InternalReportingCriteria ::= SEQUENCE { - ue-InternalEventParamList UE-InternalEventParamList OPTIONAL -} - -UE-InternalReportingQuantity ::= SEQUENCE { - ue-TransmittedPower BOOLEAN, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ue-RX-TX-TimeDifference BOOLEAN - }, - tdd SEQUENCE { - appliedTA BOOLEAN - } - } -} - -UE-InternalReportingQuantity-r4 ::= SEQUENCE { - ue-TransmittedPower BOOLEAN, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ue-RX-TX-TimeDifference BOOLEAN - }, - tdd SEQUENCE { - tddOption CHOICE { - -- appliedTA applies to both 3.84 Mcps TDD and to 7.68 Mcps TDD. - -- Therefore, no additional choice of TDD mode is necessary - tdd384 SEQUENCE { - appliedTA BOOLEAN - }, - tdd128 SEQUENCE { - t-ADVinfo BOOLEAN - } - } - } - } -} - --- TABULAR: UE-MeasurementQuantity, for 3.84 Mcps TDD only the first two values --- ue-TransmittedPower and utra-Carrier-RSSI are used. --- For 1.28 Mcps TDD ue-RX-TX-TimeDifference corresponds to T-ADV in the tabular -UE-MeasurementQuantity ::= ENUMERATED { - ue-TransmittedPower, - utra-Carrier-RSSI, - ue-RX-TX-TimeDifference } - -UE-RX-TX-ReportEntry ::= SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info, - ue-RX-TX-TimeDifferenceType1 UE-RX-TX-TimeDifferenceType1 -} - -UE-RX-TX-ReportEntryList ::= SEQUENCE (SIZE (1..maxRL)) OF - UE-RX-TX-ReportEntry - --- SPARE: UE-RX-TX-TimeDifferenceType1, Max = 1280 --- Values above Max are spare -UE-RX-TX-TimeDifferenceType1 ::= INTEGER (768..1791) - - -UE-RX-TX-TimeDifferenceType2 ::= INTEGER (0..8191) - -UE-RX-TX-TimeDifferenceType2Info ::= SEQUENCE { - ue-RX-TX-TimeDifferenceType2 UE-RX-TX-TimeDifferenceType2, - neighbourQuality NeighbourQuality -} - --- In 1.28 Mcps TDD, actual value for --- T-ADV Threshold = (UE-RX-TX-TimeDifferenceThreshold - 768) * 0.125 -UE-RX-TX-TimeDifferenceThreshold ::= INTEGER (768..1280) - -UE-TransmittedPower ::= INTEGER (0..104) - -UE-TransmittedPowerTDD-List ::= SEQUENCE (SIZE (1..maxTS)) OF - UE-TransmittedPower - -UL-TrCH-Identity ::= CHOICE{ - dch TransportChannelIdentity, - -- Note: the reference to CPCH in the element name below is incorrect. The name is not changed - -- to keep it aligned with R99. - rachorcpch NULL, - usch TransportChannelIdentity -} - -UE-Positioning-Accuracy ::= BIT STRING (SIZE (7)) - - -UE-Positioning-CipherParameters ::= SEQUENCE { - cipheringKeyFlag BIT STRING (SIZE (1)), - cipheringSerialNumber INTEGER (0..65535) -} - -UE-Positioning-DGANSSCorrections ::= SEQUENCE { - dganssreferencetime INTEGER (0..119), -- scale factor 30s - dganssInfoList DGANSSInfoList -} - -UE-Positioning-DGANSSCorrections-r9 ::= SEQUENCE { - dganssreferencetime INTEGER (0..119), -- scale factor 30s - dganssInfoList DGANSSInfoList-r9 -} - -UE-Positioning-DGANSSCorrections-v920ext ::= SEQUENCE { - dganssInfoList DGANSSInfoList-v920ext -} - -UE-Positioning-Error ::= SEQUENCE { - errorReason UE-Positioning-ErrorCause, - ue-positioning-GPS-additionalAssistanceDataRequest - UE-Positioning-GPS-AdditionalAssistanceDataRequest OPTIONAL -} - -UE-Positioning-Error-r7 ::= SEQUENCE { - errorReason UE-Positioning-ErrorCause-r7, - ue-positioning-GPS-additionalAssistanceDataRequest - UE-Positioning-GPS-AdditionalAssistanceDataRequest OPTIONAL, - ue-positioning-GANSS-additionalAssistanceDataRequest - UE-Positioning-GANSS-AdditionalAssistanceDataRequest OPTIONAL -} - -UE-Positioning-Error-v860ext ::= SEQUENCE { - ue-positioning-GANSS-additionalAssistanceDataRequest - UE-Positioning-GANSS-AdditionalAssistanceDataRequest-v860ext OPTIONAL -} - -UE-Positioning-ErrorCause ::= ENUMERATED { - notEnoughOTDOA-Cells, - notEnoughGPS-Satellites, - assistanceDataMissing, - notAccomplishedGPS-TimingOfCellFrames, - undefinedError, - requestDeniedByUser, - notProcessedAndTimeout, - referenceCellNotServingCell } - -UE-Positioning-ErrorCause-r7 ::= ENUMERATED { - notEnoughOTDOA-Cells, - notEnoughGPS-Satellites, - assistanceDataMissing, - notAccomplishedGPS-TimingOfCellFrames, - undefinedError, - requestDeniedByUser, - notProcessedAndTimeout, - referenceCellNotServingCell, - notEnoughGANSS-Satellites, - notAccomplishedGANSS-TimingOfCellFrames, - spare6, spare5, spare4, spare3, spare2, spare1 } - -UE-Positioning-EventParam ::= SEQUENCE { - reportingAmount ReportingAmount, - reportFirstFix BOOLEAN, - measurementInterval UE-Positioning-MeasurementInterval, - eventSpecificInfo UE-Positioning-EventSpecificInfo -} - -UE-Positioning-EventParam-r7 ::= SEQUENCE { - reportingAmount ReportingAmount, - reportFirstFix BOOLEAN, - measurementInterval UE-Positioning-MeasurementInterval, - eventSpecificInfo UE-Positioning-EventSpecificInfo-r7 -} - -UE-Positioning-EventParamList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - UE-Positioning-EventParam - -UE-Positioning-EventParamList-r7 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF - UE-Positioning-EventParam-r7 - -UE-Positioning-EventSpecificInfo ::= CHOICE { - e7a ThresholdPositionChange, - e7b ThresholdSFN-SFN-Change, - e7c ThresholdSFN-GPS-TOW -} - -UE-Positioning-EventSpecificInfo-r7 ::= CHOICE { - e7a ThresholdPositionChange, - e7b ThresholdSFN-SFN-Change, - e7c ThresholdSFN-GPS-TOW-us, - e7d ThresholdSFN-GANSS-TOW -} - --- This IE, if included, shall contain exactly one of the optional elements -UE-Positioning-GANSS-AddUTCModels ::= SEQUENCE { - utcModel1 UTCmodelSet1 OPTIONAL, - utcModel2 UTCmodelSet2 OPTIONAL, - utcModel3 UTCmodelSet3 OPTIONAL -} - -UE-Positioning-GANSS-Almanac ::= SEQUENCE{ - ganss-wk-number INTEGER (0..255), - alm-keplerianParameters ALM-keplerianParameters OPTIONAL -} - --- This IE, if included, shall contain exactly one of the optional elements -UE-Positioning-GANSS-Almanac-v860ext ::= SEQUENCE { - alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL, - alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL, - alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL, - alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL, - alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL -} - -UE-Positioning-GANSS-Almanac-r8 ::= SEQUENCE{ - ganss-wk-number INTEGER (0..255), - alm-keplerianParameters ALM-keplerianParameters OPTIONAL, - alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL, - alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL, - alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL, - alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL, - alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL -} - -UE-Positioning-GANSS-Almanac-va40ext ::= SEQUENCE { - complete-Almanac-Provided BOOLEAN OPTIONAL -} - -UE-Positioning-GANSS-Almanac-r10 ::= SEQUENCE{ - ganss-wk-number INTEGER (0..255), - complete-Almanac-Provided BOOLEAN OPTIONAL, - alm-keplerianParameters ALM-keplerianParameters OPTIONAL, - alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL, - alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL, - alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL, - alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL, - alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL -} - -UE-Positioning-GANSS-AdditionalAssistanceDataRequest ::= SEQUENCE { - ganssReferenceTime BOOLEAN, - ganssreferenceLocation BOOLEAN, - ganssIonosphericModel BOOLEAN, - ganssRequestedGenericAssistanceDataList GanssRequestedGenericAssistanceDataList -} - -UE-Positioning-GANSS-AdditionalAssistanceDataRequest-v860ext ::= SEQUENCE { - ganssAddIonoModelReq BIT STRING (SIZE (2)) OPTIONAL, - ganssEOPreq ENUMERATED { true } OPTIONAL, - ganssRequestedGenericAssistanceDataList - GanssRequestedGenericAssistanceDataList-v860ext -} - -UE-Positioning-GANSS-AddIonoModel ::= SEQUENCE { - dataID BIT STRING (SIZE (2)), - alpha-beta-parameters UE-Positioning-GPS-IonosphericModel -} - -UE-Positioning-GANSS-AddNavigationModels ::= SEQUENCE { - non-broadcastIndication ENUMERATED { true } OPTIONAL, - ganssSatInfoNavList Ganss-Sat-Info-AddNavList -} - -UE-Positioning-GANSS-AssistanceData ::= SEQUENCE { - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL, - uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, - uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, - ganssGenericDataList GANSSGenericDataList OPTIONAL -} - -UE-Positioning-GANSS-AssistanceData-v860ext ::= SEQUENCE { - uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL, - uePositioningGanssEarthOrientationPara UE-Positioning-GANSS-EarthOrientPara OPTIONAL, - ganssGenericDataList GANSSGenericDataList-v860ext OPTIONAL -} - -UE-Positioning-GANSS-AssistanceData-r8 ::= SEQUENCE { - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL, - uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, - uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, - uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL, - uePositioningGanssEarthOrientationPara - UE-Positioning-GANSS-EarthOrientPara OPTIONAL, - ganssGenericDataList GANSSGenericDataList-r8 OPTIONAL -} - -UE-Positioning-GANSS-AssistanceData-r9 ::= SEQUENCE { - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL, - uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, - uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, - uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL, - uePositioningGanssEarthOrientationPara - UE-Positioning-GANSS-EarthOrientPara OPTIONAL, - ganssGenericDataList GANSSGenericDataList-r9 OPTIONAL -} - -UE-Positioning-GANSS-AssistanceData-v920ext ::= SEQUENCE { - ganssGenericDataList GANSSGenericDataList-v920ext OPTIONAL -} - -UE-Positioning-GANSS-AssistanceData-va40ext ::= SEQUENCE { - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-va40ext OPTIONAL, - ganssGenericDataList GANSSGenericDataList-va40ext OPTIONAL -} - -UE-Positioning-GANSS-AssistanceData-r10 ::= SEQUENCE { - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-r10 OPTIONAL, - uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, - uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, - uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL, - uePositioningGanssEarthOrientationPara - UE-Positioning-GANSS-EarthOrientPara OPTIONAL, - ganssGenericDataList GANSSGenericDataList-r10 OPTIONAL -} - -UE-Positioning-GANSS-AuxiliaryInfo ::= CHOICE { - -- This choice may only be present if GANSS ID indicates Modernized GPS - ganssID1 AuxInfoGANSS-ID1, - -- This choice may only be present if GANSS ID indicates GLONASS - ganssID3 AuxInfoGANSS-ID3 -} - -UE-Positioning-GANSS-ClockModel ::= SEQUENCE { - satellite-clock-modelList Satellite-clock-modelList -} - --- This IE, if included, shall contain exactly one of the optional elements -UE-Positioning-GANSS-AddClockModels ::= SEQUENCE { - navClockModel NAVclockModel OPTIONAL, - cnavClockModel CNAVclockModel OPTIONAL, - glonassClockModel GLONASSclockModel OPTIONAL, - sbasClockModel SBASclockModel OPTIONAL -} - --- This IE, if included, shall contain exactly one of the optional elements -UE-Positioning-GANSS-AddOrbitModels ::= SEQUENCE { - navKeplerianSet NavModel-NAVKeplerianSet OPTIONAL, - cnavKeplerianSet NavModel-CNAVKeplerianSet OPTIONAL, - glonassECEF NavModel-GLONASSecef OPTIONAL, - sbasECEF NavModel-SBASecef OPTIONAL -} - -UE-Positioning-GANSS-Data ::= SEQUENCE { - ganssDataCipheringInfo UE-Positioning-CipherParameters OPTIONAL, - ganssDecipheringKeys GANSSDecipheringKeys OPTIONAL, - uePositioningGanssReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL, - uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, - uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, - ganssGenericDataList GANSSGenericDataList OPTIONAL -} - -UE-Positioning-GANSS-Data-Bit-Assistance ::= SEQUENCE { - ganss-tod INTEGER (0..59), - dataBitAssistanceList DataBitAssistanceList -} - -UE-Positioning-GANSS-EarthOrientPara ::= SEQUENCE { - teop BIT STRING (SIZE (16)), - pmX BIT STRING (SIZE (21)), - pmXdot BIT STRING (SIZE (15)), - pmY BIT STRING (SIZE (21)), - pmYdot BIT STRING (SIZE (15)), - deltaUT1 BIT STRING (SIZE (31)), - deltaUT1dot BIT STRING (SIZE (19)) -} - -UE-Positioning-GANSS-IonosphericModel ::= SEQUENCE { - alpha-zero-ionos BIT STRING (SIZE (12)), - alpha-one-ionos BIT STRING (SIZE (12)), - alpha-two-ionos BIT STRING (SIZE (12)), - gANSS-storm-flags GANSS-Storm-Flag OPTIONAL -} - -UE-Positioning-GANSS-MeasuredResults ::= SEQUENCE { - referenceTime CHOICE { - utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTime, - ganssReferenceTimeOnly GANSSReferenceTimeOnly - }, - ganssGenericMeasurementInfo GANSSGenericMeasurementInfo -} - -UE-Positioning-GANSS-MeasuredResults-v860ext ::= SEQUENCE { - ganssGenericMeasurementInfo GANSSGenericMeasurementInfo-v860ext -} - -UE-Positioning-GANSS-NavigationModel ::= SEQUENCE { - non-broadcastIndication ENUMERATED { true } OPTIONAL, - ganssSatInfoNavList Ganss-Sat-Info-NavList -} - -UE-Positioning-GANSS-OrbitModel ::= SEQUENCE { - keplerianParameters KeplerianParameters OPTIONAL -} - -UE-Positioning-GANSS-RealTimeIntegrity ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF SEQUENCE { - bad-ganss-satId INTEGER (0..63), - bad-ganss-signalId BIT STRING (SIZE (8)) OPTIONAL -} - -UE-Positioning-GANSS-ReferenceMeasurementInfo ::= SEQUENCE { - ganssSignalId GANSS-Signal-Id OPTIONAL, - satelliteInformationList GANSSSatelliteInformationList -} - -UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext ::= SEQUENCE { - satelliteInformationList GANSSSatelliteInformationList-va40ext -} - -UE-Positioning-GANSS-ReferenceMeasurementInfo-r10 ::= SEQUENCE { - ganssSignalId GANSS-Signal-Id OPTIONAL, - satelliteInformationList GANSSSatelliteInformationList-r10 -} - -UE-Positioning-GANSS-ReferenceTime ::= SEQUENCE { - ganssDay INTEGER (0..8191) OPTIONAL, - ganssTod INTEGER (0..86399), - ganssTodUncertainty INTEGER (0..127) OPTIONAL, - ganssTimeId INTEGER (0..7) OPTIONAL, - utran-ganssreferenceTime SEQUENCE { - timingOfCellFrames INTEGER (0..3999999), - mode CHOICE { - fdd SEQUENCE { - primary-CPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE { - cellParameters CellParametersID - } - }, - referenceSfn INTEGER (0..4095) - } OPTIONAL, - tutran-ganss-driftRate Tutran-Ganss-DriftRate OPTIONAL -} - -UE-Positioning-GANSS-ReferenceTime-va40ext ::= SEQUENCE { - ganss-Day-Cycle-Number INTEGER (0..7) OPTIONAL -} - -UE-Positioning-GANSS-ReferenceTime-r10 ::= SEQUENCE { - ganssDay INTEGER (0..8191) OPTIONAL, - ganss-Day-Cycle-Number INTEGER (0..7) OPTIONAL, - ganssTod INTEGER (0..86399), - ganssTodUncertainty INTEGER (0..127) OPTIONAL, - ganssTimeId INTEGER (0..7) OPTIONAL, - utran-ganssreferenceTime SEQUENCE { - timingOfCellFrames INTEGER (0..3999999), - mode CHOICE { - fdd SEQUENCE { - primary-CPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE { - cellParameters CellParametersID - } - }, - referenceSfn INTEGER (0..4095) - } OPTIONAL, - tutran-ganss-driftRate Tutran-Ganss-DriftRate OPTIONAL -} - -UE-Positioning-GANSS-SBAS-ID ::= ENUMERATED { - waas, - egnos, - msas, - gagan, - spare4, - spare3, - spare2, - spare1 } - -UE-Positioning-GANSS-TimeModel ::= SEQUENCE { - ganss-timeModelreferenceTime INTEGER (0..37799), -- scale factor 16s - ganss-t-a0 INTEGER (-2147483648..2147483647), -- scale factor 2-35 - -- 'ganss-t-al' scale factor 2-51 - ganss-t-a1 INTEGER (-8388608..8388607) OPTIONAL, - -- 'ganss-t-a2' scale factor 2-68 - ganss-t-a2 INTEGER (-64..63) OPTIONAL, - gnss-to-id ENUMERATED { gps, galileo, qzss, - glonass, spare4, spare3, spare2, spare1 }, - ganss-wk-number INTEGER (0..8191) OPTIONAL -} - -UE-Positioning-GANSS-TimeModel-va40ext ::= SEQUENCE { - deltaT INTEGER (-128..127) OPTIONAL -} - -UE-Positioning-GANSS-TimeModel-r10 ::= SEQUENCE { - ganss-timeModelreferenceTime INTEGER (0..37799), -- scale factor 16s - ganss-t-a0 INTEGER (-2147483648..2147483647), -- scale factor 2-35 - -- 'ganss-t-al' scale factor 2-51 - ganss-t-a1 INTEGER (-8388608..8388607) OPTIONAL, - -- 'ganss-t-a2' scale factor 2-68 - ganss-t-a2 INTEGER (-64..63) OPTIONAL, - gnss-to-id ENUMERATED { gps, galileo, qzss, - glonass, spare4, spare3, spare2, spare1 }, - ganss-wk-number INTEGER (0..8191) OPTIONAL, - deltaT INTEGER (-128..127) OPTIONAL -} - -UE-Positioning-GANSS-TimeModels ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF - UE-Positioning-GANSS-TimeModel - -UE-Positioning-GANSS-TimeModels-va40ext ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF - UE-Positioning-GANSS-TimeModel-va40ext - -UE-Positioning-GANSS-UTCModel ::= SEQUENCE { - a-one-utc BIT STRING (SIZE (24)), - a-zero-utc BIT STRING (SIZE (32)), - t-ot-utc BIT STRING (SIZE (8)), - delta-t-ls-utc BIT STRING (SIZE (8)), - w-n-t-utc BIT STRING (SIZE (8)), - w-n-lsf-utc BIT STRING (SIZE (8)), - dn-utc BIT STRING (SIZE (8)), - delta-t-lsf-utc BIT STRING (SIZE (8)) -} - -UE-Positioning-GPS-AcquisitionAssistance ::= SEQUENCE { - gps-ReferenceTime GPS-TOW-1msec, - utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, - satelliteInformationList AcquisitionSatInfoList -} - -UE-Positioning-GPS-AcquisitionAssistance-v770ext ::= SEQUENCE { - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL -} - -UE-Positioning-GPS-AcquisitionAssistance-r7 ::= SEQUENCE { - gps-ReferenceTime GPS-TOW-1msec, - utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL, - satelliteInformationList AcquisitionSatInfoList -} - -UE-Positioning-GPS-AcquisitionAssistance-va40ext ::= SEQUENCE { - satelliteInformationList AcquisitionSatInfoList-va40ext -} - -UE-Positioning-GPS-AcquisitionAssistance-r10 ::= SEQUENCE { - gps-ReferenceTime GPS-TOW-1msec, - utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty - OPTIONAL, - satelliteInformationList AcquisitionSatInfoList-r10 -} - -UE-Positioning-GPS-AdditionalAssistanceDataRequest ::= SEQUENCE { - almanacRequest BOOLEAN, - utcModelRequest BOOLEAN, - ionosphericModelRequest BOOLEAN, - navigationModelRequest BOOLEAN, - dgpsCorrectionsRequest BOOLEAN, - referenceLocationRequest BOOLEAN, - referenceTimeRequest BOOLEAN, - aquisitionAssistanceRequest BOOLEAN, - realTimeIntegrityRequest BOOLEAN, - navModelAddDataRequest UE-Positioning-GPS-NavModelAddDataReq OPTIONAL -} - -UE-Positioning-GPS-Almanac ::= SEQUENCE { - wn-a BIT STRING (SIZE (8)), - almanacSatInfoList AlmanacSatInfoList, - sv-GlobalHealth BIT STRING (SIZE (364)) OPTIONAL -} - -UE-Positioning-GPS-Almanac-va40ext ::= SEQUENCE { - complete-Almanac-Provided BOOLEAN OPTIONAL -} - -UE-Positioning-GPS-Almanac-r10 ::= SEQUENCE { - wn-a BIT STRING (SIZE (8)), - complete-Almanac-Provided BOOLEAN OPTIONAL, - almanacSatInfoList AlmanacSatInfoList, - sv-GlobalHealth BIT STRING (SIZE (364)) OPTIONAL -} - -UE-Positioning-GPS-AssistanceData ::= SEQUENCE { - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime OPTIONAL, - ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL, - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections OPTIONAL, - ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL, - ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL, - ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL, - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL, - ue-positioning-GPS-AcquisitionAssistance - UE-Positioning-GPS-AcquisitionAssistance OPTIONAL, - ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL, - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy UE-Positioning-GPS-ReferenceCellInfo OPTIONAL -} - -UE-Positioning-GPS-AssistanceData-v770ext ::= SEQUENCE { - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-v770ext OPTIONAL, - ue-positioning-GPS-AcquisitionAssistance - UE-Positioning-GPS-AcquisitionAssistance-v770ext OPTIONAL -} - -UE-Positioning-GPS-AssistanceData-r7 ::= SEQUENCE { - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r7 OPTIONAL, - ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL, - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections OPTIONAL, - ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL, - ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL, - ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL, - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL, - ue-positioning-GPS-AcquisitionAssistance - UE-Positioning-GPS-AcquisitionAssistance-r7 OPTIONAL, - ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL -} - -UE-Positioning-GPS-AssistanceData-r9 ::= SEQUENCE { - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r7 OPTIONAL, - ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL, - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-r9 OPTIONAL, - ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL, - ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL, - ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL, - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL, - ue-positioning-GPS-AcquisitionAssistance - UE-Positioning-GPS-AcquisitionAssistance-r7 OPTIONAL, - ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL -} - -UE-Positioning-GPS-AssistanceData-v920ext ::= SEQUENCE { - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-v920ext OPTIONAL -} - -UE-Positioning-GPS-AssistanceData-va40ext ::= SEQUENCE { - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-va40ext OPTIONAL, - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-va40ext OPTIONAL, - ue-positioning-GPS-AcquisitionAssistance - UE-Positioning-GPS-AcquisitionAssistance-va40ext - OPTIONAL -} - -UE-Positioning-GPS-AssistanceData-r10 ::= SEQUENCE { - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r10 OPTIONAL, - ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL, - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-r9 OPTIONAL, - ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL, - ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL, - ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL, - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-r10 OPTIONAL, - ue-positioning-GPS-AcquisitionAssistance - UE-Positioning-GPS-AcquisitionAssistance-r10 - OPTIONAL, - ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL -} - -UE-Positioning-GPS-DGPS-Corrections ::= SEQUENCE { - gps-TOW GPS-TOW-1sec, - statusHealth DiffCorrectionStatus, - dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList -} - -UE-Positioning-GPS-DGPS-Corrections-r9 ::= SEQUENCE { - gps-TOW GPS-TOW-1sec, - statusHealth DiffCorrectionStatus, - dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList-r9 -} - -UE-Positioning-GPS-DGPS-Corrections-v920ext ::= SEQUENCE { - dgps-CorrectionSatInfoList DGPS-CorrectionSatInfoList-v920ext -} - -UE-Positioning-GPS-IonosphericModel ::= SEQUENCE { - alpha0 BIT STRING (SIZE (8)), - alpha1 BIT STRING (SIZE (8)), - alpha2 BIT STRING (SIZE (8)), - alpha3 BIT STRING (SIZE (8)), - beta0 BIT STRING (SIZE (8)), - beta1 BIT STRING (SIZE (8)), - beta2 BIT STRING (SIZE (8)), - beta3 BIT STRING (SIZE (8)) -} - -UE-Positioning-GPS-MeasurementResults ::= SEQUENCE { - referenceTime CHOICE { - utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult, - gps-ReferenceTimeOnly GPS-TOW-1msec - }, - gps-MeasurementParamList GPS-MeasurementParamList -} - -UE-Positioning-GPS-MeasurementResults-v770ext ::= SEQUENCE { - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL -} - -UE-Positioning-GPS-NavigationModel ::= SEQUENCE { - navigationModelSatInfoList NavigationModelSatInfoList -} - -UE-Positioning-GPS-NavModelAddDataReq ::= SEQUENCE { - gps-Week INTEGER (0..1023), - -- SPARE: gps-Toe, Max = 167 - -- Values above Max are spare - gps-Toe INTEGER (0..255), - -- SPARE: tToeLimit, Max = 10 - -- Values above Max are spare - tToeLimit INTEGER (0..15), - satDataList SatDataList -} - -UE-Positioning-GPS-ReferenceCellInfo ::= SEQUENCE{ - modeSpecificInfo CHOICE { - fdd SEQUENCE { - referenceIdentity PrimaryCPICH-Info - }, - tdd SEQUENCE { - referenceIdentity CellParametersID - } - } -} - -UE-Positioning-GPS-ReferenceTime ::= SEQUENCE { - gps-Week INTEGER (0..1023), - gps-tow-1msec GPS-TOW-1msec, - utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, - sfn-tow-Uncertainty SFN-TOW-Uncertainty OPTIONAL, - utran-GPS-DriftRate UTRAN-GPS-DriftRate OPTIONAL, - gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL -} - -UE-Positioning-GPS-ReferenceTime-v770ext ::= SEQUENCE { - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL -} - -UE-Positioning-GPS-ReferenceTime-r7 ::= SEQUENCE { - gps-Week INTEGER (0..1023), - gps-tow-1msec GPS-TOW-1msec, - utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL, - sfn-tow-Uncertainty SFN-TOW-Uncertainty OPTIONAL, - utran-GPS-DriftRate UTRAN-GPS-DriftRate OPTIONAL, - gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL -} - -UE-Positioning-GPS-ReferenceTime-va40ext ::= SEQUENCE { - gps-Week-Cycle-Number INTEGER (0..7) OPTIONAL -} - -UE-Positioning-GPS-ReferenceTime-r10 ::= SEQUENCE { - gps-Week INTEGER (0..1023), - gps-Week-Cycle-Number INTEGER (0..7) OPTIONAL, - gps-tow-1msec GPS-TOW-1msec, - utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty - OPTIONAL, - sfn-tow-Uncertainty SFN-TOW-Uncertainty OPTIONAL, - utran-GPS-DriftRate UTRAN-GPS-DriftRate OPTIONAL, - gps-TOW-AssistList GPS-TOW-AssistList OPTIONAL -} - -UE-Positioning-GPS-ReferenceTimeUncertainty ::= INTEGER (0..127) - -UE-Positioning-GPS-UTC-Model ::= SEQUENCE { - a1 BIT STRING (SIZE (24)), - a0 BIT STRING (SIZE (32)), - t-ot BIT STRING (SIZE (8)), - wn-t BIT STRING (SIZE (8)), - delta-t-LS BIT STRING (SIZE (8)), - wn-lsf BIT STRING (SIZE (8)), - dn BIT STRING (SIZE (8)), - delta-t-LSF BIT STRING (SIZE (8)) -} - -UE-Positioning-IPDL-Parameters ::= SEQUENCE { - ip-Spacing IP-Spacing, - ip-Length IP-Length, - ip-Offset INTEGER (0..9), - seed INTEGER (0..63), - burstModeParameters BurstModeParameters OPTIONAL -} - -UE-Positioning-IPDL-Parameters-r4 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ip-Spacing IP-Spacing, - ip-Length IP-Length, - ip-Offset INTEGER (0..9), - seed INTEGER (0..63) - }, - tdd SEQUENCE { - ip-Spacing-TDD IP-Spacing-TDD, - ip-slot INTEGER (0..14), - ip-Start INTEGER (0..4095), - ip-PCCPCG IP-PCCPCH-r4 OPTIONAL - } - }, - burstModeParameters BurstModeParameters OPTIONAL -} - -UE-Positioning-IPDL-Parameters-TDD-r4-ext ::= SEQUENCE { - ip-Spacing IP-Spacing-TDD, - ip-slot INTEGER (0..14), - ip-Start INTEGER (0..4095), - ip-PCCPCG IP-PCCPCH-r4 OPTIONAL, - burstModeParameters BurstModeParameters -} - -UE-Positioning-MeasuredResults ::= SEQUENCE { - ue-positioning-OTDOA-Measurement UE-Positioning-OTDOA-Measurement OPTIONAL, - -- Extended 'ue-positioning-PositionEstimateInfo' information may be provided using IE - -- 'UE-Positioning-PositionEstimateInfo-v770ext' in IE 'UE-Positioning-MeasuredResults-v770ext'. - ue-positioning-PositionEstimateInfo UE-Positioning-PositionEstimateInfo OPTIONAL, - ue-positioning-GPS-Measurement UE-Positioning-GPS-MeasurementResults OPTIONAL, - -- The 'ue-positioning-Error' information may be provided using IE 'UE-Positioning-Error-r7' in - -- IE 'UE-Positioning-MeasuredResults-v770ext'. - -- If IE 'UE-Positioning-Error-r7' is present, the corresponding IE 'UE-Positioning-Error' shall - -- be excluded. - ue-positioning-Error UE-Positioning-Error OPTIONAL -} - -UE-Positioning-MeasuredResults-v770ext ::= SEQUENCE { - ue-positioning-PositionEstimateInfo UE-Positioning-PositionEstimateInfo-v770ext OPTIONAL, - ue-positioning-GPS-Measurement UE-Positioning-GPS-MeasurementResults-v770ext - OPTIONAL, - ue-positioning-Error UE-Positioning-Error-r7 OPTIONAL, - ue-positioning-Ganss-MeasuredResults UE-Positioning-GANSS-MeasuredResults OPTIONAL -} - -UE-Positioning-MeasuredResults-v390ext ::= SEQUENCE { - ue-Positioning-OTDOA-Measurement-v390ext UE-Positioning-OTDOA-Measurement-v390ext -} - -UE-Positioning-MeasuredResults-v860ext ::= SEQUENCE { - ue-positioning-Error UE-Positioning-Error-v860ext OPTIONAL, - ue-positioning-Ganss-MeasurementResults UE-Positioning-GANSS-MeasuredResults-v860ext OPTIONAL -} - -UE-Positioning-Measurement ::= SEQUENCE { - ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity, - reportCriteria UE-Positioning-ReportCriteria, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData OPTIONAL, - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData OPTIONAL -} - -UE-Positioning-Measurement-v390ext ::= SEQUENCE { - ue-positioning-ReportingQuantity-v390ext - UE-Positioning-ReportingQuantity-v390ext OPTIONAL, - measurementValidity MeasurementValidity OPTIONAL, - ue-positioning-OTDOA-AssistanceData-UEB UE-Positioning-OTDOA-AssistanceData-UEB OPTIONAL -} - -UE-Positioning-Measurement-r4 ::= SEQUENCE { - ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r4, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria UE-Positioning-ReportCriteria, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r4 OPTIONAL, - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData OPTIONAL -} - -UE-Positioning-Measurement-r7 ::= SEQUENCE { - ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r7, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria UE-Positioning-ReportCriteria-r7, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL, - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r7 OPTIONAL, - ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData OPTIONAL -} - -UE-Positioning-Measurement-r8 ::= SEQUENCE { - ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria UE-Positioning-ReportCriteria-r7, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL, - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r7 OPTIONAL, - ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r8 OPTIONAL -} - -UE-Positioning-Measurement-r9 ::= SEQUENCE { - ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria UE-Positioning-ReportCriteria-r7, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL, - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r9 OPTIONAL, - ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r9 OPTIONAL -} - -UE-Positioning-Measurement-r10 ::= SEQUENCE { - ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8, - measurementValidity MeasurementValidity OPTIONAL, - reportCriteria UE-Positioning-ReportCriteria-r7, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL, - ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r10 OPTIONAL, - ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r10 OPTIONAL -} - -UE-Positioning-MeasurementEventResults ::= CHOICE { - -- In case of 'event7a' reporting, if IE 'UE-Positioning-PositionEstimateInfo' is not needed, - -- CHOICE shall be set to 'additionalOrReplacedPosMeasEvent'and the 'event7a' shall be included - -- in IE 'UE-Positioning-MeasurementEventResults-v770ext'. - event7a UE-Positioning-PositionEstimateInfo, - event7b UE-Positioning-OTDOA-Measurement, - event7c UE-Positioning-GPS-MeasurementResults, - -- If CHOICE is set to 'additionalOrReplacedPosMeasEvent', - -- IE 'UE-Positioning-MeasurementEventResults-v770ext' shall be present. - additionalOrReplacedPosMeasEvent NULL -} - -UE-Positioning-MeasurementEventResults-v770ext ::= CHOICE { - event7a UE-Positioning-PositionEstimateInfo-v770ext, - event7c UE-Positioning-GPS-MeasurementResults-v770ext, - event7d UE-Positioning-GANSS-MeasuredResults, - spare NULL -} - -UE-Positioning-MeasurementEventResults-v860ext ::= CHOICE { - event7d UE-Positioning-GANSS-MeasuredResults-v860ext -} - -UE-Positioning-MeasurementInterval ::= ENUMERATED { - e5, e15, e60, e300, - e900, e1800, e3600, e7200 } - -UE-Positioning-MethodType ::= ENUMERATED { - ue-Assisted, - ue-Based, - ue-BasedPreferred, - ue-AssistedPreferred } - -UE-Positioning-OTDOA-AssistanceData ::= SEQUENCE { - ue-positioning-OTDOA-ReferenceCellInfo - UE-Positioning-OTDOA-ReferenceCellInfo OPTIONAL, - ue-positioning-OTDOA-NeighbourCellList - UE-Positioning-OTDOA-NeighbourCellList OPTIONAL -} - -UE-Positioning-OTDOA-AssistanceData-r4 ::= SEQUENCE { - ue-positioning-OTDOA-ReferenceCellInfo - UE-Positioning-OTDOA-ReferenceCellInfo-r4 OPTIONAL, - ue-positioning-OTDOA-NeighbourCellList - UE-Positioning-OTDOA-NeighbourCellList-r4 OPTIONAL -} - -UE-Positioning-OTDOA-AssistanceData-r4ext ::= SEQUENCE { - -- In case of TDD these IPDL parameters shall be used for the reference cell instead of - -- IPDL Parameters in IE UE-Positioning-OTDOA-ReferenceCellInfo - ue-Positioning-IPDL-Parameters-TDD-r4-ext - UE-Positioning-IPDL-Parameters-TDD-r4-ext OPTIONAL, - -- These IPDL parameters shall be used for the neighbour cells in case of TDD instead of - -- IPDL Parameters in IE UE-Positioning-OTDOA-NeighbourCellInfoList. The cells shall be - -- listed in the same order as in IE UE-Positioning-OTDOA-NeighbourCellInfoList - ue-Positioning-IPDL-Parameters-TDDList-r4-ext - UE-Positioning-IPDL-Parameters-TDDList-r4-ext OPTIONAL -} - -UE-Positioning-OTDOA-AssistanceData-UEB ::= SEQUENCE { - ue-positioning-OTDOA-ReferenceCellInfo-UEB - UE-Positioning-OTDOA-ReferenceCellInfo-UEB OPTIONAL, - ue-positioning-OTDOA-NeighbourCellList-UEB - UE-Positioning-OTDOA-NeighbourCellList-UEB OPTIONAL -} - -UE-Positioning-OTDOA-AssistanceData-UEB-ext ::= SEQUENCE { - ue-positioning-OTDOA-ReferenceCellInfo-UEB-ext - UE-Positioning-OTDOA-ReferenceCellInfo-UEB-ext OPTIONAL, - ue-positioning-OTDOA-NeighbourCellList-UEB-ext - UE-Positioning-OTDOA-NeighbourCellList-UEB-ext OPTIONAL -} - -UE-Positioning-OTDOA-AssistanceData-r7 ::= SEQUENCE { - ue-positioning-OTDOA-ReferenceCellInfo UE-Positioning-OTDOA-ReferenceCellInfo-r7 OPTIONAL, - ue-positioning-OTDOA-NeighbourCellList UE-Positioning-OTDOA-NeighbourCellList-r7 OPTIONAL -} - -UE-Positioning-IPDL-Parameters-TDDList-r4-ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - UE-Positioning-IPDL-Parameters-TDD-r4-ext - -UE-Positioning-OTDOA-MeasuredResultsTDD-ext ::= SEQUENCE { - neighbourList NeighbourList-TDD-r7 OPTIONAL -} - -UE-Positioning-OTDOA-Measurement ::= SEQUENCE { - sfn INTEGER (0..4095), - modeSpecificInfo CHOICE { - fdd SEQUENCE { - referenceCellIDentity PrimaryCPICH-Info, - ue-RX-TX-TimeDifferenceType2Info UE-RX-TX-TimeDifferenceType2Info - }, - tdd SEQUENCE { - referenceCellIdentity CellParametersID - } - }, - neighbourList NeighbourList OPTIONAL -} - -UE-Positioning-OTDOA-Measurement-v390ext ::= SEQUENCE { - neighbourList-v390ext NeighbourList-v390ext -} - -UE-Positioning-OTDOA-NeighbourCellInfo ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL, - sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1, - sfn-SFN-Drift SFN-SFN-Drift OPTIONAL, - searchWindowSize OTDOA-SearchWindowSize, - positioningMode CHOICE{ - ueBased SEQUENCE {}, - ueAssisted SEQUENCE {} - } -} - -UE-Positioning-OTDOA-NeighbourCellInfo-r4 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL, - sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1, - sfn-Offset-Validity SFN-Offset-Validity OPTIONAL, - sfn-SFN-Drift SFN-SFN-Drift OPTIONAL, - searchWindowSize OTDOA-SearchWindowSize, - positioningMode CHOICE { - ueBased SEQUENCE { - relativeNorth INTEGER (-20000..20000) OPTIONAL, - relativeEast INTEGER (-20000..20000) OPTIONAL, - relativeAltitude INTEGER (-4000..4000) OPTIONAL, - fineSFN-SFN FineSFN-SFN OPTIONAL, - -- actual value roundTripTime = (IE value * 0.0625) + 876 - roundTripTime INTEGER (0.. 32766) OPTIONAL - }, - ueAssisted SEQUENCE {} - } -} - -UE-Positioning-OTDOA-NeighbourCellInfo-UEB ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL, - sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1, - sfn-SFN-Drift SFN-SFN-Drift OPTIONAL, - searchWindowSize OTDOA-SearchWindowSize, - relativeNorth INTEGER (-20000..20000) OPTIONAL, - relativeEast INTEGER (-20000..20000) OPTIONAL, - relativeAltitude INTEGER (-4000..4000) OPTIONAL, - fineSFN-SFN FineSFN-SFN, - -- actual value roundTripTime = (IE value * 0.0625) + 876 - roundTripTime INTEGER (0..32766) OPTIONAL -} - -UE-Positioning-OTDOA-NeighbourCellInfo-UEB-ext ::= SEQUENCE { - -- actual value roundTripTimeExtension = (IE value * 0.0625) - roundTripTimeExtension INTEGER (0..70274) OPTIONAL -} - -UE-Positioning-OTDOA-NeighbourCellInfo-r7 ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL, - sfn-SFN-RelTimeDifference SFN-SFN-RelTimeDifference1, - sfn-Offset-Validity SFN-Offset-Validity OPTIONAL, - sfn-SFN-Drift SFN-SFN-Drift OPTIONAL, - searchWindowSize OTDOA-SearchWindowSize, - positioningMode CHOICE { - ueBased SEQUENCE { - relativeNorth INTEGER (-20000..20000) OPTIONAL, - relativeEast INTEGER (-20000..20000) OPTIONAL, - relativeAltitude INTEGER (-4000..4000) OPTIONAL, - fineSFN-SFN FineSFN-SFN OPTIONAL, - -- actual value roundTripTime = (IE value * 0.0625) + 876 - roundTripTime INTEGER (0.. 32766) OPTIONAL, - -- actual value roundTripTimeExtension = (IE value * 0.0625) - roundTripTimeExtension INTEGER (0..70274) OPTIONAL - }, - ueAssisted SEQUENCE {} - } -} - -UE-Positioning-OTDOA-NeighbourCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - UE-Positioning-OTDOA-NeighbourCellInfo - -UE-Positioning-OTDOA-NeighbourCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - UE-Positioning-OTDOA-NeighbourCellInfo-r4 - -UE-Positioning-OTDOA-NeighbourCellList-UEB ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - UE-Positioning-OTDOA-NeighbourCellInfo-UEB - --- The order of the list corresponds to the order of UE-Positioning-OTDOA-NeighbourCellInfo-UEB --- in UE-Positioning-OTDOA-NeighbourCellList-UEB -UE-Positioning-OTDOA-NeighbourCellList-UEB-ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - UE-Positioning-OTDOA-NeighbourCellInfo-UEB-ext - -UE-Positioning-OTDOA-NeighbourCellList-r7 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF - UE-Positioning-OTDOA-NeighbourCellInfo-r7 - -UE-Positioning-OTDOA-Quality ::= SEQUENCE { - stdResolution BIT STRING (SIZE (2)), - numberOfOTDOA-Measurements BIT STRING (SIZE (3)), - stdOfOTDOA-Measurements BIT STRING (SIZE (5)) -} - -UE-Positioning-OTDOA-ReferenceCellInfo ::= SEQUENCE { - sfn INTEGER (0..4095) OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - positioningMode CHOICE { - ueBased SEQUENCE {}, - ueAssisted SEQUENCE {} - }, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL -} - -UE-Positioning-OTDOA-ReferenceCellInfo-r4 ::= SEQUENCE { - sfn INTEGER (0..4095) OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - positioningMode CHOICE { - ueBased SEQUENCE { - cellPosition ReferenceCellPosition OPTIONAL, - -- actual value roundTripTime = (IE value * 0.0625) + 876 - roundTripTime INTEGER (0..32766) OPTIONAL - }, - ueAssisted SEQUENCE {} - }, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL -} - -UE-Positioning-OTDOA-ReferenceCellInfo-UEB ::= SEQUENCE { - sfn INTEGER (0..4095) OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - cellPosition ReferenceCellPosition OPTIONAL, - -- actual value roundTripTime = (IE value * 0.0625) + 876 - roundTripTime INTEGER (0..32766) OPTIONAL, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters OPTIONAL -} - -UE-Positioning-OTDOA-ReferenceCellInfo-UEB-ext ::= SEQUENCE { - -- actual value roundTripTimeExtension = (IE value * 0.0625) - roundTripTimeExtension INTEGER (0..70274) OPTIONAL -} - -UE-Positioning-OTDOA-ReferenceCellInfo-r7 ::= SEQUENCE { - sfn INTEGER (0..4095) OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - }, - frequencyInfo FrequencyInfo OPTIONAL, - positioningMode CHOICE { - ueBased SEQUENCE { - cellPosition ReferenceCellPosition OPTIONAL, - -- actual value roundTripTime = (IE value * 0.0625) + 876 - roundTripTime INTEGER (0..32766) OPTIONAL, - -- actual value roundTripTimeExtension = (IE value * 0.0625) - roundTripTimeExtension INTEGER (0..70274) OPTIONAL - }, - ueAssisted SEQUENCE {} - }, - ue-positioning-IPDL-Paremeters UE-Positioning-IPDL-Parameters-r4 OPTIONAL -} - -UE-Positioning-PositionEstimateInfo ::= SEQUENCE { - referenceTime CHOICE { - utran-GPSReferenceTimeResult UTRAN-GPSReferenceTimeResult, - gps-ReferenceTimeOnly GPS-TOW-1msec, - cell-Timing SEQUENCE { - sfn INTEGER (0..4095), - modeSpecificInfo CHOICE { - fdd SEQUENCE { - primaryCPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE{ - cellAndChannelIdentity CellAndChannelIdentity - } - } - } - }, - positionEstimate PositionEstimate -} - -UE-Positioning-PositionEstimateInfo-v770ext ::= SEQUENCE { - referenceTimeOptions CHOICE { - -- If 'earlier-than-r7', IE 'UE-Positioning-PositionEstimateInfo' shall be included. - earlier-than-r7 NULL, - -- If 'r7', the corresponding IE 'UE-Positioning-PositionEstimateInfo' shall be excluded. - r7 SEQUENCE { - referenceTime CHOICE { - utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTime, - ganssReferenceTimeOnly GANSSReferenceTimeOnly - }, - positionEstimate PositionEstimate - } - }, - positionData BIT STRING (SIZE (16)), - velocityEstimate VelocityEstimate OPTIONAL, - ue-Positioning-GPS-ReferenceTimeUncertainty - UE-Positioning-GPS-ReferenceTimeUncertainty OPTIONAL -} - -UE-Positioning-ReportCriteria ::= CHOICE { - ue-positioning-ReportingCriteria UE-Positioning-EventParamList, - periodicalReportingCriteria PeriodicalReportingCriteria, - noReporting NULL -} - -UE-Positioning-ReportCriteria-r7 ::= CHOICE { - ue-positioning-ReportingCriteria UE-Positioning-EventParamList-r7, - periodicalReportingCriteria PeriodicalReportingCriteria, - noReporting NULL -} - -UE-Positioning-ReportingQuantity ::= SEQUENCE { - methodType UE-Positioning-MethodType, - positioningMethod PositioningMethod, - -- dummy1 is not used in this version of specification and it should - -- be ignored. - dummy1 UE-Positioning-ResponseTime, - horizontal-Accuracy UE-Positioning-Accuracy OPTIONAL, - gps-TimingOfCellWanted BOOLEAN, - -- dummy2 is not used in this version of specification and it should - -- be ignored. - dummy2 BOOLEAN, - additionalAssistanceDataRequest BOOLEAN, - environmentCharacterisation EnvironmentCharacterisation OPTIONAL -} - -UE-Positioning-ReportingQuantity-v390ext ::= SEQUENCE { - vertical-Accuracy UE-Positioning-Accuracy -} - -UE-Positioning-ReportingQuantity-r4 ::= SEQUENCE { - methodType UE-Positioning-MethodType, - positioningMethod PositioningMethod, - horizontalAccuracy UE-Positioning-Accuracy OPTIONAL, - verticalAccuracy UE-Positioning-Accuracy OPTIONAL, - gps-TimingOfCellWanted BOOLEAN, - additionalAssistanceDataReq BOOLEAN, - environmentCharacterisation EnvironmentCharacterisation OPTIONAL -} - -UE-Positioning-ReportingQuantity-r7 ::= SEQUENCE { - methodType UE-Positioning-MethodType, - positioningMethod PositioningMethod, - horizontalAccuracy UE-Positioning-Accuracy OPTIONAL, - verticalAccuracy UE-Positioning-Accuracy OPTIONAL, - gps-TimingOfCellWanted BOOLEAN, - additionalAssistanceDataReq BOOLEAN, - environmentCharacterisation EnvironmentCharacterisation OPTIONAL, - velocityRequested ENUMERATED { true } OPTIONAL, - gANSSPositioningMethods BIT STRING (SIZE (16)) OPTIONAL, - gANSSTimingOfCellWanted BIT STRING (SIZE (8)) OPTIONAL, - gANSSCarrierPhaseMeasurementRequested - BIT STRING (SIZE (8)) OPTIONAL -} - -UE-Positioning-ReportingQuantity-r8 ::= SEQUENCE { - methodType UE-Positioning-MethodType, - positioningMethod PositioningMethod, - horizontalAccuracy UE-Positioning-Accuracy OPTIONAL, - verticalAccuracy UE-Positioning-Accuracy OPTIONAL, - gps-TimingOfCellWanted BOOLEAN, - additionalAssistanceDataReq BOOLEAN, - environmentCharacterisation EnvironmentCharacterisation OPTIONAL, - velocityRequested ENUMERATED { true } OPTIONAL, - gANSSPositioningMethods BIT STRING (SIZE (16)) OPTIONAL, - gANSSTimingOfCellWanted BIT STRING (SIZE (8)) OPTIONAL, - gANSSCarrierPhaseMeasurementRequested - BIT STRING (SIZE (8)) OPTIONAL, - gANSSMultiFreqMeasurementRequested BIT STRING (SIZE (8)) OPTIONAL -} - -UE-Positioning-ResponseTime ::= ENUMERATED { - s1, s2, s4, s8, s16, - s32, s64, s128 } - -UTCmodelSet1 ::= SEQUENCE { - utcA0 BIT STRING (SIZE (16)), - utcA1 BIT STRING (SIZE (13)), - utcA2 BIT STRING (SIZE (7)), - utcDeltaTls BIT STRING (SIZE (8)), - utcTot BIT STRING (SIZE (16)), - utcWNot BIT STRING (SIZE (13)), - utcWNlsf BIT STRING (SIZE (8)), - utcDN BIT STRING (SIZE (4)), - utcDeltaTlsf BIT STRING (SIZE (8)) -} - -UTCmodelSet2 ::= SEQUENCE { - nA BIT STRING (SIZE (11)), - tauC BIT STRING (SIZE (32)), - deltaUT1 DeltaUT1 OPTIONAL, - kp BIT STRING (SIZE (2)) OPTIONAL -} - -UTCmodelSet3 ::= SEQUENCE { - utcA1wnt BIT STRING (SIZE (24)), - utcA0wnt BIT STRING (SIZE (32)), - utcTot BIT STRING (SIZE (8)), - utcWNt BIT STRING (SIZE (8)), - utcDeltaTls BIT STRING (SIZE (8)), - utcWNlsf BIT STRING (SIZE (8)), - utcDN BIT STRING (SIZE (8)), - utcDeltaTlsf BIT STRING (SIZE (8)), - utcStandardID BIT STRING (SIZE (3)) -} - --- SPARE: UTRA-CarrierRSSI, Max = 76 --- Values above Max are spare -UTRA-CarrierRSSI ::= INTEGER (0..127) - -UTRAN-GANSSReferenceTime ::= SEQUENCE { - ue-GANSSTimingOfCellFrames SEQUENCE { - -- Actual value [ns] = (ms-Part * 4294967296 + ls-Part) * 250 - -- Actual values [ns] > 86399999999750 are reserved and are considered a protocol error - ms-Part INTEGER (0..80), - ls-Part INTEGER (0..4294967295) - }, - gANSS-TimeId INTEGER (0..7) OPTIONAL, - gANSS-TimeUncertainty INTEGER (0..127) OPTIONAL, - mode CHOICE { - fdd SEQUENCE { - primary-CPICH-Info PrimaryCPICH-Info - }, - tdd SEQUENCE { - cellParameters CellParametersID - } - }, - referenceSfn INTEGER (0..4095) -} - -UTRAN-FDD-FrequencyList ::= SEQUENCE (SIZE(1..maxNumFDDFreqs)) OF - UTRAN-FDD-Frequency - -UTRAN-FDD-Frequency ::= SEQUENCE { - uarfcn UARFCN, - priority INTEGER (0..maxPrio-1), - -- Actual value = IE value * 2 - threshXhigh INTEGER (0..31), - -- Actual value = IE value * 2 - threshXlow INTEGER (0..31), - qQualMinFDD INTEGER (-24..0) OPTIONAL, - -- Actual value = IE value * 2 + 1 - qRxLevMinFDD INTEGER (-60..-13) OPTIONAL -} - -UTRAN-TDD-FrequencyList ::= SEQUENCE (SIZE(1..maxNumTDDFreqs)) OF - UTRAN-TDD-Frequency - -UTRAN-TDD-Frequency ::= SEQUENCE { - uarfcn UARFCN, - priority INTEGER (0..maxPrio-1), - -- Actual value = IE value * 2 - threshXhigh INTEGER (0..31), - -- Actual value = IE value * 2 - threshXlow INTEGER (0..31), - -- Actual value = IE value * 2 + 1 - qRxLevMinTDD INTEGER (-60..-13) OPTIONAL -} - -UTRAN-GPS-DriftRate ::= ENUMERATED { - utran-GPSDrift0, utran-GPSDrift1, utran-GPSDrift2, - utran-GPSDrift5, utran-GPSDrift10, utran-GPSDrift15, - utran-GPSDrift25, utran-GPSDrift50, utran-GPSDrift-1, - utran-GPSDrift-2, utran-GPSDrift-5, utran-GPSDrift-10, - utran-GPSDrift-15, utran-GPSDrift-25, utran-GPSDrift-50} - -UTRAN-GPSReferenceTime ::= SEQUENCE { - -- For utran-GPSTimingOfCell values above 2322431999999 are not - -- used in this version of the specification - -- Actual value utran-GPSTimingOfCell = (ms-part * 4294967296) + ls-part - utran-GPSTimingOfCell SEQUENCE { - ms-part INTEGER (0..1023), - ls-part INTEGER (0..4294967295) - }, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - referenceIdentity PrimaryCPICH-Info - }, - tdd SEQUENCE { - referenceIdentity CellParametersID - } - } OPTIONAL, - sfn INTEGER (0..4095) -} - -UTRAN-GPSReferenceTimeResult ::= SEQUENCE { - -- For ue-GPSTimingOfCell values above 37158911999999 are not - -- used in this version of the specification - -- Actual value ue-GPSTimingOfCell = (ms-part * 4294967296) + ls-part - ue-GPSTimingOfCell SEQUENCE { - ms-part INTEGER (0.. 16383), - ls-part INTEGER (0..4294967295) - }, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - referenceIdentity PrimaryCPICH-Info - }, - tdd SEQUENCE { - referenceIdentity CellParametersID - } - }, - sfn INTEGER (0..4095) -} - -UTRA-PriorityInfoList ::= SEQUENCE { - utra-ServingCell SEQUENCE { - priority INTEGER (0..maxPrio-1), - -- Actual value = IE value * 2 - s-PrioritySearch1 INTEGER (0..31), - -- Actual value = IE value, default value is 0 - s-PrioritySearch2 INTEGER (0..7) OPTIONAL, - -- Actual value = IE value * 2 - threshServingLow INTEGER (0..31) - }, - utran-FDD-FrequencyList UTRAN-FDD-FrequencyList OPTIONAL, - utran-TDD-FrequencyList UTRAN-TDD-FrequencyList OPTIONAL -} - -UTRA-PriorityInfoList-v920ext ::= SEQUENCE { - threshServingLow2 INTEGER (0..31) OPTIONAL -} - -VarianceOfRLC-BufferPayload ::= ENUMERATED { - plv0, plv4, plv8, plv16, plv32, plv64, - plv128, plv256, plv512, plv1024, - plv2k, plv4k, plv8k, plv16k, spare2, spare1 } - -VelocityEstimate ::= CHOICE { - horizontalVelocity HorizontalVelocity, - horizontalWithVerticalVelocity HorizontalWithVerticalVelocity, - horizontalVelocityWithUncertainty HorizontalVelocityWithUncertainty, - horizontalWithVerticalVelocityAndUncertainty HorizontalWithVerticalVelocityAndUncertainty -} - --- Actual value W = IE value * 0.1 -W ::= INTEGER (0..20) - --- *************************************************** --- --- OTHER INFORMATION ELEMENTS (10.3.8) --- --- *************************************************** - -BCC ::= INTEGER (0..7) - -BCCH-ModificationInfo ::= SEQUENCE { - mib-ValueTag MIB-ValueTag, - bcch-ModificationTime BCCH-ModificationTime OPTIONAL -} - --- Actual value BCCH-ModificationTime = IE value * 8 -BCCH-ModificationTime ::= INTEGER (0..511) - -BSIC ::= SEQUENCE { - ncc NCC, - bcc BCC -} - -CBS-DRX-Level1Information ::= SEQUENCE { - ctch-AllocationPeriod INTEGER (1..256), - cbs-FrameOffset INTEGER (0..255) -} - -CBS-DRX-Level1Information-extension-r6 ::= ENUMERATED {p8, p16, p32, p64, p128, p256} - -CDMA2000-Message ::= SEQUENCE { - msg-Type BIT STRING (SIZE (8)), - payload BIT STRING (SIZE (1..512)) -} - -CDMA2000-MessageList ::= SEQUENCE (SIZE (1..maxInterSysMessages)) OF - CDMA2000-Message - -CDMA2000-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumCDMA2000Freqs)) OF - FrequencyInfoCDMA2000 - -CellValueTag ::= INTEGER (1..4) - -DataTransmFrequency ::= SEQUENCE { - dataTransmFreqGranularity ENUMERATED { ms100, ms250, ms500, ms1000, - ms2000, ms5000, ms10000, ms60000 }, - numberOfDataTransmOcc INTEGER (1..610) -} - -DataVolumeHistory ::= SEQUENCE { - dataVolumeMontoringWindow INTEGER (1..120), - dataTransmFrequency DataTransmFrequency OPTIONAL, - dataVolumePerRB DataVolumePerRB-List OPTIONAL -} - -DataVolumePerRB ::= SEQUENCE { - rb-Identity RB-Identity, - dataVolume INTEGER (0..4294967295) -} - -DataVolumePerRB-List ::= SEQUENCE (SIZE (1..maxRB)) OF DataVolumePerRB - -DeferredMeasurementControlReadingSupport ::= SEQUENCE { - -- If modeSpecificInfo is not present, deferred SIB11, SIB11bis and SIB12 reading - -- with default measurement quantities applies - modeSpecificInfo CHOICE { - fdd SEQUENCE { - intraFreqMeasQuantity-FDD IntraFreqMeasQuantity-FDD-sib3 - }, - tdd SEQUENCE { - intraFreqMeasQuantity-TDDList IntraFreqMeasQuantity-TDD-sib3List - } - } OPTIONAL -} - -ETWS-Information ::= SEQUENCE { - warningType OCTET STRING (SIZE (1..2)), - messageIdentifier OCTET STRING (SIZE (2)), - serialNumber OCTET STRING (SIZE (2)) -} - --- This IE is not used in the specification. -ETWS-WarningSecurityInfo ::= OCTET STRING - -EUTRA-BlacklistedCell ::= SEQUENCE { - physicalCellIdentity EUTRA-PhysicalCellIdentity -} - -EUTRA-BlacklistedCellPerFreqList ::= SEQUENCE (SIZE (1..maxEUTRACellPerFreq)) OF - EUTRA-BlacklistedCell - -EUTRA-PhysicalCellIdentity ::= INTEGER (0..503) - -EUTRA-RadioAccessCapability ::= SEQUENCE { - ue-EUTRA-Capability OCTET STRING -} - -EUTRA-TargetFreqInfoList ::= SEQUENCE (SIZE (1..maxEUTRATargetFreqs)) OF - EUTRA-TargetFreqInfo - -EUTRA-TargetFreqInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxEUTRATargetFreqs)) OF - EUTRA-TargetFreqInfo-vb50ext - -EUTRA-TargetFreqInfo ::= SEQUENCE { - dlEUTRACarrierFreq EARFCN, - eutraBlacklistedCellPerFreqList EUTRA-BlacklistedCellPerFreqList OPTIONAL -} - -EUTRA-TargetFreqInfo-vb50ext ::= SEQUENCE { - earfcn EARFCNExtension OPTIONAL -} - ---Actual value = 2^(IE value) -ExpirationTimeFactor ::= INTEGER (1..8) - -ExtGANSS-SchedulingInfo ::= SEQUENCE { - extensionGANSS-SIBType SIB-TypeExtGANSS, - schedulingInfo SchedulingInformation, - valueTagInfo ValueTagInfo -} - --- For each extended GANSS SIB type the value tag information is added at the end -ExtGANSS-SIBTypeInfoSchedulingInfoList ::= SEQUENCE (SIZE (1..maxGANSS)) OF - ExtGANSS-SIBTypeInfoSchedulingInfo - -ExtGANSS-SIBTypeInfoSchedulingInfo ::= SEQUENCE { - ganssID INTEGER (0..7) OPTIONAL, - sbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, - ganssScheduling SEQUENCE (SIZE (1..maxSIB)) OF - ExtGANSS-SchedulingInfo -} - --- For each extended SIB type the value tag information is added at the end -ExtSIBTypeInfoSchedulingInfo-List ::= SEQUENCE (SIZE (1..maxSIB)) OF - ExtSIBTypeInfoSchedulingInfo - -ExtSIBTypeInfoSchedulingInfo ::= SEQUENCE { - extensionSIB-Type SIB-TypeExt, - schedulingInfo SchedulingInformation, - valueTagInfo ValueTagInfo -} - --- For each extended SIB type the value tag information is added at the end -ExtSIBTypeInfoSchedulingInfo-List2 ::= SEQUENCE (SIZE (1..maxSIB)) OF - ExtSIBTypeInfoSchedulingInfo2 - -ExtSIBTypeInfoSchedulingInfo2 ::= SEQUENCE { - extensionSIB-Type2 SIB-TypeExt2, - schedulingInfo SchedulingInformation, - valueTagInfo ValueTagInfo -} - -FDD-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF - -- NOTE1: The IE "UARFCN (Nlow)" corresponds to - -- "uarfcn-DL" in FrequencyInfoFDD. - -- NOTE2: The IE "UARFCN (Nupper)" corresponds to - -- "uarfcn-UL" in FrequencyInfoFDD. - FrequencyInfoFDD - -FrequencyInfoCDMA2000 ::= SEQUENCE { - band-Class BIT STRING (SIZE (5)), - cdma-Freq BIT STRING (SIZE(11)) -} - -GERAN-SystemInfoBlock ::= OCTET STRING (SIZE (1..23)) - -GERAN-SystemInformation ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF GERAN-SystemInfoBlock - -GSM-BA-Range ::= SEQUENCE { - gsmLowRangeUARFCN UARFCN, - gsmUpRangeUARFCN UARFCN -} - -GSM-BA-Range-List ::= SEQUENCE (SIZE (1..maxNumGSMFreqRanges)) OF - GSM-BA-Range - - --- This IE is formatted as 'TLV' and is coded in the same way as the Mobile Station Classmark 2 --- information element in [5]. The first octet is the Mobile station classmark 2 IEI and its value --- shall be set to 33H. The second octet is the Length of mobile station classmark 2 and its value --- shall be set to 3. The octet 3 contains the first octet of the value part of the Mobile Station --- Classmark 2 information element, the octet 4 contains the second octet of the value part of the --- Mobile Station Classmark 2 information element and so on. For each of these octets, the first/ --- leftmost/ most significant bit of the octet contains b8 of the corresponding octet of the Mobile --- Station Classmark 2. -GSM-Classmark2 ::= OCTET STRING (SIZE (5)) - --- This IE is formatted as 'V' and is coded in the same way as the value part in the Mobile station --- classmark 3 information element in [5] --- The value part is specified by means of CSN.1, which encoding results in a bit string, to which --- final padding may be appended upto the next octet boundary [5]. The first/ leftmost bit of the --- CSN.1 bit string is placed in the first/ leftmost/ most significant bit of the first --- octet. This continues until the last bit of the CSN.1 bit string, which is placed in the last/ --- rightmost/ least significant bit of the last octet. -GSM-Classmark3 ::= OCTET STRING (SIZE (1..32)) - -GSM-MessageList ::= SEQUENCE (SIZE (1..maxInterSysMessages)) OF - BIT STRING (SIZE (1..512)) - -GSM-MS-RadioAccessCapability ::= OCTET STRING (SIZE (1..64)) - -GsmSecurityCapability ::= BIT STRING { - -- For each bit value "0" means false/ not supported - a5-7(0), - a5-6(1), - a5-5(2), - a5-4(3), - a5-3(4), - a5-2(5), - a5-1(6) - } (SIZE (7)) - -GSM-TargetCellInfoList ::= SEQUENCE (SIZE (1..maxGSMTargetCells)) OF - GSM-TargetCellInfo - - -GSM-TargetCellInfo ::= SEQUENCE { - bcch-ARFCN BCCH-ARFCN, - frequency-band Frequency-Band, - bsic BSIC OPTIONAL -} - -HNBName ::= OCTET STRING (SIZE(1..maxHNBNameSize)) - -IdentificationOfReceivedMessage ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - receivedMessageType ReceivedMessageType -} - -InterRAT-ChangeFailureCause ::= CHOICE { - configurationUnacceptable NULL, - physicalChannelFailure NULL, - protocolError ProtocolErrorInformation, - unspecified NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -GERANIu-MessageList ::= SEQUENCE (SIZE (1..maxInterSysMessages)) OF - BIT STRING (SIZE (1..32768)) - -GERANIu-RadioAccessCapability ::= BIT STRING (SIZE (1..170)) - -InterRAT-UE-RadioAccessCapability ::= CHOICE { - gsm SEQUENCE { - gsm-Classmark2 GSM-Classmark2, - gsm-Classmark3 GSM-Classmark3 - }, - cdma2000 SEQUENCE { - cdma2000-MessageList CDMA2000-MessageList - } -} - -InterRAT-UE-RadioAccessCapabilityList ::= SEQUENCE (SIZE(1..maxInterSysMessages)) OF - InterRAT-UE-RadioAccessCapability - -InterRAT-UE-RadioAccessCapability-v590ext ::= SEQUENCE { - geranIu-RadioAccessCapability GERANIu-RadioAccessCapability -} - -InterRAT-UE-RadioAccessCapability-v690ext ::= SEQUENCE { - supportOfInter-RAT-PS-Handover ENUMERATED { doesSupporInter-RAT-PS-Handover } OPTIONAL, - gsm-MS-RadioAccessCapability GSM-MS-RadioAccessCapability -} - -InterRAT-UE-RadioAccessCapability-v860ext ::= SEQUENCE { - eutra-RadioAccessCapability EUTRA-RadioAccessCapability OPTIONAL -} - -InterRAT-UE-SecurityCapability ::= CHOICE { - gsm SEQUENCE { - gsmSecurityCapability GsmSecurityCapability - } -} - -InterRAT-UE-SecurityCapList ::= SEQUENCE (SIZE(1..maxInterSysMessages)) OF - InterRAT-UE-SecurityCapability - -InterRAT-HO-FailureCause ::= CHOICE { - configurationUnacceptable NULL, - physicalChannelFailure NULL, - protocolError ProtocolErrorInformation, - interRAT-ProtocolError NULL, - unspecified NULL, - spare11 NULL, - spare10 NULL, - spare9 NULL, - spare8 NULL, - spare7 NULL, - spare6 NULL, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -MasterInformationBlock ::= SEQUENCE { - mib-ValueTag MIB-ValueTag, - -- TABULAR: The PLMN identity and ANSI-41 core network information - -- are included in PLMN-Type. - plmn-Type PLMN-Type, - sibSb-ReferenceList SIBSb-ReferenceList, - -- Extension mechanism for non- release99 information - v690NonCriticalExtensions SEQUENCE { - masterInformationBlock-v690ext MasterInformationBlock-v690ext, - v6b0NonCriticalExtensions SEQUENCE { - masterInformationBlock-v6b0ext MasterInformationBlock-v6b0ext-IEs, - v860NonCriticalExtensions SEQUENCE { - masterInformationBlock-v860ext MasterInformationBlock-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -MasterInformationBlock-v690ext ::= SEQUENCE { - multiplePLMN-List MultiplePLMN-List-r6 OPTIONAL -} - -MasterInformationBlock-v6b0ext-IEs ::= SEQUENCE { - extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List OPTIONAL -} - -MasterInformationBlock-v860ext-IEs ::= SEQUENCE { - extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List2 OPTIONAL, - extGANSS-SIBTypeInfoSchedulingInfoList - ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL, - csg-Indicator ENUMERATED { true } OPTIONAL -} - -MIB-ValueTag ::= INTEGER (1..8) - -NCC ::= INTEGER (0..7) - -PLMN-ValueTag ::= INTEGER (1..256) - - -PredefinedConfigIdentityAndValueTag ::= SEQUENCE { - predefinedConfigIdentity PredefinedConfigIdentity, - predefinedConfigValueTag PredefinedConfigValueTag -} - -ProtocolErrorInformation ::= SEQUENCE { - diagnosticsType CHOICE { - type1 SEQUENCE { - protocolErrorCause ProtocolErrorCause - }, - spare NULL - } -} - -ReceivedMessageType ::= ENUMERATED { - activeSetUpdate, - cellChangeOrderFromUTRAN, - cellUpdateConfirm, - counterCheck, - downlinkDirectTransfer, - interRATHandoverCommand, - measurementControl, - pagingType2, - physicalChannelReconfiguration, - physicalSharedChannelAllocation, - radioBearerReconfiguration, - radioBearerRelease, - radioBearerSetup, - rrcConnectionRelease, - rrcConnectionReject, - rrcConnectionSetup, - securityModeCommand, - signallingConnectionRelease, - transportChannelReconfiguration, - transportFormatCombinationControl, - ueCapabilityEnquiry, - ueCapabilityInformationConfirm, - uplinkPhysicalChannelControl, - uraUpdateConfirm, - utranMobilityInformation, - assistanceDataDelivery, - spare6, spare5, spare4, spare3, spare2, - spare1 -} - -Rplmn-Information ::= SEQUENCE { - gsm-BA-Range-List GSM-BA-Range-List OPTIONAL, - fdd-UMTS-Frequency-List FDD-UMTS-Frequency-List OPTIONAL, - tdd-UMTS-Frequency-List TDD-UMTS-Frequency-List OPTIONAL, - cdma2000-UMTS-Frequency-List CDMA2000-UMTS-Frequency-List OPTIONAL -} - -Rplmn-Information-r4 ::= SEQUENCE { - gsm-BA-Range-List GSM-BA-Range-List OPTIONAL, - fdd-UMTS-Frequency-List FDD-UMTS-Frequency-List OPTIONAL, - -- the option is the same for 7.68 Mcps TDD as for 3.84 Mcps TDD - -- i.e. TDD-UMTS-Frequency-List applies - tdd384-UMTS-Frequency-List TDD-UMTS-Frequency-List OPTIONAL, - tdd128-UMTS-Frequency-List TDD-UMTS-Frequency-List OPTIONAL, - cdma2000-UMTS-Frequency-List CDMA2000-UMTS-Frequency-List OPTIONAL -} - -SchedulingInformation ::= SEQUENCE { - scheduling SEQUENCE { - segCount SegCount DEFAULT 1, - sib-Pos CHOICE { - -- The element name indicates the repetition period and the value - -- (multiplied by two) indicates the position of the first segment. - rep4 INTEGER (0..1), - rep8 INTEGER (0..3), - rep16 INTEGER (0..7), - rep32 INTEGER (0..15), - rep64 INTEGER (0..31), - rep128 INTEGER (0..63), - rep256 INTEGER (0..127), - rep512 INTEGER (0..255), - rep1024 INTEGER (0..511), - rep2048 INTEGER (0..1023), - rep4096 INTEGER (0..2047) - }, - sib-PosOffsetInfo SibOFF-List OPTIONAL - } -} - -SchedulingInformationSIB ::= SEQUENCE { - sib-Type SIB-TypeAndTag, - scheduling SchedulingInformation -} - -SchedulingInformationSIBSb ::= SEQUENCE { - sibSb-Type SIBSb-TypeAndTag, - scheduling SchedulingInformation -} - -SegCount ::= INTEGER (1..16) - -SegmentIndex ::= INTEGER (1..15) - --- Actual value SFN-Prime = 2 * IE value -SFN-Prime ::= INTEGER (0..2047) - - -SIB-Data-fixed ::= BIT STRING (SIZE (222)) - - -SIB-Data-variable ::= BIT STRING (SIZE (1..214)) - -SIBOccurIdentity ::= INTEGER (0..15) - -SIBOccurrenceIdentityAndValueTag ::= SEQUENCE { - sibOccurIdentity SIBOccurIdentity, - sibOccurValueTag SIBOccurValueTag -} - -SIBOccurValueTag ::= INTEGER (0..15) - -SIB-ReferenceList ::= SEQUENCE (SIZE (1..maxSIB)) OF - SchedulingInformationSIB - -SIBSb-ReferenceList ::= SEQUENCE (SIZE (1..maxSIB)) OF - SchedulingInformationSIBSb - -SIB-ReferenceListFACH ::= SEQUENCE (SIZE (1..maxSIB-FACH)) OF - SchedulingInformationSIB - -SIB-Type ::= ENUMERATED { - masterInformationBlock, - systemInformationBlockType1, - systemInformationBlockType2, - systemInformationBlockType3, - systemInformationBlockType4, - systemInformationBlockType5, - systemInformationBlockType6, - systemInformationBlockType7, - -- dummy, dummy2 and dummy3 are not used in this version of the specification, - -- they should not be sent. If they are received they should be ignored - dummy, - dummy2, - dummy3, - systemInformationBlockType11, - systemInformationBlockType12, - systemInformationBlockType13, - systemInformationBlockType13-1, - systemInformationBlockType13-2, - systemInformationBlockType13-3, - systemInformationBlockType13-4, - systemInformationBlockType14, - systemInformationBlockType15, - systemInformationBlockType15-1, - systemInformationBlockType15-2, - systemInformationBlockType15-3, - systemInformationBlockType16, - systemInformationBlockType17, - systemInformationBlockType15-4, - systemInformationBlockType18, - schedulingBlock1, - schedulingBlock2, - systemInformationBlockType15-5, - systemInformationBlockType5bis, - extensionType } - -SIB-TypeAndTag ::= CHOICE { - sysInfoType1 PLMN-ValueTag, - sysInfoType2 CellValueTag, - sysInfoType3 CellValueTag, - sysInfoType4 CellValueTag, - sysInfoType5 CellValueTag, - sysInfoType6 CellValueTag, - sysInfoType7 NULL, - -- dummy, dummy2 and dummy3 are not used in this version of the specification, - -- they should not be sent. If they are received the UE behaviour is not specified. - dummy CellValueTag, - dummy2 NULL, - dummy3 NULL, - sysInfoType11 CellValueTag, - sysInfoType12 CellValueTag, - sysInfoType13 CellValueTag, - sysInfoType13-1 CellValueTag, - sysInfoType13-2 CellValueTag, - sysInfoType13-3 CellValueTag, - sysInfoType13-4 CellValueTag, - sysInfoType14 NULL, - sysInfoType15 CellValueTag, - sysInfoType16 PredefinedConfigIdentityAndValueTag, - sysInfoType17 NULL, - sysInfoType15-1 CellValueTag, - sysInfoType15-2 SIBOccurrenceIdentityAndValueTag, - sysInfoType15-3 SIBOccurrenceIdentityAndValueTag, - sysInfoType15-4 CellValueTag, - sysInfoType18 CellValueTag, - sysInfoType15-5 CellValueTag, - sysInfoType5bis CellValueTag, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -SIBSb-TypeAndTag ::= CHOICE { - sysInfoType1 PLMN-ValueTag, - sysInfoType2 CellValueTag, - sysInfoType3 CellValueTag, - sysInfoType4 CellValueTag, - sysInfoType5 CellValueTag, - sysInfoType6 CellValueTag, - sysInfoType7 NULL, - -- dummy, dummy2 and dummy3 are not used in this version of the specification, - -- they should not be sent. If they are received the UE behaviour is not specified. - dummy CellValueTag, - dummy2 NULL, - dummy3 NULL, - sysInfoType11 CellValueTag, - sysInfoType12 CellValueTag, - sysInfoType13 CellValueTag, - sysInfoType13-1 CellValueTag, - sysInfoType13-2 CellValueTag, - sysInfoType13-3 CellValueTag, - sysInfoType13-4 CellValueTag, - sysInfoType14 NULL, - sysInfoType15 CellValueTag, - sysInfoType16 PredefinedConfigIdentityAndValueTag, - sysInfoType17 NULL, - sysInfoTypeSB1 CellValueTag, - sysInfoTypeSB2 CellValueTag, - sysInfoType15-1 CellValueTag, - sysInfoType15-2 SIBOccurrenceIdentityAndValueTag, - sysInfoType15-3 SIBOccurrenceIdentityAndValueTag, - sysInfoType15-4 CellValueTag, - sysInfoType18 CellValueTag, - sysInfoType15-5 CellValueTag, - sysInfoType5bis CellValueTag, - spare2 NULL, - spare1 NULL -} - -SIB-TypeExt ::= CHOICE { - systemInfoType11bis NULL, - systemInfoType15bis NULL, - systemInfoType15-1bis NULL, - systemInfoType15-2bis NULL, - systemInfoType15-3bis NULL, - systemInfoType15-6 NULL, - systemInfoType15-7 NULL, - systemInfoType15-8 NULL -} - -SIB-TypeExt2 ::= CHOICE { - systemInfoType19 NULL, - systemInfoType15-2ter NULL, - systemInfoType20 NULL, - systemInfoType21 NULL, - systemInfoType22 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -SIB-TypeExtGANSS ::= CHOICE { - systemInfoType15-1bis NULL, - systemInfoType15-2bis NULL, - systemInfoType15-2ter NULL, - systemInfoType15-3bis NULL, - systemInfoType15-6 NULL, - systemInfoType15-7 NULL, - systemInfoType15-8 NULL, - spare9 NULL, - spare8 NULL, - spare7 NULL, - spare6 NULL, - spare5 NULL, - spare4 NULL, - spare3 NULL, - spare2 NULL, - spare1 NULL -} - -SibOFF ::= ENUMERATED { - so2, so4, so6, so8, so10, - so12, so14, so16, so18, - so20, so22, so24, so26, - so28, so30, so32 } - -SibOFF-List ::= SEQUENCE (SIZE (1..15)) OF - SibOFF - -SysInfoType1 ::= SEQUENCE { - -- Core network IEs - cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP, - cn-DomainSysInfoList CN-DomainSysInfoList, - -- User equipment IEs - ue-ConnTimersAndConstants UE-ConnTimersAndConstants OPTIONAL, - ue-IdleTimersAndConstants UE-IdleTimersAndConstants OPTIONAL, - -- Extension mechanism for non- release99 information - v3a0NonCriticalExtensions SEQUENCE { - sysInfoType1-v3a0ext SysInfoType1-v3a0ext-IEs, - v860NonCriticalExtentions SEQUENCE { - sysInfoType1-v860ext SysInfoType1-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType1-v3a0ext-IEs ::= SEQUENCE { - ue-ConnTimersAndConstants-v3a0ext UE-ConnTimersAndConstants-v3a0ext, - ue-IdleTimersAndConstants-v3a0ext UE-IdleTimersAndConstants-v3a0ext -} - -SysInfoType1-v860ext-IEs ::= SEQUENCE { - ue-ConnTimersAndConstants UE-ConnTimersAndConstants-v860ext -} - -SysInfoType2 ::= SEQUENCE { - -- UTRAN mobility IEs - ura-IdentityList URA-IdentityList, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType3 ::= SEQUENCE { - sib4indicator BOOLEAN, - -- UTRAN mobility IEs - cellIdentity CellIdentity, - cellSelectReselectInfo CellSelectReselectInfoSIB-3-4, - cellAccessRestriction CellAccessRestriction, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType3-v4b0ext SysInfoType3-v4b0ext-IEs, - v590NonCriticalExtension SEQUENCE { - sysInfoType3-v590ext SysInfoType3-v590ext, - v5c0NoncriticalExtension SEQUENCE { - sysInfoType3-v5c0ext SysInfoType3-v5c0ext-IEs, - v670NonCriticalExtension SEQUENCE { - sysInfoType3-v670ext SysInfoType3-v670ext, - v770NonCriticalExtension SEQUENCE { - sysInfoType3-v770ext SysInfoType3-v770ext-IEs, - v830NonCriticalExtension SEQUENCE { - sysInfoType3-v830ext SysInfoType3-v830ext-IEs, - v860NonCriticalExtension SEQUENCE { - sysInfoType3-v860ext SysInfoType3-v860ext-IEs, - v870NonCriticalExtension SEQUENCE { - sysInfoType3-v870ext SysInfoType3-v870ext-IEs, - v900NonCriticalExtension SEQUENCE { - sysInfoType3-v920ext SysInfoType3-v920ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType3-v4b0ext-IEs ::= SEQUENCE { - mapping-LCR Mapping-LCR-r4 OPTIONAL -} - -SysInfoType3-v590ext ::= SEQUENCE { - cellSelectReselectInfo-v590ext CellSelectReselectInfo-v590ext OPTIONAL -} - -SysInfoType3-v5c0ext-IEs ::= SEQUENCE { - cellSelectReselectInfoTreselectionScaling-v5c0ext - CellSelectReselectInfoTreselectionScaling-v5c0ext OPTIONAL -} - -SysInfoType3-v670ext ::= SEQUENCE { - domainSpecificAccessRestrictionParametersForPLMNOfMIB - DomainSpecificAccessRestrictionParam-v670ext OPTIONAL, - domainSpecificAccessRestictionForSharedNetwork - DomainSpecificAccessRestrictionForSharedNetwork-v670ext OPTIONAL -} - -SysInfoType3-v770ext-IEs ::= SEQUENCE { - deferredMeasurementControlReadingSupport - DeferredMeasurementControlReadingSupport OPTIONAL, - q-QualMin-Offset Q-QualMin-Offset OPTIONAL, - q-RxlevMin-Offset Q-RxlevMin-Offset OPTIONAL, - mbsfnOnlyService MBSFNOnlyService OPTIONAL -} - -SysInfoType3-v830ext-IEs ::= SEQUENCE { - pagingPermissionWithAccessControlParametersForPLMNOfMIB - PagingPermissionWithAccessControlParameters OPTIONAL, - pagingPermissionWithAccessControlParametersForSharedNetwork - PagingPermissionWithAccessControlForSharedNetwork OPTIONAL -} - -SysInfoType3-v860ext-IEs ::= SEQUENCE { - csgIdentity CSG-Identity OPTIONAL, - csg-PSCSplitInfo CSG-PSCSplitInfo OPTIONAL -} - -SysInfoType3-v870ext-IEs ::= SEQUENCE { - cellAccessRestriction CellAccessRestriction-v870ext OPTIONAL -} - -SysInfoType3-v920ext-IEs ::= SEQUENCE { - imsEmergencySupportIndicator ENUMERATED { supported } OPTIONAL -} - -SysInfoType4 ::= SEQUENCE { - -- UTRAN mobility IEs - cellIdentity CellIdentity, - cellSelectReselectInfo CellSelectReselectInfoSIB-3-4, - cellAccessRestriction CellAccessRestriction, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType4-v4b0ext SysInfoType4-v4b0ext-IEs, - v590NonCriticalExtension SEQUENCE { - sysInfoType4-v590ext SysInfoType4-v590ext, - v5b0NonCriticalExtension SEQUENCE { - sysInfoType4-v5b0ext SysInfoType4-v5b0ext-IEs, - v5c0NonCriticalExtension SEQUENCE { - sysInfoType4-v5c0ext SysInfoType4-v5c0ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType4-v4b0ext-IEs ::= SEQUENCE { - mapping-LCR Mapping-LCR-r4 OPTIONAL -} - - -SysInfoType4-v590ext ::= SEQUENCE { - cellSelectReselectInfo-v590ext CellSelectReselectInfo-v590ext OPTIONAL -} - -SysInfoType4-v5b0ext-IEs ::= SEQUENCE { - cellSelectReselectInfoPCHFACH-v5b0ext CellSelectReselectInfoPCHFACH-v5b0ext OPTIONAL -} - -SysInfoType4-v5c0ext-IEs ::= SEQUENCE { - cellSelectReselectInfoTreselectionScaling-v5c0ext - CellSelectReselectInfoTreselectionScaling-v5c0ext OPTIONAL -} - -SysInfoType5 ::= SEQUENCE { - sib6indicator BOOLEAN, - -- Physical channel IEs - pich-PowerOffset PICH-PowerOffset, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - aich-PowerOffset AICH-PowerOffset - }, - tdd SEQUENCE { - -- If PDSCH/PUSCH is configured for 1.28Mcps or 7.68Mcps TDD, the following IEs should be absent - -- and the info included in the respective tdd128SpecificInfo or tdd768SpecificInfo instead. - -- If PDSCH/PUSCH is configured for 3.84Mcps TDD in R5, HCR-r5-SpecificInfo should also be - -- included. - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN OPTIONAL, - openLoopPowerControl-TDD OpenLoopPowerControl-TDD - } - }, - primaryCCPCH-Info PrimaryCCPCH-Info OPTIONAL, - prach-SystemInformationList PRACH-SystemInformationList, - sCCPCH-SystemInformationList SCCPCH-SystemInformationList, - -- cbs-DRX-Level1Information is conditional on any of the CTCH indicator IEs in - -- sCCPCH-SystemInformationList - cbs-DRX-Level1Information CBS-DRX-Level1Information OPTIONAL, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType5-v4b0ext SysInfoType5-v4b0ext-IEs OPTIONAL, - -- Extension mechanism for non- rel-4 information - v590NonCriticalExtensions SEQUENCE { - sysInfoType5-v590ext SysInfoType5-v590ext-IEs OPTIONAL, - v650NonCriticalExtensions SEQUENCE { - sysInfoType5-v650ext SysInfoType5-v650ext-IEs OPTIONAL, - v680NonCriticalExtensions SEQUENCE { - sysInfoType5-v680ext SysInfoType5-v680ext-IEs OPTIONAL, - v690NonCriticalExtensions SEQUENCE { - sysInfoType5-v690ext SysInfoType5-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - sysInfoType5-v770ext SysInfoType5-v770ext-IEs, - v860NonCriticalExtensions SEQUENCE { - sysInfoType5-v860ext SysInfoType5-v860ext-IEs, - v890NonCriticalExtensions SEQUENCE { - sysInfoType5-v890ext SysInfoType5-v890ext-IEs, - v8b0NonCriticalExtensions SEQUENCE { - sysInfoType5-v8b0ext - SysInfoType5-v8b0ext-IEs, - v8d0NonCriticalExtensions SEQUENCE { - sysInfoType5-v8d0ext - SysInfoType5-v8d0ext-IEs, - va40NonCriticalExtensions SEQUENCE { - sysInfoType5-va40ext - SysInfoType5-va40ext-IEs, - va80NonCriticalExtensions SEQUENCE { - sysInfoType5-va80ext SysInfoType5-va80ext-IEs, - vb50NonCriticalExtensions - SysInfoType5-NonCriticalExtensions-vb50-IEs - OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType5-v4b0ext-IEs ::= SEQUENCE { - --The following IE PNBSCH-Allocation-r4 shall be used for 3.84Mcps TDD only. - pNBSCH-Allocation-r4 PNBSCH-Allocation-r4 OPTIONAL, - -- In case of TDD, the following IE is included instead of the - -- IE up-IPDL-Parameter in up-OTDOA-AssistanceData. - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL, --- If SysInfoType5 is sent to describe a 1.28Mcps TDD cell, the IE PRACH-RACH-Info included in --- PRACH-SystemInformationList shall be ignored, the IE PRACH-Partitioning and the --- IE rach-TransportFormatSet shall be absent and the corresponding IE in the following --- PRACH-SystemInformationList-LCR-r4 shall be used - prach-SystemInformationList-LCR-r4 PRACH-SystemInformationList-LCR-r4 OPTIONAL, - tdd128SpecificInfo SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-LCR-r4 OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-LCR-r4 OPTIONAL, - pCCPCH-LCR-Extensions PrimaryCCPCH-Info-LCR-r4-ext OPTIONAL, - sCCPCH-LCR-ExtensionsList SCCPCH-SystemInformationList-LCR-r4-ext - } OPTIONAL, - frequencyBandIndicator RadioFrequencyBandFDD OPTIONAL -} - -SysInfoType5-v590ext-IEs ::= SEQUENCE { - hcr-r5-SpecificInfo SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-HCR-r5 OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-HCR-r5 OPTIONAL - } OPTIONAL -} - -SysInfoType5-v650ext-IEs ::= SEQUENCE { - frequencyBandIndicator2 RadioFrequencyBandFDD2 -} - -SysInfoType5-v680ext-IEs ::= SEQUENCE { - -- TABULAR: HSDPA Cell Indicator is MD in tabular description - -- Default value is 'HSDPA Capability not indicated' - hsdpa-CellIndicator ENUMERATED { hsdpa-CapableCell } OPTIONAL -} - -SysInfoType5-v690ext-IEs ::= SEQUENCE { - -- TABULAR: E-DCH Cell Indicator is MD in tabular description - -- Default value is 'E-DCH Capability not indicated' - edch-CellIndicator ENUMERATED { edch-CapableCell } OPTIONAL, - sccpch-SystemInformation-MBMS CHOICE { - mcchOnSCCPCHusedForNonMBMS MBMS-MCCH-ConfigurationInfo-r6, - mcchOnSCCPCHusedOnlyForMBMS SCCPCH-SystemInformation-MBMS-r6 - } OPTIONAL, - additionalPRACH-TF-and-TFCS-CCCH-List AdditionalPRACH-TF-and-TFCS-CCCH-List OPTIONAL, - cBS-DRX-Level1Information-extension CBS-DRX-Level1Information-extension-r6 OPTIONAL -} - -SysInfoType5-v770ext-IEs ::= SEQUENCE { - modeSpecificInfo CHOICE { - fdd SEQUENCE { - hs-dsch-CommonSystemInformation HS-DSCH-CommonSystemInformation, - hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL - }, - tdd768 SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-VHCR OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-VHCR-r7 OPTIONAL, - -- If SysInfoType5 is sent to configure a 7.68Mcps TDD cell, the 'prach-RACH-Info' in - -- IE PRACH-SystemInformationList shall be ignored, 'prach-Partitioning' shall be absent - -- and the corresponding IE in the following IE PRACH-SystemInformationList-VHCR-r7 - -- shall be used instead. - prach-SystemInformationList PRACH-SystemInformationList-VHCR-r7 OPTIONAL - }, - tdd128 SEQUENCE { - prach-SystemInformationList PRACH-SystemInformationList-LCR-v770ext OPTIONAL - } - } OPTIONAL, - -- If SysInfoType5 is sent to configure a 7.68 Mcps TDD cell (in any mode) or a 3.84 Mcps TDD - -- cell operating in MBSFN mode, IE SCCPCH-SystemInformationList-HCR-VHCR-r7 is used, otherwise - -- IE SCCPCH-SystemInformationList-r6 is used. - sccpch-SystemInformationList SCCPCH-SystemInformationList-HCR-VHCR-r7 OPTIONAL, - sccpch-SystemInformation-MBMS CHOICE { - -- If choice is 'mcchOnSCCPCHusedForNonMBMS', IE MBMS-MCCH-ConfigurationInfo-r6 is used. - -- If choice is 'mcchOnSCCPCHusedOnlyForMBMS', IE MBMS-MCCH-ConfigurationInfo-r7 is used - -- to configure a 7.68Mcps TDD cell or a cell operating in MBSFN mode, otherwise IE - -- SCCPCH-SystemInformation-MBMS-r6 is used. - mcchOnSCCPCHusedOnlyForMBMS SCCPCH-SystemInformation-MBMS-r7 - } OPTIONAL, - tDD-MBSFNInformation TDD-MBSFNInformation OPTIONAL -} - -SysInfoType5-v860ext-IEs ::= SEQUENCE { - -- The field 'dummy' shall be marked absent in SysInfoType5 and SysInfoType5bis. A failure to - -- comply with this requirement may prevent the UE to receive any service in the cell. The UE - -- may treat the cell as barred. - dummy SEQUENCE {} OPTIONAL, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - hs-dsch-DrxCellfach-info HS-DSCH-DrxCellfach-info OPTIONAL - }, - tdd128 SEQUENCE { - hs-dsch-CommonSysInfo SEQUENCE { - hs-dsch-CommonSystemInformation HS-DSCH-CommonSystemInformation-TDD128, - hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation-TDD128 OPTIONAL - } OPTIONAL, - hs-dsch-DrxCellfach-info HS-DSCH-DrxCellfach-info-TDD128 OPTIONAL - } - } -} - -SysInfoType5-v890ext-IEs ::= SEQUENCE { - secondFrequencyInfo FrequencyInfoTDD OPTIONAL, - commonEDCHSystemInfo CommonEDCHSystemInfo OPTIONAL -} - -SysInfoType5-v8b0ext-IEs ::= SEQUENCE { - tresetUsageIndicator ENUMERATED { true } OPTIONAL, - upPCHpositionInfo UpPCHposition-LCR OPTIONAL -} - -SysInfoType5-v8d0ext-IEs ::= SEQUENCE { - commonEDCHSystemInfoFDD CommonEDCHSystemInfoFDD OPTIONAL -} - -SysInfoType5-va40ext-IEs ::= SEQUENCE { - frequencyBandsIndicatorSupport FrequencyBandsIndicatorSupport OPTIONAL, - frequencyBandIndicator3 RadioFrequencyBandFDD3 OPTIONAL -} - -SysInfoType5-va80ext-IEs ::= SEQUENCE { - multipleFrequencyBandIndicatorListFDD MultipleFrequencyBandIndicatorListFDD OPTIONAL -} - -SysInfoType5-NonCriticalExtensions-vb50-IEs::= SEQUENCE { - sysInfoType5-vb50ext SysInfoType5-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType5-vb50ext-IEs ::= SEQUENCE { - sib22indicator BOOLEAN, - cellUpdateMessageOptimisedEncoding ENUMERATED { true } OPTIONAL -} - --- SysInfoType5bis uses the same structure as SysInfoType5 -SysInfoType5bis ::= SysInfoType5 - -SysInfoType6 ::= SEQUENCE { - -- Physical channel IEs - pich-PowerOffset PICH-PowerOffset, - modeSpecificInfo CHOICE { - fdd SEQUENCE { - aich-PowerOffset AICH-PowerOffset, - -- dummy is not used in this version of specification, it should - -- not be sent and if received it should be ignored. - dummy CSICH-PowerOffset OPTIONAL - }, - tdd SEQUENCE { - -- If PDSCH/PUSCH is configured for 1.28Mcps TDD, pusch-SysInfoList-SFN, - -- pdsch-SysInfoList-SFN and openLoopPowerControl-TDD should be absent - -- and the info included in the tdd128SpecificInfo instead. - -- If PDSCH/PUSCH is configured for 7.68Mcps TDD, pusch-SysInfoList-SFN - -- and pdsch-SysInfoList-SFN should be absent and the info included in the - -- tdd768SpecificInfo instead. - -- If PDSCH/PUSCH is configured for 3.84Mcps TDD in R5, HCR-r5-SpecificInfo should - -- also be included. - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN OPTIONAL, - openLoopPowerControl-TDD OpenLoopPowerControl-TDD - } - }, - primaryCCPCH-Info PrimaryCCPCH-Info OPTIONAL, - prach-SystemInformationList PRACH-SystemInformationList OPTIONAL, - sCCPCH-SystemInformationList SCCPCH-SystemInformationList OPTIONAL, - cbs-DRX-Level1Information CBS-DRX-Level1Information OPTIONAL, - -- Conditional on any of the CTCH indicator IEs in - -- sCCPCH-SystemInformationList - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType6-v4b0ext SysInfoType6-v4b0ext-IEs OPTIONAL, - -- Extension mechanism for non- rel-4 information - v590NonCriticalExtensions SEQUENCE { - sysInfoType6-v590ext SysInfoType6-v590ext-IEs OPTIONAL, - v650nonCriticalExtensions SEQUENCE { - sysInfoType6-v650ext SysInfoType6-v650ext-IEs OPTIONAL, - v690nonCriticalExtensions SEQUENCE { - sysInfoType6-v690ext SysInfoType6-v690ext-IEs, - v770NonCriticalExtensions SEQUENCE { - sysInfoType6-v770ext SysInfoType6-v770ext-IEs, - va40NonCriticalExtensions SEQUENCE { - sysInfoType6-va40ext SysInfoType6-va40ext-IEs, - va80NonCriticalExtensions SEQUENCE { - sysInfoType6-va80ext SysInfoType6-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType6-v4b0ext-IEs ::= SEQUENCE { - -- openLoopPowerControl-IPDL-TDD is present only if IPDLs are applied for TDD - openLoopPowerControl-IPDL-TDD OpenLoopPowerControl-IPDL-TDD-r4 OPTIONAL, - -- If SysInfoType6 is sent to describe a 1.28Mcps TDD cell, the IE PRACH-RACH-Info included - -- in PRACH-SystemInformationList shall be ignored, the IE PRACH-Partitioning and the - -- IE rach-TransportFormatSet shall be absent and the corresponding IEs in the following - -- PRACH-SystemInformationList-LCR-r4 shall be used - prach-SystemInformationList-LCR-r4 PRACH-SystemInformationList-LCR-r4 OPTIONAL, - tdd128SpecificInfo SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-LCR-r4 OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-LCR-r4 OPTIONAL, - pCCPCH-LCR-Extensions PrimaryCCPCH-Info-LCR-r4-ext OPTIONAL, - sCCPCH-LCR-ExtensionsList SCCPCH-SystemInformationList-LCR-r4-ext OPTIONAL - } OPTIONAL, - frequencyBandIndicator RadioFrequencyBandFDD OPTIONAL -} - -SysInfoType6-v590ext-IEs ::= SEQUENCE { - hcr-r5-SpecificInfo SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-HCR-r5 OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-SFN-HCR-r5 OPTIONAL - } OPTIONAL -} - -SysInfoType6-v650ext-IEs ::= SEQUENCE { - frequencyBandIndicator2 RadioFrequencyBandFDD2 -} - -SysInfoType6-v690ext-IEs ::= SEQUENCE { - additionalPRACH-TF-and-TFCS-CCCH-List AdditionalPRACH-TF-and-TFCS-CCCH-List OPTIONAL -} - -SysInfoType6-v770ext-IEs ::= SEQUENCE { - tdd768SpecificInfo SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-VHCR OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-VHCR-r7 OPTIONAL, - -- If SysInfoType6 is sent to configure a 7.68Mcps TDD cell, the 'prach-RACH-Info' in - -- IE PRACH-SystemInformationList shall be ignored, 'prach-Partitioning' shall be absent - -- and the corresponding IE in the following IE PRACH-SystemInformationList-VHCR-r7 - -- shall be used instead. - prach-SystemInformationList PRACH-SystemInformationList-VHCR-r7 OPTIONAL - } OPTIONAL, - -- If SysInfoType6 is sent to configure a 7.68 Mcps TDD cell, - -- IE SCCPCH-SystemInformationList-HCR-VHCR-r7 is used, otherwise - -- IE SCCPCH-SystemInformationList-r6 is used. - sccpch-SystemInformationList SCCPCH-SystemInformationList-HCR-VHCR-r7 OPTIONAL -} - -SysInfoType6-va40ext-IEs ::= SEQUENCE { - frequencyBandIndicator3 RadioFrequencyBandFDD3 OPTIONAL -} - -SysInfoType6-va80ext-IEs ::= SEQUENCE { - multipleFrequencyBandIndicatorListFDD MultipleFrequencyBandIndicatorListFDD OPTIONAL -} - -SysInfoType7 ::= SEQUENCE { - -- Physical channel IEs - modeSpecificInfo CHOICE { - fdd SEQUENCE { - ul-Interference UL-Interference - }, - tdd NULL - }, - prach-Information-SIB5-List DynamicPersistenceLevelList, - prach-Information-SIB6-List DynamicPersistenceLevelList OPTIONAL, - expirationTimeFactor ExpirationTimeFactor OPTIONAL, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - --- This IE is not used in this version of the specification. --- It was kept only for backwards compatibility reasons -SysInfoType8 ::= SEQUENCE { - -- User equipment IEs - -- dummy1, dummy2, dummy3 are not used in this version of the specification and - -- they should be ignored by the receiver. - dummy1 CPCH-Parameters, - -- Physical channel IEs - dummy2 CPCH-SetInfoList, - dummy3 CSICH-PowerOffset, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - --- This IE is not used in this version of the specification. --- It was kept only for backwards compatibility reasons -SysInfoType9 ::= SEQUENCE { - -- Physical channel IEs - -- dummy is not used in this version of the specification and - -- it should be ignored by the receiver. - dummy CPCH-PersistenceLevelsList, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - --- This IE is not used in this version of the specification. --- It was kept only for backwards compatibility reasons -SysInfoType10 ::= SEQUENCE { - -- User equipment IEs - -- dummy is not used in this version of the specification, it should - -- not be sent and if received it should be ignored. - dummy DRAC-SysInfoList, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType11 ::= SEQUENCE { - sib12indicator BOOLEAN, - -- Measurement IEs - fach-MeasurementOccasionInfo FACH-MeasurementOccasionInfo OPTIONAL, - measurementControlSysInfo MeasurementControlSysInfo, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType11-v4b0ext SysInfoType11-v4b0ext-IEs OPTIONAL, - v590NonCriticalExtension SEQUENCE { - sysInfoType11-v590ext SysInfoType11-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - sysInfoType11-v690ext SysInfoType11-v690ext-IEs, - v6b0NonCriticalExtensions SEQUENCE { - sysInfoType11-v6b0ext SysInfoType11-v6b0ext-IEs, - v770NonCriticalExtensions SEQUENCE { - sysInfoType11-v770ext SysInfoType11-v770ext-IEs, - v7b0NonCriticalExtensions SEQUENCE { - sysInfoType11-v7b0ext SysInfoType11-v7b0ext-IEs, - v860NonCriticalExtensions SEQUENCE { - sysInfoType11-v860ext SysInfoType11-v860ext-IEs, - va80NonCriticalExtensions SEQUENCE { - sysInfoType11-va80ext SysInfoType11-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType11-v4b0ext-IEs ::= SEQUENCE { - fach-MeasurementOccasionInfo-LCR-Ext FACH-MeasurementOccasionInfo-LCR-r4-ext OPTIONAL, - measurementControlSysInfo-LCR MeasurementControlSysInfo-LCR-r4-ext -} - -SysInfoType11-v590ext-IEs ::= SEQUENCE { - --The order of the list corresponds to the order of cell in newIntraFrequencyCellInfoList - newIntraFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - --The order of the list corresponds to the order of cell in newInterFrequencyCellInfoList - newInterFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - --The order of the list corresponds to the order of cell in newInterRATCellInfoList - newInterRATCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - intraFreqEventCriteriaList-v590ext Intra-FreqEventCriteriaList-v590ext OPTIONAL, - intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL, - intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL -} - -SysInfoType11-v690ext-IEs ::= SEQUENCE { - -- dummy is not used in this version of the specification. If received, the UE behaviour - -- is not specified. - dummy Dummy-InterFreqRACHReportingInfo OPTIONAL -} - -SysInfoType11-v6b0ext-IEs ::= SEQUENCE { - -- Measurement IEs - interFreqRACHReportingInfo InterFreqRACHReportingInfo OPTIONAL -} - -SysInfoType11-v770ext-IEs ::= SEQUENCE { - -- Measurement IEs - mbsfnFrequencyList MBSFNFrequencyList OPTIONAL -} - -SysInfoType11-v7b0ext-IEs ::= SEQUENCE { - -- Measurement IEs - newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL -} - -SysInfoType11-v860ext-IEs ::= SEQUENCE { - -- Measurement IEs - mbsfnFrequencyList MBSFNFrequencyList-v860ext OPTIONAL -} - -SysInfoType11-va80ext-IEs ::= SEQUENCE { - -- Measurement IEs - multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL -} - -SysInfoType11bis ::= SEQUENCE { - -- Measurement IEs - measurementControlSysInfo MeasurementControlSysInfoExtension OPTIONAL, - measurementControlSysInfo-LCR MeasurementControlSysInfoExtension-LCR-r4 OPTIONAL, - measurementControlSysInfoExtensionAddon-r5 - MeasurementControlSysInfoExtensionAddon-r5 OPTIONAL, - -- Extension mechanism for non-release99 information - v7b0NonCriticalExtensions SEQUENCE { - sysInfoType11bis-v7b0ext SysInfoType11bis-v7b0ext-IEs, - v860NonCriticalExtensions SEQUENCE { - sysInfoType11bis-v860ext SysInfoType11bis-v860ext-IEs, - va80NonCriticalExtensions SEQUENCE { - sysInfoType11bis-va80ext SysInfoType11bis-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType11bis-v7b0ext-IEs ::= SEQUENCE { - -- Measurement IEs - newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL -} - -SysInfoType11bis-v860ext-IEs ::= SEQUENCE { - -- UTRAN mobility IEs - csg-PSCSplitInfo CSG-PSCSplitInfo OPTIONAL, - csg-DedicatedFrequencyInfoList CSG-DedicatedFrequencyInfoList OPTIONAL -} - -SysInfoType11bis-va80ext-IEs ::= SEQUENCE { - -- Measurement IEs - multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL -} - -SysInfoType12 ::= SEQUENCE { - -- Measurement IEs - fach-MeasurementOccasionInfo FACH-MeasurementOccasionInfo OPTIONAL, - measurementControlSysInfo MeasurementControlSysInfo, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType12-v4b0ext SysInfoType12-v4b0ext-IEs OPTIONAL, - v590NonCriticalExtension SEQUENCE { - sysInfoType12-v590ext SysInfoType12-v590ext-IEs, - v690NonCriticalExtensions SEQUENCE { - sysInfoType12-v690ext SysInfoType12-v690ext-IEs, - v6b0NonCriticalExtensions SEQUENCE { - sysInfoType12-v6b0ext SysInfoType12-v6b0ext-IEs, - v7b0NonCriticalExtensions SEQUENCE { - sysInfoType12-v7b0ext SysInfoType12-v7b0ext-IEs, - va80NonCriticalExtensions SEQUENCE { - sysInfoType12-va80ext SysInfoType12-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType12-v4b0ext-IEs ::= SEQUENCE { - fach-MeasurementOccasionInfo-LCR-Ext FACH-MeasurementOccasionInfo-LCR-r4-ext OPTIONAL, - measurementControlSysInfo-LCR MeasurementControlSysInfo-LCR-r4-ext -} - -SysInfoType12-v590ext-IEs ::= SEQUENCE { - --The order of the list corresponds to the order of cell in newIntraFrequencyCellInfoList - newIntraFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - --The order of the list corresponds to the order of cell in newInterFrequencyCellInfoList - newInterFrequencyCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - --The order of the list corresponds to the order of cell in newInterRATCellInfoList - newInterRATCellInfoList-v590ext SEQUENCE (SIZE (1..maxCellMeas)) OF - CellSelectReselectInfo-v590ext OPTIONAL, - intraFreqEventCriteriaList-v590ext Intra-FreqEventCriteriaList-v590ext OPTIONAL, - intraFreqReportingCriteria-1b-r5 IntraFreqReportingCriteria-1b-r5 OPTIONAL, - intraFreqEvent-1d-r5 IntraFreqEvent-1d-r5 OPTIONAL -} - -SysInfoType12-v690ext-IEs ::= SEQUENCE { - -- dummy is not used in this version of the specification. If received, the UE behaviour - -- is not specified. - dummy Dummy-InterFreqRACHReportingInfo OPTIONAL -} - -SysInfoType12-v6b0ext-IEs ::= SEQUENCE { - -- Measurement IEs - interFreqRACHReportingInfo InterFreqRACHReportingInfo OPTIONAL -} - -SysInfoType12-v7b0ext-IEs ::= SEQUENCE { - -- Measurement IEs - newInterFreqCellList NewInterFreqCellList-v7b0ext OPTIONAL -} - -SysInfoType12-va80ext-IEs ::= SEQUENCE { - -- Measurement IEs - multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL -} - -SysInfoType13 ::= SEQUENCE { - -- Core network IEs - cn-DomainSysInfoList CN-DomainSysInfoList, - -- User equipment IEs - ue-IdleTimersAndConstants UE-IdleTimersAndConstants OPTIONAL, - capabilityUpdateRequirement CapabilityUpdateRequirement OPTIONAL, - -- Extension mechanism for non- release99 information - v3a0NonCriticalExtensions SEQUENCE { - sysInfoType13-v3a0ext SysInfoType13-v3a0ext-IEs, - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType13-v4b0ext SysInfoType13-v4b0ext-IEs, - -- Extension mechanism for non- release99 information - v770NonCriticalExtensions SEQUENCE { - sysInfoType13-v770ext SysInfoType13-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType13-v3a0ext-IEs ::= SEQUENCE { - ue-IdleTimersAndConstants-v3a0ext UE-IdleTimersAndConstants-v3a0ext -} - -SysInfoType13-v4b0ext-IEs ::= SEQUENCE { - capabilityUpdateRequirement-r4Ext CapabilityUpdateRequirement-r4-ext OPTIONAL -} - -SysInfoType13-v770ext-IEs ::= SEQUENCE { - capabilityUpdateRequirement CapabilityUpdateRequirement-v770ext OPTIONAL -} - -SysInfoType13-1 ::= SEQUENCE { - -- ANSI-41 IEs - ansi-41-RAND-Information ANSI-41-RAND-Information, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType13-2 ::= SEQUENCE { - -- ANSI-41 IEs - ansi-41-UserZoneID-Information ANSI-41-UserZoneID-Information, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType13-3 ::= SEQUENCE { - -- ANSI-41 IEs - ansi-41-PrivateNeighbourListInfo ANSI-41-PrivateNeighbourListInfo, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType13-4 ::= SEQUENCE { - -- ANSI-41 IEs - ansi-41-GlobalServiceRedirectInfo - ANSI-41-GlobalServiceRedirectInfo, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType14 ::= SEQUENCE { - -- Physical channel IEs - individualTS-InterferenceList IndividualTS-InterferenceList, - expirationTimeFactor ExpirationTimeFactor OPTIONAL, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType15 ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GPS-CipherParameters UE-Positioning-CipherParameters OPTIONAL, - ue-positioning-GPS-ReferenceLocation ReferenceLocation, - ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime, - ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType15-v4b0ext SysInfoType15-v4b0ext-IEs, - -- Extension mechanism for non- release4 information - v770NonCriticalExtensions SEQUENCE { - sysInfoType15-v770ext SysInfoType15-v770ext-IEs, - va40NonCriticalExtensions SEQUENCE { - sysInfoType15-va40ext SysInfoType15-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType15-v4b0ext-IEs ::= SEQUENCE { - up-Ipdl-Parameters-TDD UE-Positioning-IPDL-Parameters-TDD-r4-ext OPTIONAL -} - -SysInfoType15-v770ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-Positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-v770ext -} - -SysInfoType15-va40ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-Positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-va40ext -} - -SysInfoType15bis ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-ReferencePosition ReferenceLocationGANSS, - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime, - ue-positioning-GANSS-IonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, - -- Extension mechanism for non-release99 information - v860NonCriticalExtensions SEQUENCE { - sysInfoType15bis-v860ext SysInfoType15bis-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - sysInfoType15bis-va40ext SysInfoType15bis-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType15bis-v860ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-Positioning-GANSS-AddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL, - ue-Positioning-GANSS-EarthOrientationPara - UE-Positioning-GANSS-EarthOrientPara OPTIONAL -} - -SysInfoType15bis-va40ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-va40ext -} - -SysInfoType15-1 ::= SEQUENCE { - -- DGPS corrections - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections, - -- Extension mechanism for non- release99 information - v920NonCriticalExtensions SEQUENCE { - sysInfoType15-1-v920ext SysInfoType15-1-v920ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -SysInfoType15-1-v920ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-v920ext -} - -SysInfoType15-1bis ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-DGANSS-Corrections UE-Positioning-DGANSSCorrections, - -- Extension mechanism for non-release99 information - v920NonCriticalExtensions SEQUENCE { - sysInfoType15-1bis-v920ext SysInfoType15-1bis-v920ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -SysInfoType15-1bis-v920ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-DGANSS-Corrections UE-Positioning-DGANSSCorrections-v920ext -} - -SysInfoType15-2 ::= SEQUENCE { - -- Ephemeris and clock corrections - transmissionTOW GPS-TOW-1sec, - satID SatID, - ephemerisParameter EphemerisParameter, - -- Extension mechanism for non- release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType15-2bis ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-navigationModel UE-Positioning-GANSS-NavigationModel, - -- Extension mechanism for non-release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType15-2ter ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-AddNavigationModels UE-Positioning-GANSS-AddNavigationModels, - -- Extension mechanism for non-release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType15-3 ::= SEQUENCE { - -- Almanac and other data - transmissionTOW GPS-TOW-1sec, - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac OPTIONAL, - ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL, - ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL, - satMask BIT STRING (SIZE (1..32)) OPTIONAL, - lsbTOW BIT STRING (SIZE (8)) OPTIONAL, - -- Extension mechanism for non- release99 information - va40NonCriticalExtensions SEQUENCE { - sysInfoType15-3-va40ext SysInfoType15-3-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -SysInfoType15-3-va40ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-va40ext OPTIONAL -} - -SysInfoType15-3bis ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac OPTIONAL, - ue-positioning-GANSS-TimeModels UE-Positioning-GANSS-TimeModels OPTIONAL, - ue-positioning-GANSS-UTC-Model UE-Positioning-GANSS-UTCModel OPTIONAL, - -- Extension mechanism for non-release99 information - v860NonCriticalExtensions SEQUENCE { - sysInfoType15-3bis-v860ext SysInfoType15-3bis-v860ext-IEs, - va40NonCriticalExtensions SEQUENCE { - sysInfoType15-3bis-va40ext SysInfoType15-3bis-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType15-3bis-v860ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-v860ext OPTIONAL, - ue-Positioning-GANSS-AddUTCModels UE-Positioning-GANSS-AddUTCModels OPTIONAL, - ue-Positioning-GANSS-AuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL -} - -SysInfoType15-3bis-va40ext-IEs ::= SEQUENCE { - -- Measurement IEs - ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-va40ext OPTIONAL, - ue-positioning-GANSS-TimeModels UE-Positioning-GANSS-TimeModels-va40ext OPTIONAL -} - -SysInfoType15-4 ::= SEQUENCE { - -- Measurement IEs - ue-positioning-OTDOA-CipherParameters UE-Positioning-CipherParameters OPTIONAL, - ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData, - v3a0NonCriticalExtensions SEQUENCE { - sysInfoType15-4-v3a0ext SysInfoType15-4-v3a0ext, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType15-4-v4b0ext SysInfoType15-4-v4b0ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType15-4-v3a0ext ::= SEQUENCE { - sfn-Offset-Validity SFN-Offset-Validity OPTIONAL -} - -SysInfoType15-4-v4b0ext ::= SEQUENCE { - ue-Positioning-OTDOA-AssistanceData-r4ext UE-Positioning-OTDOA-AssistanceData-r4ext OPTIONAL -} - -SysInfoType15-5 ::= SEQUENCE { - -- Measurement IEs - ue-positioning-OTDOA-AssistanceData-UEB UE-Positioning-OTDOA-AssistanceData-UEB, - v3a0NonCriticalExtensions SEQUENCE { - sysInfoType15-5-v3a0ext SysInfoType15-5-v3a0ext, - -- Extension mechanism for non- release99 information - v770NonCriticalExtensions SEQUENCE { - sysInfoType15-5-v770ext SysInfoType15-5-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType15-5-v3a0ext ::= SEQUENCE { - sfn-Offset-Validity SFN-Offset-Validity OPTIONAL -} - -SysInfoType15-5-v770ext-IEs ::= SEQUENCE { - ue-Positioning-OTDOA-AssistanceData-UEB-ext - UE-Positioning-OTDOA-AssistanceData-UEB-ext OPTIONAL -} - -SysInfoType15-6 ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-TOD INTEGER (0..86399), - ue-positioning-GANSS-ReferenceMeasurementInformation - UE-Positioning-GANSS-ReferenceMeasurementInfo, - -- Extension mechanism for non-release99 information - va40NonCriticalExtensions SEQUENCE { - sysInfoType15-6-va40ext SysInfoType15-6-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL -} - -SysInfoType15-6-va40ext-IEs ::= SEQUENCE { - ue-positioning-GANSS-ReferenceMeasurementInformation - UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext -} - -SysInfoType15-7 ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-DataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance, - -- Extension mechanism for non-release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType15-8 ::= SEQUENCE { - -- Measurement IEs - ue-positioning-GANSS-DataCipheringInfo UE-Positioning-CipherParameters OPTIONAL, - ue-positioning-GANSS-realTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL, - -- Extension mechanism for non-release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType16 ::= SEQUENCE { - -- Radio bearer IEs - preDefinedRadioConfiguration PreDefRadioConfiguration, - -- Extension mechanism for non- release99 information - v770NonCriticalExtensions SEQUENCE { - sysInfoType16-v770ext SysInfoType16-v770ext-IEs, - v920NonCriticalExtensions SEQUENCE { - sysInfoType16-v920ext SysInfoType16-v920ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType16-v770ext-IEs ::= SEQUENCE { - preDefinedRadioConfiguration PreDefRadioConfiguration-v770ext -} - -SysInfoType16-v920ext-IEs ::= SEQUENCE { - preDefinedRadioConfiguration PreDefRadioConfiguration-v920ext -} - -SysInfoType17 ::= SEQUENCE { - -- Physical channel IEs - -- If PDSCH/PUSCH is configured for 1.28Mcps or 7.68Mcps TDD, pusch-SysInfoList and - -- pdsch-SysInfoList should be absent and the info included in the respective - -- tdd128SpecificInfo or tdd768SpecificInfo instead. - -- If PDSCH/PUSCH is configured for 3.84Mcps TDD in R5, HCR-r5-SpecificInfo should also be - -- included. - pusch-SysInfoList PUSCH-SysInfoList OPTIONAL, - pdsch-SysInfoList PDSCH-SysInfoList OPTIONAL, - -- Extension mechanism for non- release99 information - v4b0NonCriticalExtensions SEQUENCE { - sysInfoType17-v4b0ext SysInfoType17-v4b0ext-IEs, - v590NonCriticalExtensions SEQUENCE { - sysInfoType17-v590ext SysInfoType17-v590ext-IEs OPTIONAL, - v770NonCriticalExtensions SEQUENCE { - sysInfoType17-v770ext SysInfoType17-v770ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType17-v4b0ext-IEs ::= SEQUENCE { - tdd128SpecificInfo SEQUENCE { - pusch-SysInfoList PUSCH-SysInfoList-LCR-r4 OPTIONAL, - pdsch-SysInfoList PDSCH-SysInfoList-LCR-r4 OPTIONAL - } OPTIONAL -} - -SysInfoType17-v590ext-IEs ::= SEQUENCE { - hcr-r5-SpecificInfo SEQUENCE { - pusch-SysInfoList PUSCH-SysInfoList-HCR-r5 OPTIONAL, - pdsch-SysInfoList PDSCH-SysInfoList-HCR-r5 OPTIONAL - } OPTIONAL -} - -SysInfoType17-v770ext-IEs ::= SEQUENCE { - tdd768SpecificInfo SEQUENCE { - pusch-SysInfoList-SFN PUSCH-SysInfoList-SFN-VHCR OPTIONAL, - pdsch-SysInfoList-SFN PDSCH-SysInfoList-VHCR-r7 OPTIONAL - } OPTIONAL -} - -SysInfoType18 ::= SEQUENCE { - idleModePLMNIdentities PLMNIdentitiesOfNeighbourCells OPTIONAL, - connectedModePLMNIdentities PLMNIdentitiesOfNeighbourCells OPTIONAL, - -- Extension mechanism for non- release99 information - v6b0NonCriticalExtensions SEQUENCE { - sysInfoType18-v6b0ext SysInfoType18-v6b0ext, - v860NonCriticalExtensions SEQUENCE { - sysInfoType18-v860ext SysInfoType18-v860ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType18-v6b0ext ::= SEQUENCE { - idleModePLMNIdentitiesSIB11bis PLMNIdentitiesOfNeighbourCells OPTIONAL, - connectedModePLMNIdentitiesSIB11bis PLMNIdentitiesOfNeighbourCells OPTIONAL -} - -SysInfoType18-v860ext ::= SEQUENCE { - idleModePLMNIdentities PLMNIdentitiesOfNeighbourCells-v860ext OPTIONAL, - connectedModePLMNIdentities PLMNIdentitiesOfNeighbourCells-v860ext OPTIONAL -} - -SysInfoType19 ::= SEQUENCE { - -- Measurement IEs - utra-PriorityInfoList UTRA-PriorityInfoList, - gsm-PriorityInfoList GSM-PriorityInfoList OPTIONAL, - eutra-FrequencyAndPriorityInfoList EUTRA-FrequencyAndPriorityInfoList OPTIONAL, - -- Extension mechanism for non-release8 information - v920NonCriticalExtensions SEQUENCE { - sysInfoType19-v920ext SysInfoType19-v920ext, - va80NonCriticalExtensions SEQUENCE { - sysInfoType19-va80ext SysInfoType19-va80ext, - vb30NonCriticalExtensions SEQUENCE { - sysInfoType19-vb30ext SysInfoType19-vb30ext, - vb50NonCriticalExtensions SEQUENCE { - sysInfoType19-vb50ext SysInfoType19-vb50ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoType19-v920ext ::= SEQUENCE { - utra-PriorityInfoList-v920ext UTRA-PriorityInfoList-v920ext, - eutra-FrequencyAndPriorityInfoList-v920ext EUTRA-FrequencyAndPriorityInfoList-v920ext -} - -SysInfoType19-va80ext ::= SEQUENCE { - multipleEutraFrequencyInfoList MultipleEUTRAFrequencyInfoList OPTIONAL -} - -SysInfoType19-vb30ext ::= SEQUENCE { - cell-fach-meas-ind ENUMERATED { high-priority-layers, all-layers } OPTIONAL -} - -SysInfoType19-vb50ext ::= SEQUENCE { - gsmTreselectionScalingFactor TreselectionScalingFactor2 OPTIONAL, - eutraTreselectionScalingFactor TreselectionScalingFactor2 OPTIONAL, - numberOfApplicableEARFCN INTEGER (0..7) OPTIONAL, - eutra-FrequencyAndPriorityInfoList-vb50ext EUTRA-FrequencyAndPriorityInfoList-vb50ext OPTIONAL, - eutra-FrequencyAndPriorityInfoExtensionList EUTRA-FrequencyAndPriorityInfoExtensionList OPTIONAL, - multipleEutraFrequencyInfoExtensionList MultipleEUTRAFrequencyInfoExtensionList OPTIONAL, - -- Measurement IEs - eutra-FrequencyRACHReportingInfo EUTRA-FrequencyRACHReportingInfo OPTIONAL -} - -SysInfoType20 ::= SEQUENCE { - hNBName HNBName OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType21 ::= SEQUENCE { - eab-Parameters EAB-Parameters OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoType22 ::= SEQUENCE { --- In the Tabular there are separate definitions for prach-PreambleForEnhancedUplinkListType1Ext --- and prach-PreambleForEnhancedUplinkListType2Ext/prach-PreambleForEnhancedUplinkListType3Ext even --- though the contents are the same. The only difference is in how the IE “Weight” is used in --- calculating the weight for each signalled PRACH Control Parameters. --- To simplify the ASN.1, a single definition is used here for all three cases. - prach-PreambleForEnhancedUplinkListType1Ext - PRACH-PreambleForEnhancedUplinkExtList OPTIONAL, - prach-PreambleForEnhancedUplinkListType2Ext - PRACH-PreambleForEnhancedUplinkExtList OPTIONAL, - prach-PreambleForEnhancedUplinkListType3Ext - PRACH-PreambleForEnhancedUplinkExtList OPTIONAL, - concurrent-Deployment-2ms-10ms-TTI Concurrent-Deployment-2ms-10ms-TTI OPTIONAL, - nodeB-Trigger-HS-DPCCH-Transmission NodeB-Trigger-HS-DPCCH-Transmission OPTIONAL, - fallback-R99-PRACH-info Fallback-R99-PRACH-info-IEs OPTIONAL, - commonEDCHResourceConfigInfoListExt CommonEDCHResourceConfigInfoListExt OPTIONAL, - hs-dsch-DrxCellfach-SecondDrx-info HS-DSCH-DrxCellfach-SecondDrx-info OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL -} - -SysInfoTypeSB1 ::= SEQUENCE { - -- Other IEs - sib-ReferenceList SIB-ReferenceList, - -- Extension mechanism for non- release99 information - v6b0NonCriticalExtensions SEQUENCE { - sysInfoTypeSB1-v6b0ext SysInfoTypeSB1-v6b0ext, - v860NonCriticalExtensions SEQUENCE { - sysInfoTypeSB1-v860ext SysInfoTypeSB1-v860ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoTypeSB1-v6b0ext ::= SEQUENCE { - extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List OPTIONAL -} - -SysInfoTypeSB1-v860ext ::= SEQUENCE { - extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List2 OPTIONAL, - extGANSS-SIBTypeInfoSchedulingInfoList - ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL -} - -SysInfoTypeSB2 ::= SEQUENCE { - -- Other IEs - sib-ReferenceList SIB-ReferenceList, - -- Extension mechanism for non- release99 information - v6b0NonCriticalExtensions SEQUENCE { - sysInfoTypeSB2-v6b0ext SysInfoTypeSB2-v6b0ext, - v860NonCriticalExtensions SEQUENCE { - sysInfoTypeSB2-v860ext SysInfoTypeSB2-v860ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL -} - -SysInfoTypeSB2-v6b0ext ::= SEQUENCE { - extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List OPTIONAL -} - -SysInfoTypeSB2-v860ext ::= SEQUENCE { - extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List2 OPTIONAL, - extGANSS-SIBTypeInfoSchedulingInfoList - ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL -} - -TDD-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF - FrequencyInfoTDD - -UE-HistoryInformation ::= SEQUENCE { - ue-InactivityPeriod INTEGER (1..120), - ueMobilityStateIndicator High-MobilityDetected OPTIONAL, - ul-dataVolumeHistory DataVolumeHistory OPTIONAL, - dl-dataVolumeHistory DataVolumeHistory OPTIONAL -} - --- For systemInformationBlockType11bis the Value Tag Info "CellValueTag" is used -ValueTagInfo ::= CHOICE { - none NULL, - cellValueTag CellValueTag, - plmn-ValueTag PLMN-ValueTag, - sIBOccurrenceIdentityAndValueTag SIBOccurrenceIdentityAndValueTag -} - --- *************************************************** --- --- ANSI-41 INFORMATION ELEMENTS (10.3.9) --- --- *************************************************** - -ANSI-41-GlobalServiceRedirectInfo ::= ANSI-41-NAS-Parameter -ANSI-41-PrivateNeighbourListInfo ::= ANSI-41-NAS-Parameter -ANSI-41-RAND-Information ::= ANSI-41-NAS-Parameter -ANSI-41-UserZoneID-Information ::= ANSI-41-NAS-Parameter -ANSI-41-NAS-Parameter ::= BIT STRING (SIZE (1..2048)) - -Min-P-REV ::= BIT STRING (SIZE (8)) - -NAS-SystemInformationANSI-41 ::= ANSI-41-NAS-Parameter -NID ::= BIT STRING (SIZE (16)) - -P-REV ::= BIT STRING (SIZE (8)) - -SID ::= BIT STRING (SIZE (15)) - --- *************************************************** --- --- MBMS INFORMATION ELEMENTS (10.3.9a) --- --- *************************************************** - -MBMS-AccessProbabilityFactor ::= ENUMERATED { - apf0, apf32, apf64, apf96, apf128, apf160, apf192, - apf224, apf256, apf288, apf320, apf352, apf384, apf416, - apf448, apf480, apf512, apf544, apf576, apf608, apf640, - apf672, apf704, apf736, apf768, apf800, apf832, apf864, - apf896, apf928, apf960, apf1000 } - -MBMS-CellGroupIdentity-r6 ::= BIT STRING (SIZE (12)) - -MBMS-CommonCCTrChIdentity ::= INTEGER (1..32) - -MBMS-CommonPhyChIdentity ::= INTEGER (1..32) - -MBMS-CommonRBIdentity ::= INTEGER (1..32) - -MBMS-CommonRBInformation-r6 ::= SEQUENCE { - commonRBIdentity MBMS-CommonRBIdentity, - pdcp-Info PDCP-Info-r4, - rlc-Info RLC-Info-MTCH-r6 -} - -MBMS-CommonRBInformationList-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonRB)) OF - MBMS-CommonRBInformation-r6 - -MBMS-CommonTrChIdentity ::= INTEGER (1..32) - -MBMS-ConnectedModeCountingScope ::= SEQUENCE { - countingForUraPCH BOOLEAN, - countingForCellPCH BOOLEAN, - countingForCellFACH BOOLEAN -} - -MBMS-CurrentCell-SCCPCH-r6 ::= SEQUENCE { - sccpchIdentity MBMS-SCCPCHIdentity OPTIONAL, - secondaryCCPCH-Info MBMS-CommonPhyChIdentity, - softComb-TimingOffset MBMS-SoftComb-TimingOffset OPTIONAL, - -- If the IE transpCh-InfoCommonForAllTrCh is absent, the default TFCS as specified - -- in 14.10.1 applies - transpCh-InfoCommonForAllTrCh MBMS-CommonCCTrChIdentity OPTIONAL, - transpCHInformation MBMS-TrCHInformation-CurrList -} - -MBMS-CurrentCell-SCCPCHList-r6 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - MBMS-CurrentCell-SCCPCH-r6 - -MBMS-FACHCarryingMTCH-List ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF - TransportFormatSet - -MBMS-JoinedInformation-r6 ::= SEQUENCE { - p-TMSI P-TMSI-GSM-MAP OPTIONAL -} - -MBMS-L1CombiningSchedule-32 ::= SEQUENCE { - -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4 - cycleOffset INTEGER (0..7) OPTIONAL, - mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE { - periodStart INTEGER (0..7), - periodDuration INTEGER (1..8) - } -} - -MBMS-L1CombiningSchedule-64 ::= SEQUENCE { - -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4 - cycleOffset INTEGER (0..15) OPTIONAL, - mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE { - periodStart INTEGER (0..15), - periodDuration INTEGER (1..16) - } -} - -MBMS-L1CombiningSchedule-128 ::= SEQUENCE { - -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4 - cycleOffset INTEGER (0..31) OPTIONAL, - mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE { - periodStart INTEGER (0..31), - periodDuration INTEGER (1..32) - } -} - -MBMS-L1CombiningSchedule-256 ::= SEQUENCE { - -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4 - cycleOffset INTEGER (0..63) OPTIONAL, - mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE { - periodStart INTEGER (0..63), - periodDuration INTEGER (1..64) - } -} - -MBMS-L1CombiningSchedule-512 ::= SEQUENCE { - -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4 - cycleOffset INTEGER (0..127) OPTIONAL, - mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE { - periodStart INTEGER (0..127), - periodDuration INTEGER (1..128) - } -} - -MBMS-L1CombiningSchedule-1024 ::= SEQUENCE { - -- Actual L1 combining schedule values (offset, start, duration) = IE value * 4 - cycleOffset INTEGER (0..255) OPTIONAL, - mtch-L1CombiningPeriodList SEQUENCE (SIZE (1..maxMBMS-L1CP)) OF SEQUENCE { - periodStart INTEGER (0..255), - periodDuration INTEGER (1..256) - } -} - -MBMS-L1CombiningSchedule ::= CHOICE { - cycleLength-32 MBMS-L1CombiningSchedule-32, - cycleLength-64 MBMS-L1CombiningSchedule-64, - cycleLength-128 MBMS-L1CombiningSchedule-128, - cycleLength-256 MBMS-L1CombiningSchedule-256, - cycleLength-512 MBMS-L1CombiningSchedule-512, - cycleLength-1024 MBMS-L1CombiningSchedule-1024 -} - -MBMS-L1CombiningTransmTimeDiff ::= INTEGER (0..3) - -MBMS-L23Configuration ::= CHOICE { - sameAsCurrent SEQUENCE { - currentCell-SCCPCH MBMS-SCCPCHIdentity, - msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL - }, - different SEQUENCE { - -- If the IE transpCh-InfoCommonForAllTrCh is absent, the default TFCS as specified - -- in 14.10.1 applies - transpCh-InfoCommonForAllTrCh MBMS-CommonCCTrChIdentity OPTIONAL, - transpCHInformation MBMS-TrCHInformation-NeighbList - } -} - -MBMS-LogicalChIdentity ::= INTEGER (1..15) - -MBMS-MCCH-ConfigurationInfo-r6 ::= SEQUENCE { - accessInfoPeriodCoefficient INTEGER (0..3), - repetitionPeriodCoefficient INTEGER (0..3), - modificationPeriodCoefficient INTEGER (7..10), - rlc-Info RLC-Info-MCCH-r6, - tctf-Presence MBMS-TCTF-Presence OPTIONAL -} - -MBMS-MICHConfigurationInfo-r6 ::= SEQUENCE { - michPowerOffset MBMS-MICHPowerOffset, - mode CHOICE { - fdd SEQUENCE { - channelisationCode256 ChannelisationCode256, - ni-CountPerFrame MBMS-NI-CountPerFrame, - sttd-Indicator BOOLEAN - }, - -- The CHOICE tdd384 is used for both tdd384 and tdd768. If IE - -- 'MBMS-MICHConfigurationInfo-v770ext' is not present, tdd384 applies. - tdd384 SEQUENCE { - timeslot TimeslotNumber, - midambleShiftAndBurstType MidambleShiftAndBurstType, - channelisationCode DL-TS-ChannelisationCode, - repetitionPeriodLengthOffset RepPerLengthOffset-MICH OPTIONAL, - mbmsNotificationIndLength MBMS-MICHNotificationIndLength DEFAULT mn4 - }, - tdd128 SEQUENCE { - timeslot TimeslotNumber-LCR-r4, - midambleShiftAndBurstType MidambleShiftAndBurstType-LCR-r4, - channelisationCodeList SEQUENCE (SIZE (1..2)) OF - DL-TS-ChannelisationCode, - repetitionPeriodLengthOffset RepPerLengthOffset-MICH OPTIONAL, - mbmsNotificationIndLength MBMS-MICHNotificationIndLength DEFAULT mn4 - } - } -} - -MBMS-MICHConfigurationInfo-v770ext ::= SEQUENCE { - mode CHOICE { - -- For tdd384, IE 'MidambleShiftAndBurstType-r7' replaces IE 'MidambleShiftAndBurstType' - -- in IE 'MBMS-MICHConfigurationInfo-r6'. IE 'MidambleShiftAndBurstType' shall be ignored. - tdd384 SEQUENCE { - midambleShiftAndBurstType MidambleShiftAndBurstType-r7 - }, - -- For tdd768, the CHIOCE tdd384 in IE 'MBMS-MICHConfigurationInfo-r6' applies, except - -- that IE 'MidambleShiftAndBurstType-VHCR' replaces IE 'MidambleShiftAndBurstType'. IE - -- 'MidambleShiftAndBurstType' shall be ignored. - tdd768 SEQUENCE { - midambleShiftAndBurstType MidambleShiftAndBurstType-VHCR - }, - tdd128 SEQUENCE { - mbsfnSpecialTimeSlot TimeSlotLCR-ext OPTIONAL - } - } -} - -MBMS-MICHConfigurationInfo-v890ext ::= SEQUENCE { - mode CHOICE { - imb384 SEQUENCE { - channelisationCode256 ChannelisationCode256, - ni-CountPerFrame MBMS-NI-CountPerFrame-IMB384 - } - } -} - -MBMS-MICHNotificationIndLength ::= ENUMERATED { mn4, mn8, mn16 } - -MBMS-MICHPowerOffset ::= INTEGER (-10..5) - -MBMS-ModifedService-r6 ::= SEQUENCE { - mbms-TransmissionIdentity MBMS-TransmissionIdentity, - mbms-RequiredUEAction MBMS-RequiredUEAction-Mod, - mbms-PreferredFrequency CHOICE { - mcch MBMS-PFLIndex, - dcch MBMS-PFLInfo - } OPTIONAL, - --dummy is not used. If received it shall be ignored. - dummy ENUMERATED { true } OPTIONAL, - continueMCCHReading BOOLEAN -} - -MBMS-ModifedServiceList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservModif)) OF - MBMS-ModifedService-r6 - -MBMS-ModifiedService-v770ext ::= SEQUENCE { - mbsfnClusterFrequency MBSFN-ClusterFrequency-r7 OPTIONAL -} - -MBMS-ModifiedService-LCR-v7c0ext ::= SEQUENCE { - rbReleaseCause MBMS-PTM-RBReleaseCause-LCR-r7 OPTIONAL -} - --- IE 'MBMS-ModifiedServiceList-v770ext' contains a list of extension data --- associated with the MBMS transmission identities at the corresponding --- positions in IE 'MBMS-ModifedServiceList-r6' -MBMS-ModifiedServiceList-v770ext ::= SEQUENCE (SIZE (1..maxMBMSservModif)) OF - MBMS-ModifiedService-v770ext - --- IE 'MBMS-ModifiedServiceList-LCR-v7c0ext' contains a list of extension data --- associated with the MBMS transmission identities at the corresponding --- positions in IE 'MBMS-ModifedServiceList-r6' -MBMS-ModifiedServiceList-LCR-v7c0ext ::= SEQUENCE (SIZE (1..maxMBMSservModif)) OF - MBMS-ModifiedService-LCR-v7c0ext - -MBMS-MSCH-ConfigurationInfo-r6 ::= SEQUENCE { - mschShedulingInfo MBMS-MSCHSchedulingInfo OPTIONAL, - rlc-Info RLC-Info-MSCH-r6 OPTIONAL, - tctf-Presence MBMS-TCTF-Presence OPTIONAL -} - -MBMS-MSCHSchedulingInfo ::= CHOICE { - schedulingPeriod-32-Offset INTEGER (0..31), - schedulingPeriod-64-Offset INTEGER (0..63), - schedulingPeriod-128-Offset INTEGER (0..127), - schedulingPeriod-256-Offset INTEGER (0..255), - schedulingPeriod-512-Offset INTEGER (0..511), - schedulingPeriod-1024-Offset INTEGER (0..1023) -} - -MBMS-NeighbouringCellSCCPCH-r6 ::= SEQUENCE { - secondaryCCPCH-Info MBMS-CommonPhyChIdentity, - secondaryCCPCHPwrOffsetDiff MBMS-SCCPCHPwrOffsetDiff OPTIONAL, - layer1Combining CHOICE { - fdd SEQUENCE { - softComb-TimingOffset MBMS-SoftComb-TimingOffset, - mbms-L1CombiningTransmTimeDiff MBMS-L1CombiningTransmTimeDiff, - mbms-L1CombiningSchedule MBMS-L1CombiningSchedule OPTIONAL - }, - tdd NULL - } OPTIONAL, - mbms-L23Configuration MBMS-L23Configuration -} - -MBMS-NeighbouringCellSCCPCH-v770ext ::= SEQUENCE { - secondaryCCPCH-Info MBMS-CommonPhyChIdentity OPTIONAL, - secondaryCCPCH-InfoDiff SecondaryCCPCHInfoDiff-MBMS, - secondaryCCPCHPwrOffsetDiff MBMS-SCCPCHPwrOffsetDiff OPTIONAL, - layer1Combining CHOICE { - fdd SEQUENCE { - softComb-TimingOffset MBMS-SoftComb-TimingOffset, - mbms-L1CombiningTransmTimeDiff MBMS-L1CombiningTransmTimeDiff, - mbms-L1CombiningSchedule MBMS-L1CombiningSchedule OPTIONAL - }, - tdd NULL - } OPTIONAL, - mbms-L23Configuration MBMS-L23Configuration -} - -MBMS-NeighbouringCellSCCPCHList-r6 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - MBMS-NeighbouringCellSCCPCH-r6 - --- IE "MBMS-NeighbouringCellSCCPCHList-v770ext" may be received as an extension of the IE --- "MBMS-NeighbouringCellSCCPCHList-r6". When both lists are received in the same message --- and the total number of list elements is greater than constant value 'maxSCCPCH', the --- UE behaviour is unspecified. -MBMS-NeighbouringCellSCCPCHList-v770ext ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - MBMS-NeighbouringCellSCCPCH-v770ext - -MBMS-NetworkStandardTimeInformation-LCR-v890ext ::= SEQUENCE { - networkStandardTime BIT STRING (SIZE (40)), - correlativeSFN INTEGER (0..4095) OPTIONAL -} - -MBMS-NI-CountPerFrame ::= ENUMERATED { ni18, ni36, ni72, ni144 } - -MBMS-NI-CountPerFrame-IMB384 ::= ENUMERATED { ni16, ni32, ni64, ni128 } - -MBMS-NumberOfNeighbourCells-r6 ::= INTEGER (0..32) - -MBMS-PFLIndex ::= INTEGER (1..maxMBMS-Freq) - -MBMS-PFLInfo ::= FrequencyInfo - -MBMS-PhyChInformation-IMB384 ::= SEQUENCE { - mbms-CommonPhyChIdentity MBMS-CommonPhyChIdentity, - secondaryCCPCHInfo-MBMS SecondaryCCPCHFrameType2Info -} - -MBMS-PhyChInformationList-IMB384 ::= SEQUENCE (SIZE (1..maxMBMS-CommonPhyCh)) OF - MBMS-PhyChInformation-IMB384 - -MBMS-PhyChInformation-r6 ::= SEQUENCE { - mbms-CommonPhyChIdentity MBMS-CommonPhyChIdentity, - secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r6 -} - -MBMS-PhyChInformation-r7 ::= SEQUENCE { - mbms-CommonPhyChIdentity MBMS-CommonPhyChIdentity, - secondaryCCPCHInfo-MBMS SecondaryCCPCHInfo-MBMS-r7 -} - -MBMS-PhyChInformationList-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonPhyCh)) OF - MBMS-PhyChInformation-r6 - -MBMS-PhyChInformationList-r7 ::= SEQUENCE (SIZE (1..maxMBMS-CommonPhyCh)) OF - MBMS-PhyChInformation-r7 - -MBMS-PL-ServiceRestrictInfo-r6 ::= ENUMERATED { true } - -MBMS-PreferredFrequencyInfo-r6 ::= SEQUENCE { - mbmsPreferredFrequency INTEGER (1..maxMBMS-Freq) OPTIONAL, - layerConvergenceInformation CHOICE { - mbms-Qoffset MBMS-Qoffset, - mbms-HCSoffset INTEGER (0..7) - }, - mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL -} - -MBMS-PreferredFrequencyList-r6 ::= SEQUENCE (SIZE (1..maxMBMS-Freq)) OF - MBMS-PreferredFrequencyInfo-r6 - -MBMS-PTMActivationTime-r6 ::= INTEGER (0..2047) - -MBMS-PTM-RBInformation-C ::= SEQUENCE { - rbInformation MBMS-CommonRBIdentity, - shortTransmissionID MBMS-ShortTransmissionID, - logicalChIdentity MBMS-LogicalChIdentity -} - -MBMS-PTM-RBInformation-CList ::= SEQUENCE (SIZE (1..maxRBperTrCh)) OF - MBMS-PTM-RBInformation-C - -MBMS-PTM-RBInformation-N ::= SEQUENCE { - shortTransmissionID MBMS-ShortTransmissionID, - logicalChIdentity MBMS-LogicalChIdentity, - layer1-CombiningStatus BOOLEAN} - -MBMS-PTM-RBInformation-NList ::= SEQUENCE (SIZE (1..maxRBperTrCh)) OF - MBMS-PTM-RBInformation-N - -MBMS-PTM-RBReleaseCause-LCR-r7 ::= ENUMERATED { - normalRelease, outOfMBMSServiceCoverageInRAN, - networkAbnormalRelease, - spare5, spare4, spare3, spare2, spare1 } - -MBMS-Qoffset ::= ENUMERATED { q4, q8, q12, q16, q20, q30, q40, qInfinity } - -MBMS-RequiredUEAction-Mod ::= ENUMERATED { - none, - acquireCountingInfo, - acquireCountingInfoPTM-RBsUnmodified, - acquirePTM-RBInfo, - requestPTPRB, - releasePTM-RB } - -MBMS-RequiredUEAction-UMod ::= ENUMERATED { - none, - acquirePTM-RBInfo, - requestPTPRB } - -MBMS-SCCPCHIdentity ::= INTEGER (1..maxSCCPCH) - -MBMS-SCCPCHPwrOffsetDiff ::= ENUMERATED { mcpo-minus6, mcpo-minus3, mcpo-plus3, mcpo-plus6 } - -MBMS-SelectedServiceInfo ::= SEQUENCE { - status CHOICE { - none NULL, - some MBMS-SelectedServicesListFull - } -} - -MBMS-SelectedServicesListFull ::= SEQUENCE (SIZE (1..maxMBMSservSelect)) OF - MBMS-ServiceIdentity-r6 - -MBMS-SelectedServicesListShort ::= SEQUENCE (SIZE (1..maxMBMSservSelect)) OF - MBMS-ShortTransmissionID - -MBMS-SelectedServicesShort ::= SEQUENCE { - mbms-SelectedServicesList MBMS-SelectedServicesListShort, - modificationPeriodIdentity INTEGER (0..1) -} - -MBMS-ServiceAccessInfo-r6 ::= SEQUENCE { - shortTransmissionID MBMS-ShortTransmissionID, - accessprobabilityFactor-Idle MBMS-AccessProbabilityFactor, - accessprobabilityFactor-Connected MBMS-AccessProbabilityFactor OPTIONAL, - mbms-ConnectedModeCountingScope MBMS-ConnectedModeCountingScope -} - -MBMS-ServiceAccessInfoList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservCount)) OF - MBMS-ServiceAccessInfo-r6 - -MBMS-ServiceIdentity-r6 ::= SEQUENCE { - serviceIdentity OCTET STRING (SIZE (3)), - plmn-Identity CHOICE { - -- The 'sameAsMIB-PLMN-Id' choice refers to the 'PLMN Identity' (R99) in MIB. - sameAsMIB-PLMN-Id NULL, - other CHOICE { - -- The 'sameAsMIB-MultiPLMN-Id' choice refers to one of the (1..5) PLMN Identities - -- provided in the 'Multiple PLMN List' (REL-6) in MIB. - sameAsMIB-MultiPLMN-Id INTEGER (1..5), - explicitPLMN-Id PLMN-Identity - } - } -} - -MBMS-ServiceSchedulingInfo-r6 ::= SEQUENCE { - mbms-TransmissionIdentity MBMS-TransmissionIdentity, - mbms-ServiceTransmInfoList MBMS-ServiceTransmInfoList OPTIONAL, - nextSchedulingperiod INTEGER (0..31) -} - -MBMS-ServiceSchedulingInfoList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservSched)) OF - MBMS-ServiceSchedulingInfo-r6 - -MBMS-ServiceTransmInfo ::= SEQUENCE { - -- Actual values (start, duration) = IE values * 4 - start INTEGER (0..255), - duration INTEGER (1..256) -} - -MBMS-ServiceTransmInfoList ::= SEQUENCE (SIZE (1..maxMBMSTransmis)) OF - MBMS-ServiceTransmInfo - -MBMS-SessionIdentity ::= OCTET STRING (SIZE (1)) - -MBMS-ShortTransmissionID ::= INTEGER (1..maxMBMSservUnmodif) - -MBMS-SIBType5-SCCPCH-r6 ::= SEQUENCE { - sccpchIdentity MBMS-SCCPCHIdentity, - transpCHInformation MBMS-TrCHInformation-SIB5List -} - -MBMS-SIBType5-SCCPCHList-r6 ::= SEQUENCE (SIZE (1..maxSCCPCH)) OF - MBMS-SIBType5-SCCPCH-r6 - -MBMS-SoftComb-TimingOffset ::= ENUMERATED { ms0, ms10, ms20, ms40 } - -MBMS-TCTF-Presence ::= ENUMERATED { false } - -MBMS-TimersAndCounters-r6 ::= SEQUENCE { - t-318 T-318 DEFAULT ms1000 -} - -MBMS-TransmissionIdentity ::= SEQUENCE { - mbms-ServiceIdentity MBMS-ServiceIdentity-r6, - mbms-SessionIdentity MBMS-SessionIdentity OPTIONAL -} - -MBMS-TranspChInfoForCCTrCh-r6 ::= SEQUENCE { - commonCCTrChIdentity MBMS-CommonCCTrChIdentity, - transportFormatCombinationSet TFCS -} - - -MBMS-TranspChInfoForEachCCTrCh-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonCCTrCh)) OF - MBMS-TranspChInfoForCCTrCh-r6 - -MBMS-TranspChInfoForEachTrCh-r6 ::= SEQUENCE (SIZE (1..maxMBMS-CommonTrCh)) OF - MBMS-TranspChInfoForTrCh-r6 - -MBMS-TranspChInfoForTrCh-r6 ::= SEQUENCE { - commonTrChIdentity MBMS-CommonTrChIdentity, - transportFormatSet TransportFormatSet -} - -MBMS-TrCHInformation-Curr ::= SEQUENCE { - transpCh-Info MBMS-CommonTrChIdentity, - rbInformation MBMS-PTM-RBInformation-CList OPTIONAL, - msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL -} - -MBMS-TrCHInformation-CurrList ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF - MBMS-TrCHInformation-Curr - -MBMS-TrCHInformation-Neighb ::= SEQUENCE { - transpCh-Info MBMS-CommonTrChIdentity, - transpCh-CombiningStatus BOOLEAN, - rbInformation MBMS-PTM-RBInformation-NList OPTIONAL, - msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL -} - -MBMS-TrCHInformation-NeighbList ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF - MBMS-TrCHInformation-Neighb - -MBMS-TrCHInformation-SIB5 ::= SEQUENCE { - transpCh-Identity INTEGER (1..maxFACHPCH), - rbInformation MBMS-PTM-RBInformation-CList OPTIONAL, - msch-ConfigurationInfo MBMS-MSCH-ConfigurationInfo-r6 OPTIONAL -} - -MBMS-TrCHInformation-SIB5List ::= SEQUENCE (SIZE (1..maxFACHPCH)) OF - MBMS-TrCHInformation-SIB5 - -MBMS-UnmodifiedService-r6 ::= SEQUENCE { - mbms-TransmissionIdentity MBMS-TransmissionIdentity, - mbms-RequiredUEAction MBMS-RequiredUEAction-UMod, - mbms-PreferredFrequency MBMS-PFLIndex OPTIONAL -} - -MBMS-UnmodifiedServiceList-r6 ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF - MBMS-UnmodifiedService-r6 - -MBMS-UnmodifiedService-v770ext ::= SEQUENCE { - mbsfnClusterFrequency MBSFN-ClusterFrequency-r7 OPTIONAL -} - --- IE 'MBMS-UnmodifiedServiceList-v770ext' contains a list of extension data --- associated with the MBMS transmission identities at the corresponding --- positions in IE 'MBMS-UnmodifiedServiceList-r6' -MBMS-UnmodifiedServiceList-v770ext ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF - MBMS-UnmodifiedService-v770ext - -MBSFN-ClusterFrequency-r7 ::= INTEGER (1..maxMBSFNClusters) - -MBSFNFrequency ::= SEQUENCE { - frequencyInfo FrequencyInfo, - -- IE "cellParameterID" is used only for MBSFN clusters operating in 1.28 Mcps TDD mode. - cellParametersID CellParametersID OPTIONAL -} - -MBSFNFrequency-v860ext ::= SEQUENCE { - imb-Indication ENUMERATED { true } OPTIONAL -} - -MBSFNFrequencyList ::= SEQUENCE (SIZE (0..maxMBSFNClusters)) OF - MBSFNFrequency - --- List of extensions to the corresponding elements of IE "MBSFNFrequencyList" -MBSFNFrequencyList-v860ext ::= SEQUENCE (SIZE (0..maxMBSFNClusters)) OF - MBSFNFrequency-v860ext - -MBSFNOnlyService ::= ENUMERATED {true} - -MBSFNservicesNotNotified-r7 ::= SEQUENCE { - notificationOfAllMBSFNServicesInTheBand - ENUMERATED { true } OPTIONAL -} - -MBSFNInterFrequencyNeighbour-r7 ::= SEQUENCE { - mbsfnFrequency FrequencyInfo, - mbsfnServicesNotification CHOICE { - mbsfnServicesNotified NULL, - mbsfnServicesNotNotified MBSFNservicesNotNotified-r7 - } -} - -MBSFNInterFrequencyNeighbour-v860ext ::= SEQUENCE { - imb-Indication ENUMERATED { true } OPTIONAL -} - -MBSFN-InterFrequencyNeighbourList-r7 ::= SEQUENCE (SIZE (1..maxMBSFNClusters)) OF - MBSFNInterFrequencyNeighbour-r7 - --- List of extensions to the corresponding elements of IE "MBSFN-InterFrequencyNeighbourList-r7" -MBSFN-InterFrequencyNeighbourList-v860ext ::= SEQUENCE (SIZE (1..maxMBSFNClusters)) OF - MBSFNInterFrequencyNeighbour-v860ext - -MBSFN-TDDInformation ::= SEQUENCE (SIZE (1..maxTS)) OF - MBSFN-TDDTimeSlotInfo - -MBSFN-TDDInformation-LCR ::= SEQUENCE (SIZE (1..maxMBSFNClusters)) OF - MBSFN-TDDTimeSlotInfo-LCR - -MBSFN-TDDTimeSlotInfo ::= SEQUENCE { - timeSlotNumber TimeslotNumber-LCR-r4, - cellParametersID CellParametersID -} - -MBSFN-TDDTimeSlotInfo-LCR ::= SEQUENCE { - frequencyIndex INTEGER (1..maxMBSFNClusters), - timeSlotList MBSFN-TDDInformation -} - -MBSFN-TDM-Info ::= SEQUENCE { - shortTransmissionID MBMS-ShortTransmissionID, - tDMPeriod INTEGER (2..9), - tDMOffset INTEGER (0..8), - tDMLength INTEGER (1..8) -} - -MBSFN-TDM-Info-List ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF - MBSFN-TDM-Info - -hiPDSCHidentities INTEGER ::= 64 -hiPUSCHidentities INTEGER ::= 64 -hiRM INTEGER ::= 256 -maxAC INTEGER ::= 16 -maxAdditionalMeas INTEGER ::= 4 -maxASC INTEGER ::= 8 -maxASCmap INTEGER ::= 7 -maxASCpersist INTEGER ::= 6 -maxCCTrCH INTEGER ::= 8 -maxCellMeas INTEGER ::= 32 -maxCellMeasOnSecULFreq INTEGER ::= 32 -maxCellMeas-1 INTEGER ::= 31 -maxCellMeasOnSecULFreq-1 INTEGER ::= 31 -maxCNdomains INTEGER ::= 4 -maxCommonHRNTI INTEGER ::= 4 -maxCommonQueueID INTEGER ::= 2 -maxCPCHsets INTEGER ::= 16 -maxDedicatedCSGFreq INTEGER ::= 4 -maxDPCH-DLchan INTEGER ::= 8 -maxDPDCH-UL INTEGER ::= 6 -maxDRACclasses INTEGER ::= 8 -maxExcludedDetectedSetCells INTEGER ::= 64 -maxE-DCHMACdFlow INTEGER ::= 8 -maxE-DCHMACdFlow-1 INTEGER ::= 7 -maxMultipleFrequencyBandsFDD INTEGER ::= 8 -maxMultipleFrequencyBandsEUTRA INTEGER ::= 8 -maxEUTRACellPerFreq INTEGER ::= 16 -maxEUTRATargetFreqs INTEGER ::= 8 -maxEDCHRL INTEGER ::= 4 -maxEDCHRL-1 INTEGER ::= 3 -maxEDCHs INTEGER ::= 32 -maxEDCHs-1 INTEGER ::= 31 -maxEDCHTxPattern-TDD128 INTEGER ::= 4 -- maxEDCHTxPattern-TDD128 should be 3 -maxEDCHTxPattern-TDD128-1 INTEGER ::= 3 -- maxEDCHTxPattern-TDD128-1 should be 2 -maxERNTIgroup INTEGER ::= 32 -maxERNTIperGroup INTEGER ::= 2 -maxERUCCH INTEGER ::= 256 -maxFACHPCH INTEGER ::= 8 -maxFreq INTEGER ::= 8 -maxFreqBandsEUTRA INTEGER ::= 16 -maxFreqBandsFDD INTEGER ::= 8 -maxFreqBandsFDD2 INTEGER ::= 22 -maxFreqBandsFDD3 INTEGER ::= 86 -maxFreqBandsFDD-ext INTEGER ::= 15 -- maxFreqBandsFDD-ext ::= 22 - (maxFreqBandsFDD - 1) -maxFreqBandsFDD-ext2 INTEGER ::= 64 -- maxFreqBandsFDD-ext2 ::= 86 - maxFreqBandsFDD2 -maxFreqBandsFDD-ext3 INTEGER ::= 78 -- maxFreqBandsFDD-ext3 ::= 86 - maxFreqBandsFDD -maxFreqBandsIndicatorSupport INTEGER ::= 2 -maxFreqBandsTDD INTEGER ::= 4 -maxFreqBandsTDD-ext INTEGER ::= 16 -maxFreqBandsGSM INTEGER ::= 16 -maxFreqMeasWithoutCM INTEGER ::= 2 -maxGANSS INTEGER ::= 8 -maxGANSS-1 INTEGER ::= 7 -maxGANSSSat INTEGER ::= 64 -maxGANSSSat-1 INTEGER ::= 63 -maxGERAN-SI INTEGER ::= 8 -maxGSMTargetCells INTEGER ::= 32 -maxHNBNameSize INTEGER ::= 48 -maxHProcesses INTEGER ::= 8 -maxHS-SCCHLessTrBlk INTEGER ::= 4 -maxHSDSCHTBIndex INTEGER ::= 64 -maxHSDSCHTBIndex-tdd384 INTEGER ::= 512 -maxHSSCCHs INTEGER ::= 4 -maxHSSCCHs-1 INTEGER ::= 3 -maxHSSICH-TDD128 INTEGER ::= 4 -maxHSSICH-TDD128-1 INTEGER ::= 3 -maxInterSysMessages INTEGER ::= 4 -maxLoCHperRLC INTEGER ::= 2 -maxLoggedMeasReport INTEGER ::= 128 -maxMAC-d-PDUsizes INTEGER ::= 8 -maxMBMS-CommonCCTrCh INTEGER ::= 32 -maxMBMS-CommonPhyCh INTEGER ::= 32 -maxMBMS-CommonRB INTEGER ::= 32 -maxMBMS-CommonTrCh INTEGER ::= 32 -maxMBMS-Freq INTEGER ::= 4 -maxMBMS-L1CP INTEGER ::= 4 -maxMBMSservCount INTEGER ::= 8 -maxMBMSservModif INTEGER ::= 32 -maxMBMSservSched INTEGER ::= 16 -maxMBMSservSelect INTEGER ::= 8 -maxMBMSservUnmodif INTEGER ::= 64 -maxMBMSTransmis INTEGER ::= 4 -maxMBSFNClusters INTEGER ::= 16 -maxMeasCSGRange INTEGER ::= 4 -maxMeasEvent INTEGER ::= 8 -maxMeasEventOnSecULFreq INTEGER ::= 8 -maxMeasIntervals INTEGER ::= 3 -maxMeasOccasionPattern INTEGER ::= 5 -maxMeasOccasionPattern-1 INTEGER ::= 4 -maxMeasParEvent INTEGER ::= 2 -maxNonContiguousMultiCellCombinations INTEGER ::= 3 -maxNumCDMA2000Freqs INTEGER ::= 8 -maxNumE-AGCH INTEGER ::= 4 -maxNumE-HICH INTEGER ::= 4 -maxNumEUTRAFreqs INTEGER ::= 8 -maxNumEUTRAFreqs-FACH INTEGER ::= 4 -maxNumGSMCellGroup INTEGER ::= 16 -maxNumGSMFreqRanges INTEGER ::= 32 -maxNumFDDFreqs INTEGER ::= 8 -maxNumANRLoggedItems INTEGER ::= 4 -maxnumLoggedMeas INTEGER ::= 8 -maxNumMDTPLMN INTEGER ::= 15 -maxNumTDDFreqs INTEGER ::= 8 -maxNoOfMeas INTEGER ::= 16 -maxOtherRAT INTEGER ::= 15 -maxOtherRAT-16 INTEGER ::= 16 -maxPage1 INTEGER ::= 8 -maxPCPCH-APsig INTEGER ::= 16 -maxPCPCH-APsubCh INTEGER ::= 12 -maxPCPCH-CDsig INTEGER ::= 16 -maxPCPCH-CDsubCh INTEGER ::= 12 -maxPCPCH-SF INTEGER ::= 7 -maxPCPCHs INTEGER ::= 64 -maxPDCPAlgoType INTEGER ::= 8 -maxPDSCH INTEGER ::= 8 -maxPDSCH-TFCIgroups INTEGER ::= 256 -maxPRACH INTEGER ::= 16 -maxPRACH-EUL INTEGER ::= 4 -maxPRACH-FPACH INTEGER ::= 8 -maxPredefConfig INTEGER ::= 16 -maxPrio INTEGER ::= 8 -maxPrio-1 INTEGER ::= 7 -maxPUSCH INTEGER ::= 8 -maxQueueIDs INTEGER ::= 8 -maxRABsetup INTEGER ::= 16 -maxRAT INTEGER ::= 16 -maxRB INTEGER ::= 32 -maxRBallRABs INTEGER ::= 27 -maxRBMuxOptions INTEGER ::= 8 -maxRBperRAB INTEGER ::= 8 -maxRBperTrCh INTEGER ::= 16 -maxReportedEUTRACellPerFreq INTEGER ::= 4 -maxReportedEUTRAFreqs INTEGER ::= 4 -maxReportedGSMCells INTEGER ::= 8 -maxRL INTEGER ::= 8 -maxRL-1 INTEGER ::= 7 -maxRLCPDUsizePerLogChan INTEGER ::= 32 -maxRFC3095-CID INTEGER ::= 16384 -maxROHC-PacketSizes-r4 INTEGER ::= 16 -maxROHC-Profile-r4 INTEGER ::= 8 -maxRxPatternForHSDSCH-TDD128 INTEGER ::= 4 -- maxRxPatternForHSDSCH-TDD128 should be 3 -maxRxPatternForHSDSCH-TDD128-1 INTEGER ::= 3 -- maxRxPatternForHSDSCH-TDD128-1 should be 2 -maxSat INTEGER ::= 16 -maxSatClockModels INTEGER ::= 4 -maxSCCPCH INTEGER ::= 16 -maxSgnType INTEGER ::= 8 -maxSIB INTEGER ::= 32 -maxSIB-FACH INTEGER ::= 8 -maxSIBperMsg INTEGER ::= 16 -maxSIrequest INTEGER ::= 4 -maxSRBsetup INTEGER ::= 8 -maxSystemCapability INTEGER ::= 16 -maxTDD128Carrier INTEGER ::= 6 -maxTDD128Carrier-1 INTEGER ::= 5 -maxTbsForHSDSCH-TDD128 INTEGER ::= 4 -maxTbsForHSDSCH-TDD128-1 INTEGER ::= 3 -maxTF INTEGER ::= 32 -maxTF-CPCH INTEGER ::= 16 -maxTFC INTEGER ::= 1024 -maxTFCsub INTEGER ::= 1024 -maxTFCI-2-Combs INTEGER ::= 512 -maxTGPS INTEGER ::= 6 -maxTrCH INTEGER ::= 32 --- maxTrCHpreconf should be 16 but has been set to 32 for compatibility -maxTrCHpreconf INTEGER ::= 32 -maxTS INTEGER ::= 14 -maxTS-1 INTEGER ::= 13 -maxTS-2 INTEGER ::= 12 -maxTS-LCR INTEGER ::= 6 -maxTS-LCR-1 INTEGER ::= 5 -maxURA INTEGER ::= 8 -maxURNTI-Group INTEGER ::= 8 - -END diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn b/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn deleted file mode 100644 index 97e03b9..0000000 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-01-27 00:37:43 +0100 (Mon, 27 Jan 2014) $ -// $Rev: 10455 $ -/******************************************************************************/ - -module UTRAN_RRC_Handover_Templates { - import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; - - - template (value) DL_DCCH_Message cs_HandoverFromUTRANCommand_EUTRA (IntegrityCheckInfo p_Integrityinfo, - RRC_TransactionIdentifier p_RRC_TI, - octetstring p_Eutra_Message) := - { /* TS 36.508 Table 4.7B.1-2: HANDOVER FROM UTRAN COMMAND */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ - integrityCheckInfo := p_Integrityinfo, - message_ := { - handoverFromUTRANCommand_EUTRA := { - rrc_TransactionIdentifier := p_RRC_TI, - criticalExtensions := { - r8 := { - handoverFromUTRANCommand_EUTRA_r8 := { - activationTime := omit, - toHandoverRAB_Info := { - { - rab_Identity := { - gsm_MAP_RAB_Identity := '00000101'B - }, - //mbms_SessionIdentity := omit, //- Not specified in message - //mbms_ServiceIdentity := omit, - cn_DomainIdentity := ps_domain, - nas_Synchronisation_Indicator := omit, //not present specified - re_EstablishmentTimer := useT315 - } - }, - eutra_Message := p_Eutra_Message - }, - handoverFromUTRANCommand_EUTRA_r8_add_ext := omit, - nonCriticalExtensions := omit - } - } - } - } - }; - -} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_RACH_Optimisation.ttcn b/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_RACH_Optimisation.ttcn deleted file mode 100644 index 4e01efc..0000000 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_RACH_Optimisation.ttcn +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ -/******************************************************************************/ - -module RRC_RACH_Optimisation - -{ -///////////////// -// Import Part // -///////////////// - - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from EUTRA_Component all; - import from CommonDefs all; - import from EUTRA_CommonDefs all; - import from EUTRA_SRB_Templates all; - import from EUTRA_AspCommon_Templates all; - import from EUTRA_CellInfo all; - import from EUTRA_CommonProcedures all; - import from EUTRA_ConfigurationSteps all; - import from EUTRA_MDT_Specific_Templates all; - - /* - * @desc REFERENCE TS 36.523-1 clause 8.6.11.1 - * @status APPROVED (LTE_A) - */ - function f_TC_8_6_11_1_EUTRA() runs on EUTRA_PTC - { //RACH Optimisation - // Init variables - f_EUTRA_Init(c1); - - // Create and configure Cells - f_EUTRA_CellConfig_Def(eutra_Cell1); - - // Preamble - f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - f_EUTRA_RbEst_Def(eutra_Cell1); - - f_EUTRA_TestBody_Set(true); - - //@siclog "Step 1" siclog@ - //The SS transmits a UEInformationRequest message. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, - cs_TimingInfo_Now, - cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, true))); //@sic R5s140412 sic@ - //@siclog "Step 2" siclog@ - //Check: Does the UE transmit a UEInformationResponse message with rach-Report? - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_UEInformationResponse_Common(tsc_RRC_TI_Def, -, omit))); //@sic R5s140412 sic@ - - f_EUTRA_TestBody_Set(false); - - // Postamble - f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - } // end of f_TC_8_6_11_1_EUTRA - -} // end of Module diff --git a/LTE_A_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn b/LTE_A_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn deleted file mode 100644 index 4c6de2f..0000000 --- a/LTE_A_IWD_14wk37/PicsPixit/IMS_CC_Parameters.ttcn +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: -/******************************************************************************/ - -module IMS_CC_Parameters { - - import from CommonDefs all; - - //**************************************************************************** - // PIXIT Parameters - //---------------------------------------------------------------------------- - modulepar charstring px_DNSServer_IPAddr := "10.122.11.23"; // @desc DNS Server address - // Supported values: IPv4 or IPv6 - // Reference to other Spec: 34.229-3 - - modulepar charstring px_IMS_HomeDomainName_Refreshed := "refreshed3gpp.org"; - // @desc Used in 8.15 - - modulepar charstring px_IMS_Private_UserId_Refreshed := "privateuser@refreshed3gpp.org"; - // @desc Used in 8.15 - - modulepar charstring px_IMS_PublicUserIdentity1_Refreshed := "sip:PublicId1@refreshed3gpp.org"; - // @desc Used in 8.15 - - modulepar charstring px_P_CSCF_IPAddr := "10.122.11.22"; // @desc P-CSCF address - // Supported values: IPv4 or IPv6 - // Reference to other Spec: 34.229-3 - - modulepar charstring px_PeerUE_IPAddr := "10.122.11.25"; // @desc Peer UE address - // Supported values: IPv4 or IPv6 - // Reference to other Spec: 34.229-3 - - modulepar charstring px_SMS_SMSC_InternationalNumber; // @desc international number of the SMSC: - // It is set to the same value as used in EFPSISMSC if the EF is present on the ISIM (or the USIM ) - // Otherwise it is set to the same value as EFSMSP - // Reference to other Spec: 34.229-3 - - modulepar boolean px_UEwithSIM := false; // @desc UE has a SIM inserted - // Supported values: true,false - // Reference to other Spec: 34.229-3 - - modulepar charstring px_XCAPServerAddress := "10.122.11.26"; // @desc XCAP Server address - // Supported values: IPv4 or IPv6 - // Reference to other Spec: 34.229-3 - - modulepar charstring px_XCAP_RootUri := "XCAP.3gpp.org"; // @desc XCAP Root URI - - modulepar charstring px_XCAP_Username; // @desc username to be used for HTTP authentication in case of pc_XCAP_UsernameIsConfiguredInUE==true - - - //**************************************************************************** - // PICS Parameters - //---------------------------------------------------------------------------- - modulepar boolean pc_BidirecVoiceOverIMS := false; // @desc UE capable of initiating a bidirectional voice session over IMS - // Reference: 34.229-2 Table A.12/12 - - modulepar boolean pc_CommunicationHold_DuringEmergencyCall := false; - // @desc UE supports Communication Hold during emergency call - // Reference: 34.229-2, Table A.12/nn - - modulepar boolean pc_HttpDigestAuthentication := false; // @desc HTTP Digest XCAP Authentication - // Reference: 34.229-2, Table A.6a/4 - - modulepar boolean pc_HttpGAAAuthentication := false; // @desc GAA XCAP Authentication - // Reference: 34.229-2, Table A.6a/3 - - modulepar boolean pc_IMS_EmergencyCall := false; // @desc UE supports IMS emergency services - // Reference: 34.229-2 Table A.12/26 - - modulepar boolean pc_IMS_TWS := false; // @desc Three way session - // Reference: 34.229-2, Table A.16/14 - - modulepar boolean pc_IndicateSigcomp := false; // @desc Indicate the willingness to receive the responses and requests compressed from initial REGISTER onwards by using the "comp=sigcomp" parameter - // Reference: 34.229-2 Table A.8/5 - - modulepar boolean pc_InitiateP_CSCFDiscovery_viaDHCPv4 := false; // @desc UE capable of being configured to initiate P-CSCF discovery via DHCPv4 - // Reference: 34.229-2 Table A.13/1 - - modulepar boolean pc_InitiateP_CSCFDiscovery_viaDHCPv6 := false; // @desc UE capable of being configured to initiate P-CSCF discovery via DHCPv6 - // Reference: 34.229-2 Table A.12/7 - - modulepar boolean pc_InitiateP_CSCFDiscovery_viaPCO := false; // @desc UE capable of being configured to initiate P-CSCF discovery via PCO - // Reference: 34.229-2 Table A.12/5 - - modulepar boolean pc_InitiateSession := false; // @desc Initiating a session - // Reference: 34.229-2 Table A.4/2B - - modulepar boolean pc_InitiatesDedicatedPDPContext := false; // @desc UE capable of being configured to initiate Dedicated PDP Context - // Reference: 34.229-2 Table A.12/4 - - modulepar boolean pc_MTSI_ACR := false; // @desc MTSI supplementary services - Anonymous Communication Rejection - // Reference: 34.229-2 Table A.16/12 - - modulepar boolean pc_MTSI_CB := false; // @desc MTSI supplementary services - Communication Barring - // Reference: 34.229-2 Table A.16/7 - - modulepar boolean pc_MTSI_CommDivert := false; // @desc MTSI supplementary services - Communication Diversion - // Reference: 34.229-2 Table A.16/5 - - modulepar boolean pc_MTSI_CommHold := false; // @desc Communication Hold - // Reference: 34.229-2 Table A.16/6 - - modulepar boolean pc_MTSI_CommWaiting := false; // @desc MTSI supplementary services - Communication Waiting - // Reference: 34.229-2 Table A.16/13 - - modulepar boolean pc_MTSI_Conference := false; // @desc MTSI supplementary services - Conference - // Reference: 34.229-2 Table A.16/9 - - modulepar boolean pc_MTSI_MessageWait := false; // @desc MTSI supplementary services - Message Waiting Indication - // Reference: 34.229-2 Table A.16/8 - - modulepar boolean pc_MTSI_OIP := false; // @desc MTSI supplementary services - Originating Identification Presentation - // Reference: 34.229-2 Table A.16/1 - - modulepar boolean pc_MTSI_OIR := false; // @desc MTSI supplementary services - Originating Identification Restriction - // Reference: 34.229-2 Table A.16/2 - - modulepar boolean pc_MTSI_Speech := false; // @desc MTSI media - Speech - // Reference: 34.229-2 Table A.15/1 - - modulepar boolean pc_MTSI_Speech_AMRWB := false; // @desc MTSI media - Speech, AMR wideband - // Reference: 34.229-2 Table A.15/2 - - modulepar boolean pc_MTSI_TIP := false; // @desc MTSI supplementary services - Terminating Identification Presentation - // Reference: 34.229-2 Table A.16/3 - - modulepar boolean pc_MTSI_TIR := false; // @desc MTSI supplementary services - Terminating Identification Restriction - // Reference: 34.229-2 Table A.16/4 - - modulepar boolean pc_MTSI_Text_RTP := false; // @desc MTSI media - Text, RTP - // Reference: 34.229-2 Table A.15/7 - - modulepar boolean pc_MTSI_Video := false; // @desc MTSI media - Video - // Reference: 34.229-2 Table A.15/3 - - modulepar boolean pc_P_CSCFDiscovery_viaDHCP := false; // @desc UE supports P-CSCF Discovery via DHCP - // Reference: 34.229-2 Table A.12/9 - - modulepar boolean pc_P_CSCFDiscovery_viaDHCPv4 := false; // @desc UE supports P-CSCF discovery via DHCPv4 - // Reference: 34.229-2 Table A.13/2 - - modulepar boolean pc_P_CSCFDiscovery_viaDHCPv6 := false; // @desc UE supports P-CSCF discovery via DHCPv6 - // Reference: 34.229-2 Table A.12/10 - - modulepar boolean pc_P_CSCFDiscovery_viaPCO := false; // @desc UE supports P-CSCF Discovery via PCO - // Reference: 34.229-2 Table A.12/8 - - modulepar boolean pc_Preconditions := false; // @desc Integration of resource management and SIP? (use of preconditions) - // Reference: 34.229-2 Table A.4/16 - - modulepar boolean pc_SMS_MO := false; // @desc UE supports SM-over-IP sender - // Reference: 34.229-2 Table A.3A/61 - - modulepar boolean pc_SMS_MT := false; // @desc UE supports SM-over-IP receiver - // Reference: 34.229-2 Table A.3A/62 - - modulepar boolean pc_SendRTCPOnlyOnHold := true; // @desc UE supports sending RTCP only while call is put on hold - // Reference: 34.229-2 Table A.12/23 - - modulepar boolean pc_VideoCodecH264CBP := false; // @desc MTSI media - Video codec H.264 CBP Level 1.2 - // Reference: 34.229-2 Table A.15/9 - - modulepar boolean pc_XCAP_UsernameIsConfiguredInUE := false; // @desc UE indicated OMA-TS-XDM_MO-V1_1-20080627-A.doc, section 5.2.8 "Node: //AAUTHNAME" is configured - // Reference: 34.229-2 Table A.12/nn - - modulepar boolean pc_XCAP_XUIisDefaultPublicUserId := false; // @desc UE uses the default public user id received in P-Associated-URI header in 200 OK for REGISTER as XCAP User Identity (XUI) - // Reference: 34.229-2 Table A.12/mm - - -} diff --git a/LTE_A_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn b/LTE_A_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn deleted file mode 100644 index 5dfbefc..0000000 --- a/LTE_A_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn +++ /dev/null @@ -1,208 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: -/******************************************************************************/ - -module UTRAN_Parameters { - - import from CommonDefs all; - import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from UTRAN_ASP_Definitions language "ASN.1:2002" all; - import from UTRAN_CommonDefs all; - - //**************************************************************************** - // PIXIT Parameters - //---------------------------------------------------------------------------- - modulepar B1_Type px_BcapDataCompression := '0'B; // @desc Data compression supported (used in the Bearer Capability).Default value: Default IMSI - // Reference to other Spec: 34.123-3, Table B.2 - - modulepar B5_Type px_BcapFNUR := '00001'B; // @desc Fixed Network User rate supported: '00001'B: FNUR 9.6 kbit/s '00010'B: FNUR 14.4 kbit/s '00011'B: FNUR 19.2 kbit/s '00100'B: FNUR 28.8 kbit/s '00101'B: FNUR 38.4 kbit/s '00110'B: FNUR 48.0 kbit/s '00111'B: FNUR 56.0 kbit/s '01000'B: FNUR 64.0 kbit/s '01001'B: FNUR 33.6 kbit/s '01010'B: FNUR 32.0 kbit/s. - // Reference to other Spec: 34.123-3, Table B.2 - - modulepar B32_Type px_FRESH; // @desc no default value can be proposed - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar GPRS_CipheringAlgorithm_Type px_GPRS_CipheringAlgorithm := gea2; // @desc NAS Ciphering Algorithm, Default value: (GEA/2) - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar integer px_MFBI_UTRAN_FrequencyBand; // @desc A supported UTRAN MFBI frequency band. - // Reference to other Spec: 34.123-3, Table B.1.20 - - modulepar B1_Type px_MS_ClsmkESIND := '0'B; // @desc Default Early Sending Indication - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar B2_Type px_MS_ClsmkRevLvl := '10'B; // @desc Default Revision Level - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar RRC_ServTested px_RRC_PS_ServTested := ps_Interactive; // @desc PS Service to be tested - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar SRNC_Identity px_SRNC_Id := '000000000001'B; // @desc SRNC Id - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar S_RNTI px_SRNTI := '00000000000000000001'B; - // @desc S RNTI - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar charstring px_TDD_OperationBand; // @desc LCR TDD Operation Band - - modulepar integer px_UARFCN_D_High := 10837; // @desc High Range downlink UARFCN value - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar integer px_UARFCN_D_Low := 10563; // @desc Low Range downlink UARFCN value - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar integer px_UARFCN_D_Mid := 10700; // @desc Mid Range downlink UARFCN value - // Reference to other Spec: 34.123-3, Table B.1 - - modulepar integer px_UARFCN_High_TDD := 9596; // @desc High Range downlink UARFCN value for LCR TDD - - modulepar integer px_UARFCN_Low_TDD := 9504; // @desc Low Range downlink UARFCN value for LCR TDD - - modulepar integer px_UARFCN_Mid_TDD := 9550; // @desc Mid Range downlink UARFCN value for LCR TDD - - modulepar CipheringAlgorithm_r7 px_UTRAN_CipheringAlgorithm := uea2; // @desc UTRAN Ciphering algorithm - // Supported values: uea0, uea1, uea2 - // Reference to other Spec: 34.123-3, Table B.1.20 - - modulepar integer px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI; - // @desc A not supported UTRAN frequency band that is overlapping with a supported MFBI band (px_MFBI_UTRAN_FrequencyBand). This pixit shall be set also in accordance with the values of the 3 Pixits: px_UARFCN_D_High, px_UARFCN_D_Mid,px_UARFCN_L_Mid. - // Reference to other Spec: 34.123-3, Table B.1.20 - - - //**************************************************************************** - // PICS Parameters - //---------------------------------------------------------------------------- - modulepar boolean pc_AttachWithIMSI := false; // @desc Support of Attach With IMSI - // Reference: 34.123-2 A.10/x4 - - modulepar boolean pc_AutomaticAttachSwitchON := false; // @desc Support of automatic PS attach procedure at switch on. - // Reference: 34.123-2 A.20/38 - - modulepar boolean pc_Background := false; // @desc UE Supports Background QoS class - // Reference: 34.123-2 A.6/4 - - modulepar boolean pc_Band10_Supp := false; // @desc UE supports Frequency Band 10 - // Reference: 34.123-2 A.15/22 - - modulepar boolean pc_Band11_Supp := false; // @desc TRUE if UE supports Frequency Band 11 - // Reference: 34.123-2 Table A.15/23 - - modulepar boolean pc_Band12_Supp := false; // @desc TRUE if UE supports Frequency Band 12 - // Reference: 34.123-2 Table A.15/24 - - modulepar boolean pc_Band13_Supp := false; // @desc TRUE if UE supports Frequency Band 13 - // Reference: 34.123-2 Table A.15/25 - - modulepar boolean pc_Band14_Supp := false; // @desc TRUE if UE supports Frequency Band 14 - // Reference: 34.123-2 Table A.15/26 - - modulepar boolean pc_Band19_Supp := false; // @desc TRUE if UE supports Frequency Band 19 - // Reference: 34.123-2 Table A.15/27 - - modulepar boolean pc_Band1_Supp := false; // @desc UE supports Frequency Band 1 - // Reference: 34.123-2 A.15/2 - - modulepar boolean pc_Band20_Supp := false; // @desc TRUE if UE supports Frequency Band 20 - // Reference: 34.123-2 Table A.15/30 - - modulepar boolean pc_Band21_Supp := false; // @desc TRUE if UE supports Frequency Band 21 - // Reference: 34.123-2 Table A.15/28 - - modulepar boolean pc_Band22_Supp := false; // @desc TRUE if UE supports Frequency Band 22 - // Reference: 34.123-2 Table A.15/29 - - modulepar boolean pc_Band25_Supp := false; // @desc TRUE if UE supports Frequency Band 25 - // Reference: 34.123-2 Table A.15/31 - - modulepar boolean pc_Band26_Supp := false; // @desc TRUE if UE supports Frequency Band 26 - // Reference: 34.123-2 Table A.15/32 - - modulepar boolean pc_Band2_Supp := false; // @desc UE supports Frequency Band 2 - // Reference: 34.123-2 A.15/3 - - modulepar boolean pc_Band3_Supp := false; // @desc UE supports Frequency Band 3 - // Reference: 34.123-2 A.15/14 - - modulepar boolean pc_Band4_Supp := false; // @desc UE supports Frequency Band 4 - // Reference: 34.123-2 A.15/15 - - modulepar boolean pc_Band5_Supp := false; // @desc UE supports Frequency Band 5 - // Reference: 34.123-2 A.15/16 - - modulepar boolean pc_Band6_Supp := false; // @desc UE supports Frequency Band 6 - // Reference: 34.123-2 A.15/17 - - modulepar boolean pc_Band7_Supp := false; // @desc UE supports Frequency Band 7 - // Reference: 34.123-2 A.15/18 - - modulepar boolean pc_Band8_Supp := false; // @desc UE supports Frequency Band 8 - // Reference: 34.123-2 A.15/19 - - modulepar boolean pc_Band9_Supp := false; // @desc UE supports Frequency Band 9 - // Reference: 34.123-2 A.15/20 - - modulepar integer pc_EDCH_UE_Category_FDD; // @desc FDD E-DCH physical layer categories - // Reference: 34.123-2 Table A.18a.2 - - modulepar integer pc_EDCH_UE_Category_TDD; // @desc LCR TDD E-DCH physical layer categories - // Reference: 34.123-2 Table A.18b.2 - - modulepar boolean pc_EmergSpeech := false; // @desc Emergency Call - // Reference: 34.123-2 ??/2 - - modulepar boolean pc_HSDPA_FDD := false; // @desc UE Supports HSDPA - FDD - // Reference: 34.123-2 A.18a/14 - - modulepar boolean pc_HSDPA_TDD := false; // @desc UE Supports HSDPA - TDD - // Reference: 34.123-2 A.18b/10 - - modulepar HSDSCH_physical_layer_category pc_HSDSCH_UE_Category_FDD; // @desc FDD HS-DSCH physical layer categories - // Reference: 34.123-2 Table A.18a.1 - - modulepar HSDSCH_physical_layer_category pc_HSDSCH_UE_Category_TDD; // @desc LCR TDD HS-DSCH physical layer categories - // Reference: 34.123-2 Table A.18b.1 - - modulepar boolean pc_HSUPA_FDD := false; // @desc UE Supports HSUPA - FDD - // Reference: 34.123-2 A.18a/18 - - modulepar boolean pc_HSUPA_TDD := false; // @desc UE Supports HSUPA - TDD - // Reference: 34.123-2 A.18b/14 - - modulepar boolean pc_InterRAT_DL_CompressedModeRequired := false; // @desc UE supports DL DPCH compressed mode - // Reference: 34.123-2 A.18a/9a - - modulepar boolean pc_InterRAT_UL_CompressedModeRequired := false; // @desc UE supports UL DPCH compressed mode - // Reference: 34.123-2 A.18a/8a - - modulepar boolean pc_Interactive := false; // @desc UE Supports Interactive QoS class - // Reference: 34.123-2 A.6/3 - - modulepar boolean pc_LAP := false; // @desc Support of Low Access Priority Indication - // Reference: 34.123-2 A.10/x1 - - modulepar boolean pc_MinimumPeriodicSearchTimer := false; // @desc Support of Minimum Periodic Search Timer - // Reference: 34.123-2 A.10/x2 - - modulepar boolean pc_NMO_I_Behaviour := false; // @desc Support of the extended NMO I system information - // Reference: 34.123-2 A.10/x3 - - modulepar boolean pc_Streaming := false; // @desc UE Supports Streaming QoS class - // Reference: 34.123-2 A.6/2 - - modulepar boolean pc_UTRA_CompressedModeRequired := false; // @desc Support of Compressed Mode - // Reference: 36.523-2 A.4.4-1/28 - - -} diff --git a/LTE_A_IWD_14wk37/UTRAN/Common/UTRAN34_ASN1_ASP_Templates_r10.ttcn b/LTE_A_IWD_14wk37/UTRAN/Common/UTRAN34_ASN1_ASP_Templates_r10.ttcn deleted file mode 100644 index 5ea2067..0000000 --- a/LTE_A_IWD_14wk37/UTRAN/Common/UTRAN34_ASN1_ASP_Templates_r10.ttcn +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************/ -// @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). -// All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 21:20:35 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12193 $ -/******************************************************************************/ -module UTRAN34_ASN1_ASP_Templates_r10 { - - import from CommonDefs all; - import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from UTRAN_ASP_Definitions language "ASN.1:2002" all; - - import from UTRAN_ASN1_ASP_Templates all; - import from UTRAN_ASN1_ASP_RAB_Templates all; - import from UTRAN_ASN1_ASP_RAB_Templates_r10 all; - - //----------------------------------------------------------------------------- - // CPHY-RL - //---------------------------------------------------------------------------------------------------- - template (value) U_CPHY_CONFIG_REQ cas_108_DL_DPCH_ModifyInfo_r10(UTRAN_CellId_Type p_CellId, - integer p_PhyChId, - template (value) DPCHInfo_r10OrLaterExtensionType_FDD p_DPCHInfo_r10, - template (value) SS_ActivationTime p_ActivationTime, - boolean p_Follow := true) := - /* @status APPROVED (UTRAN) */ - cas_RL_Modify_DPCHInfo_FDD(p_CellId, p_PhyChId, cs_DPCHInfo_Extension_FDD(p_DPCHInfo_r10), p_ActivationTime, p_Follow); - - //----------------------------------------------------------------------------- - // CPMAC - //---------------------------------------------------------------------------------------------------- - - template (value) U_CMAC_CONFIG_REQ cas_CMAC_MAChs_TFRC_ExplicitConfigReq_16QAM(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActTime := cs_ActivateNow) := - { /* !!!! to be merged with cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD !!!! */ - tfrc_FDD := { - cellId := f_UtranCellId2Int(p_CellId), - tfrcConfigMode := { - explicitlyConfigured := { - modulationScheme := qam16, - channelisationCodeOffset := 1, - noOfChannelisationCodes := 1, // @sic R5s120178 baseline moving sic@ - tbSizeIndexOnHS_SCCH := 19, - minimumInterTTIinterval := 3, - redundancyVersions := {6,2,1,5,3,4,7,0},//According to modulation scheme - hs_PDSCH_TxPower := tsc_DL_hs_PDSCH_TxPower - } - }, - activationTime := p_ActTime, - ss_DTX_Info := omit, - hs_DSCH_TBSizeTable := omit - } - }; - - template (present) U_CMAC_CONFIG_CNF car_CMAC_MACi_Config_CNF(template integer p_NodeB_Id) := - { /* @status APPROVED (UTRAN) */ - configMACi := { - nodeB_Id := p_NodeB_Id - } - }; - - - template (present) U_CMAC_CONFIG_CNF car_CMAC_MACis_Config_CNF(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (UTRAN) */ - configMACis := { - cellId := f_UtranCellId2Int(p_CellId) - } - }; -} diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn index 2ec77bf..4ccbb6d 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_ASP_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ -// $Rev: 8395 $ +// @version: IWD_15wk38 +// $Date: 2014-12-03 16:47:03 +0100 (Wed, 03 Dec 2014) $ +// $Rev: 12722 $ /******************************************************************************/ module CDMA2000_ASP_TypeDefs { @@ -767,7 +767,7 @@ module CDMA2000_ASP_TypeDefs { RTT1X_CS_CallType CS_TunneledCallEstStarted, /* Received Tunneled GCSNA encapsulated Origination message for MO and Page Response for MT call */ RTT1X_CS_CallType CS_CallEstStarted, /* Received Origination message for MO and Page Response for MT */ Null_Type ChAssignCmpl, /* Extended Channel Assignment procedure started completed */ - Null_Type CS_CallEstCompleted, /* SS received Service Connect (i.e User Accepted call) */ + Null_Type CS_CallEstCompleted, /* SS received Service Connect[MO] or ConnectOrder[MT] (i.e User Accepted call) */ boolean IsEmergencyCall /* True indicates the established call is emergency call, false indicates a normal voice has been established */ }; diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CellInfo.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CellInfo.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CellInfo.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CellInfo.ttcn index 208fbd0..ea68db4 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CellInfo.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CellInfo.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-10-19 22:32:42 +0200 (Sat, 19 Oct 2013) $ -// $Rev: 9788 $ +// @version: IWD_15wk38 +// $Date: 2015-06-08 10:06:50 +0200 (Mon, 08 Jun 2015) $ +// $Rev: 13673 $ /******************************************************************************/ module CDMA2000_CellInfo { @@ -38,20 +38,20 @@ module CDMA2000_CellInfo { type record length (tsc_CDMA2000_MaxNumberOfCells) of CDMA2000_CellInfo_Type CDMA2000_CellArray_Type; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CDMA2000_Attenuation_Type cs_CDMA2000_Attenuation_Def ( Attenuation_Type p_Attenuation := tsc_AttenuationDef) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Value := p_Attenuation }; template (value) CDMA2000_ReferenceCellPower_Type cs_CDMA2000_ReferenceCellPower_Def( template (value) CDMA2000_AbsoluteCellPower_Type p_CellPower, template (value) CDMA2000_Attenuation_Type p_Attenuation) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ CellPower := p_CellPower, CellAttenuation := p_Attenuation }; template (value) CarrierFreqCDMA2000_Type cs_CarrierFreqCDMA2000_Def(BandclassCDMA2000_Type p_Bandclass := px_HRPD_BandClass, ARFCN_ValueCDMA2000_Type p_ChannelNum ):= //@sic R5-110332 sic@ - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ BandClass := p_Bandclass, ARFCN := p_ChannelNum }; @@ -59,7 +59,7 @@ module CDMA2000_CellInfo { template (value) CDMA2000_AbsoluteCellPower_Type cs_CDMA2000_AbsoluteCellPowerDef (PowerIoc_Type p_PowerIoc := tsc_PowerIocDef, PowerIor_Type p_PowerIor := tsc_PowerIorDef, template (value) PilotOffset_Type p_PilotOffset := tsc_PilotOffsetHRPDDef) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ PowerIoc := p_PowerIoc, PowerIor := p_PowerIor, PilotOffset := p_PilotOffset @@ -78,7 +78,7 @@ module CDMA2000_CellInfo { ARFCN_ValueCDMA2000_Type p_ChannelNum , //@sic R5-110332 sic@ BandclassCDMA2000_Type p_Bandclass := px_HRPD_BandClass, template (value) SearchWindowSizeRecord_Type p_SearchWindow := cs_SearchWindow_Def) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Type := typeHRPD, CarrierFreq := cs_CarrierFreqCDMA2000_Def(p_Bandclass, p_ChannelNum), // Contains bandclass and arfcn i.e. 11 bit channel number PhysCellId := p_PNOffset, // PN offset of pilot 0..511 @@ -91,7 +91,7 @@ module CDMA2000_CellInfo { template (value) SectorID_RTT1X_Type cs_SectorID_RTT1X_Def (B16_Type p_BaseId := px_1XRTT_BaseId_Cell19, B16_Type p_NID := px_1XRTT_NID, B15_Type p_SID :=int2bit (200,15)):= //@sic R5-133365 sic@ - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ BaseId := p_BaseId, NID := p_NID, SID := p_SID @@ -102,7 +102,7 @@ module CDMA2000_CellInfo { ARFCN_ValueCDMA2000_Type p_ChannelNum , //@sic R5-110332 sic@ BandclassCDMA2000_Type p_Bandclass := px_1XRTT_BandClass, template (value) SearchWindowSizeRecord_Type p_SearchWindow := cs_SearchWindow_Def) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Type := type1XRTT, CarrierFreq := cs_CarrierFreqCDMA2000_Def(p_Bandclass, p_ChannelNum), // Contains bandclass and arfcn i.e. 11 bit channel number PhysCellId := p_PNOffset, // PN offset of pilot 0..511 @@ -115,14 +115,14 @@ module CDMA2000_CellInfo { template (value) SearchWindowSizeRecord_Type cs_SearchWindow_Def (SearchWindowSize_Type p_SearchWindow_Active := tsc_SearchWindowDef, SearchWindowSize_Type p_SearchWindow_Neighbor := tsc_SearchWindowDef, SearchWindowSize_Type p_SearchWindow_Remaining := tsc_SearchWindowDef) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ SearchWindow_Active := p_SearchWindow_Active, /* Search Window for Active Cells */ SearchWindow_Neighbor := p_SearchWindow_Neighbor, /* Search Window for Neighbor Cells */ SearchWindow_Remaining := p_SearchWindow_Remaining /* Search Window for Rest Cells */ }; template (value) CDMA2000_CommonCellInfo_Type cs_CDMA2000_CommonCellInfo_Def (template (value) CDMA2000_CellParameters_Type p_CDMA2000_CellParameters) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ CommonCellParams := p_CDMA2000_CellParameters }; @@ -138,7 +138,7 @@ module CDMA2000_CellInfo { PDN_Id_Type p_PDN_Id := tsc_PDN_Id, template (value) PDN_Address_Type p_PDN_Address := cs_PDN_Address_Def, template (value) UATI_Type p_UATI := cs_UATI_Def) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ SystemType := p_SystemType, SubNetMask := p_SubNetMask, ColorCode := p_ColorCode, @@ -155,7 +155,7 @@ module CDMA2000_CellInfo { template (value) TMSI_Type cs_TMSI_Def (TMSI_Zone_Type p_TMSI_Zone :=tsc_TMSI_ZoneDef, TMSI_Code_Type p_TMSI_Code := px_1XRTT_TMSI_Def):= /* Globally unique TMSI as defined in C.s0005 clause 3.7.2.3.2.19 */ - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ TMSI_ZoneLen := lengthof (p_TMSI_Zone), /* Length of TMSI_Zone 1..8 */ TMSI_Zone := p_TMSI_Zone, /* TMSI_ZoneLen octets of TMSI_Zone */ TMSI_Code := p_TMSI_Code /* TMSI code */ @@ -170,7 +170,7 @@ module CDMA2000_CellInfo { ProtRev_Type p_Min_ProtRev :=px_1XRTT_MinProtRev , EncryptionMode_Type p_Sig_EncryptionMode :=px_1XRTT_Sig_EncMode, EncryptionMode_Type p_USerInfo_EncryptionMode :=px_1XRTT_UserInfo_EncMode) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Reg_Zone := p_Reg_Zone, Base_Class := p_Base_Class, MCC := p_MCC, @@ -183,19 +183,19 @@ module CDMA2000_CellInfo { }; template (value) ModeSpecificCellParams_Type cs_ModeSpecificCellParams_HRPD_Def (template (value) HRPD_CellParameters_Type p_HRPD_CellParameters) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ HRPD := p_HRPD_CellParameters }; template (value) ModeSpecificCellParams_Type cs_ModeSpecificCellParams_RTT1X_Def (template (value) RTT1X_CellParameters_Type p_RTT1X_CellParameters) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ RTT1X := p_RTT1X_CellParameters }; template (value) CDMA2000_AbsoluteCellPower_Type cs_CDMA2000_AbsoluteCellPower_Def (PowerIor_Type p_PowerIor := tsc_PowerIorDef, PowerIoc_Type p_PowerIoc := tsc_PowerIocDef, PilotOffset_Type p_PilotOffset := tsc_PilotOffsetHRPDDef) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ PowerIoc := p_PowerIoc, PowerIor := p_PowerIor, PilotOffset := p_PilotOffset @@ -206,7 +206,7 @@ module CDMA2000_CellInfo { PowerIor_Type p_PowerIor := tsc_PowerIorDef, PowerIoc_Type p_PowerIoc := tsc_PowerIocDef, PilotOffset_Type p_PilotOffset:= tsc_PilotOffsetHRPDDef) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ CommonCellInfo := cs_CDMA2000_CommonCellInfo_Def (p_CDMA2000_CellParameters), ReferenceCellPower := cs_CDMA2000_ReferenceCellPower_Def(cs_CDMA2000_AbsoluteCellPower_Def (p_PowerIor, p_PowerIoc, p_PilotOffset), cs_CDMA2000_Attenuation_Def), @@ -218,7 +218,7 @@ module CDMA2000_CellInfo { * @desc Access to Cell Array * @param p_CellId * @return integer - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_GetIndex (CDMA2000_CellId_Type p_CellId) return integer { @@ -272,7 +272,7 @@ module CDMA2000_CellInfo { * @desc Function to convert BCD MCC to 10 binary bits: Reference C.S0005 clause 2.3.1.1 * @param p_MCC * @return B10_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function fl_ConvertMCC_T0_B10 (MCC_Type p_MCC) return B10_Type { @@ -295,7 +295,7 @@ module CDMA2000_CellInfo { * @desc Function to convert BCD MNC to 7 binary bits: as per C.S0005 clause 2.3.1.2 * @param p_MNC * @return B7_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function fl_ConvertMNC_T0_B7 (MNC_Type p_MNC) return B7_Type { @@ -319,7 +319,7 @@ module CDMA2000_CellInfo { * @param p_CellId * @param p_BandClass * @return ARFCN_ValueCDMA2000_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_HRPD_CalculateChannelNumber(CDMA2000_CellId_Type p_CellId, BandclassCDMA2000_Type p_BandClass) return ARFCN_ValueCDMA2000_Type @@ -455,7 +455,7 @@ module CDMA2000_CellInfo { } case else { - FatalError (__FILE__, __LINE__, "Band class FFS or not defined"); + FatalError (__FILE__, __LINE__, "Band class not defined"); } } @@ -467,7 +467,7 @@ module CDMA2000_CellInfo { * @param p_CellId * @param p_BandClass * @return ARFCN_ValueCDMA2000_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_RTT1X_CalculateChannelNumber(CDMA2000_CellId_Type p_CellId, BandclassCDMA2000_Type p_BandClass) return ARFCN_ValueCDMA2000_Type @@ -604,7 +604,7 @@ module CDMA2000_CellInfo { } case else { - FatalError (__FILE__, __LINE__, "Band class FFS or not defined"); + FatalError (__FILE__, __LINE__, "Band class not defined"); } } @@ -615,7 +615,7 @@ module CDMA2000_CellInfo { * @desc Function to initialise cell info for a cell * @param p_CellId * @return CDMA2000_CellInfo_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_Init (CDMA2000_CellId_Type p_CellId) return CDMA2000_CellInfo_Type { @@ -713,7 +713,7 @@ module CDMA2000_CellInfo { /* * @desc initialises the CDMA 2000 cell arrays for 8 cells * @return CDMA2000_CellArray_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellArray_Init () return CDMA2000_CellArray_Type { @@ -798,7 +798,7 @@ module CDMA2000_CellInfo { * @desc To initilise a co-ordination message for a single CDMA200 cell * @param p_CellInfo * @return template (value) CoOrd_CDMA2000SysInfo_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_IR_InitSingleSysInfo (CDMA2000_CellInfo_Type p_CellInfo) return template (value) CoOrd_CDMA2000SysInfo_Type { //@sic R5s100848 sic@ @@ -833,7 +833,7 @@ module CDMA2000_CellInfo { * @param p_CellInfo * @param p_CDMA2K_Type (default value: typeHRPD) * @return template (value) IRAT_CoOrd_SysInfo_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_IR_SysInfoInit (CDMA2000_CellArray_Type p_CellInfo, CDMA2K_Type p_CDMA2K_Type := typeHRPD) diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CommonDefs.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CommonDefs.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CommonDefs.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CommonDefs.ttcn index e9c2066..4324822 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CommonDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CommonDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-06-22 12:16:53 +0200 (Sat, 22 Jun 2013) $ // $Rev: 9022 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CommonFunctions.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CommonFunctions.ttcn index 808a922..81b387b 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-05 09:48:39 +0200 (Thu, 05 Jun 2014) $ -// $Rev: 11544 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ /******************************************************************************/ module CDMA2000_CommonFunctions @@ -28,7 +28,7 @@ module CDMA2000_CommonFunctions * @desc Generic function for HRPD/RTT1X Cell Configuration * @param p_CellId * @param p_SYSTEM_CTRL_REQ - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_SS_CommonCellConfig(CDMA2000_CellId_Type p_CellId, template (value) CDMA2000_SYSTEM_CTRL_REQ p_SYSTEM_CTRL_REQ) runs on CDMA2000_PTC @@ -43,7 +43,7 @@ module CDMA2000_CommonFunctions /* * @desc Configures HRPD cell * @param p_CellId - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CreateCell_HRPD (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC { @@ -57,7 +57,7 @@ module CDMA2000_CommonFunctions /* * @desc Configures HRPD cell * @param p_CellId - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CreateCell_RTT1X (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC { @@ -71,7 +71,7 @@ module CDMA2000_CommonFunctions /* * @desc Function that will be called in test cases to create a CDMA2000 cell * @param p_CellId - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000CreateCell (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC { @@ -95,7 +95,7 @@ module CDMA2000_CommonFunctions * if cell non specific ID is used all configured cells will be released * (default value: cdma2000_Cell_NonSpecific) * @param p_TimingInfo (default value: cs_CDMA2000_TimingInfoNow) - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_ReleaseCells (CDMA2000_CellId_Type p_CellId := cdma2000_Cell_NonSpecific, template (value) CDMA2000_TimingInfo_Type p_TimingInfo := cs_CDMA2000_TimingInfoNow) runs on CDMA2000_PTC @@ -112,7 +112,7 @@ module CDMA2000_CommonFunctions * @param p_CellId * @param p_NewPowerLevel absolute (negative) value of Ior calcualted at time instance * @return CDMA2000_Attenuation_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function fl_CDMA2000_ChangeCellAttenuation(CDMA2000_CellId_Type p_CellId, PowerIor_Type p_NewPowerLevel) runs on CDMA2000_PTC return CDMA2000_Attenuation_Type @@ -142,17 +142,17 @@ module CDMA2000_CommonFunctions //---------------------------------------------------------------------------- - type record CDMA2000_CellPower_Type { /* @status APPROVED (LTE_IRAT) */ + type record CDMA2000_CellPower_Type { /* @status APPROVED (LTE_A, LTE_IRAT) */ CDMA2000_CellId_Type CellId, PowerIor_Type NewPowerLevel }; type record length(1..tsc_CDMA2000_MaxNumberOfCells) of CDMA2000_CellPower_Type CDMA2000_CellPowerList_Type; /* used together with f_CDMA2000_SetCellPowerList - @status APPROVED (LTE_IRAT) */ + @status APPROVED (LTE_A, LTE_IRAT) */ template (value) CDMA2000_CellPower_Type cs_CDMA2000_CellPower(CDMA2000_CellId_Type p_CellId, PowerIor_Type p_NewPowerLevel) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ CellId := p_CellId, NewPowerLevel := p_NewPowerLevel }; @@ -165,7 +165,7 @@ module CDMA2000_CommonFunctions */ function f_CDMA2000_SetCellPowerList (template (value) CDMA2000_CellPowerList_Type p_CellPowerList, template (value) CDMA2000_TimingInfo_Type p_TimingInfo := cs_CDMA2000_TimingInfoNow) runs on CDMA2000_PTC - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ var integer i; var CDMA2000_CellPower_Type v_CellPower; var CDMA2000_CellAttenuationList_Type v_CellAttenuationList; @@ -177,7 +177,7 @@ module CDMA2000_CommonFunctions } SYS.send( cas_CDMA2000_CellConfig_Power_REQ ( v_CellAttenuationList, p_TimingInfo ) ); - SYS.receive ( car_CDMA2000_CellConfig_Power_CNF ); //TBD ASP can be car_CDMA2000_CellConfig_Power_CNF + SYS.receive ( car_CDMA2000_CellConfig_Power_CNF ); // } //---------------------------------------------------------------------------- @@ -186,7 +186,7 @@ module CDMA2000_CommonFunctions * @param p_CellId * @param p_NewPowerLevel absolute (negative) value as specified in the test prose * @param p_TimingInfo (default value: cs_CDMA2000_TimingInfoNow) - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_SetCellPower (CDMA2000_CellId_Type p_CellId, PowerIor_Type p_NewPowerLevel, @@ -349,11 +349,12 @@ module CDMA2000_CommonFunctions * @desc Performs a Registration procedure on an RTT1X cell as defined in clause 10.4.1.1 of 36.523-3 * @param p_CellId * @param p_PreReg (default value: false) - * @status + * @param p_RAND + * @status APPROVED (LTE_IRAT) */ - function f_CDMA2000_OrderedRegisterRTT1XCell (CDMA2000_CellId_Type p_CellId, - boolean p_PreReg := false, // no pre registration - B32_Type p_RAND) runs on CDMA2000_PTC + function f_CDMA2000_OrderedRegisterRTT1XCell(CDMA2000_CellId_Type p_CellId, + boolean p_PreReg := false, // no pre registration + B32_Type p_RAND) runs on CDMA2000_PTC { timer t_Watchdog := tsc_WatchDogDef; @@ -373,6 +374,7 @@ module CDMA2000_CommonFunctions cr_SysInd_CS_RegCmpl(cr_CS_RegCmplInd_Def(orderedAttach)))); t_Watchdog.stop; } + //---------------------------------------------------------------------------- /* * @desc Performs a PRe-Registration procedure on an HRPD [clause 4.5.2b of 36.508]/ RTT1X cell [clause 4.5.2c of 36.508] @@ -463,7 +465,7 @@ module CDMA2000_CommonFunctions /* * @desc To send IRAT sys info to EUTRA PTC * @param p_CellId - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_Send_IR_SysInfoToEUTRA (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC { //@sic R5s100848 sic@ @@ -519,25 +521,30 @@ module CDMA2000_CommonFunctions else { // The power must be removed from the UE f_UT_PowerOffUE (UT); } - }// end of f_HRPD_DetachOnSwitchOff + } /* * @desc Detach the UE and switch it off * @param p_CellId + * @param p_State (default value: idle) * @status APPROVED (LTE_IRAT) */ - function f_RTT1X_DetachOnSwitchOff(CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC + function f_RTT1X_DetachOnSwitchOff(CDMA2000_CellId_Type p_CellId, //@sic R5s150536 sic@ + RTT1X_UE_StateType p_State := idle) runs on CDMA2000_PTC { if (pc_SwitchOnOff) { // The UE can actually be switched off - + SYSCMD_IND.send (cas_RTT1X_SYSTEM_CMD(p_CellId, -, // timing info now cs_RTT1X_DetachOnSwitchOff)); f_UT_SwitchOffUE (UT, false); - SYSCMD_IND.receive(car_RTT1X_SYSTEM_IND (p_CellId, - -, // Routing info none - -, // timing info now - cr_RTT1X_SysInd_InitialAccesProbRcvd)); + //@sic R5s150536 sic@ + if (p_State == idle) { //Access probe received only in Idle state; not received in pre-registration or Connected states. + SYSCMD_IND.receive(car_RTT1X_SYSTEM_IND (p_CellId, + -, // Routing info none + -, // timing info now + cr_RTT1X_SysInd_InitialAccesProbRcvd)); + } SYSCMD_IND.receive(car_RTT1X_SYSTEM_IND (p_CellId, -, // Routing info none -, // timing info now @@ -546,7 +553,7 @@ module CDMA2000_CommonFunctions else { // The power must be removed from the UE f_UT_PowerOffUE (UT); } - }// end of f_RTT1X_DetachOnSwitchOff + } /* * @desc Detach the UE and switch it off @@ -582,13 +589,15 @@ module CDMA2000_CommonFunctions /* * @desc RTT1X Postamble * @param p_CellId + * @param p_State (default value: idle) * @status APPROVED (LTE_IRAT) */ - function f_RTT1X_Postamble (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC + function f_RTT1X_Postamble (CDMA2000_CellId_Type p_CellId, // @sic R5s150536 sic@ + RTT1X_UE_StateType p_State := idle) runs on CDMA2000_PTC { - f_RTT1X_DetachOnSwitchOff(p_CellId); + f_RTT1X_DetachOnSwitchOff(p_CellId, p_State); //@sic R5s150536 sic@ f_CDMA2000_ReleaseCells(); //Delete all configured CDMA2000 cells - }// end of f_RTT1X_Postamble + } //---------------------------------------------------------------------------- /* @@ -659,15 +668,15 @@ module CDMA2000_CommonFunctions //---------------------------------------------------------------------------- /* - * @desc Performs CSFB call Rejecet on 1XRTT cell + * @desc Performs CSFB call Rejecet on 1XRTT cell * @param p_CellId * @param p_RTT1X_CS_CallType - * @param p_EmergCall - * @status + * @param p_EmergCall (default value: false) + * @status APPROVED (LTE_IRAT) */ - function f_CDMA2000_E_CSFB_FromEUTRA_1XRTT_Rej (CDMA2000_CellId_Type p_CellId, - template (value) RTT1X_CS_CallType p_RTT1X_CS_CallType, - boolean p_EmergCall := false) runs on CDMA2000_PTC + function f_CDMA2000_E_CSFB_FromEUTRA_1XRTT_Rej(CDMA2000_CellId_Type p_CellId, + template (value) RTT1X_CS_CallType p_RTT1X_CS_CallType, + boolean p_EmergCall := false) runs on CDMA2000_PTC { timer t_Watchdog := tsc_WatchDogDef ; // Local wait Timer t_Watchdog.start; diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Component.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Component.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Component.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Component.ttcn index a3ffed5..84caeed 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Component.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-23 17:02:33 +0200 (Fri, 23 May 2014) $ -// $Rev: 11318 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 01:24:08 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13497 $ /******************************************************************************/ module CDMA2000_Component { @@ -20,7 +20,7 @@ module CDMA2000_Component { //============================================================================ - type enumerated CDMA_Default_Enum_Type {StandardDefault}; /* @status APPROVED (LTE_IRAT) */ + type enumerated CDMA_Default_Enum_Type {StandardDefault}; /* @status APPROVED (LTE_A, LTE_IRAT) */ type record CDMA2000_Ctrl_Type { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ default Default, @@ -65,7 +65,7 @@ module CDMA2000_Component { //============================================================================ /* * @desc standard default behaviour - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ altstep a_CDMA2000_StandardDefault() runs on CDMA2000_PTC { @@ -92,7 +92,7 @@ module CDMA2000_Component { /* * @desc to activate the standard default behaviour * @param p_Default - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_ActivateDefault(CDMA_Default_Enum_Type p_Default) runs on CDMA2000_PTC { @@ -114,7 +114,7 @@ module CDMA2000_Component { /* * @desc to deal with entry and exit of the test body * @param p_TestBodyFlag - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_TestBody_Set(boolean p_TestBodyFlag) runs on CDMA2000_PTC { @@ -124,7 +124,7 @@ module CDMA2000_Component { /* * @desc check whether test body is active * @return boolean - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function fl_CDMA2000_TestBody_Check() runs on CDMA2000_PTC return boolean { @@ -136,7 +136,7 @@ module CDMA2000_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_SetVerdictFailOrInconc(charstring p_FileName, LineNo_Type p_LineNo, @@ -172,7 +172,7 @@ module CDMA2000_Component { * @desc initialisation of the CDMA2000 PTC * @param p_ConfiguredPTCs * @param p_CDMA2K_Type (default value: typeHRPD) - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_Init(IRAT_ConfiguredPTCs_Type p_ConfiguredPTCs, CDMA2K_Type p_CDMA2K_Type := typeHRPD) runs on CDMA2000_PTC @@ -202,7 +202,7 @@ module CDMA2000_Component { * @desc To get the index in cell info variable for a given cell ID * @param p_CellId * @return integer - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_GetIndex (CDMA2000_CellId_Type p_CellId) return integer { @@ -240,7 +240,7 @@ module CDMA2000_Component { * @desc Assign the parameterised Attenuation in the CDMA2000_CellInfo * @param p_CellId * @param p_ReferenceCellPower - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_SetCellPower ( CDMA2000_CellId_Type p_CellId, template (value) CDMA2000_ReferenceCellPower_Type p_ReferenceCellPower ) runs on CDMA2000_PTC @@ -255,7 +255,7 @@ module CDMA2000_Component { * @desc Return the Cell power parameters stored in the CDMA2000_CellInfo * @param p_CellId * @return CDMA2000_ReferenceCellPower_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_GetCellPower ( CDMA2000_CellId_Type p_CellId ) runs on CDMA2000_PTC return CDMA2000_ReferenceCellPower_Type { @@ -269,7 +269,7 @@ module CDMA2000_Component { * @param p_PowerIoc (default value: tsc_PowerIocDef) * @param p_PowerIor (default value: tsc_PowerIorDef) * @param p_PilotOffset - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_InitMaxReferencePower ( CDMA2000_CellId_Type p_CellId, PowerIoc_Type p_PowerIoc := tsc_PowerIocDef, @@ -306,7 +306,7 @@ module CDMA2000_Component { * @desc Set info of cell with given index (p_CellId) * @param p_CellId * @param p_CellInfo - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_Set(CDMA2000_CellId_Type p_CellId, template (value) CDMA2000_CellInfo_Type p_CellInfo) runs on CDMA2000_PTC @@ -333,7 +333,7 @@ module CDMA2000_Component { * @desc get info of cell with given index (p_CellId) * @param p_CellId * @return CDMA2000_CellInfo_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellInfo_Get(CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC return CDMA2000_CellInfo_Type { @@ -345,7 +345,7 @@ module CDMA2000_Component { * @desc To find if the cell is of Type HRPD or 1XRTT * @param p_CellId * @return CDMA2K_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_Type_Get (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC return CDMA2K_Type { @@ -357,7 +357,7 @@ module CDMA2000_Component { * @desc To get Mode specific parameters of a HRPD cell * @param p_CellId * @return HRPD_CellParameters_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_HRPD_CellParameters_Get (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC return HRPD_CellParameters_Type { @@ -373,7 +373,7 @@ module CDMA2000_Component { * @desc To get Mode specific parameters of a 1xRTT cell * @param p_CellId * @return RTT1X_CellParameters_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_RTT1X_CellParameters_Get (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC return RTT1X_CellParameters_Type { @@ -390,7 +390,7 @@ module CDMA2000_Component { * @desc read the cell power * @param p_CellId * @return CDMA2000_AbsoluteCellPower_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CellPower_Get (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC return CDMA2000_AbsoluteCellPower_Type { @@ -402,7 +402,7 @@ module CDMA2000_Component { * @desc get the common cell info parameters of a cell * @param p_CellId * @return CDMA2000_CellParameters_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_CDMA2000_CommonCellParameters_Get (CDMA2000_CellId_Type p_CellId) runs on CDMA2000_PTC return CDMA2000_CellParameters_Type { diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Constants.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Constants.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Constants.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Constants.ttcn index b9d9fc9..7c9a9cb 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Constants.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Constants.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-04-07 21:15:34 +0200 (Sun, 07 Apr 2013) $ // $Rev: 8465 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Templates.ttcn b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Templates.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Templates.ttcn index 4dcb1db..3667309 100644 --- a/LTE_A_IWD_14wk37/Common/C2K/CDMA2000_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/C2K/CDMA2000_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-08-28 00:36:51 +0200 (Wed, 28 Aug 2013) $ -// $Rev: 9473 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 01:24:08 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13497 $ /******************************************************************************/ module CDMA2000_Templates { @@ -24,18 +24,18 @@ module CDMA2000_Templates { //============================================================================ template (value) PDN_Address_Type cs_PDN_Address_IPv4 (IPv4_Address_Type p_Address) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ IPv4 := p_Address }; template (value) PDN_Address_Type cs_PDN_Address_IPv6 (IPv6_Address_Type p_Address) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ IPv6 := p_Address }; template (value) PDN_Address_Type cs_PDN_Address_IPv4v6 (IPv4_Address_Type p_AddressV4, IPv6_Address_Type p_AddressV6) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ IPv4v6 := { IPv4 := p_AddressV4, IPv6 := p_AddressV6 @@ -45,9 +45,9 @@ module CDMA2000_Templates { /* * @desc To generate the PDN address based on PIXITS and UE capability for IPv6 and IPv4 * @return template (value) PDN_Address_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ - function fl_GeneratePDN_Address () return template (value) PDN_Address_Type + function fl_GeneratePDN_Address() return template (value) PDN_Address_Type { /* @sic R5s130362 - MCC160 Implementation: tsc_PDN_AddressInfo sic@ */ var charstring v_IPv4_Address_UE := tsc_PDN1_AddressInfo.UE_IPAddressIPv4; var charstring v_IPv6_Address_UE := tsc_PDN1_AddressInfo.UE_IPAddressIPv6; @@ -71,17 +71,17 @@ module CDMA2000_Templates { return v_PDN_Address; }; - template (value) PDN_Address_Type cs_PDN_Address_Def := fl_GeneratePDN_Address (); /* @status APPROVED (LTE_IRAT) */ + template (value) PDN_Address_Type cs_PDN_Address_Def := fl_GeneratePDN_Address (); /* @status APPROVED (LTE_A, LTE_IRAT) */ //============================================================================ template (value) CDMA2000_RoutingInfo_Type crs_RoutingInfoNone := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ None := true }; template (value) CDMA2000_TimingInfo_Type cs_CDMA2000_TimingInfoNow := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Now := true }; @@ -108,7 +108,7 @@ module CDMA2000_Templates { }; template (present) CDMA2000_CnfAspCommonPart_Type cr_CDMA2000_CnfAspCommonPart_CellCfg (CDMA2000_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ CellId := p_CellId, RoutingInfo := { None := true }, TimingInfo := ?, @@ -118,7 +118,7 @@ module CDMA2000_Templates { template (value) CDMA2000_ReqAspCommonPart_Type cs_CDMA2000_ReqAspCommonPart_Common (CDMA2000_CellId_Type p_CellId, template (value) CDMA2000_TimingInfo_Type p_TimingInfo := cs_CDMA2000_TimingInfoNow, boolean p_CnfFlag := true) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ CellId := p_CellId, RoutingInfo := crs_RoutingInfoNone, TimingInfo := p_TimingInfo, @@ -129,7 +129,7 @@ module CDMA2000_Templates { }; template (value) CDMA2000_InitialCellPower_Type cs_CDMA2000_InitialCellPower (template (value) CDMA2000_AbsoluteCellPower_Type p_MaxReferencePower) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ MaxReferencePower := p_MaxReferencePower, Attenuation := tsc_CDMA2000_Attenuation_Off }; @@ -139,7 +139,7 @@ module CDMA2000_Templates { template (value) HRPD_CellParameters_Type p_HRPD_CellParameters, template (value) CDMA2000_AbsoluteCellPower_Type p_ReferencePower, template (value) CDMA2000_TimingInfo_Type p_TimingInfo := cs_CDMA2000_TimingInfoNow):= - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Common := cs_CDMA2000_ReqAspCommonPart_Common (p_CellId, p_TimingInfo), Request := { Cell := { @@ -159,7 +159,7 @@ module CDMA2000_Templates { template (value) RTT1X_CellParameters_Type p_RTT1X_CellParameters, template (value) CDMA2000_AbsoluteCellPower_Type p_ReferencePower, template (value) CDMA2000_TimingInfo_Type p_TimingInfo := cs_CDMA2000_TimingInfoNow):= - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Common := cs_CDMA2000_ReqAspCommonPart_Common (p_CellId, p_TimingInfo), Request := { Cell := { @@ -176,7 +176,7 @@ module CDMA2000_Templates { template (value) CDMA2000_SYSTEM_CTRL_REQ cas_CDMA2000_CellRel_REQ (CDMA2000_CellId_Type p_CellId := cdma2000_Cell_NonSpecific, // Release all cells template (value) CDMA2000_TimingInfo_Type p_TimingInfo := cs_CDMA2000_TimingInfoNow) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Common := cs_CDMA2000_ReqAspCommonPart_Common (p_CellId, p_TimingInfo), Request := { Cell := { @@ -188,7 +188,7 @@ module CDMA2000_Templates { template (value) CDMA2000_SYSTEM_CTRL_REQ cas_CDMA2000_CellConfig_Power_REQ (template (value) CDMA2000_CellAttenuationList_Type p_CellAttenuationList, template (value) CDMA2000_TimingInfo_Type p_TimingInfo) := { /* ASPs to modify cell power */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (LTE_A, LTE_IRAT) */ Common := cs_CDMA2000_ReqAspCommonPart_Common (cdma2000_Cell_NonSpecific, p_TimingInfo), Request := { CellAttenuationList := p_CellAttenuationList @@ -196,7 +196,7 @@ module CDMA2000_Templates { }; template (present) CDMA2000_SYSTEM_CTRL_CNF car_CDMA2000_CellConfig_CNF (CDMA2000_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Common := cr_CDMA2000_CnfAspCommonPart_CellCfg(p_CellId), Confirm := { Cell := true @@ -204,7 +204,7 @@ module CDMA2000_Templates { }; template (present) CDMA2000_SYSTEM_CTRL_CNF car_CDMA2000_CellConfig_Power_CNF := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Common := cr_CDMA2000_CnfAspCommonPart_CellCfg(cdma2000_Cell_NonSpecific), Confirm := { CellAttenuationList := true @@ -214,13 +214,13 @@ module CDMA2000_Templates { group HRPD_SysIndicationAndCommands { template (value) UATI104_Type cs_UATI104_None := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ None := true }; template (value) UATI_Type cs_UATI_Def(O3_Type p_UATI24 := px_UATI24, //@sic R5-120721 sic@ template (value) UATI104_Type p_UATI104 := cs_UATI104_None) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ UATI24 := p_UATI24, UATI104 := p_UATI104 }; @@ -272,7 +272,7 @@ module CDMA2000_Templates { }; template (value) RTT1X_SystemCommand_Type cs_RTT1X_SysCmd_E_CSFB_CallRej_Def(template (value) RTT1X_CS_CallType p_RTT1X_CS_CallType) := - { + { /* @status APPROVED (LTE_IRAT) */ E_CSFB_Call_Reject := p_RTT1X_CS_CallType }; @@ -289,7 +289,7 @@ module CDMA2000_Templates { template (value) RTT1X_SystemCommand_Type cs_RTT1X_SysCmd_OrderedReg_Def(RTT1XAttachType p_AttachType, boolean p_PreReg := false, // no pre registration B32_Type p_RAND) := - { + { /* @status APPROVED (LTE_IRAT) */ CS_OrderedRegistration := { AttachType := p_AttachType, IsPreRegistration := p_PreReg, @@ -393,7 +393,7 @@ module CDMA2000_Templates { }; template (present) RTT1X_SystemIndication_Type cr_RTT1X_SysInd_E_CSFB_CallRej(template (present) ECSFB_CallRejInd_Type p_ECSFB_CallRejInd) := - { + { /* @status APPROVED (LTE_IRAT) */ ECSFB_CallRejInd := p_ECSFB_CallRejInd }; @@ -424,10 +424,10 @@ module CDMA2000_Templates { }; template (present) ECSFB_CallRejInd_Type cr_CS_CallRejInd(template (present) RTT1X_CS_CallType p_RTT1X_CS_CallType, - boolean p_EmergCall := false) := - { + boolean p_EmergCall := false) := + { /* @status APPROVED (LTE_IRAT) */ CS_CallEstRejected := p_RTT1X_CS_CallType, /* Received Origination message for MO and Page Response for MT, Respond with 1xRTT Release Order message */ - IsEmergencyCall := p_EmergCall + IsEmergencyCall := p_EmergCall }; template (present) ECSFB_CallCmplInd_Type cr_ECSFB_CallCmplInd_Type(template (present) RTT1X_CS_CallType p_RTT1X_CS_CallType, diff --git a/LTE_A_IWD_14wk37/Common/Common/CommonDefs.ttcn b/LTE_A_IWD_15wk38/Common/Common/CommonDefs.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/Common/CommonDefs.ttcn rename to LTE_A_IWD_15wk38/Common/Common/CommonDefs.ttcn index 47f1330..a6e74c0 100644 --- a/LTE_A_IWD_14wk37/Common/Common/CommonDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/Common/CommonDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:44:18 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12148 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 14:41:28 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13929 $ /******************************************************************************/ module CommonDefs { @@ -31,6 +31,7 @@ module CommonDefs { type bitstring B14_Type length(14); type bitstring B15_Type length(15); type bitstring B16_Type length(16); + type bitstring B18_Type length(18); type bitstring B20_Type length(20); type bitstring B24_Type length(24); type bitstring B27_Type length(27); @@ -99,6 +100,7 @@ module CommonDefs { type enumerated SinglePLMN_TestedType {SinglePLMN, MultiPLMN, MultiPLMNinPrimaryBand, MultiPLMNinSecondaryBand}; // @sic R5-123667 sic@ type enumerated EUTRA_ATTACH_TESTED_Type { EPS_ATTACH_ONLY, COMBINED_ATTACH}; type enumerated NAS_ATTACH_STATE_Type {ATTACHED, DETACHED}; + type enumerated EUTRA_FDD_TDD_Mode_Type {FDD, TDD}; type enumerated UTRAN_FDD_TDD_Type {UTRAN_FDD, UTRAN_TDD}; type enumerated RATComb_Tested_Type {EUTRA_UTRA, EUTRA_GERAN, EUTRA_Only}; @@ -188,6 +190,10 @@ module CommonDefs { gea4(4) }; + type O4_Type MessageAuthenticationCode; /* 24.301 cl. 9.5 */ + type O4_Type NasCount_Type; + + type enumerated IPCAN_RAN_Type { /* radio access network technology used by the IPCAN PTC */ GERAN, UTRAN_FDD, @@ -435,7 +441,7 @@ module CommonDefs { return -1; } - function fl_StringToLowerOrLower(boolean p_ToLower, + function fl_StringToUpperOrLower(boolean p_ToLower, charstring p_String) return charstring { var integer i; @@ -461,12 +467,12 @@ module CommonDefs { function f_StringToLower(charstring p_String) return charstring { - return fl_StringToLowerOrLower(true, p_String); + return fl_StringToUpperOrLower(true, p_String); } function f_StringToUpper(charstring p_String) return charstring { - return fl_StringToLowerOrLower(false, p_String); + return fl_StringToUpperOrLower(false, p_String); } //---------------------------------------------------------------------------- @@ -504,7 +510,7 @@ module CommonDefs { function f_StringJoin(CharStringList_Type p_StringList, charstring p_JoinString := " ") return charstring - { + { /* similar to TCL's join function, but skips empty strings */ var CharStringList_Type v_StringList; var charstring v_String := ""; var integer i; @@ -877,6 +883,19 @@ module CommonDefs { return (substr(p_Bitstring, p_Index, 1) == '1'B); } + //---------------------------------------------------------------------------- +// Moved here because now needed in Authentication_Init (i.e. GERAN and UTRAN PTCs too) + const integer tsc_KDF_HMAC_SHA_256 := 1; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const integer tsc_KDF_Spare3 := 4; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type integer KDF_Type ( tsc_KDF_HMAC_SHA_256 .. tsc_KDF_Spare3 ); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + external function fx_KeyDerivationFunction(KDF_Type p_KDF, + B256_Type p_Key, + octetstring p_String) return B256_Type; + /* External function to hashing function with algorithm as defined in 33.401; + SHA-256 encoding algorithm used as KEY Description Function + @status APPROVED (LTE) */ + //---------------------------------------------------------------------------- /* system time acc. to default C library (see time.h) */ diff --git a/LTE_A_IWD_14wk37/Common/Common/CommonIratDefs.ttcn b/LTE_A_IWD_15wk38/Common/Common/CommonIratDefs.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/Common/CommonIratDefs.ttcn rename to LTE_A_IWD_15wk38/Common/Common/CommonIratDefs.ttcn index d8b364f..f7a24cb 100644 --- a/LTE_A_IWD_14wk37/Common/Common/CommonIratDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/Common/CommonIratDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 01:24:08 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13497 $ /******************************************************************************/ module CommonIratDefs { @@ -133,8 +133,8 @@ module CommonIratDefs { integer CA_Tested_Integer optional, O3_Type PLMN optional, // the PLMN of the cell, defined in octets B28_Type CellId optional, // the EUTRA cell identity - B16_Type TAC optional - + B16_Type TAC optional, + integer freqBandIndicator optional }; type record EUTRA_HOInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -169,22 +169,22 @@ module CommonIratDefs { }; template (value) IRAT_Coordination_MSG cms_IRAT_Trigger := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ TriggerEvent := true }; template (present) IRAT_Coordination_MSG cmr_IRAT_Trigger := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ TriggerEvent := true }; template (value) IRAT_Coordination_MSG cms_IRAT_OctetData (octetstring p_Data) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ OctetData := p_Data }; template (present) IRAT_Coordination_MSG cmr_IRAT_OctetData := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ OctetData := ? }; @@ -196,7 +196,7 @@ module CommonIratDefs { template (omit) CoOrd_UIACap_Type p_UIACap := omit, // @sic R5s130680 sic@ template (omit) B20_Type p_StartPS := omit, template (omit) B20_Type p_StartCS := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Authentication := { AuthPS := p_PS, AuthCS := p_CS, @@ -210,7 +210,7 @@ module CommonIratDefs { }; template (present) IRAT_Coordination_MSG cmr_IRAT_AuthInfo := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Authentication := ? }; @@ -218,7 +218,7 @@ module CommonIratDefs { B8_Type p_MME_Code, B32_Type p_M_TMSI, template (omit) B16_Type p_PTMSISig := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ MME_GroupId := p_MME_GroupId, MME_Code := p_MME_Code, M_TMSI := p_M_TMSI, @@ -235,7 +235,7 @@ module CommonIratDefs { B28_Type p_CellIdentity, B16_Type p_LAC, B8_Type p_RAC) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ Freq := p_Freq, Band := p_Band, // @sic R5s130268: adding p_Band sic@ ScramblingCode := p_Code, @@ -254,7 +254,7 @@ module CommonIratDefs { B28_Type p_CellIdentity, B16_Type p_LAC, B8_Type p_RAC) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ Freq := p_Freq, CellParametersID := p_CellParametersID, Tstd := p_Tstd, @@ -271,7 +271,7 @@ module CommonIratDefs { template (value) CoOrd_UTRANSysInfo_Type p_Cell8, template (value) CoOrd_UTRANSysInfo_Type p_Cell9) := { /* UTRAN sys info to be sent from UTRAN-PTC to EUTRA-PTC */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ Utran := { p_Cell5, p_Cell7, @@ -298,7 +298,7 @@ module CommonIratDefs { B8_Type p_RAC, integer p_GPRSArfcn, template (omit) integer p_TCHArfcn := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Arfcn := p_Arfcn, // NeighCells := p_Neigh, @sic R5-120604 sic@ Ncc := p_Ncc, @@ -315,7 +315,7 @@ module CommonIratDefs { template (value) IRAT_CoOrd_SysInfo_Type cs_CoOrdGERAN_SysInfo (template (value) CoOrd_GERANSysInfo_Type p_Cell24, template (value) CoOrd_GERANSysInfo_Type p_Cell25, template (value) CoOrd_GERANSysInfo_Type p_Cell26) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Geran := { p_Cell24, p_Cell25, @@ -337,7 +337,7 @@ module CommonIratDefs { B16_Type p_NID, B15_Type p_SID, B12_Type p_RegZone_1XRTT) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ IsHRPD := p_IsHRPD, Arfcn := p_ARFCN, BandClass := p_BandClass, @@ -351,7 +351,7 @@ module CommonIratDefs { }; template (value) IRAT_CoOrd_SysInfo_Type cs_CoOrdCDMA2000_SysInfoOneCell (template (value) CoOrd_CDMA2000SysInfo_Type p_Cell) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Cdma2000 := {p_Cell} }; @@ -365,7 +365,7 @@ module CommonIratDefs { template (value) CoOrd_CDMA2000SysInfo_Type p_Cell16, template (value) CoOrd_CDMA2000SysInfo_Type p_Cell17, template (value) CoOrd_CDMA2000SysInfo_Type p_Cell18) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ Cdma2000 := { p_Cell15, p_Cell16, @@ -392,7 +392,8 @@ module CommonIratDefs { template (omit) integer p_CATested := omit, template (omit) O3_Type p_PLMN := omit, template (omit) B28_Type p_CellId := omit, - template (omit) B16_Type p_TAC := omit) := + template (omit) B16_Type p_TAC := omit, + template (omit) integer p_FreqBandIndicator := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Arfcn := p_Arfcn, DL_Bandwidth := p_DLBW, @@ -400,7 +401,8 @@ module CommonIratDefs { CA_Tested_Integer := p_CATested, PLMN := p_PLMN, CellId := p_CellId, - TAC := p_TAC + TAC := p_TAC, + freqBandIndicator := p_FreqBandIndicator }; template (value) IRAT_CoOrd_SysInfo_Type cs_CoOrdEUTRA_SysInfo (template (value) CoOrd_EUTRASysInfo_List_Type p_CoOrd_EUTRASysInfo_List) := @@ -416,13 +418,13 @@ module CommonIratDefs { template (value) IRAT_CoOrd_SysInfo_Type cs_CoOrdUTRAN_SysInfoSingleCell ( template (value) CoOrd_UTRANSysInfo_Type p_Cell ) := { // UTRAN sys info to be sent from UTRAN-PTC to EUTRA-PTC - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Utran := { p_Cell } }; template (value) IRAT_CoOrd_SysInfo_Type cs_CoOrdGERAN_SysInfoSingleCell ( template (value) CoOrd_GERANSysInfo_Type p_Cell ) := { // GERAN sys info to be sent from GERAN-PTC to EUTRA-PTC - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Geran := { p_Cell } }; @@ -446,7 +448,7 @@ module CommonIratDefs { * @desc send message to the other RAT * @param p_Port * @param p_Msg - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_IRAT_SendCoOrd(IRAT_CO_ORD_PORT p_Port, template (value) IRAT_Coordination_MSG p_Msg) @@ -478,7 +480,7 @@ module CommonIratDefs { /* * @desc wait for trigger sent by the other RAT * @param p_Port - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ altstep a_IRAT_WaitForCoOrd_Trigger (IRAT_CO_ORD_PORT p_Port) { @@ -489,7 +491,7 @@ module CommonIratDefs { /* * @desc wait for trigger sent by the other RAT * @param p_Port - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_IRAT_WaitForCoOrd_Trigger (IRAT_CO_ORD_PORT p_Port) { @@ -570,6 +572,7 @@ module CommonIratDefs { * @param p_PLMN (default value: omit) * @param p_CellId (default value: omit) * @param p_TAC (default value: omit) + * @param p_FreqBandIndicator (default value: omit)! * @status APPROVED (LTE_A, LTE_IRAT) */ function f_IRAT_Send_EUTRA_SysInfoToOtherPort(IRAT_CO_ORD_PORT p_Irat_Coord_Port, @@ -579,9 +582,10 @@ module CommonIratDefs { template (omit) integer p_CATested := omit, template (omit) O3_Type p_PLMN := omit, template (omit) B28_Type p_CellId := omit, - template (omit) B16_Type p_TAC := omit) + template (omit) B16_Type p_TAC := omit, + template (omit) integer p_FreqBandIndicator := omit) { - var template (value) CoOrd_EUTRASysInfo_Type v_Cell := cs_CoOrdEUTRASysInfo(p_Arfcn, p_DLBW, p_EUTRA_HOInfo, p_CATested, p_PLMN, p_CellId, p_TAC); + var template (value) CoOrd_EUTRASysInfo_Type v_Cell := cs_CoOrdEUTRASysInfo(p_Arfcn, p_DLBW, p_EUTRA_HOInfo, p_CATested, p_PLMN, p_CellId, p_TAC, p_FreqBandIndicator); f_IRAT_SendCoOrd(p_Irat_Coord_Port, cms_IRAT_SysInfo(cs_CoOrdEUTRA_SysInfoSingleCell(v_Cell))); } @@ -589,7 +593,7 @@ module CommonIratDefs { /* * @desc Function that returns the UTRAN FFD/TDD Mode - now based on a pixit and not necessarily the same as the LTE mode * @return UTRAN_FDD_TDD_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT) */ function f_IRAT_GetUTRAN_FDD_TDD_Mode () return UTRAN_FDD_TDD_Type { diff --git a/LTE_A_IWD_14wk37/Common/Common/UpperTesterCommon.ttcn b/LTE_A_IWD_15wk38/Common/Common/UpperTesterCommon.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/Common/UpperTesterCommon.ttcn rename to LTE_A_IWD_15wk38/Common/Common/UpperTesterCommon.ttcn index 630d9ae..9252854 100644 --- a/LTE_A_IWD_14wk37/Common/Common/UpperTesterCommon.ttcn +++ b/LTE_A_IWD_15wk38/Common/Common/UpperTesterCommon.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-28 13:27:35 +0200 (Sat, 28 Jun 2014) $ -// $Rev: 11783 $ +// @version: IWD_15wk38 +// $Date: 2015-06-10 16:35:18 +0200 (Wed, 10 Jun 2015) $ +// $Rev: 13728 $ /******************************************************************************/ module UpperTesterCommon { @@ -23,9 +23,8 @@ module UpperTesterCommon { type enumerated Ut_CnfReq_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ NO_CNF_REQUIRED, CNF_REQUIRED, /* to request CNF as got from the UE */ - LOCAL_CNF_REQUIRED, /* to request immediate CNF after SS has submitted the command to the UE (SS shall not wait for the UE is responding) + LOCAL_CNF_REQUIRED /* to request immediate CNF after SS has submitted the command to the UE (SS shall not wait for the UE is responding) @sic R5s110176 BASELINE MOVING 2011 sic@ */ - MULTIPLE_CNF // @sic R5s140316 sic@ }; type record UT_COMMON_CNF { /* Common confirmation triggered by the UE; @@ -112,7 +111,7 @@ module UpperTesterCommon { */ function f_UT_CommandRequiresCnf(template (value) Ut_CnfReq_Type p_CnfReq) return boolean { - return (match(CNF_REQUIRED, p_CnfReq) or match(LOCAL_CNF_REQUIRED, p_CnfReq) or match(MULTIPLE_CNF, p_CnfReq)); + return (match(CNF_REQUIRED, p_CnfReq) or match(LOCAL_CNF_REQUIRED, p_CnfReq)); // @sic R5-151792 sic@ } } diff --git a/LTE_A_IWD_14wk37/Common/Common/UpperTesterFunctions.ttcn b/LTE_A_IWD_15wk38/Common/Common/UpperTesterFunctions.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/Common/Common/UpperTesterFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/Common/UpperTesterFunctions.ttcn index df49bc3..18ebfaa 100644 --- a/LTE_A_IWD_14wk37/Common/Common/UpperTesterFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/Common/UpperTesterFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module UpperTesterFunctions { @@ -22,7 +22,11 @@ module UpperTesterFunctions { const integer tsc_ManualPLMN_EUTRA := 7; const integer tsc_ManualPLMN_None := -1; /* @status APPROVED (LTE, LTE_IRAT) */ - + // octet representation of type of number and numbering plan octet in 24.008 10.5.4.7. + // Put here as inbetween test cases and MTC + const O1_Type tsc_NumberingPlan_Oct := int2oct(tsc_NumberingPlan_Int, 1); /* @status APPROVED (SSNITZ) + @sic R5s150538 sic@ */ + //============================================================================ // TEMPLATES (used in this module only) //----------------------------------------------------------------------------- @@ -41,11 +45,11 @@ module UpperTesterFunctions { //----------------------------------------------------------------------------- template (value) Ut_Parameter_Type cs_Ut_Parameter_Cid(charstring p_Value) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Cid", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_QoS(charstring p_Value) := - /* @status APPROVED (LTE, LTE_IRAT, UTRAN) */ + /* @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("QoS", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_PLMN(charstring p_Value) := @@ -62,7 +66,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_OpMode(charstring p_Value) := - { /* @status */ + { /* @status APPROVED (UTRAN) */ cs_Ut_Parameter_Common("OPERATION MODE", p_Value) }; @@ -107,7 +111,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_DialNumber(charstring p_Value) := - { /* @status APPROVED (LTE, LTE_IRAT, SSNITZ, UTRAN) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("DIAL", p_Value) }; @@ -117,7 +121,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_InsertUsim(template (value) charstring p_Value) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ cs_Ut_Parameter_Common("USIM", p_Value) }; @@ -129,7 +133,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_PDP_Cid(charstring p_Cid) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Ut_Parameter_Cid(p_Cid) }; @@ -144,7 +148,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_RequestPDP(charstring p_PDPParams) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("RequestPDP", p_PDPParams) }; @@ -185,7 +189,7 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_TriggerMolr(charstring p_TypeMolr) := - { /* @status */ + { cs_Ut_Parameter_Common("TypeMolr", p_TypeMolr) }; @@ -216,7 +220,7 @@ module UpperTesterFunctions { charstring p_Toda, charstring p_Text) := { // @sic R5s110750 sic@ - /* @status APPROVED (LTE, UTRAN) */ + /* @status APPROVED (LTE, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Da", p_Da), cs_Ut_Parameter_Common("Toda", p_Toda), cs_Ut_Parameter_Common("Text", p_Text) @@ -224,13 +228,13 @@ module UpperTesterFunctions { template (value) Ut_ParameterList_Type cs_WriteMessageToMemory_PDU(charstring p_Len, charstring p_Pdu) := - { /* @status APPROVED (LTE, UTRAN) */ + { /* @status APPROVED (LTE, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Len", p_Len), cs_Ut_Parameter_Common("Text", p_Pdu) }; template (value) Ut_ParameterList_Type cs_SendMessageFromStorage(charstring p_Index) := - { /* @status APPROVED (LTE, UTRAN) */ + { /* @status APPROVED (LTE, SSNITZ, UTRAN) */ cs_Ut_Parameter_Common("Index", p_Index) }; @@ -253,7 +257,7 @@ module UpperTesterFunctions { template (value) Ut_ParameterList_Type cs_SetTextModeParameters(charstring p_Fo, charstring p_Vp, charstring p_Pid) := - { /* @status APPROVED (LTE, UTRAN) */ + { /* @status APPROVED (LTE, SSNITZ, UTRAN) */ /* @sic R5s100606 sic@ */ cs_Ut_Parameter_Common("Fo", p_Fo), cs_Ut_Parameter_Common("Vp", p_Vp), @@ -266,20 +270,20 @@ module UpperTesterFunctions { }; template (value) Ut_ParameterList_Type cs_Chk_SSUserInd(charstring p_SuppService, charstring p_ToDisplay) := - { + { /* @status APPROVED (SSNITZ) */ cs_Ut_Parameter_Common("Supplementary Service", p_SuppService), cs_Ut_Parameter_Common("ToDisplay", p_ToDisplay) }; template (value) Ut_ParameterList_Type cs_QoS_Profile(charstring p_Cid, charstring p_QoSParams) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ cs_Ut_Parameter_Cid(p_Cid), cs_Ut_Parameter_QoS(p_QoSParams) }; template (value) Ut_ParameterList_Type cs_OperatorFormat(charstring p_Format) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, SSNITZ) */ cs_Ut_Parameter_Common("Format", p_Format) }; @@ -306,51 +310,51 @@ module UpperTesterFunctions { template (value) Ut_ParameterList_Type cs_MBMSServiceActive(charstring p_ServiceId, charstring p_SAI, charstring p_Active) := - { /* @status */ + { /* @status APPROVED (LTE_A) */ cs_Ut_Parameter_Common("Service Id", p_ServiceId), cs_Ut_Parameter_Common("SAI", p_SAI), cs_Ut_Parameter_Common("Active", p_Active) }; template (value) Ut_ParameterList_Type cs_MBMSPriority(charstring p_PriorityOverUnicast) := - { /* @status */ + { /* @status APPROVED (LTE_A) */ cs_Ut_Parameter_Common("Priority Over Unicast", p_PriorityOverUnicast) }; template (value) Ut_ParameterList_Type cs_CallIdNumber(charstring p_CallId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, SSNITZ) */ cs_Ut_Parameter_Common("Call Id", p_CallId) }; template (value) Ut_ParameterList_Type cs_IntegerString(charstring p_Value) := - { /* @status APPROVED (POS) */ + { /* @status APPROVED (LTE, POS, SSNITZ) */ cs_Ut_Parameter_Common("Integer", p_Value) }; template (value) Ut_Parameter_Type cs_Ut_Parameter_Uri(charstring p_Value) := cs_Ut_Parameter_Common("Uri", p_Value); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_SS_Mode(charstring p_Value) := cs_Ut_Parameter_Common("Mode", p_Value); /* @status APPROVED (IMS, SSNITZ) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_Number(charstring p_Value) := cs_Ut_Parameter_Common("Number", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_Password(charstring p_Value) := cs_Ut_Parameter_Common("Password", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_USSD(charstring p_Value) := cs_Ut_Parameter_Common("USSD", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_Number(charstring p_Value) := cs_Ut_Parameter_Common("Number", p_Value); /* @status APPROVED (SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_Password(charstring p_Value) := cs_Ut_Parameter_Common("Password", p_Value); /* @status APPROVED (SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_USSD(charstring p_Value) := cs_Ut_Parameter_Common("USSD", p_Value); /* @status APPROVED (SSNITZ) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryService(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryService", p_Value); /* @status APPROVED (IMS, SSNITZ) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryServiceCondition(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryServiceCondition", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryServiceTime(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryServiceTime", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_SupplementaryServiceTime(charstring p_Value) := cs_Ut_Parameter_Common("SupplementaryServiceTime", p_Value); /* @status APPROVED (SSNITZ) */ template (value) Ut_Parameter_Type cs_Ut_Parameter_PublicUserId(charstring p_Value) := cs_Ut_Parameter_Common("PublicUserId", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_HomeDomain(charstring p_Value) := cs_Ut_Parameter_Common("HomeDomain", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_PrivateUserId(charstring p_Value) := cs_Ut_Parameter_Common("PrivateUSerId", p_Value); template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Check(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); // Value may not be needed, empty for now template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Confirm(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); // Value may not be needed, empty for now - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Year(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Month(charstring p_Value) := cs_Ut_Parameter_Common("Month: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Day(charstring p_Value) := cs_Ut_Parameter_Common("Day: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Hour(charstring p_Value) := cs_Ut_Parameter_Common("Hour: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Minutes(charstring p_Value) := cs_Ut_Parameter_Common("Minutes: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Seconds(charstring p_Value) := cs_Ut_Parameter_Common("Seconds: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_TimeZone(charstring p_Value) := cs_Ut_Parameter_Common("TimeZone: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_LocalTimeZone(charstring p_Value) := cs_Ut_Parameter_Common("LocalTimeZone: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_DaylightSavingTime(charstring p_Value) := cs_Ut_Parameter_Common("DaylightSavingTime: ", p_Value); - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_FullNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("FullNetworkName: ", p_Value); /* @status APPROVED (LTE) */ - template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_ShortNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("ShortNetworkName: ", p_Value); /* @status APPROVED (LTE) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Year(charstring p_Value) := cs_Ut_Parameter_Common("Year: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Month(charstring p_Value) := cs_Ut_Parameter_Common("Month: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Day(charstring p_Value) := cs_Ut_Parameter_Common("Day: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Hour(charstring p_Value) := cs_Ut_Parameter_Common("Hour: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Minutes(charstring p_Value) := cs_Ut_Parameter_Common("Minutes: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_Seconds(charstring p_Value) := cs_Ut_Parameter_Common("Seconds: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_TimeZone(charstring p_Value) := cs_Ut_Parameter_Common("TimeZone: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_LocalTimeZone(charstring p_Value) := cs_Ut_Parameter_Common("LocalTimeZone: ", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_DaylightSavingTime(charstring p_Value) := cs_Ut_Parameter_Common("DaylightSavingTime: ", p_Value); /* @status APPROVED (LTE, SSNITZ) */ + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_FullNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("FullNetworkName: ", p_Value); + template (value) Ut_Parameter_Type cs_Ut_Parameter_NITZ_ShortNetworkName(charstring p_Value) := cs_Ut_Parameter_Common("ShortNetworkName: ", p_Value); //============================================================================ // local functions @@ -377,10 +381,10 @@ module UpperTesterFunctions { * @param p_Port * @param p_Cmd * @return UT_COMMON_CNF - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UT_ApplyCommandRetCnf(UT_PTC_MTC_PORT p_Port, - template (value) UT_COMMON_CMD p_Cmd) return UT_COMMON_CNF + template (value) UT_COMMON_CMD p_Cmd) return UT_COMMON_CNF { p_Port.send(p_Cmd); return fl_UT_RetCnf (p_Port); // @sic R5-140347 sic@ @@ -390,7 +394,7 @@ module UpperTesterFunctions { * @desc To wait for a response and return the CNF * @param p_Port * @return UT_COMMON_CNF - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UT_RetCnf(UT_PTC_MTC_PORT p_Port) return UT_COMMON_CNF { @@ -413,7 +417,7 @@ module UpperTesterFunctions { * To be used when the UE is switched off. * @param p_Port * @param p_UE_CS_PS_UsageSetting_Tested Whether UE is voice or data centric - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_UT_ConfigureCombinedAttach(UT_PTC_MTC_PORT p_Port, CS_PS_MODE p_UE_CS_PS_UsageSetting_Tested := px_UE_CS_PS_UsageSetting_Tested) @@ -497,9 +501,10 @@ module UpperTesterFunctions { * @desc To ask the configure the UTRAN Operation Mode * @param p_Port * @param p_UE_OperationMode - * @status + * @status APPROVED (UTRAN) */ - function f_UT_ConfigureUTRANOperationMode(UT_PTC_MTC_PORT p_Port, charstring p_UE_OperationMode) + function f_UT_ConfigureUTRANOperationMode(UT_PTC_MTC_PORT p_Port, + charstring p_UE_OperationMode) { fl_UT_ApplyCommand(p_Port, cas_UT_Req(CONFIGURE_OPERATIONMODE, CNF_REQUIRED, cs_OpMode(p_UE_OperationMode))); } @@ -535,7 +540,7 @@ module UpperTesterFunctions { * TTCN waits until operation is confirmed before continuing * @param p_Port * @param p_USIM_ID - * @status APPROVED (LTE, LTE_A, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ function f_UT_USIM_Insert(UT_PTC_MTC_PORT p_Port, template (omit) charstring p_USIM_ID) @@ -691,7 +696,7 @@ module UpperTesterFunctions { * TTCN waits until operation is confirmed before continuing * @param p_Port * @return boolean - * @status + * @status APPROVED (POS, SSNITZ) */ function f_UT_CheckDTCH_ThroughConn(UT_PTC_MTC_PORT p_Port) return boolean { @@ -910,7 +915,7 @@ module UpperTesterFunctions { * @desc To ask the operator to dial a CS call * @param p_Port * @param p_NumToDial (default value: "01234567890") - * @status APPROVED (LTE, LTE_IRAT, SSNITZ, UTRAN) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UT_RequestCSCall(UT_PTC_MTC_PORT p_Port, charstring p_NumToDial := "01234567890") @@ -923,13 +928,18 @@ module UpperTesterFunctions { * @desc To ask the operator to dial an IMS call * @param p_Port * @param p_NumToDial (default value: "01234567890") - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @return charstring + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ function f_UT_RequestIMSCall(UT_PTC_MTC_PORT p_Port, - charstring p_NumToDial := "01234567890") + charstring p_NumToDial := "01234567890") return charstring // @sic R5-145723 sic@ { + var UT_COMMON_CNF v_Cnf; + var charstring v_CallId := ""; // fl_UT_ApplyCommand(p_Port, cas_UT_Req(VOICE_CALL_MODE, CNF_REQUIRED, cs_IMSMode)); - fl_UT_ApplyCommand(p_Port, cas_UT_Req(REQUEST_IMS_VOICE_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_NumToDial)})); // @sic R5-134290 sic@ + v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(REQUEST_IMS_VOICE_CALL, CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_NumToDial)})); // @sic R5-134290, R5-145723 sic@ + v_CallId := regexp(v_Cnf.ResultString, "*CDU: ([1-9])", 0); + return v_CallId; } //---------------------------------------------------------------------------- @@ -950,12 +960,35 @@ module UpperTesterFunctions { * @desc Initiate a video call * @param p_Port * @param p_CalleeUri + * @return charstring * @status APPROVED (IMS) */ function f_UT_RequestIMSVideoCall(UT_PTC_MTC_PORT p_Port, - charstring p_CalleeUri) + charstring p_CalleeUri) return charstring + { + var UT_COMMON_CNF v_Cnf; + var charstring v_CallId := ""; + var charstring v_MediaId := ""; + v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(IMS_CONFIGURE_VIDEO_CALL, CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_CalleeUri)})); // @sic R5-145723 sic@ + v_MediaId := regexp(v_Cnf.ResultString, "*CDEFMP: ([1-9])", 0); + v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(INITIATE_VIDEO_CALL, CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_CalleeUri), + cs_Ut_Parameter_Common("MediaId", v_MediaId)})); // @sic R5-145723 sic@ + v_CallId := regexp(v_Cnf.ResultString, "*CDU: ([1-9])", 0); + return v_CallId; + } + + //---------------------------------------------------------------------------- + /* + * @desc Add video to speech call + * @param p_Port + * @param p_CDUIdentifier - returned from f_UT_RequestIMSCall + * @status + */ + function f_UT_AddVideoToIMSCall(UT_PTC_MTC_PORT p_Port, + charstring p_CDUIdentifier) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(INITIATE_VIDEO_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Uri(p_CalleeUri)})); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(IMS_MODIFY_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Common("CallId", p_CDUIdentifier), + cs_Ut_Parameter_Common ("Media", "m=audio\0D\0Am=video")})); } //---------------------------------------------------------------------------- @@ -1109,14 +1142,14 @@ module UpperTesterFunctions { * @desc To request to activate MBMS Service * @param p_Port * @param p_Service_ID - * @param p_MBMS_SAI (default: omit) - * @param p_Active (allowed values: ON, OFF) - * @status + * @param p_Active + * @param p_MBMS_SAI (default value: omit) + * @status APPROVED (LTE_A) */ function f_UT_MBMS_SERVICE_Active(UT_PTC_MTC_PORT p_Port, - charstring p_Service_ID, - boolean p_Active, - template (omit) integer p_MBMS_SAI := omit) // @sic R5-135000 sic@ + charstring p_Service_ID, + boolean p_Active, + template (omit) integer p_MBMS_SAI := omit) // @sic R5-135000 sic@ { /* Objective: To ask the operator to join MBMS service */ var charstring v_Active := "ON"; var charstring v_SAI := ""; @@ -1135,10 +1168,10 @@ module UpperTesterFunctions { * @desc To request that the UE is configured such that MBMS services takes priority over unicast bearer transmissions * @param p_Port * @param p_PriorityOverUnicast - * @status + * @status APPROVED (LTE_A) */ function f_UT_MBMS_Unicast(UT_PTC_MTC_PORT p_Port, - boolean p_PriorityOverUnicast) + boolean p_PriorityOverUnicast) { var charstring v_PriorityOverUnicast := "FALSE"; @@ -1181,7 +1214,7 @@ module UpperTesterFunctions { v_QoSstring := v_QoSstring &","& int2str(fl_QoS_MaximumBitRate(v_QoS.guaranteedBitRateUl)); // @sic R5s100557 sic@ v_QoSstring := v_QoSstring &","& int2str(fl_QoS_MaximumBitRate(v_QoS.maxBitRateDl)); // @sic R5s100557 sic@ v_QoSstring := v_QoSstring &","& int2str(fl_QoS_MaximumBitRate(v_QoS.maxBitRateUl)); // @sic R5s100557 sic@ - // Extended rates are not dealt with at the moment (all set to 0 in current 36.508) FFS + // Extended rates are not dealt with at the moment (all set to 0 in current 36.508) fl_UT_ApplyCommand(p_Port, cas_UT_Req(REQUEST_DED_BEARER, CNF_REQUIRED, cs_SecondaryPDP(int2str(p_DedicatedId), int2str(p_DefaultId)))); // @sic R5s110570 sic@ fl_UT_ApplyCommand(p_Port, cas_UT_Req(DEFINE_EPS_QOS, CNF_REQUIRED, cs_EPSQoS(v_QoSstring))); // @sic R5s110570 sic@ @@ -1199,7 +1232,7 @@ module UpperTesterFunctions { * @desc To convert the maximum bit rate for the QoS * @param p_Val * @return integer - * @status APPROVED (LTE, LTE_IRAT, UTRAN) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_MaximumBitRate(B8_Type p_Val) return integer { @@ -1244,7 +1277,7 @@ module UpperTesterFunctions { * @desc To convert the transfer delay for the QoS * @param p_Val * @return integer - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_TransferDelay(B6_Type p_Val) return integer { @@ -1265,7 +1298,7 @@ module UpperTesterFunctions { * @desc To convert the SDU Error Ratio for the QoS * @param p_Val * @return charstring - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_SDUErrorRatio(B4_Type p_Val) return charstring { @@ -1285,7 +1318,7 @@ module UpperTesterFunctions { * @desc To convert the Residual BER for the QoS * @param p_Val * @return charstring - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_QoS_ResidualBER(B4_Type p_Val) return charstring { @@ -1363,7 +1396,7 @@ module UpperTesterFunctions { * @param p_QoSParams * @param p_APN (default value: "") * @param p_NSLPI - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function f_UT_ActivatePDPContextUG(UT_PTC_MTC_PORT p_Port, integer p_CId, @@ -1444,7 +1477,7 @@ module UpperTesterFunctions { { var charstring v_PDP_CtxtString := int2str(p_BearerId) & ",,,,,,,,,,"; - // most parameters are left blank - as bearer is already configured, only SIMTC params are included at the end FFS + // most parameters are left blank - as bearer is already configured, only SIMTC params are included at the end if (p_NSLPI >= 0) { v_PDP_CtxtString := v_PDP_CtxtString & int2str(p_NSLPI); } @@ -1513,7 +1546,7 @@ module UpperTesterFunctions { * @param p_Port * @param p_BearerId * @param p_RestOfCmd - * @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) + * @status APPROVED (LTE, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function fl_RequestPDPContext(UT_PTC_MTC_PORT p_Port, integer p_BearerId, @@ -1541,7 +1574,7 @@ module UpperTesterFunctions { /* * @desc To attach for PS services * @param p_Port - * @status APPROVED (LTE, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UT_TriggerAttach(UT_PTC_MTC_PORT p_Port) { @@ -1552,7 +1585,7 @@ module UpperTesterFunctions { /* * @desc To detach * @param p_Port - * @status APPROVED (LTE) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_UT_InitiateDetach(UT_PTC_MTC_PORT p_Port) // @sic R5-113807 sic@ { @@ -1700,7 +1733,7 @@ module UpperTesterFunctions { * @param p_Toda * @param p_Text * @return charstring - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_WriteMessageToMemoryText(UT_PTC_MTC_PORT p_Port, charstring p_Da, @@ -1720,7 +1753,7 @@ module UpperTesterFunctions { * @param p_Len * @param p_Pdu * @return charstring - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_WriteMessageToMemoryPDU(UT_PTC_MTC_PORT p_Port, charstring p_Len, @@ -1737,7 +1770,7 @@ module UpperTesterFunctions { * @desc To send a stored SMS message * @param p_Port * @param p_Index - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_SendStoredOneMessage(UT_PTC_MTC_PORT p_Port, integer p_Index) @@ -1770,7 +1803,7 @@ module UpperTesterFunctions { * @param p_Vp * @param p_Pid * @return charstring - * @status APPROVED (LTE, UTRAN) + * @status APPROVED (LTE, SSNITZ, UTRAN) */ function f_UT_SetTextModeParameters(UT_PTC_MTC_PORT p_Port, integer p_Fo, @@ -1829,36 +1862,86 @@ module UpperTesterFunctions { * @param p_Port * @param p_ToDisplay * @return boolean - * @status + * @status APPROVED (SSNITZ) */ function f_UT_ChkResponseDisplayed(UT_PTC_MTC_PORT p_Port, charstring p_ToDisplay) return boolean { // To make the operator check the response displayed by the SS var UT_COMMON_CNF v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(CHECK_RESPONSE_DISPLAY, - CNF_REQUIRED, - cs_ChkCallDisplayed(p_ToDisplay))); + CNF_REQUIRED, + cs_ChkCallDisplayed(p_ToDisplay))); return v_Cnf.Result; } //---------------------------------------------------------------------------- /* - * @desc To check the UE provides the correct user indication + * @desc To send MMI command to check the UE returns appropriate CNAP response * @param p_Port - * @param p_SuppService * @param p_ToDisplay + * @status APPROVED (SSNITZ) + */ + function f_UT_TriggerCNAPResponse(UT_PTC_MTC_PORT p_Port, charstring p_ToDisplay) + { + fl_UT_ApplyCommand(p_Port, + cas_UT_Req(CNAP_DUMMY, + CNF_REQUIRED, + cs_ChkCallDisplayed(p_ToDisplay)), + true); // don't wait for CNF at this point @sic R5-153746 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc To check the UE returns appropriate CNAP response + * @param p_Port + * @param p_SS_Status + * @return boolean + */ + function f_UT_ChkCNAPQueryResponse(UT_PTC_MTC_PORT p_Port, + octetstring p_SS_Status) return boolean + { + var charstring v_Result := ""; + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + v_Result := regexp (v_Cnf.ResultString, "*CNAP: *,(*)*", 0); + + return match (v_Result, bit2str(substr(oct2bit(p_SS_Status), 4, 1))); + } + + //---------------------------------------------------------------------------- + /* + * @desc To check the UE returns appropriate Call Forwarding response + * @param p_Port + * @param p_SS_Status * @return boolean * @status */ + function f_UT_ChkCallForwardQueryResponse(UT_PTC_MTC_PORT p_Port, + boolean p_Active) return boolean + { + var charstring v_Result := ""; + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + v_Result := regexp (v_Cnf.ResultString, "*CCFCU: (*),*", 0); + + return match (v_Result, int2str(bit2int(f_ConvertBoolToBit(p_Active)))); + } + //---------------------------------------------------------------------------- + /* + * @desc To check the UE provides the correct user indication + * @param p_Port + * @param p_SuppService + * @param p_ToDisplay (default value: "") + * @return boolean + * @status APPROVED (SSNITZ) + */ function f_UT_ChkSuppServiceUserIndication(UT_PTC_MTC_PORT p_Port, - charstring p_SuppService, - charstring p_ToDisplay := "") return boolean + charstring p_SuppService, + charstring p_ToDisplay := "") return boolean { // To make the operator check the response displayed by the SS var UT_COMMON_CNF v_Cnf := fl_UT_ApplyCommandRetCnf(p_Port, cas_UT_Req(CHECK_SS_USER_IND, - CNF_REQUIRED, - cs_Chk_SSUserInd(p_SuppService, p_ToDisplay))); + CNF_REQUIRED, + cs_Chk_SSUserInd(p_SuppService, p_ToDisplay))); return v_Cnf.Result; } @@ -1879,14 +1962,14 @@ module UpperTesterFunctions { //---------------------------------------------------------------------------- - type enumerated UT_OPERATOR_FORMAT { LONG_NAME, SHORT_NAME, NUMERIC_ONLY}; /* @status APPROVED (LTE) */ + type enumerated UT_OPERATOR_FORMAT { LONG_NAME, SHORT_NAME, NUMERIC_ONLY}; /* @status APPROVED (LTE, SSNITZ) */ /* * @desc To request the name of the operator currently camped on * @param p_Port * @param p_Format - Use the enumerated type defined just above to select the UE to return the operator name in long short or numeric only format * @return charstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, SSNITZ) */ function f_UT_ChkOperatorName(UT_PTC_MTC_PORT p_Port, UT_OPERATOR_FORMAT p_Format) return charstring @@ -1908,7 +1991,6 @@ module UpperTesterFunctions { * @param p_NITZ_Minutes * @param p_NITZ_Seconds * @param p_NITZ_TimeZone - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_UniversalTime(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_Year, @@ -1935,7 +2017,6 @@ module UpperTesterFunctions { * @desc To request the operator to check that the UE displays the correct NITZ information: Local Time and Timezone * @param p_Port * @param p_NITZ_LocalTimeZone - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_LocalTimeAndTimeZone(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_LocalTimeZone) @@ -1949,7 +2030,8 @@ module UpperTesterFunctions { /* * @desc To request the operator to check that the UE displays the correct NITZ information: Local Time and Timezone * @param p_Port - * @status + * @param p_NITZ_DaylightSavingTime + * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_DaylightSavingTime(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_DaylightSavingTime) @@ -1964,7 +2046,6 @@ module UpperTesterFunctions { * @desc To request the operator to check that the UE displays the correct NITZ information: Full Network Name * @param p_Port * @param p_NITZ_FullNetworkName - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_FullNetworkName(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_FullNetworkName) @@ -1979,7 +2060,6 @@ module UpperTesterFunctions { * @desc To request the operator to check that the UE displays the correct NITZ information: Short Network Name * @param p_Port * @param p_NITZ_ShortNetworkName - * @status APPROVED (LTE) */ function f_UT_MMI_CheckNITZ_ShortNetworkName(UT_PTC_MTC_PORT p_Port, charstring p_NITZ_ShortNetworkName) @@ -1993,7 +2073,7 @@ module UpperTesterFunctions { /* * @desc To answer a call * @param p_Port - * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, SSNITZ) */ function f_UT_AnswerCall(UT_PTC_MTC_PORT p_Port) { @@ -2004,7 +2084,7 @@ module UpperTesterFunctions { /* * @desc To hang up a call * @param p_Port - * @status + * @status APPROVED (SSNITZ) */ function f_UT_HangupCall(UT_PTC_MTC_PORT p_Port) { @@ -2030,7 +2110,7 @@ module UpperTesterFunctions { function f_UT_IMS_ActivateMWI(UT_PTC_MTC_PORT p_Port) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(ACTIVATE_MESSAGE_WAIT_INDICATION, NO_CNF_REQUIRED)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(ACTIVATE_MESSAGE_WAIT_INDICATION, CNF_REQUIRED)); } /* @@ -2073,11 +2153,13 @@ module UpperTesterFunctions { /* * @desc Remove a video call * @param p_Port - * @param p_CalleeUri + * @param p_CDUIdentifier */ - function f_UT_IMS_RemoveVideoCall(UT_PTC_MTC_PORT p_Port) + function f_UT_IMS_RemoveVideoMedia(UT_PTC_MTC_PORT p_Port, + charstring p_CDUIdentifier) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(REMOVE_VIDEO_CALL, NO_CNF_REQUIRED)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(IMS_MODIFY_CALL, NO_CNF_REQUIRED, {cs_Ut_Parameter_Common("CallId", p_CDUIdentifier), + cs_Ut_Parameter_Common ("Media", "m=audio")})); } //---------------------------------------------------------------------------- @@ -2106,31 +2188,33 @@ module UpperTesterFunctions { fl_UT_ApplyCommand(p_Port, cas_UT_Req(CONFIGURE_SMS_ONLY, CNF_REQUIRED, omit)); } //---------------------------------------------------------------------------- - type enumerated MOLR_Type {ASSISTED_GPS, ASSISTED_GANSS, ASSISTED_GPS_GANSS, POSITION_ESTIMATE} + + type enumerated MOLR_Type {ASSISTED_GPS, ASSISTED_GANSS, ASSISTED_GPS_GANSS, POSITION_ESTIMATE} /* @status APPROVED (POS) */ + /* * @desc To request the operator to trigger MO-LR for position estimate or assistance data * @param p_Port * @param p_TypeOfMolr - * @status + * @status APPROVED (POS) */ - function f_UT_InitMOLR(UT_PTC_MTC_PORT p_Port, - MOLR_Type p_TypeOfMolr) + MOLR_Type p_TypeOfMolr) { var charstring v_Method; + select (p_TypeOfMolr) { - case (ASSISTED_GPS) { - v_Method := "1"; - } - case (ASSISTED_GANSS) { - v_Method := "2"; - } - case (ASSISTED_GPS_GANSS) { - v_Method := "3"; - } - case (POSITION_ESTIMATE) { - v_Method := "4"; - } + case (ASSISTED_GPS) { + v_Method := "1"; + } + case (ASSISTED_GANSS) { + v_Method := "2"; + } + case (ASSISTED_GPS_GANSS) { + v_Method := "3"; + } + case (POSITION_ESTIMATE) { + v_Method := "4"; + } } fl_UT_ApplyCommand(p_Port, cas_UT_Req(TRIGGER_MOLR, NO_CNF_REQUIRED, cs_TriggerMolr(v_Method))); } @@ -2172,13 +2256,44 @@ module UpperTesterFunctions { if (not p_Enable) { v_Enable := cs_IntegerString ("0"); } - fl_UT_ApplyCommand(p_Port, cas_UT_Req(LOCATION_SUBSCRIBE, MULTIPLE_CNF, v_Enable)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(LOCATION_SUBSCRIBE, CNF_REQUIRED, v_Enable)); // @sic R5s150213 sic@ } //---------------------------------------------------------------------------- type enumerated LOCATION_REQUEST_Type { LOCATION_NOTIFICATION, LOCATION_REQ_ALLOWED, LOCATION_REQ_FORBIDDEN }; /* @status APPROVED (POS) */ + function fl_LocationEnum2Str (LOCATION_REQUEST_Type p_LR_Type) return charstring + { + var charstring v_String := ""; + select (p_LR_Type) + { + case (LOCATION_NOTIFICATION) { + v_String := "LOCATION_NOTIFICATION"; + } + case (LOCATION_REQ_ALLOWED) { + v_String := "LOCATION_REQ_ALLOWED"; + } + case (LOCATION_REQ_FORBIDDEN) { + v_String := "LOCATION_REQ_FORBIDDEN"; + } + } + return v_String; + } + + /* + * @desc To trigger the UE displays the correct notification + * @param p_Port + * @param p_LR_Type + * @status APPROVED (POS) + */ + function f_UT_AT_TriggerNotifyLocationRequest(UT_PTC_MTC_PORT p_Port, + LOCATION_REQUEST_Type p_LR_Type) + { + // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported + fl_UT_ApplyCommand (p_Port, cas_UT_Req(CMTLR_DUMMY, CNF_REQUIRED, cs_LocationNotify (fl_LocationEnum2Str (p_LR_Type))), true); // @sic R5s140777, R5-151792, R5-153746 sic@ + } + /* * @desc To check the UE displays the correct notification * @param p_Port @@ -2186,7 +2301,7 @@ module UpperTesterFunctions { * @return integer * @status APPROVED (POS) */ - function f_UT_AT_NotifyLocationRequest(UT_PTC_MTC_PORT p_Port, + function f_UT_AT_CheckNotifyLocationRequest(UT_PTC_MTC_PORT p_Port, LOCATION_REQUEST_Type p_LR_Type) return integer { var UT_COMMON_CNF v_Cnf; @@ -2194,9 +2309,7 @@ module UpperTesterFunctions { var charstring v_NotificationType := ""; var charstring v_HandleChar := ""; - // v_Cnf := fl_UT_RetCnf(p_Port); - // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported - v_Cnf := fl_UT_ApplyCommandRetCnf (p_Port, cas_UT_Req(LOCATION_MULTIPLE, CNF_REQUIRED)); // @sic R5s140777 sic@ + v_Cnf := fl_UT_RetCnf (p_Port); // @sic R5s140777, R5-151792, R5-153746 sic@ v_HandleChar := regexp(v_Cnf.ResultString, "*CMTLR: (*),", 0); v_NotificationType := regexp(v_Cnf.ResultString, "*CMTLR: [0-9]+,(*)", 0); @@ -2217,48 +2330,124 @@ module UpperTesterFunctions { fl_UT_ApplyCommand(p_Port, cas_UT_Req(LOCATION_INFO, CNF_REQUIRED)); } + //---------------------------------------------------------------------------- + /* + * @desc To enable AT time zone update + * @param p_Port + * @param p_Enable (default value: true) + * @status APPROVED (LTE) + */ + function f_UT_AT_TimeZoneUpdate(UT_PTC_MTC_PORT p_Port, + boolean p_Enable := true) + { + var template (value) Ut_ParameterList_Type v_Enable := cs_IntegerString(bit2str(f_ConvertBoolToBit(p_Enable))); + + fl_UT_ApplyCommand(p_Port, cas_UT_Req(TIMEZONE_UPDATE, CNF_REQUIRED, v_Enable)); + } + //---------------------------------------------------------------------------- /* * @desc To subscribe to AT response time zone reporting * @param p_Port - * @param p_Msg - * @status + * @param p_Enable (default value: true) + * @status APPROVED (LTE, SSNITZ) */ - function f_UT_AT_SubscribeTimeZoneReporting(UT_PTC_MTC_PORT p_Port, boolean p_Enable := true) + function f_UT_AT_SubscribeTimeZoneReporting(UT_PTC_MTC_PORT p_Port, + boolean p_Enable := true) { - var template (value) Ut_ParameterList_Type v_Enable := cs_IntegerString ("2"); // enable everything + var template (value) Ut_ParameterList_Type v_Enable := cs_IntegerString("2"); // enable everything if (not p_Enable) { - v_Enable := cs_IntegerString ("0"); + v_Enable := cs_IntegerString("0"); } - fl_UT_ApplyCommand(p_Port, cas_UT_Req(TIMEZONE_SUBSCRIBE, MULTIPLE_CNF, v_Enable)); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(TIMEZONE_SUBSCRIBE, CNF_REQUIRED, v_Enable)); // @sic R5s150213 sic@ } //---------------------------------------------------------------------------- + /* + * @desc To receive a timezone report + * @param p_Port + * @param p_NITZ_Year + * @param p_NITZ_Month + * @param p_NITZ_Day + * @param p_NITZ_Hour + * @param p_NITZ_Minutes + * @param p_NITZ_Seconds + * @param p_NITZ_TimeZone + * @param p_DaylightSavingTime + * @status APPROVED (LTE, SSNITZ) + */ + function f_UT_AT_TriggerTimezoneReport(UT_PTC_MTC_PORT p_Port, + charstring p_NITZ_Year, + charstring p_NITZ_Month, + charstring p_NITZ_Day, + charstring p_NITZ_Hour, + charstring p_NITZ_Minutes, + charstring p_NITZ_Seconds, + charstring p_NITZ_TimeZone, + charstring p_DaylightSavingTime) + + { + var template (value) Ut_ParameterList_Type v_ParameterList; + v_ParameterList[0] := cs_Ut_Parameter_NITZ_Year(p_NITZ_Year); + v_ParameterList[1] := cs_Ut_Parameter_NITZ_Month(p_NITZ_Month); + v_ParameterList[2] := cs_Ut_Parameter_NITZ_Day(p_NITZ_Day); + v_ParameterList[3] := cs_Ut_Parameter_NITZ_Hour(p_NITZ_Hour); + v_ParameterList[4] := cs_Ut_Parameter_NITZ_Minutes(p_NITZ_Minutes); + v_ParameterList[5] := cs_Ut_Parameter_NITZ_Seconds(p_NITZ_Seconds); + v_ParameterList[6] := cs_Ut_Parameter_NITZ_TimeZone(p_NITZ_TimeZone); + v_ParameterList[7] := cs_Ut_Parameter_NITZ_DaylightSavingTime (p_DaylightSavingTime); + // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported + fl_UT_ApplyCommand(p_Port, cas_UT_Req(CTZE_DUMMY, CNF_REQUIRED, v_ParameterList), true); // @sic R5s140777, R5-153746 sic@ + } + /* * @desc To receive a timezone report * @param p_Port * @return charstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, SSNITZ) */ - function f_UT_AT_TimezoneReport(UT_PTC_MTC_PORT p_Port) return charstring + function f_UT_AT_CheckTimezoneReport(UT_PTC_MTC_PORT p_Port) return charstring { var UT_COMMON_CNF v_Cnf; - // v_Cnf := fl_UT_RetCnf(p_Port); - // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported - v_Cnf := fl_UT_ApplyCommandRetCnf (p_Port, cas_UT_Req(TIMEZONE_MULTIPLE, CNF_REQUIRED)); // @sic R5s140777 sic@ + v_Cnf := fl_UT_RetCnf (p_Port); // @sic R5s140777, R5-153746 sic@ return v_Cnf.ResultString; } //---------------------------------------------------------------------------- /* - * @desc To get the existing emergency numbers already in the UE + * @desc To dummy trigger MMI for a message waiting indication + * @param p_Port + */ + function f_UT_AT_TriggerMessageWaitInd(UT_PTC_MTC_PORT p_Port) + { + // Although no AT command is sent at this time, need to provide a dummy MMI prompt for when AT cmd not supported + fl_UT_ApplyCommand (p_Port, cas_UT_Req(CMWN_DUMMY, CNF_REQUIRED), true); + } + + /* + * @desc To receive a message waiting indication + * @param p_Port + * @return charstring + */ + function f_UT_AT_CheckMessageWaitInd(UT_PTC_MTC_PORT p_Port) return charstring + { + var UT_COMMON_CNF v_Cnf; + + v_Cnf := fl_UT_RetCnf (p_Port); + return regexp (v_Cnf.ResultString, "*CMWN: (*)", 0); + } + + //---------------------------------------------------------------------------- + /* + * @desc To get the existing emergency numbers passed from the network + As this information is always available in the test case, this function is not currently used * @param p_Port * @return EmergencyNumList - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + * @status APPROVED (LTE) */ - function f_UT_GetEmergencyNumbers(UT_PTC_MTC_PORT p_Port) return EmergencyNumList +/* function f_UT_GetEmergencyNumbers(UT_PTC_MTC_PORT p_Port) return EmergencyNumList { var charstring v_Num; var charstring v_Answer; @@ -2282,7 +2471,7 @@ module UpperTesterFunctions { return v_ExistingNums; } - + */ //---------------------------------------------------------------------------- /* * @desc To trigger an HRPD PDN Connection @@ -2309,7 +2498,7 @@ module UpperTesterFunctions { /* * @desc To trigger non call related SS * @param p_Port - * @status APPROVED (UTRAN) + * @status APPROVED (SSNITZ, UTRAN) */ function f_UT_RequestNonCallRelatedSS(UT_PTC_MTC_PORT p_Port) { @@ -2320,53 +2509,55 @@ module UpperTesterFunctions { /* * @desc send coordination message to activate/deactivate supplementary service * @param p_Port - * @param p_Activate - * @param p_PublicUserIdentity * @param p_SupplementaryService + * @param p_Activate + * @param p_TargetURI (default value: omit) * @status APPROVED (IMS) */ function f_UT_IMS_ActivateDeactivateSupplementaryService(UT_PTC_MTC_PORT p_Port, + SS_Type p_SupplementaryService, boolean p_Activate, - charstring p_PublicUserIdentity, - SS_Type p_SupplementaryService) - { + template (omit) charstring p_TargetURI := omit) + { /* @sic R5s150244 change 2: p_PublicUserIdentity replace by template (omit) charstring p_TargetURI sic@ */ var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; + v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(fl_Convert_SS_Type (p_SupplementaryService)); if (p_Activate) { v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(tsc_UT_SS_ACTIVATE); } else { v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(tsc_UT_SS_DEACTIVATE); } - v_ParameterList[2] := cs_Ut_Parameter_Uri(p_PublicUserIdentity); - v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(fl_Convert_SS_Type (p_SupplementaryService)); + if (isvalue(p_TargetURI)) { + v_ParameterList[2] := cs_Ut_Parameter_Uri(valueof(p_TargetURI)); + } fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); } type enumerated SS_Type { SS_CLIP, SS_CLIR, SS_COLP, SS_TIR, SS_CNAP, SS_CALL_WAITING, SS_BAIC, SS_BAIC_ANONYMOUS, SS_BAIC_EXCEPT_SPECIFIC_USER, - SS_BIC_ROAM, SS_BAOC, SS_BOIC, SS_BOIC_EXHC, SS_ALL_BARRING_AB, SS_ALL_OUTGOING_BARRING_AG, SS_ALL_INCOMING_BARRING_AC, SS_BARRING_IN_AND_OUT_ROAM, - SS_CFU, SS_CFNRy, SS_CFB, SS_CFNL, SS_CFNRc, SS_CF_ALL, SS_CF_ALL_CONDITIONAL, SS_CD, SS_CDIVN, SS_USSD }; /* @status APPROVED (IMS) */ + SS_BIC_ROAM, SS_BAOC, SS_BOIC, SS_BOIC_EXHC, SS_ALL_BARRING_AB, SS_ALL_OUTGOING_BARRING_AG, SS_ALL_INCOMING_BARRING_AC, SS_BARRING_OUT_ROAM, // @sic R5-153995 sic@ + SS_CFU, SS_CFNRy, SS_CFB, SS_CFNL, SS_CFNRc, SS_CF_ALL, SS_CF_ALL_CONDITIONAL, SS_CD, SS_CDIVN, SS_USSD }; /* @status APPROVED (IMS, SSNITZ) */ type enumerated SS_Mode_Type {DEACTIVATE_MODE, ACTIVATE_MODE, QUERY_MODE, REGISTER_MODE, DELETE_MODE}; /* @status APPROVED (SSNITZ) */ - type enumerated SS_SERVICE_TYPE {SS_ALLSERVICES, SS_SPEECH, SS_SYNC} // There are others, but as not yet added as all UTRAN SS should only be relevant for speech - + type enumerated SS_SERVICE_TYPE {SS_ALLSERVICES, SS_SPEECH, SS_SYNC}; /* @status APPROVED (SSNITZ) + There are others, but as not yet added as all UTRAN SS should only be relevant for speech */ /* * @desc Converts the supplementary service service enum to a charstring * @param p_Service * @return charstring - * @status + * @status APPROVED (SSNITZ) */ function fl_Convert_SS_Service (SS_SERVICE_TYPE p_Service) return charstring { var charstring v_Service := "7"; select (p_Service) { - case (SS_SPEECH) { - v_Service := "1"; - } - case (SS_SYNC) { - v_Service := "17"; - } + case (SS_SPEECH) { + v_Service := "1"; + } + case (SS_SYNC) { + v_Service := "17"; + } } return v_Service; } @@ -2400,7 +2591,7 @@ module UpperTesterFunctions { * @desc Converts the supplementary service type enum to a charstring * @param p_SS_Type * @return charstring - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function fl_Convert_SS_Type (SS_Type p_SS_Type) return charstring { @@ -2438,8 +2629,8 @@ module UpperTesterFunctions { v_Type := tsc_UT_SS_ALL_OUTGOING_BARRING_SERVICES_AG; } case (SS_ALL_INCOMING_BARRING_AC) { v_Type := tsc_UT_SS_ALL_INCOMING_BARRING_SERVICES_AC; - } case (SS_BARRING_IN_AND_OUT_ROAM) { - v_Type := tsc_UT_SS_COMMUNICATION_BARRING_WHILE_ROAMING; + } case (SS_BARRING_OUT_ROAM) { // @sic R5-153995 sic@ + v_Type := tsc_UT_SS_OUTGOING_COMMUNICATION_BARRING_WHILE_ROAMING; } case (SS_CFU) { v_Type := tsc_UT_SS_CALL_FORWARDING_UNCONDITIONAL; } case (SS_CFNRy) { @@ -2486,17 +2677,64 @@ module UpperTesterFunctions { * @desc send coordination message to activate/deactivate supplementary service CNAP * @param p_Port * @param p_Mode - * @status + * @status APPROVED (SSNITZ) */ function f_UT_SupplementaryService_CNAP(UT_PTC_MTC_PORT p_Port, - SS_Mode_Type p_Mode) + SS_Mode_Type p_Mode) { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; + var Ut_CnfReq_Type v_Cnf := NO_CNF_REQUIRED; v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(fl_Convert_SS_Mode(p_Mode)); v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(tsc_UT_SS_CNAP); - fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); + if (p_Mode != QUERY_MODE) { // @sic R5s150084 sic@ + v_Cnf := CNF_REQUIRED; // @sic R5s150213 sic@ + } + + fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, v_Cnf, v_ParameterList)); + } + + /* + * @desc To check the UE displays the name provided + * @param p_Port + * @param p_ToDisplay + * @return boolean + * @status APPROVED (SSNITZ) + */ + function f_UT_ChkNameDisplayed(UT_PTC_MTC_PORT p_Port, + charstring p_ToDisplay) return boolean + { // To make the operator check the number/name of the call is displayed + // @sic R5s140990 sic@ + var charstring v_Result := ""; + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + v_Result := regexp (v_Cnf.ResultString, "*CNAP: (*),*", 0); + + return match (v_Result, p_ToDisplay); + } + + //---------------------------------------------------------------------------- + /* + * @desc To send MMI command to check the UE returns appropriate Call Forwarding response + * @param p_Port + */ + function f_UT_TriggerCallForwardResponse(UT_PTC_MTC_PORT p_Port) + { + fl_UT_ApplyCommand(p_Port, cas_UT_Req(CCFCU_DUMMY, + CNF_REQUIRED, + omit), + true); // don't wait for CNF at this point @sic R5-153746 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc To check the UE returns appropriate Call Forwarding response + * @param p_Port + */ + function f_UT_CheckCallForwardResponse(UT_PTC_MTC_PORT p_Port) return boolean + { + var UT_COMMON_CNF v_Cnf := fl_UT_RetCnf(p_Port); // @sic R5-153746 sic@ + return v_Cnf.Result; } /* @@ -2505,8 +2743,9 @@ module UpperTesterFunctions { * @param p_Mode * @param p_CallForwardType * @param p_Number - * @param p_Time (used for CFNRy, default value: omit) - * @status + * @param p_Time (default value: omit; used for CFNRy) + * @param p_Service (default value: omit) + * @status APPROVED (SSNITZ) */ function f_UT_SupplementaryService_CallForward(UT_PTC_MTC_PORT p_Port, SS_Mode_Type p_Mode, @@ -2517,39 +2756,59 @@ module UpperTesterFunctions { { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; + var Ut_CnfReq_Type v_Cnf := NO_CNF_REQUIRED; var integer i:= 3; - + v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(fl_Convert_SS_Type(p_CallForwardType)); v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(fl_Convert_SS_Mode(p_Mode)); v_ParameterList[2] := cs_Ut_Parameter_Number(p_Number); if (isvalue(p_Service)) { - v_ParameterList[i] := cs_Ut_Parameter_Common ( "Service", fl_Convert_SS_Service (valueof(p_Service))); + v_ParameterList[i] := cs_Ut_Parameter_Common("Service", fl_Convert_SS_Service (valueof(p_Service))); i := i+1; } if (isvalue(p_Time)) { v_ParameterList[i] := cs_Ut_Parameter_SupplementaryServiceTime(valueof(p_Time)); } - fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); + if (p_Mode != QUERY_MODE) { // @sic R5s150084 sic@ + v_Cnf := CNF_REQUIRED; // @sic R5s150213 sic@ + } + fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, v_Cnf, v_ParameterList)); } + /* + * @desc + * @param p_Port + * @param p_Mode + * @param p_Service (default value: SS_ALLSERVICES) + * @status APPROVED (SSNITZ) + */ function f_UT_SupplementaryService_CallWaiting(UT_PTC_MTC_PORT p_Port, - SS_Mode_Type p_Mode, - SS_SERVICE_TYPE p_Service := SS_ALLSERVICES) + SS_Mode_Type p_Mode, + SS_SERVICE_TYPE p_Service := SS_ALLSERVICES) { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; - v_ParameterList[2] := cs_Ut_Parameter_Common ( "Service", fl_Convert_SS_Service (p_Service)); + v_ParameterList[2] := cs_Ut_Parameter_Common("Service", fl_Convert_SS_Service(p_Service)); v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(fl_Convert_SS_Mode(p_Mode)); v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(tsc_UT_SS_CALL_WAITING); fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, NO_CNF_REQUIRED, v_ParameterList)); } + /* + * @desc To trigger Call Barring SS + * @param p_Port + * @param p_Mode + * @param p_CallBarringType + * @param p_NewPassword (default value: omit) + * @param p_Service (default value: omit) + * @status APPROVED (SSNITZ) + */ function f_UT_SupplementaryService_CallBarring(UT_PTC_MTC_PORT p_Port, - SS_Mode_Type p_Mode, - SS_Type p_CallBarringType, - template (omit) charstring p_NewPassword := omit, - template (omit) SS_SERVICE_TYPE p_Service := omit) + SS_Mode_Type p_Mode, + SS_Type p_CallBarringType, + template (omit) charstring p_NewPassword := omit, + template (omit) SS_SERVICE_TYPE p_Service := omit) { var template (value) Ut_ParameterList_Type v_ParameterList; var Ut_Common_Req_Type v_Command := SUPPLEMENTARY_SERVICE; @@ -2571,7 +2830,10 @@ module UpperTesterFunctions { /* * @desc To trigger SS to change password * @param p_Port - * @status + * @param p_CallBarringType + * @param p_OldPassword + * @param p_NewPassword + * @status APPROVED (SSNITZ) */ function f_UT_SS_ChangePassword(UT_PTC_MTC_PORT p_Port, SS_Type p_CallBarringType, @@ -2593,9 +2855,9 @@ module UpperTesterFunctions { /* * @desc To send SS USSD * @param p_Port - * @param p_USSDString + * @param p_USSDString (default value: "Network Triggered") * @param p_CnfRequired (default: CNF_REQUIRED) Only set to NO_CNF_REQUIRED in 15.9.5 when UE to answer SS message - * @status + * @status APPROVED (SSNITZ) */ function f_UT_SupplementaryService_SendUSSD(UT_PTC_MTC_PORT p_Port, charstring p_USSDString := "Network Triggered", @@ -2607,12 +2869,12 @@ module UpperTesterFunctions { v_ParameterList[0] := cs_Ut_Parameter_SupplementaryService(tsc_UT_SS_USSD); v_ParameterList[1] := cs_Ut_Parameter_SS_Mode(tsc_UT_SS_ACTIVATE); - v_ParameterList[2] := cs_Ut_Parameter_USSD(p_USSDString); + v_ParameterList[2] := cs_Ut_Parameter_USSD(""""& p_USSDString &""""); // @sic R5s150603 sic@ if (p_USSDString == "Network Triggered") { v_DontWaitForCnf := true; } - + fl_UT_ApplyCommand(p_Port, cas_UT_Req(v_Command, p_CnfRequired, v_ParameterList), v_DontWaitForCnf); } @@ -2630,11 +2892,10 @@ module UpperTesterFunctions { /* * @desc SS to trigger release of held call (actually uses AT command call hold = 0) * @param p_Port - * @status + * @status APPROVED (SSNITZ) */ function f_UT_CallHoldRelease(UT_PTC_MTC_PORT p_Port) { - fl_UT_ApplyCommand(p_Port, cas_UT_Req(CALL_HOLD_RELEASE, NO_CNF_REQUIRED, omit)); } @@ -2643,7 +2904,7 @@ module UpperTesterFunctions { * @desc To trigger SS call hold * @param p_Port * @param p_CallToHold (default value: omit) - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function f_UT_CallHold(UT_PTC_MTC_PORT p_Port, template (omit) integer p_CallToHold := omit) @@ -2660,7 +2921,7 @@ module UpperTesterFunctions { * @desc To trigger SS call resume (actually uses AT command call hold) * @param p_Port * @param p_CallToHold (default value: omit) - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function f_UT_CallResume(UT_PTC_MTC_PORT p_Port, template (omit) integer p_CallToHold := omit) @@ -2676,7 +2937,7 @@ module UpperTesterFunctions { /* * @desc To trigger SS Multiparty call (actually uses AT command call hold) * @param p_Port - * @status APPROVED (IMS) + * @status APPROVED (IMS, SSNITZ) */ function f_UT_CallMPTY(UT_PTC_MTC_PORT p_Port) { @@ -2687,7 +2948,7 @@ module UpperTesterFunctions { /* * @desc To trigger SS Explicit Call Transfer (actually uses AT command call hold) * @param p_Port - * @status + * @status APPROVED (SSNITZ) */ function f_UT_ExplicitCallTransfer(UT_PTC_MTC_PORT p_Port) { @@ -2704,5 +2965,19 @@ module UpperTesterFunctions { { fl_UT_ApplyCommand(p_Port, cas_UT_Req(DEREGISTER, NO_CNF_REQUIRED)); // @sic R5-134290 sic@ } + //---------------------------------------------------------------------------- + /* + * @desc Invite UE to Conference Call, used in IMS conference test + * @param p_Port + * @param p_ReferToUri + * @status APPROVED (IMS) + */ + function f_UT_InviteToConference(UT_PTC_MTC_PORT p_Port, + charstring p_ReferToUri) + { + var template (value) Ut_ParameterList_Type v_ParameterList; + v_ParameterList[0] := cs_Ut_Parameter_Uri(p_ReferToUri); + fl_UT_ApplyCommand(p_Port, cas_UT_Req(INVITE_TO_CONFERENCE, NO_CNF_REQUIRED, v_ParameterList)); + } } diff --git a/IMS_PART4_IWD_14wk37/Common/Common/UpperTesterPtcToMtcDefs.ttcn b/LTE_A_IWD_15wk38/Common/Common/UpperTesterPtcToMtcDefs.ttcn similarity index 93% rename from IMS_PART4_IWD_14wk37/Common/Common/UpperTesterPtcToMtcDefs.ttcn rename to LTE_A_IWD_15wk38/Common/Common/UpperTesterPtcToMtcDefs.ttcn index aa25a95..fe9e143 100644 --- a/IMS_PART4_IWD_14wk37/Common/Common/UpperTesterPtcToMtcDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/Common/UpperTesterPtcToMtcDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ // Common type definitions, e.g. being used in ASP definitions as well as for NAS //------------------------------------------------------------------------------ @@ -31,6 +31,7 @@ module UpperTesterPtcToMtcDefs { CALL_RESUME, CALL_MPTY, CALL_ECT, + CCFCU_DUMMY, CHECK_CALL_DISPLAY, CHECK_CSG, CHECK_CLOCK, @@ -55,9 +56,13 @@ module UpperTesterPtcToMtcDefs { CHECK_NITZ_SHORT_NETWORK_NAME, CHECK_NITZ_UT, CLEAR_STORED_ASSISTANCE_DATA, + CMTLR_DUMMY, + CMWN_DUMMY, + CNAP_DUMMY, CONFIGURE_CEMODE, CONFIGURE_OPERATIONMODE, CONFIGURE_SMS_ONLY, + CTZE_DUMMY, DEACTIVATE_BEARER, DEFINE_EPS_QOS, DEFINE_QOS, @@ -71,11 +76,13 @@ module UpperTesterPtcToMtcDefs { GET_EMERGENCY_NUMS_1, GET_EMERGENCY_NUMS_2, HRPD_PDN_CONNECTION, + IMS_CONFIGURE_VIDEO_CALL, + IMS_MODIFY_CALL, INITIATE_VIDEO_CALL, + INVITE_TO_CONFERENCE, INSERT_USIM, LOCATION_ANSWER, LOCATION_INFO, - LOCATION_MULTIPLE, LOCATION_SUBSCRIBE, MBMS_PRIORITY_OVER_UNICAST, MBMS_SERVICE_ACTIVE, @@ -91,7 +98,6 @@ module UpperTesterPtcToMtcDefs { RELEASE_CALL, RELEASE_IMS_CALL, REMOVE_USIM, - REMOVE_VIDEO_CALL, REQUEST_CALL, REQUEST_DED_BEARER, REQUEST_IMS_EMERGENCY_CALL, @@ -110,7 +116,7 @@ module UpperTesterPtcToMtcDefs { SWITCH_OFF, SWITCH_ON, TIMEZONE_SUBSCRIBE, - TIMEZONE_MULTIPLE, + TIMEZONE_UPDATE, TRIGGER_2ND_IMPU, TRIGGER_3RD_IMPU, TRIGGER_MOLR, @@ -123,13 +129,13 @@ module UpperTesterPtcToMtcDefs { const charstring tsc_UT_SS_CLIP := "ORIGINATING IDENTIFICATION PRESENTATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CLIR := "ORIGINATING IDENTIFICATION RESTRICTION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_COLP := "TERMINATING IDENTIFICATION PRESENTATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_TERMINATING_IDENTIFICATION_RESTRICTION := "TERMINATING IDENTIFICATION RESTRICTION"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_TERMINATING_IDENTIFICATION_RESTRICTION := "TERMINATING IDENTIFICATION RESTRICTION"; /* @status APPROVED (IMS, SSNITZ) */ const charstring tsc_UT_SS_CNAP := "CALLING NAME PRESENTATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CALL_WAITING := "CALL WAITING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING := "INCOMING COMMUNICATION BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_ANONYMOUS := "INCOMING COMMUNICATION BARRING ANONYMOUS"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_ANONYMOUS := "INCOMING COMMUNICATION BARRING ANONYMOUS"; /* @status APPROVED (IMS, SSNITZ) */ const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_ROAMING := "INCOMING COMMUNICATION BARRING WHILE ROAMING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_COMMUNICATION_BARRING_WHILE_ROAMING := "COMMUNICATION BARRING WHILE ROAMING"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_OUTGOING_COMMUNICATION_BARRING_WHILE_ROAMING := "OUTGOING COMMUNICATION BARRING WHILE ROAMING"; /* @status APPROVED (IMS, SSNITZ) @sic R5-153995 sic@*/ const charstring tsc_UT_SS_OUTGOING_COMMUNICATION_BARRING := "OUTGOING COMMUNICATION BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_OUTGOING_INTERNATIONAL_BARRING := "OUTGOING INTERNATIONAL BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_OUTGOING_INTERNATIONAL_EX_HC_BARRING := "OUTGOING INTERNATIONAL EXCEPT HOME COUNTRY BARRING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -145,7 +151,7 @@ module UpperTesterPtcToMtcDefs { const charstring tsc_UT_SS_CALL_FORWARDING_ALL_CONDITIONAL := "ALL CONDITIONAL CALL FORWARDING"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CALL_FORWARDING_DEFLECTION := "COMMUNICATION DEFLECTION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const charstring tsc_UT_SS_CALL_FORWARDING_DIVERSION_NOTIFICATION := "COMMUNICATION DIVERSION NOTIFICATION"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_EXCEPT_SPECIFIC_USER := "INCOMING COMMUNICATION BARRING EXCEPT SPECIFIC USER"; /* @status APPROVED (IMS) */ + const charstring tsc_UT_SS_INCOMING_COMMUNICATION_BARRING_EXCEPT_SPECIFIC_USER := "INCOMING COMMUNICATION BARRING EXCEPT SPECIFIC USER"; /* @status APPROVED (IMS, SSNITZ) */ const charstring tsc_UT_SS_ALL_CALL_TYPES := "ALL CALL TYPES"; const charstring tsc_UT_SS_CALL_TYPE_VOICE := "CALL TYPE VOICE"; const charstring tsc_UT_SS_USSD := "USSD"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -183,6 +189,9 @@ module UpperTesterPtcToMtcDefs { // ----------------------------------------------------------------------------- //Templates: + const integer tsc_NumberingPlan_Int := 145; /* @status APPROVED (SSNITZ) + integer representation of type of number and numbering plan octet in 24.008 10.5.4.7. @sic R5s150538 sic@ */ + template (value) Ut_ParameterList_Type cs_EPSBearerParams ( charstring p_Id, charstring p_Type, charstring p_AccessPointName, diff --git a/LTE_A_IWD_14wk37/Common/Common/UpperTesterSystemCmds.ttcn b/LTE_A_IWD_15wk38/Common/Common/UpperTesterSystemCmds.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/Common/UpperTesterSystemCmds.ttcn rename to LTE_A_IWD_15wk38/Common/Common/UpperTesterSystemCmds.ttcn index 76b0ec7..45dc59c 100644 --- a/LTE_A_IWD_14wk37/Common/Common/UpperTesterSystemCmds.ttcn +++ b/LTE_A_IWD_15wk38/Common/Common/UpperTesterSystemCmds.ttcn @@ -2,172 +2,290 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module UpperTesterSystemCmds { + import from UpperTesterCommon all; + template (value) Ut_System_Cmd_Type cs_AT_CEMODE (charstring p_Mode) := cs_AT_Cmd("AT+CEMODE=" & p_Mode &""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5-106675 sic@ */ + template (value) Ut_System_Cmd_Type cs_MMI_DISABLE_EPS := cs_MMI_Cmd("DISABLE_EPS_CAPABILITY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CONFIGURE_SMS_ONLY := cs_MMI_Cmd("CONFIGURE_SMS_ONLY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_DETACH_NON_EPS := cs_MMI_Cmd("DETACH_NON_EPS", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CLEAR_STORED_DATA := cs_MMI_Cmd("CLEAR_STORED_ASSISTANCE_DATA", omit);/* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_POWER_OFF := cs_MMI_Cmd("POWER_OFF", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_POWER_ON := cs_MMI_Cmd("POWER_ON", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_SWITCH_OFF := cs_MMI_Cmd("SWITCH_OFF", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_SWITCH_ON := cs_MMI_Cmd("SWITCH_ON", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_HRPD_PDN_CONNECTION := cs_MMI_Cmd("HRPD_PDN_CONNECTION", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_TRIGGER_USER_RESELECTION := cs_MMI_Cmd("TRIGGER_USER_RESELECTION", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_REQUEST_NON_CALL_RELATED_SS := cs_MMI_Cmd("REQUEST_NON_CALL_RELATED_SS", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_DTCH := cs_MMI_Cmd("CHECK_DTCH_THROUGHCONNECTED", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_GERAN_DATA := cs_MMI_Cmd("GERAN_UPLINK_DATA", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) Ut_System_Cmd_Type cs_MMI_INSERT_USIM (template (omit) Ut_ParameterList_Type p_ParamList) := + + template (value) Ut_System_Cmd_Type cs_MMI_INSERT_USIM(template (omit) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("INSERT_USIM", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN); @sic R5-123085 harmonisation of IMS: "template (omit)" instead of "template (value)" sic@ */ template (value) Ut_System_Cmd_Type cs_MMI_ACTIVATE_SS (template (omit) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("ACTIVATE_SUPPLEMENTARY_SERVICE", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_TRIGGER_SMS := cs_MMI_Cmd("TRIGGER_SMS", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_TRIGGER_2ND_IMPU := cs_MMI_Cmd("TRIGGER_2ND_IMPU", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_TRIGGER_3RD_IMPU := cs_MMI_Cmd("TRIGGER_3RD_IMPU", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_REFRESH := cs_MMI_Cmd("REFRESH", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) Ut_System_Cmd_Type cs_MMI_REMOVE_VIDEO_CALL := cs_MMI_Cmd("REMOVE_VIDEO_CALL", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_ACCEPT_MTSI_TEXT := cs_MMI_Cmd("ACCEPT_MTSI_TEXT", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_DEREGISTER := cs_MMI_Cmd("DEREGISTER", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_MBMS_SERVICE_INTEREST (template (value) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("MBMS_SERVICE_INTEREST", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_MBMS_SERVICE_ACTIVE (template (value) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("MBMS_SERVICE_ACTIVE", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_MBMS_PRIORITY_OVER_UNICAST (template (value) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("MBMS_PRIORITY_OVER_UNICAST", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_TRIGGER_MOLR (Ut_ParameterList_Type p_ParamList) := cs_AT_Cmd("AT+CMOLR=3," & p_ParamList[0].Value & ""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_NITZ_DST (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cs_MMI_Cmd("CHECK_NITZ_DST", p_ParamList); + cs_MMI_Cmd("CHECK_NITZ_DST", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_NITZ_FULL_NETWORK_NAME (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cs_MMI_Cmd("CHECK_NITZ_FULL_NETWORK_NAME", p_ParamList); + cs_MMI_Cmd("CHECK_NITZ_FULL_NETWORK_NAME", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_NITZ_LTZ (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cs_MMI_Cmd("CHECK_NITZ_LTZ", p_ParamList); + cs_MMI_Cmd("CHECK_NITZ_LTZ", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_NITZ_SHORT_NETWORK_NAME (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cs_MMI_Cmd("CHECK_NITZ_SHORT_NETWORK_NAME", p_ParamList); - template (value) Ut_System_Cmd_Type cs_MMI_CHECK_NITZ_UT (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cs_MMI_Cmd("CHECK_NITZ_UT", p_ParamList); + cs_MMI_Cmd("CHECK_NITZ_SHORT_NETWORK_NAME", p_ParamList); + + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_NITZ_UT (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_MMI_Cmd("CHECK_NITZ_UT", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_LOCATION_INFO := cs_MMI_Cmd("LOCATION_INFO", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_REMOVE_USIM := cs_MMI_Cmd("REMOVE_USIM", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) Ut_System_Cmd_Type cs_MMI_INVITE_TO_CONFERENCE (template (omit) Ut_ParameterList_Type p_ParamList) /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + := cs_MMI_Cmd("INVITE_TO_CONFERENCE", p_ParamList); + template (value) Ut_System_Cmd_Type cs_AT_LOCATION_SUBSCRIBE(Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMTLR=" & p_ParamList[0].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_LOCATION_ANSWER (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMTLRA=" & p_ParamList[0].Value & "," & p_ParamList[1].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_TIMEZONE_SUBSCRIBE (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CTZR=" & p_ParamList[0].Value & ""); + + template (value) Ut_System_Cmd_Type cs_AT_TIMEZONE_UPDATE (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_AT_Cmd("AT+CTZU=" & p_ParamList[0].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_DIAL_CALL (charstring p_Dial) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5s110489 sic@ */ cs_AT_Cmd("ATD"&p_Dial&";"); + template (value) Ut_System_Cmd_Type cs_AT_IMS_VOICE_CALL (charstring p_URI) := cs_AT_Cmd("AT+CDU=1,"& p_URI & ""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_RELEASE_IMS_CALL (charstring p_CallId) := cs_AT_Cmd("AT+CHCCS="& p_CallId & ""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) Ut_System_Cmd_Type cs_AT_IMS_VIDEO_CALL (charstring p_URI) := - cs_AT_Cmd("AT+CDEFMP=1,""m=video"";+CDU=1," & p_URI & "1,1"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) Ut_System_Cmd_Type cs_AT_IMS_CONFIGURE_VIDEO_CALL := + cs_AT_Cmd("AT+CDEFMP=1,""m=video"" & "); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) Ut_System_Cmd_Type cs_AT_START_IMS_VIDEO_CALL (charstring p_URI, + charstring p_CallId) := + cs_AT_Cmd("AT+CDU=1," & p_URI & "1," & p_CallId & ""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + + template (value) Ut_System_Cmd_Type cs_AT_IMS_MODIFY_CALL (Ut_ParameterList_Type p_ParamList) := + cs_AT_Cmd("AT+CCMMD="& p_ParamList[0].Value & ",1," & p_ParamList[1].Value & ""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_ANSWER_CALL := cs_AT_Cmd("ATA"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_RELEASE_CALL := cs_AT_Cmd("ATH"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_DEFINE_EPS_QOS (charstring p_QoS) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGEQOS="& p_QoS &""); + template (value) Ut_System_Cmd_Type cs_AT_DEFINE_TFT (charstring p_TFT) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGTFT="& p_TFT &""); + template (value) Ut_System_Cmd_Type cs_AT_REQUEST_DED_BEARER (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGDSCONT="& p_ParamList[0].Value& "," & p_ParamList[1].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_ACTIVATEBEARER (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGACT=1,"& p_ParamList[0].Value &""); + template (value) Ut_System_Cmd_Type cs_AT_DEACTIVATEBEARER (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGACT=0,"& p_ParamList[0].Value &""); + template (value) Ut_System_Cmd_Type cs_AT_MODIFYBEARER (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGCMOD="& p_ParamList[0].Value &""); // @sic R5s100470 sic@ + template (value) Ut_System_Cmd_Type cs_MMI_CONFIGURE_OPERATIONMODE (template (omit) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_MMI_Cmd("CONFIGURE_OPERATIONMODE", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_PLMN (template (omit) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_MMI_Cmd("CHECK_PLMN", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_CSG (template (omit) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_MMI_Cmd("CHECK_CSG", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CSG_PLMN (template (value) Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_MMI_Cmd("SELECT_CSG", p_ParamList); - + template (value) Ut_System_Cmd_Type cs_AT_SET_PLMN_MANUAL (charstring p_PLMN) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5-106675 sic@ */ cs_AT_Cmd("AT+COPS=3,2;+COPS=1,2,"& p_PLMN & ""); + template (value) Ut_System_Cmd_Type cs_AT_PLMN_AUTOMATIC := cs_AT_Cmd("AT+COPS=0"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5-106675 sic@ */ + template (value) Ut_System_Cmd_Type cs_AT_REQUEST_PDPCONTEXT (Ut_ParameterList_Type p_ParamList) := cs_AT_Cmd("AT+CGDCONT=" & p_ParamList[0].Value &""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_REQUEST_ATTACH := cs_AT_Cmd("AT+CGATT=1"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_REQUEST_DETACH := cs_AT_Cmd("AT+CGATT=0"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_DELETE_MESSAGE_DELFLAG (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMGD="& p_ParamList[0].Value& "," & p_ParamList[1].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_SELECT_MESSAGE_SERVICE (charstring p_Service) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CSMS="& p_Service &""); + template (value) Ut_System_Cmd_Type cs_AT_SET_PREFERRED_STORAGE (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5s100773 R5s110064 sic@ */ cs_AT_Cmd("AT+CPMS=" &""""& p_ParamList[0].Value& """"&"," &""""& p_ParamList[1].Value &""""& "," &""""& p_ParamList[2].Value &""""& ""); + template (value) Ut_System_Cmd_Type cs_AT_MESSAGE_FORMAT (charstring p_Mode) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMGF="& p_Mode & ""); + template (value) Ut_System_Cmd_Type cs_AT_SELECT_CHARACTER_SET (charstring p_Chset) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CSCS="& p_Chset & ""); + template (value) Ut_System_Cmd_Type cs_AT_SERVICE_CENTRE_ADDRESS (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CSCA="& p_ParamList[0].Value& "," & p_ParamList[1].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_MESSAGE_WRITE_TEXTMODE (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMGW="& p_ParamList[0].Value& "," & p_ParamList[1].Value & "" & p_ParamList[2].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_MESSAGE_WRITE_PDUMODE (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMGW="& p_ParamList[0].Value& "" & p_ParamList[1].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_SEND_STORED_ONEMESSAGE (charstring p_Index) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMSS="& p_Index &""); + template (value) Ut_System_Cmd_Type cs_AT_SEND_STORED_3_MESSAGES (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CMMS=1;+CMSS=" & p_ParamList[0].Value & ";+CMSS=" & p_ParamList[1].Value & ";+CMSS=" & p_ParamList[2].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_SET_TEXTMODE_PARAMETERS (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5s100604 sic@ @sic R5s100773 sic@*/ cs_AT_Cmd("AT+CSMP="& p_ParamList[0].Value & "," & p_ParamList[1].Value & "," & p_ParamList[2].Value & ""); + template (value) Ut_System_Cmd_Type cs_AT_GET_EMERGENCY_NUMS_1 := cs_AT_Cmd("AT+CEN=1"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_GET_EMERGENCY_NUMS_2 := cs_AT_Cmd("AT+CEN?"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_ETWS_INDICATION (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5-120721 sic@ */ cs_MMI_Cmd("CHECK_ETWS_INDICATION", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_ETWS_ALERT := cs_MMI_Cmd("CHECK_ETWS_ALERT", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_ETWS_NO_ALERT := cs_MMI_Cmd("CHECK_ETWS_NO_ALERT", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5s120119 sic@ */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_CMAS_INDICATION (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_MMI_Cmd("CHECK_CMAS_INDICATION", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_CMAS_ALERT := cs_MMI_Cmd("CHECK_CMAS_ALERT", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_CMAS_NO_ALERT := cs_MMI_Cmd("CHECK_CMAS_NO_ALERT", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_MESSAGE_DISPLAYED (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_MMI_Cmd("CHECK_SMS_LENGTH_CONTENTS", p_ParamList); + template (value) Ut_System_Cmd_Type cs_AT_CHECK_CLOCK := cs_AT_Cmd("AT+CCLK?"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_CHECK_OPERATOR_NAME (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+COPS=3,"& p_ParamList[0].Value &";+COPS?"); + template (value) Ut_System_Cmd_Type cs_AT_QOS_PROFILE_REQUESTED (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CGEQREQ="& p_ParamList[0].Value& "," & p_ParamList[1].Value &""); + template (value) Ut_System_Cmd_Type cs_AT_POWER_PREFERENCE (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_AT_Cmd("AT+CEPPI="& p_ParamList[0].Value&""); + template (value) Ut_System_Cmd_Type cs_AT_ACTIVATE_MESSAGE_WAIT_INDICATION := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_AT_Cmd("AT+CMWI=1"); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_CMAS_NO_INDICATION (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5s130376 sic@ */ cs_MMI_Cmd("CHECK_CMAS_NO_INDICATION", p_ParamList); + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_ETWS_NO_INDICATION (Ut_ParameterList_Type p_ParamList) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) @sic R5s130376 sic@ */ cs_MMI_Cmd("CHECK_ETWS_NO_INDICATION", p_ParamList); + template (value) Ut_System_Cmd_Type cs_AT_SS_CLIP (charstring p_Params) := cs_AT_Cmd("AT+CLIP"& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_CLIR (charstring p_Params) := cs_AT_Cmd("AT+CLIR"& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_COLP (charstring p_Params) := cs_AT_Cmd("AT+COLP"& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_COLR := cs_AT_Cmd("AT+COLR="); + template (value) Ut_System_Cmd_Type cs_AT_SS_CALL_FORWARD (charstring p_Params) := cs_AT_Cmd("AT+CCFCU="& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_CALL_HOLD (charstring p_Params) := cs_AT_Cmd("AT+CHLD="& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_CALL_WAITING (charstring p_Params) := cs_AT_Cmd("AT+CCWA="& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_CNAP (charstring p_Params) := cs_AT_Cmd("AT+CNAP"& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_LOCK (charstring p_Params) := cs_AT_Cmd("AT+CLCK="& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_PASSWORD (charstring p_Params) := cs_AT_Cmd("AT+CPWD="& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_AT_SS_USSD (charstring p_Params) := cs_AT_Cmd("AT+CUSD=1,"& p_Params&""); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_CALL_DISPLAY (template (omit) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("CHECK_CALL_DISPLAY", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_RESPONSE_DISPLAY (template (omit) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("CHECK_RESPONSE_DISPLAY", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CHECK_SS_USER_IND (template (omit) Ut_ParameterList_Type p_ParamList) := cs_MMI_Cmd("CHECK_SS_USER_IND", p_ParamList); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) Ut_System_Cmd_Type cs_MMI_LOCATION_MULTIPLE := cs_MMI_Cmd("LOCATION_MULTIPLE", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) Ut_System_Cmd_Type cs_MMI_TIMEZONE_MULTIPLE := cs_MMI_Cmd("TIMEZONE_MULTIPLE", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) Ut_System_Cmd_Type cs_MMI_CMTLR_DUMMY := cs_MMI_Cmd("CMTLR_DUMMY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) Ut_System_Cmd_Type cs_MMI_CCFCU_DUMMY := cs_MMI_Cmd("CCFCU_DUMMY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CMWN_DUMMY := cs_MMI_Cmd("CMWI_DUMMY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_MMI_CNAP_DUMMY := cs_MMI_Cmd("CNAP_DUMMY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) Ut_System_Cmd_Type cs_MMI_CTZE_DUMMY := cs_MMI_Cmd("CTZE_DUMMY", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) Ut_System_Cmd_Type cs_SystemCmd_Dummy := { AT := "Dummy" diff --git a/LTE_A_IWD_14wk37/Common/CommonIP/CommonIP.ttcn b/LTE_A_IWD_15wk38/Common/CommonIP/CommonIP.ttcn similarity index 83% rename from LTE_A_IWD_14wk37/Common/CommonIP/CommonIP.ttcn rename to LTE_A_IWD_15wk38/Common/CommonIP/CommonIP.ttcn index f222ac6..0bf4fa9 100644 --- a/LTE_A_IWD_14wk37/Common/CommonIP/CommonIP.ttcn +++ b/LTE_A_IWD_15wk38/Common/CommonIP/CommonIP.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:44:18 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12148 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module CommonIP { @@ -15,18 +15,18 @@ module CommonIP { import from Parameters all; const UInt8_Type tsc_IP_Protocol_ICMP := 1; /* @status APPROVED (LTE, LTE_IRAT) */ - const UInt8_Type tsc_IP_Protocol_UDP := 17; /* @status APPROVED (LTE) */ + const UInt8_Type tsc_IP_Protocol_UDP := 17; /* @status APPROVED (LTE, UTRAN) */ const UInt8_Type tsc_ICMP_Type_EchoReply := 0; /* @status APPROVED (LTE, LTE_IRAT) */ const UInt8_Type tsc_ICMPv6_Type_EchoReply := 129; /* @status APPROVED (LTE, LTE_IRAT) */ const UInt8_Type tsc_ICMP_Type_EchoRequest := 8; - const UInt8_Type tsc_IP_Protocol_TCP := 6; /* @status APPROVED (LTE) */ - const UInt8_Type tsc_IP_Protocol_IPSec := 50; /* @status APPROVED (LTE) */ + const UInt8_Type tsc_IP_Protocol_TCP := 6; /* @status APPROVED (LTE, UTRAN) */ + const UInt8_Type tsc_IP_Protocol_IPSec := 50; /* @status APPROVED (LTE, UTRAN) */ const UInt8_Type tsc_IP_Protocol_ICMPv6 := 58; /* @status APPROVED (LTE, LTE_IRAT) */ const integer tsc_IMS_PortNumber_5060 := 5060; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - const octetstring tsc_IP_AnyData := '00112233445566778899AABBCCDDEEFF'O; /* @status APPROVED (LTE, LTE_IRAT) */ + const octetstring tsc_IP_AnyData := '00112233445566778899AABBCCDDEEFF'O; /* @status APPROVED (LTE, LTE_IRAT, UTRAN) */ - type record PDN_AddressInfo_Type /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + type record PDN_AddressInfo_Type /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { charstring UE_IPAddressIPv4, charstring UE_IPAddressIPv6, @@ -38,10 +38,12 @@ module CommonIP { charstring PCSCF_IPAddressIPv6, //charstring PCSCF_DomainName, charstring DNS_ServerAddressIPv4, - charstring DNS_ServerAddressIPv6 + charstring DNS_ServerAddressIPv6, + charstring XCAP_ServerAddressIPv4, /* @sic R5s141051 change 8 sic@ */ + charstring XCAP_ServerAddressIPv6 /* @sic R5s141051 change 8 sic@ */ }; - const PDN_AddressInfo_Type tsc_PDN1_AddressInfo := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + const PDN_AddressInfo_Type tsc_PDN1_AddressInfo := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ UE_IPAddressIPv4 := px_IPv4_Address1_UE, UE_IPAddressIPv6 := px_IPv6_Address1_UE, Remote_IPAddressIPv4 := px_IPv4_Address1_RemoteUE, @@ -51,7 +53,9 @@ module CommonIP { PCSCF_IPAddressIPv4 := px_IPv4_Address1_NW, PCSCF_IPAddressIPv6 := px_IPv6_Address1_NW, DNS_ServerAddressIPv4 := px_IPv4_Address1_NW, - DNS_ServerAddressIPv6 := px_IPv6_Address1_NW + DNS_ServerAddressIPv6 := px_IPv6_Address1_NW, + XCAP_ServerAddressIPv4 := px_IPv4_Address1_NW, /* @sic R5s141051 change 8 sic@ */ + XCAP_ServerAddressIPv6 := px_IPv6_Address1_NW /* @sic R5s141051 change 8 sic@ */ }; const PDN_AddressInfo_Type tsc_PDN2_AddressInfo := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ UE_IPAddressIPv4 := px_IPv4_Address2_UE, @@ -63,34 +67,54 @@ module CommonIP { PCSCF_IPAddressIPv4 := px_IPv4_Address2_NW, PCSCF_IPAddressIPv6 := px_IPv6_Address2_NW, DNS_ServerAddressIPv4 := px_IPv4_Address2_NW, - DNS_ServerAddressIPv6 := px_IPv6_Address2_NW + DNS_ServerAddressIPv6 := px_IPv6_Address2_NW, + XCAP_ServerAddressIPv4 := px_IPv4_Address2_NW, /* @sic R5s141051 change 8 sic@ */ + XCAP_ServerAddressIPv6 := px_IPv6_Address2_NW /* @sic R5s141051 change 8 sic@ */ }; const PDN_AddressInfo_Type tsc_PDN_AddressInfo[2] := { tsc_PDN1_AddressInfo, tsc_PDN2_AddressInfo}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + /* - * @desc return PDN_AddressInfo corresponding to the given PdnIndex + * @desc return index of the IP address or IMS server corresponding to the given PdnIndex * @param p_PdnIndex - * @return PDN_AddressInfo_Type + * @return integer * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function f_PDN_AddressInfo_Get(PDN_Index_Type p_PdnIndex) return PDN_AddressInfo_Type + function f_PDN_PdnIndex2Integer(PDN_Index_Type p_PdnIndex) return integer { /* PDN_2a to support change of the IP address for IMS test case 19.5.1 */ - var PDN_AddressInfo_Type v_PDN_AddressInfo; + /* @sic R5s150031: fl_IP_ServerIndex -> f_PDN_PdnIndex2Integer sic@ */ var integer v_Index; - select (p_PdnIndex) { - case (PDN_1, PDN_2, PDN_Internet) { - v_Index := enum2int(p_PdnIndex); - v_PDN_AddressInfo := tsc_PDN_AddressInfo[v_Index]; + case (PDN_1) { + v_Index := 0; } - case (PDN_2a) { - FatalError(__FILE__, __LINE__, "PDN_2a is not supported yet"); + case (PDN_2, PDN_2a, PDN_Internet) { + v_Index := 1; } case else { FatalError(__FILE__, __LINE__, "Invalid PDN index"); } } + return v_Index; + } + + /* + * @desc return PDN_AddressInfo corresponding to the given PdnIndex + * @param p_PdnIndex + * @return PDN_AddressInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_PDN_AddressInfo_Get(PDN_Index_Type p_PdnIndex) return PDN_AddressInfo_Type + { /* PDN_2a to support change of the IP address for IMS test case 19.5.1 */ + var PDN_AddressInfo_Type v_PDN_AddressInfo; + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); + + v_PDN_AddressInfo := tsc_PDN_AddressInfo[v_Index]; + if (p_PdnIndex == PDN_2a) { + v_PDN_AddressInfo.UE_IPAddressIPv4 := px_IPv4_Address2a_UE; /* @sic implementation of IMS TC_19_5_1 sic@ */ + v_PDN_AddressInfo.UE_IPAddressIPv6 := px_IPv6_Address2a_UE; /* @sic implementation of IMS TC_19_5_1 sic@ */ + } return v_PDN_AddressInfo; } @@ -112,7 +136,7 @@ module CommonIP { * @desc Check whether given string is IPv6 address * @param p_IpAddress * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IpAddressIsIPv6(charstring p_IpAddress) return boolean { @@ -129,7 +153,7 @@ module CommonIP { for (i:=0; i 4) { return false; } if (not match(v_Field, pattern v_Pattern)) { return false; } @@ -143,7 +167,7 @@ module CommonIP { * e.g. "10.11.12.13" results in '0A0B0C0D'O * @param p_IPv4AddrChar * @return O4_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Convert_IPv4Addr2OctString(charstring p_IPv4AddrChar) return O4_Type { @@ -171,7 +195,7 @@ module CommonIP { * E.g. "2001::1" results in '20010000000000000000000000000001'O * @param p_IPv6AddrChar * @return O16_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Convert_IPv6Addr2OctString(charstring p_IPv6AddrChar) return O16_Type { @@ -229,7 +253,7 @@ module CommonIP { * @param p_Addr1 * @param p_Addr2 * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IPAddresses_Compare(charstring p_Addr1, charstring p_Addr2) return boolean diff --git a/LTE_A_IWD_14wk37/Common/CommonIP/LoopbackIP.ttcn b/LTE_A_IWD_15wk38/Common/CommonIP/LoopbackIP.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/Common/CommonIP/LoopbackIP.ttcn rename to LTE_A_IWD_15wk38/Common/CommonIP/LoopbackIP.ttcn index 4abc255..9f28bd2 100644 --- a/LTE_A_IWD_14wk37/Common/CommonIP/LoopbackIP.ttcn +++ b/LTE_A_IWD_15wk38/Common/CommonIP/LoopbackIP.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-09-30 16:05:43 +0200 (Mon, 30 Sep 2013) $ -// $Rev: 9688 $ +// @version: IWD_15wk38 +// $Date: 2015-01-10 18:49:20 +0100 (Sat, 10 Jan 2015) $ +// $Rev: 12854 $ /******************************************************************************/ module LoopbackIP { @@ -70,7 +70,7 @@ module LoopbackIP { * @param p_DestAddr * @param p_IPPayload * @return octetstring - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_IRAT, UTRAN) */ function f_IPv4Packet_Create(O2_Type p_Identification := '6d7d'O, // Identification; random value (can be used to generate different packets O1_Type p_TOS := '00'O, // Differentiated services (RFC 2474), Explicit Congestion Notification (ECN, RFC 3168), former TOS (RFC 791) @@ -112,7 +112,7 @@ module LoopbackIP { * @param p_DestAddr * @param p_IPPayload * @return octetstring - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_IRAT, UTRAN) */ function f_IPv6Packet_Create(O1_Type p_TrafficClass := '00'O, UInt20_Type p_FlowLabel := 0, @@ -149,7 +149,7 @@ module LoopbackIP { * @param p_DestPort * @param p_UdpPayload * @return octetstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, UTRAN) */ function f_IPv4UdpDatagram_Create(charstring p_SourceAddr, charstring p_DestAddr, @@ -186,7 +186,7 @@ module LoopbackIP { * @param p_DestPort * @param p_UdpPayload * @return octetstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, UTRAN) */ function f_IPv6UdpDatagram_Create(charstring p_SourceAddr, charstring p_DestAddr, @@ -228,7 +228,7 @@ module LoopbackIP { * @param p_DestPort * @param p_TcpPayload * @return octetstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, UTRAN) */ function f_IPv4TcpDatagram_Create(charstring p_SourceAddr, charstring p_DestAddr, @@ -268,7 +268,7 @@ module LoopbackIP { * @param p_SPI * @param p_Payload * @return octetstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, UTRAN) */ function f_IPSecESPDatagram_Create(integer p_NextHeader, O4_Type p_SPI, @@ -313,7 +313,7 @@ module LoopbackIP { * @param p_DestPort * @param p_TcpPayload * @return octetstring - * @status APPROVED (LTE) + * @status APPROVED (LTE, UTRAN) */ function f_IPv6TcpDatagram_Create(charstring p_SourceAddr, charstring p_DestAddr, diff --git a/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn new file mode 100644 index 0000000..a3dd48a --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryCapCheckFunctions.ttcn @@ -0,0 +1,282 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-06-17 00:42:21 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13920 $ +/******************************************************************************/ + +module EUTRA_AuxiliaryCapCheckFunctions +{ + +//========================================================================= +// Auxiliary functions for checking of capabilities +// for the time being only those functions needed outside module RRC_Others +// are contained here. More functions may be transferred in the future. +//========================================================================= + + import from CommonDefs all; + import from EUTRA_Parameters all; + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from Parameters all; + + /* + * @desc convert the PICS parameters pc_FeatrGrp_X_F from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element FDD featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE, UTRAN) + */ + function fl_DeriveFeatrGrpCapFromPics_r9_FDD () return B32_Type + { + var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_1_F) & + f_ConvertBoolToBit(pc_FeatrGrp_2_F) & + f_ConvertBoolToBit(pc_FeatrGrp_3_F) & + f_ConvertBoolToBit(pc_FeatrGrp_4_F) & + f_ConvertBoolToBit(pc_FeatrGrp_5_F) & + f_ConvertBoolToBit(pc_FeatrGrp_6_F) & + f_ConvertBoolToBit(pc_FeatrGrp_7_F) & + f_ConvertBoolToBit(pc_FeatrGrp_8_F) & + f_ConvertBoolToBit(pc_FeatrGrp_9_F) & + f_ConvertBoolToBit(pc_FeatrGrp_10_F) & + f_ConvertBoolToBit(pc_FeatrGrp_11_F) & + f_ConvertBoolToBit(pc_FeatrGrp_12_F) & + f_ConvertBoolToBit(pc_FeatrGrp_13_F) & + f_ConvertBoolToBit(pc_FeatrGrp_14_F) & + f_ConvertBoolToBit(pc_FeatrGrp_15_F) & + f_ConvertBoolToBit(pc_FeatrGrp_16_F) & + f_ConvertBoolToBit(pc_FeatrGrp_17_F) & + f_ConvertBoolToBit(pc_FeatrGrp_18_F) & + f_ConvertBoolToBit(pc_FeatrGrp_19_F) & + f_ConvertBoolToBit(pc_FeatrGrp_20_F) & + f_ConvertBoolToBit(pc_FeatrGrp_21_F) & + f_ConvertBoolToBit(pc_FeatrGrp_22_F) & + f_ConvertBoolToBit(pc_FeatrGrp_23_F) & + f_ConvertBoolToBit(pc_FeatrGrp_24_F) & + f_ConvertBoolToBit(pc_FeatrGrp_25_F) & + f_ConvertBoolToBit(pc_FeatrGrp_26_F) & + f_ConvertBoolToBit(pc_FeatrGrp_27_F) & + f_ConvertBoolToBit(pc_FeatrGrp_28_F) & + f_ConvertBoolToBit(pc_FeatrGrp_29_F) & + f_ConvertBoolToBit(pc_FeatrGrp_30_F) & + f_ConvertBoolToBit(pc_FeatrGrp_31_F) & // @sic R5s130237 sic@ + '0'B; + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r9_FDD + /* + * @desc convert the PICS parameters pc_FeatrGrp_X_T from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element TDD featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE, UTRAN) + */ + function fl_DeriveFeatrGrpCapFromPics_r9_TDD () return B32_Type + { + var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_1_T) & + f_ConvertBoolToBit(pc_FeatrGrp_2_T) & + f_ConvertBoolToBit(pc_FeatrGrp_3_T) & + f_ConvertBoolToBit(pc_FeatrGrp_4_T) & + f_ConvertBoolToBit(pc_FeatrGrp_5_T) & + f_ConvertBoolToBit(pc_FeatrGrp_6_T) & + f_ConvertBoolToBit(pc_FeatrGrp_7_T) & + f_ConvertBoolToBit(pc_FeatrGrp_8_T) & + f_ConvertBoolToBit(pc_FeatrGrp_9_T) & + f_ConvertBoolToBit(pc_FeatrGrp_10_T) & + f_ConvertBoolToBit(pc_FeatrGrp_11_T) & + f_ConvertBoolToBit(pc_FeatrGrp_12_T) & + f_ConvertBoolToBit(pc_FeatrGrp_13_T) & + f_ConvertBoolToBit(pc_FeatrGrp_14_T) & + f_ConvertBoolToBit(pc_FeatrGrp_15_T) & + f_ConvertBoolToBit(pc_FeatrGrp_16_T) & + f_ConvertBoolToBit(pc_FeatrGrp_17_T) & + f_ConvertBoolToBit(pc_FeatrGrp_18_T) & + f_ConvertBoolToBit(pc_FeatrGrp_19_T) & + f_ConvertBoolToBit(pc_FeatrGrp_20_T) & + f_ConvertBoolToBit(pc_FeatrGrp_21_T) & + f_ConvertBoolToBit(pc_FeatrGrp_22_T) & + f_ConvertBoolToBit(pc_FeatrGrp_23_T) & + f_ConvertBoolToBit(pc_FeatrGrp_24_T) & + f_ConvertBoolToBit(pc_FeatrGrp_25_T) & + f_ConvertBoolToBit(pc_FeatrGrp_26_T) & + f_ConvertBoolToBit(pc_FeatrGrp_27_T) & + f_ConvertBoolToBit(pc_FeatrGrp_28_T) & + f_ConvertBoolToBit(pc_FeatrGrp_29_T) & + f_ConvertBoolToBit(pc_FeatrGrp_30_T) & + f_ConvertBoolToBit(pc_FeatrGrp_31_T) & // @sic R5s130237 sic@ + '0'B; + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r9_TDD + + /* + * @desc convert the PICS parameters additional pc_FeatrGrp_X_F from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element additional featureGroupIndicators FDD in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE) + */ + function fl_DeriveFeatrGrpCapFromPics_r9Add_FDD () return B32_Type + { + var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_33_F) & + f_ConvertBoolToBit(pc_FeatrGrp_34_F) & + f_ConvertBoolToBit(pc_FeatrGrp_35_F) & + f_ConvertBoolToBit(pc_FeatrGrp_36_F) & + f_ConvertBoolToBit(pc_FeatrGrp_37_F) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_38_F) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_39_F) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_40_F) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_41_F) & // @sic R5s130237 sic@ + '00000000000000000000000'B; + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r9Add_FDD + + /* + * @desc convert the PICS parameters additional pc_FeatrGrp_X_T from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element additional featureGroupIndicators TDD in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE) + */ + function fl_DeriveFeatrGrpCapFromPics_r9Add_TDD () return B32_Type + { + var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_33_T) & + f_ConvertBoolToBit(pc_FeatrGrp_34_T) & + f_ConvertBoolToBit(pc_FeatrGrp_35_T) & + f_ConvertBoolToBit(pc_FeatrGrp_36_T) & + f_ConvertBoolToBit(pc_FeatrGrp_37_T) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_38_T) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_39_T) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_40_T) & // @sic R5s130237 sic@ + f_ConvertBoolToBit(pc_FeatrGrp_41_T) & // @sic R5s130237 sic@ + '00000000000000000000000'B; + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r9Add_TDD + + /* + * @desc convert the PICS parameters pc_FeatrGrp_X_F from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element FDD featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE) + */ + function fl_DeriveFeatrGrpCapFromPics_r10_FDD () return B32_Type + { + var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_101_F) & + f_ConvertBoolToBit(pc_FeatrGrp_102_F) & + f_ConvertBoolToBit(pc_FeatrGrp_103_F) & + f_ConvertBoolToBit(pc_FeatrGrp_104_F) & + f_ConvertBoolToBit(pc_FeatrGrp_105_F) & + f_ConvertBoolToBit(pc_FeatrGrp_106_F) & + f_ConvertBoolToBit(pc_FeatrGrp_107_F) & + f_ConvertBoolToBit(pc_FeatrGrp_108_F) & + f_ConvertBoolToBit(pc_FeatrGrp_109_F) & + f_ConvertBoolToBit(pc_FeatrGrp_110_F) & + f_ConvertBoolToBit(pc_FeatrGrp_111_F) & + f_ConvertBoolToBit(pc_FeatrGrp_112_F) & + f_ConvertBoolToBit(pc_FeatrGrp_113_F) & + f_ConvertBoolToBit(pc_FeatrGrp_114_F) & + f_ConvertBoolToBit(pc_FeatrGrp_115_F) & + f_ConvertBoolToBit(pc_FeatrGrp_116_F) & + '0000000000000000'B; + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r10_FDD + + /* + * @desc convert the PICS parameters pc_FeatrGrp_X_T from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element FDD featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE) + */ + function fl_DeriveFeatrGrpCapFromPics_r10_TDD () return B32_Type + { + var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_101_T) & + f_ConvertBoolToBit(pc_FeatrGrp_102_T) & + f_ConvertBoolToBit(pc_FeatrGrp_103_T) & + f_ConvertBoolToBit(pc_FeatrGrp_104_T) & + f_ConvertBoolToBit(pc_FeatrGrp_105_T) & + f_ConvertBoolToBit(pc_FeatrGrp_106_T) & + f_ConvertBoolToBit(pc_FeatrGrp_107_T) & + f_ConvertBoolToBit(pc_FeatrGrp_108_T) & + f_ConvertBoolToBit(pc_FeatrGrp_109_T) & + f_ConvertBoolToBit(pc_FeatrGrp_110_T) & + f_ConvertBoolToBit(pc_FeatrGrp_111_T) & + f_ConvertBoolToBit(pc_FeatrGrp_112_T) & + f_ConvertBoolToBit(pc_FeatrGrp_113_T) & + f_ConvertBoolToBit(pc_FeatrGrp_114_T) & + f_ConvertBoolToBit(pc_FeatrGrp_115_T) & + f_ConvertBoolToBit(pc_FeatrGrp_116_T) & + '0000000000000000'B; + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r10_TDD + + /* + * @desc Function to convert the PICS parameters pc_eBandX_Supp from single booleans to a bitstring. + * The leftmost bit represent eBand1 support ('1'B if supported according to PICS pc_eBand1_Supp + * and '0'B if not supported according to PICS pc_eBand1_Supp). + * @return bitstring + * @status APPROVED (LTE, LTE_A, POS, UTRAN) + */ + function f_DeriveSuppEutraBandsFromPics() return bitstring + { + var bitstring v_Bitstring := f_ConvertBoolToBit(pc_eBand1_Supp) & + f_ConvertBoolToBit(pc_eBand2_Supp) & + f_ConvertBoolToBit(pc_eBand3_Supp) & + f_ConvertBoolToBit(pc_eBand4_Supp) & + f_ConvertBoolToBit(pc_eBand5_Supp) & + f_ConvertBoolToBit(pc_eBand6_Supp) & + f_ConvertBoolToBit(pc_eBand7_Supp) & + f_ConvertBoolToBit(pc_eBand8_Supp) & + f_ConvertBoolToBit(pc_eBand9_Supp) & + f_ConvertBoolToBit(pc_eBand10_Supp) & + f_ConvertBoolToBit(pc_eBand11_Supp) & + f_ConvertBoolToBit(pc_eBand12_Supp) & + f_ConvertBoolToBit(pc_eBand13_Supp) & + f_ConvertBoolToBit(pc_eBand14_Supp) & + '0'B &//Band 15 is reserved + '0'B &//Band 16 is reserved + f_ConvertBoolToBit(pc_eBand17_Supp) & + f_ConvertBoolToBit(pc_eBand18_Supp) & + f_ConvertBoolToBit(pc_eBand19_Supp) & + f_ConvertBoolToBit(pc_eBand20_Supp) & // @sic R5-103122 sic@ + f_ConvertBoolToBit(pc_eBand21_Supp) & // @sic R5-103122 sic@ + f_ConvertBoolToBit(pc_eBand22_Supp) & // @sic R5-115190 sic@ + f_ConvertBoolToBit(pc_eBand23_Supp) & // @sic R5-113669 sic@ + f_ConvertBoolToBit(pc_eBand24_Supp) & // @sic R5-112489 sic@ + f_ConvertBoolToBit(pc_eBand25_Supp) & // @sic R5-113156 sic@ + f_ConvertBoolToBit(pc_eBand26_Supp) & // @sic R5-121224 sic@ + f_ConvertBoolToBit(pc_eBand27_Supp) & // @sic R5s130320 sic@ + f_ConvertBoolToBit(pc_eBand28_Supp) & // @sic R5s130320 sic@ + f_ConvertBoolToBit(pc_eBand29_Supp) & // @sic R5s130320 sic@ + f_ConvertBoolToBit(pc_eBand30_Supp) & // @sic R5-144079 sic@ + f_ConvertBoolToBit(pc_eBand31_Supp) & // @sic R5s133307 sic@ + f_ConvertBoolToBit(pc_eBand32_Supp) & // @sic R5-151966 sic@ + f_ConvertBoolToBit(pc_eBand33_Supp) & + f_ConvertBoolToBit(pc_eBand34_Supp) & + f_ConvertBoolToBit(pc_eBand35_Supp) & + f_ConvertBoolToBit(pc_eBand36_Supp) & //@sic R5s100020 sic@ + f_ConvertBoolToBit(pc_eBand37_Supp) & + f_ConvertBoolToBit(pc_eBand38_Supp) & + f_ConvertBoolToBit(pc_eBand39_Supp) & + f_ConvertBoolToBit(pc_eBand40_Supp) & + f_ConvertBoolToBit(pc_eBand41_Supp) & //@sic R5-106554 sic@ + f_ConvertBoolToBit(pc_eBand42_Supp) & //@sic R5-110537 sic@ + f_ConvertBoolToBit(pc_eBand43_Supp); //@sic R5-110537 sic@ + return v_Bitstring; + } // f_DeriveSuppEutraBandsFromPics + + /* + * @desc Function which returns the total number of supported bands according to the set PICS parameters pc_eBandX_Supp. + * @param p_Bitstring + * @return integer + */ + function f_GetNrOfSuppEutraBands(bitstring p_Bitstring) return integer + { + var integer v_NrOfSuppEutraBands := 0; + var integer i; + + for (i := 0; i < lengthof(p_Bitstring); i := i + 1) { + if (f_Bitstring_BitIsSet(p_Bitstring, i)) { + v_NrOfSuppEutraBands := v_NrOfSuppEutraBands + 1; + } + } + return v_NrOfSuppEutraBands; + } // f_GetNrOfSuppEutraBands + +} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn index a6a5122..f2eff7f 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_AuxiliaryFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-05 14:12:35 +0200 (Sat, 05 Jul 2014) $ -// $Rev: 11810 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 01:24:08 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13497 $ /******************************************************************************/ module EUTRA_AuxiliaryFunctions { @@ -372,7 +372,7 @@ module EUTRA_AuxiliaryFunctions { * @desc function to convert integer value of band class to enumerated type BandclassCDMA2000 * @param p_Integer * @return BandclassCDMA2000 - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_ConvertFromIntegerToBandClass (integer p_Integer) return BandclassCDMA2000 { @@ -435,7 +435,8 @@ module EUTRA_AuxiliaryFunctions { case (rel9) {v_UE_Release := 9;} case (rel10) {v_UE_Release := 10;} case (rel11) {v_UE_Release := 11;} - case (spare4, spare3, spare2, spare1) { } // => we will get syntax errors for new baseline + case (rel12) {v_UE_Release := 12;} + case (spare3, spare2, spare1) { } // => we will get syntax errors for new baseline case else {FatalError (__FILE__, __LINE__, "invalid release");} } return v_UE_Release; diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_BandDependentParam.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_BandDependentParam.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_BandDependentParam.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_BandDependentParam.ttcn index b715200..d56615f 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_BandDependentParam.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_BandDependentParam.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-02-20 17:26:19 +0100 (Thu, 20 Feb 2014) $ -// $Rev: 10594 $ +// @version: IWD_15wk38 +// $Date: 2015-02-26 18:30:31 +0100 (Thu, 26 Feb 2015) $ +// $Rev: 13067 $ /******************************************************************************/ module EUTRA_BandDependentParam { @@ -179,18 +179,18 @@ module EUTRA_BandDependentParam { // @sic R5s100029 sic@ select (p_UL_ChBandwidth) { case (n6){ //1.4MHz - //v_ChBandDependency.Prach_FrequencyOffset := valueFFS; //integer - //v_ChBandDependency.N_RB_CQI := valueFFS; - //v_ChBandDependency.Pusch_HoppingOffset := valueFFS ; //PUCCH_ConfigCommon - //v_ChBandDependency.sr_PUCCH_ResourceIndex := valueFFS; - //v_ChBandDependency.SrsBandwidthConfiguration := valueFFS; //SoundingRS_UL_ConfigCommon.srs_BandwidthConfig + v_ChBandDependency.Prach_FrequencyOffset := 0; + v_ChBandDependency.N_RB_CQI := 0; + v_ChBandDependency.Pusch_HoppingOffset := 0; //PUCCH_ConfigCommon + //v_ChBandDependency.sr_PUCCH_ResourceIndex := value FFS in 36.508; + //v_ChBandDependency.SrsBandwidthConfiguration := value FFS in 36.508; //SoundingRS_UL_ConfigCommon.srs_BandwidthConfig } case (n15){ //3MHz - //v_ChBandDependency.Prach_FrequencyOffset := valueFFS; //integer - //v_ChBandDependency.N_RB_CQI := valueFFS; //PUCCH_ConfigCommon.nRB_CQI inline type - FFS in 36.331 ENUMERATED {ffs} - //v_ChBandDependency.Pusch_HoppingOffset valueFFS ; - //v_ChBandDependency.sr_PUCCH_ResourceIndex := valueFFS; - //v_ChBandDependency.SrsBandwidthConfiguration := valueFFS; //SoundingRS_UL_ConfigCommon.srs_BandwidthConfig + v_ChBandDependency.Prach_FrequencyOffset := 1; + v_ChBandDependency.N_RB_CQI := 0; + v_ChBandDependency.Pusch_HoppingOffset := 2; + //v_ChBandDependency.sr_PUCCH_ResourceIndex := value FFS in 36.508; + //v_ChBandDependency.SrsBandwidthConfiguration := value FFS in 36.508; //SoundingRS_UL_ConfigCommon.srs_BandwidthConfig } case (n25){ //5MHz v_ChBandDependency.Prach_FrequencyOffset := 2; diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn similarity index 88% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn index 5512cbe..fcbe831 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CDMA2000Tunnelling.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-07 00:13:03 +0200 (Sat, 07 Jun 2014) $ -// $Rev: 11664 $ +// @version: IWD_15wk38 +// $Date: 2015-06-16 19:30:07 +0200 (Tue, 16 Jun 2015) $ +// $Rev: 13918 $ /******************************************************************************/ module EUTRA_ASP_EUTRA_CDMA2000Tunnelling { @@ -199,28 +199,26 @@ module EUTRA_ASP_EUTRA_CDMA2000Tunnelling { /* * @desc Function to handled tunneled pre-registration procedure * @param p_CellId - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_IRAT) */ function f_CDMA2000_RegistrationOrder(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { /* NOTE: implementation requires that the SS can cope with subsequent CDMA2000_MSG_REQ * (=> we don't need to wait for the response before we can send another request) */ - var CDMA2000_MSG_IND v_CDMA2000_MSG_IND; + var CDMA2000_MSG_IND v_CDMA2000_MSG_IND; var CDMA2000_Type v_CDMA2000Type; var template (value) DLInformationTransfer_DedicatedInfo_Type v_DedicatedInfoDL; var DedicatedInfoCDMA2000 v_DedicatedInfoCDMA2000; - - C2KTUNNEL.receive(car_CDMA2000_MSG_IND) -> value v_CDMA2000_MSG_IND ; - v_CDMA2000Type := v_CDMA2000_MSG_IND.CDMA2000Type; - v_DedicatedInfoCDMA2000 := v_CDMA2000_MSG_IND.DL_Msg.Msg; - select (v_CDMA2000Type) { - case (type1XRTT) { v_DedicatedInfoDL := cs_DedicatedInfoType_1XRTT(v_DedicatedInfoCDMA2000); } - case (typeHRPD) { v_DedicatedInfoDL := cs_DedicatedInfoType_HRPD(v_DedicatedInfoCDMA2000); } - } - SRB.send(cas_SRB2_RrcPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_DLInformationTransfer_Common(tsc_RRC_TI_Def, v_DedicatedInfoDL))); - - + C2KTUNNEL.receive(car_CDMA2000_MSG_IND) -> value v_CDMA2000_MSG_IND ; + v_CDMA2000Type := v_CDMA2000_MSG_IND.CDMA2000Type; + v_DedicatedInfoCDMA2000 := v_CDMA2000_MSG_IND.DL_Msg.Msg; + select (v_CDMA2000Type) { + case (type1XRTT) { v_DedicatedInfoDL := cs_DedicatedInfoType_1XRTT(v_DedicatedInfoCDMA2000); } + case (typeHRPD) { v_DedicatedInfoDL := cs_DedicatedInfoType_HRPD(v_DedicatedInfoCDMA2000); } + } + SRB.send(cas_SRB2_RrcPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_DLInformationTransfer_Common(tsc_RRC_TI_Def, v_DedicatedInfoDL))); } + //============================================================================ /* * @desc function to execute CSFB Parameters procedure @@ -345,33 +343,40 @@ module EUTRA_ASP_EUTRA_CDMA2000Tunnelling { cs_MobilityFromEutraCommand_E_CSFB_1xRTT(tsc_RRC_TI_Def, v_Msg_C2K))); } + /* + * @desc function to handle tunneled Enhanced 1xRTT signalling for CS fallback failure + * @param p_CellId + * @param p_RAND_CDMA2000 (default value: px_RAND) + * @status APPROVED (LTE_IRAT) + */ function f_E_CSFB_Fail_EUTRA_1xRTT(EUTRA_CellId_Type p_CellId, template (value) RAND_CDMA2000 p_RAND_CDMA2000 := px_RAND) runs on EUTRA_PTC - { - var TunneledInfoCDMA2000 v_Msg_C2K; - var SRB_COMMON_IND v_SRB_COMMON_IND; - var CDMA2000_MSG_IND v_CDMA2000_MSG_IND; - var MEID_Type v_MEID; + { + var TunneledInfoCDMA2000 v_Msg_C2K; + var SRB_COMMON_IND v_SRB_COMMON_IND; + var CDMA2000_MSG_IND v_CDMA2000_MSG_IND; + var MEID_Type v_MEID; - C2KTUNNEL.receive(car_CDMA2000_MSG_IND) -> value v_CDMA2000_MSG_IND; - v_Msg_C2K := v_CDMA2000_MSG_IND.DL_Msg.Msg; - // step 6 - SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_508_HandoverFromEUTRAPreparationRequest_1xRTT(tsc_RRC_TI_Def,p_RAND_CDMA2000, v_Msg_C2K))); - // step 7 - SRB.receive (car_SRB1_RrcPdu_IND(p_CellId, - cr_508_ULHandoverPreparationTransfer_1xRTT)) -> value v_SRB_COMMON_IND; + C2KTUNNEL.receive(car_CDMA2000_MSG_IND) -> value v_CDMA2000_MSG_IND; + v_Msg_C2K := v_CDMA2000_MSG_IND.DL_Msg.Msg; + // step 6 + SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, + cs_TimingInfo_Now, + cs_508_HandoverFromEUTRAPreparationRequest_1xRTT(tsc_RRC_TI_Def, p_RAND_CDMA2000, v_Msg_C2K))); + // step 7 + SRB.receive (car_SRB1_RrcPdu_IND(p_CellId, + cr_508_ULHandoverPreparationTransfer_1xRTT)) -> value v_SRB_COMMON_IND; v_Msg_C2K := v_SRB_COMMON_IND.Signalling.Rrc.Dcch.message_.c1.ulHandoverPreparationTransfer.criticalExtensions.c1.ulHandoverPreparationTransfer_r8.dedicatedInfo; - v_MEID := v_SRB_COMMON_IND.Signalling.Rrc.Dcch.message_.c1.ulHandoverPreparationTransfer.criticalExtensions.c1.ulHandoverPreparationTransfer_r8.meid; - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6"); - C2KTUNNEL.send(cas_CDMA2000_MSG_REQ(typeHRPD,v_Msg_C2K,v_MEID)); - C2KTUNNEL.receive(car_CDMA2000_MSG_IND) -> value v_CDMA2000_MSG_IND; - v_Msg_C2K := v_CDMA2000_MSG_IND.DL_Msg.Msg; - - // step 8 - SRB.send(cas_SRB2_RrcPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_DLInformationTransfer_Common(tsc_RRC_TI_Def, cs_DedicatedInfoType_1XRTT(v_Msg_C2K)))); - } + v_MEID := v_SRB_COMMON_IND.Signalling.Rrc.Dcch.message_.c1.ulHandoverPreparationTransfer.criticalExtensions.c1.ulHandoverPreparationTransfer_r8.meid; + + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6"); + C2KTUNNEL.send(cas_CDMA2000_MSG_REQ(type1XRTT,v_Msg_C2K,v_MEID)); //@sic R5s140810 sic@ + C2KTUNNEL.receive(car_CDMA2000_MSG_IND) -> value v_CDMA2000_MSG_IND; + v_Msg_C2K := v_CDMA2000_MSG_IND.DL_Msg.Msg; + + // step 8 + SRB.send(cas_SRB2_RrcPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_DLInformationTransfer_Common(tsc_RRC_TI_Def, cs_DedicatedInfoType_1XRTT(v_Msg_C2K)))); + } /* * @desc function to handle tunneled MT CSFB to 1xRTT diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfo.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfo.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfo.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfo.ttcn index 8b53485..6b40c70 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CellInfo.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfo.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module EUTRA_CellInfo { import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; @@ -38,7 +38,7 @@ module EUTRA_CellInfo { @sic R5s120728 sic@ */ const AbsoluteCellPower_Type tsc_ServingCellRS_EPRE := -85; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const AbsoluteCellPower_Type tsc_SuitableCellRS_EPRE := -97; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ - const AbsoluteCellPower_Type tsc_NonSuitableCellRS_EPRE := -115; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + const AbsoluteCellPower_Type tsc_NonSuitableCellRS_EPRE := -115; /* @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const AbsoluteCellPower_Type tsc_NonSuitableOffCellRS_EPRE := -145; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const AbsoluteCellPower_Type tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE := -91; /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS) */ const AbsoluteCellPower_Type tsc_CellRS_EPRE_65 := -65; /* @status APPROVED (LTE) */ @@ -46,7 +46,7 @@ module EUTRA_CellInfo { const RACH_TimingAdvance_Type tsc_RACH_TA_Def := 0; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s090180 sic@ */ const P_b_Type tsc_P_b_2Tx := 1; /* acc. to 36.508 Table Table 4.6.3-5; - @status APPROVED (LTE) */ + @status APPROVED (LTE, LTE_A) */ /******************************************************************************/ // -------------------------- TEMPLATES -------------------------------------- @@ -106,7 +106,7 @@ module EUTRA_CellInfo { AntennaInfo := { // default value for 1TX @sic R5-100786 sic@ SS_AntennaInfoCommon := cs_AntennaInfoCommon_1Port, AntennaInfoCommon := omit, - SS_AntennaInfoDedicated := cs_AntennaInfoDedicated_Def, + SS_AntennaInfoDedicated := cs_AntennaInfoDedicated, AntennaInfoDedicated := cs_PhysicalConfigDedicated_AntennaInfo_Def }, DrxCtrl := { // @sic R5-104796 DRX support sic@ @@ -222,7 +222,8 @@ module EUTRA_CellInfo { } case (eutra_Cell31) { v_Index := 14; - } case else { + } + case else { FatalError (__FILE__, __LINE__, "Invalid CellId"); } } @@ -708,7 +709,7 @@ module EUTRA_CellInfo { case (eutra_Cell23) {v_RootSequenceIndexFDD:=150; v_RootSequenceIndexTDD:=16} case (eutra_Cell28) {v_RootSequenceIndexFDD:=86; v_RootSequenceIndexTDD:=8} case (eutra_Cell29) {v_RootSequenceIndexFDD:=86; v_RootSequenceIndexTDD:=8} - case (eutra_Cell30) {v_RootSequenceIndexFDD:=22; v_RootSequenceIndexTDD:=0} + case (eutra_Cell30) {v_RootSequenceIndexFDD:=86; v_RootSequenceIndexTDD:=8} //@sic R5s150661 sic@ case (eutra_Cell31) {v_RootSequenceIndexFDD:=214; v_RootSequenceIndexTDD:=24} case (eutra_CellA) {v_RootSequenceIndexFDD:=22; v_RootSequenceIndexTDD:=0} case (eutra_CellB) {v_RootSequenceIndexFDD:=86; v_RootSequenceIndexTDD:=8} @@ -795,11 +796,11 @@ module EUTRA_CellInfo { var RACH_TimingAdvance_Type v_RAR_TA:= tsc_RACH_TA_Def; if (p_FddOrTdd == FDD) { - v_RAR_TA := tsc_RACH_TA_Def; + v_RAR_TA := tsc_RACH_TA_Def; } else { - // for RAR TA = FLOOR((Tcell) mod 30720 / 16) - // @sic R5-121777 sic@ - v_RAR_TA := (p_CellTiming.Tcell mod 30720)/16; + // for RAR TA = [FLOOR ((Tcell) mod 30720 / 16)] mod 1282 + // @sic R5-121777 R5-153143 sic@ + v_RAR_TA := ((p_CellTiming.Tcell mod 30720)/16) mod 1282; } return v_RAR_TA; } @@ -893,10 +894,78 @@ module EUTRA_CellInfo { return v_SysinfoCombination; }; + //------------------------------------------------------------------------------------------ + /* + * @desc Assign SIB5 with f1 and f3 (if available) + * @param p_CellId + * @return template (value) SystemInformationBlockType5 + * @status APPROVED (LTE_A) + */ + function f_EUTRA_InitSIB5_f1_f3(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return template (value) SystemInformationBlockType5 + { // @sic R5s141179 sic@ + var Ul_Bandwidth_Type v_UL_Bandwidth := f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId); + var Dl_Bandwidth_Type v_DL_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth (p_CellId); + var Frequency_fList_Type v_Frequency_PrimaryBand := f_EUTRA_InitFrequency_f1Tof4 (px_ePrimaryFrequencyBand, v_DL_Bandwidth, v_UL_Bandwidth); + var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(v_DL_Bandwidth, v_UL_Bandwidth); + + var template (value) InterFreqCarrierFreqList v_InterFreqCarrierList; + + if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f1, v_ChannelBandwidthDependency.AllowedMeasBandwidth), + cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f3, v_ChannelBandwidthDependency.AllowedMeasBandwidth) + }; + } else { // f3 not defined for the band + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f1, v_ChannelBandwidthDependency.AllowedMeasBandwidth) + }; + } + return cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList); + } + + //------------------------------------------------------------------------------------------ + /* + * @desc Assign SIB5 for DualBand for cell 1 and cell 10to acc. to 36.508 Table 6.3.1.2-1: including f5 + * @param p_CellId + * @status APPROVED (LTE_A) + */ + function f_EUTRA_InitSIB5_Multiband(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { //@sic R5s140757 sic@ + var template (value) SystemInformationBlockType5 v_SIB5; + + var Frequency_fList_Type v_Frequency_PrimaryBand := f_EUTRA_InitFrequency_f1Tof4(px_ePrimaryFrequencyBand, + px_ePrimaryBandChannelBandwidth, + f_ConvertDL_BandwidthToUL(px_ePrimaryBandChannelBandwidth)); + var Frequency_fList_Type v_Frequency_SecondaryBand := f_EUTRA_InitFrequency_f1Tof4(px_eSecondaryFrequencyBand, + px_eSecondaryBandChannelBandwidth, + f_ConvertDL_BandwidthToUL(px_eSecondaryBandChannelBandwidth)); + var ChannelBandwidthDependency_Type v_PrimaryChannelBandwidthDependency := f_EUTRA_BandDependentParam(px_ePrimaryBandChannelBandwidth, + f_ConvertDL_BandwidthToUL(px_ePrimaryBandChannelBandwidth)); + var ChannelBandwidthDependency_Type v_SecondaryChannelBandwidthDependency := f_EUTRA_BandDependentParam(px_eSecondaryBandChannelBandwidth, + f_ConvertDL_BandwidthToUL(px_eSecondaryBandChannelBandwidth)); // @sic r5s120057 px_ePrimaryBandChannelBandwidth->px_eSecondaryBandChannelBandwidth sic@ + select (p_CellId) { + case (eutra_Cell1) { + // For cell frequency of f1: v_Frequency_PrimaryBand.f1 + // SIB5 contents: f5 (f1 in secondary band) + v_SIB5 := cs_508_SystemInformationBlockType5_Def({cs_InterFreqCarrierFreq(v_Frequency_SecondaryBand.f1,//f5 - Same downlink EARFCN as used for Cell 10 + v_SecondaryChannelBandwidthDependency.AllowedMeasBandwidth)}); + } + case (eutra_Cell10) { + // For cell frequency of f5: v_Frequency_SecondaryBand.f1 (f5) + // SIB5 contents: f1 + v_SIB5 := cs_508_SystemInformationBlockType5_Def({cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f1, //f1 - Same downlink EARFCN as used for Cell 1 + v_PrimaryChannelBandwidthDependency.AllowedMeasBandwidth)}); + } + case else { + FatalError (__FILE__, __LINE__, "invalid value Cell Id for SIB5 intialisation"); + } + } + f_EUTRA_CellInfo_SetSIB5(p_CellId, v_SIB5); + } //------------------------------------------------------------------------------------------ /* - * @desc Assign SIB5 for InterMode tc acc. to 36.508 Table 6.3.1.2-2 + * @desc Assign SIB5 for InterMode to acc. to 36.508 Table 6.3.1.2-2 * @param p_CellId * @status APPROVED (LTE) */ @@ -1029,17 +1098,20 @@ module EUTRA_CellInfo { * @param p_AllowedMeasBandwidth * @param p_DL_Bandwidth * @param p_UL_Bandwidth + * @param p_FrequencyBand (default value: px_ePrimaryFrequencyBand) * @return template (value) SystemInformationBlockType5 * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_InitSystemInformation5(EUTRA_CellId_Type p_CellId, AllowedMeasBandwidth p_AllowedMeasBandwidth, Dl_Bandwidth_Type p_DL_Bandwidth, - Ul_Bandwidth_Type p_UL_Bandwidth) return template (value) SystemInformationBlockType5 + Ul_Bandwidth_Type p_UL_Bandwidth, + FreqBandIndicator p_FrequencyBand := px_ePrimaryFrequencyBand) //@sic R5s140834 sic@ + return template (value) SystemInformationBlockType5 { /* @sic R5-096641 R5-104169 sic@ */ var template (value) InterFreqCarrierFreqList v_InterFreqCarrierList; - var Frequency_fList_Type v_Frequency_PrimaryBand := f_EUTRA_InitFrequency_f1Tof4 (px_ePrimaryFrequencyBand, p_DL_Bandwidth, p_UL_Bandwidth); + var Frequency_fList_Type v_Frequency_PrimaryBand := f_EUTRA_InitFrequency_f1Tof4 (p_FrequencyBand, p_DL_Bandwidth, p_UL_Bandwidth); var boolean v_QbasedTestCase := f_GetTestcaseAttrib_Qbased_Rsrq(testcasename()); // Set to TRUE if QBASED test case @sic R5-121384 sic@ var integer v_InterFreq :=0 ; // Counter used to assign QBASED inter freq parameters @@ -1047,7 +1119,7 @@ module EUTRA_CellInfo { case (eutra_Cell1, eutra_Cell2, eutra_Cell4, eutra_Cell11) { // For cell frequency of f1: v_Frequency_PrimaryBand.f1 // SIB5 contents: f2, f3 - if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand + if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band p_FrequencyBand v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f2, p_AllowedMeasBandwidth), cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f3, p_AllowedMeasBandwidth) @@ -1061,7 +1133,7 @@ module EUTRA_CellInfo { case (eutra_Cell3, eutra_Cell23) { // For cell frequency of f2: v_Frequency_PrimaryBand.f2 // SIB5 contents: f1, f3 - if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand + if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band p_FrequencyBand v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f1, p_AllowedMeasBandwidth), cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f3, p_AllowedMeasBandwidth) @@ -1083,7 +1155,7 @@ module EUTRA_CellInfo { case (eutra_Cell10) { // For cell frequency of f5: v_Frequency_SecondaryBand.f1 (f5) // SIB5 contents: f2, f3 - if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand + if (v_Frequency_PrimaryBand.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band p_FrequencyBand v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f2, p_AllowedMeasBandwidth), cs_InterFreqCarrierFreq(v_Frequency_PrimaryBand.f3, p_AllowedMeasBandwidth) @@ -1156,14 +1228,13 @@ module EUTRA_CellInfo { var integer v_CountCarrierFreq :=0 ; // Counter used to assign QBASED inter freq parameters if (ischosen(p_SysInfoRx.Utran[0].FDD)) { - if (p_SysInfoRx.Utran[0].FDD.Band == 6) { //@sic R5s130268 R5s140506 sic@ - v_CarrierFreqListUTRA_FDD := cs_CarrierFreqListUTRA_FDD_1Entry(cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[0].FDD.Freq)); - } else { - v_CarrierFreqListUTRA_FDD := cs_CarrierFreqListUTRA_FDD( - cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[0].FDD.Freq), - cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[2].FDD.Freq), - cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[3].FDD.Freq)); - } + if (p_SysInfoRx.Utran[0].FDD.Band == 6) { //@sic R5s130268 R5s140506 sic@ + v_CarrierFreqListUTRA_FDD := cs_CarrierFreqListUTRA_FDD_1Entry(cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[0].FDD.Freq)); + } else { + v_CarrierFreqListUTRA_FDD := cs_CarrierFreqListUTRA_FDD(cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[0].FDD.Freq), + cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[2].FDD.Freq), + cs_CarrierFreqUTRA_FDD(p_SysInfoRx.Utran[3].FDD.Freq)); + } } else { // TDD v_CarrierFreqListUTRA_TDD := cs_CarrierFreqListUTRA_TDD(cs_CarrierFreqUTRA_TDD(p_SysInfoRx.Utran[0].TDD.Freq), cs_CarrierFreqUTRA_TDD(p_SysInfoRx.Utran[2].TDD.Freq), @@ -1178,7 +1249,7 @@ module EUTRA_CellInfo { v_CarrierFreqListUTRA_FDD[v_CountCarrierFreq].threshX_Q_r9.threshX_LowQ_r9 := 5; } } // For a non QBASED tc do nothing - + return cs_508_SystemInformationBlockType6_Def(v_CarrierFreqListUTRA_FDD, v_CarrierFreqListUTRA_TDD); } @@ -1191,10 +1262,13 @@ module EUTRA_CellInfo { */ function f_EUTRA_IRAT_InitSIB7 (IRAT_CoOrd_SysInfo_Type p_SysInfoRx) return template (value) SystemInformationBlockType7 { - return cs_508_SystemInformationBlockType7_Def({cs_CarrierFreqsInfoGERAN(cs_CarrierFreqsGERAN(p_SysInfoRx.Geran[0].Arfcn, - f_ConvertGERAN_Band(p_SysInfoRx.Geran[0].BandIndicator), - f_ConvertGERANNeighCell(p_SysInfoRx.Geran[1].Arfcn, - p_SysInfoRx.Geran[2].Arfcn)))}); //@sic R5s120290 sic@ + var template (value) CarrierFreqsInfoListGERAN v_CarrierFreqsInfoListGERAN := { + cs_CarrierFreqsInfoGERAN(cs_CarrierFreqsGERAN(p_SysInfoRx.Geran[0].Arfcn, + f_ConvertGERAN_Band(p_SysInfoRx.Geran[0].BandIndicator), + f_ConvertGERANNeighCell(p_SysInfoRx.Geran[1].Arfcn, + p_SysInfoRx.Geran[2].Arfcn))) //@sic R5s120290 sic@ + }; + return cs_508_SystemInformationBlockType7_Def(v_CarrierFreqsInfoListGERAN); } /* @@ -1341,6 +1415,7 @@ module EUTRA_CellInfo { var template (value) BcchInfo_Type v_CellBcchInfo; var template (value) BCCH_BCH_Message v_MIB; var template (value) BCCH_DL_SCH_Message v_SIB1; + var template (value) SI_List_Type v_SI_List; var template (value) SystemInformation_r8_IEs v_SIB2; var template (value) SystemInformation_r8_IEs v_SIB3; var template (value) SystemInformation_r8_IEs v_SIB5; @@ -1403,35 +1478,34 @@ module EUTRA_CellInfo { select (p_Combination) { case (c1) { v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_2SI( v_ChannelBandwidthDependency.SIB3_periodicity); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), cs_SystemInformation_Common(v_SIB3) }); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3) + }; } case (c2) { // SIB4 Intra-Frequency v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_3SI(v_ChannelBandwidthDependency.SIB3_periodicity, {sibType3}, v_ChannelBandwidthDependency.SIB4_periodicity, {sibType4}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)) + }; } case (c3) { // SIB5 Inter-Frequency - v_SystemInformation5 := f_EUTRA_InitSystemInformation5 (p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth, p_DL_ChBandwidth, p_UL_ChBandwidth); + v_SystemInformation5 := f_EUTRA_InitSystemInformation5 (p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth, p_DL_ChBandwidth, p_UL_ChBandwidth, p_FrequencyBand); v_SIB5 := cs_SI_SIB5(v_SystemInformation5); v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_3SI(v_ChannelBandwidthDependency.SIB3_periodicity, {sibType3}, v_ChannelBandwidthDependency.SIB5_periodicity, {sibType5}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_SIB5) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_SIB5) + }; } case (c4) { // SIB6 UTRAN v_SIB6 := cs_SI_SIB6( cs_508_SystemInformationBlockType6_Def(omit, omit)); // Initialise first UTRA FDD and TDD frequency list with OMIT @@ -1439,12 +1513,11 @@ module EUTRA_CellInfo { {sibType3}, v_ChannelBandwidthDependency.SIB6_periodicity, {sibType6}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_SIB6) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_SIB6) + }; } case (c5) { // SIB7 GERAN v_SIB7 := cs_SI_SIB7( cs_508_SystemInformationBlockType7_Def(omit)); // List of GERAN frequencies assigned later after synchronisation with GERAN PTC @@ -1452,12 +1525,11 @@ module EUTRA_CellInfo { {sibType3}, v_ChannelBandwidthDependency.SIB7_periodicity, {sibType7}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_SIB7) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_SIB7) + }; } case (c6) { // SIB2/SIB3/SIB8 for CDMA2000 @sic R5-103870 sic@ v_SIB8 := cs_SI_SIB8( cs_508_SystemInformationBlockType8_Def(omit, omit)); // 1XRTT or HRPD parameters assigned later after synchronisation with GERAN PTC @@ -1465,13 +1537,11 @@ module EUTRA_CellInfo { {sibType3}, v_ChannelBandwidthDependency.SIB8_periodicity, {sibType8}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_SIB8) } - ); - + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_SIB8) + }; } case (c7) { // for eNodeB: broadcast SIB2/SIB3/SIB4/SIB9 v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_4SI(v_ChannelBandwidthDependency.SIB3_periodicity, @@ -1480,32 +1550,30 @@ module EUTRA_CellInfo { {sibType4}, v_ChannelBandwidthDependency.SIB9_periodicity, {sibType9}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), - cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), + cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) + }; } case (c8) { // for ETWS: broadcast SIB2/SIB3/SIB10/SIB11 // Test cases using c8 shall be initialised with C1, C8 is started after the preamble FatalError (__FILE__, __LINE__, "invalid sysinfo combination c8 shall be started inside the test case"); } case (c9) { // SIB2/SIB3/SIB5 Inter-Frequency + SIB6 UTRAN - v_SystemInformation5 := f_EUTRA_InitSystemInformation5 (p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth,p_DL_ChBandwidth, p_UL_ChBandwidth); + v_SystemInformation5 := f_EUTRA_InitSystemInformation5 (p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth,p_DL_ChBandwidth, p_UL_ChBandwidth, p_FrequencyBand); v_TwoSIBs := cs_SI_SIB5_SIB6( v_SystemInformation5, cs_508_SystemInformationBlockType6_Def(omit, omit)); // Initialise first UTRA FDD and TDD frequency list with OMIT v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_3SI(v_ChannelBandwidthDependency.SIB3_periodicity, {sibType3}, v_ChannelBandwidthDependency.SIB5_periodicity, // SIB5 and SIB6 have the same periodicity {sibType5, sibType6}); // SIB5 and SIB6 in the same SI - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_TwoSIBs) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_TwoSIBs) + }; } case (c10) { // SIB2/SIB3/SIB6 UTRAN + SIB7 GERAN v_SIB6 := cs_SI_SIB6( cs_508_SystemInformationBlockType6_Def(omit, omit)); // Initialise first UTRA FDD and TDD frequency list with OMIT @@ -1516,16 +1584,15 @@ module EUTRA_CellInfo { {sibType6}, v_ChannelBandwidthDependency.SIB7_periodicity, {sibType7}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_SIB6), - cs_SystemInformation_Common(v_SIB7) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_SIB6), + cs_SystemInformation_Common(v_SIB7) + }; } case (c10a) { // SIB2/SIB3/SIB5/SIB6 UTRAN + SIB7 GERAN - v_SystemInformation5 := f_EUTRA_InitSystemInformation5(p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth,p_DL_ChBandwidth, p_UL_ChBandwidth); + v_SystemInformation5 := f_EUTRA_InitSystemInformation5(p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth,p_DL_ChBandwidth, p_UL_ChBandwidth, p_FrequencyBand); v_TwoSIBs := cs_SI_SIB5_SIB6(v_SystemInformation5, cs_508_SystemInformationBlockType6_Def(omit, omit)); // Initialise first UTRA FDD and TDD frequency list with OMIT v_SIB7 := cs_SI_SIB7(cs_508_SystemInformationBlockType7_Def(omit)); // List of GERAN frequencies assigned later after synchronisation with GERAN PTC @@ -1535,13 +1602,12 @@ module EUTRA_CellInfo { {sibType5, sibType6}, v_ChannelBandwidthDependency.SIB7_periodicity, {sibType7}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_TwoSIBs), - cs_SystemInformation_Common(v_SIB7) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_TwoSIBs), + cs_SystemInformation_Common(v_SIB7) + }; } case (c11) { // SIB2 + SIB3 + SIB4 + SIB6 UTRAN + SIB9 v_SIB6 := cs_SI_SIB6( cs_508_SystemInformationBlockType6_Def(omit, omit)); // Initialise first UTRA FDD and TDD frequency list with OMIT @@ -1553,17 +1619,16 @@ module EUTRA_CellInfo { {sibType6}, v_ChannelBandwidthDependency.SIB9_periodicity, {sibType9}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), - cs_SystemInformation_Common(v_SIB6), - cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), + cs_SystemInformation_Common(v_SIB6), + cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) + }; } case (c12) { // SIB2 + SIB3 + SIB5 + SIB7 GERAN @sic R5-106551 sic@ - v_SystemInformation5 := f_EUTRA_InitSystemInformation5(p_CellId, v_ChannelBandwidthDependency.AllowedMeasBandwidth, p_DL_ChBandwidth, p_UL_ChBandwidth); + v_SystemInformation5 := f_EUTRA_InitSystemInformation5(p_CellId, v_ChannelBandwidthDependency.AllowedMeasBandwidth, p_DL_ChBandwidth, p_UL_ChBandwidth, p_FrequencyBand); v_SIB5 := cs_SI_SIB5(v_SystemInformation5); v_SIB7 := cs_SI_SIB7(cs_508_SystemInformationBlockType7_Def(omit)); // List of GERAN frequencies assigned later after synchronisation with GERAN PTC @@ -1573,16 +1638,15 @@ module EUTRA_CellInfo { {sibType5}, v_ChannelBandwidthDependency.SIB7_periodicity, {sibType7}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(v_SIB5), - cs_SystemInformation_Common(v_SIB7) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(v_SIB5), + cs_SystemInformation_Common(v_SIB7) + }; } case (c13) { // SIB2 + SIB3 + SIB4 + SIB5 + SIB9 @sic R5-106551 R5-110471 sic@ - v_SystemInformation5 := f_EUTRA_InitSystemInformation5(p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth, p_DL_ChBandwidth, p_UL_ChBandwidth); + v_SystemInformation5 := f_EUTRA_InitSystemInformation5(p_CellId , v_ChannelBandwidthDependency.AllowedMeasBandwidth, p_DL_ChBandwidth, p_UL_ChBandwidth, p_FrequencyBand); v_SIB5 := cs_SI_SIB5(v_SystemInformation5); v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_5SI(v_ChannelBandwidthDependency.SIB3_periodicity, @@ -1593,14 +1657,13 @@ module EUTRA_CellInfo { {sibType5}, v_ChannelBandwidthDependency.SIB9_periodicity, {sibType9}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), - cs_SystemInformation_Common(v_SIB5), - cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), + cs_SystemInformation_Common(v_SIB5), + cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) + }; } case (c14) { // SIB2 + SIB3 + SIB4 + SIB7 + SIB9 @sic R5-110471 sic@ v_SIB7 := cs_SI_SIB7(cs_508_SystemInformationBlockType7_Def(omit)); // List of GERAN frequencies assigned later after synchronisation with GERAN PTC @@ -1613,14 +1676,13 @@ module EUTRA_CellInfo { {sibType7}, v_ChannelBandwidthDependency.SIB9_periodicity, {sibType9}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), - cs_SystemInformation_Common(v_SIB7), - cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) } - ); + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(cs_SI_SIB4( cs_508_SystemInformationBlockType4_Def)), + cs_SystemInformation_Common(v_SIB7), + cs_SystemInformation_Common(cs_SI_SIB9(cs_SystemInformationBlockType9_Def(char2oct ("3gppTest")))) + }; } case (c15, c16, c18, c19, c20) { // for MBMS @@ -1636,18 +1698,17 @@ module EUTRA_CellInfo { {sibType3}, v_ChannelBandwidthDependency.SIB14_periodicity, {sibType14_v1130}); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { cs_SystemInformation_Common(v_SIB2), - cs_SystemInformation_Common(v_SIB3), - cs_SystemInformation_Common(cs_SI_SIB14( cs_SystemInformationBlockType14_Def)) } - ); - + v_SI_List := { + cs_SystemInformation_Common(v_SIB2), + cs_SystemInformation_Common(v_SIB3), + cs_SystemInformation_Common(cs_SI_SIB14( cs_SystemInformationBlockType14_Def)) + }; } case else { FatalError(__FILE__, __LINE__, "invalid sysinfo combination"); } } + v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, v_SIB1, v_SI_List); return v_CellBcchInfo; } @@ -1698,18 +1759,18 @@ module EUTRA_CellInfo { FatalError(__FILE__, __LINE__, "invalid cell Identity"); } } - if ( (p_FrequencyBand == 6) or // E-UTRA band=6 @sic R5s130498 sic@ - (px_FDD_OperationBand==6 and ((p_SysinfoCombination == c4) or ( p_SysinfoCombination == c9) or ( p_SysinfoCombination == c10) or ( p_SysinfoCombination == c10a) or ( p_SysinfoCombination == c11))) // or UTRAN band=6 and UTRAN is included in sysinfo + if ((p_FrequencyBand == 6) or // E-UTRA band=6 @sic R5s130498 sic@ + (px_FDD_OperationBand==6 and ((p_SysinfoCombination == c4) or (p_SysinfoCombination == c9) or (p_SysinfoCombination == c10) or (p_SysinfoCombination == c10a) or (p_SysinfoCombination == c11))) // or UTRAN band=6 and UTRAN is included in sysinfo ) { - // Set Japan MCC according to 36.508 cl 4.3.1.1.6 and 34.108 cl 5.1.1.6 - v_NAS_Param.Guti_Parameters.PLMN_Identity.mcc := f_EUTRA_ConvertMCC_Nas2Asn(px_eJapanMCC_Band6); - }; + // Set Japan MCC according to 36.508 cl 4.3.1.1.6 and 34.108 cl 5.1.1.6 + v_NAS_Param.Guti_Parameters.PLMN_Identity.mcc := f_EUTRA_ConvertMCC_Nas2Asn(px_eJapanMCC_Band6); + } // Initialise Location Area Id v_NAS_Param.LocationAreaCode := tsc_LAC_Def; return valueof(v_NAS_Param); // Note: valueof cannot be avoided here - }; + } //------------------- Init NAS parameters for NAS test cases ----------------------------- /* @@ -1782,18 +1843,18 @@ module EUTRA_CellInfo { } } - if ( (p_FrequencyBand == 6) or // E-UTRA band=6 @sic R5s130498 sic@ - (px_FDD_OperationBand==6 and ((p_SysinfoCombination == c4) or ( p_SysinfoCombination == c9) or ( p_SysinfoCombination == c10) or ( p_SysinfoCombination == c10a) or ( p_SysinfoCombination == c11))) // or UTRAN band=6 and UTRAN is included in sysinfo + if ((p_FrequencyBand == 6) or // E-UTRA band=6 @sic R5s130498 sic@ + (px_FDD_OperationBand==6 and ((p_SysinfoCombination == c4) or (p_SysinfoCombination == c9) or (p_SysinfoCombination == c10) or (p_SysinfoCombination == c10a) or (p_SysinfoCombination == c11))) // or UTRAN band=6 and UTRAN is included in sysinfo ) { // Set Japan MCC according to 36.508 cl 4.3.1.1.6 and 34.108 cl 5.1.1.6 v_NAS_Param.Guti_Parameters.PLMN_Identity.mcc := f_EUTRA_ConvertMCC_Nas2Asn(px_eJapanMCC_Band6); - }; + } // Initialise Location Area Id v_NAS_Param.LocationAreaCode := tsc_LAC_Def; return valueof(v_NAS_Param); // Note: valueof cannot be avoided here - }; + } /*******************************************************************************************/ //------------------------------------------------------------------------------------------ @@ -2106,8 +2167,8 @@ module EUTRA_CellInfo { v_Freq.f3 := v_Freq.f2; } case else { - FatalError (__FILE__, __LINE__, "invalid value in p_CellSpecialFreq"); - } + FatalError (__FILE__, __LINE__, "invalid value in p_CellSpecialFreq"); + } } // Acc. 36.508 Table 6.3.2.2-3 // Cell A/B/C/D/M -> frequency f1 @@ -2801,13 +2862,24 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc return the Prach Config stored in SIB1 of EUTRA_CellInfo * @param p_CellId * @return PRACH_ConfigSIB - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_GetPrach_Config(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return PRACH_ConfigSIB { var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_CellId); return v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.prach_Config; } + /* + * @desc return the SystemInformationBlockType1 stored in EUTRA_CellInfo + * @param p_CellId + * @return template (value) SystemInformationBlockType1 + * @status APPROVED (LTE_A) + */ + function f_EUTRA_CellInfo_GetSIB1(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return template (value) SystemInformationBlockType1 + { + var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + return v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1; + } /* * @desc return the stored TDD_Config in SIB1 of EUTRA_CellInfo @@ -2895,7 +2967,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC } /* - * @desc set TAC parameter in EUTRA_CellInfo + * @desc Set TAC parameter in EUTRA_CellInfo * @param p_CellId * @param p_TAC * @status APPROVED (LTE, LTE_A, LTE_IRAT) @@ -2950,11 +3022,25 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); } + /* + * @desc Set Frequency + * @param p_CellId + * @param p_Frequency_IE + * @status APPROVED (LTE) + */ + function f_EUTRA_CellInfo_SetFrequency(EUTRA_CellId_Type p_CellId, + Frequency_IE_Type p_Frequency_IE) runs on EUTRA_PTC + { + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + v_CellInfo.Frequency := p_Frequency_IE; + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); + } + /* * @desc Set the band in EUTRA_CellInfo and in MIB * @param p_CellId * @param p_Band - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetBand(EUTRA_CellId_Type p_CellId, FreqBandIndicator p_Band) runs on EUTRA_PTC @@ -2999,7 +3085,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Assign the parameterised T310 value in SIB2 of the cell * @param p_CellId * @param p_T310 - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetSysInfo_T310(EUTRA_CellId_Type p_CellId, T310_Type p_T310) runs on EUTRA_PTC @@ -3040,27 +3126,26 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); }; - /* + /* * @desc Assign the parameterised nonCriticalExtension value in SIB1 of the cell - * Should be moved to module EUTRA_Component * @param p_CellId * @param p_SystemInformationBlockType1_v890_IEs - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ - function f_EUTRA_CellInfo_SetSysInfo_NCEinSIB1 (EUTRA_CellId_Type p_CellId, - template (omit) SystemInformationBlockType1_v890_IEs p_SystemInformationBlockType1_v890_IEs) runs on EUTRA_PTC + function f_EUTRA_CellInfo_SetSysInfo_NCEinSIB1(EUTRA_CellId_Type p_CellId, + template (omit) SystemInformationBlockType1_v890_IEs p_SystemInformationBlockType1_v890_IEs) runs on EUTRA_PTC { var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.nonCriticalExtension := p_SystemInformationBlockType1_v890_IEs; f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); - }; + } /* * @desc Assign the parameterised nonCriticalExtension SystemInformationBlockType1_v8h0_IEs value in SIB1 of the cell * @param p_CellId * @param p_SystemInformationBlockType1_v8h0_IEs - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetSysInfo_SIB1_v8h0_IEs(EUTRA_CellId_Type p_CellId, template(value) SystemInformationBlockType1_v8h0_IEs p_SystemInformationBlockType1_v8h0_IEs) runs on EUTRA_PTC @@ -3077,7 +3162,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Assign the parameterised nonCriticalExtension SystemInformationBlockType2_v8h0_IEs value in SIB2 of the cell * @param p_CellId * @param p_SystemInformationBlockType2_v8h0_IEs - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetSysInfo_SIB2_v8h0_IEs(EUTRA_CellId_Type p_CellId, template(value) SystemInformationBlockType2_v8h0_IEs p_SystemInformationBlockType2_v8h0_IEs) runs on EUTRA_PTC @@ -3094,7 +3179,6 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Assign the parameterised additional spectrum emission in SIB2 of the cell * @param p_CellId * @param p_AdditionalSpectrumEmission - * @status APPROVED (LTE) */ function f_EUTRA_CellInfo_SetSysInfo_SIB2_AdditionalSpectrumEmission_IEs(EUTRA_CellId_Type p_CellId, AdditionalSpectrumEmission p_AdditionalSpectrumEmission) runs on EUTRA_PTC @@ -3383,62 +3467,59 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC f_EUTRA_CellInfo_Set(p_CellId, v_NewCellInfo); } - /* + /* * @desc Change the sysinfo combination of the cell from C1 to C21 * @param p_CellId - * @status + * @status APPROVED (LTE_A) */ - function f_EUTRA_ChangeSysinfoCombinationC1_ToC21 ( EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + function f_EUTRA_ChangeSysinfoCombinationC1_ToC21(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); var template (value) EUTRA_CellInfo_Type v_NewCellInfo := v_CellInfo; var template (value) BcchInfo_Type v_Bcch_Info; var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(f_EUTRA_CellInfo_GetDL_ChBandwidth (p_CellId), - f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); + f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); var template (value) BCCH_DL_SCH_Message v_SIB1 := v_CellInfo.Sysinfo.BCCH_Info.SIB1; - + var template (value) SI_List_Type v_SI_List := { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0], + v_CellInfo.Sysinfo.BCCH_Info.SIs[1], + cs_SystemInformation_Common(cs_SI_SIB14(cs_SystemInformationBlockType14_Def)) + }; + v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_3SI(v_ChannelBandwidthDependency.SIB3_periodicity, - {sibType3}, - v_ChannelBandwidthDependency.SIB14_periodicity, - {sibType14_v1130}); - v_Bcch_Info := cs_BCCHInfo_C1( v_CellInfo.Sysinfo.BCCH_Info.MIB, - v_SIB1, - { v_CellInfo.Sysinfo.BCCH_Info.SIs[0], - v_CellInfo.Sysinfo.BCCH_Info.SIs[1], - cs_SystemInformation_Common(cs_SI_SIB14( cs_SystemInformationBlockType14_Def)) - } - ); + {sibType3}, + v_ChannelBandwidthDependency.SIB14_periodicity, + {sibType14_v1130}); + v_Bcch_Info := cs_BCCHInfo_C1(v_CellInfo.Sysinfo.BCCH_Info.MIB, v_SIB1, v_SI_List); v_NewCellInfo.Sysinfo.Combination := c21; v_NewCellInfo.Sysinfo.BCCH_Info := v_Bcch_Info; f_EUTRA_CellInfo_Set(p_CellId, v_NewCellInfo); } - - /* + + /* * @desc Change the sysinfo combination of the cell from C21 to C1 * @param p_CellId - * @status + * @status APPROVED (LTE_A) */ - function f_EUTRA_ChangeSysinfoCombinationC21_ToC1 ( EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + function f_EUTRA_ChangeSysinfoCombinationC21_ToC1(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); var template (value) EUTRA_CellInfo_Type v_NewCellInfo := v_CellInfo; var template (value) BcchInfo_Type v_Bcch_Info; var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(f_EUTRA_CellInfo_GetDL_ChBandwidth (p_CellId), - f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); + f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); var template (value) BCCH_DL_SCH_Message v_SIB1 := v_CellInfo.Sysinfo.BCCH_Info.SIB1; - + var template (value) SI_List_Type v_SI_List := { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0], + v_CellInfo.Sysinfo.BCCH_Info.SIs[1] + }; v_SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_2SI(v_ChannelBandwidthDependency.SIB3_periodicity); - v_Bcch_Info := cs_BCCHInfo_C1( v_CellInfo.Sysinfo.BCCH_Info.MIB, - v_SIB1, - { v_CellInfo.Sysinfo.BCCH_Info.SIs[0], - v_CellInfo.Sysinfo.BCCH_Info.SIs[1] - } - ); + v_Bcch_Info := cs_BCCHInfo_C1(v_CellInfo.Sysinfo.BCCH_Info.MIB, v_SIB1, v_SI_List); v_NewCellInfo.Sysinfo.Combination := c1; v_NewCellInfo.Sysinfo.BCCH_Info := v_Bcch_Info; f_EUTRA_CellInfo_Set(p_CellId, v_NewCellInfo); } - + /* * @desc Change the sysinfo combination of the cell to c3 with the parameterised SIB5 content * @param p_CellId @@ -3455,7 +3536,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); var template (omit) TDD_Config v_TDD_Config := omit; // omitted in FDD var template (value) SI_List_Type v_SI_List; - + if (v_CellInfo.FDD_TDD_Info.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in SIB1 v_TDD_Config := cs_TDD_ConfigDef(v_CellInfo.FDD_TDD_Info.TDD_SubframeAssignment); // Value omitted in FDD } @@ -3571,7 +3652,6 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC // SIB11 is only present in combination c8 (see 36.508 cl. 4.4.3 Table 4.4.3.1.1-1 for more information) select (valueof(v_CellInfo.Sysinfo.Combination)) { case (c8) { - // FFS how to segment SIB11? v_CellInfo.Sysinfo.BCCH_Info.SIs[3].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib11 := p_Sib11; f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); } @@ -3582,20 +3662,21 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Assign the parameterised SIB14 for p_CellId * @param p_CellId * @param p_SIB14 + * @status APPROVED (LTE_A) */ function f_EUTRA_CellInfo_SetSIB14(EUTRA_CellId_Type p_CellId, - template (value) SystemInformationBlockType14_r11 p_SIB14) runs on EUTRA_PTC + template (value) SystemInformationBlockType14_r11 p_SIB14) runs on EUTRA_PTC { var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); // SIB14 is only present in combination c21 (see 36.508 cl. 4.4.3 Table 4.4.3.1.1-1 for more information) select (valueof(v_CellInfo.Sysinfo.Combination)) { case (c21) { - v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib14_v1130 := p_SIB14; + v_CellInfo.Sysinfo.BCCH_Info.SIs[2].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib14_v1130 := p_SIB14; // @sic R5s150756 sic@ f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); } - case else{ - FatalError (__FILE__, __LINE__, "Invalid System Combination"); + case else { + FatalError (__FILE__, __LINE__, "Invalid System Combination"); } } } @@ -3604,7 +3685,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc To set the sysinfo combination of a cell to c3 using the sysinfo5 passed as parameter * @param p_CellId * @param p_SystemInformation5 - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_ChangeSIB5_Combination3(EUTRA_CellId_Type p_CellId, template (value) SystemInformationBlockType5 p_SystemInformation5) runs on EUTRA_PTC @@ -3620,6 +3701,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC var template (value) BCCH_DL_SCH_Message v_SIB1; var template (value) BCCH_DL_SCH_Message v_SI_SIB2 := v_EUTRA_CellSysInfo.BCCH_Info.SIs[0]; var template (value) BCCH_DL_SCH_Message v_SI_SIB3 := v_EUTRA_CellSysInfo.BCCH_Info.SIs[1]; + var template (value) SI_List_Type v_SI_List; // --- Initialise variables for SIB1 --- if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in SIB1 @@ -3635,12 +3717,12 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC v_ChannelBandwidthDependency.SIB5_periodicity, {sibType5}), v_TDD_Config); - v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, - v_SIB1, - { v_SI_SIB2, - v_SI_SIB3, - cs_SystemInformation_Common( cs_SI_SIB5(p_SystemInformation5)) } - ); + v_SI_List := { + v_SI_SIB2, + v_SI_SIB3, + cs_SystemInformation_Common( cs_SI_SIB5(p_SystemInformation5)) + }; + v_CellBcchInfo := cs_BCCHInfo_C1(v_MIB, v_SIB1, v_SI_List); f_EUTRA_CellInfo_SetBCCH_Info(p_CellId, v_CellBcchInfo); f_EUTRA_CellInfo_SetCombination(p_CellId, c3); } @@ -3649,7 +3731,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Set the sysinfo combination of the cell * @param p_CellId * @param p_Combination - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetCombination(EUTRA_CellId_Type p_CellId, Combination_Type p_Combination) runs on EUTRA_PTC @@ -3663,7 +3745,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Set the BCCH sysinfo content of the cell * @param p_CellId * @param p_BCCH_Info - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetBCCH_Info(EUTRA_CellId_Type p_CellId, template (value) BcchInfo_Type p_BCCH_Info) runs on EUTRA_PTC @@ -3700,7 +3782,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @desc Assign the parameterised Preamble Transmission in the SIB2 of the cell * @param p_CellId * @param p_PRACH_ConfigInd - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_CellInfo_SetPRACH_ConfigurationIndex(EUTRA_CellId_Type p_CellId, integer p_PRACH_ConfigInd) runs on EUTRA_PTC @@ -3811,16 +3893,16 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC * @param p_BarringForMMTEL_Voice * @status APPROVED (IMS) */ - function f_EUTRA_CellInfo_SetSIB2_SSAC_BarringForMMTEL_Voice( EUTRA_CellId_Type p_CellId, - template (omit) AC_BarringConfig p_BarringForMMTEL_Voice) runs on EUTRA_PTC + function f_EUTRA_CellInfo_SetSIB2_SSAC_BarringForMMTEL_Voice(EUTRA_CellId_Type p_CellId, + template (omit) AC_BarringConfig p_BarringForMMTEL_Voice) runs on EUTRA_PTC { var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ssac_BarringForMMTEL_Voice_r9 := p_BarringForMMTEL_Voice; f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); } - - /* + + /* * @desc Assign the parameterised SSAC barring infor for video in SIB2 of the cell * @param p_CellId * @param p_BarringForMMTEL_Video @@ -3835,6 +3917,63 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); } + /* + * @desc Assign the parameterised SCM barring info for Voice in SIB2 of the cell + * @param p_CellId + * @param p_BarringForMMTEL_Voice + * @status + */ + function f_EUTRA_CellInfo_SetSIB2_SCM_BarringForMMTEL_Voice_r12( EUTRA_CellId_Type p_CellId, + boolean p_BarringSkipForMMTELVoice) runs on EUTRA_PTC + { + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + + if (p_BarringSkipForMMTELVoice) { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ac_BarringSkipForMMTELVoice_r12 := true_; + } else { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ac_BarringSkipForMMTELVoice_r12 := omit; + } + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); + } + + /* + * @desc Assign the parameterised SCM barring info for video in SIB2 of the cell + * @param p_CellId + * @param p_BarringForMMTEL_Video + * @status + */ + function f_EUTRA_CellInfo_SetSIB2_SCM_BarringForMMTEL_Video_r12(EUTRA_CellId_Type p_CellId, + boolean p_BarringSkipForMMTELVideo) runs on EUTRA_PTC + { + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + + if (p_BarringSkipForMMTELVideo) { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ac_BarringSkipForMMTELVideo_r12 := true_; + } else { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ac_BarringSkipForMMTELVideo_r12 := omit; + } + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); + } + + /* + * @desc Assign the parameterised SCM barring info for SMS in SIB2 of the cell + * @param p_CellId + * @param p_BarringSkipForSMS + * @status + */ + function f_EUTRA_CellInfo_SetSIB2_SCM_BarringForSMS_r12(EUTRA_CellId_Type p_CellId, + boolean p_BarringSkipForSMS) runs on EUTRA_PTC + { + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + + if (p_BarringSkipForSMS) { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ac_BarringSkipForSMS_r12 := true_; + } else { + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.ac_BarringSkipForSMS_r12 := omit; + } + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); + } + /* * @desc Assign the parameterised threshServingLow value in SIB3 of the cell * @param p_CellId @@ -3959,10 +4098,14 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC // SIB5 is only present in combination c3 and c9 (see 36.508 cl. 4.4.3 Table 4.4.3.1.1-1 for more information) select (valueof(v_CellInfo.Sysinfo.Combination)) { - case (c3, c9) { + case (c3, c9, c10a, c12, c16, c18, c20) { //@sic R5s140757 sic@ v_CellInfo.Sysinfo.BCCH_Info.SIs[2].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib5 := p_SIB5; f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); } + case (c13) { + v_CellInfo.Sysinfo.BCCH_Info.SIs[3].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib5 := p_SIB5; + f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); + } } } @@ -4332,17 +4475,21 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC /* * @desc Assign the CellInformation of the parameterized cell to the default 2TX parameters * @param p_CellId - * @status APPROVED (LTE) + * @param p_AntennaInfoDedicated (default value: cs_AntennaInfoDedicated_2TX) + * @param p_PhysicalConfigDedicated_AntennaInfo (default value: cs_PhysicalConfigDedicated_AntennaInfo_2TX) + * @status APPROVED (LTE, LTE_A) */ - function f_EUTRA_CellInfo_SetMIMO_2TX (EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + function f_EUTRA_CellInfo_SetMIMO_2TX (EUTRA_CellId_Type p_CellId,//@sic R5-150657 sic@ + template (value) AntennaInfoDedicated p_AntennaInfoDedicated := cs_AntennaInfoDedicated_2TX, + template (value) PhysicalConfigDedicated_AntennaInfo_Type p_PhysicalConfigDedicated_AntennaInfo :=cs_PhysicalConfigDedicated_AntennaInfo_2TX) runs on EUTRA_PTC { var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); /* Update the antenna information in the cell Array */ v_CellInfo.AntennaInfo.SS_AntennaInfoCommon := cs_AntennaInfoCommon_2Port; v_CellInfo.AntennaInfo.AntennaInfoCommon := cs_AntennaInfoCommon_2Port; - v_CellInfo.AntennaInfo.SS_AntennaInfoDedicated := cs_AntennaInfoDedicated_2TX; - v_CellInfo.AntennaInfo.AntennaInfoDedicated := cs_PhysicalConfigDedicated_AntennaInfo_2TX; + v_CellInfo.AntennaInfo.SS_AntennaInfoDedicated := p_AntennaInfoDedicated; //@sic R5-150657 sic@ + v_CellInfo.AntennaInfo.AntennaInfoDedicated := p_PhysicalConfigDedicated_AntennaInfo; //@sic R5-150657 sic@ /* Update p_B parameter in the cell array */ v_CellInfo.PhysicalParameters.PDSCH_p_b := tsc_P_b_2Tx; @@ -4653,7 +4800,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC /* * @desc Access to the Security Parameter KSIsgsn * @return NAS_KsiValue - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_SecurityKSIsgsn_Get() runs on EUTRA_PTC return NAS_KsiValue { @@ -4745,18 +4892,28 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC /* * @desc Get UE E-UTRA category * @return integer - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_MobileInfo_GetUECapability_UECategoryExtn() runs on EUTRA_PTC return integer { /* @sic R5-142669, R5-142681, R5-142690 sic@ */ var integer v_UE_Cat := vc_EUTRA_Global.MobileInfo.EUTRA_Capability.ue_Category; + //ue-Category-v1020 if (isvalue(vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_Category_v1020)) { v_UE_Cat := vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_Category_v1020; } + //ue-Category-v1170 if (isvalue(vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_Category_v1170)) { v_UE_Cat := vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_Category_v1170; } + //ue-Category-v11a0 @sic R5-151413 sic@ + if (isvalue(vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_Category_v11a0 )) { + v_UE_Cat := vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_Category_v11a0 ; + } + //ue-CategoryDL-r12 including cat0 @sic R5-151413 sic@ + if (isvalue(vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_CategoryDL_r12)){ + v_UE_Cat := vc_EUTRA_Global.MobileInfo.EUTRA_Capability.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.ue_CategoryDL_r12; + } return v_UE_Cat; } @@ -4774,7 +4931,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC /* * @desc Get UECapability * @return UE_EUTRA_Capability - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_MobileInfo_GetUECapability() runs on EUTRA_PTC return UE_EUTRA_Capability { @@ -4784,7 +4941,7 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC /* * @desc Get UE LocalEmergencyNumberList in the MobileInfo variable * @return EmergencyNumList - * @status APPROVED (LTE) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) * @status */ function f_EUTRA_MobileInfo_GetLocalEmergencyNumberList() runs on EUTRA_PTC return EmergencyNumList @@ -4792,7 +4949,6 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return vc_EUTRA_Global.MobileInfo.LocalEmergencyNumberList; } - /* * @desc Get PDN Type as assigned to the UE * @return B3_Type @@ -4803,6 +4959,20 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return vc_EUTRA_Global.MobileInfo.AssignedPdnType; } + /* + * @desc Set the RAT mode of the cell UE is camping in. + * @param p_CellId + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_Update_RANType(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { //@sic R5s150293 sic@ + var EUTRA_FDD_TDD_Mode_Type v_FDD_TDD; + + v_FDD_TDD := f_EUTRA_CellInfo_GetFDD_TDD(p_CellId); + + vc_EUTRA_Global.MobileInfo.FDD_TDD_Info := v_FDD_TDD; + + } //---------------------------------------------------------------------------- // Access to Cell Timing Parameters: @@ -4834,6 +5004,45 @@ function f_EUTRA_CellInfo_GetSib6(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC v_CellInfo.CellTimingInfo.SfnOffset := p_SfnOffset; f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); } + + /* + * @desc Set the Radom Access Request Timing Advance stored in the EUTRA_CellInfo + * @param p_CellId + * @param p_RAR_TA + * @status APPROVED (LTE_A) + */ + function f_EUTRA_CellInfo_SetRAR_TA(EUTRA_CellId_Type p_CellId, + RACH_TimingAdvance_Type p_RAR_TA) runs on EUTRA_PTC + { + var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + v_CellInfo.PhysicalParameters.RAR_TA := p_RAR_TA; + f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); + } + + /* + * @desc Initialise SFN and Tcell of all cells to the values used in the first cell in the list + * @param p_EUTRA_CellList - in CA the first cell is the P-Cell + * @status APPROVED (LTE_A) + */ + function f_EUTRA_InitialiseWithSameCellTiming(EUTRA_CellIdList_Type p_EUTRA_CellList) runs on EUTRA_PTC + { //@sic R5s140757 sic@ + var integer i; + var integer v_CellListLength := lengthof (p_EUTRA_CellList); + var CellTimingInfo_Type v_PcellTiming := f_EUTRA_CellInfo_GetCellTimingInfo( p_EUTRA_CellList[0] ); // In CA the first cell is the Pcell + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; + + // Initialise SFN and Tcell of all cells to the values used in the first Cell in the list + for (i:=1; i 2) { /* The given cell may not have this SIB initialised and periodicity alone cannot be set otherwise it will cause instability + @sic R5s150663: lengthof instead of ispresent sic@ */ + v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList[2].si_Periodicity := v_ChannelBandwidthDependency.SIB5_periodicity; + } + } + case(c4) { + //SIB6_periodicity + v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList[2].si_Periodicity := v_ChannelBandwidthDependency.SIB6_periodicity; + } + case(c9) { + //SIB5_periodicity/SIB6_periodicity + v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList[2].si_Periodicity := v_ChannelBandwidthDependency.SIB6_periodicity; + } + case else { FatalError (__FILE__, __LINE__, "invalid sysinfo combination");} + } + + //Set SIB2 parameters + if (v_EUTRA_FDD_TDD_Mode == FDD) { // FDD + v_SoundingRS_UL_ConfigCommon := cs_508_SoundingRS_UL_ConfigCommon_FDD(v_ChannelBandwidthDependency.SrsBandwidthConfiguration); + v_PRACH_ConfigSIB := cs_508_PRACH_ConfigSIB_FDD(v_ChannelBandwidthDependency.Prach_FrequencyOffset, v_RootSequenceIndex); + } else { // TDD + v_SoundingRS_UL_ConfigCommon := cs_508_SoundingRS_UL_ConfigCommon_TDD(v_ChannelBandwidthDependency.SrsBandwidthConfiguration); + v_PRACH_ConfigSIB := cs_508_PRACH_ConfigSIB_TDD(v_ChannelBandwidthDependency.Prach_FrequencyOffset, v_RootSequenceIndex); + } + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8 := cs_SI_SIB2(cs_508_SystemInformationBlockType2_Def(omit, + v_ChannelBandwidthDependency.N_RB_CQI, + v_ChannelBandwidthDependency.Pusch_HoppingOffset, + v_SoundingRS_UL_ConfigCommon, + v_PRACH_ConfigSIB, + tsc_P_b_1Tx)); + // AllowedMeasBandwidth: initialised in SIB5 + + //Physical parameters + v_CellInfo.PhysicalParameters.sr_PUCCH_ResourceIndex := v_ChannelBandwidthDependency.sr_PUCCH_ResourceIndex; + v_CellInfo.PhysicalParameters.Cfi:= v_ChannelBandwidthDependency.Cfi; + + f_EUTRA_CellInfo_Set (p_CellIdList[i], v_CellInfo); + } + } + + /* + * @desc Initialise global variable for CA P-cell and S-cell. The first cell in the list is the Pcell, other cells are Scells + * @param p_EUTRA_CellList .. The first cell in the list is the Pcell, other cells are Scells + * @param p_CA_Type .. CA_IntraBand or CA_InterBand + * @param p_SysinfoCombination + * @status APPROVED (LTE_A) + */ + function f_EUTRA_CA_InitCells(EUTRA_CellIdList_Type p_EUTRA_CellList, + CA_Tested_Type p_CA_Type, + Combination_Type p_SysinfoCombination) runs on EUTRA_PTC + { + var Frequency_fList_CAInterBand_Type v_FreqInterCA; + var Frequency_fList_CAIntraBand_Type v_FreqIntraBandCA; //@sic R5s150438 sic@ + var template (value) InterFreqCarrierFreqList v_InterFreqCarrierList; + var template (value) IRAT_CoOrd_SysInfo_Type v_SysInfoEUTRA; + var template (value) CoOrd_EUTRASysInfo_List_Type v_CoOrd_EUTRASysInfo_List; + var IRAT_CoOrd_SysInfo_Type v_SysInfoOtherRAT; + + // Initialise SFN and Tcell of S-cells to the values used in the P-Cell + f_EUTRA_InitialiseWithSameCellTiming(p_EUTRA_CellList); + + + + + // Initialise CA frequencies + select (p_CA_Type) { + case (CA_IntraBand, CA_IntraBandNonContiguous) { //@sic R5-145717: added CA_IntraBandNonContiguous sic@ + if (p_CA_Type == CA_IntraBand) { + v_FreqIntraBandCA := f_EUTRA_CA_InitFrequenciesIntraBand(px_ePrimaryFrequencyBand); + } else { + v_FreqIntraBandCA := f_EUTRA_CA_InitFrequenciesIntraBand_NonContiguous(px_ePrimaryFrequencyBand); + } + // Initialised Frequency per cell. See 36.508 Table Table 6.2.3.2-1 + // Cell 1/2/4/11 -> Frequency f1 + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell1, v_FreqIntraBandCA.f1); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell2, v_FreqIntraBandCA.f1); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell4, v_FreqIntraBandCA.f1); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell11, v_FreqIntraBandCA.f1); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell1, eutra_Cell2,eutra_Cell4, eutra_Cell11}, v_FreqIntraBandCA.f1_DL_ChBandwidth, v_FreqIntraBandCA.f1_UL_ChBandwidth, p_SysinfoCombination ); + + // Cell 3/12/23 -> Frequency f2 + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell3, v_FreqIntraBandCA.f2); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell12, v_FreqIntraBandCA.f2); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell23, v_FreqIntraBandCA.f2); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell3, eutra_Cell12, eutra_Cell23}, v_FreqIntraBandCA.f2_DL_ChBandwidth, v_FreqIntraBandCA.f2_UL_ChBandwidth, p_SysinfoCombination ); + // Cell 6/13 -> Frequency f3 + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell6, v_FreqIntraBandCA.f3); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell13, v_FreqIntraBandCA.f3); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell6, eutra_Cell13}, v_FreqIntraBandCA.f3_DL_ChBandwidth, v_FreqIntraBandCA.f3_UL_ChBandwidth, p_SysinfoCombination ); + + + // Update SIB5 content + if (p_SysinfoCombination == c3 or p_SysinfoCombination == c9) { + // Frequencies list for cells on f1 + if (v_FreqIntraBandCA.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f2_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f3, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f3_DL_ChBandwidth)) + }; + } else { // f3 not defined for the band + v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f2_DL_ChBandwidth)) }; + } + f_EUTRA_CellInfo_SetSIB5(eutra_Cell1, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell2, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell4, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell11, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + + // Frequencies list for cells on f2 + if (v_FreqIntraBandCA.f3.dl_CarrierFreq != tsc_DummyFrequency) { // f3 is defined for the Band px_ePrimaryFrequencyBand + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f3, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f3_DL_ChBandwidth)) + }; + } else { // f3 not defined for the band + v_InterFreqCarrierList := { cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f1_DL_ChBandwidth)) }; + } + f_EUTRA_CellInfo_SetSIB5(eutra_Cell3, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell12, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell23, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + + // Frequencies list for cells on f3 + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqIntraBandCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqIntraBandCA.f2_DL_ChBandwidth)) + }; + f_EUTRA_CellInfo_SetSIB5(eutra_Cell6, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell13, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + } + // Update SIB19 + if (p_SysinfoCombination == c9) { + v_SysInfoEUTRA := f_IRAT_ListOfFrequencies(); + v_SysInfoOtherRAT := f_IRAT_InitialCoOrd(UTRAN, v_SysInfoEUTRA); // Coordinate with UTRA PTC: send EUTRA frequencies and return UTRA frequencies + } + } + case (CA_InterBand) { + v_FreqInterCA := f_EUTRA_CA_InitFrequenciesInterBand ( px_ePrimaryFrequencyBand, px_eSecondaryFrequencyBand ); + // Initialised Frequency per cell. See 36.508 Table 6.2.3.2-2 + // Cell 1/2/4/11 -> Frequency f1 + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell1, v_FreqInterCA.f1); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell2, v_FreqInterCA.f1); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell4, v_FreqInterCA.f1); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell11, v_FreqInterCA.f1); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell1, eutra_Cell2, eutra_Cell4,eutra_Cell11}, v_FreqInterCA.f1_DL_ChBandwidth, v_FreqInterCA.f1_UL_ChBandwidth, p_SysinfoCombination ); + + // Cell 2 -> Frequency f2 @sic R5-150432 sic@ + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell3, v_FreqInterCA.f2); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell3}, v_FreqInterCA.f2_DL_ChBandwidth, v_FreqInterCA.f2_UL_ChBandwidth, p_SysinfoCombination ); + // Cell 10/30/31 -> Frequency f5 + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell10, v_FreqInterCA.f5); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell30, v_FreqInterCA.f5); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell31, v_FreqInterCA.f5); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell10, eutra_Cell30, eutra_Cell31}, v_FreqInterCA.f5_DL_ChBandwidth, v_FreqInterCA.f5_UL_ChBandwidth, p_SysinfoCombination ); + // Cell 28/29 -> Frequency f6 + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell28, v_FreqInterCA.f6); + f_EUTRA_CellInfo_SetEARFCN(eutra_Cell29, v_FreqInterCA.f6); + //@sic R5s150438 sic@ + f_EUTRA_CA_SetDlUlBandwidth({eutra_Cell28, eutra_Cell29}, v_FreqInterCA.f6_DL_ChBandwidth, v_FreqInterCA.f6_UL_ChBandwidth, p_SysinfoCombination ); + + if (px_eSecondaryFrequencyBand == 29 or px_eSecondaryFrequencyBand == 32) { + // No UL frequency is applied to the band @sic R5-134786 R5-151327 sic@ + f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell10, true); + f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell30, true); + f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell31, true); + f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell28, true); + f_EUTRA_CellInfo_SetNoUL_Frequency(eutra_Cell29, true); + } + // Update SIB5 content + if (p_SysinfoCombination == c3 or p_SysinfoCombination == c9) { + // Frequencies list for cells on f1: f2, f5, f6 @sic R5-150432 sic@ + if (v_FreqInterCA.f2.dl_CarrierFreq != tsc_DummyFrequency) { + if (v_FreqInterCA.f6.dl_CarrierFreq != tsc_DummyFrequency) { + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f2_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f6, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f6_DL_ChBandwidth)) + }; + } else { //f6 dummy + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f2_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)) + }; + } + } else { //f2 dummy + if (v_FreqInterCA.f6.dl_CarrierFreq != tsc_DummyFrequency) { + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f6, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f6_DL_ChBandwidth)) + }; + } else { //f2 and f6 dummy + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)) + }; + } + } + f_EUTRA_CellInfo_SetSIB5(eutra_Cell1, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell2, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell4, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell11, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + + // Frequencies list for cells on f2: f1, f5, f6 @sic R5-150432 sic@ + if (v_FreqInterCA.f6.dl_CarrierFreq != tsc_DummyFrequency) { + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f6, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f6_DL_ChBandwidth)) + }; + } else { //f6 dummy + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)) + }; + } + f_EUTRA_CellInfo_SetSIB5(eutra_Cell3, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + + // Frequencies list for cells on f5: f1, f2, f6 @sic R5-150432 sic@ + if (v_FreqInterCA.f2.dl_CarrierFreq != tsc_DummyFrequency) { + if (v_FreqInterCA.f6.dl_CarrierFreq != tsc_DummyFrequency) { + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f2_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f6, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f6_DL_ChBandwidth)) + }; + } else { //f6 dummy + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f2_DL_ChBandwidth)) + }; + } + } else { //f2 dummy + if (v_FreqInterCA.f6.dl_CarrierFreq != tsc_DummyFrequency) { + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f6, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f6_DL_ChBandwidth)) + }; + } else { //f6 and f2dummy + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)) + }; + } + } + f_EUTRA_CellInfo_SetSIB5(eutra_Cell10, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell30, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell31, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + + // Frequencies list for cells on f6: f1, f2, f5 @sic R5-150432 sic@ + if (v_FreqInterCA.f2.dl_CarrierFreq != tsc_DummyFrequency) { + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f2, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f2_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)) + }; + } else { // f2 dummy + v_InterFreqCarrierList := { + cs_InterFreqCarrierFreq(v_FreqInterCA.f1, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f1_DL_ChBandwidth)), + cs_InterFreqCarrierFreq(v_FreqInterCA.f5, f_EUTRA_GetBandDependentAllowedMeasBandwidth( v_FreqInterCA.f5_DL_ChBandwidth)) + }; + } + f_EUTRA_CellInfo_SetSIB5(eutra_Cell28, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + f_EUTRA_CellInfo_SetSIB5(eutra_Cell29, cs_508_SystemInformationBlockType5_Def(v_InterFreqCarrierList)); + } + // Update SIB19 content + // Update SIB19 + if (p_SysinfoCombination == c9) { + v_CoOrd_EUTRASysInfo_List := { + cs_CoOrdEUTRASysInfo(f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))), + cs_CoOrdEUTRASysInfo(f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell10), + f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell10))), + cs_CoOrdEUTRASysInfo(f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell28), + f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell28))) + }; + v_SysInfoEUTRA := cs_CoOrdEUTRA_SysInfo(v_CoOrd_EUTRASysInfo_List); + v_SysInfoOtherRAT := f_IRAT_InitialCoOrd(UTRAN, v_SysInfoEUTRA); // Coordinate with UTRA PTC: send EUTRA frequencies and return UTRA frequencies + } + } + case else { //Other combinations + FatalError(__FILE__, __LINE__, "CA type not supported"); + } + } + + // Initialise UL CA in SIB2 in all P-Cell and S-Cell + //@sic R5s150438 sic@ + f_EUTRA_CA_InitialiseSIB2_UL_CA(p_EUTRA_CellList); + + } + + +} // End of module + + diff --git a/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfoInit_MFBI.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfoInit_MFBI.ttcn new file mode 100644 index 0000000..3e917b1 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CellInfoInit_MFBI.ttcn @@ -0,0 +1,1351 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-02-24 13:17:20 +0100 (Tue, 24 Feb 2015) $ +// $Rev: 13014 $ +/******************************************************************************/ + +module EUTRA_CellInfoInit_MFBI { + + import from EUTRA_CellInfo all; + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from CommonDefs all; + import from EUTRA_CommonDefs all; + import from EUTRA_Component all; + import from EUTRA_CellInfoFrequency all; + import from EUTRA_SysInfo_Templates all; + + /* + * @desc Function used to define the Frequency Low/Mid/High based on the Overlapping frequencies band and channel bandwidth + * as per 36.508 cl 4.3.1.5 + * Function specific to MFBI TC + * @param p_Band + * @param p_OverlapingBand + * @param p_DL_ChBandwidth + * @param p_UL_ChBandwidth + * @return FrequencyLowMidHigh_Type + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_InitFrequencyLowMidHigh_MFBI(FreqBandIndicator p_Band, + FreqBandIndicator p_OverlapingBand, + Dl_Bandwidth_Type p_DL_ChBandwidth, + Ul_Bandwidth_Type p_UL_ChBandwidth) return FrequencyLowMidHigh_Type + { + var FrequencyLowMidHigh_Type v_FreqLMH; + + select (p_Band) { + case (2) { // Band 2 + select (p_OverlapingBand) { + case (25) { + //MFBI Test frequencies for operation band 2 overlaping with band 25 + //same as per Table 4.3.1.1.2-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (3) { // Band 3 + select (p_OverlapingBand) { + case (9) { + //MFBI Test frequencies for operation band 3 overlaping with band 9 + // Table 4.3.1.5.2-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 1606; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 1774; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 1942; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 1614; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 1774; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 1934; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 1624; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 1774; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 1924; } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 1649; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 1774; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 1899; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 1674; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 1774; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 1874; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 1699; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 1774; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 1849; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 19606; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 19774; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 19942; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 19614; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 19774; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 19934; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 19624; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 19774; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 19924; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 19649; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 19774; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 19899; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 19674; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 19774; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 19874; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 19699; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 19774; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 19849; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (4) { // Band 4 + select (p_OverlapingBand) { + case (10) { + // MFBI Test frequencies for operation band 4 overlaping with band 10 + // same as per Table 4.3.1.1.4-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (5) { // Band 5 + select (p_OverlapingBand) { + case (18) { + //MFBI Test frequencies for operation band 5 overlaping with band 18 + //Table 4.3.1.5.4-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2407; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2430; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2453; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2415; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2430; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2445; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2425; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2430; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2435; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20407; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20430; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20453; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20415; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20430; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20445; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20425; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20430; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20435; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (19) { + //MFBI Test frequencies for operation band 5 overlaping with band 19 + //Table 4.3.1.5.5-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2467; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2535; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2603; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2475; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2535; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2595; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2485; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2535; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2585; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 2510; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 2535; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 2560; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20467; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20535; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20603; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20475; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20535; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20595; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20485; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20535; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20585; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 20510; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 20535; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 20560; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (26) { + // MFBI Test frequencies for operation band 5 overlaping with band 26 + // same as per Table 4.3.1.1.5-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (9) { // Band 9 + select (p_OverlapingBand) { + case (3) { + // MFBI Test frequencies for operation band 9 overlaping with band 3 + // same as per Table 4.3.1.1.9-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (10) { // Band 10 + select (p_OverlapingBand) { + case (4) { + // MFBI Test frequencies for operation band 10 overlaping with band 4 + // Table 4.3.1.5.8-1 + select (p_DL_ChBandwidth) { + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 4175; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 4375; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 4575; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 4200; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 4375; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 4550; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 4225; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 4375; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 4525; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 4250; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 4375; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 4500; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + }; + select (p_UL_ChBandwidth) { + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 22175; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 22375; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 22575; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 22200; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 22375; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 22550; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 22225; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 22375; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 22525; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 22250; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 22375; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 22500; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (12) { // Band 12 + select (p_OverlapingBand) { + case (17) { + // MFBI Test frequencies for operation band 12 overlaping with band 17 + // Table 4.3.1.5.9-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5067; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5120; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5173; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5075; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5120; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5165; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5085; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5120; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5155; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5110; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5120; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5130; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23067; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23120; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23173; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23075; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23120; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23165; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23085; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23120; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23155; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23110; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23120; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23130; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (17) { // Band 17 + select (p_OverlapingBand) { + case (12) { + // MFBI Test frequencies for operation band 17 overlaping with band 12 + // same as per Table 4.3.1.1.17-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (18) { // Band 18 + select (p_OverlapingBand) { + case (5) { + // MFBI Test frequencies for operation band 18 overlaping with band 27 + // Table 4.3.1.5.13-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5947; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5970; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5993; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5955; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5970; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5985; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5965; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5970; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5975; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23947; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23970; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23993; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23955; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23970; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23985; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23965; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23970; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23975; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (26) { + // MFBI Test frequencies for operation band 18 overlaping with band 26 + // same as per Table 4.3.1.1.18-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth); + } + case (27) { + // MFBI Test frequencies for operation band 18 overlaping with band 27 + // Table 4.3.1.5.13-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5857; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5895; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5933; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5865; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5895; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5925; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 5875; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 5895; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 5915; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + }; + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23857; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23895; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23933; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23865; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23895; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23925; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 23875; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 23895; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 23915; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (19) { // Band 19 + select (p_OverlapingBand) { + case (5) { + // MFBI Test frequencies for operation band 19 overlaping with band 5 + // same as per Table 4.3.1.1.19-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case (26) { + // MFBI Test frequencies for operation band 19 overlaping with band 5 + // same as per Table 4.3.1.1.19-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (25) { // Band + select (p_OverlapingBand) { + case (2) { + // MFBI Test frequencies for operation band 25 overlaping with band 2 + // Table 4.3.1.5.16-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8047; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8340; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8633; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8055; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8340; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8625; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8065; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8340; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8615; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8090; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8340; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8590; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8115; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8340; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8565; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8140; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8340; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8540; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26047; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26340; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26633; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26055; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26340; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26625; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26065; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26340; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26615; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26090; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26340; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26590; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26115; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26340; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26565; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26140; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26340; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26540; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (26) { // Band 26 + select (p_OverlapingBand) { + case (5) { + // MFBI Test frequencies for operation band 26 overlaping with band 5 + // Table 4.3.1.5.17-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8797; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8915; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9033; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8805; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8915; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9025; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8815; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8915; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9015; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8840; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8915; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8990; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8865; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8915; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8965; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26797; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26915; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27033; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26805; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26915; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27025; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26815; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26915; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27015; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26840; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26915; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26990; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26865; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26915; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26965; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (18) { + // MFBI Test frequencies for operation band 26 overlaping with band 18 + // Table 4.3.1.5.18-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8707; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8775; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8843; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8715; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8775; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8835; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8725; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8775; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8825; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8750; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8775; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8800; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + }; + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26707; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26775; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26843; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26715; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26775; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26835; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26725; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26775; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26825; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26750; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26775; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26800; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (19) { + // MFBI Test frequencies for operation band 26 overlaping with band 19 + // Table 4.3.1.5.19-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8857; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8925; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8993; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8865; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8925; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8985; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8875; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8925; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8975; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8900; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8925; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8950; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26857; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26925; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26993; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26865; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26925; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26985; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26875; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26925; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26975; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26900; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26925; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26950; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (27) { + // MFBI Test frequencies for operation band 26 overlaping with band 27 + // Table 4.3.1.5.20-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8697; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8740; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8783; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8705; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8740; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8775; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 8715; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 8740; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 8765; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26697; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26740; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26783; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26705; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26740; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26775; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 26715; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 26740; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 26765; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (27) { //Band 27 + select (p_OverlapingBand) { + case (18) { + // MFBI Test frequencies for operation band 27 overlaping with band 18 + // Table 4.3.1.5.21-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 9127; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 9165; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9203; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 9135; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 9165; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9195; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 9145; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 9165; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9185; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 27127; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 27165; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27203; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 27135; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 27165; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27195; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 27145; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 27165; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27185; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case (26) { + // MFBI Test frequencies for operation band 27 overlaping with band 26 + // Table 4.3.1.5.22-1 + select (p_DL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 9117; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 9160; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9203; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 9125; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 9160; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9195; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 9135; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 9160; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 9185; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + select (p_UL_ChBandwidth) { + case (n6) { // ChBandwidth = 1.4 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 27117; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 27160; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27203; + } + case (n15) { // ChBandwidth = 3 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 27125; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 27160; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27195; + } + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.ul_CarrierFreq := 27135; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := 27160; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := 27185; + } + case else { + FatalError(__FILE__, __LINE__, "invalid UL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (33) { // Band 33 + select (p_OverlapingBand) { + case (39) { + // MFBI Test frequencies for operation band 33 overlaping with band 39 + // same as per Table 4.3.1.2.1-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (38) { // Band 38 + select (p_OverlapingBand) { + case (41) { + // MFBI Test frequencies for operation band 38 overlaping with band 41 + // same as per Table 4.3.1.2.6-1 + v_FreqLMH := f_EUTRA_InitFrequencyLowMidHigh(p_Band, p_DL_ChBandwidth, p_UL_ChBandwidth ); + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (39) { // Band 39 + select (p_OverlapingBand) { + case (33) { + //MFBI Test frequencies for operation band 39 overlaping with band 33 + // Table 4.3.1.5.25-1 + select (p_DL_ChBandwidth) { + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 38475; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 38550; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 38625; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 38500; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 38550; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 38600; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 38525; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 38550; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 38575; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 38550; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 38550; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 38550; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (41) { // Band 41 + select (p_OverlapingBand) { + case (38) { + //MFBI Test frequencies for operation band 41 overlaping with band 38 + // Table 4.3.1.5.26-1 + select (p_DL_ChBandwidth) { + case (n25) { // ChBandwidth = 5 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 40415; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 40640; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 40865; + } + case (n50) { // ChBandwidth = 10 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 40440; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 40640; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 40840; + } + case (n75) { // ChBandwidth = 15 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 40465; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 40640; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 40815; + } + case (n100) { // ChBandwidth = 20 + v_FreqLMH.FrequencyLow.dl_CarrierFreq := 40490; + v_FreqLMH.FrequencyMid.dl_CarrierFreq := 40640; + v_FreqLMH.FrequencyHigh.dl_CarrierFreq := 40790; + } + case else { + FatalError(__FILE__, __LINE__, "invalid DL ChannelBandwidth"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid Band"); + } + } + + // Assign UL EARFCN to omit for TDD mode + if (p_Band >= 33) { + // TDD mode + // UL EARFCN = DL EARFCN + v_FreqLMH.FrequencyLow.ul_CarrierFreq := omit; + v_FreqLMH.FrequencyMid.ul_CarrierFreq := omit; + v_FreqLMH.FrequencyHigh.ul_CarrierFreq := omit; + } + return v_FreqLMH; + } + + /* + * @desc Function used to define the Frequency f1/f2/f3/f4 based on the Frequency band, the overlaping band and channel bandwidth + * for MFBI as per 36.508 cl 6.2.3.1 tables 6.2.3.1-1b and 6.2.3.1-1c + * Function specific to MFBI TC + * @param p_Band + * @param p_OverlapingBand + * @param p_DL_ChBandwidth + * @param p_UL_ChBandwidth + * @return Frequency_fList_Type + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_InitFrequency_f1Tof4_MFBI(FreqBandIndicator p_Band, + FreqBandIndicator p_OverlapingBand, + Dl_Bandwidth_Type p_DL_ChBandwidth, + Ul_Bandwidth_Type p_UL_ChBandwidth) return Frequency_fList_Type + { //@sic R5-142846 sic@ + var FrequencyLowMidHigh_Type v_FreqLMH; + var template(value) Frequency_fList_Type v_Freq := cs_FrequencyInitDummy; //Initialise with Dummy value + + // Initialise Frequencies Low/Mid/High for the primary Band + v_FreqLMH:= f_EUTRA_InitFrequencyLowMidHigh_MFBI(p_Band, p_OverlapingBand, p_DL_ChBandwidth, p_UL_ChBandwidth ); + + // Most of the bands assigns f1->Mid f2->High f3->Low + v_Freq.f1 := v_FreqLMH.FrequencyMid; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := v_FreqLMH.FrequencyLow; + + // Assign f4 and update f1/f2/f3 for specific bands + // Acc. to 36.508 tables: + // Table 6.2.3.1-1b: Test frequencies for E-UTRA FDD(5MHz) MFBI + // Table 6.2.3.1-1c: Test frequencies for E-UTRA FDD(10MHz) MFBI + // Table 6.2.3.1-2b: Test frequencies for E-UTRA TDD (5MHz) MFBI + // Table 6.2.3.1-2c: Test frequencies for E-UTRA TDD(20MHz) MFBI + select (p_Band) { + //Table 6.2.3.1-1b: Test frequencies for E-UTRA FDD(5MHz) MFBI + case (2) { // Band 2 + select (p_OverlapingBand) { + case (25) { + v_Freq.f4.dl_CarrierFreq := 950; + v_Freq.f4.ul_CarrierFreq := 18950; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (3) { // Band 3 + select (p_OverlapingBand) { + case (9) { + v_Freq.f4.dl_CarrierFreq := 1824; + v_Freq.f4.ul_CarrierFreq := 19824; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (4) { // Band 4 + select (p_OverlapingBand) { + case (10) { + v_Freq.f4.dl_CarrierFreq := 2225; + v_Freq.f4.ul_CarrierFreq := 20225; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (5) { // Band 5 + select (p_OverlapingBand) { + case (18) { //@sic R5s140772 sic@ + v_Freq.f2 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case (19) { + v_Freq.f4.dl_CarrierFreq := 2585; + v_Freq.f4.ul_CarrierFreq := 20585; + } + case (26) { + v_Freq.f4.dl_CarrierFreq := 2575; + v_Freq.f4.ul_CarrierFreq := 20575; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (9) { // Band 9 + select (p_OverlapingBand) { + case (3) { + v_Freq.f4.dl_CarrierFreq := 4025; + v_Freq.f4.ul_CarrierFreq := 22025; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (10) { // Band 10 + select (p_OverlapingBand) { + case (4) { + v_Freq.f4.dl_CarrierFreq := 4425; + v_Freq.f4.ul_CarrierFreq := 22425; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (12) { // Band 12 + select (p_OverlapingBand) { + case (17) { //@sic R5s140772 sic@ + v_Freq.f1 := v_FreqLMH.FrequencyLow; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (17) { // Band 17 + select (p_OverlapingBand) { + case (12) { //@sic R5s140772 sic@ + v_Freq.f1 := v_FreqLMH.FrequencyLow; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (18) { + select (p_OverlapingBand) { + case (5, 26, 27) { + v_Freq.f2 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (19) { // Band 19 + select (p_OverlapingBand) { + case (5, 26) { + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (25) { // Band 25 + select (p_OverlapingBand) { + case (2) { + v_Freq.f4.dl_CarrierFreq := 8390; + v_Freq.f4.ul_CarrierFreq := 26390; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (26) { // Band 26 + select (p_OverlapingBand) { + case (5) { + v_Freq.f4.dl_CarrierFreq := 8865; + v_Freq.f4.ul_CarrierFreq := 26865; + } + case (18,27) { + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case (19) { //@sic R5s140772 sic@ + v_Freq.f1 := v_FreqLMH.FrequencyLow; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (27) { // Band 27 + select (p_OverlapingBand) { + case (18, 26) { + v_Freq.f1 := v_FreqLMH.FrequencyLow; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (33) { + select (p_OverlapingBand) { + case (39) { + v_Freq.f1.dl_CarrierFreq := 36075; + v_Freq.f2 := v_FreqLMH.FrequencyLow; + v_Freq.f3 := v_FreqLMH.FrequencyHigh; + v_Freq.f4.dl_CarrierFreq := 36125; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (38) { + select (p_OverlapingBand) { + case (41) { + v_Freq.f1 := v_FreqLMH.FrequencyLow; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (39) { + select (p_OverlapingBand) { + case (33) { + v_Freq.f1 := v_FreqLMH.FrequencyLow; + v_Freq.f2 := v_FreqLMH.FrequencyHigh; + v_Freq.f3 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case (41) { + select (p_OverlapingBand) { + case (38) { //@sic R5s141267 sic@ + v_Freq.f1 := v_FreqLMH.FrequencyHigh; + v_Freq.f2 := v_FreqLMH.FrequencyLow; + v_Freq.f3 := v_FreqLMH.FrequencyMid; + v_Freq.f4 := {dl_CarrierFreq := tsc_DummyFrequency, ul_CarrierFreq := tsc_DummyFrequency }; + } + case else { + FatalError(__FILE__, __LINE__, "invalid overlaping Band"); + } + } + } + case else { + FatalError(__FILE__, __LINE__, "invalid Band"); + } + } + return valueof(v_Freq); + } + + + /* + * @desc To initialise the band and MFBI frequencies of a cell + * Frequencies are defined in 36.508 Table 6.2.3.1-1b, Table 6.2.3.1-1c, Table 6.2.3.1-2b and Table 6.2.3.1-2c + * Function specific to MFBI TC + * @param p_CellId + * @param p_Band + * @param p_OverlapingBand + * @param p_DL_ChBandwidth + * @param p_UL_ChBandwidth + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_InitBandFrequency_MFBI(EUTRA_CellId_Type p_CellId, + FreqBandIndicator p_Band, + FreqBandIndicator p_OverlapingBand, + Dl_Bandwidth_Type p_DL_ChBandwidth, + Ul_Bandwidth_Type p_UL_ChBandwidth) runs on EUTRA_PTC + { + var Frequency_fList_Type v_Freq; + + // Initialise Frequencies f1/f2/f3/f4 + v_Freq := f_EUTRA_InitFrequency_f1Tof4_MFBI(p_Band, p_OverlapingBand, p_DL_ChBandwidth, p_UL_ChBandwidth); + + // Initialised Frequency per cell. See 36.508 Table 6.2.3.1-1 + // Cell 1/2/4/11 -> Frequency f1 + // Cell 3/12 -> Frequency f2 + // Cell 6/13 -> Frequency f3 + // Cell 14 -> Frequency f4 + select (p_CellId) { + case (eutra_Cell1, + eutra_Cell2, + eutra_Cell4, + eutra_Cell11, + eutra_Cell10, + eutra_Cell30, + eutra_Cell31) { + f_EUTRA_CellInfo_SetEARFCN(p_CellId, v_Freq.f1); + } + case (eutra_Cell3, + eutra_Cell12, + eutra_Cell23, + eutra_Cell28, + eutra_Cell29) { + f_EUTRA_CellInfo_SetEARFCN(p_CellId, v_Freq.f2); + } + case (eutra_Cell6, + eutra_Cell13) { + f_EUTRA_CellInfo_SetEARFCN(p_CellId, v_Freq.f3); + } + case (eutra_Cell14) { + f_EUTRA_CellInfo_SetEARFCN(p_CellId, v_Freq.f4); + } + case else { + FatalError(__FILE__, __LINE__, "invalid cell Idendtity"); + } + } + //Set the frequency band + f_EUTRA_CellInfo_SetBand(p_CellId, p_Band); + f_EUTRA_CellInfo_SetSysInfo_SIB1_v8h0_IEs(p_CellId,cs_SystemInformationBlockType1_v8h0_IEs({p_OverlapingBand})); //@sic R5-144651 sic@ + } + +} diff --git a/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures.ttcn new file mode 100644 index 0000000..bbf5b51 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures.ttcn @@ -0,0 +1,1495 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 14:42:41 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14457 $ +/******************************************************************************/ + +module EUTRA_CommonProcedures { + + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from CommonDefs all; + import from EUTRA_CommonDefs all; + import from NAS_CommonTypeDefs all; + import from EUTRA_ASP_TypeDefs all; + import from EUTRA_ASP_SrbDefs all; + import from EPS_NAS_TypeDefs all; + import from EPS_NAS_MsgContainers all; + import from EPS_NAS_Constants all; + import from EUTRA_Component all; + import from EUTRA_CellInfo all; + import from EUTRA_AspCommon_Templates all; + import from EUTRA_SecurityFunctions all; + import from EUTRA_SecuritySteps all; + import from UpperTesterFunctions all; + import from IP_PTC_CtrlMsgs all; + import from EUTRA_RRC_Templates all; + import from EPS_NAS_Templates all; + import from NAS_CommonTemplates all; + import from NAS_AuxiliaryDefsAndFunctions all; + import from Parameters all; + import from EUTRA_SRB_Templates all; + import from EUTRA_DRB_Templates all; + import from EUTRA_LoopBack all; + import from EUTRA_LoopBack_TypeDefs all; + import from EUTRA_NASSteps all; + import from EUTRA_RRCSteps all; + import from EUTRA_AuxiliaryFunctions all; + import from EUTRA_ConfigurationSteps all; + import from EUTRA_InitialRegistration all; + import from EUTRA_Timing all; + import from EUTRA_CapabilityFunctions all; + import from EUTRA_ASP_NasCtrl all; + import from L2_CommonTemplates all; + import from L2_CommonFunctions all; + import from EUTRA_CellCfg_Templates all; + + //============================================================================ + // Pre-/Postambles + //---------------------------------------------------------------------------- + /* + * @desc to be used in the test case preamble + * N.B. The power level used in this function is tsc_ServingCellRS_EPRE, if you need this cell to be + * set to a different level for your test, please adjust the level after this function. + * @param p_CellId + * @param p_State + * @param p_ForcedAttach (optional) + * @param p_NoOfEmergencyNumbers (default := 0) Only set this if the list of local emergency numbers should be included in Attach Accept (only for Emergency Call Tests) + * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) + * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_Preamble(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_STATE_Type p_State, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ + template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ + PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC + { /* @sic R5s130347: local GuardTimer sic@ */ + timer t_GuardTimer := tsc_GuardTimePreamble; + + t_GuardTimer.start; + + // First switch cell back on + f_EUTRA_SetCellPower(p_CellId, tsc_ServingCellRS_EPRE); + + // Switch on UE + f_EUTRA_SwitchOnUEandStartIP(p_CellId); // @sic R5s120065 sic@ + + // Now continue with the procedure + f_EUTRA_IdleUpdated(p_CellId, PREAMBLE, p_State, p_ForcedAttach, p_NoOfEmergencyNumbers, p_NtwkFeatSupport, p_PDN_TypeToBeUsed); + + t_GuardTimer.stop; + } + + //---------------------------------------------------------------------------- + /* + * @desc This function should be used at the end of every test case to ensure the UE + * detaches and release the RRC connection as it is turned off and only then will it + * take down the cell the UE is currently camped on + * @param p_CellId + * @param p_E_State values: E1_IDLE, E2_CONNECTED, E3_TESTMODE, E4_DEREGISTERED + * @param p_ForcedAttach (default value: NORMAL) + * @param p_SelectedPlmnId (default value: 1) .. selectedPLMN-Identity as used in RRCConnectionSetupComplete (starting with 1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_Postamble(EUTRA_CellId_Type p_CellId, + EUTRA_POSTAMBLE_STATE_Type p_E_State, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + integer p_SelectedPlmnId := 1) runs on EUTRA_PTC + { /* @sic This function has been completely changed in R5-103847 sic@ */ + // @sic R5s11046: new parameter p_SelectedPlmnId sic@ + + if (pc_SwitchOnOff) { // The UE can actually be switched off + select (p_E_State) { + case (E1_IDLE) { + //Expect the UE to detach and release RRC connection + f_EUTRA_UE_Detach_SwitchOffUe(p_CellId, RRC_IDLE, p_ForcedAttach, omit, p_SelectedPlmnId); // @sic R5s110176, R5s110468 sic@ + } + case (E2_CONNECTED, E3_TESTMODE) { + //Expect the UE to detach and release RRC connection + f_EUTRA_UE_Detach_SwitchOffUe(p_CellId, RRC_CONNECTED, p_ForcedAttach, omit, p_SelectedPlmnId); // @sic R5s110176, R5s110468 sic@ + } + case (E2_T3440) { // @sic R5s110007 sic@ + //Expect the UE to release RRC connection + f_EUTRA_RRC_ConnectionRelease(p_CellId); + f_Delay (5.0); // @sic R5-110803 sic@ + //Expect the UE to detach and release RRC connection + f_EUTRA_UE_Detach_SwitchOffUe(p_CellId, RRC_IDLE, p_ForcedAttach, omit, p_SelectedPlmnId); // @sic R5s110176, R5s110468 sic@ + } + case (E4_DEREGISTERED) { + f_UT_SwitchOffUE (UT, false); + } + } + } + else { // The power must be removed from the UE + f_UT_PowerOffUE (UT); + } + //And now remove the cell(s) + f_EUTRA_ReleaseAllCells(); + } + + //------------------------------------ + /* + * @desc Steps 6-9 of 4.5.3.3 will be performed as a postamble, and no dedicated bearers will be activated + * @param p_CellId + * @param p_NAS_Ind + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_ServiceReqPostamble_508Steps6_9(EUTRA_CellId_Type p_CellId, + NAS_MSG_Indication_Type p_NAS_Ind) runs on EUTRA_PTC + { + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(p_CellId, v_RRC_TI, p_NAS_Ind.SecurityProtection.NasCount); /* @sic R5s100315 sic@ */ + f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(p_CellId, v_RRC_TI); /* @sic R5s100315 sic@ */ + } + + //------------------------------------ + /* + * @desc additional UM bearer will be established + * @param p_CellId + */ + function f_EUTRA_RbEst_508_UM(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; + var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1, tsc_EpsDedicatedBearerId)}; + f_EUTRA_GenericRbEst(p_CellId, 0, 1, v_Qos_List, v_Tft_List); + } + + //------------------------------------ + /* + * @desc additional AM bearer will be established + * @param p_CellId + * @status APPROVED (LTE, LTE_IRAT) + */ + function f_EUTRA_RbEst_508_AM(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; + var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1, tsc_EpsDedicatedBearerId)}; + f_EUTRA_GenericRbEst(p_CellId, 1, 0, v_Qos_List, v_Tft_List); + } + + //---------------------------------------------------------------------------- + /* + * @desc Brings UE to state 4, with default DRB (AM) and an additional AM bearer being established; + * SRBs and the default bearer are expected to be established at the SS beforehand; + * Put UE in Loop Back Mode A. + * Configures SS in normal mode + * @param p_CellId + * @param p_UE_TestLoopModeA_LB_Setup + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_LoopBackActivation_State4_Def(EUTRA_CellId_Type p_CellId, + template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup) runs on EUTRA_PTC + { + f_EUTRA_RbEst_Def(p_CellId); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 + } + + //------------------------------------ + function f_EUTRA_LoopBackActivation_State4_508_UM(EUTRA_CellId_Type p_CellId, + template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup) runs on EUTRA_PTC + { /* Brings UE to state 4, with default DRB (AM) and an additional UM bearer being established; + SRBs and DRBs are expected to be established at the SS beforehand; + Put UE in Loop Back Mode A. + Configures SS in normal mode */ + f_EUTRA_RbEst_508_UM(p_CellId); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 + } + + //------------------------------------ + function f_EUTRA_LoopBackActivation_State4_508_AM(EUTRA_CellId_Type p_CellId, + template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup) runs on EUTRA_PTC + { /* Brings UE to state 4, with default DRB (AM) and an additional AM bearer being established; + SRBs and DRBs are expected to be established at the SS beforehand; + Put UE in Loop Back Mode A. + Configures SS in normal mode */ + f_EUTRA_RbEst_508_AM(p_CellId); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 + } + + //**************************************************************************** + // Check functions acc. to TS 36.508 + //---------------------------------------------------------------------------- + + group Checkfunctions { + + /* + * @desc Test procedure to check Idle state, see TS 36.508 clause 6.4.2.2 + * @param p_CellId + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_508Check_IdleState(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + // Step 1- 10 this is the same as the generic bearer establishment procedure, but without configuring any additional bearers @sic R5-102082 sic@ + f_EUTRA_RbEst_Def(p_CellId); + + f_EUTRA_RRC_ConnectionRelease(p_CellId); + f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "508Check IdleState"); + } // f_EUTRA_508Check_IdleState + + /* + * @desc Test procedure to check Connected state, see TS 36.508 clause 6.4.2.3 + * @param p_CellId + * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_508Check_ConnectedState(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + { /* @sic R5s110219 change 4 sic@ */ + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + + SRB.send(cas_SRB1_RrcPdu_REQ( p_CellId, + p_TimingInfo, + cs_508_UeCapabilityEnquiry(v_RRC_TI))); + + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_UeCapabilityInformation(v_RRC_TI, cr_EutraCapInfo))); + + f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "508Check ConnectedState"); + } + + /* + * @desc Test procedure to check that UE is camped on a new E-UTRAN cell, see TS 36.508 clause 6.4.2.7 + * @param p_CellId + * @param p_RRC_TI (default value: tsc_RRC_TI_Def) + * @param p_EstablishmentCause (default value: ?) + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_508CheckCampOnNewEutraCell(EUTRA_CellId_Type p_CellId, + RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def, + template (present) EstablishmentCause p_EstablishmentCause := ? //@sic R5-110062 sic@ + ) runs on EUTRA_PTC + { + /* Checks whether the UE is camping on a new E-UTRAN cell with different TAI of a test case or not. + Procedure is defined in 36.508 cl. 6.4.2.7*/ + f_EUTRA_TrackingAreaUpdate(p_CellId, p_RRC_TI, -, p_EstablishmentCause); //@sic R5-110062 sic@ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "508Check CampOnNewEutraCell"); + } + + /* + * @desc Test procedure to check that UE is camped on a new E-UTRAN cell, see TS 36.508 clause 6.4.2.7A; @sic R5-110746 sic@ + * @param p_CellId + * @param p_CSInOtherRAT Set to true if the UE has done either an LAU or Combined RAU in the other RAT + * @param p_PDPContext Set to true if UE has earlier established PDP context on other RAT + * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) + * @param p_EUTRA_Cap + * @param p_ForcedAttach + * @param p_RRC_TI (default value: tsc_RRC_TI_Def) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_EUTRA_508CheckCampOnNewEutraCellUponMobilityFromAnotherRAT(EUTRA_CellId_Type p_CellId, + boolean p_CSInOtherRAT, + boolean p_PDPContext, + boolean p_PreambleOnLTE, + template (omit) octetstring p_EUTRA_Cap, // @sic R5-123734 sic@ + EUTRA_ATTACH_Type p_ForcedAttach, + RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def) runs on EUTRA_PTC + { /* Checks whether the UE is camping on a new E-UTRAN cell with different TAI of a test case or not. + Procedure is defined in 36.508 cl. 6.4.2.7A */ + // @sic CR R5-102241 sic@ + f_EUTRA_TrackingAreaUpdateFromAnotherRAT(p_CellId, p_RRC_TI, p_CSInOtherRAT, p_PDPContext, p_PreambleOnLTE, p_EUTRA_Cap, -, p_ForcedAttach); // @sic R5s110176, R5-135074, R5-140325 sic@ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "508Check CampOnNewEutraCellUponMobilityfromAnotherRAT"); + } + + + //---------------------------------------------------------------------------- + } // end of group Checkfunctions + + //---------------------------------------------------------------------------- + /* + * @desc Tracking area update upon mobility from another RAT + * this function does not receive the RRC Connection Request message + * @param p_CellId + * @param p_RRC_TI + * @param p_CSInOtherRAT Set to true if the UE has done either an LAU or Combined RAU in the other RAT + * @param p_PDPContext Set to true if UE has earlier established PDP context on other RAT + * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) + * @param p_EUTRA_Cap + * @param p_ReleaseRequired (default value: true) Set to false if you don't want the RRC connection to be released at the end of the function + * @param p_ForcedAttach (default value: NORMAL) + * @return template (omit) NasCount_Type @sic R5s120774, R5s120944 sic@ + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_EUTRA_TrackingAreaUpdateFromAnotherRAT_WithoutRRCConneReq(EUTRA_CellId_Type p_CellId, + RRC_TransactionIdentifier p_RRC_TI, + boolean p_CSInOtherRAT, + boolean p_PDPContext, + boolean p_PreambleOnLTE, + template (omit) octetstring p_EUTRA_Cap, // @sic R5-123734 sic@ + boolean p_ReleaseRequired := true, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL) runs on EUTRA_PTC return template (omit) NasCount_Type + { /* @sic R5s120027 Additional Changes sic@ */ + var NAS_MSG_Indication_Type v_NasInd; + var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); + var template (omit) NasCount_Type v_NasCountUL := omit; // @sic R5s120944 sic@ + var NasCountInfo_Type v_NasCountInfo; + var SRB_COMMON_IND v_ReceivedAsp; + var GutiParameters_Type v_GutiParams:= f_EUTRA_CellInfo_GetGuti(p_CellId); + var B3_Type v_EpsUpdate_Result := f_GetEPSTAUType(p_ForcedAttach); // @sic R5s100029, R5s110176 sic@ + var template (present) B3_Type v_EpsUpdate_TypeValue := v_EpsUpdate_Result; // To be used in Request message + var template (present) EPS_BearerContextStatus v_EPS_ContextStatus_Rx := cr_508_EPS_BearerContextStatusTAUReq; // @sic R5s100608, R5-110746 sic@ + var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus_Tx; + var template (present) NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(p_ForcedAttach); // @sic R5s110176 sic@ + var template AdditionalUpdateType v_AdditionalUpdateType_Expected := f_GetAdditionalUpdateType (p_ForcedAttach); // @sic R5s110176 sic@ + var template (present) NAS_MSG_Indication_Type v_NAS_Expected, v_TAU_Expected, v_TAU_NoProtection, v_TAU_StartInOtherRAT, v_TAU_ForcedMapped; + var boolean v_NoAuthSincePowerOn; + var template (omit) AccessStratumRelease v_Rel := omit; + var UE_EUTRA_Capability v_EUTRA_Cap; + var boolean v_Rel8_9 := false; + var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); + var B3_Type v_PDNType := f_GetPdnType(); + var template CiphKeySeqNum v_CiphKeySeqNum := cr_CiphKeySeqNum('8'H, ?) ifpresent; + timer t_WaitforAttach := f_EUTRA_SetTimerToleranceMax( p_CellId, nonProtocolTimer, tsc_WaitforAttach); // @sic R5-134358 sic@ + + if (p_PreambleOnLTE) { // @sic R5-123734 sic@ + v_Rel := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease (); + } else { + if (ispresent(p_EUTRA_Cap)) { + v_EUTRA_Cap := f_EUTRA_DecodeEutraCapMsg(valueof(p_EUTRA_Cap)); // This needs to be a template as it can be omitted + v_Rel := v_EUTRA_Cap.accessStratumRelease; + } + } + + if (not p_PDPContext and not p_PreambleOnLTE) { // no bearer has previously been established + v_EPS_ContextStatus_Rx.ebi5_7 := '000'B; // so set all bearer indications to 0 + } + + if (not match(tsc_EpsUpdate_TaUpdate, v_EpsUpdate_TypeValue)) { // TA Only; @sic R5-110746 sic@ + if (p_CSInOtherRAT) { + v_EpsUpdate_TypeValue := tsc_EpsUpdate_Combined_IMSIAttach; + } else { + v_EpsUpdate_TypeValue := (tsc_EpsUpdate_Combined_TaLaUpdate, tsc_EpsUpdate_Combined_IMSIAttach); // @sic R5s120943, R5-140325 sic@ + } + } + + // @sic R5s110168 change 8.5 sic@ + v_TAU_NoProtection := cr_NAS_Indication(tsc_SHT_NoSecurityProtection, + cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, + '111'B, + v_EPS_ContextStatus_Rx, + v_AdditionalUpdateType_Expected, + ?, + v_CiphKeySeqNum)); + v_TAU_StartInOtherRAT := cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, + ?, + v_EPS_ContextStatus_Rx, + v_AdditionalUpdateType_Expected, + ?, + v_CiphKeySeqNum)); + v_TAU_ForcedMapped := cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, + f_EUTRA_SecurityKSIsgsn_Get (), + v_EPS_ContextStatus_Rx, + v_AdditionalUpdateType_Expected, + tsc_NasKsi_MappedSecurityContext, + v_CiphKeySeqNum)); + /* Step 1 - 3 */ + /* ( 33.401 cl. 9.1.2 Idle mode procedures in E-UTRAN ) + Check that TRACKING AREA UPDATE REQUEST message is present and conforms + with default message ( 36.508 Table 4.7.2-27: TRACKING AREA UPDATE REQUEST ) */ + if (v_SecurityParams.KSIasme == '111'B) { // Did not do authentication on EUTRA cell since power on + v_NoAuthSincePowerOn := true; + if (v_SecurityParams.KSIsgsn == '111'B) {// No current EPS security context stored + //@sic R5-110746 Don't care if UE is sending mapped or native sic@ + v_TAU_Expected := (v_TAU_NoProtection, v_TAU_StartInOtherRAT); + } + else { /* This should be when: - UE started on 3G/2G, + * - came to LTE and was forced to use the mapped context in an SMC on LTE + * - went back to 3G/2G + * - is now back on LTE */ + v_TAU_Expected := v_TAU_ForcedMapped; + } + } + else { // UE and SS still have current EPS NAS Security Context because previously registered on LTE so should have a valid native context + v_NoAuthSincePowerOn := false; + v_TAU_Expected := cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_TAU_RequestIdleMobilityDiffRAT(v_EpsUpdate_TypeValue, + f_EUTRA_SecurityKSIasme_Get(), + v_EPS_ContextStatus_Rx, + v_AdditionalUpdateType_Expected, + tsc_NasKsi_NativeSecurityContext)); // @sic R5-110746 sic@ + } + + if (p_PDPContext or p_PreambleOnLTE) { // bearer has previously been established + v_NAS_Expected := v_TAU_Expected; + } else { // no bearer established, so behaviour is optional + if (ispresent(v_Rel)) { // @sic R5-123734 sic@ + if (valueof(v_Rel) == rel8 or valueof(v_Rel) == rel9) { + v_NAS_Expected := (v_TAU_Expected, cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); // @sic R5s120659 sic@ + } else { // rel10 and above + v_NAS_Expected := cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType)); // @sic R5s120659 sic@ + } + } else { // started on GERAN so expect anything for now + v_NAS_Expected := (v_TAU_Expected, cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); // @sic R5s120659 sic@ + } + } + + //Send RRC Connection Setup on SRB0 (CCCH) and switch on UL grant assignments: + f_EUTRA_RRC_ConnectionSetup_Def (p_CellId, -, p_RRC_TI); + + //Receive RRC Connection Setup Complete with piggy-backed NAS message on SRB1 (DCCH): + v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(p_CellId, // @sic R5s120121 MCC160 implementation sic@ + cr_508_RRCConnectionSetupComplete(p_RRC_TI, ?, -, 1), + v_NAS_Expected); // @sic R5-123734 sic@ + if (ischosen (v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST)) { // @sic R5-123734 sic@ + v_SecurityParams.NonceUE := oct2bit(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.nonce.nonceValue); + } + if (p_PDPContext or p_PreambleOnLTE) { // bearer already established, so go ahead and complete the TAU; @sic R5-110746, R5s110087 sic@ + if (v_NoAuthSincePowerOn) { + v_SecurityParams := f_EUTRA_MappedContext_InitNAS(v_SecurityParams, v_SecurityParams.AuthParams); + v_SecurityParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability_TAU(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST); // @sic R5s110210 sic@ + /* Step 4, 5: NAS Security Mode Command / NAS Security Mode Complete */ + v_NasCountUL := f_EUTRA_NAS_ActivateSecurity_MappedContext(p_CellId, v_SecurityParams); + } else { // @sic R5s130238 sic@ + v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); + v_NasCountUL := v_NasCountInfo.UL; + } + + v_EPS_ContextStatus_Tx := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; // Send this back in the Accept + v_SecurityParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability_TAU(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST); + f_EUTRA_Security_Set(v_SecurityParams); + + /* Step 6: Transmit TRACKING AREA UPDATE ACCEPT message */ + /* Step 7: Receive TRACKING AREA UPDATE COMPLETE */ + f_EUTRA_TrackingAreaUpdate_Accept_Complete(p_CellId, + v_GutiParams, + v_EpsUpdate_Result, + v_EPS_ContextStatus_Tx, + v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, + p_ForcedAttach); + + /* Step 8: Release RRC connection */ + if (p_ReleaseRequired) { // @sic R5s110127 sic@ + f_EUTRA_RRC_ConnectionRelease(p_CellId, p_RRC_TI); + } + } else { // No bearer established so follow table 2; @sic R5-110746 sic@ + if (ischosen (v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST)) { // @sic R5-123734 sic@ + // Step 4: The SS transmits a TRACKING AREA UPDATE REJECT message with EMM cause = "No EPS Bearer Activated". + v_Rel8_9 := true; // @sic R5-123734 sic@ + SRB.send(cas_SRB1_NasPdu_REQ(p_CellId, + cs_TimingInfo_Now, + cs_NAS_Request(tsc_SHT_NoSecurityProtection, + cs_508_TRACKING_AREA_UPDATE_REJECT(tsc_Cause_NoEPSBearerActive)))); + // Step 5: SS waits for tsc_WaitforAttach seconds to receive the Attach Request on the existing RRC Connection + t_WaitforAttach.start; + alt { + [] SRB.receive(car_SRB1_NasPdu_IND(p_CellId, + cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType)))) + -> value v_ReceivedAsp + { + v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; + t_WaitforAttach.stop; + } + [] t_WaitforAttach.timeout + { + // Step 5 : The SS releases the RRC connection. + f_EUTRA_RRC_ConnectionRelease(p_CellId); /* @sic R5-110803 change 13 sic@ */ + + // Step 6: + if (not pc_Auto_PDN_Connectivity) { // @sic R5-120754, R5-125117 sic@ + f_UT_RequestAdditionalPDNConnectivity (UT, 6); // @sic R5-125116 sic@ + } + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, + tsc_RRC_TI_Def, + cr_EstablishmentCause_Any, + cr_NAS_IndicationWithPiggybacking((tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected), + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); + } + } + } // end of TAU received, so Attach Req must have been received first + // Activate DHCP and ICMPv6 + f_IP_Handling_Start(IP, PDN_1, cs_DrbInfo_EUTRA(p_CellId, tsc_DRB1)); /* @sic R5s110776 sic@ */ + + // Steps 7 - 22 + f_EUTRA_IdleUpdated_Step5_17(p_CellId, STATE2_IDLEUPDATE, p_ForcedAttach, v_NasInd, p_ReleaseRequired); // @sic R5s110395 sic@ + + if (not ispresent (v_Rel)) { // @sic R5-123734 sic@ + v_Rel := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease (); // can get value now, so can now check behaviour correct for release of UE + if ((not(valueof(v_Rel) == rel8 or valueof(v_Rel) == rel9)) and v_Rel8_9 ) { // @sic R5s120659 sic@ @sic R5s130275 sic@ + f_SetVerdictInconc(__FILE__, __LINE__, "Rel8/9 behaviour not allowed for higher release UE"); + } + } + } + return v_NasCountUL; // @sic R5s120774 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc Tracking area update upon mobility from another RAT + * @param p_CellId + * @param p_RRC_TI + * @param p_CSInOtherRAT Set to true if the UE has done either an LAU or Combined RAU in the other RAT + * @param p_PDPContext Set to true if UE has earlier established PDP context on other RAT + * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) + * @param p_EUTRA_Cap + * @param p_ReleaseRequired (default value: true) Set to false if you don't want the RRC connection to be released at the end of the function + * @param p_ForcedAttach (default value: NORMAL) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_EUTRA_TrackingAreaUpdateFromAnotherRAT(EUTRA_CellId_Type p_CellId, + RRC_TransactionIdentifier p_RRC_TI, + boolean p_CSInOtherRAT, + boolean p_PDPContext, + boolean p_PreambleOnLTE, + template (omit) octetstring p_EUTRA_Cap, // @sic R5-123734 sic@ + boolean p_ReleaseRequired := true, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL) runs on EUTRA_PTC + { /* @sic R5s120027 Additional Changes sic@ */ + var EstablishmentCause v_EstablishmentCause := mo_Signalling; + + // receive RRC Connection Request on SRB0 (CCCH): + f_EUTRA_RRC_ConnectionRequest_Def(p_CellId, v_EstablishmentCause); // @sic R5-120721 change 3 sic@ + + f_EUTRA_TrackingAreaUpdateFromAnotherRAT_WithoutRRCConneReq(p_CellId, + p_RRC_TI, + p_CSInOtherRAT, + p_PDPContext, + p_PreambleOnLTE, + p_EUTRA_Cap, // @sic R5-123734 sic@ + p_ReleaseRequired, + p_ForcedAttach); + } + + //---------------------------------------------------------------------------- + + altstep a_EUTRA_PdnConnectivityRejectAnyFurtherRequest(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + var SRB_COMMON_IND v_ReceivedAsp; + var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; + var ProcedureTransactionIdentifier v_PTId_UE; + var template (value) ESM_Cause v_EsmCause26; + var template (value) GPRS_Timer3 v_T3396_Deact; + + [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_PDNConnReqAdditionalPDN(?)))) -> value v_ReceivedAsp + { + + v_PDNConnReq := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_CONNECTIVITY_REQUEST; + v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; + v_EsmCause26 := cs_ESM_Cause_v ('00011010'B); + v_T3396_Deact := cs_GprsTimer3(omit, tsc_GprsTimerUnit_deact, '11111'B); // @sic R5s150745 sic@ + SRB.send(cas_SRB2_NasPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, cs_PdnConnectReject('0'H, v_PTId_UE, v_EsmCause26, v_T3396_Deact)))); + } + } + + function f_EUTRA_PdnConnectivityReject(EUTRA_CellId_Type p_CellId, + template (omit) float p_WaitDuration := omit) runs on EUTRA_PTC + { + var boolean v_TimerControl := ispresent(p_WaitDuration); + timer t_Timer; + + if (v_TimerControl) { + t_Timer.start(valueof(p_WaitDuration)); + } + alt { + [] a_EUTRA_PdnConnectivityRejectAnyFurtherRequest(p_CellId) {} + [v_TimerControl] t_Timer.timeout {} + } + } + + //---------------------------------------------------------------------------- + /* + * @desc Activate a default DRB connected to an additional PDN + * see 36.508 clause 6.4.3.2 / 4.5A.4 + * This is called by f_EUTRA_508_ActivateAdditionalPDN + * @param p_CellId + * @param p_EpsBearerId2 .. Identity of the 2nd Default Bearer that will be configured to connect to the additional PDN + * @param p_RRCState (default value: RRC_IDLE) + * @param p_EstablishmentCause (default value: ?) Set to emergency to establish a PDN for an emergency bearer + * @param p_PDN_RequestType (default value: 001) Set to 100 to establish a PDN for an emergency bearer + * @param p_ExpectedAccessPointName (default value: cr_AccessPointName(v_APN_Value)) Set to omit to establish a PDN for an emergency bearer + * @param p_StepNo (default value: "") Set to the verdict step no if required after the RRC Connection Establishment + * @status APPROVED (IMS, LTE) + */ + function f_EUTRA_ActivateAdditionalPDNOnDef(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsBearerId2, + EUTRA_RRC_STATE_Type p_RRCState := RRC_IDLE, + template (present) EstablishmentCause p_EstablishmentCause := ?, + B3_Type p_PDN_RequestType := '001'B, + template AccessPointName p_ExpectedAccessPointName := cr_AccessPointName(tsc_APN1), + charstring p_StepNo := "") runs on EUTRA_PTC + { // @sic R5s100326 sic@ @sic R5s100520 sic@ + var ProcedureTransactionIdentifier v_PTId_UE; + var template (omit) ProtocolConfigOptions v_Pco; // @sic R5s100761 sic@ + var PDN_Address v_PDN_Address2; + var NAS_MSG_Indication_Type v_NasInd; + var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; + var SRB_COMMON_IND v_ReceivedAsp; + var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_CellId); //Get FDD or TDD mode from Cell-configuration + var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); + var NasCount_Type v_NasCountUL; + var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_CellId); //@sic R5-100786 sic@ + var template (value) DRB_ToAddModList v_DRB_ToAddModList; + var template (value) AccessPointName v_AccessPointNameToSend := cs_AccessPointName(tsc_APN1); + + // RRC configuration for first default EPS bearer context is released during RRC connection release procedure at the end of preamble, + // and therefore needs to be restored during the additional PDN procedure. + v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_DEFAULT_AM (tsc_DRB1); // @sic R5s130648 sic@ @sic R5s130880 sic@ + + // The UE transmits a SERVICE REQUEST + // The UE transmits a PDN CONNECTIVITY REQUEST message as specified to request an additional PDN. + if (p_RRCState == RRC_IDLE) { + // UE is in RRC Idle mode + // Steps 2a1 to 2a7 + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, + tsc_RRC_TI_Def, + p_EstablishmentCause, // @sic R5-131807 sic@ + cr_NAS_Indication (tsc_SHT_IntegrityProtected, + cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); + if (p_StepNo != "") { // @sic R5-115673 sic@ + f_EUTRA_PreliminaryPass (__FILE__, __LINE__, p_StepNo); + } + + // activate security in AS with parameters from AKA performed in preamble + v_NasCountUL := v_NasInd.SecurityProtection.NasCount; + v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_SecurityParams, v_NasCountUL); + f_EUTRA_Security_Set(v_SecurityParams); + + SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, + omit, + omit, + cs_508_RadioResourceConfigDedicated_SRB2( v_DRB_ToAddModList, + cs_508_MAC_MainConfig_Explicit_RBC_DrxL, + cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + v_AntennaInfo)), + omit))); + + // receive RRCConnectionReconfigurationComplete + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + + } // end of if RRC_Idle + // UE is now in RRC connected mode + + // Step 3. The UE transmits an ULInformationTransfer message including the PDN CONNECTIVITY REQUEST message. + SRB.receive(car_SRB2_NasPdu_IND(p_CellId, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_PDNConnReqAdditionalPDN(f_GetPdnType(), p_ExpectedAccessPointName, p_PDN_RequestType))))-> value v_ReceivedAsp; // @sic R5-131807 sic@ + + v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; + v_PDNConnReq := v_NasInd.Pdu.Msg.pDN_CONNECTIVITY_REQUEST; + v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; + v_Pco := v_PDNConnReq.protocolConfigurationOptions; + if (ispresent(v_PDNConnReq.accessPointName)) { // @sic R5-131807 sic@ + v_AccessPointNameToSend := v_PDNConnReq.accessPointName; + v_AccessPointNameToSend.iei := omit; // @sic R5s130431 sic@ + } + + // Change from DRB1 to DRB2 to handle U Plane data + f_EUTRA_StartIPfor2ndPDN(p_CellId, -, f_EUTRA_EpsBearerAssociatedDRB(p_EpsBearerId2)); // @sic R5s110449, R5-113734 change 8, R5-115673, R5s141351 change 3 sic@ + + // Step 4 and 5. The SS transmits an RRCConnectionReconfiguration message including + // the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message to establish the + // default EPS bearer context. + v_PDN_Address2 := f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); // @sic R5s110011 R5-120234 sic@ + f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(p_CellId, + p_EpsBearerId2, // Default bearer ID to additional PDN + v_PTId_UE, // use value as defined by the UE + v_AccessPointNameToSend, + v_PDN_Address2, + f_GetDefaultProtocolConfigOptions(v_Pco, PDN_2)); // @sic R5s141051 change 9: PDN_2 sic@ */ + + // Step 6. The UE transmits an ULInformationTransfer message including the ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message + SRB.receive(car_SRB2_NasPdu_IND(p_CellId, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActivateDefEpsBearerContextAccept(p_EpsBearerId2)))); + } + + //---------------------------------------------------------------------------- + /* + * @desc Establish an IMS Emergency Call in EUTRA + * see 36.508 4.5A.4 + * @param p_CellId + * @param p_NumToDial (default value: px_EmergencyCallNumber) + * @param p_StepNo (default value: "") Set to the verdict step no if required after the RRC Connection Establishment + * @param p_EpsDefBearerId2 (default value: '6'H) in the default case the default AM bearer is 6; in any case the UM bearer is defaulted to p_EpsBearerId2 + 1 + * @param p_StartIPfor2ndPDN (default value: true) + * @param p_PdnIndex (default: PDN_2) + * @status APPROVED (IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall(EUTRA_CellId_Type p_CellId, + charstring p_NumToDial := px_EmergencyCallNumber, + charstring p_StepNo := "", + EPS_BearerIdentity p_EpsDefBearerId2 := '6'H, + boolean p_StartIPfor2ndPDN := true, + PDN_Index_Type p_PdnIndex := PDN_2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + // Step 1 + f_UT_RequestIMSEmergencyCall (UT, p_NumToDial); + + // Steps 2 - 15 + f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_15(p_CellId, p_StepNo, p_EpsDefBearerId2, p_StartIPfor2ndPDN, p_PdnIndex); /* @sic R5s150692 add. change 1 sic@ */ + } + + + //---------------------------------------------------------------------------- + /* + * @desc Establish an IMS Emergency Call in EUTRA + * see 36.508 4.5A.4 steps 2-15 + * @param p_CellId + * @param p_StepNo (default value: "") .. Set to the verdict step no if required after the RRC Connection Establishment + * @param p_EpsDefBearerId2 (default value: '6'H) .. in the default case the default AM bearer is 6; in any case the UM bearer is defaulted to p_EpsBearerId2 + 1 + * @param p_StartIPfor2ndPDN (default value: true) + * @param p_PdnIndex (default: PDN_2) + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_15(EUTRA_CellId_Type p_CellId, + charstring p_StepNo := "", + EPS_BearerIdentity p_EpsDefBearerId2 := '6'H, + boolean p_StartIPfor2ndPDN := true, + PDN_Index_Type p_PdnIndex := PDN_2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + var NAS_MSG_Indication_Type v_NasInd; + + // Steps 2 - 4 + v_NasInd := f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_4(p_CellId, p_StepNo); /* @sic R5s150692 add. change 5 sic@ */ + + // Steps 5 - 8 + f_EUTRA_508_EstablishIMSEmergencyCall_Steps5_8(p_CellId, v_NasInd); + + // Step 9 - 15 + f_EUTRA_508_EstablishIMSEmergencyCall_Steps9_15(p_CellId, p_EpsDefBearerId2, p_StartIPfor2ndPDN, p_PdnIndex); /* @sic R5s140490 change 7 MCC160 implementation sic@ */ + } + + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 2-4 + * @param p_CellId + * @param p_StepNo (default value: "") + * @return NAS_MSG_Indication_Type + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps2_4(EUTRA_CellId_Type p_CellId, + charstring p_StepNo := "") runs on EUTRA_PTC return NAS_MSG_Indication_Type + { + var NAS_MSG_Indication_Type v_NasInd; + + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, + tsc_RRC_TI_Def, + emergency, /* @sic R5s150692 add. change 7 sic@ */ + cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); + if (p_StepNo != "") { // @sic R5-115673 sic@ + f_EUTRA_PreliminaryPass (__FILE__, __LINE__, p_StepNo); + } + return v_NasInd; + } + + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 5-8 + * @param p_CellId + * @param p_NasInd + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps5_8(EUTRA_CellId_Type p_CellId, + NAS_MSG_Indication_Type p_NasInd) runs on EUTRA_PTC + { + var NAS_MSG_Indication_Type v_NasInd; + var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_CellId); //Get FDD or TDD mode from Cell-configuration + var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); + var NasCount_Type v_NasCountUL; + var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated(p_CellId); //@sic R5-100786 sic@ + var template (value) DRB_ToAddModList v_DRB_ToAddModList; + + v_NasInd := p_NasInd; + v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1); //@sic R5s140169 change 1 sic@ + + // activate security in AS with parameters from AKA performed in preamble + v_NasCountUL := v_NasInd.SecurityProtection.NasCount; + v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_SecurityParams, v_NasCountUL); + f_EUTRA_Security_Set(v_SecurityParams); + + SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, + omit, + omit, + cs_508_RadioResourceConfigDedicated_SRB2(v_DRB_ToAddModList, + cs_508_MAC_MainConfig_Explicit_RBC_DrxL, + cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + v_AntennaInfo)), + omit))); + + // receive RRCConnectionReconfigurationComplete + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + } + + //---------------------------------------------------------------------------- + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 9-15 + * @param p_CellId + * @param p_EpsDefBearerId2 (default value: '6'H) .. in the default case the default AM bearer is 6; in any case the UM bearer is defaulted to p_EpsBearerId2 + 1 + * @param p_StartIPfor2ndPDN (default value: true) + * @param p_PdnIndex (default: PDN_2) + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps9_15(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefBearerId2 := '6'H, + boolean p_StartIPfor2ndPDN := true, + PDN_Index_Type p_PdnIndex := PDN_2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + var NAS_MSG_Indication_Type v_NasInd; + var EPS_BearerIdentity v_EpsDefBearerId2 := p_EpsDefBearerId2; + + // Step 9 + v_NasInd := f_EUTRA_508_EstablishIMSEmergencyCall_Step9(p_CellId); + + // Steps 10 - 15 + f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_15(p_CellId, v_EpsDefBearerId2, v_NasInd, p_StartIPfor2ndPDN, p_PdnIndex); + } + + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Step 9 + * @param p_CellId + * @return NAS_MSG_Indication_Type + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Step9(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return NAS_MSG_Indication_Type + { + var NAS_MSG_Indication_Type v_NasInd; + var SRB_COMMON_IND v_ReceivedAsp; + var B3_Type v_PDN_RequestType := '100'B; // @sic R5s130561 sic@ + + // Step 9. The UE transmits an ULInformationTransfer message including the PDN CONNECTIVITY REQUEST message. + SRB.receive(car_SRB2_NasPdu_IND(p_CellId, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_PDNConnReqAdditionalPDN(f_GetPdnType(), omit, v_PDN_RequestType)))) -> value v_ReceivedAsp; // @sic R5s130561 sic@ + + v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; + return v_NasInd; + } + + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 10-14 + * @param p_CellId + * @param p_EpsDefBearerId2 + * @param p_NasInd + * @param p_StartIPfor2ndPDN (default value: true) + * @param p_PdnIndex (default: PDN_2) + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_15(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefBearerId2, + NAS_MSG_Indication_Type p_NasInd, + boolean p_StartIPfor2ndPDN := true, + PDN_Index_Type p_PdnIndex := PDN_2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + /* @sic R5-153746: by usage of f_EUTRA_ActivateDedicatedEpsBearer_Speech step 15 is automatically included => function renamed to "Steps10_15" sic@ */ + var EPS_BearerIdentity v_EpsDedicatedBearerId := int2hex((hex2int(p_EpsDefBearerId2) + 1), 1); // the bearer id following the EPS default bearer + + f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_12(p_CellId, + p_EpsDefBearerId2, + p_NasInd, + p_StartIPfor2ndPDN, + p_PdnIndex); + f_EUTRA_508_EstablishIMSEmergencyCall_Steps13_15(p_CellId, + p_EpsDefBearerId2, + v_EpsDedicatedBearerId, + p_PdnIndex); /* @sic R5-153746: "Steps13_14" -> "Steps13_15" sic@ */ + } + + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.58 cl. 4.5A.4 Steps 10-12 + * @param p_CellId + * @param p_EpsDefBearerId2 + * @param p_NasInd + * @param p_StartIPfor2ndPDN (default value: true) + * @param p_PdnIndex (default: PDN_2) + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps10_12(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefBearerId2, + NAS_MSG_Indication_Type p_NasInd, + boolean p_StartIPfor2ndPDN := true, + PDN_Index_Type p_PdnIndex := PDN_2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + var ProcedureTransactionIdentifier v_PTId_UE; + var template (omit) ProtocolConfigOptions v_Pco; // @sic R5s100761 sic@ + var PDN_Address v_PDN_Address2; + var NAS_MSG_Indication_Type v_NasInd; + var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; + var octetstring v_APN_Value := f_DomainName_Encode("sos"); // @sic R5-151104 sic@ + var DRB_Identity v_DRB_Id; + + v_NasInd := p_NasInd; + v_PDNConnReq := v_NasInd.Pdu.Msg.pDN_CONNECTIVITY_REQUEST; + v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; + v_Pco := v_PDNConnReq.protocolConfigurationOptions; + + // Change from DRB1 to DRB2 to handle U Plane data + if (p_StartIPfor2ndPDN == true) { + v_DRB_Id := f_EUTRA_EpsBearerAssociatedDRB(p_EpsDefBearerId2); // @sic R5s141286 change 3 sic@ + f_EUTRA_StartIPfor2ndPDN(p_CellId, p_PdnIndex, v_DRB_Id); /* @sic R5s110449, R5-113734 change 8, R5-115673 sic@ + * NOTE: there shall be no IMS behaviour in parallel at PDN1 (see IMS test case 19.3.3) as start of UDP or ICMP servers requires CNFs + * (e.g. in fl_UDP_Bind or fl_ICMPv6_Bind); to change this at the IP PTC would cause side effects regardinf handling of the confirmations + * (even when we don't wait for the confirmation the confirmation will come at some point in time) */ + } + + // Step 10 and 11. The SS transmits an RRCConnectionReconfiguration message including + // the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message to establish the + // default EPS bearer context. + v_PDN_Address2 := f_EUTRA_GetPDNAddress(f_CheckPCOforIPallocationViaNas (v_Pco), p_PdnIndex); // @sic R5s110011 R5-120234 sic@ + f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(p_CellId, + p_EpsDefBearerId2, // Default bearer ID to additional PDN + v_PTId_UE, // use value as defined by the UE + cs_AccessPointName(v_APN_Value), + v_PDN_Address2, + f_GetDefaultProtocolConfigOptions(v_Pco, p_PdnIndex)); // @sic R5s130561 sic@ + + // Step 12 The UE transmits an ULInformationTransfer message including the ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message + SRB.receive(car_SRB2_NasPdu_IND(p_CellId, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActivateDefEpsBearerContextAccept(p_EpsDefBearerId2)))); + + // EXCEPTION: (IP address allocation), steps 1 - 4 of annex C.20 and steps 1 - 5 of annex C.22 should be performed in parallel + + } + + /* + * @desc Establishment of an IMS Emergency Call, Normal Service, according to 36.508 cl. 4.5A.4 Steps 13-14 + * @param p_CellId + * @param p_EpsDefBearerId2 + * @param p_EpsDedicatedBearerId + * @param p_PdnIndex (default: PDN_2) + * @status APPROVED (IMS, IMS_IRAT, LTE) + */ + function f_EUTRA_508_EstablishIMSEmergencyCall_Steps13_15(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefBearerId2, + EPS_BearerIdentity p_EpsDedicatedBearerId, + PDN_Index_Type p_PdnIndex := PDN_2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + /* @sic R5-153746: by usage of f_EUTRA_ActivateDedicatedEpsBearer_Speech step 15 is automatically included => function renamed to "Steps13_15" sic@ */ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(p_CellId, p_EpsDefBearerId2, p_EpsDedicatedBearerId, p_PdnIndex); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + } + + //---------------------------------------------------------------------------- + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 + * @param p_CellId + * @param p_NumToDial + * @param p_Type + * @param p_ForcedAttach (default value: NORMAL) + * @param p_StepNo (default value: "") Set to the verdict step no if required after the RRC Connection Establishment + * @param p_Authenticate (default value: true) perform authentication + * @status APPROVED (IMS_IRAT, LTE) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService(EUTRA_CellId_Type p_CellId, + charstring p_NumToDial, + IDLEUPDATED_Type p_Type, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + charstring p_StepNo := "", + boolean p_Authenticate := true) runs on EUTRA_PTC + { + f_UT_RequestIMSEmergencyCall (UT, p_NumToDial); + + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_19(p_CellId, + p_Type, + p_ForcedAttach, + p_StepNo, + p_Authenticate); + } + + //---------------------------------------------------------------------------- + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 2-19 + * @param p_CellId + * @param p_Type + * @param p_ForcedAttach (default value: NORMAL) + * @param p_StepNo (default value: "") .. Set to the verdict step no if required after the RRC Connection Establishment + * @param p_Authenticate (default value: true) .. perform authentication + * @status APPROVED (IMS_IRAT, LTE) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_19(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_Type p_Type, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + charstring p_StepNo := "", + boolean p_Authenticate := true) runs on EUTRA_PTC + { + var NAS_MSG_Indication_Type v_NAS_Ind; + + v_NAS_Ind := f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_4(p_CellId, + p_Type, + p_ForcedAttach, + p_StepNo); + + f_EUTRA_508_IMSEmergencyCallLimitedService5a1_19(p_CellId, + v_NAS_Ind, + p_Authenticate); + } + + //---------------------------------------------------------------------------- + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 7-16 + * @param p_CellId + * @param p_NAS_Ind + * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_16(EUTRA_CellId_Type p_CellId, + NAS_MSG_Indication_Type p_NAS_Ind) runs on EUTRA_PTC + { + var NAS_MSG_Indication_Type v_NAS_Ind := p_NAS_Ind; + + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_15(p_CellId, + v_NAS_Ind); + + f_EUTRA_508_IMSEmergencyCallLimitedService_Step16(p_CellId); + } + + //---------------------------------------------------------------------------- + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 5a1-19 + * @param p_CellId + * @param p_NAS_Ind + * @param p_Authenticate (default value: true) perform authentication + * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService5a1_19(EUTRA_CellId_Type p_CellId, // @sic R5-134956r1 sic@ + NAS_MSG_Indication_Type p_NAS_Ind, + boolean p_Authenticate := true) runs on EUTRA_PTC + { + var NAS_MSG_Indication_Type v_NAS_Ind := p_NAS_Ind; + + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_5a2a2(p_CellId, // @sic R5-134956r1 sic@ + v_NAS_Ind, + p_Authenticate); + + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_16(p_CellId, + v_NAS_Ind); + + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps17_19(p_CellId); + } + + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 2-4 + * @param p_CellId + * @param p_Type + * @param p_ForcedAttach (default value: NORMAL) + * @param p_StepNo (default value: "") + * @return NAS_MSG_Indication_Type + * @status APPROVED (IMS_IRAT, LTE) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps2_4(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_Type p_Type, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + charstring p_StepNo := "") runs on EUTRA_PTC return NAS_MSG_Indication_Type + { + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var NAS_AttDetValue_Type v_AttachType := '110'B; + var B3_Type v_PDNType := f_GetPdnType(); + var NAS_MSG_Indication_Type v_NAS_Ind; + var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); //used to follow TTCN3 v411 standard @sic R5s110176 sic@ + var template (present) SecurityHeaderType v_AttReqSecurityHeader; + + if (p_Type == PREAMBLE) { + v_AttReqSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); + } else { + v_AttReqSecurityHeader := tsc_SHT_IntegrityProtected; + } + + // Receive RRC Connection Setup Complete with + v_NAS_Ind := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, + v_RRC_TI, + emergency, + cr_NAS_IndicationWithPiggybacking(v_AttReqSecurityHeader, + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), // @sic R5-103681 sic@ + cr_508_PDN_CONNECTIVITY_REQUEST('100'B, v_PDNType))); + + if (p_StepNo != "") { // @sic R5-115673 sic@ + f_EUTRA_PreliminaryPass (__FILE__, __LINE__, p_StepNo); + } + return v_NAS_Ind; + + } + + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 5a1-5a2a2 + * @param p_CellId + * @param p_NAS_Ind + * @param p_Authenticate (default value: true) + * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_5a2a2(EUTRA_CellId_Type p_CellId, // @sic R5-134956r1 sic@ + NAS_MSG_Indication_Type p_NAS_Ind, + boolean p_Authenticate := true) runs on EUTRA_PTC + { + var NAS_MSG_Indication_Type v_NAS_Ind; + var template (present) SecurityHeaderType v_ExpectedSecurityHeader; // @sic R5s090373 sic@ + var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); + var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(p_CellId); + var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId (v_GutiParams.PLMN_Identity); + var SRB_COMMON_IND v_ReceivedAsp; + var B32_128_Type v_ReceivedRES; + + v_NAS_Ind := p_NAS_Ind; + // Set UE network capabilities as sent by the UE to be used later (see TS 24.301 clause 5.4.3.3) + v_AuthParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability(v_NAS_Ind.Pdu.Msg.aTTACH_REQUEST); // @sic R5s100135 sic@ + f_EUTRA_Security_Set(v_AuthParams); + + if (v_NAS_Ind.SecurityProtection.Status == tsc_SHT_NoSecurityProtection) { + v_ExpectedSecurityHeader := tsc_SHT_NoSecurityProtection; + } else { + v_ExpectedSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); + } + + if (p_Authenticate) { + // Step 5-6: Authentication + // Evaluate Authentication parameters and generate new keys + v_AuthParams := f_EUTRA_Authentication_InitNAS(v_AuthParams, v_PLMN); + + SRB.send(cas_SRB_NasPdu_REQ(p_CellId, + tsc_SRB1, + cs_TimingInfo_Now, + cs_NAS_Request(tsc_SHT_NoSecurityProtection, cs_AUTHENTICATION_REQUEST(v_AuthParams.KSIasme, + v_AuthParams.AuthParams.RandValue, + v_AuthParams.AuthParams.AUTN)))); + // receive AUTHENTICATION RESPONSE: + alt { + [] SRB.receive(car_SRB_NasPdu_IND(p_CellId, + tsc_SRB1, + cr_NAS_Indication(v_ExpectedSecurityHeader, cr_AUTHENTICATION_RESPONSE))) -> value v_ReceivedAsp + { // @sic R5s130756 change 5 sic@ + v_ReceivedRES := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.aUTHENTICATION_RESPONSE.authenticationResponseParameter.res; + if (v_ReceivedRES != substr(v_AuthParams.AuthParams.XRES, 0, lengthof(v_ReceivedRES))) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication Failed"); + } + v_AuthParams.AuthParams.XRESLength := lengthof(v_ReceivedRES) / 8; + f_EUTRA_Security_Set(v_AuthParams); + } + [] SRB.receive(car_SRB_NasPdu_IND(p_CellId, + tsc_SRB1, + cr_NAS_Indication(?, (cr_AUTHENTICATION_FAIL_synch, cr_AUTHENTICATION_FAIL_mac)))) + { + v_AuthParams.NAS_Integrity.Algorithm := '000'B; // EIA0 + v_AuthParams.NAS_Ciphering.Algorithm := '000'B; // EEA0 + v_AuthParams.AS_Integrity.Algorithm := eia0_v920; + v_AuthParams.AS_Ciphering.Algorithm := eea0; + v_AuthParams.KSIasme := '000'B; + f_EUTRA_Security_Set(v_AuthParams); + } + } + } + else { + // Set NAS Key Identifier IE to "000" during attach procedure for emergency bearer + v_AuthParams.NAS_Integrity.Algorithm := '000'B; // EIA0 + v_AuthParams.NAS_Ciphering.Algorithm := '000'B; // EEA0 + v_AuthParams.AS_Integrity.Algorithm := eia0_v920; + v_AuthParams.AS_Ciphering.Algorithm := eea0; + v_AuthParams.KSIasme := '000'B; + f_EUTRA_Security_Set(v_AuthParams); + } + } + + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 7-15 + * @param p_CellId + * @param p_NAS_Ind + * @param p_ForcedAttach (default value: EPS_Only) + * @param p_T3412 (default value: cs_GprsTimer_v_deact) + * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_15(EUTRA_CellId_Type p_CellId, + NAS_MSG_Indication_Type p_NAS_Ind, + EUTRA_ATTACH_Type p_ForcedAttach := EPS_Only, // @sic R5-135069 sic@ + template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact) runs on EUTRA_PTC + { + var NAS_MSG_Indication_Type v_NAS_Ind; + var ProcedureTransactionIdentifier v_EPS_TI; + var NAS_UL_Message_Type v_PdnConnectivityRequest; + var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); + var NasCount_Type v_NasCountUL; + var AccessPointName v_APN; + var template (omit) ProtocolConfigOptions v_PcoFromUE; + var template (omit) ProtocolConfigOptions v_PcoToUE; + + v_NAS_Ind := p_NAS_Ind; + v_PdnConnectivityRequest := v_NAS_Ind.Pdu.PiggybackedPduList[0].Msg; + v_EPS_TI := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier; + + // Step 7-8: NAS Security + v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId, v_AuthParams); // NAS SECURITY COMMAND & COMPLETE + + // Step 9a1 & 2 - ESM information optionally transferred; @sic R5-110708 sic@ + v_APN := f_ESM_InitialRegistration_InitAPN (p_CellId, f_CheckEsmInfoTransferFlag(v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST), v_EPS_TI, emergencyPDN); // @sic R5s150227 sic@ + + // Step 10-11: RRC Security Mode procedures + v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasCountUL); // RRC SECURITY COMMAND & COMPLETE + f_EUTRA_Security_Set(v_AuthParams); //Saving security parameters + + // Step 12-13 UE Capability check + f_EUTRA_Capability (p_CellId, tsc_RRC_TI_Def); // This enquires for the eutra capability but does not check the contents of the message received + + // Step 14 - 15 Activate Def Bearer + v_PcoFromUE := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.protocolConfigurationOptions; // may be omit + v_PcoToUE := f_GetDefaultProtocolConfigOptions (v_PcoFromUE); // @sic R5-104703 sic@ + f_EUTRA_IdleUpdated_Step14_15(p_CellId, + p_ForcedAttach, + v_NAS_Ind.Pdu.Msg.aTTACH_REQUEST.addUpdateType, + v_EPS_TI, + f_CheckPCOforIPallocationViaNas (v_PcoFromUE), + v_PcoToUE, + v_APN, + -, + p_T3412, // @sic R5s130758 sic@ + -, + -, + -, + -, + -, + -, + emergencyPDN); // @sic R5s150510 sic@ + + // EXCEPTION: (IP address allocation), steps 1 - 5 of annex C.22 should be performed in parallel + } + + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 5a1_15 + * @param p_CellId + * @param p_NAS_Ind + * @param p_ForcedAttach (default value: NORMAL) + * @param p_Authenticate (default value: true) + * @param p_T3412 (default value: cs_GprsTimer_v_deact) + * @status APPROVED (LTE) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_15(EUTRA_CellId_Type p_CellId, // @sic R5-134956r1 sic@ + NAS_MSG_Indication_Type p_NAS_Ind, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + boolean p_Authenticate := true, + template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact) runs on EUTRA_PTC // @sic R5s130758 sic@ + { + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps5a1_5a2a2(p_CellId, p_NAS_Ind, p_Authenticate); + f_EUTRA_508_IMSEmergencyCallLimitedService_Steps7_15(p_CellId, p_NAS_Ind, p_ForcedAttach, p_T3412); // @sic R5s130758 sic@ + } + + + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 step 16 + * @param p_CellId + * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Step16(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + // Step 16 + f_EUTRA_NAS_AttachComplete(p_CellId, tsc_EpsDefaultBearerId, noDelay); // @sic R5s130756 change 7 sic@ + } + + /* + * @desc Establish an IMS Emergency Call in EUTRA in limited service + * see 36.508 4.5A.5 steps 17-19 + * @param p_CellId + * @status APPROVED (IMS_IRAT, LTE, LTE_IRAT) + */ + function f_EUTRA_508_IMSEmergencyCallLimitedService_Steps17_19(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + // Step 17 - 19 + f_EUTRA_ActivateDedicatedEpsBearer_Speech(p_CellId); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + } + + /* + * @desc send DL RRC PDU(s), receive corresponding UL RRC PDU(s) and check latency requirement given by p_N; + * there is one RRC procedure (8.2.1.5) or two (8.2.1.6); in the latter case there are 2 ASP to be sent (having the same timing info) and 2 ASP to be received + * HARQ retransmisions are compensated for the DL but will cause inconc for UL. + * @param p_CellId + * @param p_SRB_COMMON_REQ_1 .. ASP to be sent containing valid timing information and DL RRC PDU + * @param p_SRB_COMMON_REQ_2 (default value: omit; only present if there is a second parallel RRC procedure as in 8.2.1.6) + * @param p_SRB_COMMON_IND_1 .. ASP with expected UL RRC PDU and optionally NAS PDU + * @param p_SRB_COMMON_IND_2 (default value: omit; only present if there is a second parallel RRC procedure as in 8.2.1.6) + * @param p_IsFDD + * @param p_N .. N acc. to e.g. 36.523-1 cl. 8.2.1.6.2; N = 10, 15, 20 i.e. multiple of 5 + * @param p_TestcaseStep + * @param p_UE_Cat .. highest (!) UE category + * @param p_BigULGrant (default value: false) + * @return SRB_COMMON_IND .. latest IND-ASP + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_RRC_Procedure_Latency(EUTRA_CellId_Type p_CellId, + template (value) SRB_COMMON_REQ p_SRB_COMMON_REQ_1, + template (omit) SRB_COMMON_REQ p_SRB_COMMON_REQ_2 := omit, + template (present) SRB_COMMON_IND p_SRB_COMMON_IND_1, + template SRB_COMMON_IND p_SRB_COMMON_IND_2 := omit, + boolean p_IsFDD, + integer p_N, + charstring p_TestcaseStep, + integer p_UE_Cat, + //@sic R5-153973 to be set to true for UE capability sic@ + boolean p_BigULGrant := false) runs on EUTRA_PTC return SRB_COMMON_IND + { //@sic R5-152105 sic@ @sic R5s150734 R5-153973 sic@ + var integer v_DL_RetransmissionCnt := 0; + var SYSTEM_IND v_SYSTEM_IND; + var SRB_COMMON_IND v_SRB_COMMON_IND; + var boolean v_T1Flag := false; + var boolean v_T3Flag := false; + var boolean v_T4Flag := (not isvalue(p_SRB_COMMON_REQ_2)); // we only check for a second UL PDU when there is a second DL PDU + var integer v_NoOfGrants := 5; + var integer v_GrantCycle; + var integer v_DelayGrantToData; + var SubFrameTiming_Type v_T0; // Sending of DL RRC PDU(s) + var SubFrameTiming_Type v_T1; // HARQ ACK for DL RRC PDU(s) + var SubFrameTiming_Type v_T2; // First UL grant + var SubFrameTiming_Type v_T3; // First UL RRC PDU received + var SubFrameTiming_Type v_T4; // Second UL RRC PDU received + var SubFrameTiming_Type v_T5; // Last UL grant + var SubFrameTiming_Type v_Tnow; + var TimingInfo_Type v_TimingInfo; + var integer v_UlGrantOffset; //@sic R5-144678 R5s141213 sic@ + var integer v_I_MCS:=0; // Modulation and Coding Scheme Index @sic R5s150734 sic@ + var integer v_N_PRB:=1; // PRBS @sic R5s150734 sic@ + + timer t_Timer; + + if (p_IsFDD) { + v_GrantCycle := 8; // HARQ RTT = 8 + v_DelayGrantToData := 5; // UL data is always sent 4 + 1 TTIs after the corresponding grant @sic R5-144678 sic@ + v_UlGrantOffset := 1; //@sic R5-144678 1 TTI added due toR5-144678 sic@ + } else { + v_GrantCycle := 10; // HARQ RTT = 10 for SN = 6 + v_DelayGrantToData := 8; // UL data is sent 4 + 3 + 1 TTIs after the corresponding grant @sic R5-144678 sic@ + v_UlGrantOffset := 2; /* @sic R5-144678 R5s141213 1 TTI added due toR5-144678, but that results in sub frame =5 not suitable for grant in TDD config 1, hence 1 more sub frame added to result in SN 6 sic@ */ + } + + //Get timing reference for calculating expected HARQ ACK i.e. when the performance measurement start + v_TimingInfo := valueof(p_SRB_COMMON_REQ_1.Common.TimingInfo); + v_T0 := v_TimingInfo.SubFrame; /* T0: DL PDU is sent the first time; subframe number shall be 4 + * => possible retransmissions are at + * T0 + 8, T0 + 16, T0 + 24, T0 + 32 for FDD + * T0 + 10, T0 + 20, T0 + 30, T0 + 40 for TDD */ + + v_T2 := f_EUTRA_TimingInfoAdd(v_T0, p_N + v_UlGrantOffset); /* T2: first UL grant is assigned; sub-sequent UL grants are to cope with DL retransmissions + @sic R5-144678 R5s141213 sic@ */ + + f_SS_ConfigUL_HARQ_IndMode(p_CellId, tsc_L1Mac_IndicationMode_Enable, v_TimingInfo); /* enable indication of HARQ ack/nack + @sic R5s120024: scheduled configuration sic@ */ + //@sic R5s120769 sic@ + SRB.send(p_SRB_COMMON_REQ_1); /* send (first) DL PDU at T0 */ + if (isvalue(p_SRB_COMMON_REQ_2)) { + SRB.send(p_SRB_COMMON_REQ_2); /* send second DL PDU at T0 */ + } + + v_T5 := f_EUTRA_TimingInfoAdd(v_T0, v_GrantCycle * (v_NoOfGrants - 1)); /* T5: last UL grant is sent out; @sic R5s130951 sic@ */ + v_Tnow := f_EUTRA_GetCurrentTiming(p_CellId); + + select (p_UE_Cat) { // Table 7.1.7.1.1.3.2-1: Maximum TBsize for different UE categories @sic R5s150734 sic@ + //@sic R5-151413 sic@ + case (0) { // MAX TB size 1000 64QAM Not supported + v_I_MCS := 4 ; // Itbs = 4 + v_N_PRB := 14; // results in TB size of 1000 + } + case (1) { // MAX TB size 5160 64QAM Not supported + v_I_MCS := 15; // Itbs = 14 + v_N_PRB := 18; // results in TB size of 5160 + } + + case else { + if (p_BigULGrant) //@sic R5-153973 sic@ + { + v_I_MCS := 20; //ITbs=19, 16 QAM modulation + v_N_PRB := f_ConvertUL_BandwidthToInteger(f_EUTRA_CellInfo_GetUL_ChBandwidth(p_CellId)); + if(p_UE_Cat ==2 and v_N_PRB >50) // the MAX UL TBsize supported by Cat 2 is 25456 + { + v_N_PRB := 58; //truncate N_PRB allocated to result in TBsize of 25456 + } + + } else //Normal grant + { + v_I_MCS := 20; + v_N_PRB := 25; + } + } + } + + f_EUTRA_ULGrantConfiguration_Common(p_CellId, + cs_TimingInfo(v_T2.SFN.Number, v_T2.Subframe.Number), + cs_DciInfo_CcchDcchDtchUL_Explicit(v_I_MCS, v_N_PRB), //@sic R5s120099r1 R5s130903 R5s140497 R5s150734 sic@ + cs_PUCCH_Synch_None, + cs_UL_GrantConfig_NoOfGrants(v_GrantCycle, v_NoOfGrants)); + + t_Timer.start (int2float(f_EUTRA_SubFrameTimingDuration(v_Tnow, v_T5) + 50) / 1000.0); /* 50ms added to be at the safe side */ + + alt { + [] SYSIND.receive (car_UL_HARQ_IND(p_CellId, ?, nack)) { /* HARQ NACK */ + v_DL_RetransmissionCnt := v_DL_RetransmissionCnt + 1; + repeat; + } + [] SYSIND.receive (car_HarqError_IND(p_CellId)) -> value v_SYSTEM_IND { /* HARQ error indication */ + if (ischosen(v_SYSTEM_IND.Indication.HarqError.UL)) { + f_SetVerdictInconc(__FILE__, __LINE__, p_TestcaseStep & "HARQ error for UL transmission in latency test"); + } else { + repeat; + } + } + [not v_T1Flag] SYSIND.receive (car_UL_HARQ_IND(p_CellId, ?, ack)) -> value v_SYSTEM_IND { /* HARQ ACK => T1 */ + v_T1 := v_SYSTEM_IND.Common.TimingInfo.SubFrame; + f_SS_ConfigUL_HARQ_IndMode(p_CellId, tsc_L1Mac_IndicationMode_Disable, -, tsc_NoCnfReq); /* disable indication of HARQ ack/nack; @sic R5s120201: no confirmation requested sic@ */ + v_T1Flag := true; + repeat; + } + [not v_T3Flag] SRB.receive(p_SRB_COMMON_IND_1) -> value v_SRB_COMMON_IND { /* First UL RRC PDU => T3 */ + v_T3 := v_SRB_COMMON_IND.Common.TimingInfo.SubFrame; + v_T3Flag := true; + repeat; // => wait for timeout to be sure that there are no UL grants pending anymore + } + [not v_T4Flag] SRB.receive(p_SRB_COMMON_IND_2) -> value v_SRB_COMMON_IND { /* Second UL RRC PDU => T4 */ + if (not v_T3Flag) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, p_TestcaseStep & "Incorrect order of UL PDUs"); + } + v_T4 := v_SRB_COMMON_IND.Common.TimingInfo.SubFrame; + v_T4Flag := true; + repeat; // => wait for timeout to be sure that there are no UL grants pending anymore + } + [] t_Timer.timeout { /* timeout => after T5 */ + // exit the alt + } + } + + if (not v_T1Flag) { + f_SetVerdictInconc(__FILE__, __LINE__, p_TestcaseStep & "no HARQ ACK for DL PDU"); + } + + if (not v_T3Flag) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, p_TestcaseStep & "no UL PDU"); + } + + if (not v_T4Flag) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, p_TestcaseStep & "no second UL PDU"); + } + + // Latency check: + if ((f_EUTRA_SubFrameTimingDuration(v_T1, v_T3) > p_N + v_DelayGrantToData) or /* check first RRC procedure regarding latency requirenments */ + (isvalue(p_SRB_COMMON_REQ_2) and (f_EUTRA_SubFrameTimingDuration(v_T1, v_T4) > p_N + v_DelayGrantToData))) { /* check second RRC procedure regarding latency requirenments */ + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, p_TestcaseStep); + } else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, p_TestcaseStep); + } + + return v_SRB_COMMON_IND; + } + +} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn similarity index 58% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn index 6a3c5ed..dcc5fd3 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonProcedures_C2K.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-08-27 17:48:26 +0200 (Tue, 27 Aug 2013) $ -// $Rev: 9461 $ +// @version: IWD_15wk38 +// $Date: 2015-03-03 08:38:47 +0100 (Tue, 03 Mar 2015) $ +// $Rev: 13146 $ /******************************************************************************/ module EUTRA_CommonProcedures_C2K { @@ -23,7 +23,10 @@ module EUTRA_CommonProcedures_C2K { import from EUTRA_ConfigurationSteps all; import from CommonIratDefs all; // for C2k procedure import from EUTRA_ASP_EUTRA_CDMA2000Tunnelling all; - import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; + import from EPS_NAS_TypeDefs all; + import from EPS_NAS_Templates all; + //============================================================================ /* @@ -34,7 +37,6 @@ module EUTRA_CommonProcedures_C2K { * @param p_State * @param p_Is_1XRTT (default value: false) * @param p_RAND_CDMA2000 (default value: omit) - * @param p_ForcedAttach (default value: NORMAL) * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ * @status APPROVED (LTE_IRAT) */ @@ -42,11 +44,18 @@ module EUTRA_CommonProcedures_C2K { IDLEUPDATED_STATE_Type p_State, boolean p_Is_1XRTT := false, template (omit) RAND_CDMA2000 p_RAND_CDMA2000 := omit, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + //@sic R5-145971 sic@ + //EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC { /* @sic R5s130347: local GuardTimer sic@ */ var NAS_MSG_Indication_Type v_NAS_Ind; + //@sic R5-145971 sic@ + var EUTRA_ATTACH_Type v_ForcedAttach := NORMAL ; + var template (omit) EMM_Cause v_EMMCause := omit; + var boolean v_SecondPdnToBeReleased := false; + var default v_Procedure_4_5A_16; timer t_GuardTimer := tsc_GuardTimePreamble; + t_GuardTimer.start; @@ -59,23 +68,56 @@ module EUTRA_CommonProcedures_C2K { // Now continue with the procedure v_NAS_Ind := f_EUTRA_IdleUpdated_Step1_4(p_CellId, PREAMBLE, NORMAL); // @sic R5s110176 sic@ + if (p_Is_1XRTT) { //@sic R5-145971 sic@ + v_ForcedAttach := EPS_Only; // Force attach for EPS only + if (v_NAS_Ind.Pdu.Msg.aTTACH_REQUEST.epsAttachType.typeValue == tsc_EAttachType_Combined) { + v_EMMCause :=cs_EMM_Cause_tv(tsc_Cause_CSDomainNotAvailable); + } + } + //Send co-ordination message for the Preparing C2K SS for pre-registration f_IRAT_SendCoOrd(CDMA2000, cms_IRAT_Trigger); f_EUTRA_IdleUpdated_Step5_15(p_CellId, p_State, - p_ForcedAttach, + v_ForcedAttach, v_NAS_Ind, - p_PDN_TypeToBeUsed); + p_PDN_TypeToBeUsed, + -, + -, + -, + -, + -, + -, + v_EMMCause); + // steps 16 f_EUTRA_NAS_AttachComplete(p_CellId, tsc_EpsDefaultBearerId, noDelay); //@sic R5-121276 R5s120891 sic@ + + if (tsc_EUTRA_Registration_MultiplePDN) { /* @sic R5-145787, R5s150001, R5-150127 - Implementation for C2K sic@ */ + v_Procedure_4_5A_16 := activate(a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_DefaultHandler(p_CellId)); + } + // steps 16A-16B if (p_Is_1XRTT) { f_CSFBParametersProc_1xRTT(p_CellId, p_RAND_CDMA2000); } - // steps 17-end of preregistration + // steps 17-39b[HRPD] or 18 [1xRTT] f_CDMA2000_PreRegistration (p_CellId); - f_EUTRA_DelayForUserPlaneSignalling(); //@sic R5s120891 sic@ + + if (tsc_EUTRA_Registration_MultiplePDN) { /* @sic R5-145787, R5s150001 - Implementation for C2K sic@ */ + deactivate(v_Procedure_4_5A_16); + while (f_EUTRA_4_5A_16_State_Get() != finished) { /* 2nd PDN connectivity has not been (fully) established yet */ + a_EUTRA_IdleUpdated_ConnectToAdditionalPDN(p_CellId); + } + v_SecondPdnToBeReleased := true; + } + + f_EUTRA_DelayForUserPlaneSignalling(); //@sic R5s120891 sic@ + // steps 41[HRPD] or 19 [1xRTT] f_EUTRA_RRC_ConnectionRelease(p_CellId); + if (v_SecondPdnToBeReleased) { /* @sic R5-145787, R5s150001 - Implementation for C2K sic@ */ + f_EUTRA_IdleUpdated_ReleaseSecondPDN(p_CellId); + } t_GuardTimer.stop; } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonSRVCC.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonSRVCC.ttcn similarity index 55% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonSRVCC.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonSRVCC.ttcn index ed379f5..bbef860 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_CommonSRVCC.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_CommonSRVCC.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module EUTRA_CommonSRVCC { @@ -14,48 +14,15 @@ module EUTRA_CommonSRVCC { import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_Component all; import from EUTRA_CommonDefs all; - import from EUTRA_CommonProcedures all; - import from EPS_NAS_Constants all; - import from EPS_NAS_Templates all; import from CommonDefs all; import from EUTRA_Measurement_Templates all; import from EUTRA_DRB_Templates all; import from IMS_PTC_CoordMsg all; - import from EUTRA_RRC_Templates all; - import from EUTRA_SRB_Templates all; - import from EUTRA_AspCommon_Templates all; - import from EPS_NAS_TypeDefs all; import from EUTRA_ConfigurationSteps all; import from EUTRA_RRCSteps all; import from EUTRA_ASP_TypeDefs all; import from EUTRA_SecuritySteps all; import from EUTRA_NASSteps all; - import from EUTRA_Timing all; - import from EUTRA_CellCfg_Templates all; - - template (value) PDCP_Config cds_PDCP_Config_DRB_UM_RoHC modifies cs_508_PDCP_Config_DRB_UM:= - { /* Default values according to 36.508 cl. 4.8.2.1.2.1 Table 4.8.2.1.2.1-1 + HARQ profiles */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ - headerCompression := { - rohc := { - maxCID := 15, - profiles := { - profile0x0001 := true, - profile0x0002 := true, - profile0x0003 := false, - profile0x0004 := false, - profile0x0006 := false, - profile0x0101 := false, - profile0x0102 := false, - profile0x0103 := false, - profile0x0104 := false - } - } - } - }; - - //@sic R5s140022 sic@ - template (value) RadioBearerList_Type cs_DrbConfigList_SRVCC_Def := {cs_OneDRB_ConfigAM(tsc_DRB1), cs_OneDRB_ConfigUM(tsc_DRB2, cds_PDCP_Config_DRB_UM_RoHC, -, true)}; /* @status APPROVED (LTE_A, LTE_IRAT) */ template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_SRVCC_FDD(RRC_TransactionIdentifier p_RRC_TI, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq1, @@ -110,60 +77,27 @@ module EUTRA_CommonSRVCC { cs_508_MeasGapConfig_GP1)); - template (present) RRCConnectionReestablishmentComplete_v8a0_IEs cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny := - { /* @status APPROVED (LTE_A) */ + template (present) RRCConnectionReestablishmentComplete_v8a0_IEs cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny := + { lateNonCriticalExtension := *, nonCriticalExtension := cr_RRCConnectionReestablishmentComplete_v1020_IEsAny ifpresent }; template (present) RRCConnectionReestablishmentComplete_v1020_IEs cr_RRCConnectionReestablishmentComplete_v1020_IEsAny := - { /* @status APPROVED (LTE_A) */ + { logMeasAvailable_r10 := *, nonCriticalExtension := cr_RRCConnectionReestablishmentComplete_v1130_IEsAny ifpresent }; template (present) RRCConnectionReestablishmentComplete_v1130_IEs cr_RRCConnectionReestablishmentComplete_v1130_IEsAny := - { /* @status APPROVED (LTE_A) */ + { connEstFailInfoAvailable_r11 := *, nonCriticalExtension := * }; - template (value) DRB_ToAddModList cs_DRB_ToAddMod_DEFAULT_UM_RoHC(DRB_Identity p_DRB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ - cs_508_DRB_ToAddMod_Common(p_DRB_Id, - cds_PDCP_Config_DRB_UM_RoHC, - cs_508_RLC_Config_DRB_UM, - cs_508_LogicalChannelConfig_DRB_UM) - }; - - - - //---------------------------------------------------------------------------- - /* - * @desc - * @param p_CellId - * @status APPROVED (LTE_A) - */ - function f_EUTRA_RbEst_NoPaging(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { - f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(p_CellId, - 0, - 0, - omit, - omit, - omit, - omit, - omit, - false, - -, - omit); - - } - - /* - * @desc Common function to extablish MO IMS speech call over LTE + * @desc Common function to establish MO IMS speech call over LTE * @param p_CellId * @status APPROVED (LTE_A) */ @@ -173,7 +107,7 @@ module EUTRA_CommonSRVCC { f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); //@siclog "Steps 1-8" siclog@ - f_EUTRA_RbEst_NoPaging(p_CellId); + f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(p_CellId); // @sic R5-154047 sic@ // Send trigger to IMS PTC // Steps 9 to 11 are executed in IMS PTC f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); @@ -181,21 +115,13 @@ module EUTRA_CommonSRVCC { } /* - * @desc Common function to extablish MT IMS speech call over LTE + * @desc Common function to establish MT IMS speech call over LTE * @param p_CellId * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_GenericIMS_MT_SpeechCall(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { - var ProcedureTransactionIdentifier v_EpsProcedureTransactionId := '00'O; - var template (value) RadioResourceConfigDedicated v_RadioResourceConfigDedicated; - var template (omit) DRX_Config v_DRX_Config := f_GetUeDrxConfig(DRX_S); // @sic R5s140618 change 1 sic@ - var SubFrameTiming_Type v_SubFrameTiming; - var template (value) MAC_MainConfig_Type v_MAC_MainConfig := cs_MAC_MainConfig_Explicit(cs_MAC_MainConfig_Common(-, v_DRX_Config)); // @sic R5s140618 change 1 sic@ - - v_RadioResourceConfigDedicated := cs_RadioResourceConfig_DRB_RECONFIG(cs_DRB_ToAddMod_DEFAULT_UM_RoHC(tsc_DRB2), - v_MAC_MainConfig); - /* @sic R5s140161 sic@ */ + var boolean v_IsSRVCC := true; //Steps 1-8 f_EUTRA_RbEst_Def(p_CellId); @@ -205,41 +131,9 @@ module EUTRA_CommonSRVCC { //Wait Trigger from IMS PTC f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); - // DRX Activation on SS side. - if (isvalue(v_DRX_Config)) { // @sic R5s140618 change 1 sic@ - f_EUTRA_SS_DrxCtrlConfig(p_CellId, cs_DrxCtrl_Config(valueof(v_DRX_Config))); /* configure DRX at the SS; @sic R5s100630 R5s120054 sic@ */ - } - v_SubFrameTiming := f_EUTRA_GetNextSendOccasion (p_CellId, 100 + 20); + f_EUTRA_ActivateDedicatedEpsBearer_Speech(p_CellId, -, -, -, v_IsSRVCC); /* @sic R5s141221 - Further changes by MCC10 sic@ */ - //Steps 13-15 - SRB.send(cas_SRB1_RrcNasPdu_REQ(eutra_Cell1, - cs_TimingInfo(v_SubFrameTiming.SFN.Number, v_SubFrameTiming.Subframe.Number), - cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, - omit, - omit, - v_RadioResourceConfigDedicated , - omit), - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq_SRVCC(tsc_EpsDedicatedBearerId, //@sic R5s140161 sic@ - v_EpsProcedureTransactionId, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // According to Context#4 in TS 36.508 - f_EUTRA_Get_508_TrafficFlowTemplate(4))))); // According to Context#4 in TS 36.508 - - //Step 2 - //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message? - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - - //Receive ActDedicatedEPSBearerCxtAccept - //@sic R5s130807 sic@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); - - - - // Send trigger to IMS PTC // Steps 16 to 26 are executed in IMS PTC f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); @@ -249,33 +143,31 @@ module EUTRA_CommonSRVCC { } /* - * @desc create cell and send out system information The UM bearer is configured for RoHC profiles + * @desc wrapper function for SRVCC: create cell and send out system information * @param p_CellId - * @param p_DiscardULDataUM (default value: DISCARD_UM_DATA) + * @param p_HandleULDataUM (default value: HANDLE_UM_DATA) * @param p_UseBigGrants (default value: USE_BIG_GRANTS) * @status APPROVED (LTE_A, LTE_IRAT) */ - function f_EUTRA_CellConfig_DefPlusUM_RoHC(EUTRA_CellId_Type p_CellId, - template (omit) EUTRA_DiscardUlDataUM_Type p_DiscardULDataUM := DISCARD_UM_DATA, - template (omit) EUTRA_UseBigGrants_Type p_UseBigGrants := USE_BIG_GRANTS) runs on EUTRA_PTC - { /* @sic R5s130681: optional parameter p_DiscardULDataUM sic@ */ + function f_EUTRA_CellConfig_SRVCC(EUTRA_CellId_Type p_CellId, + template (omit) EUTRA_HandleUlDataUM_Type p_HandleULDataUM := HANDLE_UM_DATA, + template (omit) EUTRA_UseBigGrants_Type p_UseBigGrants := USE_BIG_GRANTS) runs on EUTRA_PTC + { /* @sic R5s130681: optional parameter p_HandleULDataUM sic@ */ /* @sic R5s140160, R5w140109: optional parameter p_DiscardULDataUM sic@ */ - f_EUTRA_CellConfig_DefPlusUM(p_CellId, cds_PDCP_Config_DRB_UM_RoHC, p_DiscardULDataUM, p_UseBigGrants); + /* @sic R5-145773: no ROHC for SRVCC sic@ */ + f_EUTRA_CellConfig_Def(p_CellId, p_HandleULDataUM, p_UseBigGrants); /* @sic R5s150338 - dynamic DRB configuration: f_EUTRA_CellConfig_DefPlusUM -> f_EUTRA_CellConfig_Def sic@ */ } /* - * @desc Stop Default UL Grant transmission, stop transmission of TA commands and reset of SRB[0..2] and DRB's with maintain of PDCP Count + * @desc Stop Default UL Grant transmission, stop transmission of TA commands and reset of SRB[0..2] and DRBs with maintain of PDCP Count * @param p_CellId - * @param p_DrbConfigList (default value: cs_DrbConfigList_SRVCC_Def) - * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @param p_DelayBeforeResetInMilliSec (default value: 0) + * @param p_DelayBeforeResetInMilliSec (default value: 100) * @status APPROVED (LTE_A, LTE_IRAT) */ - function f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian(EUTRA_CellId_Type p_CellId, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_SRVCC_Def, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - integer p_DelayBeforeResetInMilliSec := 0) runs on EUTRA_PTC + function f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(EUTRA_CellId_Type p_CellId, + integer p_DelayBeforeResetInMilliSec := 100) runs on EUTRA_PTC { + var template (value) RadioBearerList_Type v_DrbConfigList := { cs_OneDRB_ConfigAM(tsc_DRB1), f_EUTRA_SS_GetDrbConfigUM(tsc_DRB2) }; var PdcpCountInfoList_Type v_PdcpCountInfoListAmDrbs; // SNs for the AM DRBs only var DRB_IdentityList_AllAndAMonly_Type v_DRB_IdentityList; var DRB_IdentityList_Type v_DRB_IdentityUM_List := {}; @@ -286,35 +178,28 @@ module EUTRA_CommonSRVCC { var integer j := 0; // Get list of ALL DRB's and AM DRB's - v_DRB_IdentityList := f_EUTRA_DRB_IdentityList(p_DrbConfigList); + v_DRB_IdentityList := f_EUTRA_DRB_IdentityList(v_DrbConfigList); v_PdcpCountInfoListAmDrbs := f_EUTRA_SS_PdcpCount_GetAmDrbs(p_CellId, v_DRB_IdentityList.AMonly); //Generate UM DRB list and AM RB List - for (k:=0; k < lengthof(p_DrbConfigList); k:= k+1) { - v_DRB_Identity := valueof(p_DrbConfigList[k].Id.Drb); - if (ischosen(p_DrbConfigList[k].Config.AddOrReconfigure.Rlc.Rb.UM )) { + for (k:=0; k < lengthof(v_DrbConfigList); k:= k+1) { + v_DRB_Identity := valueof(v_DrbConfigList[k].Id.Drb); + if (ischosen(v_DrbConfigList[k].Config.AddOrReconfigure.Rlc.Rb.UM )) { v_DRB_IdentityUM_List[i] := v_DRB_Identity; i := i+1; } - else if (ischosen(p_DrbConfigList[k].Config.AddOrReconfigure.Rlc.Rb.AM)) { - v_RBList_AM[j] := valueof(p_DrbConfigList[k]); + else if (ischosen(v_DrbConfigList[k].Config.AddOrReconfigure.Rlc.Rb.AM)) { + v_RBList_AM[j] := valueof(v_DrbConfigList[k]); j := j+1; } } - - if (p_DelayBeforeResetInMilliSec > 0) { - f_Delay (int2float(p_DelayBeforeResetInMilliSec) / 1000.0); - } - f_EUTRA_StopULGrantTransmission(p_CellId, cs_TimingInfo_Now); - // Release all SRB's and DRB's - f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, -, v_DRB_IdentityList.All); - // Configure all SRB's and AM DRB's - f_EUTRA_SS_SRBs_DRBs_Config(p_CellId, -, v_RBList_AM ); + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(p_CellId, v_RBList_AM, p_DelayBeforeResetInMilliSec); // @sic R5s150402 sic@ + // Configure all UM DRB's for (k:=0; k < lengthof(v_DRB_IdentityUM_List); k:= k+1) { - f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(p_CellId, cs_OneDRB_ConfigUM(v_DRB_IdentityUM_List[k], cds_PDCP_Config_DRB_UM_RoHC, -, true)); + f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(p_CellId, f_EUTRA_SS_GetDrbConfigUM(v_DRB_IdentityUM_List[k])); /* @sic R5-145773: no ROHC for SRVCC (cds_PDCP_Config_DRB_UM_RoHC -> cs_508_PDCP_Config_DRB_UM) sic@ */ } - f_EUTRA_SS_PdcpCount_Set(p_CellId, v_PdcpCountInfoListAmDrbs, p_TimingInfo); + f_EUTRA_SS_PdcpCount_Set(p_CellId, v_PdcpCountInfoListAmDrbs); } } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Component.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Component.ttcn similarity index 81% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Component.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Component.ttcn index f8eb44c..721cb7d 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Component.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module EUTRA_Component { @@ -28,7 +28,6 @@ module EUTRA_Component { import from EUTRA_SecurityFunctions all; import from NAS_CommonTypeDefs all; import from EUTRA_SRB_Templates all; - import from EUTRA_Parameters all; import from EUTRA_AuxiliaryFunctions all; //============================================================================ @@ -114,7 +113,7 @@ module EUTRA_Component { AntennaInfo_Type AntennaInfo, // Parameters for antenna info @sic R5-100786 sic@ DrxCtrl_Type DrxCtrl, // @sic R5-104796 DRX support sic@ MeasGapCtrl_Type MeasGapCtrl, // @sic R5s110743 sic@ - boolean NoUL_Frequency // Set to TRUE when no UL frequency is applied in the band (e.g. band 29) @sic R5-134786 sic@ + boolean NoUL_Frequency // Set to TRUE when no UL frequency is applied in the band (e.g. band 29 or 32) @sic R5-134786 sic@ }; type record length(tsc_EUTRA_MaxNumberOfCells) of EUTRA_CellInfo_Type EUTRA_CellInfoList_Type; /* array of Cells; @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ @@ -127,14 +126,23 @@ module EUTRA_Component { @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ StandardDefault }; - + + type enumerated EUTRA_4_5A_16_State_Type { /* state of 36.508 procedure 4.5A.16; needed e.g. to connect to 2nd PDN for C2K test cases + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + step1_2, + step3, + step4, + finished + }; + type record EUTRA_MobileInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ NAS_Tmsi Tmsi, NAS_P_Tmsi P_Tmsi, UE_EUTRA_Capability EUTRA_Capability, B3_Type AssignedPdnType, /* tsc_PdnType_IPv4v6, tsc_PdnType_IPv4v6, tsc_PdnType_IPv4v6 as assigned to the UE; @sic R5-112600 sic@ */ - EmergencyNumList LocalEmergencyNumberList /* emergency number list sent by UE in the ATTACH in the preamble @sic R5-125276 sic@ */ + EUTRA_FDD_TDD_Mode_Type FDD_TDD_Info optional, // Contain the FDD/TDD mode of the EUTRA cell the UE is currently in @sic 5s150293 sic@ + EmergencyNumList LocalEmergencyNumberList optional /* emergency number list sent by UE in the ATTACH in the preamble @sic R5-125276 sic@ @sic R5s141315 sic@ */ }; type enumerated EUTRA_VerdictCtrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ @@ -155,14 +163,23 @@ module EUTRA_Component { false: => inconc is assigned instead of fail */ EUTRA_VerdictCtrl_Type VerdictCtrl, /* Control the assignment of FAIL/INCOCN in default behaviour */ EUTRA_HarqErrorHandling_Type HarqErrorHandling, /* @sic R5-106675 change 1 sic@ */ - EUTRA_UseBigGrants_Type GrantType /* @sic R5s140676 Change 2 sic@ */ + EUTRA_UseBigGrants_Type GrantType, /* @sic R5s140676 Change 2 sic@ */ + EUTRA_HandleUlDataUM_Type HandleUlDataUM optional, /* @sic R5s150338 - dynamic DRB configuration sic@ */ + EUTRA_4_5A_16_State_Type EUTRA_4_5A_16_State, /* @sic R5-145787, R5s150001 - Implementation for C2K sic@ */ + boolean LoopbackABIsActivated /* @sic R5-153971 sic@ */ + }; + + type record EUTRA_ReceivedMsg_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + //@sic R5s141018 sic@ + SRB_COMMON_IND SRBmessage optional }; type record EUTRA_Global_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ EUTRA_Ctrl_Type Ctrl, EUTRA_SecurityParams_Type Security, EUTRA_CellInfoList_Type CellArray, - EUTRA_MobileInfo_Type MobileInfo + EUTRA_MobileInfo_Type MobileInfo, + EUTRA_ReceivedMsg_Type ReceivedMsg optional //@sic R5s141018 sic@ }; type component EUTRA_PTC { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ @@ -231,17 +248,36 @@ module EUTRA_Component { { var IPCAN_RAN_Type v_RanType; var template (omit) integer v_AuthResLength; - var AccessStratumRelease v_AccessStratumRelease := vc_EUTRA_Global.MobileInfo.EUTRA_Capability.accessStratumRelease; - var template (omit) integer v_UE_Release := f_ConvertAccessStratumReleaseToInteger(v_AccessStratumRelease); + var template (omit) integer v_UE_Release := omit; + + if (isvalue(vc_EUTRA_Global.MobileInfo.EUTRA_Capability.accessStratumRelease)) { /* @sic R5s150159 change 3 sic@ */ + v_UE_Release := f_ConvertAccessStratumReleaseToInteger(vc_EUTRA_Global.MobileInfo.EUTRA_Capability.accessStratumRelease); + } - if (px_ePrimaryFrequencyBand < 33) { v_RanType := EUTRA_FDD; } - else { v_RanType := EUTRA_TDD; } + v_RanType := f_EUTRA_IMS_GetRanType(); // @sic R5-151776 sic@ v_AuthResLength := vc_EUTRA_Global.Security.AuthParams.XRESLength; return cs_IPCAN_INFO(v_RanType, v_UE_Release, v_AuthResLength); } + /* + * @desc get back IPCAN RAN Type for the IMS PTC + * @return IPCAN_RAN_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IMS_GetRanType() runs on EUTRA_PTC return IPCAN_RAN_Type + { + var IPCAN_RAN_Type v_RanType; + //@sic R5s150293 sic@ + if (vc_EUTRA_Global.MobileInfo.FDD_TDD_Info == FDD) { + v_RanType := EUTRA_FDD; + } else if (vc_EUTRA_Global.MobileInfo.FDD_TDD_Info == TDD) { + v_RanType := EUTRA_TDD; + } + return v_RanType; + } + /* * @desc Handling of async. queries sent from the IMS PTC * @param p_ImsCoorPort @@ -442,7 +478,7 @@ module EUTRA_Component { /* * @desc set which grant type to be used * @param p_GrantType - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_GrantType_Set(EUTRA_UseBigGrants_Type p_GrantType) runs on EUTRA_PTC { @@ -451,7 +487,7 @@ module EUTRA_Component { /* * @desc get current grant type - * @param p_GrantType + * @return EUTRA_UseBigGrants_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_GrantType_Get() runs on EUTRA_PTC return EUTRA_UseBigGrants_Type @@ -459,6 +495,69 @@ module EUTRA_Component { return vc_EUTRA_Global.Ctrl.GrantType; } + + /* + * @desc set HandleUlDataUM mode + * @param p_HandleUlDataUM (default value: HANDLE_UM_DATA) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_HandleUlDataUM_Set(EUTRA_HandleUlDataUM_Type p_HandleUlDataUM := HANDLE_UM_DATA) runs on EUTRA_PTC + { + vc_EUTRA_Global.Ctrl.HandleUlDataUM := p_HandleUlDataUM; + } + + /* + * @desc get GlobalCtrl + * @return EUTRA_Ctrl_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_GlobalCtrl_Get() runs on EUTRA_PTC return EUTRA_Ctrl_Type + { + return vc_EUTRA_Global.Ctrl; + } + + /* + * @desc get state information of 36.508 procedure 4.5A.16 in case of C2K + * (i.e. establishment of 2nd PDN connection bein in parallel to C2K pre-registration) + * @return EUTRA_4_5A_16_State_Type + * @status APPROVED (LTE_IRAT) + */ + function f_EUTRA_4_5A_16_State_Get() runs on EUTRA_PTC return EUTRA_4_5A_16_State_Type + { + var EUTRA_4_5A_16_State_Type v_State := vc_EUTRA_Global.Ctrl.EUTRA_4_5A_16_State; + return v_State; + } + + /* + * @desc get state information of 36.508 procedure 4.5A.16 in case of C2K + * @param p_State + * @status APPROVED (LTE_IRAT) + */ + function f_EUTRA_4_5A_16_State_Set(EUTRA_4_5A_16_State_Type p_State) runs on EUTRA_PTC + { + vc_EUTRA_Global.Ctrl.EUTRA_4_5A_16_State := p_State; + } + + /* + * @desc Flag loopback mode being activated + * @param p_LoopbackABIsActivated + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_LoopbackABIsActivated_Set(boolean p_LoopbackABIsActivated) runs on EUTRA_PTC + { + vc_EUTRA_Global.Ctrl.LoopbackABIsActivated := p_LoopbackABIsActivated; + } + + /* + * @desc returns true when loopback mode has been activated + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_LoopbackABIsActivated_Get() runs on EUTRA_PTC return boolean + { + return vc_EUTRA_Global.Ctrl.LoopbackABIsActivated; + } + /* @@ -514,4 +613,36 @@ module EUTRA_Component { f_EUTRA_SetVerdictFailOrInconc(p_FileName, p_LineNo, p_Msg); } } + + /* + * @desc Set the received SRB message in the global variable + * @param p_SRBmessage (default value: omit) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_MsgReceivedInDefault_SetSRB(template (omit) SRB_COMMON_IND p_SRBmessage := omit) runs on EUTRA_PTC + { + if (isvalue(p_SRBmessage)) { + vc_EUTRA_Global.ReceivedMsg.SRBmessage := valueof(p_SRBmessage); + } else { + vc_EUTRA_Global.ReceivedMsg.SRBmessage := omit; + } + } + + /* + * @desc Retreive and reset the received SRB message + * @return template (omit) SRB_COMMON_IND + * @status APPROVED (LTE_A) + */ + function f_EUTRA_MsgReceivedInDefault_Retreive() runs on EUTRA_PTC return template (omit) SRB_COMMON_IND + { + var template (omit) SRB_COMMON_IND v_SRB_ReceivedMessage := omit; + + if (ispresent(vc_EUTRA_Global.ReceivedMsg.SRBmessage)) { + v_SRB_ReceivedMessage := vc_EUTRA_Global.ReceivedMsg.SRBmessage; + } + f_EUTRA_MsgReceivedInDefault_SetSRB(); // Reset the recevied SRB message from the global variable + + return v_SRB_ReceivedMessage; + } + } // End of module diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn index 8aa6a82..410b03b 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_ConfigurationSteps.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module EUTRA_ConfigurationSteps { @@ -23,6 +23,7 @@ module EUTRA_ConfigurationSteps { import from EUTRA_RRC_Templates all; import from EUTRA_AspCommon_Templates all; import from TestcaseProperties all; + import from Parameters all; //@sic R5w150203r1 sic@ /* * @desc return true when for the current test case DL CCCH messages shall not be sent with the preconfigured RACH procedure but shall be sent autonomously from TTCN @@ -65,7 +66,7 @@ module EUTRA_ConfigurationSteps { * @param p_CellId * @param p_RadioBearer * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(EUTRA_CellId_Type p_CellId, template (value) RadioBearer_Type p_RadioBearer, @@ -84,7 +85,7 @@ module EUTRA_ConfigurationSteps { function f_EUTRA_SS_CommonCellConfig(EUTRA_CellId_Type p_CellId, template (value) SYSTEM_CTRL_REQ p_SYSTEM_CTRL_REQ) runs on EUTRA_PTC { /* @sic R5-104796 DRX support sic@ - Note: function updates DRX parameters in cell configuration; in the future the TA period may need to be taken into account too (FFS) */ + Note: function updates DRX parameters in cell configuration; in the future the TA period may need to be taken into account too */ var CellConfigInfo_Type v_CellConfigInfo; var DrxCtrl_Type v_DrxCtrl; var MeasGapCtrl_Type v_MeasGapCtrl; @@ -132,6 +133,9 @@ module EUTRA_ConfigurationSteps { if (ischosen(p_NewDrxCtrl.None) and ischosen(v_OldDrxCtrl.None)) { return; } + if (match(v_OldDrxCtrl.Config, p_NewDrxCtrl.Config)) { // @sic R5s150818: no FatalError when DRX gets re-configured with the same setting (e.g. in 19.1.5: normal call on hold + emergeny call sic@ */ + return; + } if (not ischosen(p_NewDrxCtrl.None) and not ischosen(v_OldDrxCtrl.None)) { FatalError(__FILE__, __LINE__, "Reconfiguration of DRX - not supported (yet)"); } @@ -181,6 +185,21 @@ module EUTRA_ConfigurationSteps { } } + /* + * @desc UE Cat info download to SS + * @param p_CellId + * @param p_SYSTEM_CTRL_REQ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_SS_CommonUECatInfoConfig(EUTRA_CellId_Type p_CellId, + template (value) SYSTEM_CTRL_REQ p_SYSTEM_CTRL_REQ) runs on EUTRA_PTC + { + SYS.send(p_SYSTEM_CTRL_REQ); + if (valueof(p_SYSTEM_CTRL_REQ.Common.ControlInfo.CnfFlag)) { + SYS.receive(car_SYSTEM_CTRL_UE_Cat_Info_CNF(p_CellId)); + } + } + /* * @desc Handover configuration @@ -217,23 +236,6 @@ module EUTRA_ConfigurationSteps { f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_SrbList, p_TimingInfo); }; - - /* - * @desc SRB Configuration - * @param p_CellId - * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @status (APPROVED) - */ - function f_EUTRA_SS_ReleaseSRBs(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC - { /* @sic R5s100072 sic@ */ - var template (value) RadioBearerList_Type v_SrbList := { - cs_SRB_Release(tsc_SRB0), - cs_SRB_Release(tsc_SRB1), - cs_SRB_Release(tsc_SRB2) - }; - f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_SrbList, p_TimingInfo); - }; /* * @desc SRB Configuration * @param p_CellId @@ -241,7 +243,7 @@ module EUTRA_ConfigurationSteps { * @status */ function f_EUTRA_SS_ReleaseSRBs1_2(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC { /* @sic R5s100072 sic@ */ var template (value) RadioBearerList_Type v_SrbList := { cs_SRB_Release(tsc_SRB1), @@ -249,76 +251,73 @@ module EUTRA_ConfigurationSteps { }; f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_SrbList, p_TimingInfo); }; + //---------------------------------------------------------------------------- // DRB Configuration /* * @desc DRB Configuration * @param p_CellId + * @param p_DrbId (default value: tsc_DRB1) * @param p_TimingInfo (default value: cs_TimingInfo_Now) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_EUTRA_SS_DRB1_DefConfig(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC - { /* @sic R5s100072 sic@ */ + function f_EUTRA_SS_Release_SingleDRB(EUTRA_CellId_Type p_CellId, + DRB_Identity p_DrbId := tsc_DRB1, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + { /* @sic R5s100072 sic@ */ var template (value) RadioBearerList_Type v_DrbList := { - cs_OneDRB_ConfigAM(tsc_DRB1) + cs_DRB_Release(p_DrbId) }; f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_DrbList, p_TimingInfo); } /* - * @desc DRB Configuration - * @param p_CellId - * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @status (APPROVED) + * @desc get SS' DRB configuration depending on global HandleULDataUM mode + * @param p_Drb + * @param p_PdcpConfig (default value: cs_508_PDCP_Config_DRB_UM) + * @param p_RlcConfig (default value: cs_RLC_Configuration_UM) + * @return template (value) RadioBearer_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_EUTRA_SS_DRB1_Release(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC - { /* @sic R5s100072 sic@ */ - var template (value) RadioBearerList_Type v_DrbList := { - cs_DRB_Release(tsc_DRB1) - }; - - f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_DrbList, p_TimingInfo); + function f_EUTRA_SS_GetDrbConfigUM(DRB_Identity p_Drb, + template (value) PDCP_Config p_PdcpConfig := cs_508_PDCP_Config_DRB_UM, + template (value) RLC_Configuration_Type p_RlcConfig := cs_RLC_Configuration_UM) return template (value) RadioBearer_Type + { /* @sic R5-153746: no discarding UM data anymore sic@ */ + return cs_OneDRB_ConfigUM(p_Drb, p_PdcpConfig, p_RlcConfig); } /* * @desc generic configuration for multiple DRBs; - * configures additional DRBs; it is assumed that DRB1 is reserved for the default bearer which is already configured - * @param p_CellId * @param p_NoOfAddDRBs_AM * @param p_NoOfAddDRBs_UM - * @param p_DiscardULDataUM (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_FirstAddDRB + * @return template (omit) RadioBearerList_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_EUTRA_SS_DRB_AddConfig(EUTRA_CellId_Type p_CellId, - integer p_NoOfAddDRBs_AM, - integer p_NoOfAddDRBs_UM, - template (omit) EUTRA_DiscardUlDataUM_Type p_DiscardULDataUM := omit) runs on EUTRA_PTC - { /* @sic R5s130681: optional parameter p_DiscardULDataUM sic@ */ - var template (value) RadioBearerList_Type v_DRB_ToAddModList; - var template (omit) boolean v_DiscardULDataUM := omit; + function f_EUTRA_SS_GetDrbConfigList(integer p_NoOfAddDRBs_AM, + integer p_NoOfAddDRBs_UM, + DRB_Identity p_FirstAddDRB) return template (omit) RadioBearerList_Type + { /* @sic R5s141286 change 8: additional parameter p_FirstAddDRB sic@ */ + var template (omit) RadioBearerList_Type v_DRB_ToAddModList := omit; var integer v_DRB_Id; var integer n, m; - if (ispresent(p_DiscardULDataUM)) {v_DiscardULDataUM := true;} - if (p_NoOfAddDRBs_AM + p_NoOfAddDRBs_UM > 0) { // @sic R5s100100 sic@ - v_DRB_Id := tsc_DRB1 + 1; // DRB1 is the default bearer + + v_DRB_Id := p_FirstAddDRB; for (n := 0; n < p_NoOfAddDRBs_AM; n := n + 1) { v_DRB_ToAddModList[n] := cs_OneDRB_ConfigAM(v_DRB_Id); v_DRB_Id := v_DRB_Id + 1; } for (m := 0; m < p_NoOfAddDRBs_UM; m := m + 1) { - v_DRB_ToAddModList[n+m] := cs_OneDRB_ConfigUM(v_DRB_Id, -, -, v_DiscardULDataUM); + v_DRB_ToAddModList[n+m] := f_EUTRA_SS_GetDrbConfigUM(v_DRB_Id); v_DRB_Id := v_DRB_Id + 1; } - - f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_DRB_ToAddModList); } - }; + return v_DRB_ToAddModList; + } //---------------------------------------------------------------------------- /* @@ -352,15 +351,16 @@ module EUTRA_ConfigurationSteps { * @desc Configure SRB[1..2] and given DRBs * @param p_CellId * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_CnfFlag (default value: omit) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_SS_SRBs_DRBs_Config(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (omit) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, template (omit) boolean p_CnfFlag := omit) runs on EUTRA_PTC { /* @sic R5s100801, R5s110634 additional comments: optional parameter p_CnfFlag, R5s110602 sic@ */ + var template (value) RadioBearerList_Type v_DrbConfigList; var template (value) RadioBearerList_Type v_SrbDrbList := { cs_SRB1_ConfigDef, cs_SRB2_ConfigDef @@ -368,47 +368,17 @@ module EUTRA_ConfigurationSteps { var integer i := lengthof(v_SrbDrbList); var integer k; - for (k:=0; k < lengthof(p_DrbConfigList); k:= k+1) { - v_SrbDrbList[i+k] := p_DrbConfigList[k]; /* @sic R5s100279 change 2 sic@ */ + if (ispresent(p_DrbConfigList)) { /* @sic R5s150338: to allow case of no DRBs to be configured sic@ */ + v_DrbConfigList := valueof(p_DrbConfigList); + for (k:=0; k < lengthof(v_DrbConfigList); k:= k+1) { + v_SrbDrbList[i+k] := v_DrbConfigList[k]; /* @sic R5s100279 change 2 sic@ */ + } } f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_SrbDrbList, p_TimingInfo, p_CnfFlag); } - /* - * @desc Reset SRB[0..2] and default DRB - * @param p_CellId - * @param p_DelayBeforeResetInMilliSec (default value: 0) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_EUTRA_SS_SRBs_DRBs_Reset(EUTRA_CellId_Type p_CellId, - integer p_DelayBeforeResetInMilliSec := 0) runs on EUTRA_PTC - { /* Note: this function shall use timing info "Now" only otherwise between release and config there have to be at least 5ms */ - /* @sic R5s100803: new parameter for the delay sic@ */ - if (p_DelayBeforeResetInMilliSec > 0) { - f_Delay (int2float(p_DelayBeforeResetInMilliSec) / 1000.0); - } - f_EUTRA_SS_SRBs_DRBs_Release(p_CellId); - f_EUTRA_SS_SRBs_DRBs_Config(p_CellId); - } - - /* - * @desc Stop Default UL Grant transmission, stop transmission of TA commands and reset of SRB[0..2] and default DRB - * @param p_CellId - * @param p_DelayBeforeResetInMilliSec (default value: 0) - * @status APPROVED (LTE, LTE_A) - */ - function f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(EUTRA_CellId_Type p_CellId, - integer p_DelayBeforeResetInMilliSec := 0) runs on EUTRA_PTC - { - if (p_DelayBeforeResetInMilliSec > 0) { - f_Delay (int2float(p_DelayBeforeResetInMilliSec) / 1000.0); - } - f_EUTRA_StopULGrantTransmission(p_CellId, cs_TimingInfo_Now); - f_EUTRA_SS_SRBs_DRBs_Release(p_CellId); - f_EUTRA_SS_SRBs_DRBs_Config(p_CellId); - } - + //---------------------------------------------------------------------------- /* * @desc return DciUlInfo depending on the current grant type * @return template (value) DciUlInfo_Type @@ -422,17 +392,110 @@ module EUTRA_ConfigurationSteps { case (USE_BIG_GRANTS) { v_ULDCIInfo := cs_DciInfo_CcchDcchDtchUL_BigGrant; } + case (USE_CAT0_GRANTS) { //@sic R5w150203r1 sic@ + v_ULDCIInfo := cs_DciInfo_CcchDcchDtchUL_Cat0; + } case else { v_ULDCIInfo := cs_DciInfo_CcchDcchDtchUL_Def; } } return v_ULDCIInfo; } + + //---------------------------------------------------------------------------- + /* + * @desc return Ue Category structure + * @return template (value) UE_CategoryInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_UE_CategoryInfo_Init() return template (value) UE_CategoryInfo_Type + { //@sic R5w150203r1 sic@ + + var template (value) UE_CategoryInfo_Type v_UE_CategoryInfo := cs_UE_CategoryInfo(5); // initialised with a dummy value + + if (pc_ue_Category_1) { + v_UE_CategoryInfo.ue_Category := 1; + } else if(pc_ue_Category_2) { + v_UE_CategoryInfo.ue_Category := 2; + } else if(pc_ue_Category_3) { + v_UE_CategoryInfo.ue_Category := 3; + } else if(pc_ue_Category_4) { + v_UE_CategoryInfo.ue_Category := 4; + } else if(pc_ue_Category_5) { + v_UE_CategoryInfo.ue_Category := 5; + } + + if (pc_ue_Category_6) { + v_UE_CategoryInfo.ue_Category_V1020 := 6; + } else if (pc_ue_Category_7) { + v_UE_CategoryInfo.ue_Category_V1020 := 7; + } else if (pc_ue_Category_8) { + v_UE_CategoryInfo.ue_Category_V1020 := 8; + } + + if (pc_ue_Category_9) { + v_UE_CategoryInfo.ue_Category_v1170 := 9; + } else if(pc_ue_Category_10) { + v_UE_CategoryInfo.ue_Category_v1170 := 10; + } + + if (pc_ue_Category_11) { + v_UE_CategoryInfo.ue_Category_v11a0 := 11; + } else if(pc_ue_Category_12) { + v_UE_CategoryInfo.ue_Category_v11a0 := 12; + } + + if (pc_ue_CategoryDL_0) { + v_UE_CategoryInfo.ue_Category_v1250 :=0; + } + + return v_UE_CategoryInfo; + } + + /* + * @desc configure UE category on SS + * @param p_CellId + * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_SS_ConfigureUE_Category(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + { //@sic R5w150203r1 sic@ + var template (value) UE_CategoryInfo_Type v_UE_CategoryInfo :=f_EUTRA_UE_CategoryInfo_Init(); + if (ispresent(v_UE_CategoryInfo.ue_Category_v1250 )) { //UE Category 0 + f_EUTRA_ConfigureCAT0_ULGrant(p_CellId, p_TimingInfo); + } + + f_EUTRA_SS_CommonUECatInfoConfig(p_CellId, cas_UE_Cat_InfoConfig_REQ(p_CellId, + p_TimingInfo, + v_UE_CategoryInfo)); + } + + /* + * @desc configure "CAT0 " UL grants + * @param p_CellId + * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_ConfigureCAT0_ULGrant(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + { //@sic R5w150203r1 sic@ + var template (value) DciUlInfo_Type v_ULDCIInfo; + + f_EUTRA_GrantType_Set(USE_CAT0_GRANTS); + v_ULDCIInfo := f_EUTRA_DciUlInfo_Get(); + + f_EUTRA_SS_CommonCellConfig(p_CellId, cas_ULGrantAllocation_REQ(p_CellId, + p_TimingInfo, + v_ULDCIInfo, + cs_PUCCH_Synch_KeepAsItIs, + cs_UL_GrantConfig_Def)); + } /* * @desc configure "big" UL grants * @param p_CellId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_ConfigureBigULGrant(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { @@ -447,6 +510,7 @@ module EUTRA_ConfigurationSteps { cs_PUCCH_Synch_KeepAsItIs, cs_UL_GrantConfig_Def)); } + //---------------------------------------------------------------------------- // Cell configurations: @@ -454,63 +518,25 @@ module EUTRA_ConfigurationSteps { /* * @desc create cell and send out system information * @param p_CellId + * @param p_HandleULDataUM (default value: omit) + * @param p_UseBigGrants (default value: omit) * @param p_CA_CellInitialConfig (default value: omit) + * @param p_CyclicPrefixLength (default value: normal) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_CellConfig_Def(EUTRA_CellId_Type p_CellId, - template (omit) CA_CellInitialConfig_Type p_CA_CellInitialConfig := omit) runs on EUTRA_PTC - { - f_EUTRA_SS_ConfigureActiveCell(p_CellId, p_CA_CellInitialConfig); + template (omit) EUTRA_HandleUlDataUM_Type p_HandleULDataUM := omit, + template (omit) EUTRA_UseBigGrants_Type p_UseBigGrants := omit, + template (omit) CA_CellInitialConfig_Type p_CA_CellInitialConfig := omit,//@sic R5s150252 sic@ + EUTRA_CyclicPrefix_Type p_CyclicPrefixLength := normal) runs on EUTRA_PTC + { /* @sic R5s150338: f_EUTRA_SS_DRB1_DefConfig removed; p_DiscardULDataUM, p_UseBigGrants added sic@ */ + f_EUTRA_SS_ConfigureActiveCell(p_CellId, p_CA_CellInitialConfig, p_CyclicPrefixLength); //@sic R5s150252 sic@ f_EUTRA_SS_ConfigureSRBs(p_CellId); - f_EUTRA_SS_DRB1_DefConfig(p_CellId); - } - - /* - * @desc create cell and send out system information: default configuration (SRBs + default DRB) + additional DRBs - * @param p_CellId - * @param p_NoOfAddDRBs_AM - * @param p_NoOfAddDRBs_UM - * @param p_DiscardULDataUM (default value: omit) - * @param p_UseBigGrants (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_EUTRA_CellConfig_DRB_Common(EUTRA_CellId_Type p_CellId, - integer p_NoOfAddDRBs_AM, - integer p_NoOfAddDRBs_UM, - template (omit) EUTRA_DiscardUlDataUM_Type p_DiscardULDataUM := omit, - template (omit) EUTRA_UseBigGrants_Type p_UseBigGrants := omit) runs on EUTRA_PTC - { /* @sic R5s130681: optional parameter p_DiscardULDataUM sic@ */ - /* @sic R5s140160, R5w140109: optional parameter p_DiscardULDataUM sic@ */ - f_EUTRA_CellConfig_Def(p_CellId); - f_EUTRA_SS_DRB_AddConfig(p_CellId, p_NoOfAddDRBs_AM, p_NoOfAddDRBs_UM, p_DiscardULDataUM); - if (ispresent(p_UseBigGrants)) { - f_EUTRA_ConfigureBigULGrant(p_CellId); + f_EUTRA_SS_ConfigureUE_Category(p_CellId); //@sic R5w150203r1 sic@ + if (ispresent(p_HandleULDataUM)) { /* @sic R5s150338 sic@ */ + f_EUTRA_HandleUlDataUM_Set(valueof(p_HandleULDataUM)); } - } - - /* - * @desc create cell and send out system information - * @param p_CellId - * @param p_PdcpConfig (default value: cs_508_PDCP_Config_DRB_UM) - * @param p_DiscardULDataUM (default value: omit) - * @param p_UseBigGrants (default value: omit) - * @status APPROVED (LTE, LTE_A, LTE_IRAT) - */ - function f_EUTRA_CellConfig_DefPlusUM(EUTRA_CellId_Type p_CellId, - template (value) PDCP_Config p_PdcpConfig := cs_508_PDCP_Config_DRB_UM, - template (omit) EUTRA_DiscardUlDataUM_Type p_DiscardULDataUM := omit, - template (omit) EUTRA_UseBigGrants_Type p_UseBigGrants := omit) runs on EUTRA_PTC - { /* @sic R5-120666 sic@ */ - /* @sic R5s130681: optional parameter p_DiscardULDataUM sic@ */ - /* @sic R5s140160, R5w140109: optional parameter p_DiscardULDataUM sic@ */ - var template (omit) boolean v_DiscardULDataUM := omit; - - if (ispresent(p_DiscardULDataUM)) {v_DiscardULDataUM := true;} - - f_EUTRA_CellConfig_Def(p_CellId); - f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(p_CellId, cs_OneDRB_ConfigUM(tsc_DRB2, p_PdcpConfig, -, v_DiscardULDataUM)); - - if (ispresent(p_UseBigGrants)) { + if (ispresent(p_UseBigGrants)) { /* @sic R5s150338 sic@ */ f_EUTRA_ConfigureBigULGrant(p_CellId); } } @@ -520,11 +546,9 @@ module EUTRA_ConfigurationSteps { * @param p_CellId * @status APPROVED (LTE, LTE_IRAT) */ - function f_EUTRA_CellConfig_SRBs_Only (EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + function f_EUTRA_CellConfig_SRBs_Only(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { - // create cell and send out system information - f_EUTRA_SS_ConfigureActiveCell(p_CellId); - f_EUTRA_SS_ConfigureSRBs(p_CellId); + f_EUTRA_CellConfig_Def(p_CellId); /* @sic R5s150338 sic@ */ } //---------------------------------------------------------------------------- @@ -663,10 +687,12 @@ module EUTRA_ConfigurationSteps { * @desc basic cell configuration (active cell) * @param p_CellId * @param p_CA_CellInitialConfig (default value: omit) + * @param p_CyclicPrefixLength (default value: normal) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_SS_ConfigureActiveCell(EUTRA_CellId_Type p_CellId, - template (omit) CA_CellInitialConfig_Type p_CA_CellInitialConfig := omit) runs on EUTRA_PTC + template (omit) CA_CellInitialConfig_Type p_CA_CellInitialConfig := omit,//@sic R5s150252 sic@ + EUTRA_CyclicPrefix_Type p_CyclicPrefixLength := normal) runs on EUTRA_PTC { var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get (p_CellId); var template (value) AllSiSchedul_Type v_SiSchedul; @@ -718,7 +744,8 @@ module EUTRA_ConfigurationSteps { v_CellInfo.CellTimingInfo.Tcell, // @sic R5s100513 sic@ v_CellInfo.CellTimingInfo.SfnOffset, // @sic R5s100513 sic@ v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.tdd_Config, - v_TDD_Config_v1130); + v_TDD_Config_v1130, + p_CyclicPrefixLength);//@sic R5s150252 sic@ } } @@ -776,7 +803,7 @@ module EUTRA_ConfigurationSteps { * @desc To configure SS to start or stop reporting indication of Rach preamble * @param p_CellId * @param p_RachPreambleMode - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_SS_ConfigRachPreambleIndMode(EUTRA_CellId_Type p_CellId, L1Mac_IndicationMode_Type p_RachPreambleMode) runs on EUTRA_PTC @@ -1085,7 +1112,8 @@ module EUTRA_ConfigurationSteps { template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC { var template (value) PUCCH_Synch_Type v_PUCCH_Synch := cs_PUCCH_Synch_Auto_Def; // @sic R5-101177, R5-101178, R5-101050 sic@ - f_EUTRA_SS_CommonCellConfig(p_CellId, cas_ULGrantAllocation_Def_REQ (p_CellId, p_TimingInfo, v_PUCCH_Synch)); + var template (value) DciUlInfo_Type v_DciUlInfo := f_EUTRA_DciUlInfo_Get(); // @sic R5s140901..904 MCC160 implementation sic@ + f_EUTRA_SS_CommonCellConfig(p_CellId, cas_ULGrantAllocation_REQ(p_CellId, p_TimingInfo, v_DciUlInfo, v_PUCCH_Synch)); } /* @@ -1093,11 +1121,11 @@ module EUTRA_ConfigurationSteps { * configures SS to not maintain UE in PUCCH synchronised state * needs to be called when UE enters idle mode in a cell (after RRCConnectionRelease) * @param p_CellId - * @param p_TimingInfo + * @param p_TimingInfo (default value: cs_TimingInfo_Now) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_StopULGrantTransmission(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC { f_EUTRA_SS_CommonCellConfig(p_CellId, cas_ULGrantAllocation_Stop_REQ (p_CellId, p_TimingInfo)); } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_IRATFunctions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_IRATFunctions.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_IRATFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_IRATFunctions.ttcn index 008c938..722615c 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_IRATFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_IRATFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-04 15:12:03 +0200 (Thu, 04 Sep 2014) $ -// $Rev: 12027 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module EUTRA_IRATFunctions { @@ -43,7 +43,7 @@ module EUTRA_IRATFunctions { * @param p_UIACap (default value: omit) * @param p_StartPS (default value: omit) .. used to pass the start value in HO tests (got from UE Capability) * @param p_StartCS (default value: omit) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_SendAuthCoOrdParameters (IRAT_CO_ORD_PORT p_Port, EUTRA_CellId_Type p_CellId, @@ -77,7 +77,7 @@ module EUTRA_IRATFunctions { * @param p_StartPS (default value: omit) - used to pass the start value in HO tests (got from UE Capability) * @param p_StartCS (default value: omit) - used to pass the start value in SRVCC tests (got from UE Capability) * @param p_CS_PS_ComHO (default value: false)- set to true if used in SRVCC test cases is PS domain is also handed over - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_SendAuthParameters(EUTRA_CellId_Type p_CellId, IRAT_CO_ORD_PORT p_Port, @@ -141,7 +141,7 @@ module EUTRA_IRATFunctions { v_CommonAuthParamsCS.KeySeq := v_SecurityParams.AuthParams.KeySeq; //derivation of KcGSM from CKsrvcc and IKsrvcc c3 = ((CK1 XOR CK2) XOR (IK1 XOR IK2)) @sic R5s140730 sic@ v_CommonAuthParamsCS.KcGSM := (substr( v_CKSRVCC, 0, 64) xor4b substr( v_CKSRVCC, 64, 64)) xor4b (substr( v_IKSRVCC, 0, 64) xor4b substr( v_IKSRVCC, 64, 64)); - + v_CommonAuthParamsCS.Kc128 := substr (fx_KeyDerivationFunction ( tsc_KDF_HMAC_SHA_256, (valueof(v_CommonAuthParamsCS.CK) & valueof(v_CommonAuthParamsCS.IK)), '32'O ), 0, 128); // @sic R5s150121 sic@ } //Now send these over to the other RAT, but DON'T store them @@ -227,17 +227,25 @@ module EUTRA_IRATFunctions { * This will wait until Preamble is finished on the other RAT and it has received the AuthParams * These are then stored in SecurityParams * @param p_Port + * @param p_IsRSRVCC (default value: false) * @return boolean whether the UE was attached in CS on the other RAT * @status APPROVED (LTE_A, LTE_IRAT) */ - function f_EUTRA_InterRAT_InitialiseAuthParams (IRAT_CO_ORD_PORT p_Port) runs on EUTRA_PTC return boolean + function f_EUTRA_InterRAT_InitialiseAuthParams (IRAT_CO_ORD_PORT p_Port,//@sic R5s150704 new parameter and its branch in code added sic@ + boolean p_IsRSRVCC := false) runs on EUTRA_PTC return boolean { var IRAT_Coordination_MSG v_RxdMsg; var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); p_Port.receive (cmr_IRAT_AuthInfo) -> value v_RxdMsg; - - v_SecurityParams.AuthParams := v_RxdMsg.Authentication.AuthPS; + //@sic R5s150704 sic@ + if (p_IsRSRVCC) + { + v_SecurityParams.AuthParams := v_RxdMsg.Authentication.AuthCS; + }else + { + v_SecurityParams.AuthParams := v_RxdMsg.Authentication.AuthPS; + } f_EUTRA_Security_Set (v_SecurityParams); return v_RxdMsg.Authentication.CSinOtherRAT; } @@ -293,7 +301,7 @@ module EUTRA_IRATFunctions { * @param p_OtherRat * @status APPROVED (LTE_IRAT) */ - function f_EUTRA_WaitForFriggerFromOtherRAT(charstring p_OtherRat) runs on EUTRA_PTC + function f_EUTRA_WaitForTriggerFromOtherRAT(charstring p_OtherRat) runs on EUTRA_PTC { select (p_OtherRat) { case ("UTRAN") { @@ -321,7 +329,7 @@ module EUTRA_IRATFunctions { f_EUTRA_SendCoOrdToOtherRAT(v_OtherRAT, cms_IRAT_Trigger); if (p_WaitForTrigger) { - f_EUTRA_WaitForFriggerFromOtherRAT(v_OtherRAT); + f_EUTRA_WaitForTriggerFromOtherRAT(v_OtherRAT); } } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_IdleMode.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_IdleMode.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_IdleMode.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_IdleMode.ttcn index bb562e7..44a2278 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_IdleMode.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_IdleMode.ttcn @@ -2,43 +2,44 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-04-13 23:38:21 +0200 (Sun, 13 Apr 2014) $ -// $Rev: 11181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module EUTRA_IdleMode { -//========================================================================= -// Imports -//========================================================================= - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_ASP_SrbDefs all; import from EUTRA_Component all; import from EUTRA_CommonDefs all; import from EUTRA_CommonProcedures all; - import from EUTRA_NASSteps all; - import from EUTRA_RRCSteps all; - import from EUTRA_SRB_Templates all; - import from EUTRA_RRC_Templates all; + import from CommonIratDefs all; import from EUTRA_CellInfoFrequency all; import from EUTRA_CellInfo all; - import from EUTRA_BandDependentParam all; - import from EUTRA_AuxiliaryFunctions all; - import from EUTRA_SysInfo_Templates all; import from NAS_CommonTypeDefs all; import from EPS_NAS_TypeDefs all; + import from CommonDefs all; + import from EUTRA_Parameters all; + import from EUTRA_BandDependentParam all; + + import from EUTRA_SRB_Templates all; + import from EUTRA_RRC_Templates all; + import from EUTRA_SysInfo_Templates all; import from EPS_NAS_Constants all; import from EPS_NAS_MsgContainers all; import from EPS_NAS_Templates all; - import from CommonDefs all; - import from EUTRA_Parameters all; import from NAS_CommonTemplates all; - import from CommonIratDefs all; + + import from EUTRA_AuxiliaryFunctions all; + import from EUTRA_InitialRegistration all; + import from EUTRA_NASSteps all; + import from EUTRA_RRCSteps all; import from UpperTesterFunctions all; + import from EUTRA_CapabilityFunctions all; + import from EUTRA_AuxiliaryCapCheckFunctions all; //============================================================================== // Types @@ -57,9 +58,9 @@ module EUTRA_IdleMode //Tracking Area Codes used in Idle Mode Operations. //* Default values according to 36.523-1 cl. 6.0.1 Table 6.0.1-2 - const TrackingAreaCode tsc_IdleMode_TAC_Cell2 := int2bit (2, 16); /* @status APPROVED (LTE, LTE_IRAT) */ + const TrackingAreaCode tsc_IdleMode_TAC_Cell2 := int2bit (2, 16); /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ const TrackingAreaCode tsc_IdleMode_TAC_Cell3 := int2bit (3, 16); /* @status APPROVED (LTE) */ - const TrackingAreaCode tsc_IdleMode_TAC_Cell4 := int2bit (4, 16); /* @status APPROVED (LTE) */ + const TrackingAreaCode tsc_IdleMode_TAC_Cell4 := int2bit (4, 16); /* @status APPROVED (LTE, LTE_A) */ const TrackingAreaCode tsc_IdleMode_TAC_Cell6 := int2bit (6, 16); /* @status APPROVED (LTE) */ const TrackingAreaCode tsc_IdleMode_TAC_Cell10 := int2bit (10, 16); /* @status APPROVED (LTE) */ const TrackingAreaCode tsc_IdleMode_TAC_Cell11 := int2bit (11, 16); /* @status APPROVED (LTE) */ @@ -299,18 +300,18 @@ module EUTRA_IdleMode }; template (value) SystemInformationBlockType1_v890_IEs cs_SystemInformationBlockType1_v890_CellSelInfo(template (omit) CellSelectionInfo_v920 p_CellSelectionInfo := omit) := - { /* @status APPROVED (LTE, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ lateNonCriticalExtension := omit, nonCriticalExtension := { ims_EmergencySupport_r9 := omit, cellSelectionInfo_v920 := p_CellSelectionInfo, - nonCriticalExtension := omit + nonCriticalExtension := f_EUTRA_SetSystemInformationBlockType1_Cat0Allowed() //@sic R5-151975 sic@ } }; template (value) CellSelectionInfo_v920 cs_CellSelectionInfo_v920(template (omit) Q_QualMin_r9 p_Q_QualMin_r9 := omit, template (omit) integer p_Q_QualMinOffset_r9 := omit) := - { /* @status APPROVED (LTE, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ q_QualMin_r9 := p_Q_QualMin_r9, q_QualMinOffset_r9 := p_Q_QualMinOffset_r9 }; @@ -376,7 +377,7 @@ module EUTRA_IdleMode * @param p_PreambleOnLTE Set to true if UE performed the preamble on the LTE cell (and so configured the default bearer) * @param p_EUTRA_Cap * @param p_ForcedAttach (default value: NORMAL) - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_IdleMode_TAU_UponMobility_FromOtherRAT(EUTRA_CellId_Type p_CellId, boolean p_CSInOtherRAT, @@ -824,5 +825,41 @@ module EUTRA_IdleMode f_EUTRA_RRC_ConnectionRelease(p_CellId, tsc_RRC_TI_Def); } } - + + /* + * @desc Check that a Band is not supported by UE + * @param p_Band + * @param p_EUTRA_Cap + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_CheckNotSupportedBand(integer p_Band, + template (omit) octetstring p_EUTRA_Cap := omit) runs on EUTRA_PTC + { + var bitstring v_SuppEutraBandsAccToPICS := f_DeriveSuppEutraBandsFromPics(); + var UE_EUTRA_Capability v_EUTRA_Cap; + var SupportedBandListEUTRA v_EUTRA_BandListReported; + var boolean v_BandReported := false; + var integer i:=0; + + if (isvalue(p_EUTRA_Cap)) { //@sic R5s150635 change 2 sic@ + v_EUTRA_Cap := f_EUTRA_DecodeEutraCapMsg(valueof(p_EUTRA_Cap)); + } else { + v_EUTRA_Cap := f_EUTRA_MobileInfo_GetUECapability(); + } + v_EUTRA_BandListReported := v_EUTRA_Cap.rf_Parameters.supportedBandListEUTRA; //@sic R5s150635 change 2 sic@ + + //Check the band support against the PICS + if ((v_SuppEutraBandsAccToPICS[p_Band-1] == '1'B)) { + f_EUTRA_SetVerdictFailOrInconc (__FILE__, __LINE__, "Band is wrongly reported as supported in the PICS"); + } + //Check the band support against the UE capabilities + for (i:=0; (i < lengthof(v_EUTRA_BandListReported) and v_BandReported==false) ; i:=i+1) { + if (v_EUTRA_BandListReported[i].bandEUTRA == p_Band){ + v_BandReported:= true; + } + } + if (v_BandReported) { + f_EUTRA_SetVerdictFailOrInconc (__FILE__, __LINE__, "Band is wrongly reported as supported in UE capabilities"); + } + } } diff --git a/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_InitialRegistration.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_InitialRegistration.ttcn new file mode 100644 index 0000000..b6bc928 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_InitialRegistration.ttcn @@ -0,0 +1,885 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:40:16 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14433 $ +/******************************************************************************/ + +module EUTRA_InitialRegistration { + + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from CommonDefs all; + import from CommonIP all; + import from EUTRA_CommonDefs all; + import from NAS_CommonTypeDefs all; + import from EUTRA_ASP_SrbDefs all; + import from EPS_NAS_TypeDefs all; + import from EPS_NAS_MsgContainers all; + import from EPS_NAS_Constants all; + import from EUTRA_Component all; + import from EUTRA_CellInfo all; + import from EUTRA_AspCommon_Templates all; + import from EUTRA_SecurityFunctions all; + import from EUTRA_SecuritySteps all; + import from UpperTesterCommon all; + import from UpperTesterFunctions all; + import from IP_PTC_CtrlMsgs all; + import from EUTRA_RRC_Templates all; + import from EPS_NAS_Templates all; + import from NAS_CommonTemplates all; + import from NAS_AuxiliaryDefsAndFunctions all; + import from Parameters all; + import from EUTRA_SRB_Templates all; + import from EUTRA_DRB_Templates all; + import from EUTRA_LoopBack all; + import from EUTRA_NASSteps all; + import from EUTRA_RRCSteps all; + import from EUTRA_AuxiliaryFunctions all; + import from EUTRA_ConfigurationSteps all; + import from TestcaseProperties all; + import from EUTRA_ASP_TypeDefs all; + import from IMS_PTC_CoordMsg all; + + template (present) MS_NetworkCap cdr_MS_NetworkCap_Srvcc modifies cr_MS_NetworkCap_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + srvccToGERAN_UTRANCap := '1'B + }; + + template (present) NAS_UL_Message_Type cdr_ATTACH_REQUEST_SRVCC(template (present) NAS_AttDetValue_Type p_AttachTypeValue, + template AdditionalUpdateType p_AdditionalUpdateType, + template GUTI_Type p_OldGUTIType := cr_GUTI_Type_Any ifpresent) // @sic R5s140074, R5-142882 sic@ + modifies cr_508_ATTACH_REQUEST := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + aTTACH_REQUEST := { + msNetworkCapability := cdr_MS_NetworkCap_Srvcc, + msClassmark2 := cr_MS_Clsmk2_Any_tlv, + supportedCodecList := cr_CodecListAny, + oldGUTI_Type := p_OldGUTIType + } + }; + + template (present) NAS_UL_Message_Type cdr_ATTACH_REQUEST_NSLP(template (present) NAS_AttDetValue_Type p_AttachTypeValue, + template AdditionalUpdateType p_AdditionalUpdateType) + modifies cr_508_ATTACH_REQUEST := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + aTTACH_REQUEST := { + deviceProperties := cr_DeviceProperties('D'H, '1'B) + } + }; + + template (present) NAS_UL_Message_Type cr_PDNDisconnectReq(template (present) LinkedEpsBearerIdentity p_LinkedId):= + { /* @desc PDN DISCONNECT REQUEST + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + pDN_DISCONNECT_REQUEST := { + epsBearerId := '0'H, + protocolDiscriminator := tsc_PD_ESM, + procedureTransactionIdentifier := ?, + messageType := tsc_MT_PdnDisconnectRequest, + spareHalfOctet := ?, + linkedEpsBearerId := p_LinkedId, + protocolConfigurationOptions := cr_ProtocolConfigOptionsAny ifpresent + } + }; + + //---------------------------------------------------------------------------- + /* + * @desc return PDN index for first or second PDN connectivity + * @param p_InitialRegistrationPDN + * @return PDN_Index_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_InitialRegistrationPdnIndex(EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN) return PDN_Index_Type + { + var PDN_Index_Type v_PdnIndex; + + if (p_InitialRegistrationPDN == emergencyPDN) { /* @sic R5s150510 sic@ */ + v_PdnIndex := PDN_1; + } + else { + if (not tsc_EUTRA_Registration_MultiplePDN or + ((p_InitialRegistrationPDN == firstPDN) and tsc_EUTRA_Registration_PDN1isIMS) or + ((p_InitialRegistrationPDN == secondPDN) and tsc_EUTRA_Registration_PDN2isIMS)) { + v_PdnIndex := PDN_1; + } else { + v_PdnIndex := PDN_Internet; + } + } + return v_PdnIndex; + } + + /* + * @desc return EpsBearerId for first or second PDN connectivity + * @param p_InitialRegistrationPDN + * @return EPS_BearerIdentity + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_InitialRegistrationEpsBearerId(EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN) return EPS_BearerIdentity + { + var EPS_BearerIdentity v_EpsBearerId; + + if (f_EUTRA_InitialRegistrationPdnIndex(p_InitialRegistrationPDN) == PDN_1) { + v_EpsBearerId := tsc_EpsDefaultBearerId; + } else { + v_EpsBearerId := tsc_EpsDefaultBearerId2ndPDN; + } + return v_EpsBearerId; + } + + //---------------------------------------------------------------------------- + /* + * @desc start DHCP/ICMPv6 server for 2nd PDN + * @param p_CellId + * @param p_PdnIndex (default: PDN_2) + * @param p_DRB_Id (default: tsc_DRB2) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_EUTRA_StartIPfor2ndPDN(EUTRA_CellId_Type p_CellId, + PDN_Index_Type p_PdnIndex := PDN_2, + DRB_Identity p_DRB_Id := tsc_DRB2) runs on EUTRA_PTC + { /* @sic 19_5_1: new parameter p_PdnIndex sic@ */ + /* @sic R5s141286 change 3: new parameter p_DRB_Id sic@ */ + f_IP_Handling_Start(IP, p_PdnIndex, cs_DrbInfo_EUTRA(p_CellId, p_DRB_Id)); + } + + //---------------------------------------------------------------------------- + /* + * @desc reset IMS on given PDN + * @param p_PdnIndex + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_ResetIMS(PDN_Index_Type p_PdnIndex) runs on EUTRA_PTC + { + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[v_Index], cms_IPCAN_IMS_Reset); + } + + //---------------------------------------------------------------------------- + /* + * @desc reset IMS (if requested) and restart IP handling + * @param p_CellId + * @param p_PdnIndex (default value: PDN_1) + * @param p_DrbId (default value: tsc_DRB1) + * @param p_ResetIMS (default value: true) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_ResetIPandIMS(EUTRA_CellId_Type p_CellId, + PDN_Index_Type p_PdnIndex := PDN_1, + IP_DrbId_Type p_DrbId := tsc_DRB1, + boolean p_ResetIMS := true) runs on EUTRA_PTC + { + if (p_ResetIMS) { + f_EUTRA_ResetIMS(p_PdnIndex); /* @sic R5s150031 sic@ */ + } + f_IP_Handling_Start(IP, p_PdnIndex, cs_DrbInfo_EUTRA(p_CellId, p_DrbId)); + } + + //---------------------------------------------------------------------------- + /* + * @desc start DHCP/ICMPv6 server for 2nd PDN + * @param p_CellId + * @param p_CnfRequired (default: NO_CNF_REQUIRED) + * @param p_USIM_Rmvd (default: false) + * @param p_ResetIMS (default: true) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_SwitchOnUEandStartIP(EUTRA_CellId_Type p_CellId, + Ut_CnfReq_Type p_CnfRequired := NO_CNF_REQUIRED, + boolean p_USIM_Rmvd := false, + boolean p_ResetIMS := true) runs on EUTRA_PTC + { /* @sic R5s150031: new parameter p_ResetIMS sic@ */ + f_EUTRA_ResetIPandIMS(p_CellId, -, -, p_ResetIMS); // @sic R5s150256: new function f_EUTRA_ResetIPandIMS sic@ + f_UT_SwitchOnUE(UT, p_USIM_Rmvd, p_CnfRequired); + } + + //---------------------------------------------------------------------------- + /* + * @desc step 5 .. 17 of UE Registration acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_State + * @param p_ForcedAttach + * @param p_NAS_Ind + * @param p_ReleaseConnection - default value is to release the connection at the end (i.e. complete step 17) @sic R5-105005 sic@ + * @param p_NoOfEmergencyNumbers (default := 0) Only set this if the list of local emergency numbers should be included in Attach Accept (only for Emergency Call Tests) + * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) + * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_Step5_17(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_STATE_Type p_State, + EUTRA_ATTACH_Type p_ForcedAttach, + NAS_MSG_Indication_Type p_NAS_Ind, + boolean p_ReleaseConnection := true, + integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ + template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ + PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC // @sic R5-106611 sic@ + { /* @sic R5s100780 sic@ */ + + f_EUTRA_IdleUpdated_Step5_15(p_CellId, + p_State, + p_ForcedAttach, + p_NAS_Ind, + p_PDN_TypeToBeUsed, + -, + -, + -, + -, + p_NoOfEmergencyNumbers, // @sic R5s130681 sic@ + p_NtwkFeatSupport); // @sic R5s130681 sic@ + + f_EUTRA_IdleUpdated_Step16_17(p_CellId, + p_ReleaseConnection, + -, + p_NtwkFeatSupport); // @sic R5-144797: additional change - p_NtwkFeatSupport to be handed over sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc step 15 .. 17 of UE Registration acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_ReleaseConnection (default value: true) - default value is to release the connection at the end (i.e. complete step 17) @sic R5-105005 sic@ + * @param p_WaitForIMS (default value: waitForIMS) + * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) + * @param p_InitialRegistrationPDN (default value: firstPDN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_Step16_17(EUTRA_CellId_Type p_CellId, + boolean p_ReleaseConnection := true, + EUTRA_DelayForUserPlaneSignalling_Type p_WaitForIMS := waitForIMS, + template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ + EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN := firstPDN) runs on EUTRA_PTC + { /* @sic R5-112600: always delay of 1.2s (i.e. p_WaitForIMS := waitForIMS when calling f_EUTRA_NAS_AttachComplete) sic@ */ + /* @sic R5s130133 change 8: p_WaitForIMS added sic@ */ + /* @sic R5s150510: new parameter p_InitialRegistrationPDN sic@ */ + var EPS_BearerIdentity v_EpsBearerId := f_EUTRA_InitialRegistrationEpsBearerId(p_InitialRegistrationPDN); // @sic R5-144797 sic@ + var EUTRA_DelayForUserPlaneSignalling_Type v_WaitForIMS := p_WaitForIMS; + var boolean v_IMSVoiceSupported := false; + var boolean v_SecondPdnToBeReleased := false; + var template (value) B1_Type v_IMSSupport := '0'B; + + if (isvalue(p_NtwkFeatSupport)) { // @sic R5-130620 sic@ + v_IMSSupport := valueof(p_NtwkFeatSupport.imsVoPS); + if (match ('1'B, v_IMSSupport)) { + v_IMSVoiceSupported := true; + } + } + if (not v_IMSVoiceSupported and pc_voice_PS_1_CS_2 and pc_Attach) { // @sic R5-130620 sic@ + v_WaitForIMS := dontWaitForIMS; // @sic R5-144797: NOTE: acc. to the prose in this case there is no second PDN at all sic@ */ + } else if (tsc_EUTRA_Registration_MultiplePDN) { /* @sic R5-144797: multiple PDN sic@ */ + v_WaitForIMS := noDelay; /* In case of a second PDN connectivity request this may be sent immediately by the UE + => we cannot wait after the ATTACH_COMPLETE for any trigger from the IMS_PTC but need to do that after the second PDN connectivity is over */ + } + + f_EUTRA_NAS_AttachComplete(p_CellId, v_EpsBearerId, v_WaitForIMS); // step 16 @sic R5s110449 sic@ + + if (not v_IMSVoiceSupported and pc_voice_PS_1_CS_2 and pc_Attach) { // @sic R5-130620 sic@ + if (pc_TAU_connected_in_IMS) { // Steps 16a1-3 @sic R5-131455 sic@ + f_EUTRA_ConnectedMode_TAU(p_CellId, -, Combined, tsc_EpsUpdate_Combined_TaLaUpdate); + } + else if (pc_TAU_idle_in_IMS) { // Steps 16b1-6 @sic R5-131455 sic@ + f_EUTRA_RRC_ConnectionRelease(p_CellId); + f_EUTRA_TrackingAreaUpdate_Step1_5 (p_CellId, tsc_RRC_TI_Def, Combined, -, -, tsc_EpsUpdate_Combined_TaLaUpdate); + } + } else if (tsc_EUTRA_Registration_MultiplePDN) { // @sic R5-144797: support of multiple PDN registration sic@ + f_EUTRA_IdleUpdated_ConnectToAdditionalPDN(p_CellId, p_WaitForIMS); + v_SecondPdnToBeReleased := true; + } + + if (p_ReleaseConnection) { // @sic R5-105005 Some tests only want to do up to step 16 sic@ + f_EUTRA_RRC_ConnectionRelease(p_CellId); // step 17 @sic R5s150338: no v_DrbReleaseList anymore sic@ + if (v_SecondPdnToBeReleased) { // @sic R5-144797: support of multiple PDN registration sic@ + f_EUTRA_IdleUpdated_ReleaseSecondPDN(p_CellId); + } + } + } + + //---------------------------------------------------------------------------- + /* + * @desc step 5 .. 15 of UE Registration acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_State + * @param p_ForcedAttach + * @param p_NAS_Ind + * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ + * @param p_T3412 (default value: cs_GprsTimer_v_deact); @sic R5s100780 Default values for Attach Accept sic@ + * @param p_T3402 (default value: omit); @sic R5s100780 Default values for Attach Accept sic@ + * @param p_T3423 (default value: omit); @sic R5s100780 Default values for Attach Accept sic@ + * @param p_EquivalentPlmnList (default value: omit); @sic R5s100780 Default values for Attach Accept sic@ + * @param p_NoOfEmergencyNumbers (default value: 0); @sic R5s100780 Default values for Attach Accept sic@ + * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice); @sic R5s100780 Default values for Attach Accept sic@ + * @param p_EMM_Cause (default value: omit) + * @param p_InitialRegistrationPDN (default value: firstPDN) + * @return APNandPCOs_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_Step5_15(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_STATE_Type p_State, + EUTRA_ATTACH_Type p_ForcedAttach, + NAS_MSG_Indication_Type p_NAS_Ind, + PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE, + template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact, + template (omit) GPRS_Timer p_T3402 := omit, + template (omit) GPRS_Timer p_T3423 := omit, + template (omit) PLMN_List p_EquivalentPlmnList := omit, + integer p_NoOfEmergencyNumbers := 0, // @sic R5s130681 sic@ + template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, + template (omit) EMM_Cause p_EMM_Cause := omit, + EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN := firstPDN) + runs on EUTRA_PTC return APNandPCOs_Type + { /* @sic R5-110796: split into f_EUTRA_IdleUpdated_Step5_13 and f_EUTRA_IdleUpdated_Step14_15 sic@ */ + /* @sic R5s140560: return value sic@ */ + /* @sic R5-145971: new parameter p_EMM_Cause sic@ */ + /* @sic R5s150510: new parameter p_InitialRegistrationPDN sic@ */ + var template (omit) AdditionalUpdateType v_AdditionalUpdateType := p_NAS_Ind.Pdu.Msg.aTTACH_REQUEST.addUpdateType; /* @sic R5s110342 sic@ */ + var NAS_UL_Message_Type v_PdnConnectivityRequest := p_NAS_Ind.Pdu.PiggybackedPduList[0].Msg; + var ProcedureTransactionIdentifier v_EPS_TI := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier; + var template (value) ProtocolConfigOptions v_PcoToUE; + var template (omit) ProtocolConfigOptions v_PcoFromUE := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.protocolConfigurationOptions; // may be omit + var boolean v_IPv4AllocationViaNasFlag := f_CheckPCOforIPallocationViaNas(v_PcoFromUE); // See TS 36.508 v.8.2.2 Table 4.7.3-6 + var APNandPCOs_Type v_APNandPCOs := f_EUTRA_IdleUpdated_Step5_13(p_CellId, p_State, p_NAS_Ind); // @sic R5s130382 sic@ + var PDN_Index_Type v_PdnIndex := f_EUTRA_InitialRegistrationPdnIndex(p_InitialRegistrationPDN); // @sic R5-144797, R5s150510 sic@ + + if (ispresent(v_APNandPCOs.protocolConfigurationOptions)) { // @sic R5-133116 sic@ + v_PcoFromUE := v_APNandPCOs.protocolConfigurationOptions; + v_IPv4AllocationViaNasFlag := v_IPv4AllocationViaNasFlag and f_CheckPCOforIPallocationViaNas(v_PcoFromUE); + } + v_PcoToUE := f_GetDefaultProtocolConfigOptions(v_PcoFromUE, v_PdnIndex); // @sic R5-104703 sic@ + + f_EUTRA_IdleUpdated_Step14_15(p_CellId, + p_ForcedAttach, + v_AdditionalUpdateType, + v_EPS_TI, + v_IPv4AllocationViaNasFlag, + v_PcoToUE, + v_APNandPCOs.accessPointName, + p_PDN_TypeToBeUsed, + p_T3412, + p_T3402, + p_T3423, + p_EquivalentPlmnList, + p_NoOfEmergencyNumbers, + p_NtwkFeatSupport, + p_EMM_Cause, //@sic R5-145971 sic@ + p_InitialRegistrationPDN); //@sic R5s150510 sic@ + return v_APNandPCOs; /* @sic R5s140560 sic@ */ + } + + + /* + * @desc step 5 .. 13 of UE Registration acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_State + * @param p_NAS_Ind + * @return APNandPCOs_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_Step5_13(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_STATE_Type p_State, + NAS_MSG_Indication_Type p_NAS_Ind) runs on EUTRA_PTC return APNandPCOs_Type + { /* @sic R5-110796: split into f_EUTRA_IdleUpdated_Step5_13 and f_EUTRA_IdleUpdated_Step14_15 sic@ + the returned APNandPCOs_Type contains the valid APN (i.e. accessPointName is present) */ + var ProcedureTransactionIdentifier v_EPS_TI; + var NAS_UL_Message_Type v_PdnConnectivityRequest; + var template (present) SecurityHeaderType v_ExpectedSecurityHeader; // @sic R5s090373 sic@ + var NasCount_Type v_NasCountUL; + var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); + var APNandPCOs_Type v_APNandPCOs; + var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(p_CellId); + var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId (v_GutiParams.PLMN_Identity); + var DRB_Identity v_DrbForInternet; + var template (value) RadioBearerList_Type v_DrbConfigList := cs_DrbConfigList_DRB1; // per default DRB1 only + + // Set UE network capabilities as sent by the UE to be used later (see TS 24.301 clause 5.4.3.3) + v_AuthParams.NAS_SecurityCap := f_EUTRA_FillNAS_SecurityCapability(p_NAS_Ind.Pdu.Msg.aTTACH_REQUEST); // @sic R5s100135 sic@ + f_EUTRA_Security_Set(v_AuthParams); + + if (p_NAS_Ind.SecurityProtection.Status == tsc_SHT_NoSecurityProtection) { // @sic R5s090210, R5s090373 sic@ + v_ExpectedSecurityHeader := tsc_SHT_NoSecurityProtection; + } else { + v_ExpectedSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); + } + + v_PdnConnectivityRequest := p_NAS_Ind.Pdu.PiggybackedPduList[0].Msg; + v_EPS_TI := v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier; + + // Step 5-6: Authentication + v_AuthParams := f_EUTRA_NAS_Authentication(p_CellId, + tsc_SRB1, + v_AuthParams, + tsc_SHT_NoSecurityProtection, + v_ExpectedSecurityHeader, // @sic R5s090210, R5s090373 sic@ + v_PLMN); // AUTHENTICATION REQUEST & RESPONSE + // Step 7-8: NAS Security + v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId, v_AuthParams); // NAS SECURITY COMMAND & COMPLETE + + // Step 9a1 & 2 - ESM information optionally transferred; @sic R5-110708 sic@ + v_APNandPCOs := f_ESM_InitialRegistration_InitAPNandPCOs(p_CellId, f_CheckEsmInfoTransferFlag(v_PdnConnectivityRequest.pDN_CONNECTIVITY_REQUEST), v_EPS_TI); // @sic R5s130382 sic@ + + // optional + if (p_State == STATE2A_TESTLOOP_ModeA) { + f_EUTRA_Activate_TestMode (p_CellId, tsc_UE_TestLoopMode_TypeA); + f_EUTRA_LoopbackABIsActivated_Set(true); /* @sic R5-153971 sic@ */ + } + else if (p_State == STATE2A_TESTLOOP_ModeB) { + f_EUTRA_Activate_TestMode (p_CellId, tsc_UE_TestLoopMode_TypeB); + f_EUTRA_LoopbackABIsActivated_Set(true); /* @sic R5-153971 sic@ */ + } + else if (p_State == STATE2A_TESTLOOP_ModeC) { + f_EUTRA_Activate_TestMode (p_CellId, tsc_UE_TestLoopMode_TypeC); //@sic eMBMS sic@ + } + + if (tsc_EUTRA_Registration_MultiplePDN) { /* @sic R5-144797, R5s150338 sic@ */ + v_DrbForInternet := f_EUTRA_EpsBearerAssociatedDRB(tsc_EpsDefaultBearerId2ndPDN); + f_IP_Handling_Start(IP, PDN_Internet, cs_DrbInfo_EUTRA(p_CellId, v_DrbForInternet)); + v_DrbConfigList[1] := cs_OneDRB_ConfigAM(v_DrbForInternet); + } + + // Step 10-11: RRC Security Mode procedures + v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasCountUL, v_DrbConfigList); // RRC SECURITY COMMAND & COMPLETE @sic R5s150338: v_DrbConfigList sic@ + f_EUTRA_Security_Set(v_AuthParams); //Saving security parameters + + // Step 12-13 UE Capability check + f_EUTRA_Capability(p_CellId, tsc_RRC_TI_Def); // This enquires for the eutra capability but does not check the contents of the message received + + return v_APNandPCOs; + } + + /* + * @desc step 14 and 15 of UE Registration acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_ForcedAttach + * @param p_AdditionalUpdateType + * @param p_EPS_TI + * @param p_IPv4AllocationViaNasFlag + * @param p_PcoToUE + * @param p_APN + * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) + * @param p_T3412 (default value: cs_GprsTimer_v_deact + * @param p_T3402 (default value: omit) + * @param p_T3423 (default value: omit) + * @param p_EquivalentPlmnList (default value: omit) + * @param p_NoOfEmergencyNumbers (default value: 0) + * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) + * @param p_EMM_Cause (default value: omit); + * @param p_InitialRegistrationPDN (default value: firstPDN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_Step14_15(EUTRA_CellId_Type p_CellId, + EUTRA_ATTACH_Type p_ForcedAttach, + template (omit) AdditionalUpdateType p_AdditionalUpdateType, + ProcedureTransactionIdentifier p_EPS_TI, + boolean p_IPv4AllocationViaNasFlag, + template (omit) ProtocolConfigOptions p_PcoToUE, + AccessPointName p_APN, + PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE, + template (value) GPRS_Timer p_T3412 := cs_GprsTimer_v_deact, + template (omit) GPRS_Timer p_T3402 := omit, + template (omit) GPRS_Timer p_T3423 := omit, + template (omit) PLMN_List p_EquivalentPlmnList := omit, + integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ + template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, + template (omit) EMM_Cause p_EMM_Cause := omit, + EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN := firstPDN) runs on EUTRA_PTC + { /* @sic R5-112600: IP address allocation sic@ */ + /* @sic R5-110796: split into f_EUTRA_IdleUpdated_Step5_13 and f_EUTRA_IdleUpdated_Step14_15 sic@ */ + /* @sic R5-120234, R5-120541, R5-120542 sic@ */ + /* @sic R5-144370, R5-144797: p_APN shall not be omit sic@ */ + /* @sic R5-145971: new parameter p_EMM_Cause sic@ */ + /* @sic R5s150510: new parameter p_InitialRegistrationPDN sic@ */ + var NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(p_ForcedAttach); // @sic R5-103673, R5s100795 sic@ + + var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(p_CellId); + var template (value) MobileIdentity v_Guti := f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_GutiParams); + var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId (v_GutiParams.PLMN_Identity); + + var NAS_Lac v_LAC := f_EUTRA_CellInfo_GetLocationAreaCode(p_CellId); + var template (omit) LocAreaId v_LAI := f_GetLAI(v_PLMN, v_LAC, p_ForcedAttach); // @sic R5s110176 sic@ + var TrackingAreaCode v_TAC := f_EUTRA_CellInfo_GetTAC(p_CellId); + + var template (omit) EPS_NetworkFeatureSupport v_NtwkFeatSupport := p_NtwkFeatSupport; + var template (omit) EmergNumList v_EmergNumList := omit; + var template (omit) MobileIdentity v_MSId := f_GetMSId(p_ForcedAttach); // @sic R5-103673 sic@ + var PDN_Index_Type v_PdnIndex := f_EUTRA_InitialRegistrationPdnIndex(p_InitialRegistrationPDN); // @sic R5-144797, R5s150510 sic@ + var EPS_BearerIdentity v_EpsDefaultBearerId := f_EUTRA_InitialRegistrationEpsBearerId(p_InitialRegistrationPDN); // @sic R5-144797, R5s150510 sic@ + var template (omit) ESM_Cause v_ESM_Cause := omit; // @sic R5s120136 sic@ + var template (value) PDN_Address v_PDN_Address; + var EmergencyNumList v_EmergencyNumList; + + var BEARER_CONTEXT_TYPE v_BearerContextNumber := DEF_1; + + if (pc_IPv6 and pc_IPv4) { /* @sic R5-120234, R5-120541, R5-120542 sic@ */ + select (p_PDN_TypeToBeUsed) { + case (forceIPv4only) { v_ESM_Cause := cs_ESM_Cause_tv('00110010'B); } // PDN type IPv4 only allowed + case (forceIPv6only) { v_ESM_Cause := cs_ESM_Cause_tv('00110011'B); } // PDN type IPv6 only allowed + case (pdnTypeAsSupportedByUE) { v_ESM_Cause := omit; } + } + } + + // @sic R5s130681 sic@ + select (f_GetTestcaseAttrib_Eutra_Release(testcasename())) { // @sic R5s130508 sic@ + case ("","rel_10") { // rel8 or rel-10 - 36.508 just says rel-9 + } + case ("rel_9") { + v_NtwkFeatSupport.imsVoPS := '1'B; // @sic R5s130902 sic@ + v_NtwkFeatSupport.emcBS := '1'B; // @sic R5s130977 sic@ + } + case else {} + } + + if (p_NoOfEmergencyNumbers > 0) { + v_EmergencyNumList := f_Get_EmergencyNumList (p_NoOfEmergencyNumbers, f_EUTRA_MobileInfo_GetLocalEmergencyNumberList()); /* @sic R5s141315 sic@ */ + f_EUTRA_MobileInfo_SetLocalEmergencyNumberList (v_EmergencyNumList); // save the list of locally usable emergency numbers + v_EmergNumList := f_Build_EmergNumList(p_NoOfEmergencyNumbers, v_EmergencyNumList); + } + if (tsc_EUTRA_Registration_PDN1isIMS) { // @sic R5-144797, R5s141367 sic@ + v_BearerContextNumber := DEF_2; + } + + v_PDN_Address := f_EUTRA_GetPDNAddress(p_IPv4AllocationViaNasFlag, v_PdnIndex, p_PDN_TypeToBeUsed); + + f_EUTRA_RRCConnectionReconfigurationWithAttachAcceptAllParams(p_CellId, + v_EpsDefaultBearerId, // @sic R5-144797 sic@ + tsc_RRC_TI_Def, + p_EPS_TI, + v_AttachType, + v_PDN_Address, + v_Guti, + cs_TAIListNonConsecutive_lv(v_PLMN, {bit2oct(v_TAC)}), + v_LAI, + v_MSId, + v_ESM_Cause, // @sic R5-104703 sic@ + p_APN, + p_PcoToUE, + f_GetAdditionalUpdateResult(p_AdditionalUpdateType, p_ForcedAttach), // @sic R5s110176 sic@ + p_T3412, + p_T3402, + p_T3423, + p_EquivalentPlmnList, + v_EmergNumList, // @sic R5s130681 sic@ + v_NtwkFeatSupport, // @sic R5s130681 sic@ + -, + -, + v_BearerContextNumber, // @sic R5-144797 sic@ + p_EMM_Cause); // @sic R5-145971 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc UE Registration steps 1 - 4 acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_Type + * @param p_ForcedAttach + * @return NAS_MSG_Indication_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_Step1_4(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_Type p_Type, + EUTRA_ATTACH_Type p_ForcedAttach) runs on EUTRA_PTC return NAS_MSG_Indication_Type + { /* @sic R5s100780 sic@ */ + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(p_ForcedAttach); // @sic R5s110176 sic@ + var B3_Type v_PDNType := f_GetPdnType(); + var NAS_MSG_Indication_Type v_NAS_Ind; + var template (present) NAS_UL_Message_Type v_AttachReq; + var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (p_ForcedAttach); //used to follow TTCN3 v411 standard @sic R5s110176 sic@ + var template (present) SecurityHeaderType v_AttReqSecurityHeader; + + if (p_Type == PREAMBLE) { + v_AttReqSecurityHeader := (tsc_SHT_NoSecurityProtection, tsc_SHT_IntegrityProtected); + } + else { + v_AttReqSecurityHeader := tsc_SHT_IntegrityProtected; + } + + if (f_GetTestcaseAttrib_Eutra_SRVCC(testcasename())) { // @sic R5-142882 sic@ + v_AttachReq := cdr_ATTACH_REQUEST_SRVCC(v_AttachType, v_AdditionalUpdateType); // @sic R5-103681, R5s140074, R5-142882 sic@ + } else if (f_GetTestcaseAttrib_Eutra_NSLP(testcasename())) { // @sic R5-152072 sic@ + v_AttachReq := cdr_ATTACH_REQUEST_NSLP(v_AttachType, v_AdditionalUpdateType); + } else { + v_AttachReq := cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType); // @sic R5-103681 sic@ + } + // Receive RRC Connection Setup Complete with + v_NAS_Ind := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, + v_RRC_TI, + cr_EstablishmentCause_Any, + cr_NAS_IndicationWithPiggybacking(v_AttReqSecurityHeader, + v_AttachReq, + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, v_PDNType))); + + return v_NAS_Ind; + } + + //---------------------------------------------------------------------------- + /* + * @desc UE Registration acc. to 36.508 cl. 4.5.2 + * @param p_CellId + * @param p_Type + * @param p_State + * @param p_ForcedAttach (optional) + * @param p_NoOfEmergencyNumbers (default := 0) Only set this if the list of local emergency numbers should be included in Attach Accept (only for Emergency Call Tests) + * @param p_NtwkFeatSupport (default value: cs_EPS_NwkFtSup_IMSVoice) + * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) @sic R5-106611 R5-120234 sic@ + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated(EUTRA_CellId_Type p_CellId, + IDLEUPDATED_Type p_Type, + IDLEUPDATED_STATE_Type p_State, + EUTRA_ATTACH_Type p_ForcedAttach, + integer p_NoOfEmergencyNumbers := 0, // @sic R5-115673 sic@ + template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5-130620 sic@ + PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC + { /* @sic R5-106611 sic@ */ + var NAS_MSG_Indication_Type v_NAS_Ind; + + v_NAS_Ind := f_EUTRA_IdleUpdated_Step1_4 (p_CellId, p_Type, p_ForcedAttach); // @sic R5s100780, R5s110176 sic@ + + f_EUTRA_IdleUpdated_Step5_17 (p_CellId, p_State, p_ForcedAttach, v_NAS_Ind, true, p_NoOfEmergencyNumbers, p_NtwkFeatSupport, p_PDN_TypeToBeUsed); + } + + //============================================================================ + /* + * @desc 36.508 clause 4.5A.16 Step 1 .. 2 + * @param p_CellId + * @param p_EpsBearerId + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + altstep a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step1_2(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsBearerId) runs on EUTRA_PTC + { + var B3_Type v_PDNType := f_GetPdnType(); /* IPv4, IPv6 or IPv4v6 */ + var SRB_COMMON_IND v_ReceivedAsp; + var NAS_MSG_Indication_Type v_NasInd; + var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; + var ProcedureTransactionIdentifier v_PTId_UE; + var template (omit) ProtocolConfigOptions v_Pco; + var template (value) AccessPointName v_APN; + var PDN_Index_Type v_PdnIndex := f_EUTRA_InitialRegistrationPdnIndex(secondPDN); /* PDN_1 if IMS is second PDN, PDN_internet else */ + var DRB_Identity v_DRB_Id := f_EUTRA_EpsBearerAssociatedDRB(p_EpsBearerId); /* DRB1 or DRB8 */ + var PDN_Address v_PDN_Address; + var template (value) DRB_ToAddModList v_DRB_ToAddModList := { cs_508_DRB_ToAddMod_DEFAULT_AM(v_DRB_Id) }; + var BEARER_CONTEXT_TYPE v_BearerContextNumber := DEF_1; /* non-IMS */ + + + // Step 1. The UE transmits a PDN CONNECTIVITY REQUEST message to request an additional PDN. + [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_PDNConnReqAdditionalPDN(v_PDNType, + -, + -, + cr_ESMInfoTransferFlag_Any ifpresent)))) + -> value v_ReceivedAsp /* NOTE: acc. to the prose the ESM information transfer flag is still "Not present or any allowed value" + * nevertheless if the UE sets the ESM information transfer flag to true this may cause issues + * as the generic procedure does not handle any requested ESM information transfer */ + { + v_NasInd := v_ReceivedAsp.Signalling.Nas[0]; + v_PDNConnReq := v_NasInd.Pdu.Msg.pDN_CONNECTIVITY_REQUEST; + v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; + v_APN := f_ESM_InitialRegistration_EvaluateAPN(p_CellId, secondPDN, v_PDNConnReq.accessPointName); /* get APN without any ESM information transfer */ + v_Pco := v_PDNConnReq.protocolConfigurationOptions; + v_PDN_Address := f_EUTRA_GetPDNAddress(f_CheckPCOforIPallocationViaNas(v_Pco), v_PdnIndex); + v_Pco := f_GetDefaultProtocolConfigOptions(v_Pco, v_PdnIndex); + + if (tsc_EUTRA_Registration_PDN2isIMS) { /* for IMS @sic R5s141367 sic@ */ + v_BearerContextNumber := DEF_2; + } + + // Step 2. RRCConnectionReconfiguration message contains the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message. + SRB.send(cas_SRB1_RrcNasPdu_REQ(p_CellId, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_DRB_Reconfig(tsc_RRC_TI_Def, v_DRB_ToAddModList), + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, + cs_508_ActivateDefEpsBearerContextRequest(p_EpsBearerId, + v_PTId_UE, + v_APN, + v_PDN_Address, + -, + v_Pco, + v_BearerContextNumber)))); + } + } + + /* + * @desc 36.508 clause 4.5A.16 Step 3: Receive RRCConnectionReconfigurationComplete + * @param p_CellId + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + altstep a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step3(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + [] SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))) + {} + } + + /* + * @desc 36.508 clause 4.5A.16 Step 4: The UE transmits an ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message + * @param p_CellId + * @param p_EpsBearerId + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + altstep a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step4(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsBearerId) runs on EUTRA_PTC + { + [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActivateDefEpsBearerContextAccept(p_EpsBearerId)))) + {} + } + + /* + * @desc Generic Test Procedure to establish additional PDN connectivity (36.508 clause 4.5A.16) + * @param p_CellId + * @param p_WaitForIMS (default value: waitForIMS) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_ConnectToAdditionalPDN(EUTRA_CellId_Type p_CellId, + EUTRA_DelayForUserPlaneSignalling_Type p_WaitForIMS := waitForIMS) runs on EUTRA_PTC + { /* preconditions: + - connected mode: SRB1, SRB2 and one DRB + - DRB: either DRB1 (if IMS is first PDN) or DRB8 (if IMS is second PDN) + - IP routing is done for PDN_1 (as usual) and PDN_Internet (-> f_EUTRA_IdleUpdated_Step14_15) + - PDN_Internet is mapped to PDN_2 i.e. uses second set of AddressInfo */ + var EPS_BearerIdentity v_EpsBearerId := f_EUTRA_InitialRegistrationEpsBearerId(secondPDN); /* tsc_EpsDefaultBearerId or tsc_EpsDefaultBearerId2ndPDN */ + + a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step1_2(p_CellId, v_EpsBearerId); /* @sic R5s150001 sic@ */ + a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step3(p_CellId); /* @sic R5s150001 sic@ */ + a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step4(p_CellId, v_EpsBearerId); /* @sic R5s150001 sic@ */ + + // EXCEPTION: IP address allocation and/or IMS registration + f_EUTRA_DelayForUserPlaneSignalling(p_WaitForIMS); /* NOTE1: for multiple PDN if IMS is first PDN the IMS signalling will happen in parallel to the 2nd PDN connectivity procedure + * => we cannot wait after the ATTCH_COMPLETE but need to wait here for the trigger of the IMS_PDN + * NOTE2: in case of IMS test cases in general p_WaitForIMS is dontWaitForIMS and the RRC connection release is controlled by the IMS test case */ + } + + /* + * @desc altstep used for multiple PDN handling in preamble for C2K test cases: + * @param p_CellId + * @status APPROVED (LTE_IRAT) + */ + altstep a_EUTRA_IdleUpdated_ConnectToAdditionalPDN(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { /* preconditions: + - connected mode: SRB1, SRB2 and one DRB + - DRB: either DRB1 (if IMS is first PDN) or DRB8 (if IMS is second PDN) + - IP routing is done for PDN_1 (as usual) and PDN_Internet (-> f_EUTRA_IdleUpdated_Step14_15) + - PDN_Internet is mapped to PDN_2 i.e. uses second set of AddressInfo */ + var EPS_BearerIdentity v_EpsBearerId := f_EUTRA_InitialRegistrationEpsBearerId(secondPDN); /* tsc_EpsDefaultBearerId or tsc_EpsDefaultBearerId2ndPDN */ + var EUTRA_4_5A_16_State_Type v_State := f_EUTRA_4_5A_16_State_Get(); + + [v_State == step1_2] a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step1_2(p_CellId, v_EpsBearerId) { + f_EUTRA_4_5A_16_State_Set(step3); + } + [v_State == step3] a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step3(p_CellId) { + f_EUTRA_4_5A_16_State_Set(step4); + } + [v_State == step4] a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_Step4(p_CellId, v_EpsBearerId) { + f_EUTRA_4_5A_16_State_Set(finished); + } + } + + /* + * @desc DefaultHandler used for multiple PDN handling in preamble for C2K test cases + * @param p_CellId + * @status APPROVED (LTE_IRAT) + */ + altstep a_EUTRA_IdleUpdated_ConnectToAdditionalPDN_DefaultHandler(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + [] a_EUTRA_IdleUpdated_ConnectToAdditionalPDN(p_CellId) { repeat; } + } + + //============================================================================ + // Generic Test Procedure to release additional PDN connectivity (36.508 clause 4.5A.15, 4.5A.Z) + + /* + * @desc Generic Test Procedure for EPS Bearer Deactivation (TS 36.508 4.5A.15) + * @param p_CellId + * @param p_EpsDefBearerId (default value: tsc_EpsDefaultBearerId) + * @param p_PTId_UE (default value: tsc_PTI_Unassigned) + * @param p_EsmCauseValue (default value: tsc_ESM_Cause36_RegularDeactivation) + * @param p_T3396 (default value: omit) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_DeactivateEPS_BearerContext(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefBearerId := tsc_EpsDefaultBearerId, + ProcedureTransactionIdentifier p_PTId_UE := tsc_PTI_Unassigned, + B8_Type p_EsmCauseValue := tsc_ESM_Cause36_RegularDeactivation, + template (omit) GPRS_Timer3 p_T3396 := omit) + runs on EUTRA_PTC + { // @sic R5-140747 sic@ + /* @sic R5-144797: new parameters p_EsmCauseValue, p_T3396 sic@ */ + var EPS_BearerIdentity v_EpsBearerId := p_EpsDefBearerId; + var DRB_Identity v_DrbId := f_EUTRA_EpsBearerAssociatedDRB(v_EpsBearerId); + var template (value) ESM_Cause v_EsmCause := cs_ESM_Cause_v(p_EsmCauseValue); + + // The SS transmits a DEACTIVATE EPS BEARER CONTEXT REQUEST. + SRB.send(cas_SRB1_RrcNasPdu_REQ(p_CellId, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_DRB_Release(tsc_RRC_TI_Def, v_DrbId), + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, + cs_508_DeactivateEPSBearerCxtReq(v_EpsBearerId, + p_PTId_UE, + v_EsmCause, + p_T3396)))); + interleave { /* @sic R5-145774 sic@ */ + // receive RRCConnectionReconfigurationComplete + [] SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))) {} + + // The UE transmits a DEACTIVATE EPS BEARER CONTEXT ACCEPT message. + [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, // @sic R5s140579 sic@ + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_DeactivateEPSBearerCxtAccept(v_EpsBearerId)))) {} + } + f_EUTRA_SS_Release_SingleDRB(p_CellId, v_DrbId); /* @sic R5s150338 sic@ */ + } + + /* + * @desc Generic Test Procedure to establish additional PDN connectivity (36.508 clause 4.5A.17 and 4.5A.18) + * @param p_CellId + * @param p_EpsBearerId (default value: tsc_EpsDefaultBearerId2ndPDN) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_IdleUpdated_ReleaseSecondPDN(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsBearerId := tsc_EpsDefaultBearerId2ndPDN) runs on EUTRA_PTC + { /* @sic R5s150338, R5s150528: f_EUTRA_SS_Release_SingleDRB removed (as done in f_EUTRA_DeactivateEPS_BearerContext) sic@ */ + var DRB_Identity v_DrbForInternet := f_EUTRA_EpsBearerAssociatedDRB(p_EpsBearerId); + var LinkedEpsBearerIdentity v_LinkedEpsBearerId := {idValue := hex2bit(p_EpsBearerId)}; + var SRB_COMMON_IND v_ReceivedAsp; + var ProcedureTransactionIdentifier v_EpsTi; + var B8_Type v_EsmCauseValue; + var AccessStratumRelease v_Release; + var template (omit) GPRS_Timer3 v_T3396 := omit; + + if (pc_UE_supports_user_initiated_PDN_disconnect) { + // Step 1 + f_UT_DeactivateBearer(UT, hex2int(p_EpsBearerId)); + + // Step 2-8 + f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(p_CellId, -, -, -, -, -, -, -, -, -, -, -, -, v_DrbForInternet); // @sic R5s150338: additional parameter p_DrbConfigAtSS sic@ + + // Step 9: The UE transmits PDN DISCONNECT REQUEST + SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_PDNDisconnectReq(v_LinkedEpsBearerId)))) -> value v_ReceivedAsp; + v_EpsTi := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_DISCONNECT_REQUEST.procedureTransactionIdentifier; + v_EsmCauseValue := tsc_ESM_Cause36_RegularDeactivation; + } + else { + // Step 1-9 + f_EUTRA_GenericRbEst_Common(p_CellId, 0, 0, -, -, -, -, -, -, -, -, -, v_DrbForInternet); // @sic R5s150338: additional parameter p_DrbConfigAtSS sic@ + + v_EpsTi := tsc_PTI_Unassigned; + v_EsmCauseValue := tsc_ESM_Cause26_InsufficientResources; + + v_Release := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease(); + select (v_Release) { + case (rel8, rel9) {} + case else { v_T3396 := cs_GprsTimer3(omit, tsc_GprsTimerUnit_deact, '11111'B); } // @sic R5s150745 sic@ + } + } + + f_EUTRA_DeactivateEPS_BearerContext(p_CellId, p_EpsBearerId, v_EpsTi, v_EsmCauseValue, v_T3396); + f_IP_Handling_Stop(IP, cs_IP_StopPDN(PDN_Internet)); + + f_EUTRA_RRC_ConnectionRelease(p_CellId); + } + +} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_LoopBack.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_LoopBack.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_LoopBack.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_LoopBack.ttcn index c7a11f0..2784cfb 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_LoopBack.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_LoopBack.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-16 21:35:57 +0200 (Mon, 16 Jun 2014) $ -// $Rev: 11742 $ +// @version: IWD_15wk38 +// $Date: 2015-04-14 13:49:56 +0200 (Tue, 14 Apr 2015) $ +// $Rev: 13374 $ /******************************************************************************/ module EUTRA_LoopBack { import from CommonDefs all; @@ -230,17 +230,14 @@ module EUTRA_LoopBack { runs on EUTRA_PTC { /* @sic R5-090700: TT01 has been removed from 36.509 sic@ */ - f_IP_Handling_Stop(IP); /* @sic R5s100135: stop DHCP and routing of DRB1 to the IP PTC sic@ - @sic R5-106675 IP and IMS support sic@ - @sic R5-113734 change 8 sic@ */ + f_IP_Routing_ChangeToRawmode(IP); /* @sic R5s150074 - Additional change sic@ */ SRB.send (cas_SRB2_NasPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, cs_CLOSE_UE_TEST_LOOP_ModeA(p_UE_TestLoopModeA_LB_Setup)))); - SRB.receive (car_SRB2_NasPdu_IND( p_CellId, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_CLOSE_UE_TEST_LOOP_COMPLETE))); + SRB.receive (car_SRB2_NasPdu_IND(p_CellId, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_CLOSE_UE_TEST_LOOP_COMPLETE))); } /* @@ -254,9 +251,7 @@ module EUTRA_LoopBack { runs on EUTRA_PTC { /* @sic R5-090700: TT01 has been removed from 36.509 sic@ */ - f_IP_Handling_Stop(IP); /* @sic R5s100135: stop DHCP and routing of DRB1 to the IP PTC sic@ - @sic R5-106675 IP and IMS support sic@ - @sic R5-113734 change 8 sic@ */ + f_IP_Routing_ChangeToRawmode(IP); /* @sic R5s150074 - Additional change sic@ */ SRB.send (cas_SRB2_NasPdu_REQ(p_CellId, cs_TimingInfo_Now, @@ -280,9 +275,7 @@ module EUTRA_LoopBack { runs on EUTRA_PTC { /* @sic R5-090700: TT01 has been removed from 36.509 sic@ */ - f_IP_Handling_Stop(IP); /* @sic R5s100135: stop DHCP and routing of DRB1 to the IP PTC sic@ - @sic R5-106675 IP and IMS support sic@ - @sic R5-113734 change 8 sic@ */ + f_IP_Routing_ChangeToRawmode(IP); /* @sic R5s150074 - Additional change sic@ */ SRB.send (cas_SRB2_NasPdu_REQ(p_CellId, cs_TimingInfo_Now, diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Measurement_Functions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Measurement_Functions.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Measurement_Functions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Measurement_Functions.ttcn index 81c8551..0d12b3a 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Measurement_Functions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Measurement_Functions.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-03-05 17:49:33 +0100 (Wed, 05 Mar 2014) $ // $Rev: 10914 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_NASSteps.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_NASSteps.ttcn similarity index 62% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_NASSteps.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_NASSteps.ttcn index 6724c45..3a12879 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_NASSteps.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_NASSteps.ttcn @@ -2,16 +2,17 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 15:45:32 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12206 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 14:42:41 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14457 $ /******************************************************************************/ module EUTRA_NASSteps { import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from CommonDefs all; + import from CommonIP all; import from EUTRA_CommonDefs all; import from EUTRA_ASP_SrbDefs all; import from EUTRA_ASP_DrbDefs all; @@ -25,19 +26,25 @@ module EUTRA_NASSteps { import from EUTRA_CellCfg_Templates all; import from EUTRA_SRB_Templates all; import from EUTRA_RRCSteps all; + import from EUTRA_Paging all; import from EUTRA_Timing all; import from UpperTesterFunctions all; import from EUTRA_RRC_Templates all; import from EUTRA_DRB_Templates all; import from EPS_NAS_Templates all; import from NAS_CommonTemplates all; + import from NAS_AuxiliaryDefsAndFunctions all; + import from EUTRA_NASCommonTemplates all; import from Parameters all; import from EUTRA_SecuritySteps all; import from EUTRA_SecurityFunctions all; import from EUTRA_AuxiliaryFunctions all; import from EUTRA_ConfigurationSteps all; + import from IP_ASP_TypeDefs all; import from IP_PTC_CtrlMsgs all; + import from IP_PTC_Templates all; import from IMS_PTC_CoordMsg all; + import from IMS_CommonDefs all; import from EUTRA_ASP_NasCtrl all; import from EUTRA_ASP_TypeDefs all; @@ -54,9 +61,13 @@ module EUTRA_NASSteps { Combined }; - type enumerated EUTRA_DelayForUserPlaneSignalling_Type { noDelay, waitForIMS, dontWaitForIMS }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - type enumerated EUTRA_InitialRegistrationPDN_Type { firstPDN, secondPDN }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type enumerated PDN_TypeToBeUsed_Type { forceIPv4only, forceIPv6only, pdnTypeAsSupportedByUE }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + type enumerated EUTRA_DelayForUserPlaneSignalling_Type { noDelay, waitForIMS, dontWaitForIMS }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + type enumerated EUTRA_InitialRegistrationPDN_Type { firstPDN, secondPDN, emergencyPDN }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5-151104: emergencyPDN for emergency call (limited service) sic@ */ type record APNandPCOs_Type { /* @sic R5s130382 change 2 sic@ as the APN the PCOs may be sent by the UE in PDN CONNECTIVITY REQUEST or ESM INFORMATION RESPONSE @@ -66,14 +77,26 @@ module EUTRA_NASSteps { ProtocolConfigOptions protocolConfigurationOptions optional }; + type union DRB_ConfigurationAtSS_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + RadioBearerList_Type Specific, + Null_Type Preconfigured, + Null_Type Default + }; + + template (value) DRB_ConfigurationAtSS_Type cs_DRB_ConfigurationAtSS_Specific(template (value) RadioBearerList_Type p_RadioBearerList) := {Specific := p_RadioBearerList}; /* @status APPROVED (LTE) */ + const DRB_ConfigurationAtSS_Type tsc_DRB_ConfigurationAtSS_Preconfigured := {Preconfigured := true}; /* @status APPROVED (LTE) */ + const DRB_ConfigurationAtSS_Type tsc_DRB_ConfigurationAtSS_Default := {Default := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) NAS_UL_Message_Type cdr_TAU_Request_HO(template (present) EPS_UpdateTypeValue p_EpsUpdate_TypeValue, NAS_KsiValue p_KsiValue, template DRXparameter p_DRXparameter, // @sic R5s120210 sic@ - template AdditionalUpdateType p_AdditionalUpdateType) + template AdditionalUpdateType p_AdditionalUpdateType, + NAS_KsiValue p_KeySeq) modifies cr_508_TAU_Request := { /* @status APPROVED (LTE_A, LTE_IRAT) */ tRACKING_AREA_UPDATE_REQUEST := { - asmeNasKeySetId := cr_NAS_KeySetIdentifier ('000'B, tsc_NasKsi_MappedSecurityContext), + asmeNasKeySetId := cr_NAS_KeySetIdentifier (p_KeySeq, tsc_NasKsi_MappedSecurityContext), // @sic R5s140858 sic@ nonCurrentNativeNasKeySetId := cdr_NAS_KeySetIdentifier_tlv ('000'B, '0'B), oldPtmsiSignature := cr_PTMSI_SignatureAny, additionalGuti := cr_MobileIdAny ('50'O) @@ -87,6 +110,78 @@ module EUTRA_NASSteps { protocolConfigurationOptions := p_ProtocolConfigOptions }; + //---------------------------------------------------------------------------- + /* + * @desc Activate RTP/RTCP loopback + * @param p_CellId + * @param p_DrbId + * @param p_MediaPortRTP + * @param p_PdnIndex + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_SS_RtpRtcpLoopback(EUTRA_CellId_Type p_CellId, + DRB_Identity p_DrbId, + PortNumber_Type p_MediaPortRTP, + PDN_Index_Type p_PdnIndex) runs on EUTRA_PTC + { + var PortNumber_Type v_MediaPortRTCP := p_MediaPortRTP + 1; + var EUTRA_Ctrl_Type v_EUTRA_Ctrl := f_EUTRA_GlobalCtrl_Get(); + var boolean v_HandleULDataUM := ispresent(v_EUTRA_Ctrl.HandleUlDataUM); /* @sic R5-153746: no discarding UM data anymore; using loopback mode instead sic@ */ + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); + var template (value) IP_AddrInfo_Type v_IPv4Addr := cs_IPv4Addr(v_PDN_AddressInfo.Remote_IPAddressIPv4); + var template (value) IP_AddrInfo_Type v_IPv6Addr := cs_IPv4Addr(v_PDN_AddressInfo.Remote_IPAddressIPv6); + + if (v_HandleULDataUM) { + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, p_MediaPortRTP, v_IPv4Addr, p_CellId, p_DrbId, loopbackRTP); + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, v_MediaPortRTCP, v_IPv4Addr, p_CellId, p_DrbId, loopbackRTCP); + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, p_MediaPortRTP, v_IPv6Addr, p_CellId, p_DrbId, loopbackRTP); + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, v_MediaPortRTCP, v_IPv6Addr, p_CellId, p_DrbId, loopbackRTCP); + } + } + + //---------------------------------------------------------------------------- + /* + * @desc Add further AM or UM DRB at SS side + * @param p_CellId + * @param p_DrbConfigList + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_SS_ConnectedMode_AddDrbs(EUTRA_CellId_Type p_CellId, + template (omit) RadioBearerList_Type p_DrbConfigList) runs on EUTRA_PTC + { + if (ispresent(p_DrbConfigList)) { + f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, valueof(p_DrbConfigList)); + f_EUTRA_SS_RRC_RestartSecurity(p_CellId); + } + } + + /* + * @desc Add further AM DRB at SS side + * @param p_CellId + * @param p_DrbId + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_EUTRA_SS_ConnectedMode_AddAmDrb(EUTRA_CellId_Type p_CellId, + DRB_Identity p_DrbId) runs on EUTRA_PTC + { + var template (omit) RadioBearerList_Type v_DrbConfigList := f_EUTRA_SS_GetDrbConfigList(1, 0, p_DrbId); + f_EUTRA_SS_ConnectedMode_AddDrbs(p_CellId, v_DrbConfigList); + } + + /* + * @desc Add further UM DRB at SS side + * @param p_CellId + * @param p_DrbId + * @status APPROVED (LTE, LTE_A) + */ + function f_EUTRA_SS_ConnectedMode_AddUmDrb(EUTRA_CellId_Type p_CellId, + DRB_Identity p_DrbId) runs on EUTRA_PTC + { + var template (omit) RadioBearerList_Type v_DrbConfigList := f_EUTRA_SS_GetDrbConfigList(0, 1, p_DrbId); + f_EUTRA_SS_ConnectedMode_AddDrbs(p_CellId, v_DrbConfigList); + } + + //---------------------------------------------------------------------------- /* * @desc wrapper function * @param p_AccessPointName (default value: omit) @@ -101,16 +196,190 @@ module EUTRA_NASSteps { } /* - * @desc calculation of DRB_Identity associated to EpsBearerId - * @param p_EpsBearerId - * @return DRB_Identity + * @desc PDN Address TS 24.301 clause 9.9.4.9 (TV version IEI is omit) + * Default value according to TS 36.508 table 6.6.1-1 (which requires a 'static' value) and table 4.7.3-6 + * NOTE: Acc. to table 4.7.3-6 conditions IPv4 and IPv6 are corresponding to the PDN type sent in the previous PDN CONNECTIVITY REQUEST; + * but this is checked against f_GetPdnType what evaluates pc_IPv4 and pc_IPv6 i.e. the UE shall send the PDN type as expected acc. to pc_IPv4 and pc_IPv6 + * @param p_IPv4AllocationViaNas + * @param p_PdnIndex (default value: PDN_1) + * @param p_PDN_TypeToBeUsed (default value: pdnTypeAsSupportedByUE) + * @return PDN_Address * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_EUTRA_EpsBearerAssociatedDRB(HalfOctet_Type p_EpsBearerId) return DRB_Identity - { - return (hex2int(p_EpsBearerId) - 4); + function f_EUTRA_GetPDNAddress(boolean p_IPv4AllocationViaNas, + PDN_Index_Type p_PdnIndex := PDN_1, + PDN_TypeToBeUsed_Type p_PDN_TypeToBeUsed := pdnTypeAsSupportedByUE) runs on EUTRA_PTC return PDN_Address + { /* @sic R5-112600: Clarification to conditions for IP address configuration over user plane sic@ */ + /* @sic R5s130362 - MCC160 Implementation: tsc_PDN_AddressInfo; p_UseSecondAddress changed to p_PDN_Index sic@ */ + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); + var O4_Type v_Addr4 := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.UE_IPAddressIPv4); // @sic R5-113734, R5s130362sic@ + var octetstring v_Addr6:= f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.UE_IPAddressIPv6); // @sic R5-113734, R5s130362 sic@ + var Type4Length_Type v_IeLength; + var B3_Type v_TypeValue; + var octetstring v_AddressInfo; + var PDN_Address v_PDN_Address; + + // set IP addresses + v_Addr6 := substr(v_Addr6, 8, 8); // Use only the IPv6 interface identifier, which are the 8 least significant octets of theIPv6 address + + if (not p_IPv4AllocationViaNas) { // => IPv4 address via DHCP signalling (if IPv4) + v_Addr4 := '00000000'O; + } + + // set PDN TypeValue + select (p_PDN_TypeToBeUsed) { /* @sic R5-120234, R5-120541, R5-120542 sic@ */ + case (forceIPv4only) { + v_TypeValue := tsc_PdnType_IPv4; + } + case (forceIPv6only) { + v_TypeValue := tsc_PdnType_IPv6; + } + case (pdnTypeAsSupportedByUE) { + if (pc_IPv4 and pc_IPv6) { + v_TypeValue := tsc_PdnType_IPv4v6; + } + else if (pc_IPv4) { + v_TypeValue := tsc_PdnType_IPv4; + } + else if (pc_IPv6) { + v_TypeValue := tsc_PdnType_IPv6; + } + else { + FatalError(__FILE__, __LINE__, "neither IPv4 nor IPv6 are supported"); + } + } + } + + // set IE + select (v_TypeValue) { + case (tsc_PdnType_IPv4) { + v_IeLength := '05'O; + v_AddressInfo := v_Addr4; + } + case (tsc_PdnType_IPv6) { + v_IeLength := '09'O; + v_AddressInfo := v_Addr6; + } + case (tsc_PdnType_IPv4v6) { + v_IeLength := '0D'O; + v_AddressInfo := v_Addr6 & v_Addr4; + } + } + + f_EUTRA_MobileInfo_SetAssignedPdnType(v_TypeValue); + + v_PDN_Address := { + iei := omit, // '59'O, + iel := v_IeLength, + spare := tsc_Spare5, + typeValue := v_TypeValue, + adressInfo := v_AddressInfo + }; + + return v_PDN_Address; + }; + + //---------------------------------------------------------------------------- + + /* + * @desc Create TFT acc. to 36.508 Table 6.6.2-1 + * @param p_BearerContext .. Reference dedicated EPS bearer context #1, #2 + * @param p_EPS_BearerId (default value: tsc_EpsDedicatedBearerId) + * @param p_PdnTypeValue (default value: omit) + * @param p_PdnIndex (default value: PDN_1) + * @return template (value) TrafficFlowTemplate + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_Get_508_TrafficFlowTemplate(integer p_BearerContext, + EPS_BearerIdentity p_EPS_BearerId := tsc_EpsDedicatedBearerId, + template (omit) B3_Type p_PdnTypeValue := omit, + PDN_Index_Type p_PdnIndex := PDN_1) runs on EUTRA_PTC return template (value) TrafficFlowTemplate + { /* @sic R5-112600: to replace cs_508_Tft_Dedicated_1 and cs_508_Tft_Dedicated_2 sic@ */ + var integer v_PacketFilterLen1ByRef; + var integer v_PacketFilterLen2ByRef; + var template (value) PacketFilter v_PacketFilter1ByRef; + var template (value) PacketFilter v_PacketFilter2ByRef; + var template (value) TrafficFlowTemplate.packetFilterList v_PacketFilterList; + var integer v_IeLength; + var B3_Type v_PdnTypeValue; + + if (isvalue(p_PdnTypeValue)) { + v_PdnTypeValue := valueof(p_PdnTypeValue); + } else { + v_PdnTypeValue := f_EUTRA_MobileInfo_GetAssignedPdnType(); + } + select (p_BearerContext) { + case (1) { // @sic R5-123632 sic@ + f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 1, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #1 acc. to 36.508 Table 6.6.2-2 @sic R5s130495 sic@ + f_Get_508_PacketFilter(v_PacketFilter2ByRef, v_PacketFilterLen2ByRef, 2, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #2 acc. to 36.508 Table 6.6.2-3 @sic R5s130495 sic@ + + v_IeLength := v_PacketFilterLen1ByRef + v_PacketFilterLen2ByRef + 1; // packet filter 1 + packet filter 2 + one octet for tftOperationCode, eBit and noOfPktFilter + v_PacketFilterList := {v_PacketFilter1ByRef, v_PacketFilter2ByRef}; + } + case (2) { // @sic R5-123632, R5-132085 sic@ + f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 3, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #3 acc. to 36.508 Table 6.6.2-4 @sic R5s130495 sic@ + + v_IeLength := v_PacketFilterLen1ByRef + 1; // packet filter 1 + one octet for tftOperationCode, eBit and noOfPktFilter + v_PacketFilterList := {v_PacketFilter1ByRef}; + } + case (3) { // @sic R5-132085 sic@ + f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 5, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #3 acc. to 36.508 Table 6.6.2-4 @sic R5s130495 sic@ + + v_IeLength := v_PacketFilterLen1ByRef + 1; // packet filter 1 + one octet for tftOperationCode, eBit and noOfPktFilter + v_PacketFilterList := {v_PacketFilter1ByRef}; + } + case (4) { // @sic R5-132085 sic@ + f_Get_508_PacketFilter(v_PacketFilter1ByRef, v_PacketFilterLen1ByRef, 4, p_EPS_BearerId, v_PdnTypeValue, p_PdnIndex); // get packet filter #4 acc. to 36.508 Table 6.6.2-4 @sic R5s130495 sic@ + + v_IeLength := v_PacketFilterLen1ByRef + 1; // packet filter 1 + one octet for tftOperationCode, eBit and noOfPktFilter + v_PacketFilterList := {v_PacketFilter1ByRef}; + } + case else { + FatalError(__FILE__, __LINE__, "invalid bearer context"); + } + } + return cs_TrafficFlowTemplate(v_IeLength, v_PacketFilterList); + } + + /* + * @desc Create template to modify TrafficFlowTemplate + * @param p_EPS_BearerId + * @param p_PdnTypeValue (default value: omit) + * @return template (value) TrafficFlowTemplate + * @status APPROVED (LTE, LTE_IRAT) + */ + function f_EUTRA_Get_508_TrafficFlowTemplate_2_Modify(EPS_BearerIdentity p_EPS_BearerId, + template (omit) B3_Type p_PdnTypeValue := omit) runs on EUTRA_PTC return template (value) TrafficFlowTemplate + { /* @sic R5-112600: to replace cds_Tft_Dedicated_2_Modify sic@ */ + var template (value) TrafficFlowTemplate v_TrafficFlowTemplate := f_EUTRA_Get_508_TrafficFlowTemplate(2, p_EPS_BearerId, p_PdnTypeValue); + + v_TrafficFlowTemplate.iei := '36'O; + v_TrafficFlowTemplate.tftOperationCode := '100'B; // Replace TFT + v_TrafficFlowTemplate.packetFilterList[0].spare := '00'B; // @sic R5s130195 Baseline Moving sic@ + v_TrafficFlowTemplate.packetFilterList[0].direction := '11'B; // @sic R5s130195 Baseline Moving sic@ + v_TrafficFlowTemplate.packetFilterList[0].iei := '0'H; // @sic R5s130195 Baseline Moving sic@ + + return v_TrafficFlowTemplate; } + /* + * @desc Create template to add TrafficFlowTemplate + * @param p_EPS_BearerId + * @param p_PdnTypeValue (default value: omit) + * @return template (value) TrafficFlowTemplate + * @status APPROVED (LTE) + */ + function f_EUTRA_Get_508_TrafficFlowTemplate_2_Add(EPS_BearerIdentity p_EPS_BearerId, + template (omit) B3_Type p_PdnTypeValue := omit) runs on EUTRA_PTC return template (value) TrafficFlowTemplate + { /* @sic R5-112600: to replace cds_Tft_Dedicated_2_Modify sic@ */ + var template (value) TrafficFlowTemplate v_TrafficFlowTemplate := f_EUTRA_Get_508_TrafficFlowTemplate(2, p_EPS_BearerId, p_PdnTypeValue); + + v_TrafficFlowTemplate.iei := '36'O; + v_TrafficFlowTemplate.tftOperationCode := '011'B; // Add new TFT @sic R5s110008 sic@ + + return v_TrafficFlowTemplate; + } + // =========================================================================== /* * @desc Check correct setting of PICS and return true combined attach shall be applied @@ -253,7 +522,7 @@ module EUTRA_NASSteps { EUTRA_ATTACH_Type p_ForcedAttach) runs on EUTRA_PTC return template (omit) LocAreaId { var template (omit) LocAreaId v_LAI := omit; - if (f_EUTRA_AttachTypeCheck (p_ForcedAttach)) { // @sic R5s110176 sic@ + if (f_EUTRA_AttachTypeCheck(p_ForcedAttach)) { // @sic R5s110176 sic@ v_LAI := cs_LAI ('13'O, p_PLMN, p_LAC); } return v_LAI; @@ -315,7 +584,7 @@ module EUTRA_NASSteps { * @desc Extract UE security capabilities from TAU Request message and store for use later * @param p_TAU_REQUEST * @return UE_SecurityCapability - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_FillNAS_SecurityCapability_TAU (TRACKING_AREA_UPDATE_REQUEST p_TAU_REQUEST) return UE_SecurityCapability { /* @sic R5s110014 sic@ */ @@ -429,34 +698,6 @@ module EUTRA_NASSteps { return v_SecurityCapability; } - //---------------------------------------------------------------------------- - /* - * @desc This function calls NAS Security and RRC Security - * So in the majority of test cases, you don't need to do anything else - * @param p_CellId - * @param p_EIT_Flag - true if UE requested ESM Information Transfer procedure - * @param p_PTI - current ESM Procedure Transaction Identifier to be used - * @param p_SRB - * @return template (value) AccessPointName - * @status (APPROVED) - */ - function f_EUTRA_NAS_AS_Security(EUTRA_CellId_Type p_CellId, - boolean p_EIT_Flag, - ProcedureTransactionIdentifier p_PTI, - SRB_Identity_Type p_SRB) runs on EUTRA_PTC return template (value) AccessPointName - { - var NasCount_Type v_NasCountUL; - var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); - var template (value) AccessPointName v_APN; - - v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId,v_AuthParams, p_SRB); // NAS SECURITY COMMAND & COMPLETE - v_APN := f_ESM_InitAPN(p_CellId, p_EIT_Flag, p_PTI); // @sic R5s100751 Additional changes sic@ - - v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasCountUL); // RRC SECURITY COMMAND & COMPLETE - f_EUTRA_Security_Set(v_AuthParams); //Saving security parameters - return v_APN; - } - // =========================================================================== /* * @desc This function calls NAS Authentication, NAS Security and RRC Security @@ -498,7 +739,7 @@ module EUTRA_NASSteps { // NAS Security Mode Command / NAS Security Mode Complete v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId, v_AuthParams); - v_APN := f_ESM_InitAPN(p_CellId, p_EIT_Flag, p_PTI); // @sic R5s100751 Additional changes sic@ + v_APN := f_ESM_InitialRegistration_InitAPN(p_CellId, p_EIT_Flag, p_PTI); // @sic R5s100751 Additional changes sic@ // RRC Security Command / RRC Security Complete v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasCountUL); @@ -519,25 +760,34 @@ module EUTRA_NASSteps { /* @sic R5-123731 "Addition of guard timer to the procedure for IMS signalling" sic@ */ /* @sic R5s120891 - noDelay sic@ */ var boolean v_WaitForFirstTrigger := true; - timer t_WaitForIMS; + var boolean v_LoopbackABIsActivated := f_EUTRA_LoopbackABIsActivated_Get(); /* @sic R5-153971 sic@ */ + timer t_WaitForUPlaneSignalling; if (p_WaitForIMS != noDelay) { - if (pc_IMS and (p_WaitForIMS == waitForIMS)) { // 36.508 cl. 4.5A.3 @sic R5-123731 sic@ - t_WaitForIMS.start(10.0); + if (pc_IMS and (p_WaitForIMS == waitForIMS) and not v_LoopbackABIsActivated) { // 36.508 cl. 4.5A.3 @sic R5-123731, R5-153971 sic@ + t_WaitForUPlaneSignalling.start(10.0); alt { - [] t_WaitForIMS.timeout { + [] t_WaitForUPlaneSignalling.timeout { // just continue } [] IMS[tsc_Index_PDN1].receive(cmr_IMS_IPCAN_Trigger) { if (v_WaitForFirstTrigger) { // @sic R5s120727 change 1 sic@ - t_WaitForIMS.stop; + t_WaitForUPlaneSignalling.stop; v_WaitForFirstTrigger := false; repeat; // receive second trigger sent by IMS after registration has finished } } } } else { - f_Delay(1.2); + t_WaitForUPlaneSignalling.start(1.2); + alt { + [] t_WaitForUPlaneSignalling.timeout { + // just continue + } + [] IMS[tsc_Index_PDN1].receive(cmr_IMS_IPCAN_Trigger) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "IMS Registration even though loopback mode is activated"); /* @sic R5-153971 sic@ */ + } + } } } } @@ -558,6 +808,7 @@ module EUTRA_NASSteps { cr_NAS_IndicationWithPiggybacking(tsc_SHT_IntegrityProtected_Ciphered, cr_508_ATTACH_COMPLETE, cr_508_ActivateDefEpsBearerContextAccept(p_EpsBearerId)))); + f_EUTRA_Update_RANType(p_CellId); //Store the RAT mode of the current cell @sic R5s150293 sic@ f_EUTRA_DelayForUserPlaneSignalling(p_WaitForIMS); // @sic R5s110449 sic@ } @@ -601,8 +852,47 @@ module EUTRA_NASSteps { return v_NasInd; }; - - //---------------------------------------------------------------------------- + /* + * @desc Common function to send RRCConnectionReconfiguration containing on or several ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST message(s) and + * to receive the RRCConnectionReconfigurationComplete + * @param p_CellId + * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @param p_DRB_ToAddModList + * @param p_MAC_MainConfig + * @param p_NAS_MsgList + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_TxDedicatedEpsBearerCtxtReq_Common(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, + template (value) DRB_ToAddModList p_DRB_ToAddModList, + template (omit) MAC_MainConfig_Type p_MAC_MainConfig, + template (value) NAS_MSG_RequestList_Type p_NAS_MsgList) + runs on EUTRA_PTC + { /* RRC connection reconfiguration acc. to 36.331 cl. 5.3.5 */ + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var template (omit) DRX_Config v_DRX_Config := omit; + + if (lengthof(p_DRB_ToAddModList) != lengthof(p_NAS_MsgList)) { + FatalError(__FILE__, __LINE__, "number of DRBs to be added is not equal to the number of EPS bearers"); + } + + if (ispresent(p_MAC_MainConfig.explicitValue.drx_Config)) { + v_DRX_Config := p_MAC_MainConfig.explicitValue.drx_Config; + } + if (isvalue(v_DRX_Config)) { + f_EUTRA_SS_DrxCtrlConfig(p_CellId, cs_DrxCtrl_Config(valueof(v_DRX_Config))); /* configure DRX at the SS; @sic R5s140618 change 3 sic@ */ + } + + SRB.send(cas_SRB1_RrcNasPduList_REQ(p_CellId, + p_TimingInfo, + cs_RRCConnectionReconfiguration_DRB_Reconfig(v_RRC_TI, p_DRB_ToAddModList, p_MAC_MainConfig), + p_NAS_MsgList)); + + // receive RRCConnectionReconfigurationComplete + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, + cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); + } + /* * @desc configure a DRB at the UE: send RRCConnectionReconfiguration with piggy-backed ACTIVATE DEDICATED EPS BEARER CONTEXT REQUEST * @param p_CellId @@ -612,8 +902,8 @@ module EUTRA_NASSteps { * @param p_LinkedId * @param p_QoS * @param p_Tft - * @param p_RLC_Mode_Type - * @status APPROVED (IMS, LTE) + * @param p_RLC_Mode_Type (default value: AM_Mode) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_TxDedicatedEpsBearerCtxtReq(EUTRA_CellId_Type p_CellId, DRB_Identity p_DRB_Id, @@ -625,68 +915,225 @@ module EUTRA_NASSteps { RLC_Mode_Type p_RLC_Mode_Type := AM_Mode) runs on EUTRA_PTC { /* RRC connection reconfiguration acc. to 36.331 cl. 5.3.5 */ - var template (omit) DRX_Config v_DRX_Config; - var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := - cs_508_ActDedicatedEPSBearerCxtReq(p_Id, - p_ProcTi, - p_LinkedId, - p_QoS, - p_Tft); - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - var template (value) RadioResourceConfigDedicated v_RadioResourceConfigDedicated; - + /* @sic R5s141221 - Further changes by MCC10: use of f_EUTRA_TxDedicatedEpsBearerCtxtReq_Common sic@ */ + + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := cs_508_ActDedicatedEPSBearerCxtReq(p_Id, p_ProcTi, p_LinkedId, p_QoS, p_Tft); + var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReq)}; + var template (value) DRB_ToAddModList v_DRB_ToAddModList; + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := omit; + if (p_RLC_Mode_Type == AM_Mode) { - v_RadioResourceConfigDedicated := cs_508_RadioResourceConfigDedicated_AddAmDrb(p_DRB_Id); + v_DRB_ToAddModList := {cs_508_DRB_ToAddMod_DEFAULT_AM(p_DRB_Id)}; + f_EUTRA_SS_ConnectedMode_AddAmDrb(p_CellId, p_DRB_Id); /* @sic R5s150338 - dynamic DRB configuration sic@ */ } else { - v_RadioResourceConfigDedicated := cs_508_RadioResourceConfigDedicated_AddUmDrb(p_DRB_Id); - v_DRX_Config := f_GetUeDrxConfig(DRX_S); - if (isvalue(v_DRX_Config)) { - f_EUTRA_SS_DrxCtrlConfig(p_CellId, cs_DrxCtrl_Config(valueof(v_DRX_Config))); /* configure DRX at the SS; @sic R5s140618 change 3 sic@ */ - } + v_DRB_ToAddModList := {cs_508_DRB_ToAddMod_DEFAULT_UM(p_DRB_Id)}; + v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS; + f_EUTRA_SS_ConnectedMode_AddUmDrb(p_CellId, p_DRB_Id); /* @sic R5s150338 - dynamic DRB configuration sic@ */ + } + f_EUTRA_TxDedicatedEpsBearerCtxtReq_Common(p_CellId, -, v_DRB_ToAddModList, v_MAC_MainConfig, v_NAS_MsgList); + } + + /* + * @desc Activate one or several EPS bearers and receive the corresponding ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT message(s) + * @param p_CellId + * @param p_DRB_ToAddModList + * @param p_MAC_MainConfig + * @param p_NAS_MsgList + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function fl_EUTRA_ActivateDedicatedEpsBearer_UM(EUTRA_CellId_Type p_CellId, + template (value) DRB_ToAddModList p_DRB_ToAddModList, + template (omit) MAC_MainConfig_Type p_MAC_MainConfig, + template (value) NAS_MSG_RequestList_Type p_NAS_MsgList) + runs on EUTRA_PTC + { + var SRB_COMMON_IND v_ReceivedMsg; + var IntegerList_Type v_EpsBearerListTX := {}; + var IntegerList_Type v_EpsBearerListRX := {}; + var template (present) IntegerList_Type v_EpsBearerListExpected; + var template (value) RadioBearerList_Type v_RadioBearerList; + var integer n := lengthof(p_NAS_MsgList); + var integer i; + + + + + + + for (i := 0; i < n; i := i + 1) { /* @sic R5s150338 - dynamic DRB configuration sic@ */ + v_RadioBearerList[i] := f_EUTRA_SS_GetDrbConfigUM(valueof(p_DRB_ToAddModList[i].drb_Identity)); } + f_EUTRA_SS_ConnectedMode_AddDrbs(p_CellId, v_RadioBearerList); + + f_EUTRA_TxDedicatedEpsBearerCtxtReq_Common(p_CellId, -, p_DRB_ToAddModList, p_MAC_MainConfig, p_NAS_MsgList); + for (i:=0; i value v_ReceivedMsg; + v_EpsBearerListRX[i] := hex2int(v_ReceivedMsg.Signalling.Nas[0].Pdu.Msg.aCTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT.epsBearerId); + } + v_EpsBearerListExpected := {permutation(all from v_EpsBearerListTX)}; + if (not match(v_EpsBearerListRX, v_EpsBearerListExpected)) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "EPS bearer ids are different in ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST and ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT messages"); + } + } + + /* + * @desc return ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST for speech + * @param p_EpsDefaultBearerId (default value: tsc_EpsDefaultBearerId) + * @param p_EpsDedicatedBearerId (default value: tsc_EpsDedicatedBearerId) + * @param p_PdnIndex (default value: PDN_1) + * @param p_IsSRVCC (default value: false) + * @return template (value) NAS_DL_Message_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Speech(EPS_BearerIdentity p_EpsDefaultBearerId := tsc_EpsDefaultBearerId, + EPS_BearerIdentity p_EpsDedicatedBearerId := tsc_EpsDedicatedBearerId, + PDN_Index_Type p_PdnIndex := PDN_1, + boolean p_IsSRVCC := false) + runs on EUTRA_PTC return template (value) NAS_DL_Message_Type + { + var template (value) LinkedEpsBearerIdentity v_LinkedId := cs_LinkedId(hex2bit(p_EpsDefaultBearerId)); + var template (value) EPS_QualityOfService v_QoS := cds_EPS_QoS_Dedicated_4; /* EPS bearer context #4 (QCI 1) according to 36.508 table 6.6.2-1; @sic R5s130897 change 5 sic@ */ + var template (value) TrafficFlowTemplate v_Tft := f_EUTRA_Get_508_TrafficFlowTemplate(4, p_EpsDedicatedBearerId, -, p_PdnIndex); /* EPS bearer context #4 (QCI 1) according to 36.508 table 6.6.2-1; @sic R5s130897 change 5 sic@ */ + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq; - SRB.send(cas_SRB1_RrcNasPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_Common(v_RRC_TI, - omit, - omit, - v_RadioResourceConfigDedicated, - omit), - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - v_ActDedicatedEPSBearerCxtReq))); + if (p_IsSRVCC) { + v_ActDedicatedEPSBearerCxtReq := cs_508_ActDedicatedEPSBearerCxtReq_SRVCC(p_EpsDedicatedBearerId, tsc_PTI_Unassigned, v_LinkedId, v_QoS, v_Tft); + } else { + v_ActDedicatedEPSBearerCxtReq := cs_508_ActDedicatedEPSBearerCxtReq(p_EpsDedicatedBearerId, tsc_PTI_Unassigned, v_LinkedId, v_QoS, v_Tft); + } + return v_ActDedicatedEPSBearerCxtReq; + } + + /* + * @desc return ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST for video + * @param p_EpsDefaultBearerId (default value: tsc_EpsDefaultBearerId) + * @param p_EpsDedicatedBearerId (default value: tsc_EpsDedicatedBearerId2) + * @param p_PdnIndex (default value: PDN_1) + * @return template (value) NAS_DL_Message_Type + * @status APPROVED (IMS) + */ + function f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Video(EPS_BearerIdentity p_EpsDefaultBearerId := tsc_EpsDefaultBearerId, + EPS_BearerIdentity p_EpsDedicatedBearerId := tsc_EpsDedicatedBearerId2, + PDN_Index_Type p_PdnIndex := PDN_1) + runs on EUTRA_PTC return template (value) NAS_DL_Message_Type + { + var template (value) LinkedEpsBearerIdentity v_LinkedId := cs_LinkedId(hex2bit(p_EpsDefaultBearerId)); + var template (value) EPS_QualityOfService v_QoS := cds_EPS_QoS_Dedicated_3; /* EPS bearer context #3 (QCI 2) according to 36.508 table 6.6.2-1 */ + var template (value) TrafficFlowTemplate v_Tft := f_EUTRA_Get_508_TrafficFlowTemplate(3, p_EpsDedicatedBearerId, -, p_PdnIndex); /* EPS bearer context #3 (QCI 2) according to 36.508 table 6.6.2-1 */ + + return cs_508_ActDedicatedEPSBearerCxtReq(p_EpsDedicatedBearerId, tsc_PTI_Unassigned, v_LinkedId, v_QoS, v_Tft); + } + + /* + * @desc Activated EPS bearers for speech call + * @param p_CellId + * @param p_EpsDefaultBearerId (default value: tsc_EpsDefaultBearerId) + * @param p_EpsDedicatedBearerId (default value: tsc_EpsDedicatedBearerId) + * @param p_PdnIndex (default value: PDN_1) + * @param p_IsSRVCC (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_ActivateDedicatedEpsBearer_Speech(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefaultBearerId := tsc_EpsDefaultBearerId, + EPS_BearerIdentity p_EpsDedicatedBearerId := tsc_EpsDedicatedBearerId, + PDN_Index_Type p_PdnIndex := PDN_1, + boolean p_IsSRVCC := false) runs on EUTRA_PTC + { + var DRB_Identity v_DrbId := f_EUTRA_EpsBearerAssociatedDRB(p_EpsDedicatedBearerId); + var template (value) MAC_MainConfig_Type v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS; + var template (value) DRB_ToAddModList v_DRB_ToAddModList := {cs_508_DRB_ToAddMod_DEFAULT_UM(v_DrbId)}; + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Speech(p_EpsDefaultBearerId, p_EpsDedicatedBearerId, p_PdnIndex, p_IsSRVCC); + var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReq)}; + + f_EUTRA_SS_RtpRtcpLoopback(p_CellId, v_DrbId, tsc_IMS_MediaPort_M1, p_PdnIndex); /* @sic R5-153746: RTP/RTCP loopback sic@ */ + + fl_EUTRA_ActivateDedicatedEpsBearer_UM(p_CellId, v_DRB_ToAddModList, v_MAC_MainConfig, v_NAS_MsgList); + } + + /* + * @desc Add video to existing speech call + * @param p_CellId + * @param p_EpsDefaultBearerId (default value: tsc_EpsDefaultBearerId) + * @param p_EpsDedicatedBearerId (default value: tsc_EpsDedicatedBearerId2) + * @param p_PdnIndex (default value: PDN_1) + * @status APPROVED (IMS) + */ + function f_EUTRA_ActivateDedicatedEpsBearer_AddVideo(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefaultBearerId := tsc_EpsDefaultBearerId, + EPS_BearerIdentity p_EpsDedicatedBearerId := tsc_EpsDedicatedBearerId2, + PDN_Index_Type p_PdnIndex := PDN_1) runs on EUTRA_PTC + { /* to add video acc. to 36.508 4.5A.11 and 4.5A.12 */ + var DRB_Identity v_DrbId := f_EUTRA_EpsBearerAssociatedDRB(p_EpsDedicatedBearerId); + var template (value) MAC_MainConfig_Type v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS; /* @sic R5-145779: sic@ + acc. to discussions at RAN5#65 even though the short DRX is already configured + (and a real network would not re-configure DRX as long as nothing changes) + MAC_MainConfig is sent again with configuration for short DRX (as this should not harm) */ + var template (value) DRB_ToAddModList v_DRB_ToAddModList := {cs_508_DRB_ToAddMod_DEFAULT_UM(v_DrbId)}; + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Video(p_EpsDefaultBearerId, p_EpsDedicatedBearerId, p_PdnIndex); + var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReq)}; + + f_EUTRA_SS_RtpRtcpLoopback(p_CellId, v_DrbId, tsc_IMS_MediaPort_M2, p_PdnIndex); /* @sic R5-153746: RTP/RTCP loopback sic@ */ + + fl_EUTRA_ActivateDedicatedEpsBearer_UM(p_CellId, v_DRB_ToAddModList, v_MAC_MainConfig, v_NAS_MsgList); + } - // receive RRCConnectionReconfigurationComplete - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, - cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); + /* + * @desc Activated EPS bearers for video call (speech + video) + * @param p_CellId + * @param p_EpsDefaultBearerId (default value: tsc_EpsDefaultBearerId) + * @param p_EpsDedicatedBearerIdSpeech (default value: tsc_EpsDedicatedBearerId) + * @param p_EpsDedicatedBearerIdVideo (default value: tsc_EpsDedicatedBearerId2) + * @param p_PdnIndex (default value: PDN_1) + * @status APPROVED (IMS) + */ + function f_EUTRA_ActivateDedicatedEpsBearer_SpeechVideo(EUTRA_CellId_Type p_CellId, + EPS_BearerIdentity p_EpsDefaultBearerId := tsc_EpsDefaultBearerId, + EPS_BearerIdentity p_EpsDedicatedBearerIdSpeech := tsc_EpsDedicatedBearerId, + EPS_BearerIdentity p_EpsDedicatedBearerIdVideo := tsc_EpsDedicatedBearerId2, + PDN_Index_Type p_PdnIndex := PDN_1) runs on EUTRA_PTC + { + var DRB_Identity v_DrbIdSpeech := f_EUTRA_EpsBearerAssociatedDRB(p_EpsDedicatedBearerIdSpeech); + var DRB_Identity v_DrbIdVideo := f_EUTRA_EpsBearerAssociatedDRB(p_EpsDedicatedBearerIdVideo); + var template (value) MAC_MainConfig_Type v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS; + var template (value) DRB_ToAddModList v_DRB_ToAddModList := { + cs_508_DRB_ToAddMod_DEFAULT_UM(v_DrbIdSpeech), + cs_508_DRB_ToAddMod_DEFAULT_UM(v_DrbIdVideo) + }; + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReqSpeech := f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Speech(p_EpsDefaultBearerId, p_EpsDedicatedBearerIdSpeech, p_PdnIndex); + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReqVideo := f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Video(p_EpsDefaultBearerId, p_EpsDedicatedBearerIdVideo, p_PdnIndex); + var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := { + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReqSpeech), + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReqVideo) + }; + + f_EUTRA_SS_RtpRtcpLoopback(p_CellId, v_DrbIdSpeech, tsc_IMS_MediaPort_M1, p_PdnIndex); /* @sic R5-153746: RTP/RTCP loopback sic@ */ + f_EUTRA_SS_RtpRtcpLoopback(p_CellId, v_DrbIdVideo, tsc_IMS_MediaPort_M2, p_PdnIndex); /* @sic R5-153746: RTP/RTCP loopback sic@ */ + + fl_EUTRA_ActivateDedicatedEpsBearer_UM(p_CellId, v_DRB_ToAddModList, v_MAC_MainConfig, v_NAS_MsgList); } //---------------------------------------------------------------------------- /* - * @desc This function turns the UE off, waits for a Detach message and releases the RRC connection + * @desc returns the contents of a DETACH Message when the UE is switched off * @param p_CellId - * @param p_RRCState - * @param p_RRC_TI (default value: tsc_RRC_TI_Def) * @param p_ForcedAttach (default value: NORMAL) * @param p_DetachType (default value: omit - which means it will be determind by the function); @sic R5-103675 sic@ - * @param p_SelectedPlmnId (default value: 1) .. selectedPLMN-Identity as used in RRCConnectionSetupComplete (starting with 1) - * @param p_USIM_Rmvd + * @return template (present) NAS_MSG_Indication_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_EUTRA_UE_Detach_SwitchOffUe(EUTRA_CellId_Type p_CellId, - EUTRA_RRC_STATE_Type p_RRCState, - RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def, - EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, - template DetachType p_DetachType := omit, - integer p_SelectedPlmnId := 1, - boolean p_USIM_Rmvd := false) runs on EUTRA_PTC - { // @sic R5s11046: new parameter p_SelectedPlmnId sic@ + function fl_EUTRA_UE_Detach_SwitchOffUe_ExpectedDetachRequest(EUTRA_CellId_Type p_CellId, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + template DetachType p_DetachType := omit) + runs on EUTRA_PTC return template (present) NAS_MSG_Indication_Type + { // @sic R5s150190r1 sic@ var GutiParameters_Type v_Guti := f_EUTRA_CellInfo_GetGuti(p_CellId); - var template (present) NAS_MSG_Indication_Type v_ExpectedDetachRequest, v_ExpectedServiceRequest; - var NAS_MSG_Indication_Type v_NasInd; + var template (present) NAS_MSG_Indication_Type v_ExpectedDetachRequest; var template (present) DetachType v_DetachType; var NAS_AttDetValue_Type v_AttachType := f_GetEDetachType(p_ForcedAttach); // @sic R5s100538, R5s110176 sic@ - var NAS_KsiValue v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); if (ispresent(p_DetachType.typeOfDetach)) { // @sic R5-103675 sic@ v_DetachType := p_DetachType; // compiler warning cannot be suppressed as there is no way to convert 'template' to 'template (present)' @@ -694,62 +1141,161 @@ module EUTRA_NASSteps { v_DetachType := cr_DetachType('1'B, v_AttachType); } - v_ExpectedDetachRequest := - cr_NAS_Indication((tsc_SHT_IntegrityProtected, tsc_SHT_IntegrityProtected_Ciphered), - cr_508_DETACH_REQUEST_MO(cr_NAS_KeySetIdentifier (?, ?), // @sic R5s110031 sic@ - f_GutiParameters2MobileIdentity(omit, v_Guti), // @sic R5s090225, R5s090310 sic@ - v_DetachType)); // @sic R5-103675 sic@ - - v_ExpectedServiceRequest := cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue)); + v_ExpectedDetachRequest := cr_NAS_Indication((tsc_SHT_IntegrityProtected, tsc_SHT_IntegrityProtected_Ciphered), + cr_508_DETACH_REQUEST_MO(cr_NAS_KeySetIdentifier (?, ?), // @sic R5s110031 sic@ + f_GutiParameters2MobileIdentity(omit, v_Guti), // @sic R5s090225, R5s090310 sic@ + v_DetachType)); // @sic R5-103675 sic@ + return v_ExpectedDetachRequest; + } + + /* + * @desc This function contains the functionality to be performed in case RRC_IDLE of f_EUTRA_UE_Detach_SwitchOffUe + * @param p_CellId + * @param p_ExpectedDetachRequest + * @param p_ExpectedServiceRequest + * @param p_SelectedPlmnId (default value: 1) .. selectedPLMN-Identity as used in RRCConnectionSetupComplete (starting with 1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_UE_DetachMO_Idle(EUTRA_CellId_Type p_CellId, + template (present) NAS_MSG_Indication_Type p_ExpectedDetachRequest, + template (present) NAS_MSG_Indication_Type p_ExpectedServiceRequest, + integer p_SelectedPlmnId := 1) runs on EUTRA_PTC + { // @sic R5s150190r1, R5s150320 sic@ + var NAS_MSG_Indication_Type v_NasInd; + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, + v_RRC_TI, + ?, // @sic R5s100766 sic@ + (p_ExpectedDetachRequest, p_ExpectedServiceRequest), // @sic R5-131868 sic@ + p_SelectedPlmnId); // @sic R5s110468 sic@ + if (ischosen(v_NasInd.Pdu.Msg.sERVICE_REQUEST)) { // @sic R5-131868 sic@ + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(p_CellId, + v_RRC_TI, + v_NasInd.SecurityProtection.NasCount); + f_EUTRA_Update_RANType(p_CellId); //@sic R5s150293 sic@ + f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(p_CellId, v_RRC_TI); + // DRB configured, so when the UE has finished Deregistration on IMS, it will then send the Detach.. + SRB.receive(car_SRB2_NasPdu_IND(p_CellId, p_ExpectedDetachRequest)); + } + } - if (pc_SwitchOnOff or p_USIM_Rmvd and pc_USIM_Removal) // The UE can be switched off @sic R5s09225 sic@ or USIM removed @sic R5s120597r1 sic@ - { - f_UT_SwitchOffUE (UT, p_USIM_Rmvd); // @sic R5s100584 sic@ - select (p_RRCState) { - case (RRC_IDLE) { - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(p_CellId, - p_RRC_TI, ?, // @sic R5s100766 sic@ - (v_ExpectedDetachRequest, v_ExpectedServiceRequest), // @sic R5-131868 sic@ - p_SelectedPlmnId); // @sic R5s110468 sic@ - if (ischosen(v_NasInd.Pdu.Msg.sERVICE_REQUEST)) { // @sic R5-131868 sic@ - f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(p_CellId, - p_RRC_TI, - v_NasInd.SecurityProtection.NasCount, - 0, - 0, - omit, - omit, - omit, - omit, - omit, - true, - omit); - f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(p_CellId, - p_RRC_TI, - 0, - 0); - // DRB configured, so when the UE has finished Deregistration on IMS, it will then send the Detach.. - SRB.receive(car_SRB2_NasPdu_IND(p_CellId, v_ExpectedDetachRequest)); - } - } - case (RRC_CONNECTED) { - alt { - [] SRB.receive(car_SRB1_NasPdu_IND(p_CellId, v_ExpectedDetachRequest)) { } - [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, v_ExpectedDetachRequest)) { } - } - } - } - //Now the connection can be released - f_EUTRA_RRC_ConnectionRelease(p_CellId, p_RRC_TI); + /* + * @desc This function turns the UE off, waits for a Detach message in RRC IDLE state (default) or RRC CONNECTED state + * @param p_CellId + * @param p_RRCState (default value: RRC_IDLE) + * @param p_ForcedAttach (default value: NORMAL) + * @param p_DetachType (default value: omit - which means it will be determind by the function); @sic R5-103675 sic@ + * @param p_SelectedPlmnId (default value: 1) .. selectedPLMN-Identity as used in RRCConnectionSetupComplete (starting with 1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_UE_DetachMO(EUTRA_CellId_Type p_CellId, + EUTRA_RRC_STATE_Type p_RRCState := RRC_IDLE, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + template DetachType p_DetachType := omit, + integer p_SelectedPlmnId := 1)runs on EUTRA_PTC + { // @sic R5s11046: new parameter p_SelectedPlmnId sic@ + var NAS_KsiValue v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); + var template (present) NAS_MSG_Indication_Type v_ExpectedDetachRequest := fl_EUTRA_UE_Detach_SwitchOffUe_ExpectedDetachRequest(p_CellId, p_ForcedAttach, p_DetachType); // @sic R5s150190r1 sic@ + var template (present) NAS_MSG_Indication_Type v_ExpectedServiceRequest := cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue)); // @sic R5s150190r1 sic@ + + select (p_RRCState) { // @sic R5s150190 r2 sic@ + case (RRC_IDLE) { + f_EUTRA_UE_DetachMO_Idle(p_CellId, // @sic R5s150190r1 sic@ + v_ExpectedDetachRequest, + v_ExpectedServiceRequest, + p_SelectedPlmnId); + } + case (RRC_CONNECTED) { + alt { + [] SRB.receive(car_SRB1_NasPdu_IND(p_CellId, v_ExpectedDetachRequest)) { } + [] SRB.receive(car_SRB2_NasPdu_IND(p_CellId, v_ExpectedDetachRequest)) { } } - else // @sic R5s100584 sic@ - {// The power must be removed from the UE - f_UT_PowerOffUE (UT); - //Reset all RBs - f_EUTRA_SS_SRBs_DRBs_Reset(p_CellId); // @sic R5s110423 sic@ + } + } + } + + type enumerated EUTRA_UE_Detach_SwitchOffUe_UtCmd_Type {powerOff, switchOff, detach}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + /* + * @desc trigger detach/switch-off + * @param p_CellId + * @param p_UtCmd (default value: omit) + * @param p_USIM_Rmvd (default value: false) + * @return EUTRA_UE_Detach_SwitchOffUe_UtCmd_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_UE_Detach_SwitchOffUe_Trigger(EUTRA_CellId_Type p_CellId, + template (omit) EUTRA_UE_Detach_SwitchOffUe_UtCmd_Type p_UtCmd := omit, + boolean p_USIM_Rmvd := false) //@sic R5s140906 sic@ + runs on EUTRA_PTC return EUTRA_UE_Detach_SwitchOffUe_UtCmd_Type + { + var EUTRA_UE_Detach_SwitchOffUe_UtCmd_Type v_UtCmd; + + f_IP_ChangeDrbMappingEUTRA(IP, p_CellId, tsc_DRB1, PDN_1); /* Change IP routing table to allow IMS de-registration + * @sic R5s150057 change 4 sic@ + * @sic R5s150648 change 5.4 sic@ */ + if (isvalue(p_UtCmd)) { + v_UtCmd := valueof(p_UtCmd); + } + else if (pc_SwitchOnOff or p_USIM_Rmvd and pc_USIM_Removal) { // The UE can be switched off @sic R5s09225 sic@ or USIM removed @sic R5s120597r1 sic@ + v_UtCmd := switchOff; + } + else { + v_UtCmd := powerOff } - - } //end of f_EUTRA_UE_Detach_SwitchOffUe + select (v_UtCmd) { + case (powerOff) { + f_UT_PowerOffUE(UT); + } + case (switchOff) { + f_UT_SwitchOffUE(UT, p_USIM_Rmvd); // @sic R5s100584 sic@ + } + case (detach) { + f_UT_InitiateDetach(UT); + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + return v_UtCmd; + } + + /* + * @desc This function turns the UE off, waits for a Detach message and releases the RRC connection + * @param p_CellId + * @param p_RRCState + * @param p_ForcedAttach (default value: NORMAL) + * @param p_DetachType (default value: omit - which means it will be determind by the function); @sic R5-103675 sic@ + * @param p_SelectedPlmnId (default value: 1) .. selectedPLMN-Identity as used in RRCConnectionSetupComplete (starting with 1) + * @param p_USIM_Rmvd (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_UE_Detach_SwitchOffUe(EUTRA_CellId_Type p_CellId, + EUTRA_RRC_STATE_Type p_RRCState, + EUTRA_ATTACH_Type p_ForcedAttach := NORMAL, + template DetachType p_DetachType := omit, + integer p_SelectedPlmnId := 1, + boolean p_USIM_Rmvd := false) //@sic R5s140906 sic@ + runs on EUTRA_PTC + { // @sic R5s11046: new parameter p_SelectedPlmnId sic@ + // @sic R5s150320 sic@ + + var EUTRA_UE_Detach_SwitchOffUe_UtCmd_Type v_UtCmd := f_EUTRA_UE_Detach_SwitchOffUe_Trigger(p_CellId, omit, p_USIM_Rmvd); + + select (v_UtCmd) { + case (powerOff) { + //Reset all RBs + f_EUTRA_SS_SRBs_DRBs_Reset(p_CellId); // @sic R5s110423 sic@ + } + case else { + f_EUTRA_UE_DetachMO(p_CellId, p_RRCState, p_ForcedAttach, p_DetachType, p_SelectedPlmnId); + //Now the connection can be released + f_EUTRA_RRC_ConnectionRelease(p_CellId); + } + } + } + //---------------------------------------------------------------------------- /* * @desc Transmit TRACKING AREA UPDATE ACCEPT message and receive TRACKING AREA UPDATE COMPLETE @@ -1003,7 +1549,7 @@ module EUTRA_NASSteps { repeat; } } - } // f_EUTRA_TAU_Check + } //---------------------------------------------------------------------------- /* @@ -1067,33 +1613,36 @@ module EUTRA_NASSteps { * @return template (value) AccessPointName * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_ESM_EvaluateAPN(EUTRA_CellId_Type p_CellId, - EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN, - template (omit) AccessPointName p_APN := omit) runs on EUTRA_PTC return template (value) AccessPointName + function f_ESM_InitialRegistration_EvaluateAPN(EUTRA_CellId_Type p_CellId, + EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN, + template (omit) AccessPointName p_APN := omit) runs on EUTRA_PTC return template (value) AccessPointName { - var template (value) AccessPointName v_APN; - var octetstring v_APN_NetworkId; + var octetstring v_APN_NetworkId := ''O; - if ((p_InitialRegistrationPDN == firstPDN) and tsc_EUTRA_Registration_PDN1isIMS) { // @sic R5-110708 R5-144797 sic@ + if (p_InitialRegistrationPDN == emergencyPDN) { /* @sic R5s150227, R5-151104 sic@ */ + v_APN_NetworkId := f_DomainName_Encode("sos"); + } + else { if (ispresent(p_APN)) { - v_APN_NetworkId := valueof(p_APN.nameValue); // @sic R5-144370 sic@ - } else if (not pc_Provide_IMS_APN) { - v_APN_NetworkId := ''O; - } else { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid PICS setting for pc_Provide_IMS_APN"); // @sic R5-144370 sic@ + v_APN_NetworkId := valueof(p_APN.nameValue); // @sic R5-144370, R5s150430 sic@ } - // the template works out the length of the overall field - v_APN := cs_AccessPointName(f_EUTRA_GetAPNForIMS(p_CellId, v_APN_NetworkId)); - } else if ((p_InitialRegistrationPDN == secondPDN) and tsc_EUTRA_Registration_PDN2isIMS) { // @sic R5-144797 sic@ - v_APN := cs_AccessPointName(f_EUTRA_GetAPNForIMS(p_CellId)); - } else { - if (ispresent(v_APN)) { - v_APN := valueof(p_APN); - } else { - v_APN := cs_AccessPointName(px_AccessPointName); + + if (((p_InitialRegistrationPDN == firstPDN) and tsc_EUTRA_Registration_PDN1isIMS) or + ((p_InitialRegistrationPDN == secondPDN) and tsc_EUTRA_Registration_PDN2isIMS)) { /* => APN refers to IMS + @sic R5-110708 R5-144797 R5s141149 change 3 sic@ */ + if (tsc_EUTRA_Registration_PDN1isIMS and (ispresent(p_APN) != pc_Provide_IMS_APN)) { /* => pc_Provide_IMS_APN to be evaluated for the 1st PDN only */ + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid PICS setting for pc_Provide_IMS_APN"); // @sic R5-144370, R5s150227 sic@ + } + // the template works out the length of the overall field + v_APN_NetworkId := f_EUTRA_GetAPNForIMS(p_CellId, v_APN_NetworkId); // f_EUTRA_GetAPNForIMS: build up valid IMS APN + } + else { /* => APN does not refer to IMS */ + if (not ispresent(p_APN)) { // @sic R5s150216 change 1: v_APN -> p_APN; R5s150430 sic@ + v_APN_NetworkId := px_AccessPointName; + } } } - return v_APN; + return cs_AccessPointName(v_APN_NetworkId); } //---------------------------------------------------------------------------- @@ -1102,14 +1651,19 @@ module EUTRA_NASSteps { * @param p_CellId * @param p_EIT_Flag * @param p_PTI + * @param p_InitialRegistrationPDN (default value: firstPDN) * @return APNandPCOs_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_ESM_InitAPNandPCOs(EUTRA_CellId_Type p_CellId, - boolean p_EIT_Flag, - ProcedureTransactionIdentifier p_PTI) runs on EUTRA_PTC return APNandPCOs_Type - { /* @sic R5s130382: replaces former f_ESM_InitAPN sic@ */ + function f_ESM_InitialRegistration_InitAPNandPCOs(EUTRA_CellId_Type p_CellId, + boolean p_EIT_Flag, + ProcedureTransactionIdentifier p_PTI, + EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN := firstPDN) + runs on EUTRA_PTC return APNandPCOs_Type + { /* @sic R5s130382: replaces former f_ESM_InitialRegistration_InitAPN sic@ */ /* @sic R5-144797 - additional change: parameter p_APN removed (not used anywhere) sic@ */ + /* @sic R5s150227, R5-151104: p_InitialRegistrationPDN to allow to specify emergencyPDN for emergency call (limited service) sic@ */ + var APNandPCOs_Type v_APNandPCOs; var template (omit) AccessPointName v_APN := omit; var template (omit) ProtocolConfigOptions v_PCOs := omit; @@ -1119,7 +1673,7 @@ module EUTRA_NASSteps { v_APN := v_APNandPCOs.accessPointName; v_PCOs := v_APNandPCOs.protocolConfigurationOptions; } - v_APN := f_ESM_EvaluateAPN(p_CellId, firstPDN, v_APN); + v_APN := f_ESM_InitialRegistration_EvaluateAPN(p_CellId, p_InitialRegistrationPDN, v_APN); // @sic R5s150227 sic@ return f_APNandPCOs_Init(v_APN, v_PCOs); // NOTE: v_APN is not omit anymore } @@ -1128,17 +1682,21 @@ module EUTRA_NASSteps { * @param p_CellId * @param p_EIT_Flag * @param p_PTI + * @param p_InitialRegistrationPDN (default value: firstPDN) * @return AccessPointName * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function f_ESM_InitAPN(EUTRA_CellId_Type p_CellId, + function f_ESM_InitialRegistration_InitAPN(EUTRA_CellId_Type p_CellId, boolean p_EIT_Flag, - ProcedureTransactionIdentifier p_PTI) runs on EUTRA_PTC return AccessPointName + ProcedureTransactionIdentifier p_PTI, + EUTRA_InitialRegistrationPDN_Type p_InitialRegistrationPDN := firstPDN) + runs on EUTRA_PTC return AccessPointName { /* @sic R5s130382: changed to wrapper function sic@ */ /* @sic R5-144797 - addtional change: parameter p_APN removed (not used anywhere) sic@ */ + /* @sic R5s150227, R5-151104: p_InitialRegistrationPDN to allow to specify emergencyPDN for emergency call (limited service) sic@ */ - var APNandPCOs_Type v_APNandPCOs := f_ESM_InitAPNandPCOs(p_CellId, p_EIT_Flag, p_PTI); - return v_APNandPCOs.accessPointName; // NOTE: f_ESM_InitAPNandPCOs returns with accessPointName being present + var APNandPCOs_Type v_APNandPCOs := f_ESM_InitialRegistration_InitAPNandPCOs(p_CellId, p_EIT_Flag, p_PTI, p_InitialRegistrationPDN); // @sic R5s150227 sic@ + return v_APNandPCOs.accessPointName; // NOTE: f_ESM_InitialRegistration_InitAPNandPCOs returns with accessPointName being present } //---------------------------------------------------------------------------- @@ -1162,31 +1720,11 @@ module EUTRA_NASSteps { } return v_Label; } - - /* - * @desc Encode APN acc. to TS 23.003 cl. 9.1 - * @param p_LabelList - * @return octetstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) - */ - function f_APN_Encode(CharStringList_Type p_LabelList) return octetstring - { - var octetstring v_EncodedAPN := ''O; - var octetstring v_LabelOctets; - var integer v_Length; - var integer i; - - for (i := 0; i < lengthof(p_LabelList); i := i + 1) { - v_LabelOctets := char2oct(p_LabelList[i]); - v_Length := lengthof(v_LabelOctets); - v_EncodedAPN := v_EncodedAPN & int2oct(v_Length, 1) & v_LabelOctets; - } - return v_EncodedAPN; - } /* * @desc Creates the APN Name to be used if UE supports IMS, as defined in 36.508, Table 4.7.3-6 * @param p_CellId to get the PLMN Id of the cell + * @param p_APN_NetworkId (default value: ''O) * @return octetstring * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ @@ -1194,6 +1732,7 @@ module EUTRA_NASSteps { octetstring p_APN_NetworkId := ''O) runs on EUTRA_PTC return octetstring { /* @sic R5s130364: re-implementation sic@ */ /* @sic R5-144370: new parameter p_APN_NetworkId sic@ */ + /* @sic R5-153149: Network id either "IMS" or as given in ESM INFORMATION RESPONSE or PDN CONNECTIVITY REQUEST; operator id "mnc.mcc.gprs" sic@ */ var GutiParameters_Type v_Guti_Params := f_EUTRA_CellInfo_GetGuti(p_CellId); var PLMN_Identity v_PLMN := v_Guti_Params.PLMN_Identity; var charstring v_MNC := ""; @@ -1203,18 +1742,17 @@ module EUTRA_NASSteps { var CharStringList_Type v_LabelList; var integer i; - if (lengthof(p_APN_NetworkId) > 0) { /* @sic R5-144370 sic@ */ + if (lengthof(p_APN_NetworkId) > 0) { /* @sic R5-144370 sic@ */ v_APN_NetworkId := p_APN_NetworkId; } else { - v_LabelList := {"IMS", "apn", "epc"}; - v_APN_NetworkId := f_APN_Encode(v_LabelList); + v_APN_NetworkId := f_DomainName_EncodeLabels({"IMS"}); /* @sic R5s150673 sic@ */ } for (i := 0; i < lengthof(v_PLMN.mnc); i := i + 1) { v_MNC := v_MNC & int2str(v_PLMN.mnc[i]); } for (i := 0; i < lengthof(v_PLMN.mcc); i := i + 1) { v_MCC := v_MCC & int2str(v_PLMN.mnc[i]); } - v_LabelList := {f_APN_MccMncLabel("mnc", v_MNC), f_APN_MccMncLabel("mcc", v_MCC), "3gppnetwork", "org" }; /* @sic R5-144370 sic@ */ - v_APN_OperatorId := f_APN_Encode(v_LabelList); + v_LabelList := {f_APN_MccMncLabel("mnc", v_MNC), f_APN_MccMncLabel("mcc", v_MCC), "gprs" }; /* @sic R5-144370; R5-153149 sic@ */ + v_APN_OperatorId := f_DomainName_EncodeLabels(v_LabelList); return v_APN_NetworkId & v_APN_OperatorId; /* @sic R5-144370 sic@ */ } @@ -1243,6 +1781,7 @@ module EUTRA_NASSteps { * @param p_CellId * @param p_NoOfAddDRBs_AM no of add. AM bearers not including the default DRB * @param p_NoOfAddDRBs_UM no of add. UM bearers + * @param p_DrbConfigAtSS (default value: tsc_DRB_ConfigurationAtSS_Default) * @param p_DRB_ToAddModList p_NoOfAddDRBs_AM+p_NoOfAddDRBs_UM+1 elements or omit; * omit => default setiing acc. 36.508 cl. 4.8.2.1.7 * @param p_MAC_MainConfig omit => default setting acc. 36.508 cl. 4.8.2.1.5 @@ -1259,6 +1798,7 @@ module EUTRA_NASSteps { function f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(EUTRA_CellId_Type p_CellId, UInt_Type p_NoOfAddDRBs_AM := 0, UInt_Type p_NoOfAddDRBs_UM := 0, + template (value) DRB_ConfigurationAtSS_Type p_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default, template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit, template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit, @@ -1270,11 +1810,13 @@ module EUTRA_NASSteps { template (omit) DownlinkAntennaGroupConfig_Type p_DownlinkAntennaGroupConfig := omit, template (omit) DRB_Identity p_DrbFor2ndPDN := omit) runs on EUTRA_PTC { /* @sic R5-144797: new parameter p_DrbFor2ndPDN sic@ */ + /* @sic R5s150338: new parameter p_DrbConfigAtSS sic@ */ var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var NAS_MSG_Indication_Type v_NasInd; var NAS_KsiValue v_KsiValue; + // ===================================================== // step 3-10 of procedure in 36.508 cl. 4.5.3.3 @@ -1293,6 +1835,7 @@ module EUTRA_NASSteps { v_NasInd.SecurityProtection.NasCount, p_NoOfAddDRBs_AM, p_NoOfAddDRBs_UM, + p_DrbConfigAtSS, /* @sic R5s150338 sic@ */ p_DRB_ToAddModList, p_MAC_MainConfig, p_PhysicalConfigDedicated, @@ -1310,6 +1853,140 @@ module EUTRA_NASSteps { p_NoOfAddDRBs_UM); /* @sic R5s100315 sic@ */ } + //---------------------------------------------------------------------------- + /* + * @desc Generic Radio Bearer Establishment (State 3) + * If no Dedicated bearers are required, set p_NoOfAddDRBs_AM and p_NoOfAddDRBs_UM to 0 and p_QoS and p_Tft to omit + * Otherwise, at least 1 AM DRB will be configured + * @param p_CellId + * @param p_NoOfAddDRBs_AM + * @param p_NoOfAddDRBs_UM + * @param p_DrbConfigAtSS (default value: tsc_DRB_ConfigurationAtSS_Default) + * @param p_DRB_ToAddModList (default value: omit) + * p_NoOfAddDRBs_AM+p_NoOfAddDRBs_UM+1 elements or omit; + * omit => default setting acc. 36.508 cl. 4.8.2.1.7 + * @param p_MAC_MainConfig (default value: omit) + * omit => default setting acc. 36.508 cl. 4.8.2.1.5 + * @param p_PhysicalConfigDedicated (default value: omit) + * omit => default setting acc. 36.508 4.8.2.1.6 + * @param p_QoS (default value: omit) + * @param p_Tft (default value: omit) + * @param p_PDCP_StatusReportRequired (default value: true) + * @param p_RLF_TimersAndConstants_r9 (default value: omit) + * @param p_DownlinkAntennaGroupConfig (default value: omit) + * @param p_DrbFor2ndPDN (default value: omit) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_GenericRbEst_Common(EUTRA_CellId_Type p_CellId, + integer p_NoOfAddDRBs_AM, + integer p_NoOfAddDRBs_UM, + template (value) DRB_ConfigurationAtSS_Type p_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default, + template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit, + template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, + template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit, + template (omit) EPS_QoSList_Type p_QoS := omit, + template (omit) Tft_List_Type p_Tft := omit, + boolean p_PDCP_StatusReportRequired := true, + template (omit) RLF_TimersAndConstants_r9 p_RLF_TimersAndConstants_r9 := omit, + template (omit) DownlinkAntennaGroupConfig_Type p_DownlinkAntennaGroupConfig := omit, + template (omit) DRB_Identity p_DrbFor2ndPDN := omit) + runs on EUTRA_PTC + { /* @sic R5s130703 additional change: parameters p_DRB_ToAddModList, p_MAC_MainConfig, p_PhysicalConfigDedicated, p_QoS, p_Tft made optional sic@ */ + /* @sic R5-144797: new parameter p_DrbFor2ndPDN sic@ */ + /* @sic R5s150338: new parameter p_AddConfigDrbList sic@ */ + + var GutiParameters_Type v_GutiParameters := f_EUTRA_CellInfo_GetGuti(p_CellId); + + /* Step 2 */ + f_EUTRA_UE_Page(p_CellId, + cs_NasPaging_OneRecord(cs_PagingUE_Identity_S_TMSI(v_GutiParameters.MME_Code, v_GutiParameters.M_TMSI))); //@sic R5s100398 sic@ + + // Steps 3 - 10 + f_EUTRA_ServiceRequestAndActivate_SRB2_DRB(p_CellId, + p_NoOfAddDRBs_AM, + p_NoOfAddDRBs_UM, + p_DrbConfigAtSS, /* @sic R5s150338 sic@ */ + p_DRB_ToAddModList, + p_MAC_MainConfig, + p_PhysicalConfigDedicated, + p_QoS, + p_Tft, + p_PDCP_StatusReportRequired, + -, + p_RLF_TimersAndConstants_r9, // @sic R5s120808 sic@ + p_DownlinkAntennaGroupConfig, + p_DrbFor2ndPDN); + } + + //------------------------------------ + /* + * @desc Generic Radio Bearer Establishment (State 3) with exception that Time alignment timer is set to infinity + * @param p_CellId + * @status APPROVED (LTE) + */ + function f_EUTRA_GenericRbEst_TAInfinity(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + var template (omit) DRB_ToAddModList v_DRB_ToAddModList := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.7 */ + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cs_MAC_MainConfig_Explicit_TA_Infinity; // => apply MAC_Mainconfig_with_TAInfinity + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.6 */ + + f_EUTRA_GenericRbEst_Common(p_CellId, + 0, + 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338: use default DRB configuration at SS side sic@ + v_DRB_ToAddModList, + v_MAC_MainConfig, + v_PhysicalConfigDedicated); + } + + //------------------------------------ + /* + * @desc common generic function + * @param p_CellId + * @param p_NoOfAddDRBs_AM + * @param p_NoOfAddDRBs_UM + * @param p_QoS + * @param p_Tft + * @param p_RLF_TimersAndConstants_r9 (default value: omit) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_GenericRbEst(EUTRA_CellId_Type p_CellId, + integer p_NoOfAddDRBs_AM, + integer p_NoOfAddDRBs_UM, + template (omit) EPS_QoSList_Type p_QoS, + template (omit) Tft_List_Type p_Tft, + template (omit) RLF_TimersAndConstants_r9 p_RLF_TimersAndConstants_r9 := omit) runs on EUTRA_PTC + { + var template (omit) DRB_ToAddModList v_DRB_ToAddModList := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.7 */ + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.5 */ + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.6 */ + f_EUTRA_GenericRbEst_Common(p_CellId, + p_NoOfAddDRBs_AM, + p_NoOfAddDRBs_UM, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338: use default DRB configuration at SS side sic@ + v_DRB_ToAddModList, + v_MAC_MainConfig, + v_PhysicalConfigDedicated, + p_QoS, + p_Tft, + -, + p_RLF_TimersAndConstants_r9); // @sic R5s120808 sic@ + } + + //------------------------------------ + // wrapper functions + /* + * @desc no additional bearer will be configured + * @param p_CellId + * @param p_RLF_TimersAndConstants_r9 (default value: omit) + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_RbEst_Def(EUTRA_CellId_Type p_CellId, + template (omit) RLF_TimersAndConstants_r9 p_RLF_TimersAndConstants_r9 := omit) runs on EUTRA_PTC + { + f_EUTRA_GenericRbEst(p_CellId, 0, 0, omit, omit, p_RLF_TimersAndConstants_r9); // @sic R5s120808 sic@ + } + //---------------------------------------------------------------------------- /* * @desc Establishment of SRB2 + default DRB + n AM DRBs + m UM DRBs acc. to 36.508 cl. 4.5.3.2; @@ -1333,6 +2010,7 @@ module EUTRA_NASSteps { * @param p_NasCountUL needed for RRC Security * @param p_NoOfAddDRBs_AM no of add. AM bearers not including the default DRB * @param p_NoOfAddDRBs_UM no of add. UM bearers + * @param p_DrbConfigAtSS (default value: tsc_DRB_ConfigurationAtSS_Default) * @param p_DRB_ToAddModList p_NoOfAddDRBs_AM+p_NoOfAddDRBs_UM+1 elements or omit; * omit => default setiing acc. 36.508 cl. 4.8.2.1.7 * @param p_MAC_MainConfig omit => default setting acc. 36.508 cl. 4.8.2.1.5 @@ -1350,6 +2028,7 @@ module EUTRA_NASSteps { NasCount_Type p_NasCountUL, UInt_Type p_NoOfAddDRBs_AM := 0, UInt_Type p_NoOfAddDRBs_UM := 0, + template (value) DRB_ConfigurationAtSS_Type p_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default, template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit, template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit, @@ -1361,15 +2040,26 @@ module EUTRA_NASSteps { template (omit) DRB_Identity p_DrbFor2ndPDN := omit) runs on EUTRA_PTC { /* @sic R5-102180: Establishment of SRB2 and DRBs is split into 2 procedures for sending/receiving sic@ */ /* @sic R5-144797: new parameter p_DrbFor2ndPDN sic@ */ + /* @sic R5s150338: new parameter p_DrbConfigAtSS sic@ */ var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); + var template (omit) RadioBearerList_Type v_DrbConfigList; + var integer n; - // ===================================================== - // - + if (ischosen(p_DrbConfigAtSS.Specific)) { /* @sic R5s150338: new parameter p_DrbConfigAtSS sic@ */ + v_DrbConfigList := p_DrbConfigAtSS.Specific; + } + else if (ischosen(p_DrbConfigAtSS.Default)) { /* @sic R5s150338: new parameter p_DrbConfigAtSS sic@ */ + v_DrbConfigList := f_EUTRA_SS_GetDrbConfigList(p_NoOfAddDRBs_AM + 1, p_NoOfAddDRBs_UM, tsc_DRB1); /* default DRB + additional AM DRBs */ + if (ispresent(p_DrbFor2ndPDN)) { + n := lengthof(v_DrbConfigList); + v_DrbConfigList[n] := cs_OneDRB_ConfigAM(valueof(p_DrbFor2ndPDN)); + } + } + /* step 6-8 of procedure in 36.508 cl. 4.5.3.3 */ v_AuthParams := f_EUTRA_Authentication_InitAS(v_AuthParams, p_NasCountUL); - v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, p_NasCountUL); + v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, p_NasCountUL, v_DrbConfigList); /* @sic R5s150338: v_DrbConfigList sic@ */ f_EUTRA_Security_Set(v_AuthParams); /* Step 8 of procedure in 36.508 cl. 4.5.3.3 */ @@ -1638,6 +2328,8 @@ module EUTRA_NASSteps { * @param p_T3412Extd (default value: omit) * @param p_SecurityStatus (default value: tsc_SHT_IntegrityProtected_Ciphered) * @param p_BearerContextNumber (default value: omit) + * @param p_EMM_Cause (default value: omit) + * @param p_T3324 (default value: omit) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_RRCConnectionReconfigurationWithAttachAcceptAllParams(EUTRA_CellId_Type p_CellId, @@ -1662,11 +2354,14 @@ module EUTRA_NASSteps { template (omit) EPS_NetworkFeatureSupport p_NtwkFeatSupport := cs_EPS_NwkFtSup_IMSVoice, // @sic R5s100780 sic@ template (omit) GPRS_Timer3 p_T3412Extd := omit, SecurityHeaderType p_SecurityStatus := tsc_SHT_IntegrityProtected_Ciphered, - template (omit) BEARER_CONTEXT_TYPE p_BearerContextNumber := omit) + template (omit) BEARER_CONTEXT_TYPE p_BearerContextNumber := omit, + //@sic R5-145971 sic@ + template (omit) EMM_Cause p_EMM_Cause := omit, + template (omit) GPRS_Timer2 p_T3324 := omit) // @sic R5s150329 Baseline Moving sic@ runs on EUTRA_PTC { /* RRC connection reconfiguration acc. to 36.331 cl. 5.3.5 */ /* @sic R5-110796 Addition of 9.2.1.2.1d: f_GetAdditionalUpdateResult(p_RcvdAddUpdateType, p_ForcedAttach) replaced by p_AdditionalUpdateResult (p_RcvdAddUpdateType, p_ForcedAttach removed sic@ */ - /* @sic R5-144370: p_APN mandatory; has to be handed over => f_ESM_InitAPN or f_ESM_InitAPNandPCOs shall be used to initialise the APN sic@ */ + /* @sic R5-144370: p_APN mandatory; has to be handed over => f_ESM_InitialRegistration_InitAPN or f_ESM_InitialRegistration_InitAPNandPCOs shall be used to initialise the APN sic@ */ /* @sic R5-144797: new parameter p_BearerContextNumber sic@ */ var template (value) NAS_MSG_Request_Type v_NAS_MSG_Request; var template (value) AccessPointName v_APN := p_APN; /* @sic R5-144370: no evaluation of the APN in this function anymore sic@ */ @@ -1679,14 +2374,15 @@ module EUTRA_NASSteps { p_Guti, p_LAI, p_MSId, - omit, // @sic R5-104703 sic@ + p_EMM_Cause, // @sic R5-104703 R5-145971 sic@ p_T3402, p_T3423, p_EquivalentPlmnList, p_EmergNumList, p_NtwkFeatSupport, // @sic R5-103674 sic@ p_AdditionalUpdateResult, - p_T3412Extd), // @sic R5s1120178 Baseline Moving sic@ + p_T3412Extd, // @sic R5s1120178 Baseline Moving sic@ + p_T3324), // @sic R5s150329 Baseline Moving sic@ cs_508_ActivateDefEpsBearerContextRequest(p_EpsBearerId, p_EPS_TI, v_APN, @@ -1704,50 +2400,25 @@ module EUTRA_NASSteps { /* * @desc reconfigure one ore more DRBs * @param p_CellId - * @param p_RRC_TI * @param p_DrbList .. DRBs to be reconfigured * @param p_NAS_MsgList .. NAS messages corresponding to the DRBs - * @param p_RLC_Mode_Type .. all DRBs are either AM or UM DRBs - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(EUTRA_CellId_Type p_CellId, - RRC_TransactionIdentifier p_RRC_TI, - DRB_IdentityList_Type p_DrbList, - template (value) NAS_MSG_RequestList_Type p_NAS_MsgList, - RLC_Mode_Type p_RLC_Mode_Type := AM_Mode) + function f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_AmDrbReconfig(EUTRA_CellId_Type p_CellId, + DRB_IdentityList_Type p_DrbList, + template (value) NAS_MSG_RequestList_Type p_NAS_MsgList) runs on EUTRA_PTC - { - var template (omit) DRX_Config v_DRX_Config; + { /* @sic R5s150818 - Further changes: function handling AM bearers only sic@ */ var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := omit; var template (value) DRB_ToAddModList v_DRB_ToAddModList; var integer i; // EPS bearer contexts are to be activated with default parameters. - if (p_RLC_Mode_Type == AM_Mode) { // @sic R5s110340 ch. 8 sic@ - for (i:=0; i value v_ReceivedAsp; // Send this back in the Accept @@ -1909,13 +2658,15 @@ module EUTRA_NASSteps { SRB.send(cas_SRB2_NasPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_TAU_Accept(v_UpdateResult, // @sic R5s120490 sic@ - f_GutiParameters2MobileIdentity (tsc_IEI_Guti, v_GutiParams), - v_TaiList, - v_EPS_ContextStatus, - v_LAI, - v_MSId, - f_GetAdditionalUpdateResult(v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType))))); + cs_TAU_Accept_EPLMN(v_UpdateResult, // @sic R5s120490 sic@ + f_GutiParameters2MobileIdentity (tsc_IEI_Guti, v_GutiParams), + v_TaiList, + v_EPS_ContextStatus, + v_LAI, + v_MSId, + f_GetAdditionalUpdateResult(v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType), + p_EPLMNlist)))); //@sic R5s150513 sic@ + /* Step 3: The UE transmits a ULInformationTransfer message @@ -1923,7 +2674,7 @@ module EUTRA_NASSteps { SRB.receive(car_SRB2_NasPdu_IND(p_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_508_TAU_Complete))); - + /* Now complete Authentication process if the UE comes from UTRAN cell without proper authentication parameters */ if (f_EUTRA_SecurityKSIasme_Get() == '111'B) { @@ -1940,15 +2691,35 @@ module EUTRA_NASSteps { /* StepS 5&6: The SS transmits a NAS SECURITY MODE COMMAND message to activate NAS security. <-- SECURITY MODE COMMAND - + The UE transmits a NAS SECURITY MODE COMPLETE message and establishes the initial security configuration. --> SECURITY MODE COMPLETE */ f_EUTRA_SS_NAS_CountSet (p_NasCountInfo.DL, p_NasCountInfo.UL); // @sic R5s102535 sic@ f_EUTRA_Security_Set(p_Auth_Params_Native); // @sic R5s102535 sic@ - v_NasCountUL := f_EUTRA_NAS_ActivateSecurity(p_CellId, p_Auth_Params_Native, tsc_SRB2, omit); // @sic R5s102535 sic@ - v_SecurityParams := f_EUTRA_Security_Get (); // @sic R5s102535 sic@ + return f_EUTRA_NAS_ActivateSecurity(p_CellId, p_Auth_Params_Native, tsc_SRB2, omit); // @sic R5s102535 sic@ + } + + /* + * @desc Test procedure to check that UE performs tracking area updating procedure + * without ISR and security reconfiguration after successful completion of handover from UTRA, + * see TS 36.508 subclause 6.4.2.10 + * @param p_CellId + * @param p_NasCountUL + * @param p_Rel10 (default value: false) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_EUTRA_508Check_TrackingAreaUpdating_AfterHO_Steps7to8(EUTRA_CellId_Type p_CellId, + NasCount_Type p_NasCountUL, + boolean p_Rel10 := false) runs on EUTRA_PTC //@sic R5s150513 sic@ + { + var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); + var Frequency_IE_Type v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(p_CellId); + var CarrierFreqEUTRA v_EUTRA_CarrierFreq := v_Frequency_IE.UL_DL_Earfcn; + var template (value) CarrierBandwidthEUTRA v_EUTRA_CarrierBandwidth := cs_CarrierBandwidthEUTRA(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth); + var SubFrameTiming_Type v_Timing; + v_SecurityParams := f_EUTRA_Security_Get (); // @sic R5s102535 sic@ // Step7 /* SS performs an RRC Connection Reconfiguration procedure with intra cell handover and security reconfiguration on the cell */ @@ -1961,23 +2732,18 @@ module EUTRA_NASSteps { v_EUTRA_CarrierBandwidth, 1), cs_508SecurityConfigHO_IntraLTE_Native, // @sic R5s120535 sic@ - cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number)); + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), //@sic R5s150650 sic@ + p_Rel10); /* Note: current implementation releases SRBs and reconfigures C-RNTI 5ms after sending the RRCConnectionReconfiguration => RLC ACK is not taken into consideration */ + /* @sic R5s150807 sic@ v_Timing := f_EUTRA_TimingInfoAdd(v_Timing, 5); // add 5ms // Release SRBs and DRBs f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number)); - // Configure C-RNTI based contention resolution in cell - /* f_EUTRA_SS_ConfigRachProcedure ( p_CellId, - tsc_C_RNTI_Def2, - cs_RachProcedureConfig_CRNTI ( f_EUTRA_CellInfo_GetRAR_TA ( p_CellId ), - f_EUTRA_CellInfo_GetDL_ChBandwidth(p_CellId)),// @sic R5-103846 sic@ - cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number));*/ - // @sic R5s100516 change 10 sic@ f_EUTRA_SS_ConfigRachProcedure_HO(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), @@ -1989,23 +2755,48 @@ module EUTRA_NASSteps { // Setup SRBs and DRBs again v_Timing := f_EUTRA_TimingInfoAdd(v_Timing, 5); // add 5ms f_EUTRA_SS_SRBs_DRBs_Config(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number)); - + */ // Enable RRC Integrity and Ciphering at SS target cell v_SecurityParams := f_EUTRA_AS_ActivateSecurity_NewAKA(p_CellId, v_SecurityParams, - v_NasCountUL, + p_NasCountUL, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number)); f_EUTRA_Security_Set(v_SecurityParams); - + /* Step 8: Receive RRCConnectionReconfigurationComplete */ SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - + /* RRCConnectionReconfigurationComplete correctly received on the cell */ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "36.508 Subclause 6.4.2.10 Step 8"); - + // @sic R5s100520 change 11 sic@ // configure RACH procedure for target cell back to default f_EUTRA_SS_ConfigRachProcedure_Def(p_CellId); /* @sic acc. to R5s100029 change 3 sic@ */ } + + /* + * @desc RRC connection setup procedure to receive a Service Req message, without the RRC Connection Req + * @param p_CellId + * @param p_RRC_TI + * @return NAS_MSG_Indication_Type + * @status + */ + function f_EUTRA_ServiceReq_WithoutRrcConnReq(EUTRA_CellId_Type p_CellId, + RRC_TransactionIdentifier p_RRC_TI) runs on EUTRA_PTC return NAS_MSG_Indication_Type + { + var NAS_KsiValue v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); + var NAS_MSG_Indication_Type v_NasInd; + f_EUTRA_RRC_ConnectionSetup_Def (p_CellId, -, p_RRC_TI); + + // UE shall establish SRB1 acc. to 36.331 cl. 5.3.3.4 and 5.3.9 + // UE enters RRC_CONNECTED state + + // receive RRC Connection Setup Complete with piggy-backed NAS message on SRB1 (DCCH): + v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(p_CellId, + cr_508_RRCConnectionSetupComplete(p_RRC_TI, ?), + cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_508_SERVICE_REQUEST(v_KsiValue))); + return v_NasInd; + } } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn index dae0fc7..8d7a982 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_NasSecurityProcedures.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// * $Date: 2014-09-05 19:10:47 +0200 (Fri, 05 Sep 2014) $ -// * $Rev: 12078 $ +// @version: IWD_15wk38 +// * $Date: 2015-06-17 14:41:28 +0200 (Wed, 17 Jun 2015) $ +// * $Rev: 13929 $ // *************************************************************************** module EUTRA_NasSecurityProcedures { @@ -21,7 +21,7 @@ module EUTRA_NasSecurityProcedures { import from EUTRA_AspCommon_Templates all; import from EUTRA_SecurityFunctions all; import from EUTRA_SecuritySteps all; - import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from NAS_CommonTypeDefs all; import from EPS_NAS_TypeDefs all; import from EPS_NAS_Constants all; @@ -142,11 +142,9 @@ module EUTRA_NasSecurityProcedures { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6"); //@siclog "Steps 6a1 - 6a2" siclog@ - v_APN := f_ESM_InitAPN(eutra_CellA, f_CheckEsmInfoTransferFlag(v_NasInd.Pdu.PiggybackedPduList[0].Msg.pDN_CONNECTIVITY_REQUEST), v_EpsPti); // @sic R5-110708 sic@ + v_APN := f_ESM_InitialRegistration_InitAPN(eutra_CellA, f_CheckEsmInfoTransferFlag(v_NasInd.Pdu.PiggybackedPduList[0].Msg.pDN_CONNECTIVITY_REQUEST), v_EpsPti); // @sic R5-110708 sic@ - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, - v_SecurityParams, - v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, v_SecurityParams, v_NasCountUL); f_EUTRA_Security_Set(v_SecurityParams); //+ The SS transmits an ATTACH ACCEPT message. <-- ATTACH ACCEPT diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Paging.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Paging.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Paging.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Paging.ttcn index 9271fef..ea6ab8f 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Paging.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Paging.ttcn @@ -2,19 +2,15 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-02-02 20:48:35 +0100 (Sun, 02 Feb 2014) $ -// $Rev: 10477 $ +// @version: IWD_15wk38 +// $Date: 2015-08-23 21:18:08 +0200 (Sun, 23 Aug 2015) $ +// $Rev: 14107 $ /******************************************************************************/ module EUTRA_Paging { -//========================================================================= -// Import Part -//========================================================================= - import from CommonDefs all; import from EUTRA_CommonDefs all; import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; @@ -42,10 +38,10 @@ module EUTRA_Paging * and also to calculate for possible delay in SS & TTCN. * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ -//========================================================================= -// Templates -//========================================================================= - + //========================================================================= + // Templates + //========================================================================= + template (value) PagingUE_Identity cs_PagingUE_Identity_S_TMSI(MMEC p_Mmec, M_TMSI_Type p_M_Tmsi) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_PdcchConfig.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_PdcchConfig.ttcn similarity index 89% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_PdcchConfig.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_PdcchConfig.ttcn index 00e964a..ba3d5c2 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_PdcchConfig.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_PdcchConfig.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-03-04 17:24:59 +0100 (Tue, 04 Mar 2014) $ -// $Rev: 10861 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ /******************************************************************************/ module EUTRA_PdcchConfig { @@ -27,8 +27,8 @@ module EUTRA_PdcchConfig { { /* @sic R5-101050: introduction of candidates for 10MHz sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(14, 16), // subframe 2 @@ -42,8 +42,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL(16, 18), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -57,8 +57,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 18), // subframe 0 cs_CCE_StartIndex_DL_UL(10, 12), // subframe 1 cs_CCE_StartIndex_DL_UL(14, 16), // subframe 2 @@ -72,8 +72,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def4, // 8177 ('1FF1'H) - { + RNTI := tsc_C_RNTI_Def4, // 8177 ('1FF1'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL(12, 14), // subframe 1 cs_CCE_StartIndex_DL_UL(18, 8), // subframe 2 @@ -87,8 +87,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def5, // 1234 ('04D2'H) - { + RNTI := tsc_C_RNTI_Def5, // 1234 ('04D2'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(10, 12), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(10, 12), // subframe 2 @@ -102,8 +102,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def6, // 2345 ('0929'H) - { + RNTI := tsc_C_RNTI_Def6, // 2345 ('0929'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(10, 12), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -117,8 +117,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def7, // 3456 ('0D80'H) - { + RNTI := tsc_C_RNTI_Def7, // 3456 ('0D80'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(16, 18), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -132,8 +132,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def8, // 4567 ('11D7'H) - { + RNTI := tsc_C_RNTI_Def8, // 4567 ('11D7'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(16, 18), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -147,8 +147,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def9, // 5678 ('162E'H) - { + RNTI := tsc_C_RNTI_Def9, // 5678 ('162E'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(12, 14), // subframe 2 @@ -162,8 +162,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def10, // 6789 ('1A85'H) - { + RNTI := tsc_C_RNTI_Def10, // 6789 ('1A85'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 18), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(16, 18), // subframe 2 @@ -183,8 +183,8 @@ module EUTRA_PdcchConfig { { /* @sic R5-101050: introduction of candidates for 10MHz sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -198,8 +198,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 2 @@ -213,8 +213,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 18), // subframe 0 cs_CCE_StartIndex_DL_UL(10, 12), // subframe 1 cs_CCE_StartIndex_DL_UL(10, 12), // subframe 2 @@ -228,8 +228,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def4, // 8177 ('1FF1'H) - { + RNTI := tsc_C_RNTI_Def4, // 8177 ('1FF1'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 1 cs_CCE_StartIndex_DL_UL(14, 16), // subframe 2 @@ -243,8 +243,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def5, // 1234 ('04D2'H) - { + RNTI := tsc_C_RNTI_Def5, // 1234 ('04D2'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(16, 18), // subframe 1 cs_CCE_StartIndex_DL_UL(22, 8), // subframe 2 @@ -258,8 +258,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def6, // 2345 ('0929'H) - { + RNTI := tsc_C_RNTI_Def6, // 2345 ('0929'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(20, 22), // subframe 0 cs_CCE_StartIndex_DL_UL(18, 20), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -273,8 +273,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def7, // 3456 ('0D80'H) - { + RNTI := tsc_C_RNTI_Def7, // 3456 ('0D80'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 1 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 2 @@ -288,8 +288,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def8, // 4567 ('11D7'H) - { + RNTI := tsc_C_RNTI_Def8, // 4567 ('11D7'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(12, 14), // subframe 2 @@ -303,8 +303,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def9, // 5678 ('162E'H) - { + RNTI := tsc_C_RNTI_Def9, // 5678 ('162E'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(10, 12), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -318,8 +318,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def10, // 6789 ('1A85'H) - { + RNTI := tsc_C_RNTI_Def10, // 6789 ('1A85'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL(12, 14), // subframe 1 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 2 @@ -338,8 +338,8 @@ module EUTRA_PdcchConfig { { /* @sic R5s120135: introduction of candidates for 15MHz sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(14, 16), // subframe 1 cs_CCE_StartIndex_DL_UL(14, 16), // subframe 2 @@ -353,8 +353,8 @@ module EUTRA_PdcchConfig { } }, //@sic R5-141113 2 more default C-RNTI's introduced sic@ { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 32, 34), // subframe 0 cs_CCE_StartIndex_DL_UL( 12, 14), // subframe 1 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 2 @@ -368,8 +368,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 18), // subframe 0 cs_CCE_StartIndex_DL_UL(22, 24), // subframe 1 cs_CCE_StartIndex_DL_UL(22, 24), // subframe 2 @@ -388,8 +388,8 @@ module EUTRA_PdcchConfig { { /* @sic R5s100137: introduction of candidates for 20MHz sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(36, 38), // subframe 1 cs_CCE_StartIndex_DL_UL(34, 36), // subframe 2 @@ -403,8 +403,8 @@ module EUTRA_PdcchConfig { } }, //@sic R5-141113 2 more default C-RNTI's introduced sic@ { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(12, 14), // subframe 0 cs_CCE_StartIndex_DL_UL(46, 48), // subframe 1 cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 2 @@ -418,8 +418,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(20, 22), // subframe 1 cs_CCE_StartIndex_DL_UL(24, 26), // subframe 2 @@ -436,11 +436,10 @@ module EUTRA_PdcchConfig { template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_5MHz := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - { - //@sic R5-125755 sic@ - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + //@sic R5-125755 sic@ + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -454,8 +453,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -469,8 +468,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -484,8 +483,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def4, // 8177 ('1FF1'H) - { + RNTI := tsc_C_RNTI_Def4, // 8177 ('1FF1'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -499,8 +498,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def5, // 1234 ('04D2'H) - { + RNTI := tsc_C_RNTI_Def5, // 1234 ('04D2'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -514,8 +513,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def6, // 2345 ('0929'H) - { + RNTI := tsc_C_RNTI_Def6, // 2345 ('0929'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -529,8 +528,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def7, // 3456 ('0D80'H) - { + RNTI := tsc_C_RNTI_Def7, // 3456 ('0D80'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -544,8 +543,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def8, // 4567 ('11D7'H) - { + RNTI := tsc_C_RNTI_Def8, // 4567 ('11D7'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -559,8 +558,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def9, // 5678 ('162E'H) - { + RNTI := tsc_C_RNTI_Def9, // 5678 ('162E'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -574,8 +573,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def10, // 6789 ('1A85'H) - { + RNTI := tsc_C_RNTI_Def10, // 6789 ('1A85'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -593,9 +592,9 @@ module EUTRA_PdcchConfig { template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_20MHz := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { - //@sic R5-125755 sic@ + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { + //@sic R5-125755 sic@ cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 8), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -609,8 +608,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(32, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -624,8 +623,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,40), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -639,8 +638,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def4, // 8177 ('1FF1'H) - { + RNTI := tsc_C_RNTI_Def4, // 8177 ('1FF1'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,32), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -654,8 +653,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def5, // 1234 ('04D2'H) - { + RNTI := tsc_C_RNTI_Def5, // 1234 ('04D2'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,16), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -669,8 +668,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def6, // 2345 ('0929'H) - { + RNTI := tsc_C_RNTI_Def6, // 2345 ('0929'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(32, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,24), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -684,8 +683,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def7, // 3456 ('0D80'H) - { + RNTI := tsc_C_RNTI_Def7, // 3456 ('0D80'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,32), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -699,8 +698,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def8, // 4567 ('11D7'H) - { + RNTI := tsc_C_RNTI_Def8, // 4567 ('11D7'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 16, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,32), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -714,8 +713,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def9, // 5678 ('162E'H) - { + RNTI := tsc_C_RNTI_Def9, // 5678 ('162E'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(32, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,40), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -729,8 +728,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def10, // 6789 ('1A85'H) - { + RNTI := tsc_C_RNTI_Def10, // 6789 ('1A85'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -743,15 +742,15 @@ module EUTRA_PdcchConfig { cs_CCE_StartIndex_DL_UL(8,0) // subframe 9 } } - }; - - template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_10MHz := + }; + + template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_10MHz := { /* @sic R5s120135: introduction of candidates for 15MHz sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { - //@sic R5-125755 sic@ - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + //@sic R5-125755 sic@ + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL(0, 8), // subframe 1 cs_CCE_StartIndex_DL_UL(0, 0), // subframe 2 @@ -765,8 +764,8 @@ module EUTRA_PdcchConfig { } }, { //@sic R5-141113 added 2 additional C-RNTI's sic@ - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -780,8 +779,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(16, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,16), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -801,8 +800,8 @@ module EUTRA_PdcchConfig { @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { //@sic R5-125755 sic@ - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL(0, 8), // subframe 1 cs_CCE_StartIndex_DL_UL(0, 0), // subframe 2 @@ -816,8 +815,8 @@ module EUTRA_PdcchConfig { } }, { //@sic R5-141113 added 2 additional C-RNTI's sic@ - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -831,8 +830,8 @@ module EUTRA_PdcchConfig { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(24, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0,8), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_RRCSteps.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_RRCSteps.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_RRCSteps.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_RRCSteps.ttcn index 76fae8d..25fdcae 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_RRCSteps.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_RRCSteps.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module EUTRA_RRCSteps { @@ -30,10 +30,12 @@ module EUTRA_RRCSteps { import from EUTRA_DRB_Templates all; import from EUTRA_SecurityFunctions all; import from EUTRA_CapabilityFunctions all; + import from IP_PTC_CtrlMsgs all; import from TestcaseProperties all; + //---------------------------------------------------------------------------- - type record DRB_IdentityList_AllAndAMonly_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type record DRB_IdentityList_AllAndAMonly_Type { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ DRB_IdentityList_Type All, DRB_IdentityList_Type AMonly }; @@ -47,7 +49,7 @@ module EUTRA_RRCSteps { * @desc local function to get list of all DRBs and list of AM DRBs * @param p_DrbConfigList * @return DRB_IdentityList_AllAndAMonly_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_EUTRA_DRB_IdentityList(template (value) RadioBearerList_Type p_DrbConfigList) return DRB_IdentityList_AllAndAMonly_Type { @@ -69,7 +71,51 @@ module EUTRA_RRCSteps { } return v_DRB_IdentityList; } - + + //---------------------------------------------------------------------------- + /* + * @desc Reset SRB[0..2] and active DRBs + * @param p_CellId + * @param p_DrbConfigList (default value: omit) + * @param p_DelayBeforeResetInMilliSec (default value: 0) + * @param p_StopULGrant (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_SS_SRBs_DRBs_Reset(EUTRA_CellId_Type p_CellId, + template (omit) RadioBearerList_Type p_DrbConfigList := omit, + integer p_DelayBeforeResetInMilliSec := 0, + boolean p_StopULGrant := false) runs on EUTRA_PTC + { /* Note: this function shall use timing info "Now" only otherwise between release and config there have to be at least 5ms */ + /* @sic R5s100803: new parameter for the delay sic@ */ + + var DRB_IdentityList_Type v_DrbIdList := f_EUTRA_SS_ActiveDRBs(p_CellId); // @sic R5s150402 sic@ + + if (p_DelayBeforeResetInMilliSec > 0) { + f_Delay (int2float(p_DelayBeforeResetInMilliSec) / 1000.0); + } + if (p_StopULGrant) { + f_EUTRA_StopULGrantTransmission(p_CellId, cs_TimingInfo_Now); + } + f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, -, v_DrbIdList); // @sic R5s150402 sic@ + f_EUTRA_SS_SRBs_DRBs_Config(p_CellId, -, p_DrbConfigList); // @sic R5s150402 sic@ + } + + /* + * @desc Stop Default UL Grant transmission, stop transmission of TA commands and reset of SRB[0..2] and default DRB + * @param p_CellId + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) + * @param p_DelayBeforeResetInMilliSec (default value: 100) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(EUTRA_CellId_Type p_CellId, + template (omit) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, + integer p_DelayBeforeResetInMilliSec := 100) runs on EUTRA_PTC + { + var boolean v_StopULGrant := true; + f_EUTRA_SS_SRBs_DRBs_Reset(p_CellId, p_DrbConfigList, p_DelayBeforeResetInMilliSec, v_StopULGrant); // @sic R5s150402 sic@ + } + + //---------------------------------------------------------------------------- /* * @desc common function to await RRC Connection Request sent by the UE; @@ -88,16 +134,25 @@ module EUTRA_RRCSteps { { /* common procedure to receive the initial RRC connection request for an expected RRC connection establishment procedure; when RRC connection setup is not explicitly sent from TTCN but is preconfigured at the SS to be sent together with the contention resolution, the default UL grant configuration is configured at the SS */ - var template (value) PUCCH_Synch_Type v_PUCCH_Synch; + var template (omit) PUCCH_Synch_Type v_PUCCH_Synch; var template (value) DciUlInfo_Type v_ULDCIInfo; var boolean v_TimerIsRunning := p_Timer.running; + var boolean v_ConfigureULGrantAllocation := false; + var EUTRA_UseBigGrants_Type v_EUTRA_Grant :=f_EUTRA_GrantType_Get(); //@sic R5w150203r1 sic@ if (not f_EUTRA_DlCcchMsgInSeparateMacPdu()) { v_PUCCH_Synch := cs_PUCCH_Synch_None; /* @sic R5s120121 sic@ */ + v_ConfigureULGrantAllocation := true; + } + else if ( (v_EUTRA_Grant == USE_BIG_GRANTS) or (v_EUTRA_Grant ==USE_CAT0_GRANTS)) { /* @sic R5s141205 R5w150203r1 sic@ */ + v_PUCCH_Synch := cs_PUCCH_Synch_KeepAsItIs; + v_ConfigureULGrantAllocation := true; + } + if (v_ConfigureULGrantAllocation) { v_ULDCIInfo := f_EUTRA_DciUlInfo_Get(); f_EUTRA_SS_CommonCellConfig(p_CellId, cas_ULGrantAllocation_REQ(p_CellId, cs_TimingInfo_Now, v_ULDCIInfo, v_PUCCH_Synch, -, tsc_NoCnfReq)); /* @sic R5s140676 Change 2: v_ULDCIInfo sic@ */ } - + alt { [] SRB.receive(car_SRB0_RrcPdu_IND(p_CellId, cr_RRCConnectionRequest(p_EstablishmentCause, p_InitialUE_Identity))) @@ -299,19 +354,23 @@ module EUTRA_RRCSteps { cr_508_RRCConnectionReconfigurationComplete(p_RRC_TI))); } + /* + * @desc Send RRC PDU containing RadioResourceConfigDedicated to release DRB and wait for confirmation by the UE + * @param p_CellId + * @param p_RRC_TI + * @param p_DRB_Id + * @status APPROVED (LTE_A) + */ function f_EUTRA_RRCConnectionReconfiguration_DRB_Release(EUTRA_CellId_Type p_CellId, RRC_TransactionIdentifier p_RRC_TI, DRB_Identity p_DRB_Id) runs on EUTRA_PTC - { /* @desc - Send RRC PDU containing RadioResourceConfigDedicated to release DRB and - wait for confirmation by the UE */ - SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, - cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_DRB_Release(tsc_RRC_TI_Def, p_DRB_Id))); - SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, - cr_508_RRCConnectionReconfigurationComplete(p_RRC_TI))); - }; + { + SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_DRB_Release(tsc_RRC_TI_Def, p_DRB_Id))); + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_RRCConnectionReconfigurationComplete(p_RRC_TI))); + + f_EUTRA_SS_Release_SingleDRB(p_CellId, p_DRB_Id); /* @sic R5s150338 sic@ */ + } // --------------------------------------------------------------------------------------------- // ----------------------------FUNCTIONs for Handover during a test execution ------------------ @@ -321,7 +380,7 @@ module EUTRA_RRCSteps { * @param p_TimingInfo * @param p_C_RNTI * @param p_CnfFlag (default value: omit) - * @status APPROVED (LTE, LTE_A, LTE_IRAT) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_SS_ConfigRachProcedure_HO(EUTRA_CellId_Type p_TargetCellId, template (value) TimingInfo_Type p_TimingInfo, @@ -342,7 +401,7 @@ module EUTRA_RRCSteps { * The function implements step 1..5 of 36.523-3 cl. 7.16.2 * @param p_CellId * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_C_RNTI (default value: tsc_C_RNTI_Def2) * @param p_MeasConfig (default value: p_MeasConfig) * @param p_Dsr_TransMax (default value: n4) @@ -351,7 +410,7 @@ module EUTRA_RRCSteps { */ function f_EUTRA_508RRC_IntraLTE_HO_IntraCell_Step1_5(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, C_RNTI p_C_RNTI := tsc_C_RNTI_Def2, template (omit) MeasConfig p_MeasConfig := omit, Dsr_TransMax_Type p_Dsr_TransMax := n4, @@ -419,12 +478,12 @@ module EUTRA_RRCSteps { p_DrbConfigList); /* @sic R5s110634: Additional MCC160 Changes sic@ */ // Step 5: Reestablish security, disable TA transmission - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(p_CellId, - v_Auth_Params, - v_NextHopChainingCount, - cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), - v_DRB_IdentityList.AMonly, - p_SecurityActTimeList); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Common(p_CellId, + v_Auth_Params, + v_NextHopChainingCount, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + v_DRB_IdentityList.AMonly, + p_SecurityActTimeList); f_EUTRA_Security_Set(v_Auth_Params); // disable TA transmission @sic R5-113734 Change 11 sic@ @@ -455,7 +514,7 @@ module EUTRA_RRCSteps { * The function implements 36.523-3 cl. 7.16.2 * @param p_CellId * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_C_RNTI (default value: tsc_C_RNTI_Def2) * @param p_MeasConfig (default value: p_MeasConfig) * @param p_Dsr_TransMax (default value: n4) @@ -463,7 +522,7 @@ module EUTRA_RRCSteps { */ function f_EUTRA_508RRC_IntraLTE_HO_IntraCell(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, C_RNTI p_C_RNTI := tsc_C_RNTI_Def2, template (omit) MeasConfig p_MeasConfig := omit, Dsr_TransMax_Type p_Dsr_TransMax := n4) runs on EUTRA_PTC @@ -513,7 +572,7 @@ module EUTRA_RRCSteps { * @param p_TargetCellId * @param p_RRC_ConnRecongMsg * @param p_RachProcedureConfig - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_C_RNTI (default value: tsc_C_RNTI_Def2) * @param p_DciUlInfo_TargetCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) * @param p_UL_GrantConfig_SourceCell (default value: cs_UL_GrantConfig_Def) @@ -526,7 +585,7 @@ module EUTRA_RRCSteps { EUTRA_CellId_Type p_TargetCellId, template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, template (value) RachProcedureConfig_Type p_RachProcedureConfig, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, C_RNTI p_C_RNTI := tsc_C_RNTI_Def2, template (omit) DciUlInfo_Type p_DciUlInfo_TargetCell := cs_DciInfo_CcchDcchDtchUL_Def, template (value) UL_GrantConfig_Type p_UL_GrantConfig_SourceCell := cs_UL_GrantConfig_Def, @@ -547,6 +606,9 @@ module EUTRA_RRCSteps { // Build DRB identity list from inputed radiobearer config list v_DRB_IdentityList := f_EUTRA_DRB_IdentityList(p_DrbConfigList); + // Step 0: Configuration of DRBs at the target cell + f_EUTRA_SS_CommonRadioBearerConfig(p_TargetCellId, p_DrbConfigList); /* @sic R5s150338 - dynamic DRB configuration sic@ */ + // Step 1: Transfer of the PDCP Count for AM DRBs from source to target cell @sic R5-120721 change 7 sic@ f_EUTRA_SS_PdcpCount_Handover(p_SourceCellId, p_TargetCellId, v_DRB_IdentityList.AMonly); @@ -583,6 +645,8 @@ module EUTRA_RRCSteps { // Step 7: configure UL grant configuration on target cell @sic R5s100515 sic@ f_EUTRA_SS_CommonCellConfig(p_TargetCellId, cas_ULGrantAllocation_REQ(p_TargetCellId, cs_TimingInfo_Now, p_DciUlInfo_TargetCell, cs_PUCCH_Synch_None, p_UL_GrantConfig_TargetCell)); + f_IP_ChangeEutraCell(IP, p_TargetCellId); /* @sic R5s150031 Change 1 sic@ */ + // Step 8: Transmit RRCConnectionReconfiguration/HO command to UE SRB.send(cas_SRB1_RrcPdu_REQ(p_SourceCellId, cs_TimingInfo_Now, p_RRC_ConnRecongMsg)); @@ -598,9 +662,9 @@ module EUTRA_RRCSteps { // Step 12: configure RACH procedure for target cell back to default @sic R5s100520 change 11 sic@ f_EUTRA_SS_ConfigRachProcedure_Def(p_TargetCellId, -, -, -, -, -, p_CnfFlag); /* @sic acc. to R5s100029 change 3 sic@ */ - // Step 13: Re-establish SRBs and DRB(s) in source cell + // Step 13: Re-establish SRBs and release DRB(s) in source cell f_EUTRA_SS_SRBs_DRBs_Release(p_SourceCellId, -, v_DRB_IdentityList.All, p_CnfFlag); // @sic R5s100801 sic@ - f_EUTRA_SS_SRBs_DRBs_Config(p_SourceCellId, -, p_DrbConfigList, p_CnfFlag); // @sic R5s100801 sic@ + f_EUTRA_SS_SRBs_DRBs_Config(p_SourceCellId, -, omit, p_CnfFlag); // @sic R5s100801 R5s150338: no reconfiguration of DRBs sic@ // Step 14: Release DRX and MeasGap configuration f_EUTRA_SS_DrxCtrlConfig(p_SourceCellId, cs_DrxCtrl_None, -, p_CnfFlag); // @sic R5s100801 sic@ @@ -695,7 +759,7 @@ module EUTRA_RRCSteps { * with keyChangeIndicator set to FALSE and nextHopChainingCount set to 0 * @param p_SourceCellId * @param p_TargetCellId - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_C_RNTI (default value: tsc_C_RNTI_Def2) * @param p_MeasConfig (default value: omit) * @param p_DciUlInfo_TargetCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) @@ -711,7 +775,7 @@ module EUTRA_RRCSteps { */ function f_EUTRA_508RRC_IntraLTE_HO_InterCell(EUTRA_CellId_Type p_SourceCellId, EUTRA_CellId_Type p_TargetCellId, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, C_RNTI p_C_RNTI := tsc_C_RNTI_Def2, template (omit) MeasConfig p_MeasConfig := omit, template (omit) DciUlInfo_Type p_DciUlInfo_TargetCell := cs_DciInfo_CcchDcchDtchUL_Def, @@ -812,24 +876,42 @@ module EUTRA_RRCSteps { * @desc Generates the default RadioresourceConfigDedicated template (according to 36.508) and returns the template * @param p_TargetCellId * @param p_Dsr_TransMax (default value: n4) + * @param p_Rel10 (default value: false) * @return template (value) RadioResourceConfigDedicated * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_Generate_cs_508_RadioResourceConfigDedicated_HO(EUTRA_CellId_Type p_TargetCellId, - Dsr_TransMax_Type p_Dsr_TransMax := n4) runs on EUTRA_PTC return template (value) RadioResourceConfigDedicated + Dsr_TransMax_Type p_Dsr_TransMax := n4, + boolean p_Rel10 := false) runs on EUTRA_PTC return template (value) RadioResourceConfigDedicated { /* @sic R5s100473 additional parameter p_Dsr_TransMax sic@ */ + /* @sic R5s150650 additional parameter p_Rel10 sic@ */ var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_TargetCellId); var SR_PUCCH_ResourceIndex_Type v_Sr_PUCCH_ResourceIndex := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex (p_TargetCellId); var SR_ConfigIndex_Type v_SR_ConfigIndex := f_EUTRA_CellInfo_GetSR_ConfigIndex (p_TargetCellId); var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_TargetCellId); - - return cs_508_RadioResourceConfigDedicated_HO(v_EUTRA_FDD_TDD_CellInfo.pucch_Config, // @sic R5s120663 change 6 sic@ - v_EUTRA_FDD_TDD_CellInfo.cqi_ReportConfig, - v_EUTRA_FDD_TDD_CellInfo.soundingRS_UL_Config, - v_AntennaInfo, - v_Sr_PUCCH_ResourceIndex, - v_SR_ConfigIndex, - p_Dsr_TransMax); + var template (omit) CQI_ReportConfig v_CQI_ReportConfig := omit; + var template (omit) CQI_ReportConfig_r10 v_CQI_ReportConfig_r10 := omit; + var template (value) PhysicalConfigDedicated v_PhysicalConfigDedicated; + var template (value) SchedulingRequestConfig v_SchedulingRequestConfig; + + //@sic R5s150650 sic@ + if (p_Rel10) { + v_CQI_ReportConfig_r10 := cs_CQI_ReportConfig_r10_DEFAULT; + } + else { + v_CQI_ReportConfig := cs_508_CQI_ReportConfig_Default(v_EUTRA_FDD_TDD_CellInfo.cqi_ReportConfig); + } + v_SchedulingRequestConfig := cs_508_SchedulingRequest_Config_Default(v_Sr_PUCCH_ResourceIndex, v_SR_ConfigIndex, p_Dsr_TransMax); + v_PhysicalConfigDedicated := cds_PhysicalConfigDedicated_Common(-, + v_EUTRA_FDD_TDD_CellInfo.pucch_Config, + -, + -, + v_CQI_ReportConfig, + v_EUTRA_FDD_TDD_CellInfo.soundingRS_UL_Config, + v_AntennaInfo, + v_SchedulingRequestConfig, + v_CQI_ReportConfig_r10); + return cs_RadioResourceConfigDedicated_MacPhy(-, -, v_PhysicalConfigDedicated); } /* @desc Generates a MobilityControlInfo template based on the input parameters @@ -925,8 +1007,9 @@ module EUTRA_RRCSteps { * @param p_TargetCellId * @param p_CarrierFreqEutra * @param p_RACH_ConfigDedicated + * @param p_EUTRA_CarrierBandwidth (default value: omit) * @return template (value) MobilityControlInfo - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_Generate_cs_MobilityControlInfo_HO_RACH(EUTRA_CellId_Type p_TargetCellId, template (omit) CarrierFreqEUTRA p_CarrierFreqEutra, @@ -970,19 +1053,22 @@ module EUTRA_RRCSteps { * @param p_TargetCellId * @param p_MobilityControlInfo * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @param p_RRCConnectionReconfiguration_v890_IEs (default value: omit) * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility(EUTRA_CellId_Type p_SourceCellId, EUTRA_CellId_Type p_TargetCellId, template (value) MobilityControlInfo p_MobilityControlInfo, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, //@sic R5s141319 sic@ + template (omit) RRCConnectionReconfiguration_v890_IEs p_RRCConnectionReconfiguration_v890_IEs := omit) runs on EUTRA_PTC { f_EUTRA_RRC_ConnReconfigHO_Common(p_SourceCellId, omit, p_MobilityControlInfo, f_Generate_cs_508_RadioResourceConfigDedicated_HO (p_TargetCellId), cs_508SecurityConfigHO_IntraLTE, - p_TimingInfo); + p_TimingInfo, //@sic R5s141319 sic@ + p_RRCConnectionReconfiguration_v890_IEs); } /* @desc Function for sending IntraLTE HO command to UE with non-default parameters for SecurityConfigHO MobilityControlInfo @@ -991,18 +1077,20 @@ module EUTRA_RRCSteps { * @param p_MobilityControlInfo * @param p_SecurityConfigHO * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @param p_Rel10 (default value: false) * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_EUTRA_RRC_ConnReconfigHO_IntraLTE_MobilitySecurity(EUTRA_CellId_Type p_SourceCellId, EUTRA_CellId_Type p_TargetCellId, template (value) MobilityControlInfo p_MobilityControlInfo, template (value) SecurityConfigHO p_SecurityConfigHO, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, //@sic R5s150650 sic@ + boolean p_Rel10 := false) runs on EUTRA_PTC { f_EUTRA_RRC_ConnReconfigHO_Common(p_SourceCellId, omit, p_MobilityControlInfo, - f_Generate_cs_508_RadioResourceConfigDedicated_HO (p_TargetCellId), + f_Generate_cs_508_RadioResourceConfigDedicated_HO(p_TargetCellId, -, p_Rel10), //@sic R5s15060 sic@ p_SecurityConfigHO, p_TimingInfo); } @@ -1015,6 +1103,7 @@ module EUTRA_RRCSteps { * @param p_RadioResourceConfigDedicated * @param p_SecurityConfigHO * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @param p_RRCConnectionReconfiguration_v890_IEs (default value: omit) * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_EUTRA_RRC_ConnReconfigHO_Common(EUTRA_CellId_Type p_SourceCellId, @@ -1022,7 +1111,8 @@ module EUTRA_RRCSteps { template (omit) MobilityControlInfo p_MobilityControlInfo, template (omit) RadioResourceConfigDedicated p_RadioResourceConfigDedicated, template (omit) SecurityConfigHO p_SecurityConfigHO, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, //@sic R5s141319 sic@ + template (omit) RRCConnectionReconfiguration_v890_IEs p_RRCConnectionReconfiguration_v890_IEs := omit) runs on EUTRA_PTC { SRB.send(cas_SRB1_RrcPdu_REQ(p_SourceCellId, p_TimingInfo, @@ -1030,7 +1120,8 @@ module EUTRA_RRCSteps { p_MeasurementConfiguration, p_MobilityControlInfo, p_RadioResourceConfigDedicated, - p_SecurityConfigHO))); + p_SecurityConfigHO,//@sic R5s141319 sic@ + p_RRCConnectionReconfiguration_v890_IEs))); } //---------------------------------------------------------------------------- @@ -1077,23 +1168,19 @@ module EUTRA_RRCSteps { * @desc RRC connection release acc. to 36.523-3 clause 7.18 * @param p_CellId * @param p_TimingAtT - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_RRC_ConnectionRelease_Local(EUTRA_CellId_Type p_CellId, - SubFrameTiming_Type p_TimingAtT, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def) runs on EUTRA_PTC + SubFrameTiming_Type p_TimingAtT) runs on EUTRA_PTC { /* NOTE: the function schedules all steps to release and reconfigure the SRBs and (default) DRB * => this will in fact happen in the future */ /* @sic R5-110803 change 13 sic@ */ /* @sic R5s110634 MCC160 implementation of change 1.1: new parameter p_DrbConfigList sic@ */ /* @sic R5s110743: release MeasGapConfig sic@ */ + /* @sic R5s150338: p_DrbConfigList removed sic@ */ var SubFrameTiming_Type v_Timing := p_TimingAtT; - var DRB_IdentityList_AllAndAMonly_Type v_DRB_IdentityList; - - // Build DRB identity list from inputed radiobearer config list - v_DRB_IdentityList := f_EUTRA_DRB_IdentityList(p_DrbConfigList); - + var DRB_IdentityList_Type v_DrbIdList := f_EUTRA_SS_ActiveDRBs(p_CellId); + /* Step 1 at T: disable the UL grant * => it is not possible for the UE to send any ACK for the RRC Connecion Release) * => UE has to wait until 60ms timer has timed out (-> 36.331 cl. 5.3.8.3) */ @@ -1115,11 +1202,11 @@ module EUTRA_RRCSteps { /* Step 5 at T+55ms: Release SRBs and DRBs */ v_Timing := f_EUTRA_TimingInfoAdd(p_TimingAtT, 55); - f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), v_DRB_IdentityList.All); + f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), v_DrbIdList); /* Step 6 at T+60ms: Configure SRBs and DRBs */ v_Timing := f_EUTRA_TimingInfoAdd(p_TimingAtT, 60); - f_EUTRA_SS_SRBs_DRBs_Config(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), p_DrbConfigList); + f_EUTRA_SS_SRBs_DRBs_Config(p_CellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), omit); /* @sic R5s150338: no DRBs to be re-configured sic@ */ } //---------------------------------------------------------------------------- @@ -1128,16 +1215,15 @@ module EUTRA_RRCSteps { * @param p_CellId * @param p_RRCConnectionRelease * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_RRC_ConnectionRelease_Common(EUTRA_CellId_Type p_CellId, template (value) DL_DCCH_Message p_RRCConnectionRelease, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC { /* @sic R5-110803 change 13 sic@ */ /* @sic R5s110634 MCC160 implementation of change 1.1: new parameter p_DrbConfigList sic@ */ /* @sic R5-123740 change 2: additional delay of 640ms at the end of the generic RRC Connection Release procedure (result of AP#55.04, replacing R5-1421779 change 14) sic@ */ + /* @sic R5s150338: p_DrbConfigList removed sic@ */ var SubFrameTiming_Type v_TimingAtT; // time T: sending of RRCConnectionRelease acc. to 36.523-3 clause 7.18 var SubFrameTiming_Type v_TimingNow; var integer v_MilliSecondsDelay := tsc_EUTRA_DelayBeforeIntraCellHO; @@ -1162,7 +1248,7 @@ module EUTRA_RRCSteps { cs_TimingInfo(v_TimingAtT.SFN.Number, v_TimingAtT.Subframe.Number), p_RRCConnectionRelease)); - f_EUTRA_RRC_ConnectionRelease_Local(p_CellId, v_TimingAtT, p_DrbConfigList); + f_EUTRA_RRC_ConnectionRelease_Local(p_CellId, v_TimingAtT); alt { [] t_Timer.timeout {} @@ -1179,17 +1265,16 @@ module EUTRA_RRCSteps { * @param p_RRC_TI (default value: tsc_RRC_TI_Def) * @param p_ReleaseCause (default value: other) * @param p_TimingInfo (default value: cs_TimingInfo_Now) - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_RRC_ConnectionRelease(EUTRA_CellId_Type p_CellId, RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def, ReleaseCause p_ReleaseCause := other, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def) runs on EUTRA_PTC + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC { /* @sic R5-110803 change 13 sic@ */ /* @sic R5s110634 MCC160 implementation of change 1.1: new parameter p_DrbConfigList sic@ */ - f_EUTRA_RRC_ConnectionRelease_Common(p_CellId, cs_RRCConnectionRelease(p_RRC_TI, p_ReleaseCause), p_TimingInfo, p_DrbConfigList); + /* @sic R5s150338: p_DrbConfigList removed sic@ */ + f_EUTRA_RRC_ConnectionRelease_Common(p_CellId, cs_RRCConnectionRelease(p_RRC_TI, p_ReleaseCause), p_TimingInfo); } //---------------------------------------------------------------------------- @@ -1204,7 +1289,7 @@ module EUTRA_RRCSteps { function f_EUTRA_RRC_RRCConnectionReestablishment_Def(EUTRA_CellId_Type p_CellId, RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI_Def, NextHopChainingCount p_NextHopChainingCount := 0) runs on EUTRA_PTC - { /* @sic R5-120497: parameters p_CQI_ReportingPeriodic and p_SoundingRsUl_ConfigDedicated for cs_508_PhysicalConfigDedicated_Default_SRB1 sic@ + { /* @sic R5-120497: parameters p_CQI_ReportingPeriodic and p_SoundingRsUl_ConfigDedicated for cds_508_PhysicalConfigDedicated_Default_SRB1 sic@ * Note: the previous branching depending on p_NextHopChainingCount is not needed */ var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info( p_CellId); var SR_PUCCH_ResourceIndex_Type v_Sr_PUCCH_ResourceIndex := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex(p_CellId); @@ -1213,12 +1298,13 @@ module EUTRA_RRCSteps { var template (value) RadioResourceConfigDedicated v_RadioResourceConfigDedicated_SRB1; v_RadioResourceConfigDedicated_SRB1 := cs_508_RadioResourceConfigDedicated_SRB1(cs_MAC_MainConfig_SRB1, - cs_508_PhysicalConfigDedicated_Default_SRB1(v_EUTRA_FDD_TDD_Info.pucch_Config, - v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, // @sic R5-120497 sic@ - v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, // @sic R5-120497 sic@ - v_Sr_PUCCH_ResourceIndex, - v_AntennaInfo, - v_SR_ConfigIndex)); + cds_508_PhysicalConfigDedicated_Default_SRB1(v_EUTRA_FDD_TDD_Info.pucch_Config, + -, + v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, // @sic R5-120497 sic@ + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, // @sic R5-120497 sic@ + v_Sr_PUCCH_ResourceIndex, + v_AntennaInfo, + v_SR_ConfigIndex)); f_EUTRA_StartDefULGrantTransmission(p_CellId); /* @sic R5-120721 change 3 sic@ */ SRB.send (cas_SRB0_RrcPdu_REQ(p_CellId, cs_TimingInfo_Now, cs_RRCConnectionReestablishment_Common(p_RRC_TI, @@ -1450,10 +1536,10 @@ module EUTRA_RRCSteps { select (p_UE_State) { case (RRC_IDLE) { - // When UE is in IDLE mode: page UE at PF/PO calulated as per 36.304 cl 9 + // When UE is in IDLE mode: page UE at PF/PO calculated as per 36.304 cl 9 // Paging is sent at PF/PO during the modification Period: paging is sent modificationPeriodCoef times - // Calculate next Paging Occassion + // Calculate next Paging Occasion v_PoList := f_EUTRA_Calculate_PF_PO(p_StartSFN, v_SI_Pcch_Configuration.defaultPagingCycle, v_SI_Pcch_Configuration.nB, px_IMSI_Def, v_EUTRA_FDD_TDD_Mode); // Calculate the subframe offset list // Page UE in each pagingCycle @@ -1509,7 +1595,7 @@ module EUTRA_RRCSteps { } } case (2) { - // Calculate the first Paging Frame and Paging Occassion + // Calculate the first Paging Frame and Paging Occasion if (v_EUTRA_FDD_TDD_Mode == FDD) { v_SubFrameTiming := cs_SubFrameTiming(p_StartSFN, 4); } else { // TDD @@ -1524,10 +1610,10 @@ module EUTRA_RRCSteps { } } case (4) { - // Calculate the first Paging Frame and Paging Occassion + // Calculate the first Paging Frame and Paging Occasion v_SubFrameTiming := cs_SubFrameTiming(p_StartSFN, 0); // Calculate all subframe offsets acc to 36.304 cl 7.2 - // The first offset is 0: the first reference time is the PagingOccassion + // The first offset is 0: the first reference time is the PagingOccasion k:=0; // Used to calculate the frame offset for (i := 1; i < (v_ModPeriodcoef*v_T*4); i := i + 4) { // i is used to point the elements in the list @@ -1547,10 +1633,10 @@ module EUTRA_RRCSteps { k := k+1; } } - case else {FatalError(__FILE__, __LINE__, "Ns has unrecognizable value");} + case else {FatalError(__FILE__, __LINE__, "Ns has unrecognisable value");} } } - case else {FatalError(__FILE__, __LINE__, "UE State has unrecognizable value");} + case else {FatalError(__FILE__, __LINE__, "UE State has unrecognisable value");} } // Send Paging indicating SysinfoModification SYS.send(cas_CellConfig_PagingSysinfoMod_REQ(p_CellId, v_SubFrameTiming, omit, v_SubframeOffsetList, p_SystemInfoModification, p_EtwsIndication, p_CMAS_Paging)); @@ -1854,4 +1940,6 @@ module EUTRA_RRCSteps { return v_WarningMsgSegList; } + + } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn index fabe362..e8baceb 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_RSRQ_Functions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-07-01 02:17:54 +0200 (Mon, 01 Jul 2013) $ -// $Rev: 9064 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 01:24:08 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13497 $ /******************************************************************************/ module EUTRA_RSRQ_Functions { @@ -20,7 +20,7 @@ module EUTRA_RSRQ_Functions template (value) EUTRA_VNG_CTRL_REQ cas_EUTRA_VNG_Configure_REQ(EUTRA_CellId_Type p_CellId, Dl_Bandwidth_Type p_DL_Bandwidth, integer p_NocLevel ):= - { /* @status APPROVED (LTE, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ Common := cs_ReqAspCommonPart_CellCfg(p_CellId, cs_TimingInfo_Now), Request := { Configure := { @@ -31,7 +31,7 @@ module EUTRA_RSRQ_Functions }; template (value) EUTRA_VNG_CTRL_REQ cas_EUTRA_VNG_Activate_REQ (EUTRA_CellId_Type p_CellId) := - { /* @status APPROVED (LTE, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ Common := cs_ReqAspCommonPart_CellCfg(p_CellId, cs_TimingInfo_Now), Request := { Activate := true @@ -50,7 +50,7 @@ module EUTRA_RSRQ_Functions * @desc configuration of the virtual noise generator, regardless of the power level the noise generator is off before it gets activated for this cell * @param p_CellId * @param p_NocLevel - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_EUTRA_ConfigureVNG(EUTRA_CellId_Type p_CellId, integer p_NocLevel) runs on EUTRA_PTC @@ -61,7 +61,7 @@ module EUTRA_RSRQ_Functions /* * @desc Activate the noise (switched on) for the given cell * @param p_CellId - * @status APPROVED (LTE, LTE_IRAT) + * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ function f_EUTRA_ActivateVNG ( EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_SecurityFunctions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_SecurityFunctions.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_SecurityFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_SecurityFunctions.ttcn index 22a7457..124f81f 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_SecurityFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_SecurityFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-05 14:12:35 +0200 (Sat, 05 Jul 2014) $ -// $Rev: 11810 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 10:07:43 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14313 $ /******************************************************************************/ module EUTRA_SecurityFunctions { import from CommonDefs all; @@ -21,7 +21,7 @@ module EUTRA_SecurityFunctions { import from EUTRA_Parameters all; import from NAS_CommonTypeDefs all; import from NAS_AuthenticationCommon all; - import from EUTRA_SecurityDefinitionsAndExternalFunctions all; + //import from EUTRA_SecurityDefinitionsAndExternalFunctions all; import from EUTRA_RRC_Templates all; @@ -34,7 +34,6 @@ module EUTRA_SecurityFunctions { const integer tsc_RRC_Int_Alg := 4; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_UP_Enc_Alg := 5; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - type integer KDF_Type ( tsc_KDF_HMAC_SHA_256 .. tsc_KDF_Spare3 ); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ type integer AlgTypeDistg_Type (tsc_NAS_Enc_Alg, tsc_NAS_Int_Alg, tsc_RRC_Enc_Alg, @@ -105,9 +104,10 @@ module EUTRA_SecurityFunctions { B3_Type p_NAS_IntegrityProtAlgorithm, B3_Type p_NAS_CipheringAlgorithm, IntegrityProtAlgorithm_Type p_RRC_IntegrityProtAlgorithm, - CipheringAlgorithm_Type p_RRC_CipheringAlgorithm) := + CipheringAlgorithm_r12 p_RRC_CipheringAlgorithm) := { /* @desc to Store all parameters related/used to Authentication * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ KDF := tsc_KDF_HMAC_SHA_256, //33401 defined KDF KSIasme := '111'B, //un initialised KSIsgsn := '111'B, //un initialised, @@ -183,8 +183,8 @@ module EUTRA_SecurityFunctions { * @return B3_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function fl_ConvertCiphAlg2Bitstring(CipheringAlgorithm_Type p_Alg) return B3_Type - { + function fl_ConvertCiphAlg2Bitstring(CipheringAlgorithm_r12 p_Alg) return B3_Type + { /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ var B3_Type v_B3 := '111'B; select (p_Alg) { case (eea0) { @@ -410,7 +410,7 @@ module EUTRA_SecurityFunctions { * @param p_Auth_Params * @param p_DL_NAS_Count * @return B256_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_Authentication_S16(EUTRA_SecurityParams_Type p_Auth_Params, O4_Type p_DL_NAS_Count) return B256_Type @@ -437,7 +437,7 @@ module EUTRA_SecurityFunctions { * @param p_Auth_Params * @param p_UL_NAS_Count * @return B256_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function fl_EUTRA_Authentication_S17(EUTRA_SecurityParams_Type p_Auth_Params, O4_Type p_UL_NAS_Count) return B256_Type @@ -482,7 +482,7 @@ module EUTRA_SecurityFunctions { * As per annex A.11 of 33.401 * @param p_Auth_Params * @return B256_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function fl_EUTRA_Authentication_S19(EUTRA_SecurityParams_Type p_Auth_Params) return B256_Type { @@ -512,7 +512,7 @@ module EUTRA_SecurityFunctions { * @param p_Auth_Params * @param p_DL_NAS_Count * @return B256_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_Authentication_S1A(EUTRA_SecurityParams_Type p_Auth_Params, O4_Type p_DL_NAS_Count) return B256_Type @@ -539,7 +539,7 @@ module EUTRA_SecurityFunctions { * @param p_Auth_Params * @param p_UL_NAS_Count * @return B256_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_Authentication_S1B(EUTRA_SecurityParams_Type p_Auth_Params, O4_Type p_UL_NAS_Count) return B256_Type @@ -589,18 +589,12 @@ module EUTRA_SecurityFunctions { v_Auth_Params.AuthParams := f_AuthenticationInit(v_Auth_Params.AuthParams); //@sic R5s100182 sic@ } - // Generates Ck, Ik, AUTN, XRES v_Auth_Params.Ks := v_Auth_Params.AuthParams.CK & v_Auth_Params.AuthParams.IK; // As per 33401 clause 6.2 v_Auth_Params.KASME := fl_EUTRA_Authentication_S10 (v_Auth_Params, p_PLMN); // Generates KASME - v_Auth_Params.KSIasme:= int2bit(((bit2int(v_Auth_Params.KSIasme)+1) mod 8), 3); //@sic R5s140298 R5s140503 sic@ - // The mod 8 is used as initial value is 7, hence results in first value of 0. - // But if in a test case authentication is performed 7th time, it becomes 7 which is an undefined value, hence the check below added to avoid it. - if (v_Auth_Params.KSIasme == '111'B) { - v_Auth_Params.KSIasme := '000'B; - } + v_Auth_Params.KSIasme := f_Authentication_IncrementKeySeq(v_Auth_Params.KSIasme); // @sic R5s140894 sic@ // updates KSI v_Auth_Params.KSIsgsn := '111'B; // Invalidate KSIsgsn which is useful only in case of if KSIASME is derived from SGSN keys Ck and Ik. @@ -613,7 +607,8 @@ module EUTRA_SecurityFunctions { v_Auth_Params.KDF); // Derives KNASint key return v_Auth_Params; - }; + } + //---------------------------------------------------------------------------- /* * @desc Function to be used for AS KEy deriviation before AS SMC in EUTRA [p_IsSMC_Procedure := true] @@ -643,8 +638,8 @@ module EUTRA_SecurityFunctions { O4_Type p_UL_NAS_Count, boolean p_IsSMC_Procedure := true, // @sic R5s100178 sic@ template (omit) PhysCellId p_TargetPhysicalCellIdentity := omit, // @sic R5s100178 sic@ - template (omit) ARFCN_ValueEUTRA p_EARFCN_DL := omit // @sic R5s100178 sic@ - ) return EUTRA_SecurityParams_Type + template (omit) ARFCN_ValueEUTRA p_EARFCN_DL := omit) // @sic R5s100178 sic@ + return EUTRA_SecurityParams_Type { var EUTRA_SecurityParams_Type v_Auth_Params := p_Auth_Params; // initialise to received as parameter @@ -653,20 +648,16 @@ module EUTRA_SecurityFunctions { v_Auth_Params.NH := fl_EUTRA_Authentication_S12 (v_Auth_Params, v_Auth_Params.KENB); // @sic R5s100496 sic@ //Derives NH corresponding to NCC =1; if (p_IsSMC_Procedure == false) { // @sic R5s100178 sic@ - if (not (isvalue(p_TargetPhysicalCellIdentity) and isvalue(p_EARFCN_DL))) - { - FatalError (__FILE__, __LINE__, - "New key is to be used at RRC Connection Re-establishment or Reconfiguration but no Physical Cell ID and/or ARFCN value is provided"); - } - else - // Refresh of KeNB; horizontal key derivation - { - v_Auth_Params.KENB := fl_EUTRA_Authentication_S13 (v_Auth_Params, - valueof(p_TargetPhysicalCellIdentity), - valueof(p_EARFCN_DL)); - //TBD Valueof cannot be avoided - }; - }; + if (not (isvalue(p_TargetPhysicalCellIdentity) and isvalue(p_EARFCN_DL))) { + FatalError(__FILE__, __LINE__, "New key is to be used at RRC Connection Re-establishment or Reconfiguration but no Physical Cell ID and/or ARFCN value is provided"); + } + else { // Refresh of KeNB; horizontal key derivation + v_Auth_Params.KENB := fl_EUTRA_Authentication_S13 (v_Auth_Params, + valueof(p_TargetPhysicalCellIdentity), + valueof(p_EARFCN_DL)); + //TBD Valueof cannot be avoided + } + } //intraNB handover by RRC Connection Reconfiguration or RRC Connection Re-establishment // Derives KENB @@ -689,7 +680,7 @@ module EUTRA_SecurityFunctions { // Derives KRRCenc key; // Ciphering algorithm for UP is same as RRC return v_Auth_Params; - }; + } //---------------------------------------------------------------------------- /* @@ -782,7 +773,7 @@ module EUTRA_SecurityFunctions { * @param p_Auth_Params * @param p_Common_AuthenticationParams * @return EUTRA_SecurityParams_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_MappedContext_InitNAS(EUTRA_SecurityParams_Type p_Auth_Params, Common_AuthenticationParams_Type p_Common_AuthenticationParams ) return EUTRA_SecurityParams_Type @@ -810,7 +801,8 @@ module EUTRA_SecurityFunctions { v_Auth_Params.KDF); // Derives KNASint key return v_Auth_Params; - }; + } + //============================================================================ /* * @desc Function to be used at handover from UTRAN to EUTRA. @@ -820,19 +812,25 @@ module EUTRA_SecurityFunctions { * randValue, CK, IK, Ks, aUTN, XRES,KSIasme, KASME, KNASenc & KNASint * @param p_Auth_Params * @param p_Common_AuthenticationParams + * @param p_IsRSRVCC (default value: false) * @return EUTRA_SecurityParams_Type * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_MappedContext_HO_Init(EUTRA_SecurityParams_Type p_Auth_Params, - Common_AuthenticationParams_Type p_Common_AuthenticationParams ) return EUTRA_SecurityParams_Type - { + Common_AuthenticationParams_Type p_Common_AuthenticationParams, + boolean p_IsRSRVCC := false) return EUTRA_SecurityParams_Type + { /* @sic R5s150704 new parameter p_IsRSRVCC and its branch in code added sic@ */ var EUTRA_SecurityParams_Type v_Auth_Params := p_Auth_Params; var NasCount_Type v_NasCountUL; v_Auth_Params.AuthParams := p_Common_AuthenticationParams; // Init NonceMMM@ v_Auth_Params.NonceMME := tsc_NonceMME; - v_Auth_Params.KASME := fl_EUTRA_Authentication_S18 (v_Auth_Params ); + if (p_IsRSRVCC) { + v_Auth_Params.KASME := v_Auth_Params.AuthParams.CK & v_Auth_Params.AuthParams.IK; + } else { + v_Auth_Params.KASME := fl_EUTRA_Authentication_S18(v_Auth_Params); + } // Generates KASME :=K'ASME // v_Auth_Params.KSIasme:= '111'B;// invalid as Mapped Security context // updates KSI diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_SecuritySteps.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_SecuritySteps.ttcn similarity index 82% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_SecuritySteps.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_SecuritySteps.ttcn index 3bfd3c2..6bbb255 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_SecuritySteps.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_SecuritySteps.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-03-01 18:20:39 +0100 (Sat, 01 Mar 2014) $ -// $Rev: 10766 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 10:07:43 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14313 $ /******************************************************************************/ module EUTRA_SecuritySteps { import from CommonDefs all; @@ -15,10 +15,12 @@ module EUTRA_SecuritySteps { import from EUTRA_RRC_Templates all; import from EUTRA_ASP_TypeDefs all; import from EUTRA_ASP_SrbDefs all; + import from EUTRA_ASP_DrbDefs all; import from EUTRA_ASP_NasCtrl all; import from EUTRA_AspCommon_Templates all; import from EUTRA_Security_Templates all; import from EUTRA_SRB_Templates all; + import from EUTRA_DRB_Templates all; import from EPS_NAS_Constants all; import from EPS_NAS_TypeDefs all; import from NAS_CommonTypeDefs all; @@ -28,6 +30,7 @@ module EUTRA_SecuritySteps { import from EUTRA_CellInfo all; import from EUTRA_SecurityDefinitionsAndExternalFunctions all; import from EUTRA_NASCommonTemplates all; + import from EUTRA_ConfigurationSteps all; //============================================================================ // AUTHENTICATION and SECURITY @@ -69,7 +72,7 @@ module EUTRA_SecuritySteps { /* * @desc common function to query NAS COUNT from the NAS emulator * @return NasCountInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_SS_NAS_CountGet() runs on EUTRA_PTC return NasCountInfo_Type { @@ -97,7 +100,7 @@ module EUTRA_SecuritySteps { /* * @desc function to query DL NAS COUNT from the NAS emulator // @sic R5s110382 sic@ * @return O4_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_SS_NAS_CountGetDLNext() runs on EUTRA_PTC return O4_Type { @@ -108,7 +111,7 @@ module EUTRA_SecuritySteps { /* * @desc function to query UL NAS COUNT from the NAS emulator // @sic R5s110382 sic@ * @return O4_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_EUTRA_SS_NAS_CountGetULNext() runs on EUTRA_PTC return O4_Type { @@ -291,20 +294,20 @@ module EUTRA_SecuritySteps { /* * @desc check whether given PdcpCountInfo is for a DRB and whether this DRB is in the given DrbList * @param p_PdcpCountInfo - * @param p_AM_DrbList + * @param p_DrbList * @return boolean - * @status APPROVED (LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function fl_PdcpCount_CheckAmDrb(PdcpCountInfo_Type p_PdcpCountInfo, - DRB_IdentityList_Type p_AM_DrbList) return boolean + function fl_PdcpCount_CheckDrb(PdcpCountInfo_Type p_PdcpCountInfo, + DRB_IdentityList_Type p_DrbList) return boolean { var integer k; var DRB_Identity v_Drb; if (match(p_PdcpCountInfo, cr_PdcpCountInfo_DRB(?))) { // check whether it is a DRB v_Drb := p_PdcpCountInfo.RadioBearerId.Drb; // and - for (k := 0; k < lengthof(p_AM_DrbList); k := k + 1) { // check the given list of AM DRBs - if (v_Drb == p_AM_DrbList[k]) { // ... whether it contains that DRB + for (k := 0; k < lengthof(p_DrbList); k := k + 1) { // check the given list of DRBs + if (v_Drb == p_DrbList[k]) { // ... whether it contains that DRB return true; } } @@ -337,13 +340,35 @@ module EUTRA_SecuritySteps { } for (i := 0; i < lengthof(v_PdcpCountInfoListAll); i:= i + 1) { - if (fl_PdcpCount_CheckAmDrb(v_PdcpCountInfoListAll[i], p_AM_DrbList)) { + if (fl_PdcpCount_CheckDrb(v_PdcpCountInfoListAll[i], p_AM_DrbList)) { v_PdcpCountInfoListAmDrbs[n] := v_PdcpCountInfoListAll[i]; } } return v_PdcpCountInfoListAmDrbs; } + /* + * @desc return list of DRBs which are currently configured at the SS + * @param p_CellId + * @return DRB_IdentityList_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_SS_ActiveDRBs(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return DRB_IdentityList_Type + { + var PdcpCountInfoList_Type v_PdcpCountInfoList := f_EUTRA_SS_PdcpCount_GetAll(p_CellId); + var DRB_IdentityList_Type v_DrbIdList := {}; + var integer k := 0; + var integer i; + + for (i := 0; i < lengthof(v_PdcpCountInfoList); i := i + 1) { + if (ischosen(v_PdcpCountInfoList[i].RadioBearerId.Drb)) { + v_DrbIdList[k] := v_PdcpCountInfoList[i].RadioBearerId.Drb; /* @sic R5s150338: release all DRBs being configured at the SS sic@ */ + k := k + 1; /* @sic R5s150375 sic@ */ + } + } + return v_DrbIdList; + } + //---------------------------------------------------------------------------- /* * @desc check whether given PdcpCountInfo is for a SRB @@ -393,7 +418,7 @@ module EUTRA_SecuritySteps { //---------------------------------------------------------------------------- /* - * @desc Common functon to enquire PDCP sequence numbers and generate a Integrity activation time for SRB with SNs ; + * @desc Common functon to enquire PDCP sequence numbers and generate a Integrity activation time for SRB with SNs * @param p_CellId * @param p_SRB_Identity (default value: tsc_SRB1) * @return SecurityActTimeList_Type @@ -406,7 +431,7 @@ module EUTRA_SecuritySteps { var PdcpCountInfoList_Type v_PdcpCountInfoList; var SecurityActTimeList_Type v_SecurityActTimeList; - v_PdcpCountInfoList := f_EUTRA_SS_PdcpCount_GetSRB(p_CellId,p_SRB_Identity); + v_PdcpCountInfoList := f_EUTRA_SS_PdcpCount_GetSRB(p_CellId, p_SRB_Identity); v_SecurityActTimeList[0].RadioBearerId := v_PdcpCountInfoList[0].RadioBearerId; v_SecurityActTimeList[0].UL.SQN := fl_EUTRA_SQN_ConvertFromPdcpCount(v_PdcpCountInfoList[0].UL); @@ -441,7 +466,7 @@ module EUTRA_SecuritySteps { * @return SecurityActTimeList_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_EUTRA_RRC_CipherActTime_Get(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return SecurityActTimeList_Type + function f_EUTRA_RRC_CipherActTime_GetInitial(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return SecurityActTimeList_Type { var PdcpCountInfoList_Type v_PdcpCountInfoList; var PdcpCountInfo_Type v_PdcpCountInfo; @@ -481,23 +506,20 @@ module EUTRA_SecuritySteps { //---------------------------------------------------------------------------- /* - * @desc Common functon to enquire PDCP sequence numbers and generate a ciphering activation list for SRB1, SRB2 and DRBs with SNs reset to 0 for SRBs and UM DRBs; - * Note: this is done immediately i.e. without timing info but HO scenarios may require timing info; - * therefore between calling this function and reconfiguring ciphering there shall be no data on any of the given AM bearers in UL or DL + * @desc get current activation time for ciphering either for all radio bearers or only for a given set (p_PdcpCountInfoList) + * SRBs and UM DRBs may be reset depending in p_ResetSRBsAndUmDRBs and p_AM_DrbList * @param p_CellId - * @param p_AM_DrbList - * @param p_PdcpCountInfoList (default value: omit) + * @param p_AM_DrbList (default value: {}) + * @param p_ResetSRBsAndUmDRBs (default value: false) + * @param p_PdcpCountInfoList (default value: omit) * @return SecurityActTimeList_Type - * @status APPROVED (LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function f_EUTRA_RRC_CipherActTime_GetForHO(EUTRA_CellId_Type p_CellId, - DRB_IdentityList_Type p_AM_DrbList, - template (omit) PdcpCountInfoList_Type p_PdcpCountInfoList := omit) runs on EUTRA_PTC return SecurityActTimeList_Type - { /* Common functon to enquire PDCP sequence numbers and generate a ciphering activation list for SRB1, SRB2 and DRBs with SNs reset to 0 for SRBs and UM DRBs; - * Note: this is done immediately i.e. without timing info but HO scenarios may require timing info; - * therefore between calling this function and reconfiguring ciphering there shall be no data on any of the given AM bearers in UL or DL */ - /* @sic R5-120721 change 7: new optional parameter to hand over PdcpCounts instead of getting it from the SS sic@ */ - + function f_EUTRA_RRC_CipherActTime_GetCurrent(EUTRA_CellId_Type p_CellId, + DRB_IdentityList_Type p_AM_DrbList := {}, + boolean p_ResetSRBsAndUmDRBs := false, + template (omit) PdcpCountInfoList_Type p_PdcpCountInfoList := omit) runs on EUTRA_PTC return SecurityActTimeList_Type + { /* @sic R5s141375 change 5: enhancement of f_EUTRA_RRC_CipherActTime_GetForHO to cope with reset of single DRBs sic@ */ var PdcpCountInfoList_Type v_PdcpCountInfoList; var PdcpCountInfo_Type v_PdcpCountInfo; var SecurityActTime_Type v_SecurityActTime; @@ -512,8 +534,9 @@ module EUTRA_SecuritySteps { for (i := 0; i < lengthof(v_PdcpCountInfoList); i:= i + 1) { v_PdcpCountInfo := v_PdcpCountInfoList[i]; - - if (not fl_PdcpCount_CheckAmDrb(v_PdcpCountInfo, p_AM_DrbList)) { + + if (p_ResetSRBsAndUmDRBs and not fl_PdcpCount_CheckDrb(v_PdcpCountInfo, p_AM_DrbList)) { + // reset count values for current bearer v_PdcpCountInfo.UL.Value := int2bit(0, 32); v_PdcpCountInfo.DL.Value := int2bit(0, 32); } @@ -527,6 +550,29 @@ module EUTRA_SecuritySteps { return v_SecurityActTimeList; } + /* + * @desc Common functon to enquire PDCP sequence numbers and generate a ciphering activation list for SRB1, SRB2 and DRBs with SNs reset to 0 for SRBs and UM DRBs; + * Note: this is done immediately i.e. without timing info but HO scenarios may require timing info; + * therefore between calling this function and reconfiguring ciphering there shall be no data on any of the given AM bearers in UL or DL + * @param p_CellId + * @param p_AM_DrbList + * @param p_PdcpCountInfoList (default value: omit) + * @return SecurityActTimeList_Type + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_RRC_CipherActTime_GetForHO(EUTRA_CellId_Type p_CellId, + DRB_IdentityList_Type p_AM_DrbList, + template (omit) PdcpCountInfoList_Type p_PdcpCountInfoList := omit) runs on EUTRA_PTC return SecurityActTimeList_Type + { /* Common functon to enquire PDCP sequence numbers and generate a ciphering activation list for SRB1, SRB2 and DRBs with SNs reset to 0 for SRBs and UM DRBs; + * Note: this is done immediately i.e. without timing info but HO scenarios may require timing info; + * therefore between calling this function and reconfiguring ciphering there shall be no data on any of the given AM bearers in UL or DL */ + /* @sic R5-120721 change 7: new optional parameter to hand over PdcpCounts instead of getting it from the SS sic@ */ + /* @sic R5s141375 change 5: use of f_EUTRA_RRC_CipherActTime_GetCurrent sic@ */ + + var boolean v_ResetSRBsAndUmDRBs := true; + return f_EUTRA_RRC_CipherActTime_GetCurrent(p_CellId, p_AM_DrbList, v_ResetSRBsAndUmDRBs, p_PdcpCountInfoList); + } + //============================================================================ // Common RRC Steps: @@ -539,8 +585,8 @@ module EUTRA_SecuritySteps { */ function f_EUTRA_RRC_InitialSecurityActivation(EUTRA_CellId_Type p_CellId, IntegrityProtAlgorithm_Type p_IntegrityProtAlgorithm, - CipheringAlgorithm_Type p_CipheringAlgorithm) runs on EUTRA_PTC - { + CipheringAlgorithm_r12 p_CipheringAlgorithm) runs on EUTRA_PTC + { /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; // send SecurityModeCommand on SRB1: @@ -566,19 +612,24 @@ module EUTRA_SecuritySteps { * @param p_CellId * @param p_SecurityParams * @param p_NasCountUL + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @return EUTRA_SecurityParams_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_EUTRA_RRC_ActivateSecurity(EUTRA_CellId_Type p_CellId, EUTRA_SecurityParams_Type p_SecurityParams, - NasCount_Type p_NasCountUL) runs on EUTRA_PTC + NasCount_Type p_NasCountUL, + template (omit) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1) runs on EUTRA_PTC return EUTRA_SecurityParams_Type - { + { /* @sic R5s150338: new parameter p_DrbList sic@ */ var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Authentication_InitAS(p_SecurityParams, p_NasCountUL); /* Calculate Kenb and KRRCenc, KRRCint, KUPenc */ + if (ispresent(p_DrbConfigList)) { /* @sic R5s150338 - dynamic DRB configuration sic@ */ + f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, valueof(p_DrbConfigList)); + } // Read PDCP SQN for SRB1 and calcuate Ciphering Activation times - v_SecurityParams.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_Get(p_CellId); /* note: this works only when timing info is now */ + v_SecurityParams.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetInitial(p_CellId); /* note: this works only when timing info is now */ // Note by default DRB is also pre-configured on SS side f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL (p_CellId, @@ -588,9 +639,23 @@ module EUTRA_SecuritySteps { v_SecurityParams.AS_Integrity.Algorithm, v_SecurityParams.AS_Ciphering.Algorithm); /* SecurityModeComplete is not ciphered acc. to 36.331 cl. 5.3.4.3 and 5.3.1.1 */ - return (v_SecurityParams); + return v_SecurityParams; } - + + //---------------------------------------------------------------------------- + /* + * @desc to restart the AS security e.g. when another DRB is added after RRC connection has been established already + * @param p_CellId + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_SS_RRC_RestartSecurity(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); + + v_SecurityParams.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetCurrent(p_CellId); + f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL(p_CellId, v_SecurityParams.AS_Integrity, v_SecurityParams.AS_Ciphering); + } + //---------------------------------------------------------------------------- /* * @desc This function needs to be called when new Authentication procedure is executed and new Access stratum keys need to be taken into account @@ -631,7 +696,7 @@ module EUTRA_SecuritySteps { v_SecurityParams.AS_Integrity, //@sic R5s110149 sic@ v_SecurityParams.AS_Ciphering, p_TimingInfo); - return (v_SecurityParams); + return v_SecurityParams; } /* @@ -640,7 +705,6 @@ module EUTRA_SecuritySteps { * or if Re-keying (p_NCC == NCC associated with Kenb). * This function needs to be called after sending RRCConnection reconfiguration for handover or * RRC Connection Re-establishment when keyChangeIndicator received in the securityConfiguration is not set to TRUE - * * @param p_TargetCellId * @param p_Auth_Params * @param p_NCC @@ -650,12 +714,12 @@ module EUTRA_SecuritySteps { * @return EUTRA_SecurityParams_Type * @status APPROVED (LTE, LTE_A, LTE_IRAT) */ - function f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(EUTRA_CellId_Type p_TargetCellId, - EUTRA_SecurityParams_Type p_Auth_Params, - NextHopChainingCount p_NCC, - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, - DRB_IdentityList_Type p_AM_DrbList := tsc_DrbList_Def, - template (omit) SecurityActTimeList_Type p_SecurityActTimeList := omit) runs on EUTRA_PTC + function f_EUTRA_SS_AS_ActivateSecurity_HO_Common(EUTRA_CellId_Type p_TargetCellId, + EUTRA_SecurityParams_Type p_Auth_Params, + NextHopChainingCount p_NCC, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, + DRB_IdentityList_Type p_AM_DrbList := tsc_DrbList_Def, + template (omit) SecurityActTimeList_Type p_SecurityActTimeList := omit) runs on EUTRA_PTC return EUTRA_SecurityParams_Type { /* @sic R5s110019/R5s110030: add. parameter p_SecurityActTimeList; this may be used to avoid async. query of PDCP count when security activation is scheduled sic@ */ var PhysCellId v_TargetPhysicalCellIdentity := f_EUTRA_CellInfo_GetPhyCellId(p_TargetCellId); @@ -680,6 +744,97 @@ module EUTRA_SecuritySteps { return v_SecurityParams; } + /* + * @desc returns true when there is an entry for the given DRB in PdcpCountInfoList + * @param p_DrbId + * @param p_PdcpCountInfoList + * @return boolean + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function fl_DrbInPdcpCountInfoList(DRB_Identity p_DrbId, + PdcpCountInfoList_Type p_PdcpCountInfoList) return boolean + { + var RadioBearerId_Type v_RadioBearerId; + var integer i; + + for (i := 0; i < lengthof(p_PdcpCountInfoList); i := i + 1) { + v_RadioBearerId := p_PdcpCountInfoList[i].RadioBearerId; + if (ischosen(v_RadioBearerId.Drb) and (v_RadioBearerId.Drb == p_DrbId)) { + return true; + } + } + return false; + } + + /* + * @desc Configure all AM or UM DRBs at target cell which are not configured yet but needed after handover + * @param p_TargetCellId + * @param p_PdcpCountInfoList + * @param p_DrbList + * @param p_RLC_Mode_Type + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function fl_EUTRA_SS_AS_ConfigureMissingDRBsForHandover_AMorUM(EUTRA_CellId_Type p_TargetCellId, + PdcpCountInfoList_Type p_PdcpCountInfoList, + DRB_IdentityList_Type p_DrbList, + RLC_Mode_Type p_RLC_Mode_Type) runs on EUTRA_PTC + { /* local function to configure DRBs at the SS which are not included in p_PdcpCountInfoList */ + var DRB_Identity v_DrbId; + var integer i; + + for (i := 0; i < lengthof(p_DrbList); i := i + 1) { + v_DrbId := p_DrbList[i]; + if (not fl_DrbInPdcpCountInfoList(v_DrbId, p_PdcpCountInfoList)) { + select (p_RLC_Mode_Type) { + case (AM_Mode) { + f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(p_TargetCellId, cs_OneDRB_ConfigAM(v_DrbId)); + } + case (UM_Mode) { + f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(p_TargetCellId, cs_OneDRB_ConfigUM(v_DrbId)); + } + } + } + } + } + + /* + * @desc Configure all DRBs at target cell which are not configured yet but needed after handover + * @param p_TargetCellId + * @param p_AM_DrbList + * @param p_UM_DrbList + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function fl_EUTRA_SS_AS_ConfigureMissingDRBsForHandover(EUTRA_CellId_Type p_TargetCellId, + DRB_IdentityList_Type p_AM_DrbList, + DRB_IdentityList_Type p_UM_DrbList) runs on EUTRA_PTC + { + var PdcpCountInfoList_Type v_PdcpCountInfoList := f_EUTRA_SS_PdcpCount_GetAll(p_TargetCellId); + + fl_EUTRA_SS_AS_ConfigureMissingDRBsForHandover_AMorUM(p_TargetCellId, v_PdcpCountInfoList, p_AM_DrbList, AM_Mode); + fl_EUTRA_SS_AS_ConfigureMissingDRBsForHandover_AMorUM(p_TargetCellId, v_PdcpCountInfoList, p_UM_DrbList, UM_Mode); + } + + /* + * @desc Activation of RRC security at SS (SRB 1,2 and DRBs) + * @param p_TargetCellId + * @param p_Auth_Params + * @param p_NCC + * @param p_AM_DrbList (default value: tsc_DrbList_Def) + * @param p_UM_DrbList (default value: {}) + * @return EUTRA_SecurityParams_Type + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(EUTRA_CellId_Type p_TargetCellId, + EUTRA_SecurityParams_Type p_Auth_Params, + NextHopChainingCount p_NCC, + DRB_IdentityList_Type p_AM_DrbList := tsc_DrbList_Def, + DRB_IdentityList_Type p_UM_DrbList := {}) + runs on EUTRA_PTC return EUTRA_SecurityParams_Type + { + fl_EUTRA_SS_AS_ConfigureMissingDRBsForHandover(p_TargetCellId, p_AM_DrbList, p_UM_DrbList); + return f_EUTRA_SS_AS_ActivateSecurity_HO_Common(p_TargetCellId, p_Auth_Params, p_NCC, -, p_AM_DrbList); + } + /* * @desc Confihuring SS to use a differnt Integrity algorithm than already configured [assumed], so as to trigger * MAC-I failure at UE on SRB 1 @@ -712,6 +867,35 @@ module EUTRA_SecuritySteps { being contained in the message; all sub-sequent RRC messages */ } + /* + * @desc activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB + * @param p_TargetCellId + * @param p_AM_DrbList (default value: tsc_DrbList_Def) + * @param p_UM_DrbList (default value: {}) + * @param p_IsRSRVCC (default value: false) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(EUTRA_CellId_Type p_TargetCellId, + DRB_IdentityList_Type p_AM_DrbList := tsc_DrbList_Def, + DRB_IdentityList_Type p_UM_DrbList := {}, + boolean p_IsRSRVCC := false) runs on EUTRA_PTC + { /* @sic R5s150704 new parameter p_IsRSRVCC sic@ */ + var EUTRA_SecurityParams_Type v_Auth_Params := f_EUTRA_Security_Get(); + + fl_EUTRA_SS_AS_ConfigureMissingDRBsForHandover(p_TargetCellId, p_AM_DrbList, p_UM_DrbList); + + v_Auth_Params := f_EUTRA_Security_Get(); + v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams, p_IsRSRVCC); //@sic R5s130010 , R5s150704 sic@ + v_Auth_Params.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetForHO(p_TargetCellId, tsc_DrbList_Def); //@sic R5s130010, R5s130142 sic@ + f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); // @sic R5s120686 sic@ + f_EUTRA_SS_NAS_CountSet('00000000'O, omit); // @sic R5s120686 sic@ + f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL(p_TargetCellId, + v_Auth_Params.AS_Integrity, + v_Auth_Params.AS_Ciphering, + cs_TimingInfo_Now); + f_EUTRA_Security_Set(v_Auth_Params); + } + //============================================================================ // Common NAS Steps: @@ -858,8 +1042,8 @@ module EUTRA_SecuritySteps { * @param p_AS_CipheringAlgorithm * @status APPROVED (LTE, LTE_A) */ - function f_EUTRA_AS_CipheringAlgorithm_Set(CipheringAlgorithm_Type p_AS_CipheringAlgorithm) runs on EUTRA_PTC - { + function f_EUTRA_AS_CipheringAlgorithm_Set(CipheringAlgorithm_r12 p_AS_CipheringAlgorithm) runs on EUTRA_PTC + { /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ var EUTRA_SecurityParams_Type v_Auth_Params := f_EUTRA_Security_Get(); v_Auth_Params.AS_Ciphering.Algorithm := p_AS_CipheringAlgorithm; f_EUTRA_Security_Set (v_Auth_Params); @@ -995,7 +1179,7 @@ module EUTRA_SecuritySteps { * @param p_SecurityParams * @param p_SRB (default value: tsc_SRB1) * @return NasCount_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_NAS_SecurityModeControl_MappedContext(EUTRA_CellId_Type p_CellId, EUTRA_SecurityParams_Type p_SecurityParams, @@ -1034,7 +1218,7 @@ module EUTRA_SecuritySteps { * @param p_SecurityParams * @param p_SRB (default value: tsc_SRB1) * @return NasCount_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_EUTRA_NAS_ActivateSecurity_MappedContext(EUTRA_CellId_Type p_CellId, EUTRA_SecurityParams_Type p_SecurityParams, diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Timing.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Timing.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Timing.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Timing.ttcn index e6f431c..5d80117 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_Timing.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_Timing.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-10-19 22:32:42 +0200 (Sat, 19 Oct 2013) $ -// $Rev: 9788 $ +// @version: IWD_15wk38 +// $Date: 2014-11-30 19:49:53 +0100 (Sun, 30 Nov 2014) $ +// $Rev: 12640 $ /******************************************************************************/ module EUTRA_Timing { @@ -188,7 +188,7 @@ module EUTRA_Timing { * @param p_T1 .. first (earlier) value * @param p_T2 .. second (later) value * @return float .. difference in milliseconds - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_SubFrameTimingDuration_Float(SubFrameTiming_Type p_T1, SubFrameTiming_Type p_T2) return float diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_UE_Location.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_UE_Location.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_UE_Location.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_UE_Location.ttcn index c81e709..515634b 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/EUTRA_UE_Location.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/EUTRA_UE_Location.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-05-24 23:07:55 +0200 (Sat, 24 May 2014) $ // $Rev: 11321 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn similarity index 63% rename from LTE_A_IWD_14wk37/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn index fd61fa7..3aa526d 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA/LTE_36523_SelectionExpressions.ttcn @@ -2,17 +2,18 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 10:44:16 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12139 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module LTE_36523_SelectionExpressions { import from Parameters all; import from UTRAN_Parameters all; import from EUTRA_Parameters all; + import from IMS_CommonParameters all; type enumerated Condition_Type { R, @@ -36,6 +37,7 @@ module LTE_36523_SelectionExpressions { C17, // C18 void C19, + C19a, //@sic R5-153232 sic@ C20, C21, C22, @@ -69,7 +71,7 @@ module LTE_36523_SelectionExpressions { C49, C50, C51, - C52, + // C52 void @sic R5-153742 sic@ C53, C54, C55, @@ -98,6 +100,7 @@ module LTE_36523_SelectionExpressions { // C78 void // C79 void C80, + C80x, //@sic R5s150219 sic@ C81, C82, // C83 void @@ -105,7 +108,7 @@ module LTE_36523_SelectionExpressions { // C85 void C86, C87, - C88, + // C88, void @sic R5-145706 sic@ C89, C94, C95, @@ -211,6 +214,7 @@ module LTE_36523_SelectionExpressions { C185, C186, C187, + C188, C189, C189a, C190, @@ -230,7 +234,36 @@ module LTE_36523_SelectionExpressions { C203, C204, C205, - Cxx1_R5144726 + C208, + C209, + C210, + C211, + C212, + C213, + C214, + C215, + C216, + C217, + C218, + C219, + C220, + C221, + C222, + C231, //@sic R5-152113 sic@ + C223, //@sic R5-151731 sic@ + C224, //@sic R5-153232 sic@ + C224a, //@sic R5-153232 sic@ + C227, //@sic R5-153232 sic@ + C228, //@sic R5-153232 sic@ + C228a, //@sic R5-153232 sic@ + C229_C230, + C232, //@sic R5-152146 sic@ + C2xx_R5153438, //@sic R5-153438 sic@ + C2xy_R5153438, //@sic R5-153438 sic@ + C2xz_R5153438, //@sic R5-153438 sic@ + Cxy1_R5153745, //@sic R5-153745 sic@ + Cxy2_R5153745, //@sic R5-153745 sic@ + CAAA_R5153985 //@sic R5-153985 sic@ } function f_SelectionExpr ( Condition_Type p_Condition) return boolean { @@ -277,47 +310,99 @@ module LTE_36523_SelectionExpressions { } //C08: UEs supporting E-UTRA and Feature Group 5 case (C08) { - v_ApplCond := pc_FeatrGrp_5; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_5_F; + } else { + v_ApplCond := pc_FeatrGrp_5_T; + } } //C10: UEs supporting E-UTRA and Feature Group Indicator 25 case (C10) { - v_ApplCond := pc_FeatrGrp_25; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_25_F; + } else { + v_ApplCond := pc_FeatrGrp_25_T; + } } //C11: UEs supporting E-UTRA and Feature Group Indicator 16 and Feature Group Indicator 25 case (C11) { - v_ApplCond := pc_FeatrGrp_16 and pc_FeatrGrp_25; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_16_F and pc_FeatrGrp_25_F; + } else { + v_ApplCond := pc_FeatrGrp_16_T and pc_FeatrGrp_25_T; + } } //C13: UEs supporting E-UTRA and UTRA and Feature Group Indicator 16 and Feature Group Indicator 22 case (C13) { - v_ApplCond := pc_UTRA and pc_FeatrGrp_16 and pc_FeatrGrp_22; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_16_F and pc_FeatrGrp_22_F; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_16_T and pc_FeatrGrp_22_T; + } } //C14: UEs supporting E-UTRA and Feature Group Indicator 5 and Feature Group Indicator 17 case (C14) { - v_ApplCond := pc_FeatrGrp_5 and pc_FeatrGrp_17; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_5_F and pc_FeatrGrp_17_F; + } else { + v_ApplCond := pc_FeatrGrp_5_T and pc_FeatrGrp_17_T; + } } //C15: UEs supporting E-UTRA and Feature Group Indicator 3 and Feature Group Indicator 7 case (C15) { - v_ApplCond := pc_FeatrGrp_3 and pc_FeatrGrp_7; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_3_F and pc_FeatrGrp_7_F; + } else { + v_ApplCond := pc_FeatrGrp_3_T and pc_FeatrGrp_7_T; + } } //C16: UEs supporting E-UTRA and Feature Group Indicator 7 case (C16) { - v_ApplCond := pc_FeatrGrp_7; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_7_F; + } else { + v_ApplCond := pc_FeatrGrp_7_T; + } } //C17: UEs supporting E-UTRA, UTRAN, GERAN and Feature Group Indicators 22 and 23 case (C17) { - v_ApplCond := pc_UTRA and pc_GERAN and pc_FeatrGrp_22 and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_GERAN and pc_FeatrGrp_2_F and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_UTRA and pc_GERAN and pc_FeatrGrp_2_T and pc_FeatrGrp_23_T; + } } - //C19: UEs supporting E-UTRA and Feature Group Indicator 6 and 7 + //C19: UEs supporting E-UTRA and Feature Group Indicator 6 and Feature Group Indicator 7 and NOT UE Category 0 case (C19) { - v_ApplCond := pc_FeatrGrp_6 and pc_FeatrGrp_7; // @sic R5-103314 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 R5-153232 sic@ + v_ApplCond := pc_FeatrGrp_6_F and pc_FeatrGrp_7_F and not(pc_ue_CategoryDL_0); // @sic R5-103314 sic@ + } else { + v_ApplCond := pc_FeatrGrp_6_T and pc_FeatrGrp_7_T and not(pc_ue_CategoryDL_0); // @sic R5-103314 sic@ + } + } + //C19a: UEs supporting E-UTRA and Feature Group Indicator 6 and Feature Group Indicator 7 and UE Category 0 + case (C19a) { + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-153232 sic@ + v_ApplCond := pc_FeatrGrp_6_F and pc_FeatrGrp_7_F and pc_ue_CategoryDL_0; + } else { + v_ApplCond := pc_FeatrGrp_6_T and pc_FeatrGrp_7_T and pc_ue_CategoryDL_0; + } } //C20: UEs supporting E-UTRA and GERAN and Feature Group Indicator 16 and Feature Group Indicator 23 case (C20) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_16 and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_16_F and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_16_T and pc_FeatrGrp_23_T; + } } //C21: UEs supporting E-UTRA and Feature Group Indicator 13 and Feature Group Indicator 25 case (C21) { - v_ApplCond := pc_FeatrGrp_13 and pc_FeatrGrp_25; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_13_F and pc_FeatrGrp_25_F; + } else { + v_ApplCond := pc_FeatrGrp_13_T and pc_FeatrGrp_25_T; + } } //C22: UEs supporting E-UTRA and MT SMS over SGs, and combined EPS/IMSI attach (with or without pre-configuration) case (C22) { @@ -329,11 +414,19 @@ module LTE_36523_SelectionExpressions { } //C24: UEs supporting E-UTRA and HRPD and Feature Group Indicator 16 and Feature Group Indicator 26 case (C24) { - v_ApplCond := pc_HRPD and pc_FeatrGrp_16 and pc_FeatrGrp_26; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_HRPD and pc_FeatrGrp_16_F and pc_FeatrGrp_26_F; + } else { + v_ApplCond := pc_HRPD and pc_FeatrGrp_16_T and pc_FeatrGrp_26_T; + } } //C25: UEs supporting E-UTRA and 1xRTT and Feature Group Indicator 16 and Feature Group Indicator 24 case (C25) { - v_ApplCond := pc_1xRTT and pc_FeatrGrp_16 and pc_FeatrGrp_24; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_1xRTT and pc_FeatrGrp_16_F and pc_FeatrGrp_24_F; + } else { + v_ApplCond := pc_1xRTT and pc_FeatrGrp_16_T and pc_FeatrGrp_24_T; + } } //C26: UEs supporting E-UTRA and CS fallback case (C26) { @@ -346,23 +439,43 @@ module LTE_36523_SelectionExpressions { //C28: Void //C29: UEs supporting E-UTRA and Feature Group Indicator 7 and (UE Category 2 or UE Category 3 or UE Category 4 or UE Category 5) case (C29) { - v_ApplCond := pc_FeatrGrp_7 and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5) ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_7_F and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5); + } else { + v_ApplCond := pc_FeatrGrp_7_T and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5); + } } //C30: UEs supporting E-UTRA and Feature Group Indicator 20 and (UE Category 2 or UE Category 3 or UE Category 4 or UE Category 5) case (C30) { - v_ApplCond := pc_FeatrGrp_20 and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5) ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_20_F and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5); + } else { + v_ApplCond := pc_FeatrGrp_20_T and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5); + } } //C31: UEs supporting E-UTRA and Feature Group Indicator 7 and Feature Group Indicator 20 and (UE Category 2 or UE Category 3 or UE Category 4 or UE Category 5) case (C31) { - v_ApplCond := (pc_FeatrGrp_7 and pc_FeatrGrp_20) and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5) ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_FeatrGrp_7_F and pc_FeatrGrp_20_F) and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5); + } else { + v_ApplCond := (pc_FeatrGrp_7_T and pc_FeatrGrp_20_T) and (pc_ue_Category_2 or pc_ue_Category_3 or pc_ue_Category_4 or pc_ue_Category_5); + } } //C32: UEs supporting E-UTRA and Feature Group Indicator 7 and Feature Group Indicator 20 case (C32) { - v_ApplCond := pc_FeatrGrp_7 and pc_FeatrGrp_20; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_7_F and pc_FeatrGrp_20_F; + } else { + v_ApplCond := pc_FeatrGrp_7_T and pc_FeatrGrp_20_T; + } } //C33: UEs supporting E-UTRA and Feature Group Indicator 20 case (C33) { - v_ApplCond := pc_FeatrGrp_20; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_20_F; + } else { + v_ApplCond := pc_FeatrGrp_20_T; + } } //C34: UEs supporting E-UTRA, UTRA and GERAN case (C34) { @@ -374,7 +487,11 @@ module LTE_36523_SelectionExpressions { } //C36: UEs supporting E-UTRA and UTRA and Feature Group Indicator 8 and Feature Group Indicator 22 case (C36) { - v_ApplCond := pc_UTRA and pc_FeatrGrp_8 and pc_FeatrGrp_22; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_8_F and pc_FeatrGrp_22_F; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_8_T and pc_FeatrGrp_22_T; + } } //C37: UEs supporting E-UTRA and UTRA and inter-RAT PS handover to E-UTRA from UTRA and EUTRA Feature Group Indicator 2 case (C37) { @@ -382,27 +499,47 @@ module LTE_36523_SelectionExpressions { } //C38: UEs supporting E-UTRA and GSM and Feature Group Indicator 10 and Feature Group Indicator 23 case (C38) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_10 and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_10_F and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_10_T and pc_FeatrGrp_23_T; + } } //C39: UEs supporting E-UTRA and UTRA and Feature Group Indicator 5 and Feature Group Indicator 19 and Feature Group 22 case (C39) { - v_ApplCond := pc_UTRA and pc_FeatrGrp_5 and pc_FeatrGrp_19 and pc_FeatrGrp_22; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_5_F and pc_FeatrGrp_19_F and pc_FeatrGrp_22_F; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_5_T and pc_FeatrGrp_19_T and pc_FeatrGrp_22_T; + } } //C40: UEs supporting E-UTRA and GERAN and Feature Group Indicator 5 and Feature Group Indicator 19 and Feature Group 23 case (C40) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_5 and pc_FeatrGrp_19 and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_5_F and pc_FeatrGrp_19_F and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_5_T and pc_FeatrGrp_19_T and pc_FeatrGrp_23_T; + } } //C41: UEs supporting E-UTRA and 1xRTT and 1xCS fallback case (C41) { - v_ApplCond := pc_1xRTT and pc_Combined_Attach and pc_1xCSfallback; //@sic R5-142894 sic@ + v_ApplCond := pc_1xRTT and pc_1xCSfallback; //@sic R5-142894 R5-150675 sic@ } //C42: UEs supporting E-UTRA and HRPD and Feature Group Indicator 12 and Feature Group Indicator 26 case (C42) { - v_ApplCond := pc_HRPD and pc_FeatrGrp_12 and pc_FeatrGrp_26; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_HRPD and pc_FeatrGrp_12_F and pc_FeatrGrp_26_F; + } else { + v_ApplCond := pc_HRPD and pc_FeatrGrp_12_T and pc_FeatrGrp_26_T; + } } //C44: UEs supporting E-UTRA and HRPD and Feature Group Indicator 5 and Feature Group Indicator 19 and Feature Group Indicator 26 case (C44) { - v_ApplCond := pc_HRPD and pc_FeatrGrp_5 and pc_FeatrGrp_19 and pc_FeatrGrp_26; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_HRPD and pc_FeatrGrp_5_F and pc_FeatrGrp_19_F and pc_FeatrGrp_26_F; + } else { + v_ApplCond := pc_HRPD and pc_FeatrGrp_5_T and pc_FeatrGrp_19_T and pc_FeatrGrp_26_T; + } } //C46: UEs supporting E-UTRA FDD and TDD and not supporting eEMM INFORMATION case (C46) { @@ -425,13 +562,10 @@ module LTE_36523_SelectionExpressions { v_ApplCond := false;//pc_DSMIPv6 and pc_HAAddress_via_IKEv2 } //C51: UEs supporting E-UTRA and supporting the EMM information message - case (C51) { - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_EMM_Information and (pc_FullNameNetwork or pc_ShortNameNetwork or pc_LocalTimeZone or pc_UniversalAndLocalTimeZone); - } - //C52: UEs supporting E-UTRA and 1xRTT and SRVCC from E-UTRA to 1xRTT (CS) - case (C52) { - v_ApplCond := false;//pc_1xRTT and pc_SRVCC_1xRTT_CS; + case (C51) { //@sic R5-152086 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_EMM_Information and (pc_FullNameNetwork or pc_ShortNameNetwork or pc_LocalTimeZone or pc_UniversalAndLocalTimeZone or pc_DaylightSavingTime); } + //C52 void @sic R5-153742 sic@ //C53: UEs supporting E-UTRA and switch on/off case (C53) { v_ApplCond := pc_SwitchOnOff; @@ -454,7 +588,11 @@ module LTE_36523_SelectionExpressions { } //C58: UEs supporting E-UTRA and Feature Group Indicator 21 case (C58) { - v_ApplCond := pc_FeatrGrp_21; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_21_F; + } else { + v_ApplCond := pc_FeatrGrp_21_T; + } } //C59: UEs supporting E-UTRAN and UTRAN and ISR case (C59) { @@ -466,12 +604,16 @@ module LTE_36523_SelectionExpressions { } //C61: UEs supporting E-UTRA, UTRA, GERAN and Feature Group Indicators 16, Feature Group Indicators 22 and Feature Group Indicators 23 case (C61) { - v_ApplCond := pc_UTRA and pc_GERAN and pc_FeatrGrp_16 and pc_FeatrGrp_22 and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_GERAN and pc_FeatrGrp_16_F and pc_FeatrGrp_22_F and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_UTRA and pc_GERAN and pc_FeatrGrp_16_T and pc_FeatrGrp_22_T and pc_FeatrGrp_23_T; + } } //C62 void - //C63: UEs supporting E-UTRA FDD and E-UTRA TDD and Feature Group Indicator 25 and Feature Group Indicator 30 - case (C63) { - v_ApplCond := pc_eFDD and pc_eTDD and pc_FeatrGrp_25 and pc_FeatrGrp_30; //@sic R5s140146 sic@ + //C63: UEs supporting E-UTRA FDD and E-UTRA TDD and FDD Feature Group Indicator 25 and FDD Feature Group Indicator 30 and TDD Feature Group Indicator 25 and TDD Feature Group Indicator 30 + case (C63) { //@sic R5-150557 sic@ + v_ApplCond := pc_eFDD and pc_eTDD and pc_FeatrGrp_25_F and pc_FeatrGrp_30_F and pc_FeatrGrp_25_T and pc_FeatrGrp_30_T; //@sic R5s140146 sic@ } //C64: UEs supporting E-UTRA and ETWS reception case (C64) { @@ -520,9 +662,17 @@ module LTE_36523_SelectionExpressions { case (C80) { v_ApplCond := pc_Allowed_CSG_list and pc_Manual_CSG_Selection; } + //c80x: UEs supporting E-UTRA and Reading the SI of the neighbouring Intra-frequency cell using autonomous gaps and reporting and allowed CSG list + case (C80x) { //@sic R5s150219 sic@ + v_ApplCond := pc_Allowed_CSG_list and pc_Manual_CSG_Selection and pc_SI_Neighbour_intraFreq_Autonomous_Gaps; + } //C81: UEs supporting E-UTRA, UTRA, CS fallback and Feature Group Indicator 8 and speech and PS domain services and CS domain services simultaneously case (C81) { - v_ApplCond := pc_UTRA and pc_CS_Fallback and pc_Combined_Attach and pc_FeatrGrp_8 and pc_Speech and pc_SupportOpModeA; //@sic R5s140411 R5-142323 R5-142894 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_CS_Fallback and pc_Combined_Attach and pc_FeatrGrp_8_F and pc_Speech and pc_SupportOpModeA; //@sic R5s140411 R5-142323 R5-142894 sic@ + } else { + v_ApplCond := pc_UTRA and pc_CS_Fallback and pc_Combined_Attach and pc_FeatrGrp_8_T and pc_Speech and pc_SupportOpModeA; //@sic R5s140411 R5-142323 R5-142894 sic@ + } } //C82: UEs supporting E-UTRA and UTRA and allowed CSG list and EUTRA Feature Group Indicator 1 case (C82) { @@ -542,29 +692,42 @@ module LTE_36523_SelectionExpressions { case (C87) { v_ApplCond := pc_UTRA and pc_Combined_Attach and pc_CS_Fallback and pc_CS_PS_data_centric ; } - //C88: UEs supporting E-UTRA and UTRA or/and E-UTRA and GERAN, and combined EPS/IMSI attach - case (C88) { - v_ApplCond := (pc_SMS_SGs or pc_1xCSfallback) and (pc_UTRA or pc_GERAN) and pc_Combined_Attach; //@sic R5-130371 sic@ - } + //C88 void @sic R5-145706 sic@ // C89: UEs supporting E-UTRA and GSM and GERAN to E-UTRAN PS Handover case (C89) { v_ApplCond := pc_GERAN and pc_GERAN_2_E_UTRAN_PSHO ; } //C90: UEs supporting E-UTRA and GERAN and Feature Group Indicator 23 case (C90) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_23_T; + } } //C91: UEs supporting E-UTRA and UTRA and Feature Group Indicator 22 case (C91) { - v_ApplCond := pc_UTRA and pc_FeatrGrp_22; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_22_F; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_22_T; + } } //C92: UEs supporting E-UTRA and HRPD and Feature Group Indicator 26 case (C92) { - v_ApplCond := pc_HRPD and pc_FeatrGrp_26; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_HRPD and pc_FeatrGrp_26_F; + } else { + v_ApplCond := pc_HRPD and pc_FeatrGrp_26_T; + } } //C93: UEs supporting E-UTRA and 1xRTT and Feature Group Indicator 24 case (C93) { - v_ApplCond := pc_1xRTT and pc_FeatrGrp_24; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_1xRTT and pc_FeatrGrp_24_F; + } else { + v_ApplCond := pc_1xRTT and pc_FeatrGrp_24_T; + } } //C95: UEs supporting E-UTRA and GERAN and allowed CSG list and manual CSG selection case (C95) { @@ -572,7 +735,11 @@ module LTE_36523_SelectionExpressions { } //C96: UEs supporting E-UTRA and GERAN and CS fallback and Feature Group Indicator 10 and speech case (C96) { - v_ApplCond := pc_FeatrGrp_10 and pc_Combined_Attach and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_10_F and pc_Combined_Attach and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + } else { + v_ApplCond := pc_FeatrGrp_10_T and pc_Combined_Attach and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + } } //C97: UEs supporting E-UTRA and Multiple PDN case (C97) { @@ -584,11 +751,19 @@ module LTE_36523_SelectionExpressions { } //C99:UEs supporting E-UTRA and TTI bundling and Feature Group Indicator 7 case (C99) { - v_ApplCond := pc_TTI_Bundling and pc_FeatrGrp_7; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_TTI_Bundling and pc_FeatrGrp_7_F; + } else { + v_ApplCond := pc_TTI_Bundling and pc_FeatrGrp_7_T; + } } //C100: UEs supporting E-UTRA and semi-persistence scheduling and Feature Group Indicator 3 and 7 case (C100) { - v_ApplCond := pc_Semi_Persistence_Scheduling and pc_FeatrGrp_7; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_Semi_Persistence_Scheduling and pc_FeatrGrp_7_F; + } else { + v_ApplCond := pc_Semi_Persistence_Scheduling and pc_FeatrGrp_7_T; + } } //C103: UEs supporting E-UTRA and UE Category 1 case (C103) { @@ -600,7 +775,11 @@ module LTE_36523_SelectionExpressions { } // C105: UEs supporting E-UTRA, UTRA, CS fallback and Feature Group Indicator 8 and speech case (C105) { - v_ApplCond := pc_UTRA and pc_CS_Fallback and pc_Combined_Attach and pc_FeatrGrp_8 and pc_Speech; //@sic R5-142894 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_CS_Fallback and pc_Combined_Attach and pc_FeatrGrp_8_F and pc_Speech; //@sic R5-142894 sic@ + } else { + v_ApplCond := pc_UTRA and pc_CS_Fallback and pc_Combined_Attach and pc_FeatrGrp_8_T and pc_Speech; //@sic R5-142894 sic@ + } } // C106: UEs supporting E-UTRA and detach for non-EPS services and, combined EPS/IMSI attach. case (C106) { @@ -608,7 +787,11 @@ module LTE_36523_SelectionExpressions { } // C107: UEs supporting E-UTRA and GSM and PS handover from E-UTRAN to GERAN and Feature Group Indicator 23 case (C107){ - v_ApplCond := pc_GERAN and pc_E_UTRAN_2_GERAN_PSHO and pc_FeatrGrp_23; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_E_UTRAN_2_GERAN_PSHO and pc_FeatrGrp_23_F; + } else { + v_ApplCond := pc_GERAN and pc_E_UTRAN_2_GERAN_PSHO and pc_FeatrGrp_23_T; + } } // C109: UEs supporting E-UTRA and IMS emergency call and establishing the emergency call using the CS domain in UTRA or GERAN case (C109){ @@ -616,15 +799,27 @@ module LTE_36523_SelectionExpressions { } // C110: UEs supporting E-UTRA and GERAN and CS fallback and PS handover from E-UTRAN to GERAN and Feature Group Indicator 23 and speech case (C110){ - v_ApplCond := pc_E_UTRAN_2_GERAN_PSHO and pc_Combined_Attach and pc_FeatrGrp_23 and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_E_UTRAN_2_GERAN_PSHO and pc_Combined_Attach and pc_FeatrGrp_23_F and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + } else { + v_ApplCond := pc_E_UTRAN_2_GERAN_PSHO and pc_Combined_Attach and pc_FeatrGrp_23_T and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + } } // C111: UEs supporting E-UTRA and GERAN and EDTM and CS fallback and PS handover from E-UTRAN to GERAN and Feature Group Indicator 23 and speech case (C111){ - v_ApplCond := pc_EDTM and pc_Combined_Attach and pc_E_UTRAN_2_GERAN_PSHO and pc_FeatrGrp_23 and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_EDTM and pc_Combined_Attach and pc_E_UTRAN_2_GERAN_PSHO and pc_FeatrGrp_23_F and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + } else { + v_ApplCond := pc_EDTM and pc_Combined_Attach and pc_E_UTRAN_2_GERAN_PSHO and pc_FeatrGrp_23_T and pc_GERAN and pc_CS_Fallback and pc_Speech; //@sic R5-142894 sic@ + } } // C112: UEs supporting E-UTRA and UTRA and Feature Group Indicator 7, 8 and 22 and SRVCC and IMS voice case (C112){ - v_ApplCond := pc_UTRA and pc_FeatrGrp_7 and pc_FeatrGrp_8 and pc_FeatrGrp_22 and pc_FeatrGrp_27 and pc_SRVCC_GERAN_UTRAN and pc_VoLTE; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_7_F and pc_FeatrGrp_8_F and pc_FeatrGrp_22_F and pc_FeatrGrp_27_F and pc_SRVCC_GERAN_UTRAN and pc_VoLTE; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_7_T and pc_FeatrGrp_8_T and pc_FeatrGrp_22_T and pc_FeatrGrp_27_T and pc_SRVCC_GERAN_UTRAN and pc_VoLTE; + } } // C113: UEs supporting E-UTRA and MBMS case (C113){ @@ -636,15 +831,27 @@ module LTE_36523_SelectionExpressions { } // C113b: UEs supporting E-UTRA and Feature Group Indicator 13 and Feature Group Indicator 25 and MBMS and MBMS service continuity case (C113b){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_13 and pc_FeatrGrp_25 and pc_eMBMS and pc_eMBMS_SC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_13_F and pc_FeatrGrp_25_F and pc_eMBMS and pc_eMBMS_SC; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_13_T and pc_FeatrGrp_25_T and pc_eMBMS and pc_eMBMS_SC; + } } // C113c: UEs supporting E-UTRA and Intra-band contiguous Carrier Aggregation and Feature Group Indicator 13 and Feature Group Indicator 25 and MBMS and MBMS service continuity case (C113c) { - v_ApplCond := (pc_eFDD or pc_eTDD) and (pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) and pc_FeatrGrp_13 and pc_FeatrGrp_25 and pc_eMBMS and pc_eMBMS_SC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and (pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) and pc_FeatrGrp_13_F and pc_FeatrGrp_25_F and pc_eMBMS and pc_eMBMS_SC; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and (pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) and pc_FeatrGrp_13_T and pc_FeatrGrp_25_T and pc_eMBMS and pc_eMBMS_SC; + } } // C113d: UEs supporting E-UTRA and Inter-band Carrier Aggregation and Feature Group Indicator 13 and Feature Group Indicator 25 and MBMS and MBMS service continuity case (C113d) { - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_FeatrGrp_13 and pc_FeatrGrp_25 and pc_eMBMS and pc_eMBMS_SC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_FeatrGrp_13_F and pc_FeatrGrp_25_F and pc_eMBMS and pc_eMBMS_SC; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_FeatrGrp_13_T and pc_FeatrGrp_25_T and pc_eMBMS and pc_eMBMS_SC; + } } // C113e: UEs supporting E-UTRA and Intra-band contiguous Carrier Aggregation and MBMS and MBMS service continuity case (C113e) { @@ -662,25 +869,43 @@ module LTE_36523_SelectionExpressions { case (C115){ v_ApplCond := ( pc_GERAN and pc_Speech); } - // C118: UEs supporting E-UTRA and allowed CSG list and Feature Group Indicator 25 // C116: UEs supporting E-UTRA and 1xRTT and 1xCS fallback case (C116) { - v_ApplCond := pc_1xRTT and pc_Combined_Attach and pc_Enhanced_1xCSfallback; //@sic R5-142894 sic@ + v_ApplCond := pc_1xRTT and pc_Enhanced_1xCSfallback; //@sic R5-142894 R5-150675 sic@ } // C117: UEs supporting E-UTRA and UTRA and HS-PDSCH and E-DPDCH and Feature Group Indicator 8 and Feature Group Indicator 22 case (C117) { - v_ApplCond := ( pc_UTRA and (( pc_HSDPA_FDD and pc_HSUPA_FDD) or ( pc_HSDPA_TDD and pc_HSUPA_TDD)) and pc_FeatrGrp_8 and pc_FeatrGrp_22); //@sic R5w140207 sic@ + //@sic R5-150490 R5-153710 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := ( pc_UTRA and (( pc_HSDPA_FDD and pc_HSUPA_FDD and pc_FDPCH) or ( pc_HSDPA_TDD and pc_HSUPA_TDD)) and pc_FeatrGrp_8_F and pc_FeatrGrp_22_F); //@sic R5w140207 sic@ + } else { + v_ApplCond := ( pc_UTRA and (( pc_HSDPA_FDD and pc_HSUPA_FDD and pc_FDPCH) or ( pc_HSDPA_TDD and pc_HSUPA_TDD)) and pc_FeatrGrp_8_T and pc_FeatrGrp_22_T); //@sic R5w140207 sic@ + } } + // C118: UEs supporting E-UTRA and allowed CSG list and Reading the SI of the neighbouring Inter-frequency cell using autonomous gaps and reporting and Feature Group Indicator 25 case (C118) { - v_ApplCond := ( pc_Allowed_CSG_list and pc_FeatrGrp_25); + if ( fl_IsPrimaryBandFdd() ) { + v_ApplCond := ( pc_Allowed_CSG_list and pc_SI_Neighbour_interFreq_Autonomous_Gaps and pc_FeatrGrp_25_F); + } else { + v_ApplCond := ( pc_Allowed_CSG_list and pc_SI_Neighbour_interFreq_Autonomous_Gaps and pc_FeatrGrp_25_T); + } } - // C119: UEs supporting E-UTRA and UTRA and allowed CSG list and Feature Group Indicator 22 + // C119: UEs supporting E-UTRA and UTRA and allowed CSG list and Reading the SI of the UMTS neighbouring cell using autonomous gaps and reporting and Feature Group Indicator 22 case (C119) { - v_ApplCond := ( pc_UTRA and pc_Allowed_CSG_list and pc_FeatrGrp_22); + //@sic R5-150539 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := ( pc_UTRA and pc_Allowed_CSG_list and pc_SI_Neighbour_UMTS_Autonomous_Gaps and pc_FeatrGrp_22_F); + } else { + v_ApplCond := ( pc_UTRA and pc_Allowed_CSG_list and pc_SI_Neighbour_UMTS_Autonomous_Gaps and pc_FeatrGrp_22_T); + } } - // C120: UEs supporting E-UTRA and Feature Group Indicator 3 and Feature Group Indicator 7 and ROHC profile0x0001 and ROHC profile0x0002 - case (C120) { - v_ApplCond := (pc_FeatrGrp_3 and pc_FeatrGrp_7 and pc_ROHC_profile0x0001 and pc_ROHC_profile0x0002); + // C120: UEs supporting E-UTRA and Feature Group Indicator 7 and ROHC profile0x0001 and ROHC profile0x0002 + case (C120) { //@sic R5-145783 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_7_F and pc_ROHC_profile0x0001 and pc_ROHC_profile0x0002; + } else { + v_ApplCond := pc_FeatrGrp_7_T and pc_ROHC_profile0x0001 and pc_ROHC_profile0x0002; + } } // C121: UEs supporting E-UTRA and combined EPS/IMSI attach (with or without pre-configuration) and UTRA case (C121) { @@ -712,9 +937,9 @@ module LTE_36523_SelectionExpressions { case (C129) { v_ApplCond := pc_CMAS_Message; } - // C130: UEs supporting E-UTRA FDD and E-UTRA TDD and Feature Group Indicator 25 + // C130: UEs supporting E-UTRA FDD and E-UTRA TDD and FDD Feature Group Indicator 25 and TDD Feature Group Indicator 25 case (C130) { - v_ApplCond := pc_eFDD and pc_eTDD and pc_FeatrGrp_25; //@sic R5s140146 sic@ + v_ApplCond := pc_eFDD and pc_eTDD and pc_FeatrGrp_25_F and pc_FeatrGrp_25_T; //@sic R5s140146 R5-150557 sic@ } // C131: UEs supporting E-UTRA and UTRA and not supporting Squal based cell reselection to E-UTRAN from UTRAN case (C131) { @@ -734,11 +959,19 @@ module LTE_36523_SelectionExpressions { } // C134: UEs supporting E-UTRA and Intra-band contiguous Carrier Aggregation and Feature Group Indictor 111 case (C134){ - v_ApplCond := (pc_eFDD or pc_eTDD) and ( pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) and pc_FeatrGrp_111; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and ( pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) and pc_FeatrGrp_111_F; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and ( pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) and pc_FeatrGrp_111_T; + } } // C134a: UEs supporting E-UTRA and Downlink Intra-band non-contiguous Carrier Aggregation and Feature Group Indicator 111 case (C134a){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_intraBand_nonContCaBwClassComb_AA and pc_FeatrGrp_111; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_intraBand_nonContCaBwClassComb_AA and pc_FeatrGrp_111_F; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_intraBand_nonContCaBwClassComb_AA and pc_FeatrGrp_111_T; + } } // C137: UEs supporting E-UTRA and logged measurements in RRC_IDLE case (C137){ @@ -770,7 +1003,11 @@ module LTE_36523_SelectionExpressions { } //C144:UEs supporting E-UTRA and GERAN and Feature Group Indicator 7 and Feature Group Indicator 9 and Feature Group Indicator 23 and SRVCC from E-UTRAN to GERAN/UTRAN and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" case (C144) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_7 and pc_FeatrGrp_9 and pc_FeatrGrp_23 and pc_SRVCC_GERAN_UTRAN and pc_VoLTE; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_F and pc_FeatrGrp_9_F and pc_FeatrGrp_23_F and pc_SRVCC_GERAN_UTRAN and pc_VoLTE; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_T and pc_FeatrGrp_9_T and pc_FeatrGrp_23_T and pc_SRVCC_GERAN_UTRAN and pc_VoLTE; + } } //C145: UEs supporting E-UTRA and supporting UTRAN ANR case (C145){ @@ -786,7 +1023,11 @@ module LTE_36523_SelectionExpressions { } //C148:UEs supporting E-UTRA and Feature Group Indicator 23 @sic R5-144338 sic@ case (C148){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_23 and pc_GERAN_2_E_UTRAN_PSHO ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_23_F and pc_GERAN_2_E_UTRAN_PSHO ; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_23_T and pc_GERAN_2_E_UTRAN_PSHO ; + } } // C150: UEs supporting E-UTRA and UTRA, or, E-UTRA and UTRA and GERAN case (C150){ @@ -798,28 +1039,48 @@ module LTE_36523_SelectionExpressions { } // C152:UEs supporting E-UTRA and Inter-band Carrier Aggregation and Feature Group Indictor 111 case(C152){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_FeatrGrp_111; // @sic R5133229 R5s130629 sic@ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_FeatrGrp_111_F; // @sic R5133229 R5s130629 sic@ + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_FeatrGrp_111_T; // @sic R5133229 R5s130629 sic@ + } } // C153: UEs supporting E-UTRA and UTRA or/and E-UTRA and GERAN, and, combined EPS/IMSI attach (with or without pre-configuration) and disabling the EPS services - case (C153) { - v_ApplCond := pc_Combined_Attach and pc_EPS_Services_Disable; + case (C153) { //@sic R5-145707 sic@ + v_ApplCond := (pc_UTRA or pc_GERAN) and pc_Combined_Attach and pc_EPS_Services_Disable; } //C154: UEs supporting E-UTRA and Feature Group Indictor 115 case (C154){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_FeatrGrp_115 ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 R5s150658 sic@ + v_ApplCond := pc_eFDD and pc_FeatrGrp_115_F; + } else { + v_ApplCond := pc_eTDD and pc_FeatrGrp_115_T; + } } //c155: UEs supporting E-UTRA and UTRA and Intra-band Contiguous CA Carrier Aggregation and Feature Group Indicator 112 and inter-RAT PS handover to E-UTRA from UTRA and EUTRA Feature Group Indicator 2 case (C155){ //@sic R5-134783 sic@ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112 and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and (pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC); + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112_F and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and (pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC); + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112_T and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and (pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC); + } } //C155a: UEs supporting E-UTRA and UTRA and Inter-band Contiguous CA Carrier Aggregation and Feature Group Indicator 112 and inter-RAT PS handover to E-UTRA from UTRA and EUTRA Feature Group Indicator 2 case (C155a){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112 and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and pc_DL_interBand_CaBwClassComb_AA; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112_F and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and pc_DL_interBand_CaBwClassComb_AA; + } else { + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112_T and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and pc_DL_interBand_CaBwClassComb_AA; + } } //C155b: UEs supporting E-UTRA and UTRA and Downlink Intra-band non-contiguous Carrier Aggregation and Feature Group Indicator 112 and inter-RAT PS handover to E-UTRA from UTRA and EUTRA Feature Group Indicator 2 case (C155b){ - v_ApplCond :=(pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112 and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and pc_DL_intraBand_nonContCaBwClassComb_AA; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond :=(pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112_F and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and pc_DL_intraBand_nonContCaBwClassComb_AA; + } else { + v_ApplCond :=(pc_eFDD or pc_eTDD) and pc_UTRA and pc_FeatrGrp_112_T and (pc_HO_from_UTRA_to_eFDD or pc_HO_from_UTRA_to_eTDD) and pc_UTRA_FeatrGrp_2 and pc_DL_intraBand_nonContCaBwClassComb_AA; + } } // C156: UEs supporting E-UTRA and allowed CSG list case (C156) { @@ -835,11 +1096,19 @@ module LTE_36523_SelectionExpressions { } //C159:UEs supporting E-UTRA and UTRA and Feature Group Indicator 27 and IMS voice and aSRVCC case(C159){ - v_ApplCond := pc_UTRA and pc_FeatrGrp_27 and pc_VoLTE and pc_IMS_SRVCCAlert; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_F and pc_VoLTE and pc_IMS_SRVCCAlert; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_T and pc_VoLTE and pc_IMS_SRVCCAlert; + } } //C161: UEs supporting E-UTRA and UTRA and Feature Group Indicator 27 and IMS voice and aSRVCC and Notification procedure case(C161){ - v_ApplCond := pc_UTRA and pc_FeatrGrp_27 and pc_VoLTE and pc_ESM_Notification and pc_IMS_SRVCCAlert; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_F and pc_VoLTE and pc_ESM_Notification and pc_IMS_SRVCCAlert; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_T and pc_VoLTE and pc_ESM_Notification and pc_IMS_SRVCCAlert; + } } //C162: UEs supporting E-UTRA and Inter-band Uplink Carrier Aggregation case(C162){ @@ -859,15 +1128,27 @@ module LTE_36523_SelectionExpressions { } // C166: UEs supporting E-UTRA and Feature Group Indicator 14 case (C166){ - v_ApplCond := pc_FeatrGrp_14; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_14_F; + } else { + v_ApplCond := pc_FeatrGrp_14_T; + } } // C167 UEs supporting E-UTRA and Feature Group Indicator 14 and 25 case (C167){ - v_ApplCond := pc_FeatrGrp_14 and pc_FeatrGrp_25 ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_14_F and pc_FeatrGrp_25_F; + } else { + v_ApplCond := pc_FeatrGrp_14_T and pc_FeatrGrp_25_T; + } } // C168: UEs supporting E-UTRA and UTRA and Feature Group Indicator 15 case (C168){ //@sic R5s140461 sic@ - v_ApplCond := pc_UTRA and pc_FeatrGrp_15 ; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_15_F; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_15_T; + } } //C169: void @sic R5-144733 sic@ //C170: UEs supporting FDD E-UTRA and Inter Frequency Proximity Indication @@ -918,9 +1199,9 @@ module LTE_36523_SelectionExpressions { case (C181) { v_ApplCond := (pc_eFDD or pc_eTDD) and pc_Rach_Report; } - //C182: UEs supporting E-UTRA and UTRA and emergency speech and not supporting IMS + //C182: UEs supporting E-UTRA and UTRA and not supporting of IMS emergency call case (C182){ - v_ApplCond := pc_UTRA and pc_EmergSpeech and not (pc_IMS); + v_ApplCond := pc_UTRA and pc_EmergSpeech and not(pc_IMS_emergency_call); //@sic R5-150403 sic@ } //C183: UEs supporting E-UTRA and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" case (C183){ @@ -932,23 +1213,43 @@ module LTE_36523_SelectionExpressions { } // C185: UEs supporting E-UTRA and Feature Group Indicator 13 and Feature Group Indicator 25 and more than 1 FDD or TDD E-UTRA band case ( C185) { - v_ApplCond := (pc_FeatrGrp_13 and pc_FeatrGrp_25) and ((pc_eFDD and pc_eFDD_MultiBand) or (pc_eTDD and pc_eTDD_MultiBand)); + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_FeatrGrp_13_F and pc_FeatrGrp_25_F) and ((pc_eFDD and pc_eFDD_MultiBand) or (pc_eTDD and pc_eTDD_MultiBand)); + } else { + v_ApplCond := (pc_FeatrGrp_13_T and pc_FeatrGrp_25_T) and ((pc_eFDD and pc_eFDD_MultiBand) or (pc_eTDD and pc_eTDD_MultiBand)); + } } - // C186 + // C186: UEs supporting E-UTRA and Feature Group Indicator 25 and more than 1 FDD or TDD E-UTRA band case (C186) { - v_ApplCond := pc_FeatrGrp_25 and ((pc_eFDD and pc_eFDD_MultiBand) or (pc_eTDD and pc_eTDD_MultiBand)); + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_25_F and ((pc_eFDD and pc_eFDD_MultiBand) or (pc_eTDD and pc_eTDD_MultiBand)); + } else { + v_ApplCond := pc_FeatrGrp_25_T and ((pc_eFDD and pc_eFDD_MultiBand) or (pc_eTDD and pc_eTDD_MultiBand)); + } } - // C187 + // C187: UEs supporting E-UTRA and Power Preference Indication case (C187) { v_ApplCond := (pc_eFDD or pc_eTDD) and pc_PPI_Support; } + //C188: UEs supporting E-UTRA and ePDCCH + case(C188){ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_ePDCCH; + } //C189: UEs supporting E-UTRA and MFBI feature indicated by Feature Group Indicator 31 case ( C189) { - v_ApplCond := pc_FeatrGrp_31; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_31_F; + } else { + v_ApplCond := pc_FeatrGrp_31_T; + } } //C189a: UEs supporting E-UTRA and UTRA FDD and MFBI feature indicated by Feature Group Indicator 31 case (C189a){ //@sic R5-144652 sic@ - v_ApplCond := pc_FeatrGrp_31 and pc_FDD; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_31_F and pc_FDD; + } else { + v_ApplCond := pc_FeatrGrp_31_T and pc_FDD; + } } //C190: UEs supporting E-UTRA and Intra-band contiguous Uplink Carrier Aggregation and multiple timing advances case ( C190) { @@ -964,43 +1265,67 @@ module LTE_36523_SelectionExpressions { } //C193: UEs supporting E-UTRA and GERAN and Feature Group Indicator 7, 9 and 23 and SRVCC from E-UTRAN to GERAN/UTRAN and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" AND aSRVCC case (C193) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_7 and pc_FeatrGrp_9 and pc_FeatrGrp_23 and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_IMS_SRVCCAlert; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_F and pc_FeatrGrp_9_F and pc_FeatrGrp_23_F and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_IMS_SRVCCAlert; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_T and pc_FeatrGrp_9_T and pc_FeatrGrp_23_T and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_IMS_SRVCCAlert; + } } // C194: UEs supporting E-UTRA and EAB case (C194) { v_ApplCond := pc_EAB; } - // C195: UEs supporting E-UTRA and EAB and EAB override - case (C195) { + // C197: UEs supporting E-UTRA and EAB and EAB override + case (C197) { // @sic R5-145412 sic@ v_ApplCond := pc_EAB and pc_EAB_override; } // C196: UEs supporting E-UTRA and LAP and LAP override case (C196) { v_ApplCond := pc_LAP and pc_LAP_override; } - // C197: UEs supporting E-UTRA and ESM UE requested bearer resource modification procedure and UE requested modification of network allocated TFTs and LAP and LAP override - case (C197) { + // C195: UEs supporting E-UTRA and ESM UE requested bearer resource modification procedure and UE requested modification of network allocated TFTs and LAP and LAP override + case (C195) { // @sic R5-145412 sic@ v_ApplCond := pc_ESM_MO_Bearer_Modification and pc_ESM_UE_Modification_NW_TFT and pc_LAP and pc_LAP_override; } // C198: UEs supporting E-UTRA and GERAN and Feature Group Indicator 7, 9 and 23 and SRVCC from E-UTRAN to GERAN/UTRAN and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" AND bSRVCC case (C198) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_7 and pc_FeatrGrp_9 and pc_FeatrGrp_23 and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_BSRVCC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_F and pc_FeatrGrp_9_F and pc_FeatrGrp_23_F and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_BSRVCC; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_T and pc_FeatrGrp_9_T and pc_FeatrGrp_23_T and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_BSRVCC; + } } // C199: Feature Group Indicator 7, 9 and 23 and SRVCC from E-UTRAN to GERAN/UTRAN and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" AND bSRVCC AND Notification procedure case (C199) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_7 and pc_FeatrGrp_9 and pc_FeatrGrp_23 and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_ESM_Notification and pc_BSRVCC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_F and pc_FeatrGrp_9_F and pc_FeatrGrp_23_F and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_ESM_Notification and pc_BSRVCC; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_T and pc_FeatrGrp_9_T and pc_FeatrGrp_23_T and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_ESM_Notification and pc_BSRVCC; + } } //C200: UEs supporting E-UTRA and GERAN and Feature Group Indicator 7, 9 and 23 and SRVCC from E-UTRAN to GERAN/UTRAN and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" AND aSRVCC AND Notification procedure case (C200) { - v_ApplCond := pc_GERAN and pc_FeatrGrp_7 and pc_FeatrGrp_9 and pc_FeatrGrp_23 and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_ESM_Notification and pc_IMS_SRVCCAlert; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_F and pc_FeatrGrp_9_F and pc_FeatrGrp_23_F and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_ESM_Notification and pc_IMS_SRVCCAlert; + } else { + v_ApplCond := pc_GERAN and pc_FeatrGrp_7_T and pc_FeatrGrp_9_T and pc_FeatrGrp_23_T and pc_SRVCC_GERAN_UTRAN and pc_VoLTE and pc_ESM_Notification and pc_IMS_SRVCCAlert; + } } // C201: UEs supporting E-UTRA and UTRA and Feature Group Indicator 27 and IMS voice and bSRVCC case (C201){ - v_ApplCond := pc_UTRA and pc_FeatrGrp_27 and pc_VoLTE and pc_BSRVCC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_F and pc_VoLTE and pc_BSRVCC; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_T and pc_VoLTE and pc_BSRVCC; + } } // C202: UEs supporting E-UTRA and UTRA and Feature Group Indicator 27 and IMS voice and bSRVCC and Notification procedure case(C202) { - v_ApplCond := pc_UTRA and pc_FeatrGrp_27 and pc_VoLTE and pc_ESM_Notification and pc_BSRVCC; + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_F and pc_VoLTE and pc_ESM_Notification and pc_BSRVCC; + } else { + v_ApplCond := pc_UTRA and pc_FeatrGrp_27_T and pc_VoLTE and pc_ESM_Notification and pc_BSRVCC; + } } //C207: UEs supporting E-UTRA and Uplink Intra-band non-Contiguous CA case(C207){ @@ -1021,11 +1346,140 @@ module LTE_36523_SelectionExpressions { //C40_C206: UEs supporting E-UTRA and GERAN and Feature Group Indicator 5 and Feature Group Indicator 19 and Feature Group Indicator 23 // or UEs supporting E-UTRA and GERAN and Feature Group Indicator 5 and Feature Group Indicator 34 and Feature Group Indicator 23 case (C40_C206){ - v_ApplCond := (pc_GERAN and pc_FeatrGrp_5 and pc_FeatrGrp_19 and pc_FeatrGrp_23) or (pc_GERAN and pc_FeatrGrp_5 and pc_FeatrGrp_34 and pc_FeatrGrp_23); + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := (pc_GERAN and pc_FeatrGrp_5_F and pc_FeatrGrp_19_F and pc_FeatrGrp_23_F) or (pc_GERAN and pc_FeatrGrp_5_F and pc_FeatrGrp_34_F and pc_FeatrGrp_23_F); + } else { + v_ApplCond := (pc_GERAN and pc_FeatrGrp_5_T and pc_FeatrGrp_19_T and pc_FeatrGrp_23_T) or (pc_GERAN and pc_FeatrGrp_5_T and pc_FeatrGrp_34_T and pc_FeatrGrp_23_T); + } + } + //C208: UEs supporting E-UTRA and UL CoMP + case(C208){ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UL_CoMP; + } + //C209: UEs supporting E-UTRA and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" and UE Configured to provide IMS APN as the second PDN connection or UE + //Configured to provide Internet as the second PDN connection. + case(C209){ + v_ApplCond := pc_VoLTE and (pc_Provide_IMS_as_second_APN or pc_Provide_Internet_as_second_APN); + } + //C210: UEs supporting E-UTRA and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" and UE Configured with IMS APN as default APN or to provide IMS APN. + case(C210){ //@sic R5-145475 sic@ + v_ApplCond := pc_VoLTE and (pc_IMS_APN_default or pc_Provide_IMS_APN); + } + //C211: UEs supporting E-UTRA and VoLTE in GSMA PRD IR.92: "IMS Profile for Voice and SMS" and UE Configured to provide IMS APN as the second PDN connection. + case (C211){ //@sic R5-145582 sic@ + v_ApplCond := pc_VoLTE and pc_Provide_IMS_as_second_APN; + } + // C212: UEs supporting E-UTRA and EF_LRPLMSI_Exception + case(C212) { + v_ApplCond := pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception; + } + // C213: UEs supporting E-UTRA and ManualModeNetworkSelectionException + case(C213){ + v_ApplCond := pc_PLMN_Manual_Mode_Exception; + } + // C214: UEs supporting E-UTRA and GERAN and not supporting ManualModeNetworkSelectionException + case(C214){ + v_ApplCond := pc_GERAN and not(pc_PLMN_Manual_Mode_Exception); + } + //C215: UEs supporting E-UTRA and ZUC algorithm + case (C215){ + v_ApplCond := pc_ZUC; + } + //C216:UEs supporting E-UTRA and Feature Group 4 and Feature Group 5. + case(C216){ + if ( fl_IsPrimaryBandFdd() ) { //@sic R5-150557 sic@ + v_ApplCond := pc_FeatrGrp_4_F and pc_FeatrGrp_5_F; + } else { + v_ApplCond := pc_FeatrGrp_4_T and pc_FeatrGrp_5_T; + } + } + //C217: UEs supporting E-UTRA and UTRA and IMS voice and rSRVCC + case(C217){ + v_ApplCond := pc_UTRA and pc_VoLTE and pc_IMS_CS_PS_SRVCC; + } + //C218: UEs supporting E-UTRA and UTRA and IMS voice and rSRVCC and rSRVCC in alerting state + case(C218){ + v_ApplCond := pc_UTRA and pc_VoLTE and pc_IMS_CS_PS_SRVCC and pc_IMS_CS_PS_SRVCCAlert; + } + //UEs supporting E-UTRA and GERAN and IMS voice and rSRVCC + case (C219){ + v_ApplCond := pc_GERAN and pc_VoLTE and pc_IMS_CS_PS_SRVCC; + } + //UEs supporting E-UTRA and GERAN and IMS voice and rSRVCC and rSRVCC in alerting state + case (C220){ + v_ApplCond := pc_GERAN and pc_VoLTE and pc_IMS_CS_PS_SRVCC and pc_IMS_CS_PS_SRVCCAlert; + } + // UEs supporting E-UTRA and (Intra-band contiguous Carrier Aggregation or Intra-band non-contiguous Carrier Aggregation or Inter-band Carrier Aggregation) and reception of requestedFrequencyBands and less than or equal to 128 CA band combinations. + case(C221) { + v_ApplCond := (pc_eFDD or pc_eTDD) and ((pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) or pc_DL_intraBand_nonContCaBwClassComb_AA or pc_DL_interBand_CaBwClassComb_AA) and pc_reqFreqBands and not(pc_More_Than_128_CAbandComb); + } + //UEs supporting E-UTRA and (Intra-band contiguous Carrier Aggregation or Intra-band non-contiguous Carrier Aggregation or Inter-band Carrier Aggregation) and reception of requestedFrequencyBands and more than 128 CA band combinations. + case(C222) { + v_ApplCond := (pc_eFDD or pc_eTDD) and ((pc_DL_IntraBand_ContCaBWclassB or pc_DL_IntraBand_ContCaBWclassC) or pc_DL_intraBand_nonContCaBwClassComb_AA or pc_DL_interBand_CaBwClassComb_AA) and pc_reqFreqBands and pc_More_Than_128_CAbandComb; + } + //UEs supporting E-UTRA and UE Category 0 + case(C224) { + v_ApplCond := pc_ue_CategoryDL_0; + } + //UEs supporting E-UTRA and NOT UE Category 0 + case(C224a) { + v_ApplCond := not(pc_ue_CategoryDL_0); + } + //UEs supporting E-UTRA and GERAN and SRVCC and IMS emergency call + case (C231){ //@sic R5-152113 sic@ + v_ApplCond := pc_GERAN and pc_SRVCC_GERAN_UTRAN and pc_IMS_emergency_call; + } + //UE supporting E-UTRA and MTSI Video call + case(C223){ //@sic R5-151731 sic@ + v_ApplCond := pc_MultimediaTelephonyService and pc_InitiateSession and pc_MTSI_Video; + } + //UEs supporting E-UTRA FDD and TTI bundling and TTI bundling with enhanced HARQ pattern and Feature Group Indicator 7 + case(C227){ //@sic R5-153232 sic@ + v_ApplCond := pc_TTI_Bundling and pc_eHARQ_Pattern_for_TTI_bundling and pc_FeatrGrp_7_F; + } + //UEs supporting E-UTRA and TTI bundling and NOT UE Category 0 + case(C228){ //@sic R5-153232 sic@ + v_ApplCond := pc_TTI_Bundling and not(pc_ue_CategoryDL_0); + } + //UEs supporting E-UTRA and TTI bundling and UE Category 0 + case(C228a){ //@sic R5-153232 sic@ + v_ApplCond := pc_TTI_Bundling and pc_ue_CategoryDL_0; + } + //UEs supporting E-UTRA and not support MFBI feature indicated by Feature Group Indicator 31 + case(C229_C230){ + if ( fl_IsPrimaryBandFdd() ) { + v_ApplCond := pc_eFDD and not(pc_FeatrGrp_31_F); + } else { + v_ApplCond := pc_eTDD and not(pc_FeatrGrp_31_F); + } + } + //UEs supporting E-UTRA and UTRA and IMS voice and IMS and rSRVCC and multiple PDN + case(C232){ //@sic R5-152146 sic@ + v_ApplCond := pc_UTRA and pc_VoLTE and pc_IMS_CS_PS_SRVCC and pc_Multiple_PDN; + } + //UEs supporting E-UTRA FDD and TDD and 3DL CA and 3UL CA with tdd-FDD-CA-PCellDuplex-r12 with the first and/or second bit set to "1" and multiple timing advances + case(C2xx_R5153438){ + v_ApplCond := (pc_eFDD and pc_eTDD) and pc_DL_CA_3Carriers and pc_UL_CA_3Carriers and (pc_tdd_FDD_CA_TDD_PCell or pc_tdd_FDD_CA_FDD_PCell) and pc_multipleTimingAdvance; + } + //UE supporting E-UTRA FDD and TDD and 2DL CA and 2UL CA with tdd-FDD-CA-PCellDuplex-r12 with the first bit set to "1" + case(C2xy_R5153438){ + v_ApplCond := (pc_eFDD and pc_eTDD) and pc_DL_CA_2Carriers and pc_UL_CA_2Carriers and pc_tdd_FDD_CA_TDD_PCell; + } + //UE supporting E-UTRA FDD and TDD and 2DL CA and 2UL CA with tdd-FDD-CA-PCellDuplex-r12 with the second bit set to "1" + case(C2xz_R5153438){ + v_ApplCond := (pc_eFDD and pc_eTDD) and pc_DL_CA_2Carriers and pc_UL_CA_2Carriers and pc_tdd_FDD_CA_FDD_PCell; } - //Cxx1_R5144726: UEs supporting E-UTRA and UL CoMP - case(Cxx1_R5144726){ - v_ApplCond := (pc_eFDD or pc_eTDD) and pc_UL_CoordinatedMultiPointOperation; + //UEs supporting E-UTRA and Initiating session and MTSI speech. + case(Cxy1_R5153745){ //@sic R5-153745 sic@ + v_ApplCond := pc_MultimediaTelephonyService and pc_InitiateSession and pc_MTSI_Speech; + } + //UEs supporting E-UTRA and Initiating session and MTSI speech and MTSI video. + case(Cxy2_R5153745){ //@sic R5-153745 sic@ + v_ApplCond := pc_MultimediaTelephonyService and pc_InitiateSession and pc_MTSI_Speech and pc_MTSI_Video ; + } + //UEs supporting E-UTRA and Inter-band Carrier Aggregation and UL (Pcell) supported in each band of Inter-band CA combination under test + case(CAAA_R5153985){ //@sic R5-153985 sic@ + v_ApplCond := (pc_eFDD or pc_eTDD) and pc_DL_interBand_CaBwClassComb_AA and pc_UL_SupportedInAllBandsInCAComb; } case else { v_ApplCond := false; @@ -1034,30 +1488,40 @@ module LTE_36523_SelectionExpressions { return v_ApplCond; } - function f_ExecutionGuideline ( charstring p_TestCase ) return boolean + // Function returning true if px_ePrimaryFrequencyBand is an FDD band + function fl_IsPrimaryBandFdd () return boolean + { + if ( px_ePrimaryFrequencyBand < 33) { + return true; + } else { + return false; + } + } + + function f_EUTRA_ExecutionGuideline(charstring p_TestCase) return boolean { /* Set the execution to TRUE or FALSE according to 36.523-3 clause 11 */ // @sic R5-101050 R5-106675 R5-110803 R5-122121 sic@ var boolean v_ExecutionGuideline := true; - v_ExecutionGuideline := ( f_ExecutionGuidelineEUTRA ( p_TestCase ) and // execution guideline from cl 11.1 - f_ExecutionGuidelineEUTRA_UTRA_GERAN ( p_TestCase ) and // execution guideline from cl 11.2 - f_ExecutionGuideline_InterBand ( p_TestCase ) and // execution guideline from cl 11.3 - f_ExecutionGuideline_EUTRA_CA( p_TestCase ) and // execution guideline from cl 11.4 @sic R5-133612 sic@ - f_ExecutionGuideline_EUTRA_MFBI( p_TestCase ) // execution guideline from cl 11.5 @sic R5-14 sic@ - ); + v_ExecutionGuideline := (f_ExecutionGuidelineEUTRA(p_TestCase) and // execution guideline from cl 11.1 + f_ExecutionGuidelineEUTRA_UTRA_GERAN(p_TestCase) and // execution guideline from cl 11.2 + f_ExecutionGuideline_InterBand(p_TestCase) and // execution guideline from cl 11.3 + f_ExecutionGuideline_EUTRA_CA(p_TestCase) and // execution guideline from cl 11.4 @sic R5-133612 sic@ + f_ExecutionGuideline_EUTRA_MFBI(p_TestCase)); // execution guideline from cl 11.5 @sic R5-14 sic@ + return v_ExecutionGuideline; } function f_ExecutionGuidelineEUTRA ( charstring p_TestCase ) return boolean { /* Set the execution to TRUE or FALSE according to 36.523-3 clause 11.1 */ - // @sic R5-110803 R5s120227 R5-122121 R5-130670 R5-142985 sic@ + // @sic R5-110803 R5s120227 R5-122121 R5-130670 R5-142985 R5-150123 sic@ var boolean v_ExecutionGuideline := true; if ((px_ePrimaryFrequencyBand == 12 and px_ePrimaryBandChannelBandwidth == n50 ) or (px_ePrimaryFrequencyBand == 13) or (px_ePrimaryFrequencyBand == 17 and px_ePrimaryBandChannelBandwidth == n50 ) or (px_ePrimaryFrequencyBand == 18) or - (px_ePrimaryFrequencyBand == 31)) //@sic R5-135000 sic@ + (px_ePrimaryFrequencyBand == 31)) //@sic R5-135000 R5-151150 sic@ { // Test cases using more than one radio frequency (acc to 36.523-3 cl 11.1) select (p_TestCase) { case ("TC_6_1_1_1", @@ -1065,6 +1529,7 @@ module LTE_36523_SelectionExpressions { "TC_6_1_1_3", "TC_6_1_1_6", "TC_6_1_1_7", + "TC_6_1_1_8", "TC_6_1_2_7", "TC_6_1_2_8", "TC_6_1_2_9", @@ -1073,11 +1538,12 @@ module LTE_36523_SelectionExpressions { "TC_6_1_2_15", "TC_6_1_2_17", "TC_6_1_2_18", - "TC_6_1_2_20", "TC_6_3_1", "TC_6_3_5", "TC_6_3_6", "TC_6_3_9", + "TC_6_4_1", //@sic R5-153746 sic@ + "TC_6_4_2", //@sic R5-153746 sic@ "TC_8_1_3_4", "TC_8_1_3_5", "TC_8_2_2_6_2", @@ -1139,6 +1605,7 @@ module LTE_36523_SelectionExpressions { (px_ePrimaryFrequencyBand == 14) or (px_ePrimaryFrequencyBand == 17 and px_ePrimaryBandChannelBandwidth == n25 ) or (px_ePrimaryFrequencyBand == 23 and px_ePrimaryBandChannelBandwidth == n50 ) or + (px_ePrimaryFrequencyBand == 30) or //@sic R5-145714 sic@ (px_ePrimaryFrequencyBand == 38 ) or // @sic R5-103813 R5-104796 sic@ (px_ePrimaryFrequencyBand == 39 ) // @sic R5-120721 sic@ ) @@ -1149,11 +1616,12 @@ module LTE_36523_SelectionExpressions { "TC_6_1_1_3", "TC_6_1_1_6", "TC_6_1_1_7", + "TC_6_1_1_8", "TC_6_1_2_7", "TC_6_1_2_8", "TC_6_1_2_9", "TC_6_1_2_15", - "TC_3_3_1", //@sic R5-144219 sic@ + "TC_6_3_5", //@sic R5-144219 R5-151792 sic@ "TC_8_1_3_5", "TC_8_3_1_4", "TC_8_6_4_3", @@ -1174,6 +1642,7 @@ module LTE_36523_SelectionExpressions { case ("TC_6_1_1_1", "TC_6_1_1_2", "TC_6_1_1_6", + "TC_6_1_1_8", "TC_9_2_1_1_7") { v_ExecutionGuideline := false; } } }; // @sic R5s120334 sic@ @@ -1363,7 +1832,7 @@ module LTE_36523_SelectionExpressions { function f_ExecutionGuidelineUTRA ( charstring p_TestCase ) return boolean { /* Set the execution to TRUE or FALSE according to 36.523-3 clause 11.2.1 */ - // @sic R5-110803 R5-113734 R5-130670 sic@ + // @sic R5-110803 R5-113734 R5-130670 R50150123 sic@ var boolean v_ExecutionGuideline := true; if ( px_ePrimaryFrequencyBand == px_FDD_OperationBand ) { @@ -1392,6 +1861,7 @@ module LTE_36523_SelectionExpressions { "TC_6_2_3_32", "TC_6_2_3_33", "TC_6_2_4_1", + "TC_6_2_4_2", "TC_6_2_4_3", "TC_6_2_4_4", "TC_6_2_4_5", //@sic R5-144219 sic@ @@ -1400,7 +1870,10 @@ module LTE_36523_SelectionExpressions { "TC_6_3_3", "TC_6_3_4", "TC_6_3_7", - "TC_6_3_8", + "TC_6_4_3", //@sic R5-153746 sic@ + "TC_6_4_4", //@sic R5-153746 sic@ + "TC_6_4_5", //@sic R5-153746 sic@ + "TC_6_4_6", //@sic R5-153746 sic@ "TC_8_1_3_6", "TC_8_1_3_6a", "TC_8_1_3_7", @@ -1491,7 +1964,6 @@ module LTE_36523_SelectionExpressions { "TC_13_4_3_9", "TC_13_4_3_10", "TC_13_4_3_11", - "TC_13_4_3_12", "TC_13_4_3_13", "TC_13_4_3_14", "TC_13_4_3_15", @@ -1577,6 +2049,7 @@ module LTE_36523_SelectionExpressions { (px_ePrimaryFrequencyBand == 14 ) or (px_ePrimaryFrequencyBand == 17 and px_ePrimaryBandChannelBandwidth == n25 ) or (px_ePrimaryFrequencyBand == 23 and px_ePrimaryBandChannelBandwidth == n50 ) or + (px_ePrimaryFrequencyBand == 30) or //@sic R5-145714 sic@ (px_ePrimaryFrequencyBand == 38 ) or (px_ePrimaryFrequencyBand == 39 ) ) @@ -1626,6 +2099,7 @@ module LTE_36523_SelectionExpressions { (px_ePrimaryFrequencyBand == 14 ) or (px_ePrimaryFrequencyBand == 17 and px_ePrimaryBandChannelBandwidth == n25 ) or (px_ePrimaryFrequencyBand == 23 and px_ePrimaryBandChannelBandwidth == n50 ) or + (px_ePrimaryFrequencyBand == 30) or //@sic R5-145714 sic@ (px_ePrimaryFrequencyBand == 38 ) or (px_ePrimaryFrequencyBand == 39 )) { // Test cases using more than one radio frequency (acc to 36.523-3 cl 11.2.2) @@ -1725,7 +2199,7 @@ module LTE_36523_SelectionExpressions { (px_eSecondaryFrequencyBand == 13) or (px_eSecondaryFrequencyBand == 17 and px_eSecondaryBandChannelBandwidth == n50 ) or (px_eSecondaryFrequencyBand == 18) or - (px_ePrimaryFrequencyBand == 31)) //@sic R5-135000 sic@ + (px_ePrimaryFrequencyBand == 31)) //@sic R5-135000 R5-151792 sic@ { // Test cases using more than one radio frequency (acc to 36.523-3 cl 11.3) select (p_TestCase) { case ( @@ -1738,8 +2212,7 @@ module LTE_36523_SelectionExpressions { "TC_8_2_4_13a", "TC_8_2_4_14a", "TC_8_3_1_12a", - "TC_8_3_1_14a", - "TC_8_6_4_4" + "TC_8_3_1_14a" ) { v_ExecutionGuideline := false;} } }; @@ -1766,22 +2239,64 @@ module LTE_36523_SelectionExpressions { var boolean v_ExecutionGuideline := true; // CA contiguous Intra-band operation (acc to 36.523-3 cl 11.4.1) - if ( (px_ePrimaryFrequencyBand == 38) ) + //@sic R5-150123 R5-151792 sic@ + if ( (px_ePrimaryFrequencyBand == 23) or + (px_ePrimaryFrequencyBand == 38) or + (px_ePrimaryFrequencyBand == 39)) { // Test cases using more than one radio frequency - select (p_TestCase) { //@sic R5-141113 sic@ + select (p_TestCase) { //@sic R5-141113 R5-151792 sic@ case ( - "TC_7_1_2_10_3", - "TC_7_1_2_11_3", - "TC_8_2_2_7_3", "TC_8_2_4_19_1", "TC_8_2_4_21_1" ) { v_ExecutionGuideline := false;} } }; // CA Inter-band operation (acc to 36.523-3 cl 11.4.2) - if ( ((px_ePrimaryFrequencyBand == 2) and (px_eSecondaryFrequencyBand==29) ) or - ((px_ePrimaryFrequencyBand == 4) and (px_eSecondaryFrequencyBand==29)) + // @sic R5-150123 sic@ + if ( ((px_ePrimaryFrequencyBand == 8) and (px_eSecondaryFrequencyBand == 11)) or + ((px_ePrimaryFrequencyBand == 11) and (px_eSecondaryFrequencyBand == 18)) or + ((px_ePrimaryFrequencyBand == 12) and (px_eSecondaryFrequencyBand == 2)) or // reverse CA_2A-12A @sic R5-153746 sic@ + ((px_ePrimaryFrequencyBand == 13) and (px_eSecondaryFrequencyBand == 2)) or // reverse CA_2A-13A @sic R5-153746 sic@ + ((px_ePrimaryFrequencyBand == 12) and (px_eSecondaryFrequencyBand == 25)) or //@sic R5-151792 sic@ + ((px_ePrimaryFrequencyBand == 18) and (px_eSecondaryFrequencyBand == 28)) or + ((px_ePrimaryFrequencyBand == 19) and (px_eSecondaryFrequencyBand == 21)) or //@sic R5-151792 sic@ + //Switched configurations @sic R5s150233 sic@ + ((px_ePrimaryFrequencyBand == 18) and (px_eSecondaryFrequencyBand == 1)) or + ((px_ePrimaryFrequencyBand == 19) and (px_eSecondaryFrequencyBand == 1)) or + ((px_ePrimaryFrequencyBand == 21) and (px_eSecondaryFrequencyBand == 1)) or + ((px_ePrimaryFrequencyBand == 17) and (px_eSecondaryFrequencyBand == 2)) or //@sic R5-151792 sic@ + ((px_ePrimaryFrequencyBand == 30) and (px_eSecondaryFrequencyBand == 2)) or //@sic R5-151792 sic@ + ((px_ePrimaryFrequencyBand == 19) and (px_eSecondaryFrequencyBand == 3)) or + ((px_ePrimaryFrequencyBand == 11) and (px_eSecondaryFrequencyBand == 8)) or + ((px_ePrimaryFrequencyBand == 12) and (px_eSecondaryFrequencyBand == 4)) or + ((px_ePrimaryFrequencyBand == 13) and (px_eSecondaryFrequencyBand == 4)) or + ((px_ePrimaryFrequencyBand == 17) and (px_eSecondaryFrequencyBand == 4)) or + ((px_ePrimaryFrequencyBand == 30) and (px_eSecondaryFrequencyBand == 4)) or //@sic R5-151792 sic@ + ((px_ePrimaryFrequencyBand == 12) and (px_eSecondaryFrequencyBand == 5)) or + ((px_ePrimaryFrequencyBand == 17) and (px_eSecondaryFrequencyBand == 5)) or + ((px_ePrimaryFrequencyBand == 30) and (px_eSecondaryFrequencyBand == 5)) or //@sic R5-151792 sic@ + ((px_ePrimaryFrequencyBand == 18) and (px_eSecondaryFrequencyBand == 11)) or + ((px_ePrimaryFrequencyBand == 21) and (px_eSecondaryFrequencyBand == 19)) or + ((px_ePrimaryFrequencyBand == 29) and (px_eSecondaryFrequencyBand == 2)) or // CA_2A-29A reverse @sic R5-153746 sic@ + ((px_ePrimaryFrequencyBand == 29) and (px_eSecondaryFrequencyBand == 4)) or // CA_4A-29A reverse @sic R5-153746 sic@ + ((px_ePrimaryFrequencyBand == 13) and (px_eSecondaryFrequencyBand == 5)) or // CA_5A-13A reverse @sic R5-153746 sic@ + ((px_ePrimaryFrequencyBand == 11) and (px_eSecondaryFrequencyBand == 8)) or // CA_8A-11A reverse @sic R5-153746 sic@ + ((px_ePrimaryFrequencyBand == 30) and (px_eSecondaryFrequencyBand == 12)) // CA_12A-30A reverse @sic R5-153746 sic@ + ) //@sic R5-140787 R5-142985 sic@ + { // Test case using more than one radio frequency on the primary band, i.e. using the radio frequency f2 specified in TS 36.508 [3], shall avoid to be executed on E-UTRA CA Configuration: + select (p_TestCase) { + case ( + "TC_8_2_4_19_2" + ) { v_ExecutionGuideline := false;} + } + }; + + // CA Inter-band operation (acc to 36.523-3 cl 11.4.2) + if ( ((px_ePrimaryFrequencyBand == 2) and (px_eSecondaryFrequencyBand == 29) ) or + ((px_ePrimaryFrequencyBand == 4) and (px_eSecondaryFrequencyBand == 29)) or + ((px_ePrimaryFrequencyBand == 23) and (px_eSecondaryFrequencyBand == 29)) or //@sic R5-151792 sic@ + ((px_ePrimaryFrequencyBand == 20) and (px_eSecondaryFrequencyBand == 32)) //@sic R5-151103 sic@ ) //@sic R5-140787 R5-142985 sic@ { // Test case using more than one radio frequency on the primary band (acc to 36.523-3 cl 11.4.2) select (p_TestCase) { @@ -1793,12 +2308,25 @@ module LTE_36523_SelectionExpressions { "TC_8_2_4_17_2", "TC_8_2_4_20_2", "TC_8_2_4_21_2", + "TC_8_2_4_23_2", //@sic R5-144219 sic@ "TC_8_3_1_17_2", //@sic R5-144399 sic@ - "TC_8_3_1_18_2", //@sic R5-144399 sic@ - "TC_8_2_4_23_2" //@sic R5-144219 sic@ + "TC_8_3_1_18_2" //@sic R5-144399 sic@ ) { v_ExecutionGuideline := false;} } }; + + // CA non-contiguous Intra-band operation cl 11.4.3 @sic R5-150123 sic@ + // Test case using more than two radio frequencies, i.e. using the radio frequencies f3 specified in TS 36.508 [3], shall avoid to be executed on E-UTRA CA Configuration + if ( px_ePrimaryFrequencyBand == 23 ) // CA_23A-23A + { + select (p_TestCase) { + case ( + "TC_8_2_4_19_3", + "TC_8_2_4_21_3" + ) { v_ExecutionGuideline := false;} + } + } + return v_ExecutionGuideline; } @@ -1833,10 +2361,18 @@ module LTE_36523_SelectionExpressions { case ("TC_6_1_2_19", "TC_6_1_2_20", "TC_6_1_2_21", - "TC_8_2_4_22" + "TC_6_2_3_34", //@sic R5-150123 sic@ + "TC_6_2_3_35" ) { v_ExecutionGuideline := false;} } }; + //@sic R5s140772 sic@ + if ( px_OverlappingNotSupportedFrequencyBand_MFBI == 5 and px_MFBI_FrequencyBand == 18 ) { + select (p_TestCase) { + case ( "TC_6_1_2_20" ) { v_ExecutionGuideline := false;} + } + } + return v_ExecutionGuideline; }; } diff --git a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_AspSystem_Templates_CA.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_AspSystem_Templates_CA.ttcn similarity index 80% rename from LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_AspSystem_Templates_CA.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_AspSystem_Templates_CA.ttcn index 34ce72b..3548a59 100644 --- a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_AspSystem_Templates_CA.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_AspSystem_Templates_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-29 12:29:29 +0200 (Fri, 29 Aug 2014) $ -// $Rev: 11950 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 14:35:29 +0530 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module EUTRA_AspSystem_Templates_CA { @@ -24,16 +24,6 @@ module EUTRA_AspSystem_Templates_CA transmissionModeUL_r10 := tm1, fourAntennaPortActivated_r10 := omit }; - - template (value) UplinkPowerControlCommon_Type cs_UplinkPowerControlCommon_r10(template (value) UplinkPowerControlCommon p_UplinkPowerControlCommon, - template (omit) UplinkPowerControlCommon_v1020 p_UplinkPowerControlCommon_v1020 := omit) := - { /* @status APPROVED (LTE_A) */ - R8andLater := { - uplinkPowerControlCommon := p_UplinkPowerControlCommon, - uplinkPowerControlCommon_v1020 := p_UplinkPowerControlCommon_v1020, - uplinkPowerControlCommonSCell_v1130 := omit - } - }; template (value) SCellPathlossReferenceLinking_Type cs_SCellPathlossReferenceLinking_DEFAULT := sCell; @@ -77,8 +67,8 @@ module EUTRA_AspSystem_Templates_CA }, SR_Config := omit, CQI_ReportConfig := omit, - UplinkPowerControlCommon := cs_UplinkPowerControlCommon_r10(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon, - p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon_v1020), + UplinkPowerControlCommon := cs_UplinkPowerControlCommon_r8andLater(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon, + p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon_v1020), UplinkPowerControlDedicated := cs_UplinkPowerControlDedicated_r8(p_UplinkPowerControlDedicated, p_UplinkPowerControlDedicated_v1020, p_SCellPathlossReferenceLinking) }, RachProcedureConfig := omit, @@ -110,8 +100,8 @@ module EUTRA_AspSystem_Templates_CA SRS_UL_Config := omit, SR_Config := omit, CQI_ReportConfig := omit, - UplinkPowerControlCommon := cs_UplinkPowerControlCommon_r10(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon, - p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon_v1020), + UplinkPowerControlCommon := cs_UplinkPowerControlCommon_r8andLater(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon, + p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon_v1020), UplinkPowerControlDedicated := omit }, RachProcedureConfig := omit, @@ -184,10 +174,10 @@ module EUTRA_AspSystem_Templates_CA }; template (value) SYSTEM_CTRL_REQ cas_CellConfig_AntennaInfor10_REQ(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo, - template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated := cs_AntennaInfoDedicated_r10, - template (omit) AntennaInfoUL_r10 p_AntennaInfoUL := cs_AntennaInfoUL_r10) := - { /* @status */ + template (value) TimingInfo_Type p_TimingInfo, + template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated := cs_AntennaInfoDedicated_r10, + template (omit) AntennaInfoUL_r10 p_AntennaInfoUL := cs_AntennaInfoUL_r10) := + { /* @status APPROVED (LTE_A) */ Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), Request := { Cell := { @@ -228,11 +218,13 @@ module EUTRA_AspSystem_Templates_CA template (value) AntennaInfoDedicated_Type cs_AntennaInfoDedicated_R10andLater(template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated, - template (omit) AntennaInfoUL_r10 p_AntennaInfoUL := omit ):= + template (omit) AntennaInfoUL_r10 p_AntennaInfoUL := omit, + template (omit) AntennaInfoDedicated_v1250 p_AntennaInfoDedicated_v1250 := omit):= { /* @status APPROVED (LTE_A) */ R10andLater := { antennaInfo := p_AntennaInfoDedicated, - antennaInfoUL := p_AntennaInfoUL + antennaInfoUL := p_AntennaInfoUL, + antennaInfoDedicated_v1250 := p_AntennaInfoDedicated_v1250 /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -294,13 +286,24 @@ module EUTRA_AspSystem_Templates_CA { /* @status APPROVED (LTE_A) */ NumberOfRadioFrames := p_RF }; + + template (value) Pcell_Mode_Type cs_Pcell_Mode_FDD := + { /* @status APPROVED (LTE_A) */ + FDD := true + }; + + template (value) Pcell_Mode_Type cs_Pcell_Mode_TDD(TDD_SubframeAssignment_Type p_TDD_SubframeAssignment) := + { /* @status APPROVED (LTE_A) */ + TDD := p_TDD_SubframeAssignment + }; template (value) ServingCellConfig_Type cs_SCellConfig(EUTRA_CellId_Type p_AssociatedPcellId, SCellIndex_r10 p_SCellIndex, template (value) Scell_Capability_Type p_Scell_Capability, MAC_MainConfig_ScellDeactivationTimer_Type p_RF := rf32 , template (omit) CrossCarrierSchedulingConfig_Type p_CrossCarrierSchedulingConfig := omit, - template (omit) STAG_Id_r11 p_STAG_Id := omit) := //@sic new CA-Enh test development sic@ + template (omit) STAG_Id_r11 p_STAG_Id := omit, //@sic R5w150205 sic@ + template (omit) Pcell_Mode_Type p_Pcell_Mode := omit) := //@sic new CA-Enh test development sic@ { /* @status APPROVED (LTE_A) */ SCell := { AssociatedPcellId := p_AssociatedPcellId, @@ -308,7 +311,8 @@ module EUTRA_AspSystem_Templates_CA Scell_Capability := p_Scell_Capability, ScellDeactivationTimer := cs_ScellDeactivationTimer(p_RF), CrossCarrierSchedulingConfig := p_CrossCarrierSchedulingConfig, - STAG_Id := p_STAG_Id //@sic new CA-Enh test development sic@ + STAG_Id := p_STAG_Id,//@sic new CA-Enh test development sic@ + Pcell_Mode := p_Pcell_Mode } }; @@ -317,5 +321,42 @@ module EUTRA_AspSystem_Templates_CA Release := true }; + + template (value) SYSTEM_CTRL_REQ cas_CellConfig_PUCCH_Dedicated(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, + template (omit) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020) := //@sic R5s150229 sic@ + { /* @status APPROVED (LTE_A) + @sic R5s150070 sic@ */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Cell := { + AddOrReconfigure := { + Basic := omit, + Active := { + C_RNTI := omit, + PhysicalLayerConfigUL := { + Prach := omit, + Pucch := { + Common := omit, + Dedicated := cs_PUCCH_ConfigDedicated_r8(p_PUCCH_ConfigDedicated, p_PUCCH_ConfigDedicated_v1020) + }, + Pusch := omit, + TimingAdvance := omit, + SRS_UL_Config := omit, + SR_Config := omit, + CQI_ReportConfig := omit, + UplinkPowerControlCommon := omit, + UplinkPowerControlDedicated := omit + }, + RachProcedureConfig := omit, + CcchDcchDtchConfig := omit, + ServingCellConfig := omit + } + } + } + } + }; + } diff --git a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_CommonFunctions_CA.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_CommonFunctions_CA.ttcn similarity index 52% rename from LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_CommonFunctions_CA.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_CommonFunctions_CA.ttcn index 729dbf7..c3a400b 100644 --- a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_CommonFunctions_CA.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_CommonFunctions_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 17:33:02 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12190 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 12:51:15 +0530 (Wed, 16 Sep 2015) $ +// $Rev: 14434 $ /******************************************************************************/ module EUTRA_CommonFunctions_CA { @@ -28,18 +28,87 @@ module EUTRA_CommonFunctions_CA import from EUTRA_CellInfoInit_CA all; import from EUTRA_DRB_Templates all; import from EUTRA_CellInfoInit_CA all; - //import from EUTRA_Parameters all; - //import from EUTRA_CellInfoFrequency all; - //import from EUTRA_NASSteps all; import from EUTRA_Timing all; import from EUTRA_SecurityFunctions all; import from EUTRA_SecuritySteps all; import from EUTRA_SysInfo_Templates all; import from EUTRA_RRCSteps all; + import from EUTRA_ASP_DrbDefs all; + import from L2_CommonFunctions all; + import from L2_CommonTemplates all; + import from MAC_Common all; + import from EUTRA_CommonProcedures all; + import from Parameters all; const EUTRA_CellIdList_Type tsc_EUTRA_NullCellIdList := {}; /* @status APPROVED (LTE_A) */ + const B7_Type tsc_Scell1_Activate := '0000001'B; /* @status APPROVED (LTE_A) */ + template (present) RLC_AMD_Header_Type cr_RLC_AMD_Header_1SDU_713x(template (present) B1_Type p_Poll, + template (present) B10_Type p_SN) := + { /* @status APPROVED (LTE_A) */ + //@sic R5s140498 sic@ + FixPart := cr_RLC_AMD_Header_FixPart_713x(p_Poll, p_SN), + SegmentPart := omit, + FlexPart := cr_FlexPart_1LI (38) //@sic R5s150329 sic@ + }; + + template (present) RLC_AMD_Header_FixPart_Type cr_RLC_AMD_Header_FixPart_713x(template (present) B1_Type p_Poll, + template (present) B10_Type p_SN) := + { /* @status APPROVED (LTE_A) */ + //@sic R5s140498 sic@ + D_C := tsc_D_C_DataPDU, /* 1 ... Data PDU */ + ReSeg := '0'B, /* 0 ... AMD PDU */ + Poll := p_Poll, + FramingInfo := tsc_Framing00, /* 2 bit FI */ + Extension := tsc_ExtensionMoreHeaders, /* 1 bit E */ + SN := p_SN /* Sequence numbers */ + }; + template (present) RLC_PDU_Type cr_RLC_AMD_2PDU_713x(template (present) B1_Type p_Poll, + template (present) B10_Type p_SN, + template (present) RLC_DataField_Type p_RLC_SDU, + template (present) RLC_DataField_Type p_RLC_SDU2) := + { /* @status APPROVED (LTE_A) */ + //@sic R5s140498 sic@ + AMD := { + Header := cr_RLC_AMD_Header_1SDU_713x(p_Poll, p_SN), + Data := {p_RLC_SDU, p_RLC_SDU2} + } + }; + + template (present) SYSTEM_CTRL_CNF car_SYSTEM_CTRL_ActivateScell_CNF(EUTRA_CellId_Type p_CellId) := + { /* @status APPROVED (LTE_A) */ + Common := cr_CnfAspCommonPart_CellCfg(p_CellId), + Confirm := { + ActivateScell := true + } + }; + + template (value) SYSTEM_CTRL_REQ cas_ScellActivate_REQ(EUTRA_CellId_Type p_CellId, + B7_Type p_ScellBitMap, + boolean p_SendMCE := false, //@sic R5s140693 sic@ + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) := + { /* @status APPROVED (LTE_A) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + ActivateScell := cs_ActivateScell(p_ScellBitMap, p_SendMCE) + } + }; + + template (value) ActivateScell_Type cs_ActivateScell(B7_Type p_ScellBitMap, + boolean p_SendMCE := false) := + { /* @status APPROVED (LTE_A) */ + ScellActivation := cs_ScellBitMap (p_ScellBitMap), /* 36.321 clause 6.1.3.8; B0=C7, B1=C6 .. B6=C1, B7 is reserved. + * B0 to B6, 1 means Activate associated Scell */ + SendMCE := p_SendMCE /* If true the SS sends a MAC Control Element to the UE */ + }; + + template (value) ScellBitMap_Type cs_ScellBitMap(B7_Type p_ScellBitMap) := + { /* @status APPROVED (LTE_A) */ + Value := p_ScellBitMap, /* 7 MSB bits the C Fields C7 to C1. 1 => the corresponding Scell is Active 0 => Inactive */ + Reserved := '0'B //@sic R5s141373 sic@ + }; + //========================================================================= // Sys Config Functions //========================================================================= @@ -70,8 +139,7 @@ module EUTRA_CommonFunctions_CA var boolean v_NoUL_SCell:= f_EUTRA_CellInfo_GetNoUL_Frequency(p_SCellId) ; //@sic R5s140527 sic@ f_EUTRA_SS_ConfigureActiveCell(p_SCellId, p_CA_CellInitialConfig); // Active cell No SRB's/ DRB's configured f_EUTRA_SS_ConfigureSRB0(p_SCellId); //SRB0 configured - if (not v_NoUL_SCell) //@sic R5s140083 sic@ - { + if (not v_NoUL_SCell) { //@sic R5s140083 sic@ f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_CellConfig_ScellMod_REQ(p_SCellId, cs_TimingInfo_Now, f_EUTRA_CellInfo_Get(p_SCellId), @@ -87,32 +155,11 @@ module EUTRA_CommonFunctions_CA */ function f_EUTRA_CellConfig_Pcell_Def(EUTRA_CellId_Type p_PCellId) runs on EUTRA_PTC { - f_EUTRA_CellConfig_Def(p_PCellId,PCell); + f_EUTRA_CellConfig_Def(p_PCellId, -, -, PCell); // @sic R5s150338: formal parameter list sic@ f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_CellConfig_PcellMod_REQ(p_PCellId, cs_TimingInfo_Now, f_EUTRA_CellInfo_Get(p_PCellId))); //Update UL power control } - /* - * @desc To change a Scell to Pcell - * @param p_PCellId - * @status - */ - function f_EUTRA_CellConfig_PcellToScell_Def(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo, - template (value) CA_CellInitialConfig_Type p_CA_CellInitialConfig := Scell_Inactive) runs on EUTRA_PTC - { - - f_EUTRA_SS_ReleaseSRBs1_2(p_CellId, p_TimingInfo); - f_EUTRA_SS_DRB1_Release(p_CellId, p_TimingInfo); - f_EUTRA_SS_CommonCellConfig(p_CellId, cas_CellConfig_ScellMod_REQ(p_CellId, - p_TimingInfo, - f_EUTRA_CellInfo_Get(p_CellId), - f_EUTRA_CellInfo_GetSounding_ConfigCommon(p_CellId), - -,-,-,-,-, - cs_BasicCellConfig_CA_CellType(p_CA_CellInitialConfig))); - //Update Cell Type and power control, PUSCH config Dedicated, SRS UL Dedicated as per Scell default configuration - } - /* * @desc To change a Scell to Pcell * @param p_CellId @@ -120,12 +167,10 @@ module EUTRA_CommonFunctions_CA * @status APPROVED (LTE_A) */ function f_EUTRA_CellConfig_ScellToPcell_Def(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo) runs on EUTRA_PTC - { - + { // @sic R5s150338: configuration of DRB1 removed sic@ f_EUTRA_SS_CommonCellConfig(p_CellId, cas_CellConfig_PcellMod_REQ(p_CellId, p_TimingInfo, f_EUTRA_CellInfo_Get(p_CellId), cs_BasicCellConfig_CA_CellType(PCell))); //Update Cell Type and UL power control f_EUTRA_SS_ConfigureSRBs(p_CellId, p_TimingInfo); - f_EUTRA_SS_DRB1_DefConfig(p_CellId, p_TimingInfo); } //========================================================================= @@ -146,7 +191,7 @@ module EUTRA_CommonFunctions_CA select (v_CellInfo.Frequency.DL_ChBandwidth) { case (n6) { v_SCell_DL_Bandwidth := n6; } case (n15) { v_SCell_DL_Bandwidth := n15; } - case (n25) { v_SCell_DL_Bandwidth := n25; } + case (n25) { v_SCell_DL_Bandwidth := n25; } case (n50) { v_SCell_DL_Bandwidth := n50; } case (n75) { v_SCell_DL_Bandwidth := n75; } case (n100) { v_SCell_DL_Bandwidth := n100; } @@ -187,7 +232,6 @@ module EUTRA_CommonFunctions_CA * @param p_RRCConnectionReconfiguration (default value: omit) * @param p_DciUlInfo_SCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) * @param p_UL_GrantConfig_SCell (default value: cs_UL_GrantConfig_Def) - * @param p_CnfFlag (default value: tsc_NoCnfReq) * @param p_STAG_ToReleaseList (default value: omit) * @param p_STAG_ToAddModList (default value: omit) * @param p_MAC_MainConfigSCell_r11 (default value: omit) @@ -195,6 +239,7 @@ module EUTRA_CommonFunctions_CA * @param p_PRACH_Config_SCell (default value: omit) * @param p_TimeAlignmentTimer (default value: sf750) * @param p_ScellDeactivationTimer (default value: rf32) + * @param p_MBSFN_SubframeConfigList (default value: omit) * @status APPROVED (LTE_A) */ function f_EUTRA_508RRC_AddMod_1Scell(EUTRA_CellId_Type p_PCellId, @@ -207,7 +252,6 @@ module EUTRA_CommonFunctions_CA template (omit) DL_DCCH_Message p_RRCConnectionReconfiguration := omit, template (omit) DciUlInfo_Type p_DciUlInfo_SCell := cs_DciInfo_CcchDcchDtchUL_Def, template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Def, - boolean p_CnfFlag := tsc_NoCnfReq, //@sic new CA-Enh test development sic@ template (omit) STAG_ToReleaseList_r11 p_STAG_ToReleaseList := omit, template (omit) STAG_ToAddModList_r11 p_STAG_ToAddModList := omit, @@ -215,7 +259,8 @@ module EUTRA_CommonFunctions_CA template (omit) RACH_ConfigCommonSCell_r11 p_RACH_ConfigCommonSCell_r11 := omit, template (omit) PRACH_Config p_PRACH_Config_SCell := omit, TimeAlignmentTimer p_TimeAlignmentTimer := sf750, - MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer :=rf32) runs on EUTRA_PTC + MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer :=rf32, //@sic R5s150285 sic@ + template(omit) MBSFN_SubframeConfigList p_MBSFN_SubframeConfigList := omit) runs on EUTRA_PTC { var integer v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); var PhysCellId v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); @@ -236,7 +281,7 @@ module EUTRA_CommonFunctions_CA var template (value) Scell_Capability_Type v_Scell_Capability := DlOnly; var template (value) PUCCH_ConfigDedicated_v1020 v_PUCCH_ConfigDedicated; var template (omit) AdditionalSpectrumEmissionCA_r10_Type v_AdditionalSpectrumEmissionCA_r10 := omit; - + if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD @@ -250,7 +295,7 @@ module EUTRA_CommonFunctions_CA } else { //FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); - // TBD for 2TX + // Not addressed for 2TX } if (v_UL_CA) { @@ -259,12 +304,7 @@ module EUTRA_CommonFunctions_CA } v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ } v_SCellToAddMod := cs_SCellToAddMod_r10(p_SCellIndex, v_PhysicalCellIdentity_Scell, @@ -275,7 +315,8 @@ module EUTRA_CommonFunctions_CA v_TDD_Config, -, p_RACH_ConfigCommonSCell_r11, - p_PRACH_Config_SCell), + p_PRACH_Config_SCell, + p_MBSFN_SubframeConfigList), //@sic R5s150285 sic@ cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration), p_MAC_MainConfigSCell_r11 ));//@sic new CA-Enh test development sic@ v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_AddModRelease(tsc_RRC_TI_Def, v_SCellToAddMod, v_PUCCH_ConfigDedicated,-,p_TimeAlignmentTimer,v_AdditionalSpectrumEmissionCA_r10,-, p_STAG_ToReleaseList, p_STAG_ToAddModList,p_ScellDeactivationTimer);//@sic new CA-Enh test development sic@ } @@ -295,17 +336,27 @@ module EUTRA_CommonFunctions_CA p_C_RNTI, p_MeasGapConfig, p_DciUlInfo_SCell, - p_UL_GrantConfig_SCell, - p_CnfFlag); + p_UL_GrantConfig_SCell); } // Function caters only for absolute configuration os scells. Does not support incremental configuration. i.e. cell X is already Scell, and Cell y is being added as new Scell - function f_EUTRA_508RRC_AddModRel_Scell_MIMO(EUTRA_CellId_Type p_PCellId, - EUTRA_CellId_Type p_SCellId, - template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, - template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, + /* + * @desc Generic function to add or modify a Scell for MIMO operation + * @param p_PCellId + * @param p_SCellId + * @param p_RRC_ConnRecongMsg + * @param p_Scell_Capability (default value: UL_DL) + * @param p_MeasGapConfig (default value: omit) + * @param p_DciUlInfo_SCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) + * @param p_UL_GrantConfig_SCell (default value: cs_UL_GrantConfig_Def) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_508RRC_AddModRel_Scell_MIMO(EUTRA_CellId_Type p_PCellId, + EUTRA_CellId_Type p_SCellId, + template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, + template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, template (omit) MeasGapConfig p_MeasGapConfig := omit, template (omit) DciUlInfo_Type p_DciUlInfo_SCell := cs_DciInfo_CcchDcchDtchUL_Def, template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Def) @@ -313,27 +364,39 @@ module EUTRA_CommonFunctions_CA { var boolean v_MeasGapConfigIsPresent := isvalue(p_MeasGapConfig); var DrxCtrl_Type v_DrxCtrl; - //var integer i; - var template (value) RRCConnectionReconfiguration_r8_IEs v_RRCConnectionReconfigurationIEs := p_RRC_ConnRecongMsg.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8; - var SCellIndex_r10 v_SCellIndex :=1; + var RRCConnectionReconfiguration_r8_IEs v_RRCConnectionReconfigurationIEs := valueof(p_RRC_ConnRecongMsg.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8); + var SCellIndex_r10 v_SCellIndex := 1; var MAC_MainConfig_ScellDeactivationTimer_Type v_DeactTimer := rf32; var boolean v_NoUL_SCell ; //@sic R5s140083 sic@ var template (omit) STAG_Id_r11 v_STAG_Id := omit ; //@sic new CA-Enh test development sic@ - var SubFrameTiming_Type v_TimingInfo, v_TimingInfo2; + var SubFrameTiming_Type v_TimingInfo; + var SubFrameTiming_Type v_TimingInfo2; + //@sic R5w150205 sic@ + var template (omit)Pcell_Mode_Type v_Pcell_Mode := omit; + var EUTRA_FDD_TDD_CellInfo_Type v_SCellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_SCellId); + var EUTRA_FDD_TDD_CellInfo_Type v_PcellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + if (v_PcellFDD_TDDInfo.FDD_TDD != v_SCellFDD_TDDInfo.FDD_TDD) //Scell mode is different than Pcell + { + if (v_PcellFDD_TDDInfo.FDD_TDD == FDD) //Pcell is FDD + { + v_Pcell_Mode := cs_Pcell_Mode_FDD + } else //Pcell is TDD + { + v_Pcell_Mode := cs_Pcell_Mode_TDD (v_PcellFDD_TDDInfo.TDD_SubframeAssignment); + } + }; + // Step 1: Configure PCell as Pcell or normal cell f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_PCellConfig_REQ(p_PCellId, cs_TimingInfo_Now, {p_SCellId})); - // Configure Scell for TM change - if (ispresent(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].radioResourceConfigDedicatedSCell_r10.physicalConfigDedicatedSCell_r10.nonUL_Configuration_r10.antennaInfo_r10)) { - f_EUTRA_AntennaInfoR10_Config(p_SCellId, cs_TimingInfo_Now, valueof(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].radioResourceConfigDedicatedSCell_r10.physicalConfigDedicatedSCell_r10.nonUL_Configuration_r10.antennaInfo_r10)); - } + if (isvalue(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10)) { - v_DeactTimer := valueof(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10); + v_DeactTimer := v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10; } v_NoUL_SCell := f_EUTRA_CellInfo_GetNoUL_Frequency(p_SCellId); - v_SCellIndex := valueof(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].sCellIndex_r10); + v_SCellIndex := v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].sCellIndex_r10; if (not v_NoUL_SCell) { // Step 2: Configure C-RNTI based contention resolution in S-cell @@ -356,32 +419,190 @@ module EUTRA_CommonFunctions_CA if (ispresent (v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].radioResourceConfigDedicatedSCell_r10.mac_MainConfigSCell_r11)) { v_STAG_Id := v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].radioResourceConfigDedicatedSCell_r10.mac_MainConfigSCell_r11.stag_Id_r11; } - + v_TimingInfo := f_EUTRA_GetNextSendOccasion(p_PCellId); v_TimingInfo2 := f_EUTRA_TimingInfoAdd(v_TimingInfo,5); // 5 ms later // Step 6: Transmit RRCConnectionReconfiguration/HO command to UE SRB.send(cas_SRB1_RrcPdu_REQ(p_PCellId, cs_TimingInfo(v_TimingInfo.SFN.Number, v_TimingInfo.Subframe.Number), p_RRC_ConnRecongMsg)); // Configure Pcell for TM change - if (ischosen (v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.physicalConfigDedicated.antennaInfo_r10.explicitValue_r10)) { + if (ischosen(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.physicalConfigDedicated.antennaInfo_r10.explicitValue_r10)) { f_EUTRA_AntennaInfoR10_Config(p_PCellId, cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), - valueof(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.physicalConfigDedicated.antennaInfo_r10.explicitValue_r10)); + v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.physicalConfigDedicated.antennaInfo_r10.explicitValue_r10); } // Step 4: Configure SCell as Scell - f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_SCellConfig_REQ(p_SCellId, cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), cs_SCellConfig(p_PCellId, v_SCellIndex, p_Scell_Capability, v_DeactTimer,-,v_STAG_Id))); + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_SCellConfig_REQ(p_SCellId, cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), cs_SCellConfig(p_PCellId, v_SCellIndex, p_Scell_Capability, v_DeactTimer,-,v_STAG_Id,v_Pcell_Mode))); //@sic R5w150205 sic@ if (not v_NoUL_SCell) { // Step 5: configure Stop UL grant configuration on S cell f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ULGrantAllocation_REQ(p_SCellId, cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), p_DciUlInfo_SCell, cs_PUCCH_Synch_None, p_UL_GrantConfig_SCell)); } - + // Configure Scell for TM change + //@sic R5s150406 sic@ + if (ispresent(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].radioResourceConfigDedicatedSCell_r10.physicalConfigDedicatedSCell_r10.nonUL_Configuration_r10.antennaInfo_r10)) { + f_EUTRA_AntennaInfoR10_Config(p_SCellId, cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[0].radioResourceConfigDedicatedSCell_r10.physicalConfigDedicatedSCell_r10.nonUL_Configuration_r10.antennaInfo_r10); + } + // Step 7: Receive RRCConnectionReconfiguration Complete SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); // No RACH configuration as Already configured for C-RNTI based contention - } + /* + * @desc To configue Pcell when Scells are to be added + * @param p_PCellId + * @param p_SCellIdAddList (default value: tsc_EUTRA_NullCellIdList) + * @param p_RRC_ConnRecongMsg + * @param p_RachProcedureConfig + * @param p_C_RNTI (default value: tsc_C_RNTI_Def) + * @param p_MeasGapConfig (default value: omit) + * @param p_CnfFlag (default value: tsc_NoCnfReq) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_ConfigPcell_AddScells(EUTRA_CellId_Type p_PCellId, + EUTRA_CellIdList_Type p_SCellIdAddList := tsc_EUTRA_NullCellIdList, + //template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, + template (value) RachProcedureConfig_Type p_RachProcedureConfig, + C_RNTI p_C_RNTI := tsc_C_RNTI_Def, + template (omit) MeasGapConfig p_MeasGapConfig := omit, //@sic R5s130503 sic@ + boolean p_CnfFlag := tsc_NoCnfReq) + runs on EUTRA_PTC + { +// var template (value) RRCConnectionReconfiguration_r8_IEs v_RRCConnectionReconfigurationIEs := p_RRC_ConnRecongMsg.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8; +// var MAC_MainConfig_ScellDeactivationTimer_Type v_DeactTimer := rf32; + var boolean v_MeasGapConfigIsPresent := isvalue(p_MeasGapConfig); + var boolean v_NoUL_SCell; //@sic R5s140083 sic@ +// var template (omit) STAG_Id_r11 v_STAG_Id := omit ; //@sic new CA-Enh test development sic@ + var DrxCtrl_Type v_DrxCtrl; + var integer i; + + + // Step 1: Configure PCell as Pcell or normal cell + if (lengthof(p_SCellIdAddList) > 0) { // one or more SCell Addition + f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_PCellConfig_REQ(p_PCellId, cs_TimingInfo_Now, p_SCellIdAddList, p_CnfFlag)); + } + + for (i:=0; i < lengthof(p_SCellIdAddList); i:=i+1) { //Executed 0 or more times + v_NoUL_SCell := f_EUTRA_CellInfo_GetNoUL_Frequency(p_SCellIdAddList[i]); + + if (not v_NoUL_SCell) { //@sic R5s140083 sic@ + // Step 2: Configure C-RNTI based contention resolution in S-cell + f_EUTRA_SS_ConfigRachProcedure(p_SCellIdAddList[i], p_C_RNTI, p_RachProcedureConfig, -, p_CnfFlag); + } + + // Save new C-RNTI in cell configuration for p_SCellId + f_EUTRA_CellInfo_SetC_RNTI(p_SCellIdAddList[i], p_C_RNTI); + + // Step 3: configure DRX and MeasGap at the S cell (if necessary) + if (f_EUTRA_CellInfo_DrxIsConfigured(p_PCellId)) { + v_DrxCtrl := f_EUTRA_CellInfo_GetDrxCtrl(p_PCellId); + f_EUTRA_SS_DrxCtrlConfig(p_SCellIdAddList[i], v_DrxCtrl, -, p_CnfFlag); + } + + if (v_MeasGapConfigIsPresent) { + f_EUTRA_SS_MeasGapCtrlConfig(p_SCellIdAddList[i], cs_MeasGapCtrl_Config(valueof(p_MeasGapConfig)), -, p_CnfFlag); // valueof to avoid compiler warnings: ok as v_MeasConfig.measGapConfig is checked to be present + } + } + } + + /* + * @desc Further configuration of Pcell and Scell + * @param p_PCellId + * @param p_SCellIdAddList (default value: tsc_EUTRA_NullCellIdList) + * @param p_RRC_ConnRecongMsg + * @param p_Scell_Capability (default value: UL_DL) + * @param p_DciUlInfo_SCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) + * @param p_UL_GrantConfig_SCell (default value: cs_UL_GrantConfig_Stop) + * @param p_TimingInfo + * @param p_CnfFlag (default value: tsc_NoCnfReq) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_ConfigPcell_ConfigScells(EUTRA_CellId_Type p_PCellId, + EUTRA_CellIdList_Type p_SCellIdAddList := tsc_EUTRA_NullCellIdList, + template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, + template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, + template (omit) DciUlInfo_Type p_DciUlInfo_SCell := cs_DciInfo_CcchDcchDtchUL_Def, + template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Stop, + template (value) TimingInfo_Type p_TimingInfo, + boolean p_CnfFlag := tsc_NoCnfReq) + runs on EUTRA_PTC + { + var template (value) RRCConnectionReconfiguration_r8_IEs v_RRCConnectionReconfigurationIEs := p_RRC_ConnRecongMsg.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8; + var MAC_MainConfig_ScellDeactivationTimer_Type v_DeactTimer := rf32; + var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo_PCell := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + var template (omit) STAG_Id_r11 v_STAG_Id := omit; //@sic new CA-Enh test development sic@ + var boolean v_NoUL_SCell; //@sic R5s140083 sic@ + var SCellIndex_r10 v_SCellIndex; + var integer i; + //@sic R5w150205 sic@ + var template (omit)Pcell_Mode_Type v_Pcell_Mode := omit; + var EUTRA_FDD_TDD_CellInfo_Type v_SCellFDD_TDDInfo ; + var EUTRA_FDD_TDD_CellInfo_Type v_PcellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + + for (i:=0; i < lengthof(p_SCellIdAddList); i:=i+1) + { + v_SCellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_SCellIdAddList[i]); + if (v_PcellFDD_TDDInfo.FDD_TDD != v_SCellFDD_TDDInfo.FDD_TDD) //Scell mode is different than Pcell + { + + if (v_PcellFDD_TDDInfo.FDD_TDD == FDD) //Pcell is FDD + { + v_Pcell_Mode := cs_Pcell_Mode_FDD + } else //Pcell is TDD + { + v_Pcell_Mode := cs_Pcell_Mode_TDD (v_PcellFDD_TDDInfo.TDD_SubframeAssignment); + } + break; // One scell mode mismatch is sufficient.. + }; + }; + + if (isvalue(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10)) { + v_DeactTimer := valueof(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10); + } + + if (ispresent(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.physicalConfigDedicated.pucch_ConfigDedicated_v1020)) { + f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_CellConfig_PUCCH_Dedicated(p_PCellId, + p_TimingInfo, + v_FDD_TDDInfo_PCell.pucch_Config, + v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.physicalConfigDedicated.pucch_ConfigDedicated_v1020)); + } + f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_CellConfig_CQI_ReportConfig_r10(p_PCellId, + p_TimingInfo, + cs_CQI_ReportConfig_r10_DEFAULT)); + // one or more SCell Addition + for (i:=0; i < lengthof(p_SCellIdAddList); i:=i+1) { //Executed 0 or more times + v_NoUL_SCell := f_EUTRA_CellInfo_GetNoUL_Frequency(p_SCellIdAddList[i]); + v_SCellIndex := valueof(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[i].sCellIndex_r10); + if (ispresent(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[i].radioResourceConfigDedicatedSCell_r10.mac_MainConfigSCell_r11)) { + v_STAG_Id := v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[i].radioResourceConfigDedicatedSCell_r10.mac_MainConfigSCell_r11.stag_Id_r11; + } + // Step 4: Configure SCell as Scell + f_EUTRA_SS_CommonCellConfig(p_SCellIdAddList[i], cas_SCellConfig_REQ(p_SCellIdAddList[i], + p_TimingInfo, + cs_SCellConfig(p_PCellId, v_SCellIndex, p_Scell_Capability, v_DeactTimer, - , v_STAG_Id, v_Pcell_Mode), //@sic R5w150205 sic@ + p_CnfFlag)); + if (not v_NoUL_SCell) { //@sic R5s140083 sic@ + f_EUTRA_SS_CommonCellConfig(p_SCellIdAddList[i], cas_CellConfig_CQI_ReportConfig_r10(p_SCellIdAddList[i], + p_TimingInfo, + cs_CQI_ReportConfig_r10_DEFAULT)); + // Step 5: configure Stop UL grant configuration on S cell + f_EUTRA_SS_CommonCellConfig(p_SCellIdAddList[i], cas_ULGrantAllocation_REQ(p_SCellIdAddList[i], + p_TimingInfo, + p_DciUlInfo_SCell, + cs_PUCCH_Synch_None, + p_UL_GrantConfig_SCell, + p_CnfFlag)); + } + } + } + + + + + + + /* * @desc Function to Add/Modify and/or rel 1 Scell * @param p_PCellId @@ -394,109 +615,65 @@ module EUTRA_CommonFunctions_CA * @param p_MeasGapConfig (default value: cs_508_MeasGapConfig_GP1) * @param p_DciUlInfo_SCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) * @param p_UL_GrantConfig_SCell (default value: cs_UL_GrantConfig_Stop) - * @param p_CnfFlag (default value: tsc_NoCnfReq) * @param p_PcelltoNormalCell (default value: false) * @status APPROVED (LTE_A) */ function f_EUTRA_508RRC_AddModRel_Scell_Common(EUTRA_CellId_Type p_PCellId, EUTRA_CellIdList_Type p_SCellIdAddList := tsc_EUTRA_NullCellIdList, EUTRA_CellIdList_Type p_SCellIdDelList := tsc_EUTRA_NullCellIdList, - template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, - template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, - template (value) RachProcedureConfig_Type p_RachProcedureConfig, + template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, + template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, + template (value) RachProcedureConfig_Type p_RachProcedureConfig, C_RNTI p_C_RNTI := tsc_C_RNTI_Def, template (omit) MeasGapConfig p_MeasGapConfig := omit, //@sic R5s130503 sic@ template (omit) DciUlInfo_Type p_DciUlInfo_SCell := cs_DciInfo_CcchDcchDtchUL_Def, template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Stop, - boolean p_CnfFlag := tsc_NoCnfReq, boolean p_PcelltoNormalCell := false) //Configure Pcell to Normal cell if p_SCellIdAddList is empty runs on EUTRA_PTC { - var boolean v_MeasGapConfigIsPresent := isvalue(p_MeasGapConfig); - var DrxCtrl_Type v_DrxCtrl; var integer i; - var template (value) RRCConnectionReconfiguration_r8_IEs v_RRCConnectionReconfigurationIEs := p_RRC_ConnRecongMsg.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8; - var SCellIndex_r10 v_SCellIndex; - var MAC_MainConfig_ScellDeactivationTimer_Type v_DeactTimer := rf32; - var boolean v_NoUL_SCell ; //@sic R5s140083 sic@ - var template (omit) STAG_Id_r11 v_STAG_Id := omit ; //@sic new CA-Enh test development sic@ - var SubFrameTiming_Type v_TimingInfo, v_TimingInfo2; + var SubFrameTiming_Type v_TimingInfo; + var SubFrameTiming_Type v_TimingInfo2; + var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo_PCell := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + var boolean v_CnfFlag := tsc_NoCnfReq; - // Step 1: Configure PCell as Pcell or normal cell - if (lengthof(p_SCellIdAddList) > 0) { // one or more SCell Addition - f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_PCellConfig_REQ(p_PCellId, cs_TimingInfo_Now, p_SCellIdAddList, p_CnfFlag)); - } - - if (isvalue(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10)) { - v_DeactTimer := valueof(v_RRCConnectionReconfigurationIEs.radioResourceConfigDedicated.mac_MainConfig.explicitValue.mac_MainConfig_v1020.sCellDeactivationTimer_r10); - } - if (lengthof(p_SCellIdAddList) > 0) { // one or more SCell Addition - for (i:=0; i < lengthof(p_SCellIdAddList); i:=i+1) { //Executed 0 or more times - v_NoUL_SCell := f_EUTRA_CellInfo_GetNoUL_Frequency(p_SCellIdAddList[i]); - v_SCellIndex := valueof(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[i].sCellIndex_r10); - - if (not v_NoUL_SCell) { //@sic R5s140083 sic@ - // Step 2: Configure C-RNTI based contention resolution in S-cell - f_EUTRA_SS_ConfigRachProcedure(p_SCellIdAddList[i], p_C_RNTI, p_RachProcedureConfig, -, p_CnfFlag); - } - - // Save new C-RNTI in cell configuration for p_SCellId - f_EUTRA_CellInfo_SetC_RNTI(p_SCellIdAddList[i], p_C_RNTI); - - // Step 3: configure DRX and MeasGap at the S cell (if necessary) - if (f_EUTRA_CellInfo_DrxIsConfigured(p_PCellId)) { - v_DrxCtrl := f_EUTRA_CellInfo_GetDrxCtrl(p_PCellId); - f_EUTRA_SS_DrxCtrlConfig(p_SCellIdAddList[i], v_DrxCtrl, -, p_CnfFlag); - } - - if (v_MeasGapConfigIsPresent) { - f_EUTRA_SS_MeasGapCtrlConfig(p_SCellIdAddList[i], cs_MeasGapCtrl_Config(valueof(p_MeasGapConfig)), -, p_CnfFlag); // valueof to avoid compiler warnings: ok as v_MeasConfig.measGapConfig is checked to be present - } - if (ispresent(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[i].radioResourceConfigDedicatedSCell_r10.mac_MainConfigSCell_r11)) { - v_STAG_Id := v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToAddModList_r10[i].radioResourceConfigDedicatedSCell_r10.mac_MainConfigSCell_r11.stag_Id_r11; - } - } - }// end of Scell Addition + f_EUTRA_ConfigPcell_AddScells(p_PCellId, + p_SCellIdAddList, + //p_RRC_ConnRecongMsg, + p_RachProcedureConfig, + p_C_RNTI, + p_MeasGapConfig); + //@sic R5s140376 sic@ v_TimingInfo := f_EUTRA_GetNextSendOccasion(p_PCellId); - v_TimingInfo2 := f_EUTRA_TimingInfoAdd(v_TimingInfo,5); // 5 ms later + v_TimingInfo2 := f_EUTRA_TimingInfoAdd(v_TimingInfo, 5); // 5 ms later // Step 6: Transmit RRCConnectionReconfiguration/HO command to UE SRB.send(cas_SRB1_RrcPdu_REQ(p_PCellId, cs_TimingInfo(v_TimingInfo.SFN.Number, v_TimingInfo.Subframe.Number), p_RRC_ConnRecongMsg)); - - if (lengthof(p_SCellIdAddList) > 0) { - // one or more SCell Addition - for (i:=0; i < lengthof(p_SCellIdAddList); i:=i+1) { //Executed 0 or more times - // Step 4: Configure SCell as Scell - f_EUTRA_SS_CommonCellConfig(p_SCellIdAddList[i], cas_SCellConfig_REQ(p_SCellIdAddList[i], - cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), - cs_SCellConfig(p_PCellId, v_SCellIndex, p_Scell_Capability, v_DeactTimer, - , v_STAG_Id), - p_CnfFlag)); - if ( not v_NoUL_SCell) { //@sic R5s140083 sic@ - // Step 5: configure Stop UL grant configuration on S cell - f_EUTRA_SS_CommonCellConfig(p_SCellIdAddList[i], cas_ULGrantAllocation_REQ(p_SCellIdAddList[i], - cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), - p_DciUlInfo_SCell, - cs_PUCCH_Synch_None, - p_UL_GrantConfig_SCell, - p_CnfFlag)); - } - } - } + //@sic R5s150070 sic@ + + f_EUTRA_ConfigPcell_ConfigScells(p_PCellId, + p_SCellIdAddList, + p_RRC_ConnRecongMsg, + p_Scell_Capability, + p_DciUlInfo_SCell, + p_UL_GrantConfig_SCell, + cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number)); if (lengthof(p_SCellIdDelList) > 0) { // one or more SCell Removal if (p_PcelltoNormalCell and (lengthof(p_SCellIdAddList)== 0)) { // Pcell is no more a Pcell - f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ServingCellRelease_REQ(p_PCellId, - cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), - p_CnfFlag)); + //@sic R5-153722 sic@ + f_EUTRA_ConfigPcellAsNormalServingCell (p_PCellId, + cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), + v_FDD_TDDInfo_PCell.pucch_Config, + v_CnfFlag) } for (i:=0; i< lengthof(p_SCellIdDelList); i:=i+1) { if (fl_Check_CellID_InList(p_SCellIdDelList[i], p_SCellIdAddList)) { // SCell Being simultaneously released and Added, hence nothing to release continue; } // Step 9: Configure SCell as Scell - f_EUTRA_SS_CommonCellConfig(p_SCellIdDelList[i], cas_ServingCellRelease_REQ(p_SCellIdDelList[i], cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), p_CnfFlag)); - v_SCellIndex := valueof(v_RRCConnectionReconfigurationIEs.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.sCellToReleaseList_r10[i]); + f_EUTRA_SS_CommonCellConfig(p_SCellIdDelList[i], cas_ServingCellRelease_REQ(p_SCellIdDelList[i], cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), v_CnfFlag)); } } @@ -509,17 +686,55 @@ module EUTRA_CommonFunctions_CA if (lengthof(p_SCellIdDelList) > 0) { for (i:=0; i< lengthof(p_SCellIdDelList); i:=i+1) { // Step 8: Release DRX and MeasGap at the S cell (if necessary) - if (f_EUTRA_CellInfo_DrxIsConfigured(p_SCellIdDelList[i])) { - f_EUTRA_SS_DrxCtrlConfig(p_SCellIdDelList[i], cs_DrxCtrl_None, -, p_CnfFlag); - } - f_EUTRA_SS_MeasGapCtrlConfig(p_SCellIdDelList[i], cs_MeasGapCtrl_None, -, p_CnfFlag); - // Step 10: configure Default grant configuration on S cell - f_EUTRA_SS_CommonCellConfig(p_SCellIdAddList[i], cas_ULGrantAllocation_REQ(p_SCellIdDelList[i], cs_TimingInfo_Now, -, cs_PUCCH_Synch_None, -, p_CnfFlag)); + f_EUTRA_ConfigScellAsNormalCell(p_SCellIdDelList[i],v_CnfFlag); + + } } } + /* + * @desc Function to Config an CC Pcell to a normal serving cell + * @param p_PCellId + * @param p_TimingInfo + * @param p_PUCCH_ConfigDedicated + * @param p_CnfFlag (default value: omit) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_ConfigPcellAsNormalServingCell(EUTRA_CellId_Type p_PCellId, + template (value) TimingInfo_Type p_TimingInfo, + PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, + template (omit) boolean p_CnfFlag := omit) + runs on EUTRA_PTC + { + f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ServingCellRelease_REQ(p_PCellId, + p_TimingInfo, + p_CnfFlag)); + //@sic R5s150229 sic@ + f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_CellConfig_PUCCH_Dedicated(p_PCellId, + p_TimingInfo, + p_PUCCH_ConfigDedicated, + cs_508_PUCCH_ConfigDedicated_v1020_Release)); //@sic R5s150494 sic@ + } + + /* + * @desc Function to Config an CC Scell to a normal non serving cell + * @param p_SCellId + * @param p_CnfFlag (default value: omit) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_ConfigScellAsNormalCell(EUTRA_CellId_Type p_SCellId, + template (omit) boolean p_CnfFlag := omit) + runs on EUTRA_PTC + { + + f_EUTRA_SS_DrxCtrlConfig(p_SCellId, cs_DrxCtrl_None, -, p_CnfFlag); + f_EUTRA_SS_MeasGapCtrlConfig(p_SCellId, cs_MeasGapCtrl_None, -, p_CnfFlag); + + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ULGrantAllocation_REQ(p_SCellId, cs_TimingInfo_Now, -, cs_PUCCH_Synch_None, -, p_CnfFlag)); + } + /* * @desc wrapper function to ADD and Release simultaneously a Scell * @param p_PCellId @@ -534,7 +749,6 @@ module EUTRA_CommonFunctions_CA * @param p_RRCConnectionReconfiguration (default value: omit) * @param p_DciUlInfo_SCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) * @param p_UL_GrantConfig_SCell (default value: cs_UL_GrantConfig_Def) - * @param p_CnfFlag (default value: tsc_NoCnfReq) * @status APPROVED (LTE_A) */ function f_EUTRA_508RRC_AddRel_1Scell(EUTRA_CellId_Type p_PCellId, @@ -548,8 +762,8 @@ module EUTRA_CommonFunctions_CA template (omit) MeasGapConfig p_MeasGapConfig := omit, //@sic R5s130503 sic@ template (omit) DL_DCCH_Message p_RRCConnectionReconfiguration := omit, template (omit) DciUlInfo_Type p_DciUlInfo_SCell := cs_DciInfo_CcchDcchDtchUL_Def, - template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Def, - boolean p_CnfFlag := tsc_NoCnfReq) runs on EUTRA_PTC + template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Def) + runs on EUTRA_PTC { var integer v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); var PhysCellId v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); @@ -577,10 +791,10 @@ module EUTRA_CommonFunctions_CA if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX); //@sic R5-133275 sic@ - } + } else { //FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); - // TBD for 2TX + // Not addressed for 2TX } if (v_UL_CA) { @@ -589,12 +803,7 @@ module EUTRA_CommonFunctions_CA } v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ } v_SCellToAddMod := cs_SCellToAddMod_r10(p_SCellIndex, v_PhysicalCellIdentity_Scell, @@ -623,28 +832,26 @@ module EUTRA_CommonFunctions_CA p_C_RNTI, p_MeasGapConfig, p_DciUlInfo_SCell, - p_UL_GrantConfig_SCell, - p_CnfFlag); + p_UL_GrantConfig_SCell); } /* - * @desc Erapper functio to release a Scell + * @desc Wrapper functio to release a Scell * @param p_PCellId * @param p_SCellIdRel * @param p_SCellIndexRel - * @param p_CnfFlag (default value: tsc_NoCnfReq) * @status APPROVED (LTE_A) */ function f_EUTRA_508RRC_Rel_1Scell(EUTRA_CellId_Type p_PCellId, EUTRA_CellId_Type p_SCellIdRel, //Scell to release - SCellIndex_r10 p_SCellIndexRel, //Scell to release - boolean p_CnfFlag := tsc_NoCnfReq) runs on EUTRA_PTC + SCellIndex_r10 p_SCellIndexRel) //Scell to release + runs on EUTRA_PTC { var template (value) RachProcedureConfig_Type v_RachProcedureConfig; var template (value) DL_DCCH_Message v_RRCConnectionReconfiguration; v_RachProcedureConfig := cs_RachProcedureConfig_CRNTI(f_EUTRA_CellInfo_GetRAR_TA(p_SCellIdRel), - f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellIdRel)); // TBD Will not be used in common function + f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellIdRel)); v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_Release(tsc_RRC_TI_Def, {p_SCellIndexRel}); //Scell Rel @@ -659,11 +866,10 @@ module EUTRA_CommonFunctions_CA -, -, -, - p_CnfFlag, true); } - /* + /* * @desc Function for performing SS and UE configuration at IntraLTE InterCell handover from a PCELL+Scell -> Normal Cell * The function implements step 2-14 of 36.523-3 cl. 7.16.1 with * 1. configure C-RNTI based contention resolution in SS with minimal grant @@ -685,7 +891,7 @@ module EUTRA_CommonFunctions_CA * @param p_SCellToReleaseList (default value: omit) * @param p_UL_CA (default value: false) * @param p_Scell_Capability (default value: UL_DL) - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_C_RNTI (default value: tsc_C_RNTI_Def2) * @param p_MeasConfig (default value: omit) * @param p_DciUlInfo_TargetCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) @@ -707,7 +913,7 @@ module EUTRA_CommonFunctions_CA template (omit) SCellToReleaseList_r10 p_SCellToReleaseList := omit, boolean p_UL_CA := false, // UL CA desired template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, C_RNTI p_C_RNTI := tsc_C_RNTI_Def2, template (omit) MeasConfig p_MeasConfig := omit, template (omit) DciUlInfo_Type p_DciUlInfo_TargetCell := cs_DciInfo_CcchDcchDtchUL_Def, @@ -726,12 +932,29 @@ module EUTRA_CommonFunctions_CA var template (omit) MeasConfig v_MeasConfig := p_MeasConfig; var boolean v_MeasGapConfigIsPresent := isvalue(v_MeasConfig) and ispresent(v_MeasConfig.measGapConfig); var DrxCtrl_Type v_DrxCtrl; - var SubFrameTiming_Type v_Timing, v_Timing1; + var SubFrameTiming_Type v_Timing; + var SubFrameTiming_Type v_Timing1; + var SubFrameTiming_Type v_Timing2;//@sic R5s150639 sic@ var SCellIndex_r10 v_SCellIndex; var MAC_MainConfig_ScellDeactivationTimer_Type v_DeactTimer := rf32; var template (value) Scell_Capability_Type v_Scell_Capability := DlOnly; var boolean v_UL_CA := p_UL_CA; var boolean v_NoUL_SCell := f_EUTRA_CellInfo_GetNoUL_Frequency(p_TargetSCellId) ; //@sic R5s140083 sic@ + //@sic R5w150205 sic@ + var template (omit)Pcell_Mode_Type v_Pcell_Mode := omit; + var EUTRA_FDD_TDD_CellInfo_Type v_SCellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_TargetSCellId); + var EUTRA_FDD_TDD_CellInfo_Type v_PcellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_TargetPCellId); + if (v_PcellFDD_TDDInfo.FDD_TDD != v_SCellFDD_TDDInfo.FDD_TDD) //Scell mode is different than Pcell + { + if (v_PcellFDD_TDDInfo.FDD_TDD == FDD) //Pcell is FDD + { + v_Pcell_Mode := cs_Pcell_Mode_FDD + } else //Pcell is TDD + { + v_Pcell_Mode := cs_Pcell_Mode_TDD (v_PcellFDD_TDDInfo.TDD_SubframeAssignment); + } + }; + if (v_UL_CA) { v_Scell_Capability := UL_DL; @@ -752,8 +975,11 @@ module EUTRA_CommonFunctions_CA p_AddAdditionalSpectrumEmission, cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(p_SCellToAddModList, p_SCellToReleaseList)); + v_RRCConnectionReconfiguration.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated.physicalConfigDedicated.cqi_ReportConfig := omit; + v_RRCConnectionReconfiguration.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated.physicalConfigDedicated.cqi_ReportConfig_r10 := cs_CQI_ReportConfig_r10_DEFAULT; v_Timing := f_EUTRA_GetNextSendOccasion(p_SourcePCellId, 700); // 500 ms // Time for schedule of DL RRC message - //@sic R5s130964 sic@ + //@sic R5s130964 R5s150639 sic@ + v_Timing2 := f_EUTRA_TimingInfoAdd (v_Timing, 20); // time for Target Scell-> Pcell configuration SS configuration v_Timing1 := f_EUTRA_TimingInfoAdd (v_Timing, 40); // time for Target Pcell SS configuration // The 40 ms is sufficient for 4 retransmissions and less than 15 [RRC processing delay] + 100 [5 retransmissions of PRACH preamble on trarget pCell] // Prepare target Pcell @@ -767,11 +993,14 @@ module EUTRA_CommonFunctions_CA SRB.send(cas_SRB1_RrcPdu_REQ(p_SourcePCellId, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number),v_RRCConnectionReconfiguration)); // Step 4: optional if target Pcell is Source Scell if (p_SourceSCellId == p_TargetPCellId) { //Else, the target Pcell is expected to be configured with SRB1-3 and DRB already - f_EUTRA_CellConfig_ScellToPcell_Def(p_TargetPCellId,cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number)); + f_EUTRA_CellConfig_ScellToPcell_Def(p_TargetPCellId, cs_TimingInfo(v_Timing2.SFN.Number, v_Timing2.Subframe.Number)); //@sic R5s150356 R5s150639 so as to have valid PDCP SQN for Ciphering Activation in step 8 sic@ } + // Step 4a: Configuration of DRBs at the target cell + f_EUTRA_SS_CommonRadioBearerConfig(p_TargetPCellId, p_DrbConfigList); /* @sic R5s150338 - dynamic DRB configuration sic@ */ + // Step 5: Transfer of the PDCP Count for AM DRBs from source to target cell - f_EUTRA_SS_PdcpCount_Handover(p_SourcePCellId, p_TargetPCellId, v_DRB_IdentityList.AMonly,cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number)); + f_EUTRA_SS_PdcpCount_Handover(p_SourcePCellId, p_TargetPCellId, v_DRB_IdentityList.AMonly, cs_TimingInfo(v_Timing2.SFN.Number, v_Timing2.Subframe.Number)); //@sic R5s150356 R5s150639 so as to have valid PDCP SQN for Ciphering Activation in step 8 sic@ // Step 6: Tell the SS about the HO f_EUTRA_SS_PdcpHandoverCtrl(p_TargetPCellId, cas_PdcpHandoverInit_REQ(p_SourcePCellId, p_TargetPCellId, cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number))); @@ -783,11 +1012,11 @@ module EUTRA_CommonFunctions_CA f_EUTRA_CellInfo_SetC_RNTI(p_TargetPCellId, p_C_RNTI); // Step 8: activate RRC security at SS target Pcell for SRB 1, 2 and 1 AM DRB - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(p_TargetPCellId, - v_Auth_Params, - v_NextHopChainingCount, - cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number), - v_DRB_IdentityList.AMonly); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Common(p_TargetPCellId, + v_Auth_Params, + v_NextHopChainingCount, + cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number), + v_DRB_IdentityList.AMonly); f_EUTRA_Security_Set(v_Auth_Params); // Step 9: configure DRX and MeasGap at the target P and S cells (if necessary) @@ -830,7 +1059,7 @@ module EUTRA_CommonFunctions_CA f_EUTRA_SS_CommonCellConfig(p_TargetSCellId, cas_ULGrantAllocation_REQ(p_TargetSCellId, cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number), cs_DciInfo_CcchDcchDtchUL_Def, cs_PUCCH_Synch_None, cs_UL_GrantConfig_Def, p_CnfFlag)); }; // Step 12.3: Configure SCell as Scell with new Pcell association - f_EUTRA_SS_CommonCellConfig(p_TargetSCellId, cas_SCellConfig_REQ(p_TargetSCellId, cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number), cs_SCellConfig(p_TargetPCellId, v_SCellIndex, p_Scell_Capability, v_DeactTimer), p_CnfFlag)); + f_EUTRA_SS_CommonCellConfig(p_TargetSCellId, cas_SCellConfig_REQ(p_TargetSCellId, cs_TimingInfo(v_Timing1.SFN.Number, v_Timing1.Subframe.Number), cs_SCellConfig(p_TargetPCellId, v_SCellIndex, p_Scell_Capability, v_DeactTimer,-,-,v_Pcell_Mode), p_CnfFlag));//@sic R5w150205 sic@ // Step 13: SRB.receive(car_SRB1_RrcPdu_IND(p_TargetPCellId, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); @@ -844,9 +1073,9 @@ module EUTRA_CommonFunctions_CA // Step 16: configure RACH procedure for target cell back to default f_EUTRA_SS_ConfigRachProcedure_Def(p_TargetPCellId, -, -, -, -, -, p_CnfFlag); if (p_SourcePCellId != p_TargetSCellId) { //Source cell is no more a Carrier component - // Step 17: Re-establish SRBs and DRB(s) in source cell + // Step 17: Re-establish SRBs and release DRB(s) in source cell f_EUTRA_SS_SRBs_DRBs_Release(p_SourcePCellId, -, v_DRB_IdentityList.All, p_CnfFlag); - f_EUTRA_SS_SRBs_DRBs_Config(p_SourcePCellId, -, p_DrbConfigList, p_CnfFlag); + f_EUTRA_SS_SRBs_DRBs_Config(p_SourcePCellId, -, omit, p_CnfFlag); // @sic R5s150338: no reconfiguration of DRBs sic@ // Step 18: Release DRX and MeasGap configuration f_EUTRA_SS_DrxCtrlConfig(p_SourcePCellId, cs_DrxCtrl_None, -, p_CnfFlag); @@ -854,8 +1083,7 @@ module EUTRA_CommonFunctions_CA //Step 19: Configure source Pcell as normal cell f_EUTRA_SS_CommonCellConfig(p_SourcePCellId, cas_ServingCellRelease_REQ(p_SourcePCellId, cs_TimingInfo_Now, p_CnfFlag)); } - - + if (p_SourceSCellId != p_TargetSCellId and p_SourceSCellId != p_TargetPCellId) { // No RACH configuration as Already configured for C-RNTI based contention along with Pcell @@ -879,13 +1107,404 @@ module EUTRA_CommonFunctions_CA /* * @desc Assign the CellInformation of the parameterized cell to the default 2TX parameters * @param p_CellId - * @status + * @param p_TimingInfo + * @param p_AntennaInfoDedicated (default value: cs_AntennaInfoDedicated_r10) + * @param p_AntennaInfoUL (default value: cs_AntennaInfoUL_r10) + * @status APPROVED (LTE_A) */ - function f_EUTRA_AntennaInfoR10_Config (EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo, - template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated := cs_AntennaInfoDedicated_r10, - template (omit) AntennaInfoUL_r10 p_AntennaInfoUL := cs_AntennaInfoUL_r10) runs on EUTRA_PTC + function f_EUTRA_AntennaInfoR10_Config(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated := cs_AntennaInfoDedicated_r10, + template (omit) AntennaInfoUL_r10 p_AntennaInfoUL := cs_AntennaInfoUL_r10) runs on EUTRA_PTC { - f_EUTRA_SS_CommonCellConfig(p_CellId, cas_CellConfig_AntennaInfor10_REQ(p_CellId, p_TimingInfo, p_AntennaInfoDedicated, p_AntennaInfoUL)); + f_EUTRA_SS_CommonCellConfig(p_CellId, cas_CellConfig_AntennaInfor10_REQ(p_CellId, p_TimingInfo, p_AntennaInfoDedicated, p_AntennaInfoUL)); + } +group Common_71311 +{ + /* + * @desc to Send and receive PDCP PDU in one cell + * @param p_TxCellId + * @param p_RxCellId + * @param p_SQN + * @status APPROVED (LTE_A) + */ + function fl_EUTRA_SendAndReceiveDL_PDCP_PDU_OneCell(EUTRA_CellId_Type p_TxCellId, + EUTRA_CellId_Type p_RxCellId, + integer p_SQN) runs on EUTRA_PTC + { //@sic R5s140498 sic@ + var MAC_SDU_Type v_EncodedRlcPdu1; + var octetstring v_EncodedPdcpPdu; + var integer v_Nack_Count := 0; + var SubFrameTiming_Type v_SubFrameInfo, v_SubFrameInfo2, v_SubFrameInfo3; + var Dl_Bandwidth_Type v_DL_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth(p_TxCellId); + + timer t_Watchdog := 5.0; + // Configure for explicit grant in DL + f_EUTRA_SS_CommonCellConfig(p_TxCellId, cas_CcchDcchDtchDL_Config_REQ(p_TxCellId, + cs_TimingInfo_Now, + cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5)))); // p_FirstRbIndex =5 + + //@siclog "Step 1" siclog@ + // Send DL MAC PDU + // PDCP SDU =36B => PDCP PDU =38 Bytes => RLC AM PDU =40 Bytes => MAC PDU =1BH +40 B Payload=41B=328 + v_EncodedPdcpPdu:= f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(p_SQN, 12), crs_PDCP_SDU_36B))); + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, int2bit(p_SQN, 10), v_EncodedPdcpPdu)); + v_SubFrameInfo := f_EUTRA_GetNextSendOccasion(p_TxCellId); + v_SubFrameInfo2 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 100) ; //100 ms in future to configure back the DL grant as normal + //@sic R5s140531 sic@ + v_SubFrameInfo3 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 110) ; //110 ms in future for status PDU transmission + DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_TxCellId, + tsc_RbId_DRB1, + cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); + f_EUTRA_SS_CommonCellConfig(p_TxCellId, + cas_CcchDcchDtchDL_Config_REQ(p_TxCellId, + cs_TimingInfo(v_SubFrameInfo2.SFN.Number, v_SubFrameInfo2.Subframe.Number), + cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_DL_Bandwidth)))); + t_Watchdog.start; + //@siclog "Step 2" siclog@ + //The Timing requirement between DL-PDSCH transmission and HARQ feed back is implicitly tested by SS + SYSIND.receive(car_UL_HARQ_IND(p_RxCellId, ?, nack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2"); + + //@siclog "Step 3" siclog@ + // MAC PDU retransmision automatically performed by SS + //@siclog "Step 4" siclog@ + //The Timing requirement between DL-PDSCH transmission and HARQ feed back is implicitly tested by SS + alt { + [] SYSIND.receive(car_UL_HARQ_IND(p_RxCellId, ?, ack)) + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "HARQ ACK Received"); + } + [v_Nack_Count<3] SYSIND.receive(car_UL_HARQ_IND(p_RxCellId, ?, nack)) + { + v_Nack_Count := v_Nack_Count +1; + repeat; + } + [] t_Watchdog.timeout + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 4: UE did not send HARQ ACK"); + } + } + + //@siclog "Step5" siclog@ + //Taken care by SS + + //@siclog "Step 6" siclog@ + // Send UL Grant automatically taken care of + //@siclog "Step 7" siclog@ + t_Watchdog.start; + DRB.receive(car_DRB_COMMON_IND_RLC_PDUList(p_RxCellId, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + {cr_RLC_AMD_1PDU(?, int2bit(p_SQN, 10), v_EncodedPdcpPdu)})); + + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Loop Back PDU"); + t_Watchdog.stop; + // Send RLC Status PDU + //@sic R5s140531 sic@ + f_RLC_Status_PDU_Tx(tsc_LchId_DRB1, p_SQN + 1, p_TxCellId, cs_TimingInfo(v_SubFrameInfo3.SFN.Number, v_SubFrameInfo3.Subframe.Number)); //Change 1 + + SYSIND.receive ( car_UL_HARQ_IND (p_RxCellId, ?, ack ));//Change 2 + } + + /* + * @desc to Send and receive PDCP PDU in two cell + * @param p_PCellId + * @param p_SCellId + * @param p_SQNStart + * @param p_HARQProcess + * @param p_RLCsn + * @status APPROVED (LTE_A) + */ + function fl_EUTRA_SendAndReceiveDL_PDCP_PDU_TwoCell(EUTRA_CellId_Type p_PCellId, + EUTRA_CellId_Type p_SCellId, + integer p_SQNStart, + integer p_HARQProcess, + integer p_RLCsn) runs on EUTRA_PTC + {//@sic R5s140498 sic@ + var MAC_SDU_Type v_EncodedRlcPdu1; + var MAC_SDU_Type v_EncodedRlcPdu2; + var integer v_Nack_Count := 0; + var integer v_Ack_Count := 0; + var integer v_SQN := p_SQNStart; + var SubFrameTiming_Type v_SubFrameInfo, v_SubFrameInfo2, v_SubFrameInfo3; + var octetstring v_EncodedPdcpPdu1, v_EncodedPdcpPdu2; + var Dl_Bandwidth_Type v_DL_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth(p_PCellId); + + timer t_Watchdog := 5.0; + //@siclog "Step 1" siclog@ + // Send DL MAC PDU + // PDCP SDU =36B => PDCP PDU =38 Bytes => RLC AM PDU =40 Bytes => MAC PDU =1BH +40 B Payload=41B=328 + v_EncodedPdcpPdu1 := f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(v_SQN,12), crs_PDCP_SDU_36B))); + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, + int2bit(v_SQN,10), + v_EncodedPdcpPdu1 )); + v_SQN := v_SQN + 1; + v_EncodedPdcpPdu2:=f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(v_SQN,12), crs_PDCP_SDU_36B1))); + v_EncodedRlcPdu2 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, + int2bit(v_SQN,10), + v_EncodedPdcpPdu2 )); + f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_CcchDcchDtchDL_Config_REQ(p_PCellId, + cs_TimingInfo_Now, + cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5)))); // p_FirstRbIndex =5 + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_CcchDcchDtchDL_Config_REQ(p_SCellId, + cs_TimingInfo_Now, + cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5)))); // p_FirstRbIndex =5 + + // Scehdule one MAC PDU each on each Active Cell in same TTI + v_SubFrameInfo := f_EUTRA_GetNextSendOccasion(p_PCellId); // + v_SubFrameInfo2 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo,100) ; //100 ms in future to configure back the DL grant as normal + //@sic R5s140531 sic@ + v_SubFrameInfo3 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo,110) ; //110 ms in future for status PDU transmission + + DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_PCellId, + tsc_RbId_DRB1, + cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu1)), + cs_HarqProcessAssignment_Specific(p_HARQProcess))); + DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_SCellId, + tsc_RbId_DRB1, + cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu2)), + cs_HarqProcessAssignment_Specific(p_HARQProcess))); + f_EUTRA_SS_CommonCellConfig(p_PCellId, + cas_CcchDcchDtchDL_Config_REQ(p_PCellId, + cs_TimingInfo(v_SubFrameInfo2.SFN.Number, v_SubFrameInfo2.Subframe.Number), + cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_DL_Bandwidth)))); + f_EUTRA_SS_CommonCellConfig(p_SCellId, + cas_CcchDcchDtchDL_Config_REQ(p_SCellId, + cs_TimingInfo(v_SubFrameInfo2.SFN.Number, v_SubFrameInfo2.Subframe.Number), + cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_DL_Bandwidth)))); + + t_Watchdog.start; + //@siclog "Step 2" siclog@ + //The Timing requirement between DL-PDSCH transmission and HARQ feed back is implicitly tested by SS + SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, nack)); + SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, nack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2"); + + //@siclog "Step 3" siclog@ + // MAC PDU retransmision automatically performed by SS + //@siclog "Step 4" siclog@ + //The Timing requirement between DL-PDSCH transmission and HARQ feed back is implicitly tested by SS + alt { + [] SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, ack)) + { + v_Ack_Count := v_Ack_Count +1; + if ((v_Ack_Count) < 2) { + repeat; + } + else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 21: UE sent HARQ ACK for DL data corresponding to DL CC1 and DL CC2"); + t_Watchdog.stop; + } + } + + [v_Nack_Count<6]SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, nack)) + { + v_Nack_Count := v_Nack_Count +1; + repeat; + } + + [] t_Watchdog.timeout + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 21: UE did not send HARQ ACK"); + } + } + + //@siclog "Step5" siclog@ + //Taken care by SS + + //@siclog "Step 6" siclog@ + // Send UL Grant automatically taken care of + //@siclog "Step 7" siclog@ + // Note due to insequence delivery in RLC and PDCP Scell PDCP PDU cannot come before Pcell PDU + // UL grant is allocated only in Pcell as SR is received only in Pcell + + DRB.receive (car_DRB_COMMON_IND_RLC_PDUList (p_PCellId, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + {cr_RLC_AMD_2PDU_713x(?, int2bit(p_RLCsn, 10), v_EncodedPdcpPdu1,v_EncodedPdcpPdu2)})); + + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Loop Back PDU"); + t_Watchdog.stop; + + // Send RLC Status PDU + f_RLC_Status_PDU_Tx(tsc_LchId_DRB1, p_RLCsn+1, p_PCellId, cs_TimingInfo(v_SubFrameInfo3.SFN.Number, v_SubFrameInfo3.Subframe.Number)); //@sic R5s140531 sic@ + + SYSIND.receive ( car_UL_HARQ_IND (p_PCellId, ?, ack ));//@sic R5s140531 sic@ + + } + + //========================================================== + // L2/MAC/7.1 + //========================================================== + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.3.11 + * @param p_PCellId + * @param p_SCellId + * @param p_CA_Type + * @status APPROVED (LTE_A) + */ + function f_TC_7_1_3_11_Common(EUTRA_CellId_Type p_PCellId, + EUTRA_CellId_Type p_SCellId, + CA_Tested_Type p_CA_Type, //@sic R5-152143, R5-152144 sic@ + integer p_SecServCellExec := 0) runs on EUTRA_PTC + { /* 7.1.3.11 : CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell */ + //@sic R5s140498 sic@ + var integer j := 0; + var integer k := p_SecServCellExec; + var integer m := 0; + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; + var Dl_Bandwidth_Type v_Dl_Bandwidth; + var PhysCellId v_PhysicalCellIdentity_Scell; + var Frequency_IE_Type v_Frequency_IE_PCell; + var Frequency_IE_Type v_Frequency_IE_Scell; + var ChannelBandwidthDependency_Type v_ChBandDependency_PCell; + var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; + var boolean v_UL_CA := pc_UL_CA; + var integer v_SQN := 0; + var CarrierFreqEUTRA v_CarrierFreq_Scell; + + /////////////////////////////////////////////////////////////////////////////////// + // PREAMBLE + ////////////////////////////////////////////////////////////////////////////////// + + //Get cell dependant parameters + v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); + v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); + v_ChBandDependency_Scell := f_EUTRA_BandDependentParam(v_Frequency_IE_Scell.DL_ChBandwidth, + v_Frequency_IE_Scell.UL_ChBandwidth); + v_Frequency_IE_PCell := f_EUTRA_CellInfo_GetFrequencyIEs(p_PCellId); + v_ChBandDependency_PCell := f_EUTRA_BandDependentParam(v_Frequency_IE_PCell.DL_ChBandwidth, + v_Frequency_IE_PCell.UL_ChBandwidth); + v_CarrierFreq_Scell := f_EUTRA_CellInfo_GetEARFCN(p_SCellId); + + + //Set C-RNTI to be used in s-cell creation + f_EUTRA_CellInfo_SetC_RNTI(p_SCellId, tsc_C_RNTI_Def); + + //Create and configure all cells + f_EUTRA_CellConfig_Pcell_Def(p_PCellId); + f_EUTRA_CellConfig_Scell(p_SCellId, Scell_Active); //No DRB's created @sic R5-132022 sic@ + + // bring UE to initial state + f_EUTRA_Preamble(p_PCellId, STATE2A_TESTLOOP_ModeA); + // creates cell and performs registration + f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm + f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(p_PCellId, n8); + //@sic R5-101183 sic@ + f_Delay(0.660); // 600 ms previous time alignment timer + // Go to state 4 + f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(p_PCellId, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); + + //f_EUTRA_SS_CommonL1MacIndCtrlConfig(eutra_Cell1, cas_HarqErrorIndication_REQ(eutra_Cell1,tsc_L1Mac_IndicationMode_Disable));//@sic R5s100520 sic@ + // to configure SS to report reception of SR + //@sic R5s100021 sic@ + //f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); + /////////////////////////////////////////////////////////////////////////////////// + // Test Body + ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true, layer2); // @sic R5-101050 sic@ + f_EUTRA_SetCellPower(p_SCellId, tsc_ServingCellRS_EPRE); + v_Dl_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth(p_PCellId); + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(p_PCellId); + if (p_SecServCellExec == 0) //Executions not already provided. + { + if (v_EUTRA_FDD_TDD_Mode == FDD) { + k := 7; // HARQ process 0..7 + } + else if (v_EUTRA_FDD_TDD_Mode == TDD) { + k := 6; // HARQ process 0..6 + } + } + //@siclog "Step 1-2" siclog@ + //Transmit RRCConnectionReconfiguration + //Receive RRCConnectionReconfigurationComplete + f_EUTRA_508RRC_AddMod_1Scell(p_PCellId, + p_SCellId, + 1, //SCellIndex_r10 + p_CA_Type, // CA Type + v_UL_CA, // UL CA desired,, + -,// C_RNTI default := tsc_C_RNTI_Def, + omit, + -, + -, + -, + -, + -, + -, + -, + -, + infinity_, //@sic R5s150355 sic@ + rf128); + //@siclog "Step 3" siclog@ + // Send Scell Activation Command + f_EUTRA_SS_CommonActivateScellConfig(p_PCellId, cas_ScellActivate_REQ(p_PCellId,tsc_Scell1_Activate,true));//@sic R5s140531 sic@ + + // Delay for completion of step activating Scell MCE transmission + f_Delay (0.1); //@sic R5s140624 R5s150765 sic@ + // to configure SS to report reception of HARQ ACK or NACK + f_SS_ConfigUL_HARQ_IndMode(p_PCellId, tsc_L1Mac_IndicationMode_Enable); + + f_SS_Config1TM_DRB_NoMACHeader(p_PCellId, tsc_RbId_DRB1, cs_MAC_TestMode_NoHeaderManipulationDLOnly); + // Configure SS for Explicit DL in grant in both S and P cell to use Nprb=1 and Itbs =6 and TBS=328, which cannot be decoded in first attempt. + // Note allocating single PRB is not possible in DCI format '1' for C-RTNI hence 1A needs to be used + + + //@siclog "Steps 4-10" siclog@ + fl_EUTRA_SendAndReceiveDL_PDCP_PDU_OneCell(p_PCellId, p_PCellId, v_SQN); + v_SQN := v_SQN + 1; + //@siclog "Steps 11-17" siclog@ + fl_EUTRA_SendAndReceiveDL_PDCP_PDU_OneCell(p_SCellId, p_PCellId, v_SQN); + v_SQN := v_SQN + 1; + m := v_SQN; + //@siclog "Steps 18-21" siclog@ + for (j := 0; j <= k; j := j+1) { + fl_EUTRA_SendAndReceiveDL_PDCP_PDU_TwoCell(p_PCellId, p_SCellId, v_SQN, j, m); + v_SQN := v_SQN + 2; + m := m + 1; + } + /////////////////////// + // Postamble + ///////// + f_EUTRA_TestBody_Set(false); + // to configure SS to stop report reception of HARQ ACK or NACK + f_SS_ConfigUL_HARQ_IndMode(p_PCellId, tsc_L1Mac_IndicationMode_Disable); + + f_SS_Config1TM_DRB_NoMACHeader(p_PCellId, tsc_RbId_DRB1, cs_MAC_TestMode_NormalMode); + + //Switch/power off UE + f_EUTRA_Postamble(p_PCellId, E2_CONNECTED); + } + } // End of group Common_71311 + /* + * @desc Cell Configuration: Activate/Deactivate Scell + * @param p_CellId + * @param p_SYSTEM_CTRL_REQ + * @status APPROVED (LTE_A) + */ + function f_EUTRA_SS_CommonActivateScellConfig(EUTRA_CellId_Type p_CellId, + template (value) SYSTEM_CTRL_REQ p_SYSTEM_CTRL_REQ) runs on EUTRA_PTC + {//@sic R5s140295 sic@ + SYS.send(p_SYSTEM_CTRL_REQ); + if (valueof(p_SYSTEM_CTRL_REQ.Common.ControlInfo.CnfFlag) == true) { + SYS.receive(car_SYSTEM_CTRL_ActivateScell_CNF(p_CellId)); + } + } + } diff --git a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_RRC_Templates_CA.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_RRC_Templates_CA.ttcn similarity index 78% rename from LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_RRC_Templates_CA.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_RRC_Templates_CA.ttcn index df18658..3125332 100644 --- a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_RRC_Templates_CA.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_CA/EUTRA_RRC_Templates_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:15:34 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12147 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 22:35:27 +0530 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module EUTRA_RRC_Templates_CA { @@ -21,7 +21,7 @@ module EUTRA_RRC_Templates_CA { type PhysicalConfigDedicated.additionalSpectrumEmissionCA_r10 AdditionalSpectrumEmissionCA_r10_Type; /* @status APPROVED (LTE_A) */ type PhysicalConfigDedicated.antennaInfo_r10 AntennaInfo_r10_Type; /* @status APPROVED (LTE_A) */ - const STAG_Id_r11 tsc_STAG_ID1 := 1; + const STAG_Id_r11 tsc_STAG_ID1 := 1; /* @status APPROVED (LTE_A) */ template (value) AntennaInfoDedicated_r10 cs_AntennaInfoDedicated_r10 := { /* @status APPROVED (LTE_A) */ @@ -32,17 +32,17 @@ module EUTRA_RRC_Templates_CA { } }; template (value) AntennaInfoDedicated_r10 cds_AntennaInfoDedicated_TM2_r10 modifies cs_AntennaInfoDedicated_r10 := - { /* @status */ + { /* @status APPROVED (LTE_A) */ transmissionMode_r10 := tm2 }; template (value) AntennaInfoDedicated_r10 cds_AntennaInfoDedicated_TM3_r10 modifies cs_AntennaInfoDedicated_r10 := - { /* @status */ + { /* @status APPROVED (LTE_A) */ transmissionMode_r10 := tm3, codebookSubsetRestriction_r10 := '11'B }; - template (value) AntennaInfo_r10_Type cs_AntennaInfo_r10_Explicit (template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated_r10) := - { - explicitValue_r10 := p_AntennaInfoDedicated_r10 + template (value) AntennaInfo_r10_Type cs_AntennaInfo_r10_Explicit(template (value) AntennaInfoDedicated_r10 p_AntennaInfoDedicated_r10) := + { /* @status APPROVED (LTE_A) */ + explicitValue_r10 := p_AntennaInfoDedicated_r10 }; template (value) SoundingRS_UL_ConfigDedicated cs_508_SoundingRsUl_ConfigDedicated_Rel := @@ -53,7 +53,7 @@ module EUTRA_RRC_Templates_CA { //---------------------------------------------------------------------------- // RadioResourceConfigCommonSCell and related - + template (value) UplinkPowerControlCommonSCell_r10 cs_UplinkPowerControlCommonSCell := { /* acc. to 36.508 Table 4.6.3-25A */ /* @status APPROVED (LTE_A) */ @@ -85,13 +85,14 @@ module EUTRA_RRC_Templates_CA { template (value) AntennaInfoCommon p_AntennaInfoCommon := cs_AntennaInfoCommon_1Port, //@sic new CA-Enh test development sic@ template (omit) RACH_ConfigCommonSCell_r11 p_RACH_ConfigCommonSCell_r11 := omit, - template (omit) PRACH_Config p_PRACH_Config_SCell := omit) := + template (omit) PRACH_Config p_PRACH_Config_SCell := omit, //@sic R5s150285 sic@ + template (omit) MBSFN_SubframeConfigList p_MBSFN_SubframeConfigList:= omit) := { /* acc. to 36.508 Table 4.6.3-13A */ /* @status APPROVED (LTE_A) */ nonUL_Configuration_r10 := { dl_Bandwidth_r10 := p_SCell_DL_Bandwidth, antennaInfoCommon_r10 := p_AntennaInfoCommon, - mbsfn_SubframeConfigList_r10 := omit, + mbsfn_SubframeConfigList_r10 := p_MBSFN_SubframeConfigList, //@sic R5s150285 sic@ phich_Config_r10 := cs_508_PHICH_Config_Default, pdsch_ConfigCommon_r10 := cs_508_PDSCH_ConfigCommon_Default(p_P_b), tdd_Config_r10 := p_TDD_Config @@ -122,7 +123,6 @@ module EUTRA_RRC_Templates_CA { template (value) CQI_ReportPeriodic_r10 cs_CQI_ReportPeriodic_r10_CommonSetup(integer p_Cqi_pmi_ConfigIndex, template (omit) integer p_Ri_ConfigIndex := omit) := //@sic R5-142845 sic@ { /* acc. to 36.508 Table 4.6.3-2AC */ - /* @status APPROVED (LTE_A) */ setup := { cqi_PUCCH_ResourceIndex_r10 := 0, cqi_PUCCH_ResourceIndexP1_r10 := omit, @@ -139,30 +139,10 @@ module EUTRA_RRC_Templates_CA { } }; - //@sic R5-142845 sic@ - template (value) CQI_ReportPeriodic_r10 cs_CQI_ReportPeriodic_r10_DEFAULT_FDD := cs_CQI_ReportPeriodic_r10_CommonSetup(25); /* @status APPROVED (LTE_A) */ - //@sic R5-142845 sic@ - template (value) CQI_ReportPeriodic_r10 cs_CQI_ReportPeriodic_r10_DEFAULT_TDD := cs_CQI_ReportPeriodic_r10_CommonSetup(24); /* @status APPROVED (LTE_A) */ + template (value) CQI_ReportPeriodic_r10 cs_CQI_ReportPeriodic_r10_DEFAULT_FDD := cs_CQI_ReportPeriodic_r10_CommonSetup(25); + template (value) CQI_ReportPeriodic_r10 cs_CQI_ReportPeriodic_r10_DEFAULT_TDD := cs_CQI_ReportPeriodic_r10_CommonSetup(24); - template (value) CQI_ReportAperiodic_r10 cs_CQI_ReportAPeriodic_r10_DEFAULT := - { /* acc. to 36.508 Table 4.6.3-1A */ - /* @status APPROVED (LTE_A) */ - setup :={ - cqi_ReportModeAperiodic_r10 := rm30, - aperiodicCSI_Trigger_r10 := omit - - } - }; - - template (value) CQI_ReportConfig_r10 cs_CQI_ReportConfig_r10_DEFAULT (template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 := omit) := - { /* acc. to 36.508 Table 4.6.3-2AA */ - /* @status APPROVED (LTE_A) */ - cqi_ReportAperiodic_r10 := cs_CQI_ReportAPeriodic_r10_DEFAULT, - nomPDSCH_RS_EPRE_Offset := 0, - cqi_ReportPeriodic_r10 := p_CQI_ReportPeriodic_r10, - pmi_RI_Report_r9 := omit, - csi_SubframePatternConfig_r10 := omit - }; + template (value) CQI_ReportConfigSCell_r10 cs_CQI_ReportConfigSCell_r10(template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 := omit) := { /* acc. to 36.508 Table 4.6.3-2AB */ @@ -207,20 +187,20 @@ module EUTRA_RRC_Templates_CA { pdsch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ cqi_ReportConfig_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ pusch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - uplinkPowerControlDedicatedSCell_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - }; - - template (value) MAC_MainConfigSCell_r11 cs_P_MAC_MainConfigSCell_r11 (template (value) STAG_Id_r11 p_STAG_Id_r11) := - { - stag_Id_r11 := p_STAG_Id_r11 + uplinkPowerControlDedicatedSCell_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + antennaInfo_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + eimta_MainConfigSCell_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + cqi_ReportConfigSCell_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + uplinkPowerControlDedicatedSCell_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + csi_RS_Config_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; - template (value) RadioResourceConfigDedicatedSCell_r10 cs_RadioResourceConfigDedicatedSCell_r10(template (value) PhysicalConfigDedicatedSCell_r10 p_PhysicalConfigDedicatedSCell, template (omit) MAC_MainConfigSCell_r11 p_MAC_MainConfigSCell_r11 := omit) := //@sic new CA-Enh test development sic@ { /* @status APPROVED (LTE_A) */ physicalConfigDedicatedSCell_r10 := p_PhysicalConfigDedicatedSCell, - mac_MainConfigSCell_r11 := p_MAC_MainConfigSCell_r11 /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + mac_MainConfigSCell_r11 := p_MAC_MainConfigSCell_r11, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + naics_Info_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) RadioResourceConfigDedicatedSCell_r10 cs_RadioResourceConfigDedicatedSCell_r10_DEFAULT(template (omit) DedicatedSCell_UL_Configuration_Type p_SCell_UL_Configuration := omit) := @@ -261,23 +241,13 @@ module EUTRA_RRC_Templates_CA { template (value) RRCConnectionReconfiguration_v890_IEs cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(template (omit) SCellToAddModList_r10 p_SCellToAddModList := omit, template (omit) SCellToReleaseList_r10 p_SCellToReleaseList := omit) := - { /* rel-10 extension acc. to 36.508 Table 4.6.1-8 with condition SCell_AddMod */ - /* @status APPROVED (LTE_A) */ - lateNonCriticalExtension := omit, - nonCriticalExtension := { - otherConfig_r9 := omit, - fullConfig_r9 := omit, - nonCriticalExtension := { - sCellToReleaseList_r10 := p_SCellToReleaseList, - sCellToAddModList_r10 := p_SCellToAddModList, - nonCriticalExtension := omit - } - } - }; + /* rel-10 extension acc. to 36.508 Table 4.6.1-8 with condition SCell_AddMod */ + /* @status APPROVED (LTE_A) */ + cs_RRCConnectionReconfiguration_v890_IEs(cs_RRCConnectionReconfiguration_v920_IEs(-, -, cs_RRCConnectionReconfiguration_v1020_IEs(p_SCellToReleaseList, p_SCellToAddModList))); - template (value) MAC_MainConfig_v1020_Type cs_508_MAC_MainConfig_v1020_SCell_AddMod ( MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer :=rf32) := + template (value) MAC_MainConfig_v1020_Type cs_508_MAC_MainConfig_v1020_SCell_AddMod(MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer := rf32) := { /* @status APPROVED (LTE_A) */ - //@sic R5s140295 sic@ + //@sic R5s140295 sic@ sCellDeactivationTimer_r10 := p_ScellDeactivationTimer, extendedBSR_Sizes_r10 := setup, extendedPHR_r10 := setup @@ -293,12 +263,15 @@ module EUTRA_RRC_Templates_CA { ul_SCH_Config := omit, drx_Config := omit, timeAlignmentTimerDedicated := p_TimeAlignmentTimer, // Mandatory present - phr_Config := omit, + phr_Config := cs_PHR_Config_Setup(sf500, sf200, dB3), //@sic R5s150038 R5-145793 sic@ sr_ProhibitTimer_r9 := omit, mac_MainConfig_v1020 := cs_508_MAC_MainConfig_v1020_SCell_AddMod (p_ScellDeactivationTimer), - stag_ToReleaseList_r11 := p_STAG_ToReleaseList, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - stag_ToAddModList_r11 := p_STAG_ToAddModList, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - drx_Config_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + stag_ToReleaseList_r11 := p_STAG_ToReleaseList, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + stag_ToAddModList_r11 := p_STAG_ToAddModList, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + drx_Config_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + e_HARQ_Pattern_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + dualConnectivityPHR := omit, /* @sic BASELINE MOVING 2015 sic@ */ + logicalChannelSR_Config_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -307,55 +280,29 @@ module EUTRA_RRC_Templates_CA { deltaTxD_OffsetListPUCCH_r10 := omit, pSRS_OffsetAp_r10 := omit }; - + template (value) AdditionalSpectrumEmissionCA_r10_Type cs_AdditionalSpectrumEmissionCA_r10_Def := { /* Default values according to 36.508 cl. 4.8.2.1.6-1for condition SCell_AddMod and Inter-B CA and UL CA */ /* @status APPROVED (LTE_A) */ setup :={ additionalSpectrumEmissionPCell_r10 := 1} }; - - template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_SCell_AddMod(template (value) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020, - template (omit) AdditionalSpectrumEmissionCA_r10_Type p_AdditionalSpectrumEmissionCA_r10 := omit, - template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 :=omit, - template (omit) UplinkPowerControlDedicated_v1020 p_UplinkPowerControlDedicated_v1020 := omit, - template (omit) AntennaInfo_r10_Type p_AntennaInfo_r10 := omit) := + + template (value) PhysicalConfigDedicated cds_508_PhysicalConfigDedicated_Default_SCell_AddMod(template (value) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020, + template (omit) AdditionalSpectrumEmissionCA_r10_Type p_AdditionalSpectrumEmissionCA_r10 := omit, + template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 :=omit, + template (omit) UplinkPowerControlDedicated_v1020 p_UplinkPowerControlDedicated_v1020 := omit, + template (omit) AntennaInfo_r10_Type p_AntennaInfo_r10 := omit) + modifies cs_PhysicalConfigDedicated_Omit := { /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 for condition SCell_AddMod */ /* @status APPROVED (LTE_A) */ - pdsch_ConfigDedicated := omit, - pucch_ConfigDedicated := omit, - pusch_ConfigDedicated := omit, - uplinkPowerControlDedicated := omit, - tpc_PDCCH_ConfigPUCCH := omit, - tpc_PDCCH_ConfigPUSCH := omit, - cqi_ReportConfig := omit, - soundingRS_UL_ConfigDedicated := omit, - antennaInfo := omit, - schedulingRequestConfig := omit, - cqi_ReportConfig_v920 := omit, - antennaInfo_v920 := omit, + /* @sic R5s150362 - Additional change: modifies cs_PhysicalConfigDedicated_Omit sic@ */ antennaInfo_r10 := p_AntennaInfo_r10, //@sic 8.2.4.16 coding sic@ - antennaInfoUL_r10 := omit, cif_Presence_r10 := false, //@sic R5-133714 sic@ cqi_ReportConfig_r10 := cs_CQI_ReportConfig_r10_DEFAULT(p_CQI_ReportPeriodic_r10), - csi_RS_Config_r10 := omit, pucch_ConfigDedicated_v1020 := p_PUCCH_ConfigDedicated_v1020, - pusch_ConfigDedicated_v1020 := omit, - schedulingRequestConfig_v1020 := omit, - soundingRS_UL_ConfigDedicated_v1020 := omit, - soundingRS_UL_ConfigDedicatedAperiodic_r10 := omit, uplinkPowerControlDedicated_v1020 := p_UplinkPowerControlDedicated_v1020, - additionalSpectrumEmissionCA_r10 := p_AdditionalSpectrumEmissionCA_r10, - csi_RS_ConfigNZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigNZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - epdcch_Config_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pdsch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - cqi_ReportConfig_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pucch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pusch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - uplinkPowerControlDedicated_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + additionalSpectrumEmissionCA_r10 := p_AdditionalSpectrumEmissionCA_r10 }; template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_SCell_AddModRelease(RRC_TransactionIdentifier p_RRC_TI, @@ -382,30 +329,30 @@ module EUTRA_RRC_Templates_CA { cs_RadioResourceConfigDedicated_SrbDrbConfig(-, -, cs_MAC_MainConfig_SCell_AddMod(p_TimeAlignmentTimer,p_STAG_ToReleaseList,p_STAG_ToAddModList, p_ScellDeactivationTimer), - cs_508_PhysicalConfigDedicated_Default_SCell_AddMod(p_PUCCH_ConfigDedicated_v1020, p_AdditionalSpectrumEmissionCA_r10,p_CQI_ReportPeriodic_r10,p_UplinkPowerControlDedicated_v1020,p_AntennaInfo_r10)), //@sic 8.2.4.16 coding sic@ + cds_508_PhysicalConfigDedicated_Default_SCell_AddMod(p_PUCCH_ConfigDedicated_v1020, + p_AdditionalSpectrumEmissionCA_r10, + p_CQI_ReportPeriodic_r10, + p_UplinkPowerControlDedicated_v1020, + p_AntennaInfo_r10)), omit, cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(cs_SCellToAddModList_OneSCell(p_SCellToAddMod), p_SCellToReleaseList)); template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_StagParamModify(RRC_TransactionIdentifier p_RRC_TI, - TimeAlignmentTimer p_TimeAlignmentTimer := sf750, - template (omit) STAG_ToReleaseList_r11 p_STAG_ToReleaseList := omit, - template (omit) STAG_ToAddModList_r11 p_STAG_ToAddModList := omit) := //@sic R5s140010 sic@ - - - /* acc. to 36.508 Table 4.6.1-8 - To change the STAG parameters of Scell */ - /* @status */ + TimeAlignmentTimer p_TimeAlignmentTimer := sf750, + template (omit) STAG_ToReleaseList_r11 p_STAG_ToReleaseList := omit, + template (omit) STAG_ToAddModList_r11 p_STAG_ToAddModList := omit) := //@sic R5s140010 sic@ + /* acc. to 36.508 Table 4.6.1-8; to change the STAG parameters of Scell */ + /* @status APPROVED (LTE_A) */ cs_RRCConnectionReconfiguration_Common(p_RRC_TI, - omit, // + omit, omit, cs_RadioResourceConfigDedicated_SrbDrbConfig(-, -, - cs_MAC_MainConfig_SCell_AddMod(p_TimeAlignmentTimer,p_STAG_ToReleaseList,p_STAG_ToAddModList), + cs_MAC_MainConfig_SCell_AddMod(p_TimeAlignmentTimer, p_STAG_ToReleaseList, p_STAG_ToAddModList), omit), omit, omit); - template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_SCell_Release(RRC_TransactionIdentifier p_RRC_TI, template (omit) SCellToReleaseList_r10 p_SCellToReleaseList := omit) := /* acc. to 36.508 Table 4.6.1-8 with condition SCell_AddMod */ @@ -416,13 +363,13 @@ module EUTRA_RRC_Templates_CA { omit, omit, cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(omit, p_SCellToReleaseList)); - + template (value) N1PUCCH_AN_CS_r10 cs_N1PUCCH_AN_CS_r10_FDD_1TX := { /* acc. to 36.508 Table 4.6.3-9A for condition 1TX */ /* @status APPROVED (LTE_A) */ 101, 102, 103, 104 }; - + template (value) N1PUCCH_AN_CS_r10 cs_N1PUCCH_AN_CS_r10_FDD_2TX := { /* acc. to 36.508 Table 4.6.3-9A for condition 1TX */ /* @status APPROVED (LTE_A) */ @@ -445,7 +392,7 @@ module EUTRA_RRC_Templates_CA { simultaneousPUCCH_PUSCH_r10 := omit, n1PUCCH_AN_RepP1_r10 := omit }; - + template (value) PUCCH_ConfigDedicated_v1020 cs_508_PUCCH_ConfigDedicated_v1020_2TX (template (value) N1PUCCH_AN_CS_r10 p_N1PUCCH_AN_CS_r10, template (value) N1PUCCH_AN_CS_r10 p_N1PUCCH_AN_CS_r10_1):= { /* acc. to 36.508 Table 4.6.3-9A for condition 2 TX */ @@ -464,30 +411,46 @@ module EUTRA_RRC_Templates_CA { n1PUCCH_AN_RepP1_r10 := omit }; - ///////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////// // Rel-11 CA Enh specific templates //////////////////////////////////////////////////////////////////////////////// - - template (value) STAG_ToAddMod_r11 cs_STAG_ToAddMod_Def( STAG_Id_r11 p_STAG_Id, - TimeAlignmentTimer p_TimeAlignmentTimer := sf750) := - { - stag_Id_r11 := p_STAG_Id, - timeAlignmentTimerSTAG_r11 := p_TimeAlignmentTimer + + template (value) STAG_ToAddMod_r11 cs_STAG_ToAddMod_Def(STAG_Id_r11 p_STAG_Id, + TimeAlignmentTimer p_TimeAlignmentTimer := sf750) := + { /* @status APPROVED (LTE_A) */ + stag_Id_r11 := p_STAG_Id, + timeAlignmentTimerSTAG_r11 := p_TimeAlignmentTimer }; - template (value) MAC_MainConfigSCell_r11 cs_MAC_MainConfigSCell_Def (STAG_Id_r11 p_STAG_Id) := - { - stag_Id_r11 := p_STAG_Id + + template (value) MAC_MainConfigSCell_r11 cs_MAC_MainConfigSCell_Def(STAG_Id_r11 p_STAG_Id) := + { /* @status APPROVED (LTE_A) */ + stag_Id_r11 := p_STAG_Id }; + template (value) RACH_ConfigCommonSCell_r11 cs_RACH_ConfigCommonSCell_r11_Def := - { - powerRampingParameters_r11 := { + { /* @status APPROVED (LTE_A) */ + powerRampingParameters_r11 := { powerRampingStep := dB2, /* dB0, dB2,dB4, dB6 */ preambleInitialReceivedTargetPower := dBm_104 /* DEFAULT dBm-104 */ - }, - ra_SupervisionInfo_r11 := { + }, + ra_SupervisionInfo_r11 := { preambleTransMax_r11 := n6 /* n1, n2, n3, n4, n5, n6, n7, n8, n10; */ - } + } + }; - } + template (value) PUCCH_ConfigDedicated_v1020 cs_508_PUCCH_ConfigDedicated_v1020_Release := + { /* @status APPROVED (LTE_A) */ + pucch_Format_r10 := { + channelSelection_r10 := { + n1PUCCH_AN_CS_r10 := { + release := NULL + } + } + }, + twoAntennaPortActivatedPUCCH_Format1a1b_r10 := omit, + simultaneousPUCCH_PUSCH_r10 := omit, + n1PUCCH_AN_RepP1_r10 := omit + }; + } diff --git a/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn new file mode 100644 index 0000000..a4b2788 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_Constants.ttcn @@ -0,0 +1,235 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-06-17 14:41:28 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13929 $ +/******************************************************************************/ + +module EPS_NAS_Constants { + + import from CommonDefs all; + import from NAS_CommonTypeDefs all; + import from EPS_NAS_TypeDefs all; + + const SecurityHeaderType tsc_SHT_NoSecurityProtection := '0000'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected := '0001'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected_Ciphered := '0010'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected_NewSecurityContext := '0011'B; + const SecurityHeaderType tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext := '0100'B; + const SecurityHeaderType tsc_SHT_ServiceRequest := '1100'B; + + const ProtocolDiscriminator tsc_PD_EMM := '0111'B; // from CR C1-085163 for 24.007 + const ProtocolDiscriminator tsc_PD_ESM := '0010'B; // from CR C1-085163 for 24.007 + + // NAS message types acc. 24.301 cl.9.8 + const MessageType tsc_MT_AttachRequest := '01000001'B; + const MessageType tsc_MT_AttachAccept := '01000010'B; + const MessageType tsc_MT_AttachComplete := '01000011'B; + const MessageType tsc_MT_AttachReject := '01000100'B; + const MessageType tsc_MT_DetachRequest := '01000101'B; + const MessageType tsc_MT_DetachAccept := '01000110'B; + const MessageType tsc_MT_TauRequest := '01001000'B; + const MessageType tsc_MT_TauAccept := '01001001'B; + const MessageType tsc_MT_TauComplete := '01001010'B; + const MessageType tsc_MT_TauReject := '01001011'B; + const MessageType tsc_MT_ExtServiceRequest := '01001100'B; + const MessageType tsc_MT_ServiceReject := '01001110'B; + const MessageType tsc_MT_GutiReallocCommand := '01010000'B; + const MessageType tsc_MT_GutiReallocComplete := '01010001'B; + const MessageType tsc_MT_AuthenticationRequest := '01010010'B; + const MessageType tsc_MT_AuthenticationResponse := '01010011'B; + const MessageType tsc_MT_AuthenticationReject := '01010100'B; + const MessageType tsc_MT_AuthenticationFailure := '01011100'B; + const MessageType tsc_MT_IdentityRequest := '01010101'B; + const MessageType tsc_MT_IdentityResponse := '01010110'B; + const MessageType tsc_MT_SecurityModeCommand := '01011101'B; + const MessageType tsc_MT_SecurityModeComplete := '01011110'B; + const MessageType tsc_MT_SecurityModeReject := '01011111'B; + const MessageType tsc_MT_EmmStatus := '01100000'B; + const MessageType tsc_MT_EmmInfo := '01100001'B; + const MessageType tsc_MT_DL_NASTransport := '01100010'B; + const MessageType tsc_MT_UL_NASTransport := '01100011'B; + const MessageType tsc_MT_CSServiceNotification := '01100100'B; + const MessageType tsc_MT_DL_GenericNASTransport := '01101000'B; + const MessageType tsc_MT_UL_GenericNASTransport := '01101001'B; + + const MessageType tsc_MT_ActivateDefaultEpsBearerContextRequest := '11000001'B; + const MessageType tsc_MT_ActivateDefaultEpsBearerContextAccept := '11000010'B; + const MessageType tsc_MT_ActivateDefaultEpsBearerContextReject := '11000011'B; + const MessageType tsc_MT_ActivateDedicatedEpsBearerContextRequest := '11000101'B; + const MessageType tsc_MT_ActivateDedicatedEpsBearerContextAccept := '11000110'B; + const MessageType tsc_MT_ActivateDedicatedEpsBearerContextReject := '11000111'B; + const MessageType tsc_MT_ModifyEpsBearerContextRequest := '11001001'B; + const MessageType tsc_MT_ModifyEpsBearerContextAccept := '11001010'B; + const MessageType tsc_MT_ModifyEpsBearerContextReject := '11001011'B; + const MessageType tsc_MT_DeactivateEpsBearerContextRequest := '11001101'B; + const MessageType tsc_MT_DeactivateEpsBearerContextAccept := '11001110'B; + const MessageType tsc_MT_PdnConnectivityRequest := '11010000'B; + const MessageType tsc_MT_PdnConnectivityReject := '11010001'B; + const MessageType tsc_MT_PdnDisconnectRequest := '11010010'B; + const MessageType tsc_MT_PdnDisconnectReject := '11010011'B; + const MessageType tsc_MT_BearerResourceAllocationRequest := '11010100'B; + const MessageType tsc_MT_BearerResourceAllocationReject := '11010101'B; + const MessageType tsc_MT_BearerResourceModificationRequest := '11010110'B; + const MessageType tsc_MT_BearerResourceModificationReject := '11010111'B; + const MessageType tsc_MT_EsmInformationRequest := '11011001'B; + const MessageType tsc_MT_EsmInformationResponse := '11011010'B; + const MessageType tsc_MT_EsmStatus := '11101000'B; + const MessageType tsc_MT_EsmNotification := '11011011'B; + + + const B8_Type tsc_SRVCC_HO_Canceled := '00000001'B; + + const IEI8_Type tsc_IEI_Guti := '50'O; // The same IEI value is used throughout 24.301 + + const ProcedureTransactionIdentifier tsc_PTI_1 := '01'O; + + const HalfOctet_Type tsc_EpsDefaultBearerId := '5'H; // EPS bearer identity (24.301 cl. 9.3.2); + const HalfOctet_Type tsc_EpsDefaultBearerId2ndPDN := 'C'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId := '6'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId2 := '7'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId3 := '8'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId4 := '9'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId5 := 'A'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId6 := 'B'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId7 := 'C'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId8 := 'D'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId9 := 'E'H; + const HalfOctet_Type tsc_EpsDedicatedBearerId10 := 'F'H; + + const NAS_AttDetValue_Type tsc_EAttachType_EpsOnly := '001'B; + const NAS_AttDetValue_Type tsc_EAttachType_Combined := '010'B; + const NAS_AttDetValue_Type tsc_EAttachType_Emergency := '110'B; + + const EPS_UpdateTypeValue tsc_EpsUpdate_TaUpdate := '000'B; // TA updating + const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate := '001'B; // Combined TA/LA updating + const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_IMSIAttach := '010'B; // combined TA/LA updating with IMSI attach + const EPS_UpdateTypeValue tsc_EpsUpdate_Periodic := '011'B; // Periodic updating + const EPS_UpdateTypeValue tsc_EpsUpdate_TaLaUpdate_ISRActivated := '100'B; // TA updating with ISR activated + const EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate_ISRActivated := '101'B; // Combined TA/LA updating with ISR activated + + const B1_Type tsc_EpsUpdate_Active := '1'B; + const B1_Type tsc_EpsUpdate_NotActive := '0'B; + + // GprsOnly & EpsOnly share the same value + const NAS_AttDetValue_Type tsc_DetachMO_GprsOnly := '001'B; + const NAS_AttDetValue_Type tsc_DetachMO_EpsOnly := '001'B; + const NAS_AttDetValue_Type tsc_DetachMO_Imsi := '010'B; + const NAS_AttDetValue_Type tsc_DetachMO_Combined := '011'B; + const NAS_AttDetValue_Type tsc_DetachMT_ReAttach := '001'B; + const NAS_AttDetValue_Type tsc_DetachMT_NoReAttach := '010'B; + const NAS_AttDetValue_Type tsc_DetachMT_Imsi := '011'B; + + const NAS_CauseValue_Type tsc_EmmCause_UnknownIMSI := '00000010'B; + const NAS_CauseValue_Type tsc_EmmCause_IllegalUe := '00000011'B; + const NAS_CauseValue_Type tsc_EmmCause_IllegalMe := '00000110'B; + const NAS_CauseValue_Type tsc_Cause_IMEINotAccepted := '00000101'B; + const NAS_CauseValue_Type tsc_Cause_EPSServNotAllowed := '00000111'B; + const NAS_CauseValue_Type tsc_Cause_EPSandNonEPSServNotAllowed := '00001000'B; + const NAS_CauseValue_Type tsc_EmmCause_UEIdentityNotDerived := '00001001'B; + const NAS_CauseValue_Type tsc_EmmCause_ImplicitlyDetached := '00001010'B; + const NAS_CauseValue_Type tsc_Cause_TA_NotAllowed := '00001100'B; + const NAS_CauseValue_Type tsc_Cause_Roaming_NotAllowed := '00001101'B; + const NAS_CauseValue_Type tsc_Cause_PLMN_NotAllowed := '00001011'B; + const NAS_CauseValue_Type tsc_Cause_EPSServNotAllowedInThisPLMN := '00001110'B; + const NAS_CauseValue_Type tsc_Cause_NoSuitableCells := '00001111'B; + const NAS_CauseValue_Type tsc_EmmCause_MSCnotReachable := '00010000'B; + const NAS_CauseValue_Type tsc_EmmCause_NetworkFailure := '00010001'B; + const NAS_CauseValue_Type tsc_Cause_CSDomainNotAvailable := '00010010'B; + const NAS_CauseValue_Type tsc_Cause_ESMFailure := '00010011'B; + const NAS_CauseValue_Type tsc_Cause_MAC_Failure := '00010100'B; // #20 + const NAS_CauseValue_Type tsc_Cause_SQN_Failure := '00010101'B; // #21 + const NAS_CauseValue_Type tsc_Cause_Congestion := '00010110'B; + const NAS_CauseValue_Type tsc_UeSecurityCapsMismatch := '00010111'B; + const NAS_CauseValue_Type tsc_SecurityModeRejUnspecified := '00011000'B; + const NAS_CauseValue_Type tsc_Cause_NotAuthorizedCSG := '00011001'B; + const NAS_CauseValue_Type tsc_Cause_nonEPS_AuthUnacceptable := '00011010'B; // #26 + const NAS_CauseValue_Type tsc_EmmCause_CsFbCallEstNotAllowed := '00100110'B; // @desc EMM Cause: CS fallback call establishment not allowed. + const NAS_CauseValue_Type tsc_Cause_CSDomainNotTemporarilyAvailable := '00100111'B; // #39 'CS domain temporarily not available' + const NAS_CauseValue_Type tsc_Cause_NoEPSBearerActive := '00101000'B; // #40 + const NAS_CauseValue_Type tsc_EmmCause_SemanticallyIncorrect := '01011111'B; + const NAS_CauseValue_Type tsc_EmmCause_InvalidMandatoryInformation := '01100000'B; + const NAS_CauseValue_Type tsc_EmmCause_MessageTypeNonExistentOrNotImplemented := '01100001'B; + const NAS_CauseValue_Type tsc_EmmCause_IENonExistentOrNotImplemented := '01100011'B; + const NAS_CauseValue_Type tsc_EmmCause_ProtocolErrorUnspecified := '01101111'B; + + const NAS_KsiValue tsc_NasKsi_NoKey := '111'B; + const B1_Type tsc_NasKsi_NativeSecurityContext := '0'B; + const B1_Type tsc_NasKsi_MappedSecurityContext := '1'B; + + const B3_Type tsc_PdnRequest_InitialAttach := '001'B; + const B3_Type tsc_PdnRequest_Handover := '010'B; + const B3_Type tsc_PdnRequest_Emergency := '100'B; + + // PLMN identities acc. to 36.508 Table 6.3.2.2-1 + const NAS_PlmnId tsc_PLMN1 := '00F110'O; // @desc NAS PLMN ID (MCC=001, MNC= 01) for NAS Cell(s) A-F,M. + const NAS_PlmnId tsc_PLMN2 := '00F120'O; // @desc NAS PLMN ID (MCC=001, MNC= 02) for NAS Cell(s) G,H. + const NAS_PlmnId tsc_PLMN3 := '001201'O; // @desc NAS PLMN ID (MCC=002, MNC=101) for NAS Cell(s) I,K,L. + const NAS_PlmnId tsc_PLMN4 := '001301'O; // @desc NAS PLMN ID (MCC=003, MNC=101) for NAS Cell(s) J. + + const EPS_MmeGi tsc_MMEGI1 := '0001'O; + const EPS_MmeGi tsc_MMEGI2 := '0002'O; + const EPS_MmeGi tsc_MMEGI3 := '0003'O; + const EPS_MmeGi tsc_MMEGI4 := '0004'O; + const EPS_MmeGi tsc_MMEGI5 := '0005'O; + const EPS_MmeGi tsc_MMEGI6 := '0006'O; + const EPS_MmeGi tsc_MMEGI7 := '0007'O; + const EPS_MmeGi tsc_MMEGI8 := '0008'O; + const EPS_MmeGi tsc_MMEGI9 := '0009'O; + const EPS_MmeGi tsc_MMEGI10 := '000A'O; + + const EPS_Mmec tsc_MMEC1to10 := '01'O; + + const NAS_Tac tsc_TAC1 := '0001'O; + const NAS_Tac tsc_TAC2 := '0002'O; + const NAS_Tac tsc_TAC3 := '0003'O; + const NAS_Tac tsc_TAC4 := '0004'O; + const NAS_Tac tsc_TAC5 := '0005'O; + const NAS_Tac tsc_TAC6 := '0006'O; + + const EPS_PartialTaiListType tsc_NonConsecutiveTacs := '00'B; + const EPS_PartialTaiListType tsc_ConsecutiveTacs := '01'B; + const EPS_PartialTaiListType tsc_MultiplePlmns := '10'B; + + const EPS_ServiceTypeValue tsc_EST_CsFallback_MO := '0000'B; // @desc Service Type: Mobile originating CS fallback or 1xCS fallback. + const EPS_ServiceTypeValue tsc_EST_CsFallback_MT := '0001'B; // @desc Service Type: Mobile terminating CS fallback or 1xCS fallback. + const EPS_ServiceTypeValue tsc_EST_CsFallback_EC := '0010'B; // @desc Service Type: Mobile originating CS fallback emergency call or 1xCS fallback emergency call. + + const ProcedureTransactionIdentifier tsc_PTI_Unassigned := '00'O; // TS 24.007 clause 11.2.3.1a + + const octetstring tsc_APN1 := '0541504E2D31'O; /* Access Point Name APN-1; + @status APPROVED (LTE) */ + const charstring tsc_APN1_String := "APN-1"; /* Access Point Name APN-1; @sic R5s100466 sic@ + @status APPROVED (LTE) */ + const octetstring tsc_APN2 := '0541504E2D32'O; /* Access Point Name APN-2; + @status APPROVED (LTE) */ + const charstring tsc_APN2_String := "APN-2"; /* Access Point Name APN-2; @sic R5s100748 sic@ + @status APPROVED (LTE) */ + const octetstring tsc_APN3 := '0541504E2D33'O; /* Access Point Name APN-3; + @status */ + const charstring tsc_APN3_String := "APN-3"; /* Access Point Name APN-3; @sic R5-143213 sic@ + @status */ + + const B8_Type tsc_ESM_Cause36_RegularDeactivation := '00100100'B; // @sic R5s141315 ch. 7 sic@ + const B8_Type tsc_ESM_Cause26_InsufficientResources := '00011010'B; + + + const float tsc_WaitforAttach := 1.5; // @sic R5s130634 sic@ + + //---------------------------------------------------------------------------- + /* + * @desc calculation of DRB_Identity associated to EpsBearerId + * @param p_EpsBearerId + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_EpsBearerAssociatedDRB(HalfOctet_Type p_EpsBearerId) return integer + { /* @sic R5s141351 change 5: returns integer instead of DRB_Identity sic@ */ + return (hex2int(p_EpsBearerId) - 4); + } + +} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn index 0fda846..ec4fd1e 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_MsgContainers.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-10-23 08:07:30 +0200 (Wed, 23 Oct 2013) $ -// $Rev: 9855 $ +// @version: IWD_15wk38 +// $Date: 2015-02-16 18:58:50 +0100 (Mon, 16 Feb 2015) $ +// $Rev: 12925 $ /******************************************************************************/ module EPS_NAS_MsgContainers @@ -14,6 +14,7 @@ module EPS_NAS_MsgContainers import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; // needed to get definition of maxDRB */ import from EPS_NAS_TypeDefs all; import from EUTRA_LoopBack_TypeDefs all; + import from CommonDefs all; import from NAS_CommonTypeDefs all; type union NAS_UL_Message_Type { /* NAS message with direction 'UE to network ' or 'both' */ diff --git a/IMS_PART4_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn similarity index 95% rename from IMS_PART4_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn index 53109b1..dd2b890 100644 --- a/IMS_PART4_IWD_14wk37/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EPS_NAS_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-04-09 21:44:58 +0200 (Tue, 09 Apr 2013) $ -// $Rev: 8515 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 16:58:12 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13504 $ /******************************************************************************/ module EPS_NAS_TypeDefs { @@ -23,10 +23,8 @@ import from NAS_CommonTypeDefs all; type B4_Type SecurityHeaderType; /* 24.301 cl. 9.3.1 */ type HalfOctet_Type EPS_BearerIdentity; /* 24.301 cl. 9.3.2 */ type Octet_Type ProcedureTransactionIdentifier; /* 24.301 cl. 9.4 */ -type O4_Type MessageAuthenticationCode; /* 24.301 cl. 9.5 */ type Octet_Type NAS_SequenceNumber; /* 24.301 cl. 9.6 */ -type O4_Type NasCount_Type; // Note: This IE is not needed when SECURITY PROTECTED NAS MESSAGE is // handled by the NAS emulation An alternative approach would be to @@ -139,7 +137,8 @@ type record ATTACH_ACCEPT { /* 24.301 cl. 8.2. EmergNumList emergencyNumberList optional, /* cl. 9.9.3.37 O TLV 5-50 IEI=0x34 */ EPS_NetworkFeatureSupport epsNetworkFeatureSupport optional, /* cl.9.9.3.12A O TLV 3 IEI=0x64 @sic R5s100135 sic@ */ AdditionalUpdateResult addUpdateResult optional, /* cl.9.9.3.0A O TV 1 IEI=0xF @sic R5s100135 sic@ */ - GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 t3412ExtdValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ }; type record ATTACH_COMPLETE { /* 24.301 cl. 8.2.2 @@ -160,7 +159,8 @@ type record ATTACH_REJECT { /* 24.301 cl. 8.2. EMM_Cause emmCause, /* cl. 9.9.3.9 M V 1 */ ESM_MessageContainer esmMessage optional, /* cl. 9.9.3.15 M TLV-E 6-n IEI=0x78 @sic R5s110176 Baseline Moving sic@ */ GPRS_Timer2 t3346 optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x5F @sic R5s120178 Baseline Moving sic@*/ - GPRS_Timer2 t3402 optional /* cl. 9.9.3.16A O TLV 3 IEI=0x16 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3402 optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x16 @sic R5s120178 Baseline Moving sic@*/ + Extd_EMM_Cause extdEMMCause optional /* cl. 9.9.3.26A O TV 1 IEI=0xA @sic R5s150329 Baseline Moving sic@ */ }; type record ATTACH_REQUEST { /* 24.301 cl. 8.2.4 @@ -189,7 +189,9 @@ type record ATTACH_REQUEST { /* 24.301 cl. 8.2. DeviceProperties deviceProperties optional, /* cl. 9.9.2.0A O TV 1 IEI=0xD- @sic R5s120178 Baseline Moving sic@*/ GUTI_Type oldGUTI_Type optional, /* cl. 9.9.3.45 O TV 1 IEI=0xE- @sic R5s120178 Baseline Moving sic@*/ MS_NetworkFeatureSupport msNetworkFeatureSupport optional, /* cl. 9.9.2.0A O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ - NwkResourceId tmsiBasedNRIContainer optional /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + NwkResourceId tmsiBasedNRIContainer optional, /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ + GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s150329 Baseline Moving sic@*/ }; type record AUTHENTICATION_FAILURE { /* 24.301 cl. 8.2.5 @@ -392,7 +394,6 @@ type record SECURITY_MODE_REJECT { /* 24.301 cl. 8.2. type record SECURITY_PROTECTED_NAS_MESSAGE { /* 24.301 cl. 8.2.23 Significance: dual Direction: both */ - /* Note: it is FFS whether this PDU is realy used in TTCN */ SecurityHeaderType securityHeaderType, /* cl. 9.3.1 M V 1/2 */ ProtocolDiscriminator protocolDiscriminator, /* cl. 9.2 M V 1/2 */ MessageAuthenticationCode messageAuthenticationCode, /* cl. 9.5 M V 4 */ @@ -442,7 +443,8 @@ type record TRACKING_AREA_UPDATE_ACCEPT { /* 24.301 cl. 8.2. EmergNumList emergencyNumberList optional, /* cl. 9.9.3.37 O TLV 5-50 IEI=0x34 */ EPS_NetworkFeatureSupport epsNetworkFeatureSupport optional, /* cl.9.9.3.12A O TLV 3 IEI=0x64 @sic R5s100135 sic@ */ AdditionalUpdateResult addUpdateResult optional, /* cl.9.9.3.0A O TV IEI=0xF @sic R5s100135 sic@ */ - GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 t3412ExtdValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ }; type record TRACKING_AREA_UPDATE_COMPLETE { /* 24.301 cl. 8.2.27 @@ -460,7 +462,8 @@ type record TRACKING_AREA_UPDATE_REJECT { /* 24.301 cl. 8.2. ProtocolDiscriminator protocolDiscriminator, /* cl. 9.2 M V 1/2 */ MessageType messageType, /* cl. 9.8 M V 1 */ EMM_Cause emmCause, /* cl. 9.9.3.9 M V 1 */ - GPRS_Timer2 t3346 optional /* cl. 9.9.3.16A O TLV 3 IEI=0x5F @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer2 t3346 optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x5F @sic R5s120178 Baseline Moving sic@*/ + Extd_EMM_Cause extdEMMCause optional /* cl. 9.9.3.26A O TV 1 IEI=0xA @sic R5s150329 Baseline Moving sic@ */ }; type record TRACKING_AREA_UPDATE_REQUEST { /* 24.301 cl. 8.2.29 @@ -493,7 +496,9 @@ type record TRACKING_AREA_UPDATE_REQUEST { /* 24.301 cl. 8.2. GUTI_Type oldGUTI_Type optional, /* cl. 9.9.3.45 O TV 1 IEI=0xE- @sic R5s120178 Baseline Moving sic@*/ DeviceProperties deviceProperties optional, /* cl. 9.9.2.0A O TV 1 IEI=0xD- @sic R5s120178 Baseline Moving sic@*/ MS_NetworkFeatureSupport msNetworkFeatureSupport optional, /* cl. 9.9.2.0A O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ - NwkResourceId tmsiBasedNRIContainer optional /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + NwkResourceId tmsiBasedNRIContainer optional, /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional, /* cl. 9.9.3.16A O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ + GPRS_Timer3 t3412ExtdValue optional /* cl. 9.9.3.16B O TLV 3 IEI=0x5E @sic R5s150329 Baseline Moving sic@*/ }; type record UL_NAS_TRANSPORT { /* 24.301 cl. 8.2.30 @@ -568,7 +573,8 @@ type record ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. LLC_SAPI negotiatedLlcSapi optional, /* cl. 9.9.4.7 O TV 2 IEI=0x32 */ RadioPriority radioPriority optional, /* cl. 9.9.4.13 O TV 1 IEI=0x8- */ PacketFlowIdentifier packetFlowIdentifier optional, /* cl. 9.9.4.8 O TLV 3 IEI=0x34 */ - ProtocolConfigOptions protocolConfigurationOptions optional /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TLV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; type record ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT { /* 24.301 cl. 8.3.4 @@ -610,7 +616,8 @@ type record ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. APN_AMBR apnAggMaxBitRate optional, /* cl. 9.9.4.2 O TLV 4-8 IEI=0x5e */ ESM_Cause esmCause optional, /* cl. 9.9.4.4 O TV 2 IEI=0x58 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - ConnectivityType connectivityType optional /* cl. 9.9.2.0A O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + ConnectivityType connectivityType optional, /* cl. 9.9.2.0A O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; type record BEARER_RESOURCE_ALLOCATION_REJECT { /* 24.301 cl. 8.3.7 @@ -622,7 +629,8 @@ type record BEARER_RESOURCE_ALLOCATION_REJECT { /* 24.301 cl. 8.3. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396 optional /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178, R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 9.9.4.13A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; type record BEARER_RESOURCE_ALLOCATION_REQUEST { /* 24.301 cl. 8.3.8 @@ -649,7 +657,8 @@ type record BEARER_RESOURCE_MODIFICATION_REJECT { /* 24.301 cl. 8. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396 optional /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178, R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 9.9.4.13A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; type record BEARER_RESOURCE_MODIFICATION_REQUEST { /* 24.301 cl. 8.3.10 @@ -687,7 +696,8 @@ type record DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.8 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396Value optional /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer3 t3396Value optional, /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; type record ESM_INFORMATION_REQUEST { /* 24.301 cl. 8.3.13 @@ -755,7 +765,8 @@ type record MODIFY_EPS_BEARER_CONTEXT_REQUEST { /* 24.301 cl. 8.3. RadioPriority radioPriority optional, /* cl. 9.9.4.13 O TV 1 IEI=0x8- */ PacketFlowIdentifier packetFlowIdentifier optional, /* cl. 9.9.4.5 O TLV 3 IEI=0x34 */ APN_AMBR apnAggMaxBitRate optional, /* cl. 9.9.4.2 O TLV 4-8 IEI=0x5e */ - ProtocolConfigOptions protocolConfigurationOptions optional /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 9.9.4.18 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@*/ }; @@ -781,7 +792,8 @@ type record PDN_CONNECTIVITY_REJECT { /* 24.301 cl. 8.3. MessageType messageType, /* cl. 9.8 M V 1 */ ESM_Cause esmCause, /* cl. 9.9.4.4 M V 1 */ ProtocolConfigOptions protocolConfigurationOptions optional, /* cl. 9.9.4.11 O TLV 3-253 IEI=0x27 */ - GPRS_Timer3 t3396 optional /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 9.9.3.16B O TLV 3 IEI=0x37 @sic R5s120178, R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 9.9.4.13A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; type record PDN_CONNECTIVITY_REQUEST { /* 24.301 cl. 8.3.20 @@ -880,6 +892,12 @@ type record EMM_Cause { /* 24.301 cl. 9.9. NAS_CauseValue_Type causeValue }; +type record Extd_EMM_Cause { /* 24.301 cl. 9.9.3.26A */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + B3_Type spare, + B1_Type eutranAllowed +}; + type record EPS_AttachResult { /* 24.301 cl. 9.9.3.10 */ // IEI is always skipped B1_Type spare, @@ -930,8 +948,7 @@ type record EPS_UpdateType { /* 24.301 cl. 9.9. type record ESM_MessageContainer { /* 24.301 cl. 9.9.3.15 */ IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ Type6Length_Type iel, - octetstring esmPdu /* ESM PDU without NAS security header; - type is FFS */ + octetstring esmPdu /* ESM PDU without NAS security header*/ }; type record KSIandSN { /* 24.301 cl. 9.9.3.19 */ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn index bc57188..80509ab 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_CDMA2000TunnellingDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-06-07 22:51:07 +0200 (Fri, 07 Jun 2013) $ // $Rev: 8820 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn index 7e41724..76a5348 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_DrbDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-08-27 17:48:26 +0200 (Tue, 27 Aug 2013) $ -// $Rev: 9461 $ +// @version: IWD_15wk38 +// $Date: 2015-06-11 18:27:49 +0200 (Thu, 11 Jun 2015) $ +// $Rev: 13762 $ /******************************************************************************/ module EUTRA_ASP_DrbDefs { @@ -157,14 +157,29 @@ module EUTRA_ASP_DrbDefs { * First byte of the Data field does not correspond to the first byte of a RLC SDU. * Last byte of the Data field does not correspond to the last byte of a RLC SDU. */ - type record RLC_LengthIndicator_Type{ + type record RLC_LengthIndicator_LI11_Type{ B1_Type Extension, /* 0 - Data field follows from the octet following the LI field following this E field * 1 - A set of E field and LI field follows from the bit following the LI field following this E field */ B11_Type LengthIndicator /* Length Indicator */ }; - type record of RLC_LengthIndicator_Type - RLC_LI_List_Type; + type record RLC_LengthIndicator_LI15_Type{ + B1_Type Extension, /* 0 - Data field follows from the octet following the LI field following this E field + * 1 - A set of E field and LI field follows from the bit following the LI field following this E field */ + B15_Type LengthIndicator /* 15 bit Length Indicator */ + }; + + type record of RLC_LengthIndicator_LI11_Type + RLC_LI11_List_Type; + + type record of RLC_LengthIndicator_LI15_Type + RLC_LI15_List_Type; + + type union RLC_LI_List_Type { + RLC_LI11_List_Type LI11, + RLC_LI15_List_Type LI15 + } + type record RLC_PDU_Header_FlexPart_Type { /* Flexible part of the header with a number of K LIs */ RLC_LI_List_Type LengthIndicator, /* List of E, LI fields */ B4_Type Padding optional /* optional 4 bit padding present in case of odd number of LI's */ @@ -376,6 +391,16 @@ module EUTRA_ASP_DrbDefs { PDCP_SDU_Type SDU /* content (octetstring) */ }; + type record PDCP_DataPdu_SLRB_Type { /* User plane PDCP Data PDU for SLRB (TS 36.323, clause 6.2.10) */ + B3_Type SDU_Type, /* 000 - IP + * 001 - ARP + * 010 - 111 reserved */ + B5_Type PGK_Index, /* 5 LSBs of PGK Identity (TS 33.303, clause 6.2.3)*/ + B16_Type PTK_Identity, /* PTK Identity (TS 33.303, clause 6.2.3)*/ + B16_Type SequenceNumber, /* 16 bit sequence number */ + PDCP_SDU_Type SDU /* content (octetstring) */ + }; + type record PDCP_Ctrl_ROHC_FB_PDU_Type { /* PDCP Control PDU for interspersed ROHC feedback packet (TS 36.323, clause 6.2.5) */ B1_Type D_C, /* 0 - Control PDU * 1 - Data PDU */ @@ -427,7 +452,8 @@ module EUTRA_ASP_DrbDefs { PDCP_DataPdu_ExtSN_Type DataExtSN, /* user plane PDCP data PDU with 15 Bit Seq Number */ PDCP_Ctrl_ROHC_FB_PDU_Type RohcFeedback, /* PDCP Control PDU for interspersed ROHC feedback packet */ PDCP_Ctrl_StatusReport_Type StatusReport, /* PDCP Control PDU for PDCP status report */ - PDCP_Ctrl_StatusReportExt_Type StatusReportExt /* PDCP Control PDU for PDCP status report using a 15 bit SN */ + PDCP_Ctrl_StatusReportExt_Type StatusReportExt, /* PDCP Control PDU for PDCP status report using a 15 bit SN */ + PDCP_DataPdu_SLRB_Type DataSLRB /* user plane PDCP Data PDU for SLRB */ }; type record of PDCP_PDU_Type PDCP_PDUList_Type; diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn index 847a7c9..082494d 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_NasCtrl.ttcn @@ -2,17 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ -// $Rev: 8395 $ +// @version: IWD_15wk38 +// $Date: 2015-04-27 04:04:14 +0200 (Mon, 27 Apr 2015) $ +// $Rev: 13508 $ /******************************************************************************/ module EUTRA_ASP_NasCtrl { import from CommonDefs all; import from EUTRA_CommonDefs all; - import from EPS_NAS_TypeDefs all; // to get NasCount_Type //**************************************************************************** diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn index 4737270..4f97b5d 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_SrbDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ -// $Rev: 8395 $ +// @version: IWD_15wk38 +// $Date: 2014-12-01 14:59:46 +0100 (Mon, 01 Dec 2014) $ +// $Rev: 12660 $ /******************************************************************************/ module EUTRA_ASP_SrbDefs { @@ -19,7 +19,7 @@ module EUTRA_ASP_SrbDefs { group SRB_DATA_ASPs { /* ASP Definitions to send/receive peer-to-peer messages on SRBs */ type record C_Plane_Request_Type { /* RRC and/or NAS PDU to be send to the UE; - Note: it may be necessary to allow more than one NAS PDU (-> "record of") => FFS */ + Note: it may be necessary to allow more than one NAS PDU (-> "record of") */ RRC_MSG_Request_Type Rrc optional, /* omit: NAS message shall be present; NAS message shall be sent in DLInformationTransfer * present: if NAS message is present also, (piggybacked) NAS PDU shall be security protected @@ -33,7 +33,7 @@ module EUTRA_ASP_SrbDefs { }; type record C_Plane_Indication_Type { /* RRC and/or NAS PDU to be received from the UE; - Note: it may be necessary to allow more than one NAS PDU (-> "record of") => FFS */ + Note: it may be necessary to allow more than one NAS PDU (-> "record of") */ RRC_MSG_Indication_Type Rrc optional, /* omit: NAS message shall be present; NAS message is received in ULInformationTransfer * present: if NAS message is present also, DedicatedInfoNAS contains unstructured and diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn index b4e26b9..262ad74 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-06 19:54:44 +0200 (Fri, 06 Jun 2014) $ -// $Rev: 11662 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 15:09:21 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14347 $ /******************************************************************************/ module EUTRA_ASP_TypeDefs { @@ -37,7 +37,8 @@ module EUTRA_ASP_TypeDefs { }; type record AntennaInfoDedicated_R10andLater_Type { AntennaInfoDedicated_r10 antennaInfo, - AntennaInfoUL_r10 antennaInfoUL optional + AntennaInfoUL_r10 antennaInfoUL optional, + AntennaInfoDedicated_v1250 antennaInfoDedicated_v1250 optional }; type record CQI_ReportConfig_R8andLater_Type { CQI_ReportConfig cqi_ReportConfig, @@ -45,30 +46,35 @@ module EUTRA_ASP_TypeDefs { }; type record CQI_ReportConfig_R10andLater_Type { CQI_ReportConfig_r10 cqi_ReportConfig_r10, /* NOTE: field 'csi-SubframePatternConfig-r10' is not relevant as long as a cell is configured as SCell */ - CQI_ReportConfig_v1130 cqi_ReportConfig_v1130 optional + CQI_ReportConfig_v1130 cqi_ReportConfig_v1130 optional, + CQI_ReportConfig_v1250 cqi_ReportConfig_v1250 optional }; type record PUCCH_ConfigDedicated_R8andLater_Type { PUCCH_ConfigDedicated pucch_ConfigDedicated, PUCCH_ConfigDedicated_v1020 pucch_ConfigDedicated_v1020 optional, - PUCCH_ConfigDedicated_v1130 pucch_ConfigDedicated_v1130 optional + PUCCH_ConfigDedicated_v1130 pucch_ConfigDedicated_v1130 optional, + PUCCH_ConfigDedicated_v1250 pucch_ConfigDedicated_v1250 optional }; type record PUSCH_ConfigDedicated_R8andLater_Type { PUSCH_ConfigDedicated pusch_ConfigDedicated, /* in case of CA beta offset shall be the same for the PCell and the associated SCells */ PUSCH_ConfigDedicated_v1020 pusch_ConfigDedicated_v1020 optional, /* optionally present for Rel 10 cells (normal or CA); in case of CA beta offset shall be the same for the PCell and the associated SCells */ - PUSCH_ConfigDedicated_v1130 pusch_ConfigDedicated_v1130 optional + PUSCH_ConfigDedicated_v1130 pusch_ConfigDedicated_v1130 optional, + PUSCH_ConfigDedicated_v1250 pusch_ConfigDedicated_v1250 optional }; type record UplinkPowerControlCommon_R8andLater_Type { UplinkPowerControlCommon uplinkPowerControlCommon, UplinkPowerControlCommon_v1020 uplinkPowerControlCommon_v1020 optional, /* optionally present for Rel 10 cells (normal or CA); NOTE: 'p0-NominalPUCCH', 'deltaFList-PUCCH', 'deltaPreambleMsg3' and 'UplinkPowerControlCommon-v1020' are not relevant as long as a cell is configured as SCell */ - UplinkPowerControlCommonSCell_v1130 uplinkPowerControlCommonSCell_v1130 optional /* only present when cell is configured as Rel 11 or later Scell */ + UplinkPowerControlCommonSCell_v1130 uplinkPowerControlCommonSCell_v1130 optional, /* only present when cell is configured as Rel 11 or later Scell */ + UplinkPowerControlCommonPSCell_r12 uplinkPowerControlCommonPSCell_r12 optional }; type record UplinkPowerControlDedicated_R8andLater_Type { UplinkPowerControlDedicated uplinkPowerControlDedicated, UplinkPowerControlDedicated_v1020 uplinkPowerControlDedicated_v1020 optional, /* optionally present for Rel 10 cells (normal or CA); NOTE: field 'p0-UE-PUCCH' is not relevant as long as a cell is configured as SCell */ SCellPathlossReferenceLinking_Type pathlossReferenceLinking optional, /* NOTE: relevant only as long as a cell is configured as SCell */ - UplinkPowerControlDedicated_v1130 uplinkPowerControlDedicated_v1130 optional + UplinkPowerControlDedicated_v1130 uplinkPowerControlDedicated_v1130 optional, + UplinkPowerControlDedicated_v1250 uplinkPowerControlDedicated_v1250 optional }; type record SoundingRS_UL_ConfigDedicated_R8andLater_Type { SoundingRS_UL_ConfigDedicated soundingRS_UL_ConfigDedicated, @@ -79,12 +85,18 @@ module EUTRA_ASP_TypeDefs { SchedulingRequestConfig schedulingRequestConfig, SchedulingRequestConfig_v1020 schedulingRequestConfig_v1020 optional }; - type record TDD_Config_R8andLater { + type record TDD_Config_R8andLater_Type { TDD_Config R8, TDD_Config_v1130 tdd_Config_v1130 optional }; + type record RACH_ConfigCommon_R8andLater_Type { + RACH_ConfigCommon rach_ConfigCommon, /* All parameters in RACH_ConfigCommonScell_r11 are covered by RACH_ConfigCommon; + RACH_ConfigCommon will be used in Scell also for a complete set of RACH parameters both when configured as a Scell or normal RACH procedure when it seazes to exist as Scell; + when cell is configured as Scell, additional parameters shall be ignored by SS */ + RACH_ConfigCommon_v1250 rach_ConfigCommon_v1250 optional + }; type union TDD_Config_Type { - TDD_Config_R8andLater R8andLater + TDD_Config_R8andLater_Type R8andLater }; type union AntennaInfoCommon_Type { AntennaInfoCommon R8 @@ -125,8 +137,9 @@ module EUTRA_ASP_TypeDefs { CQI_ReportConfig_R10andLater_Type R10andLater }; type union RACH_ConfigCommon_Type { - RACH_ConfigCommon R8 /* In an active Scell, the SS uses the necessary parameters defined in RACH-ConfigCommonSCell-r11 and ignores additional parameters; + RACH_ConfigCommon R8, /* In an active Scell, the SS uses the necessary parameters defined in RACH-ConfigCommonSCell-r11 and ignores additional parameters; * The additional parameters will be applicable when the cell seizes to exist as scell */ + RACH_ConfigCommon_R8andLater_Type R8andLater }; type union RACH_ConfigDedicated_Type { RACH_ConfigDedicated R8 @@ -149,8 +162,14 @@ module EUTRA_ASP_TypeDefs { type union DL_UM_RLC_Type { DL_UM_RLC R8 }; + type record TTI_BundlingConfig_R8andLater_Type { + TTI_Bundling_Type TTI_BundlingEnabled, + E_HARQ_Pattern_r12_Type E_HARQ_Pattern optional + }; + type union TTI_BundlingConfig_Type { - boolean R8 + boolean R8, + TTI_BundlingConfig_R8andLater_Type R8andLater }; type union DRX_Config_Type { DRX_Config R8 @@ -207,8 +226,9 @@ module EUTRA_ASP_TypeDefs { PDCCH_MCCH_ChangeNotification_Type PDCCH_MCCH_ChangeNotification, /* To trigger SS to send MCCH change notification at the given SFN/subframe (as calculated in TTCN) */ MSI_Config_Type MSI_Config, /* Configuration of MSI in MBMS normal mode to be included by the SS in the first subframe allocated to the MCH within the MCH scheduling period; * uses MRB_ID option in routing info and logical channel ID is omitted */ - UE_CategoryInfo_Type UE_Cat_Info /* provides UE category info to SS to be used for determination of Nsoft bits for rate matching + UE_CategoryInfo_Type UE_Cat_Info, /* provides UE category info to SS ; to be used e.g. for determination of Nsoft bits for rate matching * To be configured in SS after preamble in MAC TBS test cases*/ + OCNG_Config_Type OCNG_Config /* Provides SS Mode for Activating/Releasing OCNG configuration in the cell */ }; type union SystemConfirm_Type { /* confirmations for system configuration; @@ -233,7 +253,9 @@ module EUTRA_ASP_TypeDefs { Null_Type ActivateScell, /* confirmation for ActivateScell */ Null_Type MbmsConfig, /* confirmation for MbmsConfig */ Null_Type PDCCH_MCCH_ChangeNotification, /* normally not needed but defined for completeness */ - Null_Type MSI_Config /* confirmation for explicit MSI Configuration */ + Null_Type MSI_Config, /* confirmation for explicit MSI Configuration */ + Null_Type UE_Cat_Info, /* confirmation for UE CAT info */ + Null_Type OCNG_Config /* Confirmation of OCNG configuration */ }; type union SystemIndication_Type { @@ -469,10 +491,15 @@ module EUTRA_ASP_TypeDefs { type record UE_CategoryInfo_Type { UE_Category_Type ue_Category, - UE_Category_v1020_Type ue_Category_V1020 optional + UE_Category_v1020_Type ue_Category_V1020 optional, + UE_Category_v1170_Type ue_Category_v1170 optional, + UE_Category_v11a0_Type ue_Category_v11a0 optional, + UE_Category_v1250_Type ue_Category_v1250 optional /* If UE category is 0 then + * 1. SS shall forward UL CCCH SDU only when indicated with LCHID '01011'B. + * 2. SS shall restrict DL UE-dedicated MAC TBS to 1000. */ + }; - } // End sub-group Cell_Configuration_Common //---------------------------------------------------------------------------- @@ -588,7 +615,8 @@ module EUTRA_ASP_TypeDefs { ToRS_EPRE_Ratios_Type BcchOnPdsch optional, ToRS_EPRE_Ratios_Type PcchOnPdsch optional, ToRS_EPRE_Ratios_Type CcchOnPdsch optional, - ToRS_EPRE_Ratios_Type DcchDtchOnPdsch optional + ToRS_EPRE_Ratios_Type DcchDtchOnPdsch optional, + ToRS_EPRE_Ratios_Type OcngOnPdsch optional /* the power offset used for modeling allocations to virtual UE's (different from the UE under test) */ }; type record PdschConfig_Type { @@ -597,8 +625,10 @@ module EUTRA_ASP_TypeDefs { type record EpdcchConfig_Type { ToRS_EPRE_Ratios_Type RelativeTxPower optional, /* power ratio for ePDCCH's resource elements relative to the RS */ - EPDCCH_Config_r11 EPDCCH_Config optional - // further elements are FFS + PdcchCandidateList_Type ePdcchCandidateList optional, /* ePDCCH candidate list acc. to tables in TS 36.523-3 clause 7.1.2 */ + EPDCCH_Config_r11 EPDCCH_Config optional /* If present with choice 'setup' SS starts using ePDCCH in subframes reserved for ePDCCH for UL/DL grant transmission on C-RNTI/SPS-RNTI and PDCCH in non reserved sub frames + * If present with choice 'release' SS releases ePDCCH configuration and uses PDCCH for UL/DL grant transmission in all sub frames + * 'omit' is no change from previous configuration */ }; @@ -1232,52 +1262,6 @@ module EUTRA_ASP_TypeDefs { group UE_Specific_Channel_Configuration_DL { /* Scheduling and other information for CCCH/DCCH/DTCH mapped to DL-SCH mapped to PDSCH */ - group MIMO_Configuration { /* Precoding information for spatial multiplexing (DCI format 2) */ - - type union PrecodingInfoForOneCodeWord_Type { - /* NOTE: not all index values may make sense (e.g. the indices refering to the values reported by the UE) */ - integer TwoAntennasClosedLoop (0..6), /* index acc. to TS 36.212 Table 5.3.3.1.5-2; - * RI = 1; transmit diversity or code book index 0..3 acc. TS 36.211 Table 6.3.4.2.3-1 */ - integer FourAntennasClosedLoop (0..34), /* index acc. to TS 36.212 Table 5.3.3.1.5-3; - * RI = 1..2; transmit diversity or code book index 0..15 acc. TS 36.211 Table 6.3.4.2.3-2 */ - Null_Type TwoAntennasOpenLoop, /* no precoding info; RI=1 when only codeword 1 is enabled */ - integer FourAntennasOpenLoop (0..1) /* index acc. to TS 36.212 Table 5.3.3.1.5-4 - * RI = 1..2; RI=1 => transmit diversity; RI=2 => large delay CDD */ - }; - type union PrecodingInfoForTwoCodeWords_Type { - /* NOTE: not all index values may make sense (e.g. the indices refering to the values reported by the UE) */ - integer TwoAntennasClosedLoop (0..2), /* index acc. to TS 36.212 Table 5.3.3.1.5-2; - * RI = 2; code book index 1, 2 acc. TS 36.211 Table 6.3.4.2.3-1 */ - integer FourAntennasClosedLoop (0..50), /* index acc. to TS 36.212 Table 5.3.3.1.5-3; - * RI = 2..4; code book index 0..15 acc. TS 36.211 Table 6.3.4.2.3-2 */ - Null_Type TwoAntennasOpenLoop, /* no precoding info; RI=2 when both codewords are enabled */ - integer FourAntennasOpenLoop (0..2) /* index acc. to TS 36.212 Table 5.3.3.1.5-4 - * RI = 2..4; large delay CDD */ - }; - type union PrecodingInfoIndex_Type { - PrecodingInfoForOneCodeWord_Type OneCodeWord, /* only codeword 1 shall be enabled in the DCI */ - PrecodingInfoForTwoCodeWords_Type TwoCodeWords /* both codewords shall be enabled in the DCI */ - }; - - type enumerated PrecodingOperationMode_Type { /* how to determine precoding information for spatial multiplexing is signalled on PDCCH with DCI format 2 and 2A (TS 36.212, clause 5.3.3.1.5) */ - hardcoded, /* SS shall apply configured precoding info as configured regardless RI and PMI reported by the UE */ - automatic /* SS shall apply configured precoding info as long as there are no RI and PMI reported by the UE; - * when there are RI and PMI reported by the UE these shall be used */ - }; - - type record SpatialMultiplexingInfo_Type { - /* NOTE: there may be codebookSubsetRestriction as signalled to the UE (TS 36.331, clause 6.3.2 AntennaInfoDedicated) to be considered */ - PrecodingOperationMode_Type OperationMode, - PrecodingInfoIndex_Type PrecodingIndex /* NOTE: contains information about number of code words to be used in DCI format 2 */ - }; - - type union MimoInfo_Type { - Null_Type NoMimo, - SpatialMultiplexingInfo_Type Spatial - }; - - } // End sub-sub-sub-group MIMO_Configuration - //============================================================================ type union HarqProcessConfigDL_Type { /* HARQ processes to be used automatically for DL assignments */ @@ -1414,6 +1398,11 @@ module EUTRA_ASP_TypeDefs { MeasSubframePatternPCell_r10 MeasSubframePatternPCell optional, CrossCarrierScheduledCellsList_Type CrossCarrierScheduledCellsList optional /* Information of possible Cells Cross Scheduled by this cell */ }; + type union Pcell_Mode_Type{ + Null_Type FDD, + TDD_SubframeAssignment_Type TDD + }; + type record SecondaryCellInfo_Type { EUTRA_CellId_Type AssociatedPcellId, /* cell ID of associated Pcell (eutra_Cell_NonSpecific is not allowed) */ @@ -1422,8 +1411,9 @@ module EUTRA_ASP_TypeDefs { ScellDeactivationTimer_Type ScellDeactivationTimer optional, /* SCell deactivation timer; omit means "keep as it is"; when there is more than one SCell associated to the same PCell this field shall be set to the same value for each SCell */ CrossCarrierSchedulingConfig_Type CrossCarrierSchedulingConfig optional, /* omit means "keep as it is"*/ - STAG_Id_r11 STAG_Id optional /* if IE is never configured then scell is part of PTAG. + STAG_Id_r11 STAG_Id optional, /* if IE is never configured then scell is part of PTAG. * Uses the STAG_ID or PTAG in Auto PUCCH synchronization when transmitting periodically Timing Advance MCE */ + Pcell_Mode_Type Pcell_Mode optional /* omit means Pcell and Scell mode are same. To be provide for FDD-TDD mixed mode CA configurations */ }; type union ServingCellConfig_Type { @@ -1434,6 +1424,29 @@ module EUTRA_ASP_TypeDefs { } // End group Carrier_Aggregation + group OCNG_Config { + + type union OCNG_Config_Type { + OCNG_ActivateInfo_Type Activate, /* CellId : identifier of the cell where the OCNG needs to be activated + * RoutingInfo : None + * TimingInfo : activation time from when the SS starts transmission of uncorrelated pseudo random MAC TB's addressed to Virtual UE's in non ABS subframes. + * ControlInfo : CnfFlag:=false; FollowOnFlag:=false */ + Null_Type Deactivate /* CellId : identifier of the cell where the OCNG needs to be deactivated + * RoutingInfo : None + * TimingInfo : activation time from when the SS stops transmission of MAC TB's addressed to Virtual UE's in non ABS subframes. + * ControlInfo : CnfFlag:=false; FollowOnFlag:=false */ + }; + + type record OCNG_ActivateInfo_Type { + /* OFDMA Channel Noise Generator (OCNG): + * SS for transmitting uncorrelated pseudo random data in MAC TB's addressed to Virtual UE's, will not do any retransmissions due to no HARQ ACK/NACK reception being considered as NACK. */ + MeasSubframePattern_r10 MeasSubFramePattern /* provides the bit string for x (size of bit string divided by 10 ) frames to be repeated continuously from provided timing info; + * 1 represents ABS subframe hence no pseudo random MAC TB is scheduled + * 0 represent non-ABS subframe and SS automatically transmits MAC TB's consisting of pseudo random data in each non-ABS subframe */ + }; + + } //End group OCNG + } // End group Cell_Configuration //**************************************************************************** @@ -1738,7 +1751,7 @@ module EUTRA_ASP_TypeDefs { }; type record AS_CipheringInfo_Type { - CipheringAlgorithm_Type Algorithm, /* CipheringAlgorithm_Type being defined in RRC ASN.1 */ + CipheringAlgorithm_r12 Algorithm, /* CipheringAlgorithm_Type being defined in RRC ASN.1 */ B128_Key_Type KRRCenc, B128_Key_Type KUPenc, /* KUPenc is mandatory; and SS uses it when DRB are configured */ SecurityActTimeList_Type ActTimeList @@ -2140,7 +2153,7 @@ module EUTRA_ASP_TypeDefs { }; type record MCCH_Data_Type { - Mbsfn_AreaId_r9_Type Mbsfn_AreaId optional, /* Used only for modification of MCCH info. + MBSFN_AreaId_r12 Mbsfn_AreaId optional, /* Used only for modification of MCCH info. * Omitted if Mbsfn_AreaInfo is present and mandatory present otherwise */ MCCH_MessageList_Type MsgList }; @@ -2190,7 +2203,7 @@ module EUTRA_ASP_TypeDefs { type union MAC_MCH_TestModeConfig_Type { Null_Type None, /* MAC operation in normal mode for MCH */ - Null_Type Config /* MAC is configured in no header manipulation in DL [MTCH is DL only channel] - FFS*/ + Null_Type Config /* MAC is configured in no header manipulation in DL [MTCH is DL only channel] */ }; type record PDCCH_MCCH_ChangeNotification_Type { diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn index e2c42f8..f39d82b 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_ASP_VirtualNoiseDefs.ttcn @@ -2,16 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ -// $Rev: 8395 $ +// @version: IWD_15wk38 +// $Date: 2015-06-05 10:50:29 +0200 (Fri, 05 Jun 2015) $ +// $Rev: 13661 $ /******************************************************************************/ module EUTRA_ASP_VirtualNoiseDefs { /* ASP definitions for virtual noise generation in EUTRA cells. - The noise is configurated for an already existing EUTRA cell. + The noise is configured for an already existing EUTRA cell. For UEs with 2 antenna connectors the AWGN (Additive white Gaussian noise) signals applied to each receiver antenna connector shall be uncorrelated. */ import from CommonDefs all; diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn index 3bfb3f8..a0078a2 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_CommonDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-27 12:20:17 +0200 (Wed, 27 Aug 2014) $ -// $Rev: 11929 $ +// @version: IWD_15wk38 +// $Date: 2015-09-11 19:17:11 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14309 $ /******************************************************************************/ module EUTRA_CommonDefs { @@ -19,10 +19,9 @@ module EUTRA_CommonDefs { type enumerated IDLEUPDATED_Type {PREAMBLE, NORMAL}; type enumerated IDLEUPDATED_STATE_Type {STATE2_IDLEUPDATE, STATE2A_TESTLOOP_ModeA, STATE2A_TESTLOOP_ModeB, STATE2A_TESTLOOP_ModeC};//@sic eMBMS sic@ type enumerated EUTRA_POSTAMBLE_STATE_Type {E1_IDLE, E2_CONNECTED, E2_T3440, E3_TESTMODE, E4_DEREGISTERED}; - type enumerated EUTRA_FDD_TDD_Mode_Type {FDD, TDD}; type enumerated EUTRA_NAS_NumOfPLMN_Type {LTE_AllCellsOnSamePLMN, LTE_CellsOnDifferentPLMN}; - type enumerated EUTRA_DiscardUlDataUM_Type {DISCARD_UM_DATA}; - type enumerated EUTRA_UseBigGrants_Type {USE_BIG_GRANTS, USE_DEF_GRANTS}; /* @sic R5s140676 Change 2 sic@ */ + type enumerated EUTRA_HandleUlDataUM_Type {HANDLE_UM_DATA}; + type enumerated EUTRA_UseBigGrants_Type {USE_BIG_GRANTS, USE_DEF_GRANTS, USE_CAT0_GRANTS}; /* @sic R5s140676 Change 2 R5w150203r1 sic@ */ type enumerated EUTRA_NAS_CellSpecialFreq { LTE_NAS_NormalFreq, @@ -158,7 +157,6 @@ module EUTRA_CommonDefs { type RACH_ConfigDedicated.ra_PreambleIndex Ra_PreambleIndex_Type; type RACH_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize Ra_ResponseWindowSize_Type;//@sic R5-095164 sic@ type MeasResultEUTRA.cgi_Info GlobalCellIdentity_Type; - type SecurityAlgorithmConfig.cipheringAlgorithm CipheringAlgorithm_Type; type SecurityAlgorithmConfig.integrityProtAlgorithm IntegrityProtAlgorithm_Type; type PLMN_IdentityInfo.cellReservedForOperatorUse CellReservedForOpUse_Type; type Paging.systemInfoModification Paging_SystemInfoModification_Type; @@ -166,8 +164,6 @@ module EUTRA_CommonDefs { type PhysCellIdRange.range PhysCellIdRange_Type; type RadioResourceConfigDedicated.mac_MainConfig.explicitValue.ul_SCH_Config.maxHARQ_Tx MaxHARQ_Tx_Type; - type RadioResourceConfigDedicated.mac_MainConfig.explicitValue.ul_SCH_Config.periodicBSR_Timer PeriodicBSR_Timer_Type; - type RadioResourceConfigDedicated.mac_MainConfig.explicitValue.ul_SCH_Config.retxBSR_Timer RetxBSR_Timer_Type; type RadioResourceConfigDedicated.mac_MainConfig MAC_MainConfig_Type; /* NOTE: * the type name is confusing since there is a ASN.1 type MAC_MainConfig @@ -217,7 +213,6 @@ module EUTRA_CommonDefs { type CrossCarrierSchedulingConfig_r10.schedulingCellInfo_r10.other_r10 CrossSchedulingCarrierInfo_Type; - type CarrierFreqUTRA_FDD.threshX_Q_r9 CarrierFreqUTRA_FDD_threshX_Q_r9_Type; type UplinkPowerControlCommon_v1020.deltaF_PUCCH_Format3_r10 UplinkPowerControl_DeltaF_PUCCH_Format3_Type; /* @status APPROVED (LTE_A) */ @@ -226,11 +221,17 @@ module EUTRA_CommonDefs { type RRCConnectionRelease_v920_IEs.cellInfoList_r9 RRCConnectionRelease_CellInfoList_r9_Type; type MBSFN_AreaInfo_r9.notificationIndicator_r9 NotificationIndicator_r9_Type; - type MBSFN_AreaInfo_r9.mbsfn_AreaId_r9 Mbsfn_AreaId_r9_Type; type MBMS_SessionInfo_r9.logicalChannelIdentity_r9 LogicalChannelIdentity_r9_Type; type UE_EUTRA_Capability_v1020_IEs.ue_Category_v1020 UE_Category_v1020_Type; + type UE_EUTRA_Capability_v1170_IEs. ue_Category_v1170 UE_Category_v1170_Type; + type UE_EUTRA_Capability_v11a0_IEs. ue_Category_v11a0 UE_Category_v11a0_Type; + type UE_RadioPagingInfo_r12. ue_Category_v1250 UE_Category_v1250_Type; + type MAC_MainConfig.e_HARQ_Pattern_r12 E_HARQ_Pattern_r12_Type; + type MAC_MainConfig.ul_SCH_Config.ttiBundling TTI_Bundling_Type; + type LogicalChannelConfig.ul_SpecificParameters.bucketSizeDuration LogicalChannelConfig_BucketSizeDuration_Type; + } // End group RRC_Nested_Types //---------------------------------------------------------------------------- @@ -288,7 +289,7 @@ module EUTRA_CommonDefs { RadioBearerId_Type RadioBearerId }; - type Null_Type CarrierAggregationInfo_Type; /* additional routing information for carrier aggregation; FFS */ + type Null_Type CarrierAggregationInfo_Type; /* place holder for additional routing information for carrier aggregation */ } // End sub-group Routing_Info @@ -406,8 +407,8 @@ module EUTRA_CommonDefs { group CA_CommonDefs { /* Common definitions for carrier aggregation needed for configuration of the SS (EUTRA_ASP_TypeDefs) as well as for MAC test cases (EUTRA_ASP_DrbDefs) */ type record ScellBitMap_Type { - B1_Type Reserved, /* LSBit Reserved. Shall be set to 0 */ - B7_Type Value /* 7 MSB bits the C Fields C7 to C1. 1 => the corresponding Scell is Active 0 => Inactive */ + B7_Type Value , /* 7 MSB bits the C Fields C7 to C1. 1 => the corresponding Scell is Active 0 => Inactive */ + B1_Type Reserved /* LSBit Reserved. Shall be set to 0 */ }; type ScellBitMap_Type MAC_CTRL_ScellActDeact_Type; /* 36.321 clause 6.1.3.8 */ @@ -440,7 +441,7 @@ module EUTRA_CommonDefs { * - the logicalChannelIdentity in the mbms-SessionInfoList-r9 * - the MBSFN area identity, * - the MCH index in the pmch-InfoList-r9 */ - Mbsfn_AreaId_r9_Type Mbsfn_AreaId, + MBSFN_AreaId_r12 Mbsfn_AreaId, PmchLogicalChannel_Type PmchLogicalChannel }; diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn index fde9fd9..52af2c1 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_LoopBack_TypeDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-10-23 08:07:30 +0200 (Wed, 23 Oct 2013) $ // $Rev: 9855 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn similarity index 74% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn index 8b5418f..59d7efc 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_RRC_ASN1_Definitions.asn @@ -1,7 +1,7 @@ EUTRA-RRC-ASN1-Definitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN --- ***** RRC ASN.1 definitions extracted from TS 36.331 (Revision b.7.0) ***** +-- ***** RRC ASN.1 definitions extracted from TS 36.331 (Revision c.5.0) ***** BCCH-BCH-Message ::= SEQUENCE { @@ -134,8 +134,9 @@ UL-DCCH-MessageType ::= CHOICE { ueAssistanceInformation-r11 UEAssistanceInformation-r11, inDeviceCoexIndication-r11 InDeviceCoexIndication-r11, mbmsInterestIndication-r11 MBMSInterestIndication-r11, - spare13 NULL, - spare12 NULL, spare11 NULL, spare10 NULL, + scgFailureInformation-r12 SCGFailureInformation-r12, + sidelinkUEInformation-r12 SidelinkUEInformation-r12, + spare11 NULL, spare10 NULL, spare9 NULL, spare8 NULL, spare7 NULL, spare6 NULL, spare5 NULL, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL @@ -412,9 +413,22 @@ LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP nonCriticalExtension SEQUENCE {} OPTIONAL } +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + ... +} + MasterInformationBlock ::= SEQUENCE { dl-Bandwidth ENUMERATED { @@ -493,6 +507,11 @@ MBSFNAreaConfiguration-r9 ::= SEQUENCE { MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -765,9 +784,46 @@ RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { systemInfomationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 CHOICE { + release NULL, + setup SEQUENCE { + wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12, + t350-r12 ENUMERATED {min5, min10, min20, min30, min60, + min120, min180, spare1} OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON nonCriticalExtension SEQUENCE {} OPTIONAL } +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 SCellIndex-r10, + cellIdentification-r12 SEQUENCE { + physCellId-r12 PhysCellId, + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2 + ... +} + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 INTEGER (1..16), + p-SeNB-r12 INTEGER (1..16), + powerControlMode-r12 INTEGER (1..2) +} + SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 SCellToAddMod-r10 ::= SEQUENCE { @@ -785,6 +841,27 @@ SCellToAddMod-r10 ::= SEQUENCE { SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 +SCG-Configuration-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + scg-ConfigPartMCG-r12 SEQUENCE { + scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON + ... +} + SecurityConfigHO ::= SEQUENCE { handoverType CHOICE { intraLTE SEQUENCE { @@ -828,6 +905,11 @@ RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -887,6 +969,11 @@ RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1045,7 +1132,9 @@ IdleModeMobilityControlInfo ::= SEQUENCE { t320 ENUMERATED { min5, min10, min20, min30, min60, min120, min180, spare1} OPTIONAL, -- Need OR - ... + ..., + [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON + ]] } IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { @@ -1054,6 +1143,8 @@ IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + FreqPriorityEUTRA ::= SEQUENCE { carrierFreq ARFCN-ValueEUTRA, cellReselectionPriority CellReselectionPriority @@ -1063,6 +1154,11 @@ FreqPriorityEUTRA-v9e0 ::= SEQUENCE { carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max } +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 CellReselectionPriority +} + FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN FreqsPriorityGERAN ::= SEQUENCE { @@ -1209,6 +1305,13 @@ RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL, + nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL, + mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL, + logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1219,6 +1322,30 @@ RegisteredMME ::= SEQUENCE { } +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + scgFailureInformation-r12 SCGFailureInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure }, + measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL, + ... +} + + SecurityModeCommand ::= SEQUENCE { rrc-TransactionIdentifier RRC-TransactionIdentifier, criticalExtensions CHOICE { @@ -1282,6 +1409,35 @@ SecurityModeFailure-v8a0-IEs ::= SEQUENCE { } +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE { + sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 ENUMERATED {true} OPTIONAL, + discTxResourceReq-r12 INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 SL-DestinationInfoList-r12 +} + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12 + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + + SystemInformation ::= SEQUENCE { criticalExtensions CHOICE { systemInformation-r8 SystemInformation-r8-IEs, @@ -1305,7 +1461,10 @@ SystemInformation-r8-IEs ::= SEQUENCE { sib13-v920 SystemInformationBlockType13-r9, sib14-v1130 SystemInformationBlockType14-r11, sib15-v1130 SystemInformationBlockType15-r11, - sib16-v1130 SystemInformationBlockType16-r11 + sib16-v1130 SystemInformationBlockType16-r11, + sib17-v1250 SystemInformationBlockType17-r12, + sib18-v1250 SystemInformationBlockType18-r12, + sib19-v1250 SystemInformationBlockType19-r12 }, nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL } @@ -1368,6 +1527,15 @@ SystemInformationBlockType1-v920-IEs ::= SEQUENCE { SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 SEQUENCE { + category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1393,7 +1561,8 @@ SIB-Type ::= ENUMERATED { sibType7, sibType8, sibType9, sibType10, sibType11, sibType12-v920, sibType13-v920, sibType14-v1130, sibType15-v1130, - sibType16-v1130, spare2, spare1, ...} + sibType16-v1130, sibType17-v1250, sibType18-v1250, + ..., sibType19-v1250} CellSelectionInfo-v920 ::= SEQUENCE { q-QualMin-r9 Q-QualMin-r9, @@ -1404,6 +1573,10 @@ CellSelectionInfo-v1130 ::= SEQUENCE { q-QualMinWB-r11 Q-QualMin-r9 } +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 +} + UEAssistanceInformation-r11 ::= SEQUENCE { criticalExtensions CHOICE { @@ -1440,6 +1613,11 @@ UECapabilityEnquiry-r8-IEs ::= SEQUENCE { UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1466,6 +1644,11 @@ UECapabilityInformation-r8-IEs ::= SEQUENCE { UECapabilityInformation-v8a0-IEs ::= SEQUENCE { lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1499,6 +1682,11 @@ UEInformationRequest-v1020-IEs ::= SEQUENCE { UEInformationRequest-v1130-IEs ::= SEQUENCE { connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1542,6 +1730,11 @@ UEInformationResponse-v1020-IEs ::= SEQUENCE { UEInformationResponse-v1130-IEs ::= SEQUENCE { connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1578,7 +1771,7 @@ RLF-Report-r9 ::= SEQUENCE { c-RNTI-r11 C-RNTI, rlf-Cause-r11 ENUMERATED { t310-Expiry, randomAccessProblem, - rlc-MaxNumRetx, spare1}, + rlc-MaxNumRetx, t312-Expiry-r12}, timeSinceFailure-r11 TimeSinceFailure-r11 } OPTIONAL, previousUTRA-CellId-r11 SEQUENCE { @@ -1596,7 +1789,15 @@ RLF-Report-r9 ::= SEQUENCE { tdd-r11 PhysCellIdUTRA-TDD } } OPTIONAL + ]], + [[ failedPCellId-v1250 SEQUENCE { + tac-FailedPCell-r12 TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL ]] + } RLF-Report-v9e0 ::= SEQUENCE { @@ -1607,6 +1808,8 @@ MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA- MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + MeasResult2EUTRA-r9 ::= SEQUENCE { carrierFreq-r9 ARFCN-ValueEUTRA, measResultList-r9 MeasResultListEUTRA @@ -1616,6 +1819,10 @@ MeasResult2EUTRA-v9e0 ::= SEQUENCE { carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL } +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL +} + MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 MeasResult2UTRA-r9 ::= SEQUENCE { @@ -1658,9 +1865,46 @@ LogMeasInfo-r10 ::= SEQUENCE { } OPTIONAL, ..., [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL ]] + +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 SEQUENCE { + mbsfn-AreaId-r12 MBSFN-AreaId-r12, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 RSRP-Range, + rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 BLER-Result-r12 } +BLER-Result-r12 ::= SEQUENCE { + bler-r12 BLER-Range-r12, + blocksReceived-r12 SEQUENCE { + n-r12 BIT STRING (SIZE (3)), + m-r12 BIT STRING (SIZE (8)) + } +} + +BLER-Range-r12 ::= INTEGER(0..31) + MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN ConnEstFailReport-r11 ::= SEQUENCE { @@ -1681,13 +1925,19 @@ ConnEstFailReport-r11 ::= SEQUENCE { maxTxPowerReached-r11 BOOLEAN, timeSinceFailure-r11 TimeSinceFailure-r11, measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL, - ... + ..., + [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL + ]] } NumberOfPreamblesSent-r11::= INTEGER (1..200) TimeSinceFailure-r11 ::= INTEGER (0..172800) +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + ULHandoverPreparationTransfer ::= SEQUENCE { criticalExtensions CHOICE { @@ -1759,6 +2009,12 @@ SystemInformationBlockType2 ::= SEQUENCE { ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP ]], [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP + ]], + [[ + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP ]] } @@ -1782,6 +2038,23 @@ AC-BarringConfig ::= SEQUENCE { MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 SEQUENCE { + ac-BarringForEmergency-r12 BOOLEAN, + ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP +} + SystemInformationBlockType3 ::= SEQUENCE { cellReselectionInfoCommon SEQUENCE { @@ -1827,6 +2100,8 @@ SystemInformationBlockType3 ::= SEQUENCE { threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP ]], [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ + ]], + [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ ]] } @@ -1853,7 +2128,10 @@ IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange SystemInformationBlockType5 ::= SEQUENCE { interFreqCarrierFreqList InterFreqCarrierFreqList, ..., - lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR + ]] } SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { @@ -1863,11 +2141,16 @@ SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension +SEQUENCE {} OPTIONAL } InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250 + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12 + InterFreqCarrierFreqInfo ::= SEQUENCE { dl-CarrierFreq ARFCN-ValueEUTRA, q-RxLevMin Q-RxLevMin, @@ -1903,6 +2186,38 @@ InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR } +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 Q-RxLevMin, + p-Max-r12 P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 T-Reselection, + t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + allowedMeasBandwidth-r12 AllowedMeasBandwidth, + presenceAntennaPort1-r12 PresenceAntennaPort1, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 NeighCellConfig, + q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR + q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2 +... +} + InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo InterFreqNeighCellInfo ::= SEQUENCE { @@ -1919,12 +2234,24 @@ SystemInformationBlockType6 ::= SEQUENCE { t-ReselectionUTRA T-Reselection, t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP ..., - lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL + lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD + carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD + carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD + ]] } SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension +SEQUENCE {} OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP } CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD @@ -1949,6 +2276,26 @@ CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR } +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + q-QualMin-r12 INTEGER (-24..0), + threshX-Q-r12 SEQUENCE { + threshX-HighQ-r12 ReselectionThresholdQ-r9, + threshX-LowQ-r12 ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD CarrierFreqUTRA-TDD ::= SEQUENCE { @@ -1961,6 +2308,20 @@ CarrierFreqUTRA-TDD ::= SEQUENCE { ... } +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueUTRA, + cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 ReselectionThreshold, + threshX-Low-r12 ReselectionThreshold, + q-RxLevMin-r12 INTEGER (-60..-13), + p-MaxUTRA-r12 INTEGER (-50..33), + reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP + ... +} + FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) @@ -2236,6 +2597,68 @@ SystemInformationBlockType16-r11 ::= SEQUENCE { } +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + ... +} + + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 SEQUENCE { + commRxPool-r12 SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 SEQUENCE { + discRxPool-r12 SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-CarrierFreqInfo-r12::= SEQUENCE { + carrierFreq-r12 ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 PLMN-Identity +} + + AntennaInfoCommon ::= SEQUENCE { antennaPortsCount ENUMERATED {an1, an2, an4, spare1} } @@ -2279,6 +2702,10 @@ AntennaInfoDedicated-r10 ::= SEQUENCE { } } +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 BOOLEAN +} + AntennaInfoUL-r10 ::= SEQUENCE { transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5, @@ -2317,6 +2744,20 @@ CQI-ReportConfig-v1130 ::= SEQUENCE { cqi-ReportBoth-r11 CQI-ReportBoth-r11 } +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 CHOICE { + release NULL, + setup SEQUENCE { + csi-MeasSubframeSets-r12 BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 ENUMERATED { + allSubframes, csi-SubframeSet1, + csi-SubframeSet2, spare1} OPTIONAL -- Need OP +} + CQI-ReportConfigSCell-r10 ::= SEQUENCE { cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6), @@ -2412,6 +2853,17 @@ CQI-ReportAperiodic-r10 ::= CHOICE { } } +CQI-ReportAperiodic-v1250 ::= CHOICE { + release NULL, + setup SEQUENCE { + aperiodicCSI-Trigger-v1250 SEQUENCE { + trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2}, + trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8)) + } + } +} + CQI-ReportAperiodicProc-r11 ::= SEQUENCE { cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic, trigger01-r11 BOOLEAN, @@ -2421,7 +2873,7 @@ CQI-ReportAperiodicProc-r11 ::= SEQUENCE { CQI-ReportModeAperiodic ::= ENUMERATED { rm12, rm20, rm22, rm30, rm31, - spare3, spare2, spare1 + rm32-v1250, spare2, spare1 } CQI-ReportBoth-r11 ::= SEQUENCE { @@ -2431,6 +2883,11 @@ CQI-ReportBoth-r11 ::= SEQUENCE { csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON } +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 @@ -2445,6 +2902,7 @@ CQI-ReportBothProc-r11 ::= SEQUENCE { } + CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) @@ -2468,8 +2926,17 @@ CSI-IM-Config-r11 ::= SEQUENCE { ... } +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250, + resourceConfig-r12 INTEGER (0..31), + subframeConfig-r12 INTEGER (0..154), + ... +} + CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) CSI-Process-r11 ::= SEQUENCE { @@ -2480,7 +2947,17 @@ CSI-Process-r11 ::= SEQUENCE { cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR - ... + ..., + [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON + csi-IM-ConfigIdList-r12 CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, -- Need ON + cqi-ReportAperiodicProc2-r12 CHOICE { + release NULL, + setup CQI-ReportAperiodicProc-r11 + } OPTIONAL -- Need ON + ]] } P-C-AndCBSR-r11 ::= SEQUENCE { @@ -2502,13 +2979,27 @@ CSI-RS-Config-r10 ::= SEQUENCE { p-C-r10 INTEGER (-8..15) } } OPTIONAL, -- Need ON - zeroTxPowerCSI-RS-r10 CHOICE { - release NULL, - setup SEQUENCE { - zeroTxPowerResourceConfigList-r10 BIT STRING (SIZE (16)), - zeroTxPowerSubframeConfig-r10 INTEGER (0..154) + zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 CHOICE { + release NULL, + setup SEQUENCE { + zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12 } - } OPTIONAL -- Need ON + } OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release NULL, + setup ZeroTxPowerCSI-RS-r12 +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 INTEGER (0..154) } @@ -2589,11 +3080,39 @@ EPDCCH-SetConfig-r11 ::= SEQUENCE { dmrs-ScramblingSequenceInt-r11 INTEGER (0..503), pucch-ResourceStartOffset-r11 INTEGER (0..2047), re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR - ... + ..., + [[ csi-RS-ConfigZPId2-r12 CHOICE { + release NULL, + setup CSI-RS-ConfigZPId-r11 + } OPTIONAL -- Need ON + ]] } EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) +EIMTA-MainConfig-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-RNTI-r12 C-RNTI, + eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80}, + eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2,sa4,sa5}, + mbsfn-SubframeConfigList-v1250 CHOICE { + release NULL, + setup SEQUENCE { + subframeConfigList-r12 MBSFN-SubframeConfigList + } + } + } +} + LogicalChannelConfig ::= SEQUENCE { ul-SpecificParameters SEQUENCE { @@ -2610,6 +3129,8 @@ LogicalChannelConfig ::= SEQUENCE { } OPTIONAL, -- Cond UL ..., [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask + ]], + [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON ]] } @@ -2620,13 +3141,8 @@ MAC-MainConfig ::= SEQUENCE { n1, n2, n3, n4, n5, n6, n7, n8, n10, n12, n16, n20, n24, n28, spare2, spare1} OPTIONAL, -- Need ON - periodicBSR-Timer ENUMERATED { - sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, - sf128, sf160, sf320, sf640, sf1280, sf2560, - infinity, spare1} OPTIONAL, -- Need ON - retxBSR-Timer ENUMERATED { - sf320, sf640, sf1280, sf2560, sf5120, - sf10240, spare2, spare1}, + periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer RetxBSR-Timer-r12, ttiBundling BOOLEAN } OPTIONAL, -- Need ON drx-Config DRX-Config OPTIONAL, -- Need ON @@ -2655,6 +3171,20 @@ MAC-MainConfig ::= SEQUENCE { [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON + ]], + [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON + dualConnectivityPHR CHOICE { + release NULL, + setup SEQUENCE { + phr-ModeOtherCG-r12 ENUMERATED {real, virtual} + } + } OPTIONAL, -- Need ON + logicalChannelSR-Config-r12 CHOICE { + release NULL, + setup SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} + } + } OPTIONAL -- Need ON ]] } @@ -2720,6 +3250,15 @@ DRX-Config-v1130 ::= SEQUENCE { shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR } +PeriodicBSR-Timer-r12 ::= ENUMERATED { + sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, + sf128, sf160, sf320, sf640, sf1280, sf2560, + infinity, spare1} + +RetxBSR-Timer-r12 ::= ENUMERATED { + sf320, sf640, sf1280, sf2560, sf5120, + sf10240, spare2, spare1} + STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 @@ -2766,6 +3305,14 @@ PDCP-Config ::= SEQUENCE { [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN ]], [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2 + ]], + [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON + t-Reordering-r12 ENUMERATED { + ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140, + ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, + ms500, ms750, spare14, spare13, spare12, spare11, spare10, + spare9, spare8, spare7, spare6, spare5, spare4, spare3, + spare2, spare1} OPTIONAL -- Cond SetupS ]] } @@ -2874,9 +3421,17 @@ PhysicalConfigDedicated ::= SEQUENCE { pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON uplinkPowerControlDedicated-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10 + eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicated-v1250 UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON ]] } - PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { -- DL configuration as well as configuration applicable for DL and UL nonUL-Configuration-r10 SEQUENCE { @@ -2909,6 +3464,12 @@ PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON uplinkPowerControlDedicatedSCell-v1130 UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON + ]], + [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON + eimta-MainConfigSCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSCell-v1250 UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON ]] } @@ -3008,6 +3569,15 @@ PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { } OPTIONAL -- Need ON } +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 CHOICE { + release NULL, + setup SEQUENCE { + nkaPUCCH-AN-r12 INTEGER (0..2047) + } + } +} + N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) @@ -3047,6 +3617,22 @@ PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { } } +PUSCH-ConfigDedicated-v1250::= SEQUENCE { + uciOnPUSCH CHOICE { + release NULL, + setup SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15), + betaOffsetMC-r12 SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} + PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR @@ -3092,6 +3678,15 @@ RACH-ConfigCommon ::= SEQUENCE { ... } +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 SEQUENCE { + connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP + } +} + RACH-ConfigCommonSCell-r11 ::= SEQUENCE { powerRampingParameters-r11 PowerRampingParameters, ra-SupervisionInfo-r11 SEQUENCE { @@ -3133,6 +3728,8 @@ RadioResourceConfigCommonSIB ::= SEQUENCE { ul-CyclicPrefixLength UL-CyclicPrefixLength, ..., [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR + ]], + [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR ]] } @@ -3156,6 +3753,14 @@ RadioResourceConfigCommon ::= SEQUENCE { ]] } +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 PUCCH-ConfigCommon, + rach-ConfigCommon-r12 RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12, + ... +} + RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { -- DL configuration as well as configuration applicable for DL and UL nonUL-Configuration-r10 SEQUENCE { @@ -3191,7 +3796,7 @@ RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { ..., [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP ]], - [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond UL + [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2 uplinkPowerControlCommonSCell-v1130 @@ -3230,7 +3835,23 @@ RadioResourceConfigDedicated ::= SEQUENCE { [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON ]], [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON - ]] + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON + ]]} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { + -- UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON + ... +} + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON + ... } RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { @@ -3238,6 +3859,8 @@ RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON ..., [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd + ]], + [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON ]] } @@ -3258,13 +3881,34 @@ SRB-ToAddMod ::= SEQUENCE { DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + DRB-ToAddMod ::= SEQUENCE { eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup drb-Identity DRB-Identity, pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP - rlc-Config RLC-Config OPTIONAL, -- Cond Setup + rlc-Config RLC-Config OPTIONAL, -- Cond SetupM logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup - logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup + logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM + ..., + [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON + ]] +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 DRB-Identity, + drb-Type-r12 CHOICE { + split-r12 NULL, + scg-r12 SEQUENCE { + eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond SetupS + logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS ... } @@ -3289,6 +3933,32 @@ CRS-AssistanceInfo-r11 ::= SEQUENCE { ... } +NAICS-AssistanceInfo-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON + neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 P-a OPTIONAL -- Need ON + } +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 PhysCellId, + p-b-r12 INTEGER (0..3), + crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare}, + mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 BIT STRING (SIZE(8)), + resAllocGranularity-r12 INTEGER (1..4), + ... +} +P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, + dB0, dB1, dB2, dB3} + RLC-Config ::= CHOICE { am SEQUENCE { @@ -3308,6 +3978,11 @@ RLC-Config ::= CHOICE { ... } +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 BOOLEAN, + dl-extended-RLC-LI-Field-r12 BOOLEAN +} + UL-AM-RLC ::= SEQUENCE { t-PollRetransmit T-PollRetransmit, pollPDU PollPDU, @@ -3393,6 +4068,19 @@ RLF-TimersAndConstants-r9 ::= CHOICE { } } +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + t313-r12 ENUMERATED { + ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n313-r12 ENUMERATED { + n1, n2, n3, n4, n6, n8, n10, n20}, + n314-r12 ENUMERATED { + n1, n2, n3, n4, n5, n6, n8, n10}, + ... + } +} + RN-SubframeConfig-r10 ::= SEQUENCE { subframeConfigPattern-r10 CHOICE { @@ -3559,7 +4247,15 @@ SPS-ConfigUL ::= CHOICE { p0-UE-PUSCH-Persistent INTEGER (-8..7) } OPTIONAL, -- Need OP twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD - ... + ..., + [[ p0-PersistentSubframeSet2-r12 CHOICE { + release NULL, + setup SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7) + } + } OPTIONAL -- Need ON + ]] } } @@ -3578,6 +4274,11 @@ TDD-Config-v1130 ::= SEQUENCE { specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9} } +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 ENUMERATED { + none, sa0, sa1, sa2, sa3, sa4, sa5, sa6} +} + TimeAlignmentTimer ::= ENUMERATED { sf500, sf750, sf1280, sf1920, sf2560, sf5120, @@ -3599,7 +4300,7 @@ TPC-Index ::= CHOICE { UplinkPowerControlCommon ::= SEQUENCE { p0-NominalPUSCH INTEGER (-126..24), - alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}, + alpha Alpha-r12, p0-NominalPUCCH INTEGER (-127..-96), deltaFList-PUCCH DeltaFList-PUCCH, deltaPreambleMsg3 INTEGER (-1..6) @@ -3611,9 +4312,18 @@ UplinkPowerControlCommon-v1020 ::= SEQUENCE { deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1} } +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +-- For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2, + deltaF3, deltaF4, deltaF5, deltaF6}, + deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1}, + p0-NominalPUCCH-r12 INTEGER (-127..-96), + deltaFList-PUCCH-r12 DeltaFList-PUCCH +} + UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { p0-NominalPUSCH-r10 INTEGER (-126..24), - alpha-r10 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + alpha-r10 Alpha-r12 } UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { @@ -3640,6 +4350,18 @@ UplinkPowerControlDedicated-v1130 ::= SEQUENCE { deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR } +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter CHOICE { + release NULL, + setup SEQUENCE { + tpc-SubframeSet-r12 BIT STRING (SIZE(10)), + p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24), + alpha-SubframeSet2-r12 Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7) + } + } +} + UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { p0-UE-PUSCH-r10 INTEGER (-8..7), deltaMCS-Enabled-r10 ENUMERATED {en0, en1}, @@ -3650,6 +4372,8 @@ UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell} } +Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} + DeltaFList-PUCCH ::= SEQUENCE { deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2}, deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5}, @@ -3675,14 +4399,16 @@ NextHopChainingCount ::= INTEGER (0..7) SecurityAlgorithmConfig ::= SEQUENCE { - cipheringAlgorithm ENUMERATED { - eea0, eea1, eea2, eea3-v1130, spare4, spare3, - spare2, spare1, ...}, + cipheringAlgorithm CipheringAlgorithm-r12, integrityProtAlgorithm ENUMERATED { eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3, spare2, spare1, ...} } +CipheringAlgorithm-r12 ::= ENUMERATED { + eea0, eea1, eea2, eea3-v1130, spare4, spare3, + spare2, spare1, ...} + ShortMAC-I ::= BIT STRING (SIZE (16)) @@ -3836,6 +4562,16 @@ MobilityControlInfo ::= SEQUENCE { ]] } +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 ENUMERATED { + ms50, ms100, ms150, ms200, ms500, ms1000, + ms2000, spare1}, + ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst, + rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON + ... +} + CarrierBandwidthEUTRA ::= SEQUENCE { dl-Bandwidth ENUMERATED { n6, n15, n25, n50, n75, n100, spare10, @@ -4002,6 +4738,9 @@ T-Reselection ::= INTEGER (0..7) AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} +CSI-RSRP-Range-r12 ::= INTEGER(0..97) + + Hysteresis ::= INTEGER (0..30) @@ -4022,6 +4761,8 @@ LocationInfo-r10 ::= SEQUENCE { } +MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31) + MeasConfig ::= SEQUENCE { -- Measurement objects measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON @@ -4046,16 +4787,64 @@ MeasConfig ::= SEQUENCE { } OPTIONAL, -- Need ON ..., [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON + ]], + [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ measScaleFactor-r12 CHOICE { + release NULL, + setup MeasScaleFactor-r12 + } OPTIONAL, -- Need ON + measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON + measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON + measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON ]] } MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId +MeasDS-Config-r12 ::= CHOICE { + release NULL, + setup SEQUENCE { + dmtc-PeriodOffset-r12 CHOICE { + ms40-r12 INTEGER(0..39), + ms80-r12 INTEGER(0..79), + ms160-r12 INTEGER(0..159), + ... + }, + ds-OccasionDuration-r12 CHOICE { + durationFDD-r12 INTEGER(1..maxDS-Duration-r12), + durationTDD-r12 INTEGER(2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON + ... + } +} + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + physCellId-r12 INTEGER (0..503), + scramblingIdentity-r12 INTEGER (0..503), + resourceConfig-r12 INTEGER (0..31), + subframeOffset-r12 INTEGER (0..4), + csi-RS-IndividualOffset-r12 Q-OffsetRange, + ... +} + + MeasGapConfig ::= CHOICE { release NULL, setup SEQUENCE { @@ -4070,15 +4859,25 @@ MeasGapConfig ::= CHOICE { MeasId ::= INTEGER (1..maxMeasId) +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + MeasIdToAddMod ::= SEQUENCE { measId MeasId, measObjectId MeasObjectId, reportConfigId ReportConfigId } +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 MeasId-v1250, + measObjectId-r12 MeasObjectId, + reportConfigId-r12 ReportConfigId +} + MeasObjectCDMA2000 ::= SEQUENCE { cdma2000-Type CDMA2000-Type, @@ -4117,6 +4916,16 @@ MeasObjectEUTRA ::= SEQUENCE { measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON ]], [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ + ]], + [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON + altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON + t312-r12 CHOICE { + release NULL, + setup ENUMERATED {ms0, ms50, ms100, ms200, + ms300, ms400, ms500, ms1000} + } OPTIONAL, -- Need ON + reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON + measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON ]] } @@ -4152,6 +4961,13 @@ MeasSubframePatternConfigNeigh-r10 ::= CHOICE { MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12 + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 INTEGER (1..maxCellMeas), + physCellIdRange-r12 PhysCellIdRange +} + MeasObjectGERAN ::= SEQUENCE { carrierFreqs CarrierFreqsGERAN, @@ -4199,6 +5015,8 @@ MeasObjectUTRA ::= SEQUENCE { } OPTIONAL, -- Need ON ..., [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON + ]], + [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON ]] } @@ -4238,6 +5056,10 @@ MeasResults ::= SEQUENCE { ]], [[ locationInfo-r10 LocationInfo-r10 OPTIONAL, measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL + ]], + [[ measId-v1250 MeasId-v1250 OPTIONAL, + measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL ]] } @@ -4255,6 +5077,9 @@ MeasResultEUTRA ::= SEQUENCE { rsrqResult RSRQ-Range OPTIONAL, ..., [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL, + measResult-v1250 RSRQ-Range-v1250 OPTIONAL ]] } } @@ -4272,6 +5097,17 @@ MeasResultServFreq-r10 ::= SEQUENCE { rsrpResultNCell-r10 RSRP-Range, rsrqResultNCell-r10 RSRQ-Range } OPTIONAL, + ..., + [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL + ]] +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 CSI-RSRP-Range-r12, ... } @@ -4293,6 +5129,8 @@ MeasResultUTRA ::= SEQUENCE { utra-EcN0 INTEGER (0..49) OPTIONAL, ..., [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL + ]], + [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL ]] } } @@ -4342,6 +5180,9 @@ AdditionalSI-Info-r9 ::= SEQUENCE { } +MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2} + + QuantityConfig ::= SEQUENCE { quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON @@ -4349,6 +5190,8 @@ QuantityConfig ::= SEQUENCE { quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON ..., [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON + ]], + [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON ]] } @@ -4357,6 +5200,10 @@ QuantityConfigEUTRA ::= SEQUENCE { filterCoefficientRSRQ FilterCoefficient DEFAULT fc4 } +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR +} + QuantityConfigUTRA ::= SEQUENCE { measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0}, measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP}, @@ -4402,6 +5249,15 @@ ReportConfigEUTRA ::= SEQUENCE { eventA6-r10 SEQUENCE { a6-Offset-r10 INTEGER (-30..30), a6-ReportOnLeave-r10 BOOLEAN + }, + eventC1-r12 SEQUENCE { + c1-Threshold-r12 ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 BOOLEAN + }, + eventC2-r12 SEQUENCE { + c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12, + c2-Offset-r12 INTEGER (-30..30), + c2-ReportOnLeave-r12 BOOLEAN } }, hysteresis Hysteresis, @@ -4423,14 +5279,33 @@ ReportConfigEUTRA ::= SEQUENCE { ]], [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR + ]], + [[ alternativeTimeToTrigger-r12 CHOICE { + release NULL, + setup TimeToTrigger + } OPTIONAL, -- Need ON + useT312-r12 BOOLEAN OPTIONAL, -- Need ON + usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON + aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON + reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON + reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON + triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON ]] } +RSRQ-RangeConfig-r12 ::= CHOICE { + release NULL, + setup RSRQ-Range-v1250 +} + ThresholdEUTRA ::= CHOICE{ threshold-RSRP RSRP-Range, threshold-RSRQ RSRQ-Range } +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + ReportConfigId ::= INTEGER (1..maxReportConfigId) @@ -4475,6 +5350,11 @@ ReportConfigInterRAT ::= SEQUENCE { [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR ]], [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON + ]], + [[ b2-Threshold1-v1250 CHOICE { + release NULL, + setup RSRQ-Range-v1250 + } OPTIONAL -- Need ON ]] } @@ -4507,9 +5387,24 @@ ReportInterval ::= ENUMERATED { RSRP-Range ::= INTEGER(0..97) +RSRP-RangeSL-r12 ::= INTEGER(0..13) + +RSRP-RangeSL2-r12 ::= INTEGER(0..7) + +RSRP-RangeSL3-r12 ::= INTEGER(0..11) + RSRQ-Range ::= INTEGER(0..34) +RSRQ-Range-v1250 ::= INTEGER(-30..46) + + + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 BOOLEAN, + wideBand-r12 BOOLEAN +} + TimeToTrigger ::= ENUMERATED { ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, @@ -4703,7 +5598,12 @@ UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL, - --Following field is only to be used for late extensions from REL-10 + nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL, + -- Following field is only to be used for late REL-10 extensions nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -4765,6 +5665,38 @@ UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL, ue-Category-v1170 INTEGER (9..10) OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 INTEGER (11..12) OPTIONAL, + measParameters-v11a0 MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 SL-Parameters-r12 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -4796,10 +5728,33 @@ UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { ... } +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 MBMS-Parameters-r11 +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 MeasParameters-v1250 OPTIONAL +} + AccessStratumRelease ::= ENUMERATED { - rel8, rel9, rel10, rel11, spare4, spare3, + rel8, rel9, rel10, rel11, rel12, spare3, spare2, spare1, ...} +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL, + drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL, + longDRX-Command-r12 ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 ENUMERATED {supported} +} + PDCP-Parameters ::= SEQUENCE { supportedROHC-Profiles SEQUENCE { profile0x0001 BOOLEAN, @@ -4863,6 +5818,21 @@ PhyLayerParameters-v1170 ::= SEQUENCE { interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL } +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL, + enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL, + pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL, + noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL, + discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL, + naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL +} + + NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10 NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { @@ -4889,10 +5859,27 @@ RF-Parameters-v1090 ::= SEQUENCE { supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL } +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL +} + RF-Parameters-v1130 ::= SEQUENCE { supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL } +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL, + requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL, + supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL +} + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL, + freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL +} + SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10 SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10 @@ -4901,6 +5888,12 @@ SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandC SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130 +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250 + BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 BandCombinationParametersExt-r10 ::= SEQUENCE { @@ -4916,6 +5909,31 @@ BandCombinationParameters-v1130 ::= SEQUENCE { ... } +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-r11, + supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL, + bandInfoEUTRA-r11 BandInfoEUTRA, + ... +} + +BandCombinationParameters-v1250::= SEQUENCE { + dc-Support-r12 SEQUENCE { + asynchronous-r12 ENUMERATED {supported} OPTIONAL, + supportedCellGrouping-r12 CHOICE { + threeEntries-r12 BIT STRING (SIZE(3)), + fourEntries-r12 BIT STRING (SIZE(7)), + fiveEntries-r12 BIT STRING (SIZE(15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL, + ... +} + + SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) BandParameters-r10 ::= SEQUENCE { @@ -4933,6 +5951,13 @@ BandParameters-v1130 ::= SEQUENCE { supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} } +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 FreqBandIndicator-r11, + bandParametersUL-r11 BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL +} + BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 CA-MIMO-ParametersUL-r10 ::= SEQUENCE { @@ -4957,6 +5982,8 @@ SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250 + SupportedBandEUTRA ::= SEQUENCE { bandEUTRA FreqBandIndicator, halfDuplex BOOLEAN @@ -4966,6 +5993,11 @@ SupportedBandEUTRA-v9e0 ::= SEQUENCE { bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL } +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 ENUMERATED {supported} OPTIONAL, + ul-64QAM-r12 ENUMERATED {supported} OPTIONAL +} + MeasParameters ::= SEQUENCE { bandListEUTRA BandListEUTRA } @@ -4978,6 +6010,22 @@ MeasParameters-v1130 ::= SEQUENCE { rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL } +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 ENUMERATED {supported} OPTIONAL, + alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL, + incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL, + incMonUTRA-r12 ENUMERATED {supported} OPTIONAL, + extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL, + extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL, + rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL, + crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL +} + BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA @@ -5132,6 +6180,10 @@ UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL } +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 ENUMERATED {supported} +} + OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { otdoa-UE-Assisted-r10 ENUMERATED {supported}, interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL @@ -5143,6 +6195,56 @@ Other-Parameters-r11 ::= SEQUENCE { ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL } +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 ENUMERATED {supported} OPTIONAL, + mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL, + wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12 + + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 INTEGER(1..5), + numberOfAggregatedPRB-r12 ENUMERATED { + n50, n75, n100, n125, n150, n175, + n200, n225, n250, n275, n300, n350, + n400, n450, n500, spare}, + ... +} + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL, + commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL, + disc-SLSS-r12 ENUMERATED {supported} OPTIONAL, + discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL +} + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 ENUMERATED {supported} OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 INTEGER (0) OPTIONAL, + ... +} + UE-TimersAndConstants ::= SEQUENCE { t300 ENUMERATED { @@ -5164,6 +6266,70 @@ UE-TimersAndConstants ::= SEQUENCE { } +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 CHOICE { + cellGlobalId-r12 CellGlobalIdEUTRA, + pci-arfcn-r12 SEQUENCE { + physCellId-r12 PhysCellId, + carrierFreq-r12 ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 INTEGER (0..4095), + ... +} + + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 SEQUENCE { + thresholdRSRP-Low-r12 RSRP-Range, + thresholdRSRP-High-r12 RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 SEQUENCE { + thresholdRSRQ-Low-r12 RSRQ-Range, + thresholdRSRQ-High-r12 RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 SEQUENCE { + thresholdRSRQ-WB-Low-r12 RSRQ-Range, + thresholdRSRQ-WB-High-r12 RSRQ-Range + } OPTIONAL, -- Need OP + + thresholdChannelUtilization-r12 SEQUENCE { + thresholdChannelUtilizationLow-r12 INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdBeaconRSSI-r12 SEQUENCE { + thresholdBeaconRSSI-Low-r12 INTEGER (0..255), + thresholdBeaconRSSI-High-r12 INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR + ... +} + +WLAN-backhaulRate-r12 ::= ENUMERATED + {r0, r4, r8, r16, r32, r64, r128, r256, r512, + r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072, + r262144, r524288, r1048576, r2097152, r4194304, r8388608, + r16777216, r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296} + + MBMS-NotificationConfig-r9 ::= SEQUENCE { notificationRepetitionCoeff-r9 ENUMERATED {n2, n4}, notificationOffset-r9 INTEGER (0..10), @@ -5171,10 +6337,13 @@ MBMS-NotificationConfig-r9 ::= SEQUENCE { } +MBSFN-AreaId-r12 ::= INTEGER (0..255) + + MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 MBSFN-AreaInfo-r9 ::= SEQUENCE { - mbsfn-AreaId-r9 INTEGER (0..255), + mbsfn-AreaId-r9 MBSFN-AreaId-r12, non-MBSFNregionLength ENUMERATED {s1, s2}, notificationIndicator-r9 INTEGER (0..7), mcch-Config-r9 SEQUENCE { @@ -5199,12 +6368,20 @@ MBSFN-SubframeConfig ::= SEQUENCE { PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + PMCH-Info-r9 ::= SEQUENCE { pmch-Config-r9 PMCH-Config-r9, mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9, ... } +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 PMCH-Config-r12, + mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9, + ... +} + MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 MBMS-SessionInfo-r9 ::= SEQUENCE { @@ -5222,6 +6399,17 @@ PMCH-Config-r9 ::= SEQUENCE { ... } +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 INTEGER (0..1535), + dataMCS-r12 CHOICE { + normal-r12 INTEGER (0..28), + higerOrder-r12 INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 ENUMERATED { + rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024}, + ... +} + TMGI-r9 ::= SEQUENCE { plmn-Id-r9 CHOICE { plmn-Index-r9 INTEGER (1..maxPLMN-r11), @@ -5231,7 +6419,234 @@ TMGI-r9 ::= SEQUENCE { } + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + sl-RNTI-r12 C-RNTI, + mac-MainConfig-r12 MAC-MainConfigSL-r12, + commTxConfig-r12 SL-CommResourcePool-r12, + mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 SEQUENCE { + -- Pool for normal usage + commTxPoolNormalDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, -- Need ON + ... +} + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12 + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-CommResourcePool-r12 +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL RetxBSR-Timer-r12 +} + + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 SL-CP-Len-r12, + sc-Period-r12 SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + data-CP-Len-r12 SL-CP-Len-r12, + dataHoppingConfig-r12 SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 SEQUENCE { + sc-TxParameters-r12 SL-TxParameters-r12, + dataTxParameters-r12 SL-TxParameters-r12 + } OPTIONAL, -- Cond Tx + ... +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + + +SL-CP-Len-r12 ::= ENUMERATED {normal, extended} + + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 CHOICE { + release NULL, + setup CHOICE { + scheduled-r12 SEQUENCE { + discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 SL-HoppingConfigDisc-r12 + OPTIONAL -- Need ON + }, + ue-Selected-r12 SEQUENCE { + discTxPoolDedicated-r12 SEQUENCE { + poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, -- Need ON + ... +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 SL-TxPoolIdentity-r12, + pool-r12 SL-DiscResourcePool-r12 +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON + discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON +} + + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 SL-CP-Len-r12, + discPeriod-r12 ENUMERATED {rf32, rf64, rf128, + rf256, rf512, rf1024, spare2, spare}, + numRetx-r12 INTEGER (0..3), + numRepetition-r12 INTEGER (1..50), + tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12, + txParameters-r12 SEQUENCE { + txParametersGeneral-r12 SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 SEQUENCE { + poolSelection-r12 CHOICE { + rsrpBased-r12 SL-PoolSelectionConfig-r12, + random-r12 NULL + }, + txProbability-r12 ENUMERATED {p25, p50, p75, p100} + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 SEQUENCE { + tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 INTEGER (0..15) + } OPTIONAL, -- Need OR + ... +} + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 RSRP-RangeSL2-r12, + threshHigh-r12 RSRP-RangeSL2-r12 +} + + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 P-Max, + ... +} + + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 INTEGER (0..504), + numSubbands-r12 ENUMERATED {ns1, ns2, ns4}, + rb-Offset-r12 INTEGER (0..110) +} + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 INTEGER (1..200), + b-r12 INTEGER (1..10), + c-r12 ENUMERATED {n1, n5} +} + + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 INTEGER (0..319), + large-r12 INTEGER (0..10239) +} + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + + +SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, + sf160, sf240, sf280, sf320, spare6, spare5, + spare4, spare3, spare2, spare} + + +SLSSID-r12 ::= INTEGER (0..167) + + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 SL-CP-Len-r12, + syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12, + slssid-r12 SLSSID-r12, + txParameters-r12 SEQUENCE { + syncTxParameters-r12 SL-TxParameters-r12, + syncTxThreshIC-r12 RSRP-RangeSL-r12, + syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 SEQUENCE { + physCellId-r12 PhysCellId, + discSyncWindow-r12 ENUMERATED {w1, w2} + } OPTIONAL, -- Need OR + ... +} + + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 INTEGER (1..100), + prb-Start-r12 INTEGER (0..99), + prb-End-r12 INTEGER (0..99), + offsetIndicator-r12 SL-OffsetIndicator-r12, + subframeBitmap-r12 SubframeBitmapSL-r12 +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 BIT STRING (SIZE (4)), + bs8-r12 BIT STRING (SIZE (8)), + bs12-r12 BIT STRING (SIZE (12)), + bs16-r12 BIT STRING (SIZE (16)), + bs30-r12 BIT STRING (SIZE (30)), + bs40-r12 BIT STRING (SIZE (40)), + bs42-r12 BIT STRING (SIZE (42)) +} + + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 Alpha-r12, + p0-r12 P0-SL-r12 +} + +P0-SL-r12 ::= INTEGER (-126..31) + + +SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12) + + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + + maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations. +maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations. maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per @@ -5239,6 +6654,7 @@ maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combinati maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity -- ranges listed in SIB type 4 and 5 +maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in- -- formation can be provided as redirection assistance maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system @@ -5246,6 +6662,8 @@ maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which sy -- assistance maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations -- (per carrier frequency) +maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations + -- (per carrier frequency) maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI RS processes (per carrier -- frequency) maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource @@ -5266,8 +6684,14 @@ maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the -- cell lists in a measurement object -maxCellReport INTEGER ::= 8 -- Maximum number of reported cells +maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources +maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list + -- in a measurement object maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers +maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals + -- occasion +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for + -- a serving cell concerning discovery signals maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range @@ -5290,9 +6714,16 @@ maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations maxMBSFN-Area INTEGER ::= 8 maxMBSFN-Area-1 INTEGER ::= 7 maxMeasId INTEGER ::= 32 +maxMeasId-Plus1 INTEGER ::= 33 +maxMeasId-r12 INTEGER ::= 64 maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands -- that a cell belongs to -maxObjectId INTEGER ::= 32 +maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s) +maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS + -- configuration (per carrier frequency) +maxObjectId INTEGER ::= 32 +maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell + -- in NAICS configuration maxPageRec INTEGER ::= 16 -- maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs @@ -5307,6 +6738,13 @@ maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities -- broadcast per carrier frequency maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells +maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations +maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes +maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools +maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations +maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index + -- pairs +maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included @@ -5323,6 +6761,7 @@ maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservatio -- E-UTRAN for use. maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies +maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers END diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn similarity index 81% rename from LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn index 5be3edb..b766ead 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Defs/EUTRA_SecurityDefinitionsAndExternalFunctions.ttcn @@ -2,29 +2,25 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ -// $Rev: 9858 $ +// @version: IWD_15wk38 +// $Date: 2015-04-04 21:51:59 +0200 (Sat, 04 Apr 2015) $ +// $Rev: 13333 $ /******************************************************************************/ module EUTRA_SecurityDefinitionsAndExternalFunctions { import from CommonDefs all; + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_CommonDefs all; - import from EPS_NAS_TypeDefs all; const integer tsc_DirectionUL := 0; /* acc. to 33.401 B.1.1 and B.2.1 @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ const integer tsc_DirectionDL := 1; /* acc. to 33.401 B.1.1 and B.2.1 @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ type integer MAC_Direction_Type (tsc_DirectionDL, tsc_DirectionUL); /* direction bit for calculation of MAC acc. to 24.301 cl. 9.5 @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - const integer tsc_KDF_HMAC_SHA_256 := 1; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ const integer tsc_KDF_Spare1 := 2; const integer tsc_KDF_Spare2 := 3; - const integer tsc_KDF_Spare3 := 4; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - - type integer KDF_Type ( tsc_KDF_HMAC_SHA_256 .. tsc_KDF_Spare3 ); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //============================================================================ /* @@ -41,15 +37,6 @@ module EUTRA_SecurityDefinitionsAndExternalFunctions { }; //============================================================================ - - external function fx_KeyDerivationFunction(KDF_Type p_KDF, - B256_Type p_Key, - octetstring p_String) return B256_Type; - /* External function to hashing function with algorithm as defined in 33.401; - SHA-256 encoding algorithm used as KEY Description Function - @status APPROVED (LTE) */ - - //---------------------------------------------------------------------------- external function fx_NasIntegrityAlgorithm(octetstring p_EncodedNasPdu, B3_Type p_IntegrityAlgorithm, B128_Key_Type p_KNASint, @@ -82,14 +69,14 @@ module EUTRA_SecurityDefinitionsAndExternalFunctions { see TS 36.323 clause 5.7 */ external function fx_AsCiphering(octetstring p_EncodedSdu, - CipheringAlgorithm_Type p_CipheringAlgorithm, + CipheringAlgorithm_r12 p_CipheringAlgorithm, B128_Key_Type p_Key, O4_Type p_PdcpCount, B5_Type p_BearerId) return octetstring; /* @sic R5-101050: BearerId changed to 5 bits sic@ see TS 36.323 clause 5.6 */ external function fx_AsDeciphering(octetstring p_CipheredSdu, - CipheringAlgorithm_Type p_CipheringAlgorithm, + CipheringAlgorithm_r12 p_CipheringAlgorithm, B128_Key_Type p_Key, O4_Type p_PdcpCount, B5_Type p_BearerId) return octetstring; /* @sic R5-101050: BearerId changed to 5 bits sic@ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn index c08d75a..782460b 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_L2/EUTRA_PdcpScurityProcedure.ttcn @@ -2,15 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-04-19 21:03:02 +0200 (Sun, 19 Apr 2015) $ +// $Rev: 13411 $ /******************************************************************************/ module EUTRA_PdcpScurityProcedure { + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_CellInfo all; import from EUTRA_CommonProcedures all; import from EUTRA_LoopBack all; @@ -45,8 +46,8 @@ module EUTRA_PdcpScurityProcedure { * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_PdcpScurityProcedure_EncryptionAS(EUTRA_CellId_Type p_CellId, - CipheringAlgorithm_Type p_AS_CipheringAlgorithm) runs on EUTRA_PTC - { + CipheringAlgorithm_r12 p_AS_CipheringAlgorithm) runs on EUTRA_PTC + { /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ /////////////////////////////////////////////////////////////////////////////////// // PREAMBLE ////////////////////////////////////////////////////////////////////////////////// @@ -84,8 +85,8 @@ module EUTRA_PdcpScurityProcedure { * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_PdcpScurityProcedure_EncryptionUP(EUTRA_CellId_Type p_CellId, - CipheringAlgorithm_Type p_AS_CipheringAlgorithm)runs on EUTRA_PTC - { + CipheringAlgorithm_r12 p_AS_CipheringAlgorithm)runs on EUTRA_PTC + { /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ timer t_WaitTimer := 5.0; /////////////////////////////////////////////////////////////////////////////////// // PREAMBLE @@ -192,7 +193,6 @@ module EUTRA_PdcpScurityProcedure { cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue))); - //@siclog "Step 5-7" siclog@ v_AuthParams := f_EUTRA_Authentication_InitAS(v_AuthParams, v_NasInd.SecurityProtection.NasCount); v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasInd.SecurityProtection.NasCount); @@ -262,8 +262,8 @@ module EUTRA_PdcpScurityProcedure { // Reconfiguration of SRB0 is not needed because TM mode RLC, // DRB is not needed as no data sent or received hence seqence numbers are intact. - f_EUTRA_SS_SRBs_DRBs_Release(p_CellId,cs_TimingInfo(v_Timing3.SFN.Number, v_Timing3.Subframe.Number));//@sic R5s110602 sic@ - f_EUTRA_SS_SRBs_DRBs_Config(p_CellId,cs_TimingInfo(v_Timing4.SFN.Number, v_Timing4.Subframe.Number));//@sic R5s110602 sic@ + f_EUTRA_SS_SRBs_DRBs_Release(p_CellId, cs_TimingInfo(v_Timing3.SFN.Number, v_Timing3.Subframe.Number));//@sic R5s110602 sic@ + f_EUTRA_SS_SRBs_DRBs_Config(p_CellId, cs_TimingInfo(v_Timing4.SFN.Number, v_Timing4.Subframe.Number));//@sic R5s110602 sic@ //@siclog "Step 19" siclog@ SRB.receive(car_SRB0_RrcPdu_IND(p_CellId, cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, @@ -271,8 +271,6 @@ module EUTRA_PdcpScurityProcedure { cr_ReestablishmentCause_OtherFailure, v_ShortMAC_I))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, " Step 19, TP 3"); - //Reset SRB SRB's and DRB of source cell (cell 1) - //f_EUTRA_SS_SRBs_DRBs_Reset(p_CellId); // Activate RRC security at SS target cell (Cell1) for SRB 1, 2 and 1 AM DRB v_AuthParams := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(p_CellId, f_EUTRA_Security_Get(), 0); diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_L2/L2_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_L2/L2_CommonFunctions.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/Common/EUTRA_L2/L2_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_L2/L2_CommonFunctions.ttcn index 97cdbb7..7a2d8d8 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_L2/L2_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_L2/L2_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-09 21:19:23 +0200 (Sat, 09 Aug 2014) $ -// $Rev: 11868 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 11:05:29 +0200 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module L2_CommonFunctions { @@ -23,7 +23,6 @@ module L2_CommonFunctions { import from L2_CommonTemplates all; import from EUTRA_ConfigurationSteps all; import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; - import from EUTRA_CommonProcedures all; import from EPS_NAS_Templates all; import from EUTRA_NASSteps all; import from EUTRA_LoopBack_TypeDefs all; @@ -318,7 +317,7 @@ module L2_CommonFunctions { * @desc Function to stop UL Grant transmision and not maintain PUCCH synchronisation * @param p_CellId * @param p_TimingInfo - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_StopULGrantTransmission_No_PUCCH_Sync(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo) runs on EUTRA_PTC @@ -473,48 +472,40 @@ module L2_CommonFunctions { f_EUTRA_SS_CommonL1MacIndCtrlConfig(p_CellId, cas_UL_HARQ_IndConfig_REQ (p_CellId, p_UL_HARQ_Mode, p_TimingInfo, p_CnfFlag)); //@sic R5s120024 sic@) } - - }// end of group L1_MAC_Ind_Functions - - group Generic_L2_RRC_ReconfigSteps { - - //***************************************************************************************************/ /* - * @desc This function is same as f_EUTRA_GenericRbEst except for no_periodic_BSR_or_PHR branch of table - * Table 4.8.2.1.5-1 (@sic result of R5-096458 sic@) + * @desc Altstep to receive any BSR or Scheduling Request * @param p_CellId - * @param p_NoOfAddDRBs_AM - * @param p_NoOfAddDRBs_UM - * @param p_QoS - * @param p_Tft - * @param p_PDCP_StatusReportRequired (default value: true) - * @status APPROVED (LTE, LTE_A) + * @status APPROVED (LTE) */ - function fl_EUTRA_GenericRbEst_DisableBSR_PHR(EUTRA_CellId_Type p_CellId, - integer p_NoOfAddDRBs_AM, - integer p_NoOfAddDRBs_UM, - template (omit) EPS_QoSList_Type p_QoS, - template (omit) Tft_List_Type p_Tft, - boolean p_PDCP_StatusReportRequired := true) runs on EUTRA_PTC + altstep a_EUTRA_MAC_SchedulingReq_BSR(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC { - var template (omit) DRB_ToAddModList v_DRB_ToAddModList := omit; // => apply default setiing acc. 36.508 cl. 4.8.2.1.7 */ - var template (value) MAC_MainConfig_Type v_MAC_MainConfig ; - var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := omit; // => apply default setting acc. 36.508 cl. 4.8.2.1.6 */ - if (p_NoOfAddDRBs_UM > 0) { - v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS_DisableBSR_PHR; // short DRX cycle acc. to note in 36.508 table 4.6.3-16 - } else { - v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxL_DisableBSR_PHR; // long DRX cycle acc. to note in 36.508 table 4.6.3-16 + [] SYSIND.receive(car_SchedulingReq_IND (p_CellId, ?)) + { + repeat; + } + [] SYSIND.receive (car_BSR_IND (p_CellId, ?,?)) + { + repeat; } - f_EUTRA_GenericRbEst_Common(p_CellId, - p_NoOfAddDRBs_AM, - p_NoOfAddDRBs_UM, - v_DRB_ToAddModList, - v_MAC_MainConfig, - v_PhysicalConfigDedicated, - p_QoS, - p_Tft, - p_PDCP_StatusReportRequired); } + + /* + * @desc Altstep to receive and discard scheduling requests + * @param p_CellId + * @status APPROVED (LTE) + */ + altstep a_EUTRA_MAC_SchedulingReq(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + [] SYSIND.receive(car_SchedulingReq_IND (p_CellId, ?)) + { + repeat; + } + + } + + }// end of group L1_MAC_Ind_Functions + + group Generic_L2_RRC_ReconfigSteps { /***************************************************************************************************/ /* @@ -527,7 +518,7 @@ module L2_CommonFunctions { function f_EUTRA_RbEst_Def_DisableBSR_PHR(EUTRA_CellId_Type p_CellId, boolean p_PDCP_StatusReportRequired := true) runs on EUTRA_PTC { - fl_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 0, 0, omit, omit, p_PDCP_StatusReportRequired); + f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 0, 0, -, -, -, -, -, -, p_PDCP_StatusReportRequired); /* @sic R5s150338 sic@ */ } ///***************************************************************************************************/ @@ -535,13 +526,16 @@ module L2_CommonFunctions { * @desc This function is same as f_EUTRA_RbEst_508_UM except for no_periodic_BSR_or_PHR branch * of table Table 4.8.2.1.5-1 (@sic result of R5-096458 sic@) * @param p_CellId + * @param p_DrbConfigAtSS (default value: tsc_DRB_ConfigurationAtSS_Default) * @status APPROVED (LTE) */ - function f_EUTRA_RbEst_508_UM_DisableBSR_PHR(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + function f_EUTRA_RbEst_508_UM_DisableBSR_PHR(EUTRA_CellId_Type p_CellId, + template (value) DRB_ConfigurationAtSS_Type p_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default) runs on EUTRA_PTC { /* additional UM bearer will be established */ + /* @sic R5s150338: parameter p_DrbConfigAtSS sic@ */ var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1)}; - fl_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 0, 1, v_Qos_List, v_Tft_List); + f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 0, 1, p_DrbConfigAtSS, -, -, -, v_Qos_List, v_Tft_List); } /***************************************************************************************************/ @@ -562,25 +556,26 @@ module L2_CommonFunctions { //---------------------------------------------------------------------------- /* * @desc To move to state 4 as required for test case 7.1.3.4 + * @param p_CellId + * @param p_Dsr_TransMax * @param p_PDCP_StatusReportRequired (default value: true) - * @param p_DRB_ToAddModList (default value: omit) - * @param p_CellId (default value: eutra_Cell1) - * @param p_Dsr_TransMax (default value: n64) * @status APPROVED (LTE_A) */ - function f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(boolean p_PDCP_StatusReportRequired := true , - template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit,//@sic R5s100852 p_PDCP_StatusReportRequired added sic@ - EUTRA_CellId_Type p_CellId :=eutra_Cell1, - Dsr_TransMax_Type p_Dsr_TransMax := n64) //@sic CA test Development) + function f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(EUTRA_CellId_Type p_CellId, + Dsr_TransMax_Type p_Dsr_TransMax, + boolean p_PDCP_StatusReportRequired := true) runs on EUTRA_PTC - { //@sic R5-101183 R5s110576 sic@ + { // @sic R5-101183 R5s110576 sic@ + // @sic R5s150338: re-odering of parameters sic@ var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cs_MAC_MainConfig_Explicit_DisableBSR_TA_Infinity; // time alignment timer is infinity var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := f_PhysicalConfigDedicated_Dsr_TransMax(p_CellId, p_Dsr_TransMax); - var template (omit) DRB_ToAddModList v_DRB_ToAddModList:= p_DRB_ToAddModList; - + var template (omit) DRB_ToAddModList v_DRB_ToAddModList:= omit; + var DRB_ConfigurationAtSS_Type v_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default; /* @sic R5s150338 sic@ */ + f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 0, 0, + v_DrbConfigAtSS, v_DRB_ToAddModList, v_MAC_MainConfig, v_PhysicalConfigDedicated, @@ -594,7 +589,7 @@ module L2_CommonFunctions { * @desc To move to state 4 as required for test case 7.1.3.4 * @param p_PDCP_StatusReportRequired (default value: true) * @param p_DRB_ToAddModList (default value: omit) - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling(boolean p_PDCP_StatusReportRequired := true , template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit) //@sic R5s100852 p_PDCP_StatusReportRequired added sic@ @@ -607,6 +602,7 @@ module L2_CommonFunctions { f_EUTRA_GenericRbEst_DisableBSR_PHR(eutra_Cell1, 0, 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ v_DRB_ToAddModList, v_MAC_MainConfig, v_PhysicalConfigDedicated, @@ -632,6 +628,7 @@ module L2_CommonFunctions { f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 0, 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ v_DRB_ToAddModList, v_MAC_MainConfig, v_PhysicalConfigDedicated, @@ -647,14 +644,14 @@ module L2_CommonFunctions { * @param p_CellId (default value: eutra_Cell1) * @status APPROVED (LTE) */ - function f_EUTRA_LoopBackActivation_State4_7148(EUTRA_CellId_Type p_CellId :=eutra_Cell1) runs on EUTRA_PTC + function f_EUTRA_LoopBackActivation_State4_7148(EUTRA_CellId_Type p_CellId := eutra_Cell1) runs on EUTRA_PTC { /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! to be renamed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cds_MAC_MainConfig_Explicit_PeriodicBSR_Timer(sf10); var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := omit; - var template (omit) DRB_ToAddModList v_DRB_ToAddModList:= omit; + var template (omit) DRB_ToAddModList v_DRB_ToAddModList := omit; v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_Common(tsc_DRB1, cs_508_PDCP_Config_DRB_AM, cs_508_RLC_Config_DRB_AM, @@ -667,6 +664,7 @@ module L2_CommonFunctions { f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, 1, 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ v_DRB_ToAddModList, v_MAC_MainConfig, v_PhysicalConfigDedicated, @@ -680,35 +678,37 @@ module L2_CommonFunctions { * @desc Genric function to establsih SRB2 and DRB's but with special L2 option to disable BSR and PHR * according to the condition no_periodic_BSR_or_PHR as specified in TS 36.508 subclause 4.8.2.1.5 * @param p_CellId - * @param p_NoOfAddDRBs_AM - * @param p_NoOfAddDRBs_UM - * @param p_DRB_ToAddModList - * @param p_MAC_MainConfig - * @param p_PhysicalConfigDedicated - * @param p_QoS - * @param p_Tft + * @param p_NoOfAddDRBs_AM (default value: 0) + * @param p_NoOfAddDRBs_UM (default value: 0) + * @param p_DrbConfigAtSS (default value: tsc_DRB_ConfigurationAtSS_Default) + * @param p_DRB_ToAddModList (default value: omit) + * @param p_MAC_MainConfig (default value: omit) + * @param p_PhysicalConfigDedicated (default value: omit) + * @param p_QoS (default value: omit) + * @param p_Tft (default value: omit) * @param p_PDCP_StatusReportRequired (default value: true) * @param p_DownlinkAntennaGroupConfig (default value: omit) * @status APPROVED (LTE, LTE_A) */ function f_EUTRA_GenericRbEst_DisableBSR_PHR(EUTRA_CellId_Type p_CellId, - integer p_NoOfAddDRBs_AM, - integer p_NoOfAddDRBs_UM, - template (omit) DRB_ToAddModList p_DRB_ToAddModList, - template (omit) MAC_MainConfig_Type p_MAC_MainConfig, - template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated, - template (omit) EPS_QoSList_Type p_QoS, - template (omit) Tft_List_Type p_Tft, + integer p_NoOfAddDRBs_AM := 0, + integer p_NoOfAddDRBs_UM := 0, + template (value) DRB_ConfigurationAtSS_Type p_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default, + template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit, + template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, + template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit, + template (omit) EPS_QoSList_Type p_QoS := omit, + template (omit) Tft_List_Type p_Tft := omit, boolean p_PDCP_StatusReportRequired := true, //@sic R5s100852 p_PDCP_StatusReportRequired added sic@ template (omit) DownlinkAntennaGroupConfig_Type p_DownlinkAntennaGroupConfig := omit) runs on EUTRA_PTC - { - var template (value) MAC_MainConfig_Type v_MAC_MainConfig ; + { /* @sic R5s150338: new parameter p_DrbConfigAtSS; default values sic@ */ + var template (value) MAC_MainConfig_Type v_MAC_MainConfig; if (isvalue(p_MAC_MainConfig)) { v_MAC_MainConfig := valueof(p_MAC_MainConfig); } else { if (p_NoOfAddDRBs_UM > 0) { - v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS_DisableBSR_PHR; // short DRX cycle acc. to note in 36.508 table 4.6.3-16 + v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxS_DisableBSR_PHR; // short DRX cycle acc. to note in 36.508 table 4.6.3-16 } else { v_MAC_MainConfig := cs_508_MAC_MainConfig_Explicit_RBC_DrxL_DisableBSR_PHR; // long DRX cycle acc. to note in 36.508 table 4.6.3-16 } @@ -716,6 +716,7 @@ module L2_CommonFunctions { f_EUTRA_GenericRbEst_Common(p_CellId, p_NoOfAddDRBs_AM, p_NoOfAddDRBs_UM, + p_DrbConfigAtSS, /* @sic R5s150338 sic@ */ p_DRB_ToAddModList, v_MAC_MainConfig, p_PhysicalConfigDedicated, @@ -751,8 +752,8 @@ module L2_CommonFunctions { template (omit) Tft_List_Type p_Tft, boolean p_PDCP_StatusReportRequired := true) //@sic R5s100852 p_PDCP_StatusReportRequired added sic@ runs on EUTRA_PTC - {//@sic R5-110712 sic@ - var template (value) MAC_MainConfig_Type v_MAC_MainConfig ; + { // @sic R5-110712 sic@ + var template (value) MAC_MainConfig_Type v_MAC_MainConfig; if (isvalue(p_MAC_MainConfig)) { v_MAC_MainConfig := valueof(p_MAC_MainConfig); } else { @@ -765,6 +766,7 @@ module L2_CommonFunctions { f_EUTRA_GenericRbEst_Common(p_CellId, p_NoOfAddDRBs_AM, p_NoOfAddDRBs_UM, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ p_DRB_ToAddModList, v_MAC_MainConfig, p_PhysicalConfigDedicated, @@ -773,35 +775,10 @@ module L2_CommonFunctions { p_PDCP_StatusReportRequired); } - /* - * @desc Generic function to establish DRB(1,1) combination with parameterised DRB list, MAC and Physical config - * @param p_CellId - * @param p_DRB_ToAddModList - * @param p_MAC_MainConfig (default value: omit) - * @param p_PhysicalConfigDedicated (default value: omit) - * @status APPROVED (LTE) - */ - function f_EUTRA_GenericRbEst_WithRLC_UM_Params(EUTRA_CellId_Type p_CellId, - template (omit) DRB_ToAddModList p_DRB_ToAddModList, - template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, - template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit) runs on EUTRA_PTC - { - var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; - var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1)}; - - f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, - 0, - 1, - p_DRB_ToAddModList, - p_MAC_MainConfig, - p_PhysicalConfigDedicated, - v_Qos_List, - v_Tft_List); - } - /* * @desc Generic step to config DRB[1,1] combination with parameterised RLC MAC and physical * @param p_CellId + * @param p_DrbConfigAtSS (default value: tsc_DRB_ConfigurationAtSS_Default) * @param p_PDCP_Config * @param p_UL_UM_RLC * @param p_DL_UM_RLC @@ -811,31 +788,37 @@ module L2_CommonFunctions { * @status APPROVED (LTE) */ function f_EUTRA_GenericRbEst_UM_Params(EUTRA_CellId_Type p_CellId, + template (value) DRB_ConfigurationAtSS_Type p_DrbConfigAtSS := tsc_DRB_ConfigurationAtSS_Default, template (value) PDCP_Config p_PDCP_Config, template (value) UL_UM_RLC p_UL_UM_RLC, template (value) DL_UM_RLC p_DL_UM_RLC, template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit, boolean p_PDCP_StatusReportRequired := true) runs on EUTRA_PTC - { - var template (omit) DRB_ToAddModList v_DRB_ToAddModList:= omit; + { /* @sic R5s150338: new parameter p_DrbConfigAtSS sic@ */ + var template (value) EPS_QoSList_Type v_Qos_List := {cs_508_EPS_QoS_Dedicated_1}; + var template (value) Tft_List_Type v_Tft_List := {f_EUTRA_Get_508_TrafficFlowTemplate(1)}; + var template (omit) DRB_ToAddModList v_DRB_ToAddModList; - if(p_PDCP_StatusReportRequired) // @sic R5s110207 sic@ - { - v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_DEFAULT_AM (tsc_DRB1); - } - else - { - v_DRB_ToAddModList[0] := cs_DRB_ToAddMod_NoPDCP_StatusReport (tsc_DRB1); - } - v_DRB_ToAddModList[1] := cs_DRB_ToAddMod_RLC_UM (tsc_DRB2, - p_PDCP_Config, - p_UL_UM_RLC, - p_DL_UM_RLC); - f_EUTRA_GenericRbEst_WithRLC_UM_Params (p_CellId, - v_DRB_ToAddModList, - p_MAC_MainConfig, - p_PhysicalConfigDedicated); + if (p_PDCP_StatusReportRequired) { // @sic R5s110207 sic@ + v_DRB_ToAddModList[0] := cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1); + } + else { + v_DRB_ToAddModList[0] := cs_DRB_ToAddMod_NoPDCP_StatusReport(tsc_DRB1); + } + v_DRB_ToAddModList[1] := cs_DRB_ToAddMod_RLC_UM(tsc_DRB2, + p_PDCP_Config, + p_UL_UM_RLC, + p_DL_UM_RLC); + f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, + 0, + 1, + p_DrbConfigAtSS, // @sic R5s150338 sic@ + v_DRB_ToAddModList, + p_MAC_MainConfig, + p_PhysicalConfigDedicated, + v_Qos_List, + v_Tft_List); } } // end of group Generic_L2_RBSteps @@ -847,7 +830,7 @@ module L2_CommonFunctions { * @param p_CellId * @param p_TimingInfo * @param p_RA_PDCCH_Order - * @status APPROVED (LTE) + * @status APPROVED (LTE, LTE_A) */ function f_Send_PDCCH_Order(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo, @@ -866,17 +849,16 @@ module L2_CommonFunctions { */ function f_PhysicalConfigDedicated_Dsr_TransMax(EUTRA_CellId_Type p_CellId, Dsr_TransMax_Type p_Dsr_TransMax := n64) runs on EUTRA_PTC return template (value) PhysicalConfigDedicated - { + { /* @sic R5s150362 - Additional change: cs_508_PhysicalConfigDedicated_Default_RBC_HO instead of cs_PhysicalConfigDedicated_Default_RBC_Dsr_TransMax sic@ */ var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_CellId); var SR_PUCCH_ResourceIndex_Type v_Sr_PUCCH_ResourceIndex := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex(p_CellId); var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_CellId); var SR_ConfigIndex_Type v_SR_ConfigIndex := f_EUTRA_CellInfo_GetSR_ConfigIndex (p_CellId); - return cs_PhysicalConfigDedicated_Default_RBC_Dsr_TransMax(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, - v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, - v_AntennaInfo, - v_Sr_PUCCH_ResourceIndex, - v_SR_ConfigIndex, - p_Dsr_TransMax); + return cs_508_PhysicalConfigDedicated_Default_RBC_HO(-, + v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + v_AntennaInfo, + cs_508_SchedulingRequest_Config_Default(v_Sr_PUCCH_ResourceIndex, v_SR_ConfigIndex, p_Dsr_TransMax)); } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_L2/L2_CommonTemplates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_L2/L2_CommonTemplates.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/Common/EUTRA_L2/L2_CommonTemplates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_L2/L2_CommonTemplates.ttcn index 7a01477..084a51b 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_L2/L2_CommonTemplates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_L2/L2_CommonTemplates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-09 21:19:23 +0200 (Sat, 09 Aug 2014) $ -// $Rev: 11868 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 11:05:29 +0200 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module L2_CommonTemplates { @@ -64,6 +64,9 @@ module L2_CommonTemplates { * 36.322 clause 6.2.2.6 * @status APPROVED (LTE) */ + const integer tsc_LI11_Size := 11; /* @desc Length indicator size. Ref 3G TS 36.322 clause 6.2.2.5 + * @status APPROVED (LTE, LTE_A) */ + /***** PDCP: *****/ const B1_Type tsc_D_C_CtrlPDU := '0'B; /* @desc Value for D/C field within an PDCP Control PDU. * Ref 3G TS 36.323 clause 6.3.7 @@ -367,7 +370,7 @@ module L2_CommonTemplates { template (value) UL_GrantConfig_Type cs_UL_GrantConfig_NoOfGrants (integer p_Period, integer p_Number) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ Periodic := { Period := cs_ULGrant_Period_Duration(p_Period), NoOfRepetitions := cs_TransmissionRepetitionCyclic(p_Number) @@ -426,7 +429,30 @@ module L2_CommonTemplates { { /* @status APPROVED (LTE) */ t_PollRetransmit := p_T_PollRetransmit }; + + //============================================================================= + //Type Constraint + //serves to receive an LI 11 Length Indicator (UM or AM) + template (present) RLC_LengthIndicator_LI11_Type cr_LI11(integer p_LI, + B1_Type p_Extension := tsc_E_Data) := + { /* @sic R5s150329 - Rel-12 Baseline move sic@ */ + /* @status APPROVED (LTE, LTE_A) */ + Extension := p_Extension, + LengthIndicator := int2bit (p_LI, tsc_LI11_Size) + }; + //============================================================================= + //Type Constraint + //serves to receive FlexPart with 1 LI 11 Length Indicator (UM or AM) + template (present) RLC_PDU_Header_FlexPart_Type cr_FlexPart_1LI(integer p_LI) := + { /* @status APPROVED (LTE, LTE_A) */ + LengthIndicator := { // @sic R5s150329 - Rel-12 Baseline move sic@ + LI11 := { + cr_LI11 (p_LI) + } + }, + Padding := '????'B // @sic R5s100466 sic@ + }; } // end of group RLC_CommonTemplates @@ -783,26 +809,14 @@ module L2_CommonTemplates { TimeAlignmentTimer p_TimeAlignmentTimer := sf750, template (omit) MAC_MainConfig_v1020_Type p_MAC_MainConfig_v1020 := omit) := { /* @status APPROVED (LTE_A) */ - explicitValue := cds_MAC_MainConfig_Common_V1020(cs_UL_SCH_Config_DisableBSR, p_DRX_Config, p_TimeAlignmentTimer, cs_PHR_Config_Release, -, p_MAC_MainConfig_v1020) + explicitValue := cs_MAC_MainConfig_Common(cs_UL_SCH_Config_DisableBSR, p_DRX_Config, p_TimeAlignmentTimer, cs_PHR_Config_Release, -, p_MAC_MainConfig_v1020) }; template (value) MAC_MainConfig_Type cs_508_MAC_MainConfig_Explicit_RBC_DrxL_DisableBSR_PHR_V1020 (template (omit) MAC_MainConfig_v1020_Type p_MAC_MainConfig_v1020 := omit) := /* @status APPROVED (LTE_A) */ cs_MAC_MainConfig_Explicit_DisableBSR_ReleasePHR_V1020(f_GetUeDrxConfig(DRX_L), -, p_MAC_MainConfig_v1020); - template (value) MAC_MainConfig cds_MAC_MainConfig_Common_V1020(template (omit) UL_SCH_Config_Type p_UL_SCH_Config := cs_508_UL_SCH_Config, - template (omit) DRX_Config p_DRX_Config := omit, - TimeAlignmentTimer p_TimeAlignmentTimer := sf750, - template (omit) PHR_Config_Type p_PHR_Config := cs_508_PHR_Config_Setup, - template (omit) SR_ProhibitTimer_r9_Type p_SR_ProhibitTimer_r9 := omit, - template (omit) MAC_MainConfig_v1020_Type p_MAC_MainConfig_v1020 := omit) - modifies cs_MAC_MainConfig_Common := - { /* @status APPROVED (LTE_A) */ - - mac_MainConfig_v1020 := p_MAC_MainConfig_v1020 - }; - - template (value) MAC_MainConfig_Type cds_MAC_MainConfig_Explicit_PeriodicBSR_Timer (PeriodicBSR_Timer_Type p_PeriodicBSR_Timer) + template (value) MAC_MainConfig_Type cds_MAC_MainConfig_Explicit_PeriodicBSR_Timer(PeriodicBSR_Timer_r12 p_PeriodicBSR_Timer) modifies cs_508_MAC_MainConfig_Explicit_RBC_DrxL_DisableBSR_PHR := { /* @status APPROVED (LTE) */ explicitValue := { @@ -817,20 +831,6 @@ module L2_CommonTemplates { } // end of group Generic_L2_RRC_ReconfigTemplates - template (value) PhysicalConfigDedicated cs_PhysicalConfigDedicated_Default_RBC_Dsr_TransMax(template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, - template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, - template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, - SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, - SR_ConfigIndex_Type p_SR_ConfigIndex, - Dsr_TransMax_Type p_Dsr_TransMax := n64) := - /* @status APPROVED (LTE, LTE_A) */ - /* @sic R5-102177 R5-104798 R5s100473: additional changes sic@ */ - /* @sic R5s120663 change 6: cs_508_PhysicalConfigDedicated_Default_RBC_HO sic@ */ - cs_508_PhysicalConfigDedicated_Default_RBC_HO(-, - p_CQI_ReportingPeriodic, - p_SoundingRsUl_ConfigDedicated, - p_AntennaInfo, - cs_508_SchedulingRequest_Config_Default (p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex, p_Dsr_TransMax)); template (value) PDCP_Config cds_508_PDCP_Config_DRB_AM_NoStatusRep modifies cs_508_PDCP_Config_DRB_AM:= { /* Default values according to 36.508 cl. 4.8.2.1.2.2 Table 4.8.2.1.2.2-1 @@ -893,6 +893,12 @@ module L2_CommonTemplates { } }; + template (present) SYSTEM_IND car_HarqError_IND(EUTRA_CellId_Type p_CellId) := + { /* @status APPROVED (LTE, LTE_A) */ + Common := cr_IndAspCommonPart_SysInd (p_CellId, ?), + Indication := { + HarqError := ? + } + }; - -} // module +} diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_L2/MAC_Common.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_L2/MAC_Common.ttcn similarity index 50% rename from LTE_A_IWD_14wk37/Common/EUTRA_L2/MAC_Common.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_L2/MAC_Common.ttcn index 16f85b1..af05cd7 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_L2/MAC_Common.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_L2/MAC_Common.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 15:40:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14405 $ /******************************************************************************/ module MAC_Common { @@ -23,6 +23,12 @@ module MAC_Common { import from EUTRA_ConfigurationSteps all; import from L2_CommonTemplates all; import from L2_CommonFunctions all; + import from EUTRA_SRB_Templates all; + import from Parameters all; + import from EUTRA_CellInfo all; + import from EUTRA_NASSteps all; + import from EUTRA_LoopBack all; + import from EUTRA_LoopBack_TypeDefs all; const integer tsc_SubframeOffset0 := 0; /* @status APPROVED (LTE, LTE_A) */ @@ -48,6 +54,12 @@ module MAC_Common { const B12_Type tsc_B12_SQN6 := int2bit(6,12); /* @status APPROVED (LTE) */ const B12_Type tsc_B12_SQN7 := int2bit(7,12); /* @status APPROVED (LTE) */ const B12_Type tsc_B12_SQN8 := int2bit(8,12); /* @status APPROVED (LTE) */ + const B12_Type tsc_B12_SQN9 := int2bit(9,12); + const B12_Type tsc_B12_SQN10 := int2bit(10,12); + const B12_Type tsc_B12_SQN11 := int2bit(11,12); + const B12_Type tsc_B12_SQN12 := int2bit(12,12); + const B12_Type tsc_B12_SQN13 := int2bit(13,12); + const B12_Type tsc_B12_SQN14 := int2bit(14,12); const B5_Type tsc_LchId_Padding := '11111'B; /* @status APPROVED (LTE, LTE_A) */ const B5_Type tsc_LchId_ScellActDeact := '11011'B; /* @status APPROVED (LTE_A) */ const B5_Type tsc_LchId_DRB2 := '00100'B; /* @status APPROVED (LTE) */ @@ -63,7 +75,7 @@ module MAC_Common { template (value) PDCP_SDU_Type crs_PDCP_SDU_12B := f_GetN_OctetsFromPRBS(100,12); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_12B1 := f_GetN_OctetsFromPRBS(200,12); /* @status APPROVED (LTE) */ - template (value) PDCP_SDU_Type crs_PDCP_SDU_13B := f_GetN_OctetsFromPRBS(100,13); + template (value) PDCP_SDU_Type crs_PDCP_SDU_13B := f_GetN_OctetsFromPRBS(100,13); /* @status APPROVED (LTE_A) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_4B := f_GetN_OctetsFromPRBS(120,4); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_6B := f_GetN_OctetsFromPRBS(40,6); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_5B := f_GetN_OctetsFromPRBS(40,5); /* @status APPROVED (LTE) */ @@ -110,7 +122,7 @@ module MAC_Common { template (value) PDCP_SDU_Type crs_PDCP_SDU_L38_1 := f_GetN_OctetsFromPRBS(750,38); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_L39 := f_GetN_OctetsFromPRBS(200,39); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_L39_1 := f_GetN_OctetsFromPRBS(500,39); /* @status APPROVED (LTE) */ - template (value) PDCP_SDU_Type crs_PDCP_SDU_L40 := f_GetN_OctetsFromPRBS(300,40); /* @status */ + template (value) PDCP_SDU_Type crs_PDCP_SDU_L40 := f_GetN_OctetsFromPRBS(300,40); /* @status APPROVED (LTE_A) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_L41 := f_GetN_OctetsFromPRBS(300,41); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_L42 := f_GetN_OctetsFromPRBS(300,42); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_L50 := f_GetN_OctetsFromPRBS(300,50); /* @status APPROVED (LTE) */ @@ -125,6 +137,10 @@ module MAC_Common { template (value) PDCP_SDU_Type crs_PDCP_SDU_L10 := f_GetN_OctetsFromPRBS(220,10); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type cs_PDCP_SDU_L318 := f_GetN_OctetsFromPRBS(1200,318); /* @status APPROVED (LTE) */ template (value) PDCP_SDU_Type crs_PDCP_SDU_L58 := f_GetN_OctetsFromPRBS(1200,58); /* @status APPROVED (LTE_A) */ + template (value) PDCP_SDU_Type crs_PDCP_SDU_242B := f_GetN_OctetsFromPRBS(20,242); + template (value) PDCP_SDU_Type crs_PDCP_SDU_106B := f_GetN_OctetsFromPRBS(20,106); + template (value) PDCP_SDU_Type crs_PDCP_SDU_L18 := f_GetN_OctetsFromPRBS(200,18); + template (value) PDCP_SDU_Type cs_PDCP_SDU_L118 := f_GetN_OctetsFromPRBS(1200,118); //============================================================================ template (present) octetstring cr_Octet14_Any := ? length(14); /* @status APPROVED (LTE, LTE_A) */ @@ -740,7 +756,331 @@ template (present) RLC_PDU_Type cr_RLC_AMD_2PDU(template (present) B1_Type p_Pol SduList := omit, /* MAC SDUs, which can typically be RLC PDUs */ Padding := omit /* Octet aligned Padding if more than or equal to 2 bytes */ }; + + template (value) MAC_PDU_Type cs_MAC_PDU_1SubHeader_1Padding(B5_Type p_LCh_Id, + MAC_SDU_Type p_MAC_SDU) := + { /* @status APPROVED (LTE) */ + Header := { /* list of MAC PDU SubHeaders corresponding to + * MAC control elements and MAC SDUs */ + cds_MAC_PDU_PaddingSubHeader_MoreSubHeaders, + cs_MAC_PDU_SubHeader_SDU_LCID_NoLength( p_LCh_Id) + }, + CtrlElementList := omit, /* Mac control elements; acc. to 36.321 cl. 6.1.2 + * "MAC control elements, are always placed before any MAC SDU." */ + SduList := {p_MAC_SDU}, /* MAC SDUs, which can typically be RLC PDUs */ + Padding := omit /* padding bytes apart from the last subheader byte */ + }; + + + group SPS_Templates { + + template (value) SPS_Config cs_SPS_Config_DL (template (omit) C_RNTI p_C_RNTI, + template (value) SPS_ConfigDL p_SPS_ConfigDL) := + { /* @status APPROVED (LTE) */ + semiPersistSchedC_RNTI := p_C_RNTI, + sps_ConfigDL := p_SPS_ConfigDL, + sps_ConfigUL := omit + }; + + template (present) SYSTEM_CTRL_CNF car_SYSTEM_CTRL_SPS_Config_CNF(EUTRA_CellId_Type p_CellId) := + { /* @status APPROVED (LTE) */ + Common := cr_CnfAspCommonPart_CellCfg(p_CellId), + Confirm := { + Sps := true + } + }; + + template (value) SYSTEM_CTRL_REQ cas_SPS_Activate_REQ(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) SpsActivateInfo_Type p_SpsInfo) := + { /* @status APPROVED (LTE) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Sps := { + Activate := p_SpsInfo + } + } + }; + + template (value) SYSTEM_CTRL_REQ cas_SPS_PDCCH_ExplicitRelease_REQ(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) C_RNTI p_SPS_CRNTI, + template (value) PdcchDciFormat_Type p_DCI_Format) := + { /* @status APPROVED (LTE) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Sps := { + Deactivate := { + PdcchExplicitRelease := { + SPS_C_RNTI := p_SPS_CRNTI, + DCI_Format := p_DCI_Format + } + } + } + } + }; + + template (value) SYSTEM_CTRL_REQ cas_SPS_Deactivate_REQ(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo) := + { /* @status APPROVED (LTE) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Sps := { + Deactivate := {LocalRelease := true} + } + } + }; + + template (value) SpsActivateInfo_Type cs_DL_SPSInfo( template (value) C_RNTI p_SPS_C_RNTI, + template (value) SpsAssignmentDL_Type p_SpsAssignmentDL) := + { /* @status APPROVED (LTE) */ + SPS_C_RNTI := p_SPS_C_RNTI, /* Note: it seems to be an open issue how the UE gets the SPS C-RNTI (summer '08) */ + UplinkGrant := omit, + DownlinkAssignment := p_SpsAssignmentDL + }; + + template (value) SpsActivateInfo_Type cs_UL_SPSInfo( template (value) C_RNTI p_C_RNTI, + template (value) SpsAssignmentUL_Type p_SpsAssignmentUL) := + { /* @status APPROVED (LTE) */ + SPS_C_RNTI := p_C_RNTI, /* Note: it seems to be an open issue how the UE gets the SPS C-RNTI (summer '08) */ + UplinkGrant := p_SpsAssignmentUL, + DownlinkAssignment := omit + }; + + template (value) SpsAssignmentDL_Type cs_SpsAssignmentDL(template (value) DciDlInfo_Type p_DciDlInfo, + template (value) SpsConfigDL_Type p_SpsConfigDL, + template (omit) Null_Type p_SetNDI_1 := omit) := + { /* @status APPROVED (LTE) */ + DciInfo := p_DciDlInfo, /* to apply a assignment */ + SchedulInterval := cs_SpsConfigurationDL_r8(p_SpsConfigDL), /* as in 36.331 cl. 6.3.2 SPS-ConfigurationDL */ + SetNDI_1 := p_SetNDI_1 + }; + + template (value) SpsAssignmentUL_Type cs_SpsAssignmentUL(template (value) DciUlInfo_Type p_DciUlInfo, + template (value) SpsConfigUL_Type p_SpsConfigUL, + template (omit) Null_Type p_SetNDI_1 := omit) := + { /* @status APPROVED (LTE) */ + DciInfo := p_DciUlInfo, /* to apply a grant */ + SchedulInterval := cs_SpsConfigurationUL_r8(p_SpsConfigUL), /* as in 36.331 cl. 6.3.2 SPS-ConfigurationUL */ + SetNDI_1 := p_SetNDI_1 + }; + + template (value) SpsConfigDL_Type cs_SpsConfigDL_FDD := + { /* @status APPROVED (LTE) */ + semiPersistSchedIntervalDL := sf40, //@sic R5-110504 sic@ + numberOfConfSPS_Processes := 8, + n1PUCCH_AN_PersistentList := {0}, + twoAntennaPortActivated_r10 := omit /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + }; + + template (value) SpsConfigDL_Type cds_SpsConfigDL_TDD modifies cs_SpsConfigDL_FDD := + { /* @status APPROVED (LTE) */ + numberOfConfSPS_Processes := 7 + }; + + template (value) SpsConfigUL_Type cs_SpsConfigUL_FDD := + { /* @status APPROVED (LTE) */ + semiPersistSchedIntervalUL := sf40, //@sic R5-110504 sic@ + implicitReleaseAfter := e2, + p0_Persistent := omit, + twoIntervalsConfig := omit, + p0_PersistentSubframeSet2_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ + }; + + template (value) SpsConfigUL_Type cds_SpsConfigUL_TDD modifies cs_SpsConfigUL_FDD := + { /* @status APPROVED (LTE) */ + twoIntervalsConfig := true_ + }; + + //====================================================================== + + template (value) DciDlInfoExplicit_Type cs_DciDlInfoExplicit_DCI1_RA0 (ImcsValue_Type p_Imcs, + integer p_Nprb) := + /* @status (APPROVED (LTE)) */ + cs_DciDlInfoExplicit(p_Imcs, dci_1, ra_0, p_Nprb, 2); + + template (value) DL_SCH_CRC_Type cs_DL_SCH_CRC_SPS_C_RNTI_Error(MAC_Test_DL_SCH_CRC_Mode_Type p_CRC_Mode) := + { + SPS_RNTI := p_CRC_Mode + }; + + + + template (value) SPS_Config cs_SPS_Config_UL (template (omit) C_RNTI p_C_RNTI, + template (value) SPS_ConfigUL p_SPS_ConfigUL) := + { /* @status APPROVED (LTE) */ + semiPersistSchedC_RNTI := p_C_RNTI, + sps_ConfigDL := omit, + sps_ConfigUL := p_SPS_ConfigUL + }; + + template (value) SPS_ConfigDL cs_SPS_ConfigDL_Setup (template (value) SpsConfigDL_Type p_SpsConfigDL) := + { /* @status APPROVED (LTE) */ + setup := p_SpsConfigDL + }; + + template (value) SPS_ConfigDL cs_SPS_ConfigDL_Release := + { /* @status APPROVED (LTE) */ + release := NULL + }; + + template (value) SPS_ConfigUL cs_SPS_ConfigUL_Setup (template (value) SpsConfigUL_Type p_SpsConfigUL) := + { /* @status APPROVED (LTE) */ + setup := p_SpsConfigUL + }; + + template (value) SPS_ConfigUL cs_SPS_ConfigUL_Release := + { /* @status APPROVED (LTE) */ + release := NULL + }; + + } // end of SPS_Templates + template (value) RLC_PDU_Type cs_RLC_UMD_1PDU( integer p_SN, + RLC_DataField_Type p_RLC_SDU) := + { /* @status APPROVED (LTE) */ + UMD := cs_UMD_PDUoneSDU_SN10( p_SN, {p_RLC_SDU} ) + }; + template (value) MAC_MainConfig_Type cs_MAC_MainConfig_Explicit_RBC_LongOnTimer_DrxS(TimeAlignmentTimer p_TimeAlignmentTimer := sf750) := + { + explicitValue := cs_MAC_MainConfig_Common(cs_UL_SCH_Config_DisableBSR, f_GetUeDrxConfig(DRX_S_LongOnDuration), p_TimeAlignmentTimer,cs_PHR_Config_Release) //@sic R5s120054 R5s120129 sic@ + }; + + template (value) MAC_MainConfig_Type cs_MAC_MainConfig_Explicit_RBC_NoDrx(TimeAlignmentTimer p_TimeAlignmentTimer := sf750) := + { /* @status APPROVED (LTE) */ + explicitValue := cs_MAC_MainConfig_Common(cs_UL_SCH_Config_DisableBSR, -, p_TimeAlignmentTimer,cs_PHR_Config_Release) //@sic R5s120054 R5s120129 sic@ + }; + + template (value) DRB_COMMON_REQ cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant(EUTRA_CellId_Type p_CellId, + RadioBearerId_Type p_RB_Id, + template (value) TimingInfo_Type p_TimingInfo, + template (value) MAC_PDUList_Type p_MAC_PDUList, + template (value) HarqProcessAssignment_Type p_HarqProcess := cs_HarqProcessAssignment_Automatic, + integer p_SubframeOffset := tsc_SubframeOffset0) + modifies cas_DRB_COMMOM_REQ_MAC_PDU := + { /* @status APPROVED (LTE) */ + SuppressPdcchForC_RNTI := true + }; + + template (value) RadioBearer_Type cs_RB_Reconfig_NotAck_NextPDU (RadioBearerId_Type p_RBID) := + { /* @status APPROVED (LTE) */ + Id := p_RBID, + Config := { + AddOrReconfigure := { + Pdcp := omit , //Keep As it is + Rlc := { + Rb := omit, + TestMode := { + Info := { NotACK_NextRLC_PDU := Start } + } + }, // Configure RLC for No ACK for Next PDU + LogicalChannelId := omit, //Keep As it is + Mac := omit, //Keep As it is + DiscardULData := omit // @sic RAN5 #55 sidebar meeting sic@ + } + } + }; + + group PDSCH_PwrCntrl { + + template (value) PDSCH_ConfigDedicated cs_PDSCH_ConfigDedicated_TBS_Test := + { /* @status APPROVED (LTE) */ + p_a := dB0 + }; + + template (value) ToRS_EPRE_Ratios_Type cs_PowerRatiosPDSCH_TBS_Test := cs_PowerRatios_Def; /* @status APPROVED (LTE) + @sic R5-100263 sic@ */ + + template (value) PhysicalLayerConfigDL_Type cs_PhysicalLayerConfigDL_PDSCH_Pwr_Ratio_TBS_Test := + { /* @status APPROVED (LTE) */ + AntennaGroup := omit, //same as previous config + Pbch := omit, //same as previous config + Pcfich := omit,//same as previous config + Phich := omit,//same as previous config + Pdcch := omit,//same as previous config + Pdsch := { + RelativeTxPower := { // Acc. 36.508 Table 6.2.1.2-1 + RachResponse := cs_PowerRatiosPDSCH_TBS_Test, + BcchOnPdsch := cs_PowerRatiosPDSCH_TBS_Test, + PcchOnPdsch := cs_PowerRatiosPDSCH_TBS_Test, + CcchOnPdsch := cs_PowerRatiosPDSCH_TBS_Test, // @sic R5-121089 sic@ + DcchDtchOnPdsch := cs_PowerRatiosPDSCH_TBS_Test, // @sic R5-121089 sic@ + OcngOnPdsch := omit //@sic R5w150104 eICIC sic@ + } + }, + Pss := omit, //same as previous config + Sss := omit, //same as previous config + CSI_RS_Config := omit, + Pmch := omit, + Epdcch := omit + }; + + template (value) SYSTEM_CTRL_REQ cas_CellModify_REQ_PDSCH_Pwr_Ratio_TBS_Test(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo) := + /* @status APPROVED (LTE) */ + cas_PhysicalLayerConfigDL_REQ(p_CellId, p_TimingInfo, cs_PhysicalLayerConfigDL_PDSCH_Pwr_Ratio_TBS_Test); + + + + } // end of group PDSCH_PwrCntrl + + + template (value) UL_SCH_Config_Type cs_UL_SCH_Config_TTIBundling := + { /* @status APPROVED (LTE) */ + maxHARQ_Tx := n28, + periodicBSR_Timer := infinity_, + retxBSR_Timer := sf10240, + ttiBundling := true + }; + + template (value) MAC_MainConfig_Type cs_MAC_MainConfig_Explicit_TTIBundling(template (omit) boolean p_E_HARQ_Pattern_r12 := omit) := + { /* @status APPROVED (LTE) */ + explicitValue := cs_MAC_MainConfig_Common(cs_UL_SCH_Config_TTIBundling, -, -, {release := NULL}, -, -, p_E_HARQ_Pattern_r12) //PHR should be "release" + }; + + template (value) PhysicalConfigDedicated cds_PhysicalConfigDedicated_DSR_Transmax(SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, + SR_ConfigIndex_Type p_SR_ConfigIndex , + Dsr_TransMax_Type p_Dsr_TransMax := n64) // @sic R5-102177 sic@ + modifies cs_PhysicalConfigDedicated_Omit := + { /* @status APPROVED (LTE) */ + /* @sic R5s150362 - Additional change: modifies cs_PhysicalConfigDedicated_Omit sic@ */ + schedulingRequestConfig := cs_508_SchedulingRequest_Config_Default(p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex, p_Dsr_TransMax) + }; + + template (value) HARQ_ModeList_Type cs_HARQ_ModeList_Nack_2Ack := + { /* @status APPROVED (LTE) */ + nack, ack, ack + }; + + group SysInfo_Templates { + + template (value) RACH_ConfigCommon.preambleInfo.preamblesGroupAConfig cs_PreamblesGroupAConfig(RACH_ConfigCommon.preambleInfo.preamblesGroupAConfig.messageSizeGroupA p_MessageSizeGroupA) := + { /* @status APPROVED (LTE) */ + sizeOfRA_PreamblesGroupA := n28, + messageSizeGroupA := p_MessageSizeGroupA, + messagePowerOffsetGroupB := minusinfinity + }; + } // end of group SysInfo_Templates + +template (value) MAC_MainConfig_Type cds_MAC_MainConfig_Explicit_RetxBSR_Timer(RetxBSR_Timer_r12 p_RetxBSR_Timer) + modifies cs_508_MAC_MainConfig_Explicit_RBC_DrxL_DisableBSR_PHR := + { /* @status APPROVED (LTE) */ + explicitValue := { + ul_SCH_Config := { + // maxHARQ_Tx := n5 + // periodicBSR_Timer := infinity_ + retxBSR_Timer := p_RetxBSR_Timer + // ttiBundling := false + } + } + }; + + template (present) MAC_PDUList_Type cr_MAC_PDUList_1(template (present) MAC_PDU_Type p_MAC_PDU) := + { /* @status APPROVED (LTE) */ + p_MAC_PDU + }; + + //============================================================================ /* * @desc send RLC status PDU @@ -897,4 +1237,751 @@ template (present) RLC_PDU_Type cr_RLC_AMD_2PDU(template (present) B1_Type p_Pol return v_Timing; }; + /* + * @desc reconfigure MAC and PHY layer at the UE + * @param p_CellId + * @param p_MAC_MainConfig + * @param p_PhysicalConfigDedicated + * @status APPROVED (LTE) + */ + function f_RRC_ConnectionReconfiguration_MAC_MainConfig_PhysicalConfig(EUTRA_CellId_Type p_CellId, + template (omit) MAC_MainConfig_Type p_MAC_MainConfig, + template (omit) PhysicalConfigDedicated p_PhysicalConfigDedicated := omit) runs on EUTRA_PTC + { /* @sic R5s110639 Additional Changes: new parameter for PhysicalConfigDedicated; TransactionIdentifier, TimingInfo removed from parameter list sic@ */ + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var template (value) TimingInfo_Type v_TimingInfo := cs_TimingInfo_Now; + + SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, + v_TimingInfo, + cs_RRCConnectionReconfiguration_Common( v_RRC_TI, + omit, + omit, + cs_RadioResourceConfigDedicated_MacPhy (p_MAC_MainConfig, -, p_PhysicalConfigDedicated), + omit) ) ); + + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI ) ) ); + }; + + + + + group SPS_Functions + { + /***************************************************************************************************/ + /* + * @desc Function to Activate SPS GRANT + * @param p_CellId + * @param p_TimingInfo + * @param p_SpsInfo + * @status APPROVED (LTE) + */ + function f_SS_ActivateSPS_Grant(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) SpsActivateInfo_Type p_SpsInfo) runs on EUTRA_PTC + { + f_EUTRA_SS_SPS_Config(p_CellId, cas_SPS_Activate_REQ (p_CellId, p_TimingInfo, p_SpsInfo)); + } + + /* + * @desc Function to Deactivate SPS GRANT + * @param p_CellId + * @param p_TimingInfo + * @status APPROVED (LTE) + */ + function f_SS_DeactivateSPS_Grant(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo) runs on EUTRA_PTC + { + f_EUTRA_SS_SPS_Config(p_CellId, cas_SPS_Deactivate_REQ (p_CellId, p_TimingInfo)); + } + + /* + * @desc to relase SPS configuration at SS + * @param p_CellId + * @param p_TimingInfo + * @param p_SPS_CRNTI + * @param p_DCI_Format + * @status APPROVED (LTE) + */ + function f_SS_SPS_PDCCH_ExplicitRelease(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) C_RNTI p_SPS_CRNTI, + template (value) PdcchDciFormat_Type p_DCI_Format) runs on EUTRA_PTC + { + f_EUTRA_SS_SPS_Config(p_CellId, cas_SPS_PDCCH_ExplicitRelease_REQ (p_CellId, p_TimingInfo, p_SPS_CRNTI, p_DCI_Format)); + }; + /***************************************************************************************************/ + // Function to Config SPS Grant at UE + ///////////////////////////////////////////////////////////////////////////////////////////////////// + /* + * @desc To configure SPS configuration at UE + * @param p_CellId + * @param p_RRC_TI + * @param p_TimingInfo + * @param p_SPS_Config + * @status APPROVED (LTE) + */ + function f_RRC_ConnectionReconfiguration_SPS_Config(EUTRA_CellId_Type p_CellId, + RRC_TransactionIdentifier p_RRC_TI, + template (value) TimingInfo_Type p_TimingInfo, + template (value) SPS_Config p_SPS_Config) runs on EUTRA_PTC + { + f_SendRRC_ConnectionReconfiguration_SPS_Config(p_CellId, p_RRC_TI, p_TimingInfo, p_SPS_Config); + SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_508_RRCConnectionReconfigurationComplete(p_RRC_TI))); + }; + + /* + * @desc To Send RRC Connection Reconfiguration with SPS configuration to UE + * @param p_CellId + * @param p_RRC_TI + * @param p_TimingInfo + * @param p_SPS_Config + * @status APPROVED (LTE) + */ + function f_SendRRC_ConnectionReconfiguration_SPS_Config(EUTRA_CellId_Type p_CellId, + RRC_TransactionIdentifier p_RRC_TI, + template (value) TimingInfo_Type p_TimingInfo, + template (value) SPS_Config p_SPS_Config) runs on EUTRA_PTC + { + SRB.send(cas_SRB1_RrcPdu_REQ(p_CellId, + p_TimingInfo, + cs_RRCConnectionReconfiguration_Common(p_RRC_TI, + omit, + omit, + cs_RadioResourceConfigDedicated_MacPhy(-, p_SPS_Config), + omit) ) ); + } + + /***************************************************************************************************/ + /* + * @desc SS Configuration: SPS + * @param p_CellId + * @param p_SYSTEM_CTRL_REQ + * @status APPROVED (LTE) + */ + function f_EUTRA_SS_SPS_Config(EUTRA_CellId_Type p_CellId, + template (value) SYSTEM_CTRL_REQ p_SYSTEM_CTRL_REQ) runs on EUTRA_PTC + { + SYS.send( p_SYSTEM_CTRL_REQ ); + if (valueof(p_SYSTEM_CTRL_REQ.Common.ControlInfo.CnfFlag) == true) { + SYS.receive(car_SYSTEM_CTRL_SPS_Config_CNF( p_CellId ) ); + } + }; + }// end of SPS_Functions + + /* + * @desc Shall configure 1 RB with RLC in special mode of to not ACK the next PDU received; TTCN shall use this for AM RB only + * @param p_CellId + * @param p_RBID + * @status APPROVED (LTE) + */ + function f_SS_RB_Reconfig_NotAck_NextPDU(EUTRA_CellId_Type p_CellId, + RadioBearerId_Type p_RBID) runs on EUTRA_PTC + { + var template (value) RadioBearerList_Type v_RbList1 := { + cs_RB_Reconfig_NotAck_NextPDU( p_RBID ) + }; + f_EUTRA_SS_CommonRadioBearerConfig(p_CellId, v_RbList1); + }; + + + /* + * @desc sets 'Number of PDCP SDU' and 'PDCP SDU Size' for a TBsize Table 7.1.7.1.1.3.2-2 + * @param p_N ... Number of PDCP SDU (by reference) + * @param p_PDCPsize ... PDCP SDU Size in octates (by reference) + * @param p_TBSize ... TB Size in Bits + * @status APPROVED (LTE) + */ + function f_EUTRA_Set_PDCP_SDUs_Size (out integer p_N, // out parameter + out integer p_PDCPsize, // out parameter + integer p_TBSize) + {//@sic R5-104708 & R5-104709 sic@ + if( p_TBSize <= 12096) + { + p_N := 1; + p_PDCPsize := ((p_TBSize - 96)/8); //@sic R5-096421 R5s100321 sic@ + } + else if(p_TBSize <= 24128) + { + p_N := 2; + p_PDCPsize := ((p_TBSize - 128)/16); //@sic R5-096421 R5s100321sic@ + } + else if(p_TBSize <= 36152) + { + p_N := 3; + p_PDCPsize := ((p_TBSize - 152)/24); //@sic R5-096421 R5s100321sic@ + } + else if(p_TBSize <= 48184) + { + p_N := 4; + p_PDCPsize := ((p_TBSize - 184)/32); //@sic R5-096421 R5s100155 R5s100321sic@ + } + else if(p_TBSize <= 60208) + { + p_N := 5; + p_PDCPsize := ((p_TBSize - 208)/40); //@sic R5-096421 R5s100321 sic@ + } + else if(p_TBSize <= 72240) + { + p_N := 6; + p_PDCPsize := ((p_TBSize - 240)/48); //@sic R5-096421 R5s100321 sic@ + } + else + { + p_N := 7; + p_PDCPsize := ((p_TBSize - 264)/56); //@sic R5-096421 R5s100321 sic@ + } + + }//enf of f_EUTRA_Set_PDCP_SDUs_Size + /* + * @desc Check UE category reported against PICS + * @param p_UE_Category + * @status APPROVED (LTE) + */ + function f_CheckUECategory (integer p_UE_Category) runs on EUTRA_PTC + { + var boolean v_Result := false; + /* @sic R5-142669, R5-142681, R5-142690, R5-151413 R5-153982 sic@ */ + if (pc_ue_Category_12 and (p_UE_Category == 12)) { + v_Result := true; + } + else if (pc_ue_Category_11 and (p_UE_Category == 11)) { + v_Result := true; + } + else if (pc_ue_Category_10 and (p_UE_Category == 10)) { + v_Result := true; + } + else if (pc_ue_Category_9 and (p_UE_Category == 9)) { + v_Result := true; + } + else if (pc_ue_Category_8 and (p_UE_Category == 8)) { + v_Result := true; + } + else if (pc_ue_Category_7 and (p_UE_Category == 7)) { + v_Result := true; + } + else if (pc_ue_Category_6 and (p_UE_Category == 6)) { + v_Result := true; + } + else if (pc_ue_Category_5 and (p_UE_Category == 5)) { + v_Result := true; + } + else if (pc_ue_Category_4 and (p_UE_Category == 4)) { + v_Result := true; + } + else if (pc_ue_Category_3 and (p_UE_Category == 3)) { + v_Result := true; + } + else if (pc_ue_Category_2 and (p_UE_Category == 2)) { + v_Result := true; + } + else if (pc_ue_Category_1 and (p_UE_Category == 1)) { + v_Result := true; + } + else if (pc_ue_CategoryUL_0 and pc_ue_CategoryDL_0 and (p_UE_Category == 0)) { //a CAT 0 UE is both UL and DL CAT 0 as per 36.306 Table 4.1A-6 + v_Result := true; + } + else { + f_SetVerdictInconc(__FILE__, __LINE__, "Invalid setting of UE category"); + } + if (not v_Result) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "UE category reported does not match with PICS"); + } + }; + + /* + * @desc To configure UL grant to the max TB size supported + * @param p_UE_Cat + * @param p_N_RBUL + * @status APPROVED (LTE) + */ + function f_ConfigureULGrant_MaxTBSupported(integer p_UE_Cat, + integer p_N_RBUL) runs on EUTRA_PTC + { + var integer v_I_MCS:=0; // Modulation and Coding Scehme Index + var integer v_N_PRB:=1; // Number of physical resource Blocksselect (p_UE_Cat) + + select (p_UE_Cat) { // Table 7.1.7.1.1.3.2-1: Maximum TBsize for different UE categories + //@sic R5-151413 sic@ + case (0) { // MAX TB size 1000 64QAM Not supported + v_I_MCS := 4 ; // Itbs = 4 + v_N_PRB := 14; // results in TB size of 1000 + } + case (1) { // MAX TB size 5160 64QAM Not supported + v_I_MCS := 15; // Itbs = 14 + v_N_PRB := 18; // results in TB size of 5160 + } + case (2) { // MAX TB size 25456 64QAM Not supported + if ((p_N_RBUL == 100) or (p_N_RBUL == 75)) + { + v_I_MCS := 20; // Itbs = 19 + v_N_PRB := 60; // results in TB size of 25456 for 20 and 15 Mhz + } + else + { + v_I_MCS := 20; // Itbs = 19 + v_N_PRB := p_N_RBUL; // results in TB size of 21384 for 10Mhz + } + } + case (3, 4,6,7,9,10,11,12) { // MAX TB size 51024 64QAM Not supported + /*@sic R5-142669, R5-142681, R5-142690 R5s150808 sic@*/ + v_I_MCS := 20; // Itbs = 19 + v_N_PRB := p_N_RBUL; // results in TB size of 43816 for 20 Mhz, 32856 for 15 Mhz and 21384 for 10 Mhz + } + case (5,8) { // MAX TB size 75376 64QAM supported + //@sic R5s140707 sic@ + v_I_MCS := 28; // Itbs = 26 + v_N_PRB := p_N_RBUL; // results in TB size of 30576 for 20 Mhz, 55056 for 15 Mhz and 36696 for 10 Mhz + } + case else { + FatalError(__FILE__, __LINE__, "invalid UE Category"); + } + } + f_EUTRA_StartULGrantTransmissionOnSR_Reception(eutra_Cell1, cs_TimingInfo_Now,cs_DciInfo_CcchDcchDtchUL_Explicit(v_I_MCS, v_N_PRB)); + } // end of f_ConfigureULGrant_MaxTBSupported + + + /* + * @desc Send list of PDCP SDUs + * @param p_PDCP_SDUList + * @param p_TimingInfo (default value: cs_TimingInfo_SubFrame(9)) + * @status APPROVED (LTE) + */ + function f_Tx_N_PDCP_SDUs (PDCP_SDUList_Type p_PDCP_SDUList, //@sic R5-115620 sic@ + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_SubFrame(9) ) runs on EUTRA_PTC + { // Note due to default scheduling combination C1 : MIB, SIB1, SI1 and SI2 only will be used; + // Hence as per tables 7.7.2-3 and 7.7.2-4, sub frame 9 is available for both FDD and TDD always; + DRB.send (cas_DRB_COMMON_REQ_PDCP_SDU (eutra_Cell1, + tsc_RbId_DRB1, + p_TimingInfo, // to be sent in sub frame 9 valid for both FDD and TDD + p_PDCP_SDUList)); + } + + /* + * @desc receive list of PDCP SDUs spread over one or several TTIs + * @param p_PDCP_SDUList + * @status APPROVED (LTE) + */ + function f_Rx_N_PDCP_SDUs (PDCP_SDUList_Type p_PDCP_SDUList) runs on EUTRA_PTC + { + var DRB_COMMON_IND v_DRB_COMMON_IND; + var PDCP_SDUList_Type v_PDCP_SDUListReveived := {''O}; + var PDCP_SDUList_Type v_SDUs := {''O}; + var integer v_NoOfPDCPSDUs := 1; + var integer v_SDUIndex; + var integer v_NoOfPDCPSDUsCurrentTTI:=1; + var integer v_SDUIndexCurrTTI; + + timer t_Watchdog := 5.0; + + v_NoOfPDCPSDUs := lengthof(p_PDCP_SDUList); + t_Watchdog.start; + v_SDUIndex := 0; + while (v_SDUIndex < v_NoOfPDCPSDUs) { + DRB.receive (car_DRB_COMMON_IND_PDCP_SDUList (eutra_Cell1, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + ?)) -> value v_DRB_COMMON_IND; + v_PDCP_SDUListReveived := v_DRB_COMMON_IND.U_Plane.SubframeData.PduSduList.PdcpSdu; + v_NoOfPDCPSDUsCurrentTTI := lengthof(v_PDCP_SDUListReveived); + + for (v_SDUIndexCurrTTI := 0; v_SDUIndexCurrTTI < v_NoOfPDCPSDUsCurrentTTI; v_SDUIndexCurrTTI := v_SDUIndexCurrTTI + 1) { + v_SDUs[v_SDUIndex+v_SDUIndexCurrTTI] := v_PDCP_SDUListReveived[v_SDUIndexCurrTTI]; + } + v_SDUIndex := v_SDUIndex + v_NoOfPDCPSDUsCurrentTTI; + } + if (match(v_SDUs, p_PDCP_SDUList)) { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 4"); + } else { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 4: invalid data received"); + } + t_Watchdog.stop; + } + + /* + * @desc Step 1 of TC_7_1_4_3: + * One ASP used to send all PDU's and PDUs on all DRBs are sent in one TTI. + * This is necessary to guarantee that the algorithm is correct, otherwise the logical channel which DL data is sent first + * will have more loop back data in initial stages and could result in failure of test case. + * @param p_DRB_DataPerSubframeList1 + * @param p_DRB_DataPerSubframeList2 + * @param p_DRB_DataPerSubframeList3 + * @param p_SFN + * @param p_SubframeOffset + * @status APPROVED (LTE) + */ + function f_TC_7_1_4_3_Step1 (template (value) DRB_DataPerSubframeList_DL_Type p_DRB_DataPerSubframeList1, + template (value) DRB_DataPerSubframeList_DL_Type p_DRB_DataPerSubframeList2, + template (value) DRB_DataPerSubframeList_DL_Type p_DRB_DataPerSubframeList3, + SystemFrameNumber_Type p_SFN, + integer p_SubframeOffset) runs on EUTRA_PTC + {//@sic R5s110096 sic@ + + DRB.send (cas_DRB_COMMON_REQ_SubframeDataList(eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(p_SFN, p_SubframeOffset), + p_DRB_DataPerSubframeList1)); + + DRB.send (cas_DRB_COMMON_REQ_SubframeDataList(eutra_Cell1, + tsc_RbId_DRB3, + cs_TimingInfo(p_SFN, p_SubframeOffset), + p_DRB_DataPerSubframeList2)); + + DRB.send (cas_DRB_COMMON_REQ_SubframeDataList(eutra_Cell1, + tsc_RbId_DRB4, + cs_TimingInfo(p_SFN, p_SubframeOffset), + p_DRB_DataPerSubframeList3)); + }; // end of f_TC_7_1_4_3_Step1 + + /* + * @desc Step 2 of TC_7_1_4_3: UL Grant according to table 7.1.4.3.3.2-3 + * @param p_Nprb + * @param p_Imcs + * @param p_SubframeNumber + * @param p_NumberofCycles + * @param p_SFN + * @param p_SubframeOffset + * @status APPROVED (LTE) + */ + function f_TC_7_1_4_3_Step2 (integer p_Nprb, + integer p_Imcs, + integer p_SubframeNumber, + integer p_NumberofCycles, + SystemFrameNumber_Type p_SFN, + integer p_SubframeOffset) runs on EUTRA_PTC + { + f_EUTRA_PeriodicCyclicULGrantTransmission( eutra_Cell1, + cs_TimingInfo(p_SFN, p_SubframeOffset), + p_Imcs, + p_Nprb, + p_SubframeNumber, + p_NumberofCycles);//@sic R5s100473 sic@ + /* Nprb, Itbs Table 7.1.7.2.1-1 of 36.213 + Imcs -> Itbs MCS index of table 8.6.1-1 of 36.213 + Grant period = p_SubframeNumber; Number of cycles = p_NumberofCycles + | + \--> total duration = p_SubframeNumber*p_NumberofCycles [ms] + */ + } + + /* + * @desc Step 3 of TC_7_1_4_3: + * As more than one PDCP SDU can be sent by UE in one TTI, hence more than one PDCP SDU can be received in the list + * A mechanism to know number of PDUs is implemented + * @param p_DataOctetsDRB1 + * @param p_DataOctetsDRB2 + * @param p_DataOctetsDRB3 + * @status APPROVED (LTE) + */ + function f_TC_7_1_4_3_Step3 (integer p_DataOctetsDRB1, + integer p_DataOctetsDRB2, + integer p_DataOctetsDRB3) runs on EUTRA_PTC + { /* @sic R5s100473 Additional Changes sic@ */ + var integer k := 0; + var integer l := 0; + var integer m := 0; + var PDCP_SDUList_Type v_PDCP_SDU_List; // To store the number of PDCP SDUs sent by UE in one TTI + var DRB_COMMON_IND v_DRB_COMMON_IND; + var RadioBearerId_Type v_RadioBearerId; + + timer t_Watchdog := 5.0; // Local wait Timer + + t_Watchdog.start; + + alt { + [] DRB.receive (car_DRB_COMMON_IND_PDCP_SDUList (eutra_Cell1, + (tsc_RbId_DRB2, tsc_RbId_DRB3, tsc_RbId_DRB4), + cr_TimingInfo_Any, + ? )) -> value v_DRB_COMMON_IND //@sic R5s110171 sic@ + { + v_PDCP_SDU_List := v_DRB_COMMON_IND.U_Plane.SubframeData.PduSduList.PdcpSdu; + v_RadioBearerId := v_DRB_COMMON_IND.Common.RoutingInfo.RadioBearerId; + select (v_RadioBearerId) { + case (tsc_RbId_DRB2) { k := k + lengthof(v_PDCP_SDU_List); } + case (tsc_RbId_DRB3) { l := l + lengthof(v_PDCP_SDU_List); } + case (tsc_RbId_DRB4) { m := m + lengthof(v_PDCP_SDU_List); } + } + repeat; + } + + [] t_Watchdog.timeout + { + if ((0.9 * int2float(p_DataOctetsDRB1) > int2float(k * 320)) or + (int2float(k * 320) > int2float(p_DataOctetsDRB1) * 1.1) or + (0.9 * int2float(p_DataOctetsDRB2) > int2float(l * 320)) or + (int2float(l * 320) > int2float(p_DataOctetsDRB2) * 1.1) or + (0.9 * int2float(p_DataOctetsDRB3) > int2float(m * 320)) or + (int2float(m * 320) > int2float(p_DataOctetsDRB3) * 1.1)) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 3: UE is not sending back all RLC SDUs "); + } + else + { + f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Step 3: Loop back SDUs received"); + } + } + } + } + + + + /* + * @desc return MaxDLSCH TB Bits Per TTI acc. Table 7.1.7.1.1.3.2-1 + * @param p_UE_Category + * @return integer + * @status APPROVED (LTE) + */ + function f_EUTRA_GetMaxDLSCH_TB_Bits_Per_TTI (integer p_UE_Category) return integer + { + select (p_UE_Category) + { // Table 7.1.7.1.1.3.2-1: Maximum DL SCH TBsize for different UE categories + case (0) { //@sic R5s151413 sic@ + return (1000); + } + case (1) { + return (10296); + } + case (2) { + return (51024); + } + case (3) { + return (75376); + } + case (4,6,7,9,10,11,12) { // /*@sic R5-142669, R5-142681, R5-142690 R5s150808 sic@*/ + return (75376); + } + case (5) { + return (149776); // @sic R5-0966421 sic@ + } + case (8) { + return (299856); // + } + case else { + FatalError(__FILE__, __LINE__, "invalid UE Category"); + return (10296); /// dummy statement added for satisfying the compiler + } + } + }; + + + /* + * @desc To move to state 4 as required for test case + * @status APPROVED (LTE) + */ + function f_EUTRA_LoopBackActivation_State4_717() runs on EUTRA_PTC + { // @sic R5-100263 sic@ + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cds_MAC_MainConfig_Explicit_RetxBSR_Timer(sf320); // time alignment timer is infinity + var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (eutra_Cell1); + var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (eutra_Cell1); + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := cds_PhysicalConfigDedicated_Common(cs_PDSCH_ConfigDedicated_TBS_Test, + -, // p_PUCCH_ConfigDedicated := omit + -, // p_PUSCH_ConfigDedicated := omit + -, // p_UplinkPowerControlDedicated := omit + cs_508_CQI_ReportConfig_Default(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig), + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + v_AntennaInfo); /* @sic R5s150362 - Additional change: cds_PhysicalConfigDedicated_Common sic@ */ + var template (omit) DRB_ToAddModList v_DRB_ToAddModList:= omit; + + f_EUTRA_GenericRbEst_DisableBSR_PHR(eutra_Cell1, + 0, + 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ + v_DRB_ToAddModList, + v_MAC_MainConfig, + v_PhysicalConfigDedicated); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(eutra_Cell1, cs_UE_TestLoopModeA_LB_Setup_NoScaling); // Step 1-2 + }; + + + /* + * @desc To get the next UL sub frame number + * @param p_Timing + * @param p_EUTRA_FDD_TDD + * @return SubFrameTiming_Type + * @status APPROVED (LTE) + */ + function f_EUTRA_EvaluateNext_UL_TTI(SubFrameTiming_Type p_Timing, + EUTRA_FDD_TDD_Mode_Type p_EUTRA_FDD_TDD) return SubFrameTiming_Type + { + var SubFrameTiming_Type v_Timing := p_Timing; + + if (p_EUTRA_FDD_TDD == FDD) + { + v_Timing.Subframe.Number := (v_Timing.Subframe.Number + 1) mod 10; + if (v_Timing.Subframe.Number == 0) // increment the Frame number + { + v_Timing.SFN.Number := (v_Timing.SFN.Number + 1) mod 1024; + } + } + else if (p_EUTRA_FDD_TDD == TDD) // caters only for default UL DL Mode of 1. + { + select (v_Timing.Subframe.Number) { + case (2) { + v_Timing.Subframe.Number := 3; + } + case (3) { + v_Timing.Subframe.Number := 7; + } + case (7) { + v_Timing.Subframe.Number := 8; + } + case (8) { + v_Timing.Subframe.Number := 2; + v_Timing.SFN.Number := (v_Timing.SFN.Number + 1) mod 1024; + } + case else { + FatalError(__FILE__, __LINE__, "UL Sub frame used not according combination s1"); + } + } + } + return v_Timing; + }; + +/* + * @desc Brings UE to state 4, with one DRB established in AM Mode both on SS and UE side + * Put UE in Loop Back Mode A. Configures SS in normal mode + * @param p_CellId + * @param p_UE_TestLoopModeA_LB_Setup (default value: cs_UE_TestLoopModeA_LB_Setup_NoScaling) + * @param p_MAC_MainConfig (default value: omit) + * @param p_DRB_ToAddModList (default value: omit) + * @status APPROVED (LTE) + */ + function f_EUTRA_LoopBackActivation_State4_DSR_TransMax(EUTRA_CellId_Type p_CellId, + template (value) UE_TestLoopModeA_LB_Setup_Type p_UE_TestLoopModeA_LB_Setup := cs_UE_TestLoopModeA_LB_Setup_NoScaling, + template (omit) MAC_MainConfig_Type p_MAC_MainConfig := omit, + template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit) runs on EUTRA_PTC + { // @sic R5s100767 R5s110077 sic@ + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := f_PhysicalConfigDedicated_Dsr_TransMax(p_CellId); // @sic R5s100767 additional changes sic@ + f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, + 0, + 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ + p_DRB_ToAddModList, + p_MAC_MainConfig, + v_PhysicalConfigDedicated); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(p_CellId, p_UE_TestLoopModeA_LB_Setup); // Step 1-2 + }; + + + /* + * @desc Assign the parameterised Preamble Transmission in the SIB2 of the cell + * @param p_CellId + * @param p_PreamblesGroupAConfig + * @status APPROVED (LTE) + */ + function f_EUTRA_CellInfo_SetPreambleGroup(EUTRA_CellId_Type p_CellId, + template (value) RACH_ConfigCommon.preambleInfo.preamblesGroupAConfig p_PreamblesGroupAConfig) runs on EUTRA_PTC + { //@sic R5s110706 sic@ + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig := p_PreamblesGroupAConfig; /* @sic R5s100135 sic@ */ + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo ); + }; + + + /* + * @desc Assign the parameterised number of Preamble Transmission in the SIB2 of the cell + * @param p_CellId + * @param p_NumberOfRAPReambles + * @status APPROVED (LTE) + */ + function f_EUTRA_CellInfo_SetNumberOfRAPreamble(EUTRA_CellId_Type p_CellId, + template (value) RACH_ConfigCommon.preambleInfo.numberOfRA_Preambles p_NumberOfRAPReambles) runs on EUTRA_PTC + { + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + + v_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo [0].sib2.radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles := p_NumberOfRAPReambles; /* @sic R5s100135 sic@ */ + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo ); + }; + + + /* + * @desc To receive an MAC PDU containing RLC Status PDU on a Logical channel + * @param p_LchId + * @param p_SN + * @status APPROVED (LTE) + */ + function f_RLC_Status_PDU_Rx (B5_Type p_LchId, + integer p_SN) runs on EUTRA_PTC + { + var DRB_COMMON_IND v_DRB_COMMON_IND; + var MAC_SDU_Type v_MAC_SDU; + var RLC_AM_StatusPDU_Type v_RLC_PDU; + timer t_Watchdog := 5.0; // Local wait Timer + + t_Watchdog.start; + alt { + + []DRB.receive(car_DRB_COMMON_IND_MAC(eutra_Cell1, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + cr_MAC_PDUList_1(cr_MAC_PDU_NoPadding_RLCPDU_LCID(p_LchId, ?)))) // received UL RLC Status PDU + -> value v_DRB_COMMON_IND + { + v_MAC_SDU := v_DRB_COMMON_IND.U_Plane.SubframeData.PduSduList.MacPdu[0].SduList[0]; + if (not f_CheckIf_MAC_SDU_Is_RLC_AM_StatusPDU(v_MAC_SDU)){ + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "RLC Data PDU is received instead of RLC Status PDU"); + }; + + v_RLC_PDU := f_MAC_SDU_Decode_ToRLC_AM_StatusPDU(v_MAC_SDU); + if (match(v_RLC_PDU, cr_RLC_AM_StatusPDU_ACK_SN(p_SN))) { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Status PDU Received"); // @sic R5-104796 sic@ + } else { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "RLC Status PDU does not match"); + } + t_Watchdog.stop; + } + [] t_Watchdog.timeout + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "UE is not sending RLC Status PDU"); + } + }; + }// end of f_RLC_Status_PDU_Rx + + + /***************************************************************************************************/ + /* + * @desc A delay to allow SS to transmit a DL PDU. To be used if DL PDU transmission is followed by SS reconfiguration + * @param p_DelayTime + * @status APPROVED (LTE) + */ + function f_DelayForDLPDU_Tx(float p_DelayTime := 0.100) + { + f_Delay(p_DelayTime); //@sic R5s110740 delay sic@ + } + + + /* + * @desc function to build list of subframe data for subsequent TTIs; + * for FDD all subframes are suitable resulting in subframe offsets of 0, 1, 2 ... + * for TDD not subframes can be used therefore subframe offsets of 0, 4, 5 .. shall be used + * @param p_PDCP_SDUList .. list of PDCP SDUs which is repeated in each suitable TTI + * @param p_NumTTI .. number of repititions + * @param p_EUTRA_FDD_TDD_Mode .. FDD/TDD + * @return template (value) DRB_DataPerSubframeList_DL_Type + * @status APPROVED (LTE) + */ + function f_BuildPDCPSDUsToBeSentInConsecutiveTTI (template (value) PDCP_SDUList_Type p_PDCP_SDUList, + integer p_NumTTI, + EUTRA_FDD_TDD_Mode_Type p_EUTRA_FDD_TDD_Mode) + return template (value) DRB_DataPerSubframeList_DL_Type + { + var template (value) DRB_DataPerSubframeList_DL_Type v_DataList; + var integer i; + var integer v_SubframeOffset; + + for (i:=0; i grant of 104 bits (see 36.213 Table 7.1.7.2.1-1 */ - /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (LTE, LTE_A) */ cs_RachProcedureConfig_CRNTI(p_RAR_TA, p_Dl_Bandwidth, -, -, 3, 2); @@ -733,6 +740,21 @@ module EUTRA_CellCfg_Templates { } }; + template (value) RachProcedureConfig_Type cs_RachProcedureConfig_Response_NoContRes(RACH_TimingAdvance_Type p_RAR_TA, + Dl_Bandwidth_Type p_Dl_Bandwidth):= + { /* Rach Response config (no contention resolution) */ + // @sic R5s150529, R5-151756 sic@ + /* @status APPROVED (LTE, LTE_A) */ + RACH_ConfigCommon := omit, + RACH_ConfigDedicated := omit, + RachProcedureList := { + { //RAR Tx successful but no Contention Resolution + RAResponse := cs_RandomAccessResponseConfig_Def( p_RAR_TA, p_Dl_Bandwidth ), + ContentionResolutionCtrl := cs_ContReslCtrl_None_TCRNTI + } + } + }; + template (value) DrxCtrl_Type cs_DrxCtrl_None := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ None := true @@ -892,7 +914,7 @@ module EUTRA_CellCfg_Templates { }, SR_Config := cs_SchedulingRequestConfig_r8( cs_508_SchedulingRequest_Config_Default (p_CellInfo.PhysicalParameters.sr_PUCCH_ResourceIndex, p_CellInfo.FDD_TDD_Info.sr_ConfigIndex)), // @sic R5s090312 R5-102177 sic@ CQI_ReportConfig := cs_CQI_ReportConfig_r8andLater( cs_508_CQI_ReportConfig_Default(p_CellInfo.FDD_TDD_Info.cqi_ReportConfig)), - UplinkPowerControlCommon := cs_UplinkPowerControlCommon_r8(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon), /* @sic R5s100135 sic@ */ + UplinkPowerControlCommon := cs_UplinkPowerControlCommon_r8andLater(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.uplinkPowerControlCommon), /* @sic R5s100135 sic@ */ UplinkPowerControlDedicated := cs_UplinkPowerControlDedicated_r8(cs_508_UplinkPowerControlDedicated_Default) }, RachProcedureConfig := cs_RachProcedureConfig_Def( cs_RACH_ConfigCommon_r8(p_CellInfo.Sysinfo.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.rach_ConfigCommon), @@ -911,7 +933,7 @@ module EUTRA_CellCfg_Templates { UL := { DciInfo := cs_DciInfo_CcchDcchDtchUL_Def, Hopping := { - Deactivated := true // FFS + Deactivated := true }, PUCCH_Synch := { None := true}, UL_GrantConfig := { None := true} @@ -990,6 +1012,71 @@ module EUTRA_CellCfg_Templates { } }; + //---------------------------------------------------------------------------- + template (value) SYSTEM_CTRL_REQ cas_CellConfig_CQI_ReportConfig_r10(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) CQI_ReportConfig_r10 p_CQI_ReportConfig_r10, + template (omit) CQI_ReportConfig_v1130 p_CQI_ReportConfig_v1130 := omit, + template (omit) CQI_ReportConfig_v1250 p_CQI_ReportConfig_v1250 := omit) := + { /* @status APPROVED (LTE_A) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Cell := { + AddOrReconfigure := { + Basic := omit, + Active := { + C_RNTI := omit, + PhysicalLayerConfigUL := { + Prach := omit, + Pucch := omit, + Pusch := omit, + TimingAdvance := omit, + SRS_UL_Config := omit, + SR_Config := omit, + CQI_ReportConfig := { + R10andLater := { + cqi_ReportConfig_r10 := p_CQI_ReportConfig_r10, + cqi_ReportConfig_v1130 := p_CQI_ReportConfig_v1130, + cqi_ReportConfig_v1250 := p_CQI_ReportConfig_v1250 /* @sic BASELINE MOVING 2015 R5-153398 sic@ */ + } + }, + UplinkPowerControlCommon := omit, + UplinkPowerControlDedicated := omit + }, + RachProcedureConfig := omit, + CcchDcchDtchConfig := omit, + ServingCellConfig := omit + } + } + } + } + }; + + //---------------------------------------------------------------------------- + + template (value) SYSTEM_CTRL_REQ cas_PhysicalLayerConfigDL_REQ(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) PhysicalLayerConfigDL_Type p_PhysicalLayerConfigDL) := + { /* @status APPROVED (LTE, LTE_A) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Cell := { + AddOrReconfigure := { + Basic := { + ConfigCapability := omit, + StaticCellInfo := omit, + PhysicalLayerConfigDL := p_PhysicalLayerConfigDL, + InitialCellPower := omit, + BcchConfig := omit, + PcchConfig := omit, + CA_CellInitialConfig := omit + }, + Active := omit + } + } + } + }; + //---------------------------------------------------------------------------- template (value) ActiveCellConfig_Type cs_NewC_RNTI_ConfigReq(template (value) C_RNTI p_CRNTI) := @@ -1063,7 +1150,7 @@ module EUTRA_CellCfg_Templates { template (value) SYSTEM_CTRL_REQ cas_ULGrantAllocation_Def_REQ(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo, template (value) PUCCH_Synch_Type p_PUCCH_Synch) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ /* ASP to configure UL Grant and enable default UL allocation */ cas_ULGrantAllocation_REQ(p_CellId, p_TimingInfo, -, p_PUCCH_Synch); @@ -1193,7 +1280,7 @@ module EUTRA_CellCfg_Templates { template (value) RA_PDCCH_Order_Type cs_RA_PDCCH_Order (template (value) PrachPreambleIndex_Type p_PreambleIndex := tsc_EUTRA_PrachPreambleIndex_Dedicated_Def, template (value) PrachMaskIndex_Type p_PrachMaskIndex := 0) := /* see also 36.212 cl. 5.3.3.1.3 */ - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ /* @sic R5s100138 change 5: additional comments sic@ */ PreambleIndex := p_PreambleIndex, /* naming acc. 36.212 cl. 5.3.3.1.3 */ PrachMaskIndex := p_PrachMaskIndex /* naming acc. 36.212 cl. 5.3.3.1.3 */ @@ -1202,7 +1289,7 @@ module EUTRA_CellCfg_Templates { template (value) SYSTEM_CTRL_REQ cas_RA_PDCCH_Order(EUTRA_CellId_Type p_CellId, template (value) TimingInfo_Type p_TimingInfo, template (value) RA_PDCCH_Order_Type p_RA_PDCCH_Order) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo, tsc_NoCnfReq), //@sic Baseline R5s100135 sic@ Request := { PdcchOrder := p_RA_PDCCH_Order @@ -1275,4 +1362,29 @@ module EUTRA_CellCfg_Templates { } }; + template (value) UE_CategoryInfo_Type cs_UE_CategoryInfo (UE_Category_Type p_UE_Category, + template (omit) UE_Category_v1020_Type p_UE_Category_V1020 := omit, + template (omit) UE_Category_v1170_Type p_UE_Category_v1170 := omit, + template (omit) UE_Category_v11a0_Type p_UE_Category_v11a0 := omit, + template (omit) UE_Category_v1250_Type p_UE_Category_v1250 := omit ) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + //@sic R5w150203r1 sic@ + ue_Category := p_UE_Category, + ue_Category_V1020 := p_UE_Category_V1020 , + ue_Category_v1170 := p_UE_Category_v1170, + ue_Category_v11a0 := p_UE_Category_v11a0 , + ue_Category_v1250 := p_UE_Category_v1250 + }; + + + template (value) SYSTEM_CTRL_REQ cas_UE_Cat_InfoConfig_REQ(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (value) UE_CategoryInfo_Type p_UE_CategoryInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + UE_Cat_Info := p_UE_CategoryInfo + } + }; + } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn index 8532b55..3933338 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_DRB_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-04-25 09:25:26 +0200 (Sat, 25 Apr 2015) $ +// $Rev: 13507 $ /******************************************************************************/ module EUTRA_DRB_Templates @@ -41,7 +41,9 @@ module EUTRA_DRB_Templates notUsed := NULL }, rn_IntegrityProtection_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - pdcp_SN_Size_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + pdcp_SN_Size_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + ul_DataSplitDRB_ViaSCG_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + t_Reordering_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; @@ -58,7 +60,9 @@ module EUTRA_DRB_Templates notUsed := NULL }, rn_IntegrityProtection_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - pdcp_SN_Size_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + pdcp_SN_Size_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + ul_DataSplitDRB_ViaSCG_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + t_Reordering_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) UL_AM_RLC cs_508_DRB_UL_AM_RLC := @@ -135,7 +139,7 @@ module EUTRA_DRB_Templates template (value) RLC_Configuration_Type cs_RLC_Configuration_UM(template (value) UL_UM_RLC p_DRB_UL_UM_RLC := cs_508_DRB_UL_UM_RLC, template (value) DL_UM_RLC p_DRB_DL_UM_RLC := cs_508_DRB_DL_UM_RLC) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s100469 Additional Changes sic@ */ Rb := { UM := { @@ -159,7 +163,8 @@ module EUTRA_DRB_Templates bucketSizeDuration := ms100, logicalChannelGroup := p_LCG }, - logicalChannelSR_Mask_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + logicalChannelSR_Mask_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + logicalChannelSR_Prohibit_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) LogicalChannelConfig cs_508_LogicalChannelConfig_DRB_UM := @@ -171,7 +176,8 @@ module EUTRA_DRB_Templates bucketSizeDuration := ms100, logicalChannelGroup := 1 }, - logicalChannelSR_Mask_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + logicalChannelSR_Mask_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + logicalChannelSR_Prohibit_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) MAC_Configuration_Type cs_MAC_Configuration(integer p_Priority, @@ -191,7 +197,7 @@ module EUTRA_DRB_Templates cs_MAC_Configuration(tsc_LogicalChannelPriorityLo); template (value) MAC_Configuration_Type cs_MAC_Configuration_UM := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cs_MAC_Configuration(tsc_LogicalChannelPriorityHi); template (value) RadioBearer_Type cs_OneDRB_ConfigUM(DRB_Identity p_Drb, @@ -201,7 +207,7 @@ module EUTRA_DRB_Templates { /* To configure 1 UM DRB in SS. Parameters according to 36.508 cl. 4.8.2.1.7 */ /* @sic R5s100076: optional parameters p_PdcpConfig, p_RlcConfig sic@ */ /* @sic R5s130681: optional parameter p_DiscardULData sic@ */ - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Id := { Drb := p_Drb }, @@ -225,7 +231,7 @@ module EUTRA_DRB_Templates } }; - template (value) RadioBearer_Type cs_OneDRB_ConfigAM(DRB_Identity p_Drb, + template (value) RadioBearer_Type cs_OneDRB_ConfigAM(DRB_Identity p_Drb := tsc_DRB1, template (value) PDCP_Config p_PdcpConfig := cs_508_PDCP_Config_DRB_AM, template (value) RLC_Configuration_Type p_RlcConfig := cs_RLC_Configuration_AM, template (value) MAC_Configuration_Type p_MacConfig := cs_MAC_Configuration_AM) := @@ -255,7 +261,7 @@ module EUTRA_DRB_Templates } }; - template (value) RadioBearerList_Type cs_DrbConfigList_Def := { cs_OneDRB_ConfigAM(tsc_DRB1) }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) RadioBearerList_Type cs_DrbConfigList_DRB1 := { cs_OneDRB_ConfigAM(tsc_DRB1) }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) RadioBearer_Type cs_DRB_Release(DRB_Identity p_Drb) := { /* To release the configured DRB in SS */ @@ -279,7 +285,9 @@ module EUTRA_DRB_Templates pdcp_Config := p_PDCP_Config, rlc_Config := p_RLC_Config, logicalChannelIdentity := p_DRB_Id+2, - logicalChannelConfig := p_LogicalChannelConfig + logicalChannelConfig := p_LogicalChannelConfig, + drb_TypeChange_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + rlc_Config_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) DRB_ToAddMod cs_508_DRB_ToAddMod_DEFAULT_AM (DRB_Identity p_DRB_Id) := @@ -329,7 +337,9 @@ module EUTRA_DRB_Templates pdcp_Config := omit, rlc_Config := p_RLC_Config, logicalChannelIdentity := omit, - logicalChannelConfig := omit + logicalChannelConfig := omit, + drb_TypeChange_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + rlc_Config_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) DRB_ToAddModList cs_508_DRB_ToAddModList_RECONFIG := diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn index e79457b..4d54d02 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_Measurement_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module EUTRA_Measurement_Templates @@ -38,14 +38,14 @@ module EUTRA_Measurement_Templates type integer GapOffset_Gp0_Type (0..39); /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ type integer GapOffset_Gp1_Type (0..79); /* @status APPROVED (LTE_A, LTE_IRAT) */ - type integer CDMA2000_PilotPnPhase (0..32767); /* @status APPROVED (LTE_IRAT) */ - type integer CDMA2000_PilotStrength (0..63); /* @status APPROVED (LTE_IRAT) */ + type integer CDMA2000_PilotPnPhase (0..32767); /* @status APPROVED (LTE_A, LTE_IRAT) */ + type integer CDMA2000_PilotStrength (0..63); /* @status APPROVED (LTE_A, LTE_IRAT) */ //////////////////// // Constants Part // //////////////////// - const integer tsc_V_Thres := 0; /* FFS dummy value */ + const integer tsc_V_Thres := 0; /* dummy value */ const integer tsc_IdMeasObject_f1 := 1; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ const integer tsc_IdMeasObject_f1_CGI := 17; @@ -55,7 +55,7 @@ module EUTRA_Measurement_Templates const integer tsc_IdMeasObject_f6 := 6; /* @status APPROVED (LTE, LTE_A) */ const integer tsc_IdMeasObject_f8 := 8; /* @status APPROVED (LTE_A, LTE_IRAT) */ const integer tsc_IdMeasObject_f8_CGI := 24; - const integer tsc_IdMeasObject_f10 := 10; /* @status */ + const integer tsc_IdMeasObject_f10 := 10; /* @status APPROVED (LTE_A) */ const integer tsc_IdMeasObject_f11 := 11; /* @status APPROVED (LTE_A, LTE_IRAT) */ const integer tsc_IdMeasObject_f11_CGI := 27; const integer tsc_IdMeasObject_f12 := 12; /* @status APPROVED (LTE_IRAT) */ @@ -70,16 +70,16 @@ module EUTRA_Measurement_Templates const integer tsc_IdReportConfigInterRAT_PERIODICAL := 10; /* @status APPROVED (LTE_IRAT) */ const integer tsc_ReportConfigId_CGI := 5; /* @status APPROVED (LTE, LTE_IRAT) */ const integer tsc_IdReportConfig_B1_UTRA := 13; /* @status APPROVED (LTE_IRAT) */ - const integer tsc_IdReportConfig_A4 := 6; /* @status APPROVED (LTE) */ + const integer tsc_IdReportConfig_A4 := 6; /* @status APPROVED (LTE, LTE_A) */ const integer tsc_IdReportConfig_A5 := 7; /* @status APPROVED (LTE, LTE_A) */ - const MeasObjectId tsc_IdMeasObject_f14 := 14; /* @status APPROVED (LTE_IRAT) */ + const MeasObjectId tsc_IdMeasObject_f14 := 14; /* @status APPROVED (LTE_A, LTE_IRAT) */ const MeasObjectId tsc_IdMeasObject_f14_CGI := 30; /* Meas object Id for CDMA2000 CGI @status (APPROVED) */ const MeasObjectId tsc_IdMeasObject_f17 := 17; /* Meas object Id for CDMA2000 @status APPROVED (LTE_IRAT) */ const MeasObjectId tsc_IdMeasObject_f17_CGI := 32; /* Meas object Id for CDMA2000 CGI */ - const MeasId tsc_IdReportConfig_B2_CDMA2000 := 13; /* @status APPROVED (LTE_IRAT) */ + const MeasId tsc_IdReportConfig_B2_CDMA2000 := 13; /* @status APPROVED (LTE_A, LTE_IRAT) */ const MeasId tsc_IdReportConfig_f17 := 17; /* Report Config Id for CDMA2000 @status APPROVED (LTE_IRAT) */ //////////////////// @@ -140,13 +140,18 @@ module EUTRA_Measurement_Templates s_Measure := p_RSRP_Range, preRegistrationInfoHRPD := p_HRPD_PreRegistrationInfo, speedStatePars := p_SpeedStatePars, - measObjectToAddModList_v9e0 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + measObjectToAddModList_v9e0 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + allowInterruptions_r11 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + measScaleFactor_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + measIdToRemoveListExt_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + measIdToAddModListExt_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + measRSRQ_OnAllSymbols_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } //------------------------------------------------ template (value) MeasObjectToRemoveList cs_MeasObjectToRemoveList_1Entry( MeasObjectId p_MeasObjectId ) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ p_MeasObjectId }; @@ -205,7 +210,9 @@ module EUTRA_Measurement_Templates template (omit) BlackCellsToAddModList p_BlackCellsToAddModList := omit, template (omit) PhysCellId p_PhysCellId := omit, template (omit) MeasSubframePatternConfigNeigh_r10 p_MeasSubframePatternConfigNeigh_r10 := omit, - template (omit) MeasCycleSCell_r10 p_MeasCycleSCell_r10 := omit) := //@sic R5s140009 sic@ + template (omit) MeasCycleSCell_r10 p_MeasCycleSCell_r10 := omit, + template (omit) NeighCellConfig p_NeighCellConfig := '01'B //@sic R5-153740 sic@ + ) := //@sic R5s140009 sic@ { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ /* @sic R5s120925 - additional change: p_BlackCellsToRemoveList, p_BlackCellsToAddModList, p_PhysCellId made optional sic@ */ /* @sic R5s130764: TC_8_3_1_21 - additional parameter p_MeasSubframePatternConfigNeigh_r10 sic@ */ @@ -213,7 +220,7 @@ module EUTRA_Measurement_Templates carrierFreq := p_EUTRA_DL_CarrierFreq, allowedMeasBandwidth := p_MeasurementBandwidth, presenceAntennaPort1 := false, - neighCellConfig := '01'B, + neighCellConfig := p_NeighCellConfig, offsetFreq := dB0, cellsToRemoveList := omit, cellsToAddModList := omit, @@ -222,7 +229,12 @@ module EUTRA_Measurement_Templates cellForWhichToReportCGI := p_PhysCellId, measCycleSCell_r10 := p_MeasCycleSCell_r10, //@sic R5s140009 sic@ measSubframePatternConfigNeigh_r10 := p_MeasSubframePatternConfigNeigh_r10, - widebandRSRQ_Meas_r11 := omit + widebandRSRQ_Meas_r11 := omit, + altTTT_CellsToRemoveList_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + altTTT_CellsToAddModList_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + t312_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reducedMeasPerformance_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + measDS_Config_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -340,7 +352,8 @@ module EUTRA_Measurement_Templates cellsToRemoveList := p_CellsToRemoveList, cellsToAddModList := p_CellsToAddModList, cellForWhichToReportCGI := p_CellForWhichToReportCGI, - csg_allowedReportingCells_v930 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + csg_allowedReportingCells_v930 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + reducedMeasPerformance_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -427,7 +440,15 @@ module EUTRA_Measurement_Templates si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ ue_RxTxTimeDiffPeriodical_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ includeLocationInfo_r10 := p_IncludeLocationInfo_r10, - reportAddNeighMeas_r10 := p_ReportAddNeighMeas_r10 + reportAddNeighMeas_r10 := p_ReportAddNeighMeas_r10, + alternativeTimeToTrigger_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + useT312_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + usePSCell_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + aN_Threshold1_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + a5_Threshold2_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reportStrongestCSI_RSs_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reportCRS_Meas_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + triggerQuantityCSI_RS_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -638,7 +659,8 @@ module EUTRA_Measurement_Templates reportAmount := p_ReportAmount, si_RequestForHO_r9 := omit, reportQuantityUTRA_FDD_r10 := omit, - includeLocationInfo_r11 := omit + includeLocationInfo_r11 := omit, + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -667,20 +689,28 @@ module EUTRA_Measurement_Templates si_RequestForHO_r9 := p_Si_RequestForHO_r9, //@sic R5s140129 sic@ /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ ue_RxTxTimeDiffPeriodical_r9 := p_Ue_RxTxTimeDiffPeriodical_r9, includeLocationInfo_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - reportAddNeighMeas_r10 := omit /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + reportAddNeighMeas_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + alternativeTimeToTrigger_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + useT312_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + usePSCell_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + aN_Threshold1_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + a5_Threshold2_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reportStrongestCSI_RSs_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reportCRS_Meas_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + triggerQuantityCSI_RS_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; - //------------------------------------------------ - template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigInterRAT_eventB2_UTRA_RSCP(EUTRA_RS_EPRE_Type p_EUTRA_Thres, UTRA_RSCP_dBm_Type p_UTRAN_Thres, Hysteresis p_Hysteresis, TimeToTrigger p_TimeToTrigger, integer p_MaxReportCells, ReportInterval p_ReportInterval, - ReportConfigInterRAT.reportAmount p_ReportAmount) := + ReportConfigInterRAT.reportAmount p_ReportAmount, + template (omit) boolean p_IncludeLocationInfo_r11 := omit) := { /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @sic R5s150732, R5s150730 sic@ */ reportConfigInterRAT := { triggerType := { event := { @@ -703,9 +733,10 @@ module EUTRA_Measurement_Templates maxReportCells := p_MaxReportCells, reportInterval := p_ReportInterval, reportAmount := p_ReportAmount, - si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - reportQuantityUTRA_FDD_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - includeLocationInfo_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + reportQuantityUTRA_FDD_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + includeLocationInfo_r11 := p_IncludeLocationInfo_r11, /* @sic R5s130195 BASELINE MOVING 2013, R5s150730 sic@ */ + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -741,7 +772,8 @@ module EUTRA_Measurement_Templates reportAmount := p_ReportAmount, si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ reportQuantityUTRA_FDD_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - includeLocationInfo_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + includeLocationInfo_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -775,7 +807,8 @@ module EUTRA_Measurement_Templates reportAmount := p_ReportAmount, si_RequestForHO_r9 := omit, reportQuantityUTRA_FDD_r10 := omit, - includeLocationInfo_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + includeLocationInfo_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -809,7 +842,8 @@ module EUTRA_Measurement_Templates reportAmount := p_ReportAmount, si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ reportQuantityUTRA_FDD_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - includeLocationInfo_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + includeLocationInfo_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -830,7 +864,8 @@ module EUTRA_Measurement_Templates reportAmount := p_ReportAmount, si_RequestForHO_r9 := p_Si_RequestForHO_r9, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ reportQuantityUTRA_FDD_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - includeLocationInfo_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + includeLocationInfo_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -927,7 +962,8 @@ module EUTRA_Measurement_Templates quantityConfigUTRA := p_QuantityConfigUTRA, quantityConfigGERAN := p_QuantityConfigGERAN, quantityConfigCDMA2000 := p_QuantityConfigCDMA2000, - quantityConfigUTRA_v1020 := omit /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + quantityConfigUTRA_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + quantityConfigEUTRA_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) QuantityConfig cs_QuantityConfig_Def := cs_QuantityConfig(cs_QuantityConfigEUTRA(omit, omit), omit, omit, omit); /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ @@ -1011,7 +1047,10 @@ module EUTRA_Measurement_Templates measResultNeighCells := p_MeasResultNeighCells, measResultForECID_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ locationInfo_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - measResultServFreqList_r10 := p_MeasResultServFreqList_r10 /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + measResultServFreqList_r10 := p_MeasResultServFreqList_r10, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + measId_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultPCell_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultCSI_RS_List_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ }, nonCriticalExtension := * //according to 36.508 4.6.1 table 4.6.1-5 } @@ -1049,7 +1088,7 @@ module EUTRA_Measurement_Templates //8.3.4.3, Step4 template (present) UL_DCCH_Message cr_MeasurementReport_Eutra_1Entry_rsrp(template integer p_MeasId, template PhysCellId p_PhysCellId) := - /* @status APPROVED (LTE, LTE_A) */ + /* @status APPROVED (LTE) */ cr_MeasurementReport(p_MeasId, ?, ?, cr_MeasResultNeighCells_measResultListEUTRA_1Entry(p_PhysCellId, omit, ?, omit)); //------------------------------------------------ @@ -1090,7 +1129,9 @@ module EUTRA_Measurement_Templates measResult := { rsrpResult := p_RsrpResult, rsrqResult := p_RsrqResult, - additionalSI_Info_r9 := p_AdditionalSI_Info_r9 /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := p_AdditionalSI_Info_r9, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResult_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ } } } @@ -1112,7 +1153,9 @@ module EUTRA_Measurement_Templates measResult := { rsrpResult := p_RsrpResult_1, rsrqResult := p_RsrqResult_1, - additionalSI_Info_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResult_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ } }, { @@ -1121,7 +1164,9 @@ module EUTRA_Measurement_Templates measResult := { rsrpResult := p_RsrpResult_2, rsrqResult := p_RsrqResult_2, - additionalSI_Info_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResult_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ } } } @@ -1167,7 +1212,8 @@ module EUTRA_Measurement_Templates measResult := { utra_RSCP := p_UTRA_RSCP, utra_EcN0 := p_UTRA_EcN0, - additionalSI_Info_r9 := p_AdditionalSI_Info_r9 /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := p_AdditionalSI_Info_r9, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } } } @@ -1188,17 +1234,18 @@ module EUTRA_Measurement_Templates measResult := { utra_RSCP := p_UTRA_RSCP, utra_EcN0 := p_UTRA_EcN0, - additionalSI_Info_r9 := p_AdditionalSI_Info_r9 /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := p_AdditionalSI_Info_r9, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } } } }; - template (present) MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListUTRA_2Entries_FDD(template PhysCellIdUTRA_TDD p_PhysCellId_1, + template (present) MeasResults.measResultNeighCells cr_MeasResultNeighCells_measResultListUTRA_2Entries_FDD(template PhysCellIdUTRA_FDD p_PhysCellId_1, //@sic R5s140910 sic@ 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 PhysCellIdUTRA_FDD p_PhysCellId_2, //@sic R5s140910 sic@ template MeasResultUTRA.cgi_Info p_Cgi_Info_2, template UTRA_RSCP_Type p_UTRA_RSCP_2, template UTRA_EcN0_Type p_UTRA_EcN0_2) := @@ -1212,7 +1259,8 @@ module EUTRA_Measurement_Templates measResult := { utra_RSCP := p_UTRA_RSCP_1, utra_EcN0 := p_UTRA_EcN0_1, - additionalSI_Info_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } }, { @@ -1223,7 +1271,8 @@ module EUTRA_Measurement_Templates measResult := { utra_RSCP := p_UTRA_RSCP_2, utra_EcN0 := p_UTRA_EcN0_2, - additionalSI_Info_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } } ) //@sic R5s110435 Change2 sic@ } @@ -1247,7 +1296,8 @@ module EUTRA_Measurement_Templates measResult := { utra_RSCP := p_UTRA_RSCP_1, utra_EcN0 := p_UTRA_EcN0_1, - additionalSI_Info_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } }, { @@ -1258,7 +1308,8 @@ module EUTRA_Measurement_Templates measResult := { utra_RSCP := p_UTRA_RSCP_2, utra_EcN0 := p_UTRA_EcN0_2, - additionalSI_Info_r9 := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + additionalSI_Info_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } } ) //@sic R5s110435 Change2 sic@ } @@ -1515,7 +1566,7 @@ module EUTRA_Measurement_Templates cs_508_ReportConfigInterRAT_B2_CDMA2000( -69 ) ), omit, cs_MeasIdToAddModList_1Entry( 1, p_MeasObjectId, tsc_IdReportConfig_B2_CDMA2000 ), - cs_QuantityConfig( omit, omit, omit, cs_QuantityConfigCDMA2000( p_MeasQuantity ) ), // 0 is just put here for compiling, this value is measQuantityCDMA2000 and is currently FFS as per 36508 + cs_QuantityConfig( omit, omit, omit, cs_QuantityConfigCDMA2000( p_MeasQuantity ) ), cs_508_MeasGapConfig_GP2)); // currently using this since the MeasGapConfig for CDMA2000 is not defined and the MeasGapConfig given in 36523 in test case prose cannot be found //------------------------------------------------ @@ -1541,7 +1592,7 @@ module EUTRA_Measurement_Templates template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_1Entry_IntraLTE(RRC_TransactionIdentifier p_RRC_TI, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, AllowedMeasBandwidth p_MeasurementBandwidth) := - /* @status APPROVED (LTE, LTE_A) */ + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, @@ -1563,7 +1614,7 @@ module EUTRA_Measurement_Templates template (omit) CellIndexList p_CellsToRemoveList, template (omit) CellsToAddModListCDMA2000 p_CellsToAddModList, template (omit) PhysCellIdCDMA2000 p_CellForWhichToReportCGI ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ measObjectCDMA2000 := { cdma2000_Type := p_CDMA2000_Type, carrierFreq := { @@ -1645,12 +1696,12 @@ module EUTRA_Measurement_Templates //------------------------------------------------ template (value) QuantityConfigCDMA2000 cs_QuantityConfigCDMA2000 (QuantityConfigCDMA2000.measQuantityCDMA2000 p_MeasQuantityCDMA2000 ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ measQuantityCDMA2000 := p_MeasQuantityCDMA2000 }; - template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigInterRAT_B2_CDMA2000( EUTRA_RS_EPRE_Type p_EUTRA_Thres ) := - { /* @status APPROVED (LTE_IRAT) */ + template (value) ReportConfigToAddMod.reportConfig cs_508_ReportConfigInterRAT_B2_CDMA2000(EUTRA_RS_EPRE_Type p_EUTRA_Thres) := + { /* @status APPROVED (LTE_A, LTE_IRAT) */ reportConfigInterRAT := { triggerType := { event := { @@ -1673,7 +1724,8 @@ module EUTRA_Measurement_Templates reportAmount := r1, si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ reportQuantityUTRA_FDD_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - includeLocationInfo_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + includeLocationInfo_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + b2_Threshold1_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; @@ -1681,7 +1733,7 @@ module EUTRA_Measurement_Templates template MeasResultCDMA2000.cgi_Info p_Cgi_Info, template CDMA2000_PilotPnPhase p_PilotPnPhase, template CDMA2000_PilotStrength p_PilotStrength) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ physCellId := p_PhysCellId, cgi_Info := p_Cgi_Info, measResult := { @@ -1695,7 +1747,7 @@ module EUTRA_Measurement_Templates template MeasResultCDMA2000.cgi_Info p_Cgi_Info, template CDMA2000_PilotPnPhase p_PilotPnPhase, template CDMA2000_PilotStrength p_PilotStrength ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ /* @sic R5s120913 - additional change: usage of cr_MeasResultCDMA2000 sic@ */ measResultsCDMA2000 := { preRegistrationStatusHRPD := p_PreRegistrationStatusHRPD, diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn index ac6caf1..c75d501 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_RRC_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module EUTRA_RRC_Templates { @@ -22,13 +22,15 @@ module EUTRA_RRC_Templates { type RRCConnectionRelease.criticalExtensions.c1.rrcConnectionRelease_r8.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.extendedWaitTime_r10 ExtendedWaitTime_r10_Type; /* @status APPROVED (LTE_A) */ const B32_Type tsc_NonceMME := oct2bit ('11223344'O ); /* @sic R5-102227, R5-123655 Can be changed to pixit sic@ - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (LTE_A, LTE_IRAT) */ + + //**************************************************************************** // Auxilliary templates //---------------------------------------------------------------------------- template (present) EstablishmentCause cr_EstablishmentCause_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) EstablishmentCause cr_EstablishmentCause_MoData := mo_Data; /* @status APPROVED (IMS, LTE) */ + template (present) EstablishmentCause cr_EstablishmentCause_MoData := mo_Data; /* @status APPROVED (IMS, LTE, LTE_A) */ template (present) EstablishmentCause cr_EstablishmentCause_mt_Access := mt_Access; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (present) EstablishmentCause cr_EstablishmentCause_MoSignalling := mo_Signalling; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ template (present) EstablishmentCause cr_EstablishmentCause_HighPriorityAccess := highPriorityAccess; /* @status APPROVED (LTE) */ @@ -187,7 +189,8 @@ module EUTRA_RRC_Templates { TimeAlignmentTimer p_TimeAlignmentTimer := sf750, template (omit) PHR_Config_Type p_PHR_Config := cs_508_PHR_Config_Setup, template (omit) SR_ProhibitTimer_r9_Type p_SR_ProhibitTimer_r9 := omit, - template (omit) MAC_MainConfig_v1020_Type p_MAC_MainConfig_v1020 :=omit) := + template (omit) MAC_MainConfig_v1020_Type p_MAC_MainConfig_v1020 := omit, + template (omit) boolean p_E_HARQ_Pattern_r12 := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s120700 change 2: new parameter p_SR_ProhibitTimer_r9 sic@ */ ul_SCH_Config := p_UL_SCH_Config, @@ -195,14 +198,17 @@ module EUTRA_RRC_Templates { timeAlignmentTimerDedicated := p_TimeAlignmentTimer, phr_Config := p_PHR_Config, sr_ProhibitTimer_r9 := p_SR_ProhibitTimer_r9, /* @sic R5s110176 BASELINE MOVING 2011 sic@ NOTE: FFS in TS 36.508 V10.0.0 */ - mac_MainConfig_v1020 := p_MAC_MainConfig_v1020, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: FFS in TS 36.508 V10.0.0 (may be set to cs_508_MAC_MainConfig_v1020) */ + mac_MainConfig_v1020 := p_MAC_MainConfig_v1020, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: FFS in TS 36.508 V10.0.0 (may be set to cs_508_MAC_MainConfig_v1020) */ stag_ToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ stag_ToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - drx_Config_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + drx_Config_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + e_HARQ_Pattern_r12 := p_E_HARQ_Pattern_r12, /* @sic BASELINE MOVING 2015 sic@ */ + dualConnectivityPHR := omit, /* @sic BASELINE MOVING 2015 sic@ */ + logicalChannelSR_Config_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) MAC_MainConfig_Type cs_MAC_MainConfig_Explicit(template (value) MAC_MainConfig p_MAC_MainConfig) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT, LTE_A) */ + { /* @status APPROVED (LTE, LTE_A) */ explicitValue := p_MAC_MainConfig }; @@ -261,7 +267,7 @@ module EUTRA_RRC_Templates { { /* @sic R5-104796 DRX support sic@ */ var template (omit) DRX_Config v_Drx_Config; - if (pc_FeatrGrp_5) { + if ((pc_FeatrGrp_5_F or pc_FeatrGrp_5_T)) { // @sic R5-150557 For this PICS 36.523-2 specifies the value shall be the same for both FDD and TDD, so don't need to get FDD/TDD mode here sic@ select (p_DrxConfigurationCondition) { case (DRX_L){ //Configure DRX parameters with condition DRX_L @@ -360,26 +366,18 @@ module EUTRA_RRC_Templates { } }; - template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_RBC_HO(template (omit) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated := omit, - template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, - template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, - template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ - template (omit) SchedulingRequestConfig p_SchedulingRequestConfig := omit) := - { /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 for condition RBC or RBC-HO: - (for RBC pucch-ConfigDedicated and schedulingRequestConfig are 'not present' i.e. p_PUCCH_ConfigDedicated and p_SchedulingRequestConfig shall be omit */ - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - /* @sic R5s100473: additional changes (new parameter p_SchedulingRequestConfig) sic@ */ - /* @sic R5s120663 change 6: new parameter p_PUCCH_ConfigDedicated sic@ */ + template (value) PhysicalConfigDedicated cs_PhysicalConfigDedicated_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ pdsch_ConfigDedicated := omit, - pucch_ConfigDedicated := p_PUCCH_ConfigDedicated, + pucch_ConfigDedicated := omit, pusch_ConfigDedicated := omit, uplinkPowerControlDedicated := omit, - tpc_PDCCH_ConfigPUCCH := cs_508_TPC_PDCCH_Config_Default_PUCCH, - tpc_PDCCH_ConfigPUSCH := cs_508_TPC_PDCCH_Config_Default_PUSCH, - cqi_ReportConfig := cs_508_CQI_ReportConfig_Default(p_CQI_ReportingPeriodic), - soundingRS_UL_ConfigDedicated := p_SoundingRsUl_ConfigDedicated, - antennaInfo := p_AntennaInfo, // @sic R5-100786 sic@ - schedulingRequestConfig := p_SchedulingRequestConfig, + tpc_PDCCH_ConfigPUCCH := omit, + tpc_PDCCH_ConfigPUSCH := omit, + cqi_ReportConfig := omit, + soundingRS_UL_ConfigDedicated := omit, + antennaInfo := omit, + schedulingRequestConfig := omit, cqi_ReportConfig_v920 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ antennaInfo_v920 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ antennaInfo_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ @@ -403,104 +401,105 @@ module EUTRA_RRC_Templates { cqi_ReportConfig_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ pucch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ pusch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - uplinkPowerControlDedicated_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + uplinkPowerControlDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + antennaInfo_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + eimta_MainConfig_r12 := omit, /* BASELINE MOVING 2015 sic@ */ + eimta_MainConfigPCell_r12 := omit, /* BASELINE MOVING 2015 sic@ */ + pucch_ConfigDedicated_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + cqi_ReportConfigPCell_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + uplinkPowerControlDedicated_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + pusch_ConfigDedicated_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + csi_RS_Config_v1250 := omit /* BASELINE MOVING 2015 sic@ */ + }; + + template (value) PhysicalConfigDedicated cds_PhysicalConfigDedicated_Common(template (omit) PDSCH_ConfigDedicated p_PDSCH_ConfigDedicated := omit, + template (omit) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated := omit, + template (omit) PUSCH_ConfigDedicated p_PUSCH_ConfigDedicated := omit, + template (omit) UplinkPowerControlDedicated p_UplinkPowerControlDedicated := omit, + template (omit) CQI_ReportConfig p_CQI_ReportConfig := omit, + template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated := omit, + template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, + template (omit) SchedulingRequestConfig p_SchedulingRequestConfig := omit, //@sic R5s150650 sic@ + template (omit) CQI_ReportConfig_r10 p_CQI_ReportConfig_r10 := omit,//@sic R5-153982 sic@ + template (omit) CQI_ReportConfig_v1250 p_CQI_ReportConfig_v1250 := omit +) + modifies cs_PhysicalConfigDedicated_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + pdsch_ConfigDedicated := p_PDSCH_ConfigDedicated, + pucch_ConfigDedicated := p_PUCCH_ConfigDedicated, + pusch_ConfigDedicated := p_PUSCH_ConfigDedicated, + uplinkPowerControlDedicated := p_UplinkPowerControlDedicated, + tpc_PDCCH_ConfigPUCCH := cs_508_TPC_PDCCH_Config_Default_PUCCH, + tpc_PDCCH_ConfigPUSCH := cs_508_TPC_PDCCH_Config_Default_PUSCH, + cqi_ReportConfig := p_CQI_ReportConfig, + soundingRS_UL_ConfigDedicated := p_SoundingRsUl_ConfigDedicated, + antennaInfo := p_AntennaInfo, + schedulingRequestConfig := p_SchedulingRequestConfig, //@sic R5s150650 sic@ + cqi_ReportConfig_r10 := p_CQI_ReportConfig_r10, + cqi_ReportConfigPCell_v1250 := p_CQI_ReportConfig_v1250 //@sic R5-153982 sic@ }; + template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_RBC_HO(template (omit) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated := omit, + template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, + template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, + template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ + template (omit) SchedulingRequestConfig p_SchedulingRequestConfig := omit) := + /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 for condition RBC or RBC-HO: + (for RBC pucch-ConfigDedicated and schedulingRequestConfig are 'not present' i.e. p_PUCCH_ConfigDedicated and p_SchedulingRequestConfig shall be omit */ + /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + /* @sic R5s100473: additional changes (new parameter p_SchedulingRequestConfig) sic@ */ + /* @sic R5s120663 change 6: new parameter p_PUCCH_ConfigDedicated sic@ */ + /* @sic R5s150362 - Additional change: cds_PhysicalConfigDedicated_Common sic@ */ + cds_PhysicalConfigDedicated_Common(-, p_PUCCH_ConfigDedicated, -, -, cs_508_CQI_ReportConfig_Default(p_CQI_ReportingPeriodic), p_SoundingRsUl_ConfigDedicated, p_AntennaInfo, p_SchedulingRequestConfig); + + template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_RBC(template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - /* @sic R5s120663 change 6 sic@ */ - cs_508_PhysicalConfigDedicated_Default_RBC_HO(-, p_CQI_ReportingPeriodic, p_SoundingRsUl_ConfigDedicated, p_AntennaInfo, -); - - - template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_SRB1(template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, - template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, // @sic R5-120497 sic@ - template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, // @sic R5-120497 sic@ - SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5s090312 sic@ - template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ - SR_ConfigIndex_Type p_SR_ConfigIndex) := // @sic R5-102177 sic@ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic R5s120663 change 6 sic@ */ + /* @sic R5s150362 - Additional change: cds_PhysicalConfigDedicated_Common sic@ */ + cds_PhysicalConfigDedicated_Common(-, -, -, -, cs_508_CQI_ReportConfig_Default(p_CQI_ReportingPeriodic), p_SoundingRsUl_ConfigDedicated, p_AntennaInfo); + + + template (value) PhysicalConfigDedicated cds_508_PhysicalConfigDedicated_Default_SRB1(template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, + template (omit) UplinkPowerControlDedicated p_UplinkPowerControlDedicated := cs_508_UplinkPowerControlDedicated_Default, + template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, // @sic R5-120497 sic@ + template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, // @sic R5-120497 sic@ + SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5s090312 sic@ + template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ + SR_ConfigIndex_Type p_SR_ConfigIndex) // @sic R5-102177 sic@ + modifies cs_PhysicalConfigDedicated_Omit := { /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 */ /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic R5s150362 - Additional change: modifies cs_PhysicalConfigDedicated_Omit; new parameter p_UplinkPowerControlDedicated sic@ */ pdsch_ConfigDedicated := cs_508_PDSCH_ConfigDedicated_Default, pucch_ConfigDedicated := p_PUCCH_ConfigDedicated, pusch_ConfigDedicated := cs_508_PUSCH_ConfigDedicated_Default, - uplinkPowerControlDedicated := cs_508_UplinkPowerControlDedicated_Default, - tpc_PDCCH_ConfigPUCCH := omit, - tpc_PDCCH_ConfigPUSCH := omit, + uplinkPowerControlDedicated := p_UplinkPowerControlDedicated, cqi_ReportConfig := cs_508_CQI_ReportConfig_Default(p_CQI_ReportingPeriodic), // @sic R5-120497 sic@ soundingRS_UL_ConfigDedicated := p_SoundingRsUl_ConfigDedicated, // @sic R5-120497 sic@ antennaInfo := p_AntennaInfo, // @sic R5-100786 sic@ - schedulingRequestConfig := cs_508_SchedulingRequest_Config_Default(p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex), - cqi_ReportConfig_v920 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - antennaInfo_v920 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - antennaInfo_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - antennaInfoUL_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - cif_Presence_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - cqi_ReportConfig_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - csi_RS_Config_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - pucch_ConfigDedicated_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - pusch_ConfigDedicated_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - schedulingRequestConfig_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - soundingRS_UL_ConfigDedicated_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - soundingRS_UL_ConfigDedicatedAperiodic_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - uplinkPowerControlDedicated_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - additionalSpectrumEmissionCA_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ NOTE: condition in 36.508 cl. 4.8.2.1.5 is still FFS */ - csi_RS_ConfigNZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigNZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - epdcch_Config_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pdsch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - cqi_ReportConfig_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pucch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pusch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - uplinkPowerControlDedicated_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + schedulingRequestConfig := cs_508_SchedulingRequest_Config_Default(p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex) }; template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_HO(template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, // @sic R5-120497 sic@ - SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5s090312 sic@ template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ + SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5s090312 sic@ SR_ConfigIndex_Type p_SR_ConfigIndex) := // @sic R5-102177 sic@ - { /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 for condition HO-TO-EUTRA */ - /* @status APPROVED (LTE_A, LTE, LTE_IRAT) */ - // @sic R5-123630 sic@ - pdsch_ConfigDedicated := cs_508_PDSCH_ConfigDedicated_Default, - pucch_ConfigDedicated := p_PUCCH_ConfigDedicated, - pusch_ConfigDedicated := cs_508_PUSCH_ConfigDedicated_Default, - uplinkPowerControlDedicated := cs_508_UplinkPowerControlDedicated_Default, - tpc_PDCCH_ConfigPUCCH := cs_508_TPC_PDCCH_Config_Default_PUCCH, - tpc_PDCCH_ConfigPUSCH := cs_508_TPC_PDCCH_Config_Default_PUSCH, - cqi_ReportConfig := cs_508_CQI_ReportConfig_Default(p_CQI_ReportingPeriodic), - soundingRS_UL_ConfigDedicated := omit, - antennaInfo := p_AntennaInfo, - schedulingRequestConfig := cs_508_SchedulingRequest_Config_Default(p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex), - cqi_ReportConfig_v920 := omit, - antennaInfo_v920 := omit, - antennaInfo_r10 := omit, - antennaInfoUL_r10 := omit, - cif_Presence_r10 := omit, - cqi_ReportConfig_r10 := omit, - csi_RS_Config_r10 := omit, - pucch_ConfigDedicated_v1020 := omit, - pusch_ConfigDedicated_v1020 := omit, - schedulingRequestConfig_v1020 := omit, - soundingRS_UL_ConfigDedicated_v1020 := omit, - soundingRS_UL_ConfigDedicatedAperiodic_r10 := omit, - uplinkPowerControlDedicated_v1020 := omit, - additionalSpectrumEmissionCA_r10 := omit, - csi_RS_ConfigNZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigNZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - epdcch_Config_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pdsch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - cqi_ReportConfig_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pucch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pusch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - uplinkPowerControlDedicated_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - }; + /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 for condition HO-TO-EUTRA */ + /* @status APPROVED (LTE_A, LTE, LTE_IRAT) */ + /* @sic R5-123630 sic@ */ + /* @sic R5s150362 - Additional change: cds_PhysicalConfigDedicated_Common sic@ */ + cds_PhysicalConfigDedicated_Common(cs_508_PDSCH_ConfigDedicated_Default, + p_PUCCH_ConfigDedicated, + cs_508_PUSCH_ConfigDedicated_Default, + cs_508_UplinkPowerControlDedicated_Default, + cs_508_CQI_ReportConfig_Default(p_CQI_ReportingPeriodic), + -, // p_SoundingRsUl_ConfigDedicated := omit + p_AntennaInfo, + cs_508_SchedulingRequest_Config_Default(p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex)); template (value) RLF_TimersAndConstants_r9 cs_RLF_TimersAndConstants_r9 := { /* @status APPROVED (LTE) */ @@ -626,7 +625,8 @@ module EUTRA_RRC_Templates { physicalConfigDedicated := p_PhysicalConfigDedicated, rlf_TimersAndConstants_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ measSubframePatternPCell_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - neighCellsCRS_Info_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + neighCellsCRS_Info_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + naics_Info_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) RadioResourceConfigDedicated cs_RadioResourceConfigDedicated_PhyConfig (template (value) PhysicalConfigDedicated p_PhysicalConfigDedicated) := @@ -634,7 +634,6 @@ module EUTRA_RRC_Templates { /* @status APPROVED (LTE, LTE_A) */ cs_RadioResourceConfigDedicated_MacPhy(-, -, p_PhysicalConfigDedicated); - template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_HO(template (omit) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, @@ -672,7 +671,8 @@ module EUTRA_RRC_Templates { physicalConfigDedicated := p_PhysicalConfigDedicated, rlf_TimersAndConstants_r9 := p_RLF_TimersAndConstants_r9, /* @sic R5s110176 BASELINE MOVING 2011 sic@ @sic R5s120808 sic@ */ measSubframePatternPCell_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - neighCellsCRS_Info_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + neighCellsCRS_Info_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + naics_Info_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_SRB1(template (value) MAC_MainConfig_Type p_MAC_MainConfig, @@ -700,7 +700,7 @@ module EUTRA_RRC_Templates { /* Values according to 36.508 cl. 4.6.3 Table 4.6.3-16 (using condition n=1 & m=0) */ /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5-144797: parameter p_DRB_Id sic@ */ - cs_508_RadioResourceConfigDedicated_SRB2({ cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1) }, + cs_508_RadioResourceConfigDedicated_SRB2({ cs_508_DRB_ToAddMod_DEFAULT_AM(p_DRB_Id) }, /* @sic R5s141149 change 1 sic@ */ cs_508_MAC_MainConfig_Explicit_RBC_DrxL, cs_508_PhysicalConfigDedicated_Default_RBC(p_CQI_ReportingPeriodic, p_SoundingRsUl_ConfigDedicated, p_AntennaInfo)); //@sic R5-100786 sic@ @@ -712,20 +712,6 @@ module EUTRA_RRC_Templates { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cs_RadioResourceConfigDedicated_SrbDrbConfig(-, p_DRB_ToAddModList, p_MAC_MainConfig); - template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_AddAmDrb(DRB_Identity p_DRB_Id) := - /* Values according to 36.508 cl. 4.6.3 Table 4.6.3-17 (using condition n=1 and m=0) */ - /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - /* @status APPROVED (IMS, LTE) */ - cs_RadioResourceConfig_DRB_RECONFIG({cs_508_DRB_ToAddMod_DEFAULT_AM(p_DRB_Id)}); - - template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_AddUmDrb(DRB_Identity p_DRB_Id) := - /* Values according to 36.508 cl. 4.6.3 Table 4.6.3-17 (using condition n=1 and m=1) */ - /* @status APPROVED (IMS, LTE) */ - /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - /* @status APPROVED (LTE) */ - cs_RadioResourceConfig_DRB_RECONFIG({cs_508_DRB_ToAddMod_DEFAULT_UM(p_DRB_Id)}, - cs_508_MAC_MainConfig_Explicit_RBC_DrxS); //Since m > 0 (where m represents number of RLC-UM bearers being added) - template (value) RadioResourceConfigDedicated cs_RadioResourceConfigDedicated_DRB_Release(DRB_Identity p_DRB_Id) := { /* To release one specific Radio Bearer */ /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ @@ -737,7 +723,8 @@ module EUTRA_RRC_Templates { physicalConfigDedicated := omit, rlf_TimersAndConstants_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ measSubframePatternPCell_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - neighCellsCRS_Info_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + neighCellsCRS_Info_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + naics_Info_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) PRACH_Config cs_PRACH_Config_Def(template (value) PRACH_ConfigSIB p_PRACH_Configuration) := @@ -880,19 +867,21 @@ module EUTRA_RRC_Templates { //---------------------------------------------------------------------------- template (value) SecurityAlgorithmConfig cs_SecurityAlgorithmConfig(IntegrityProtAlgorithm_Type p_IntegrityProtAlgorithm := px_RRC_IntegrityProtAlgorithm, - CipheringAlgorithm_Type p_CipheringAlgorithm := px_RRC_CipheringAlgorithm) := + CipheringAlgorithm_r12 p_CipheringAlgorithm := px_RRC_CipheringAlgorithm) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ cipheringAlgorithm := p_CipheringAlgorithm, integrityProtAlgorithm := p_IntegrityProtAlgorithm }; template (value) SecurityConfigHO cs_SecurityConfigHO_InterRAT(IntegrityProtAlgorithm_Type p_AS_IntegrityProtAlgorithm := px_RRC_IntegrityProtAlgorithm, - CipheringAlgorithm_Type p_AS_CipheringAlgorithm := px_RRC_CipheringAlgorithm, + CipheringAlgorithm_r12 p_AS_CipheringAlgorithm := px_RRC_CipheringAlgorithm, B3_Type p_NAS_IntegrityProtAlgorithm := px_NAS_IntegrityProtAlgorithm, B3_Type p_NAS_CipheringAlgorithm := px_NAS_CipheringAlgorithm, B3_Type p_NAS_KeySetIdentifier := '000'B) := { // Dummy values to include in the GERAN to EUTRA PS Handover Cmd // @sic R5s120535 sic@ + /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ /* @status APPROVED (LTE_A, LTE_IRAT) */ handoverType := { interRAT := { @@ -952,13 +941,13 @@ module EUTRA_RRC_Templates { }; template (value) AntennaInfoCommon cs_AntennaInfoCommon_2Port := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ antennaPortsCount := an2 }; - template (value) AntennaInfoDedicated cs_AntennaInfoDedicated_Def := + template (value) AntennaInfoDedicated cs_AntennaInfoDedicated(AntennaInfoDedicated.transmissionMode p_TransmissionMode := tm1) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - transmissionMode := tm1, /* Transmission modes defined in TS 36.213; tm1: Single-antenna port */ + transmissionMode := p_TransmissionMode, /* Transmission modes defined in TS 36.213; tm1: Single-antenna port */ codebookSubsetRestriction := omit, /* omit for tm1 */ ue_TransmitAntennaSelection := { release := NULL // @sic R5s090180 acc. to 36.508 table Table 4.8.2.1.6-1 and 36.331 section 9.2.4. sic@ @@ -967,7 +956,7 @@ module EUTRA_RRC_Templates { template (value) AntennaInfoDedicated cs_AntennaInfoDedicated_2TX := { // acc to 36.508 Table 4.8.2.1.6-1 - /* @status APPROVED (LTE) */ + /* @status APPROVED (LTE, LTE_A) */ transmissionMode := tm3, codebookSubsetRestriction := { n2TxAntenna_tm3 := '11'B @@ -976,6 +965,16 @@ module EUTRA_RRC_Templates { release := NULL } }; + + template (value) AntennaInfoDedicated cs_AntennaInfoDedicated_2TX_TM2 := + { /* @status APPROVED (LTE_A) */ + // @sic R5-150657 sic@ + transmissionMode := tm2, + codebookSubsetRestriction := omit, + ue_TransmitAntennaSelection := { + release := NULL + } + }; template (present) InitialUE_Identity cr_InitialUE_Identity_S_TMSI(MMEC p_Mmec, M_TMSI_Type p_M_Tmsi) := @@ -997,10 +996,16 @@ module EUTRA_RRC_Templates { }; template (value) PhysicalConfigDedicated_AntennaInfo_Type cs_PhysicalConfigDedicated_AntennaInfo_2TX := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ explicitValue := cs_AntennaInfoDedicated_2TX }; + template (value) PhysicalConfigDedicated_AntennaInfo_Type cs_PhysicalConfigDedicated_AntennaInfo_2TX_TM2 := + { /* @status APPROVED (LTE_A) */ + /* @sic R5-150657 sic@ */ + explicitValue := cs_AntennaInfoDedicated_2TX_TM2 + }; + //**************************************************************************** // RRC peer-to-peer messages //---------------------------------------------------------------------------- @@ -1050,12 +1055,13 @@ module EUTRA_RRC_Templates { rrcConnectionSetup_r8 := { radioResourceConfigDedicated := cs_508_RadioResourceConfigDedicated_SRB1(cs_MAC_MainConfig_SRB1(p_TimeAlignmentTimer), - cs_508_PhysicalConfigDedicated_Default_SRB1(p_PUCCH_ConfigDedicated, - p_CQI_ReportingPeriodic, // @sic R5-120497 sic@ - p_SoundingRsUl_ConfigDedicated, // @sic R5-120497 sic@ - p_SR_PUCCH_ResourceIndex, - p_AntennaInfo, - p_SR_ConfigIndex)), + cds_508_PhysicalConfigDedicated_Default_SRB1(p_PUCCH_ConfigDedicated, + -, + p_CQI_ReportingPeriodic, // @sic R5-120497 sic@ + p_SoundingRsUl_ConfigDedicated, // @sic R5-120497 sic@ + p_SR_PUCCH_ResourceIndex, + p_AntennaInfo, + p_SR_ConfigIndex)), nonCriticalExtension := omit } } @@ -1100,8 +1106,9 @@ module EUTRA_RRC_Templates { template (value) DL_DCCH_Message cs_508_SecurityModeCommand(RRC_TransactionIdentifier p_RRC_TI, IntegrityProtAlgorithm_Type p_IntegrityProtAlgorithm, - CipheringAlgorithm_Type p_CipheringAlgorithm) := + CipheringAlgorithm_r12 p_CipheringAlgorithm) := { /* Default values according to 36.508 cl. 4.6.1 Table 4.6.1-19 */ + /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ message_ := { c1 := { @@ -1190,6 +1197,41 @@ module EUTRA_RRC_Templates { } }; + template (value) RRCConnectionReconfiguration_v890_IEs cs_RRCConnectionReconfiguration_v890_IEs(template (value) RRCConnectionReconfiguration_v920_IEs p_RRCConnectionReconfiguration_v920_IEs):= + { /* @status APPROVED (LTE, LTE_A) */ + lateNonCriticalExtension := omit, + nonCriticalExtension := p_RRCConnectionReconfiguration_v920_IEs + }; + + template (value) OtherConfig_r9 cs_OtherConfig_r9(template (omit) ReportProximityConfig_r9 p_ReportProximityConfig := omit, + template (omit) PowerPrefIndicationConfig_r11 p_PowerPrefIndicationConfig := omit, + template (omit) ObtainLocationConfig_r11 p_ObtainLocationConfig := omit) := + { /* @status APPROVED (LTE, LTE_A) */ + reportProximityConfig_r9 := p_ReportProximityConfig, + idc_Config_r11 := omit, + powerPrefIndicationConfig_r11 := p_PowerPrefIndicationConfig, + obtainLocationConfig_r11 := p_ObtainLocationConfig + }; + + template (value) RRCConnectionReconfiguration_v920_IEs cs_RRCConnectionReconfiguration_v920_IEs(template (omit) OtherConfig_r9 p_OtherConfig := omit, + template (omit) RRCConnectionReconfiguration_v920_IEs.fullConfig_r9 p_FullConfig := omit, + template (omit) RRCConnectionReconfiguration_v1020_IEs p_RRCConnectionReconfiguration_v1020_IEs := omit) := + { /* @status APPROVED (LTE, LTE_A) */ + otherConfig_r9 := p_OtherConfig, + fullConfig_r9 := p_FullConfig, + nonCriticalExtension := p_RRCConnectionReconfiguration_v1020_IEs + }; + + template (value) RRCConnectionReconfiguration_v1020_IEs cs_RRCConnectionReconfiguration_v1020_IEs(template (omit) SCellToReleaseList_r10 p_SCellToReleaseList := omit, + template (omit) SCellToAddModList_r10 p_SCellToAddModList := omit, + template (omit) RRCConnectionReconfiguration_v1130_IEs p_RRCConnectionReconfiguration_v1130_IEs := omit) := + { /* @status APPROVED (LTE_A) */ + sCellToReleaseList_r10 := p_SCellToReleaseList, + sCellToAddModList_r10 := p_SCellToAddModList, + nonCriticalExtension := p_RRCConnectionReconfiguration_v1130_IEs + }; + + template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_RadioResConfig(RRC_TransactionIdentifier p_RRC_TI, template (value) RadioResourceConfigDedicated p_RadioResourceConfigDedicated) := /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ @@ -1323,18 +1365,18 @@ module EUTRA_RRC_Templates { }; template (value) RedirectedCarrierInfo cs_RedirectionInfo_UtraFdd ( ARFCN_ValueUTRA p_DL_UARFCN ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ utra_FDD := p_DL_UARFCN }; template (value) RedirectedCarrierInfo cs_RedirectionInfo_UtraTdd ( ARFCN_ValueUTRA p_DL_UARFCN ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ utra_TDD := p_DL_UARFCN }; template (value) RedirectedCarrierInfo cs_RedirectionInfo_Geran_NoNeighCells ( ARFCN_ValueGERAN p_StartingARFCN, B1_Type p_BandIndicator ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ geran := { startingARFCN := p_StartingARFCN, bandIndicator := f_ConvertGERAN_Band( p_BandIndicator ), @@ -1438,7 +1480,7 @@ module EUTRA_RRC_Templates { }; template (present) RRCConnectionReestablishmentComplete_v920_IEs cr_RRCConnectionReestablishmentComplete_v920_IEs(template RRCConnectionReestablishmentComplete_v8a0_IEs p_RRCConnectionReestablishmentComplete_v8a0_IEs := omit) := - { /* @status APPROVED (LTE, LTE_A) */ + { /* @status APPROVED (LTE) */ rlf_InfoAvailable_r9 := true_, nonCriticalExtension := p_RRCConnectionReestablishmentComplete_v8a0_IEs }; @@ -1795,7 +1837,7 @@ module EUTRA_RRC_Templates { template (value) CellsToAddModCDMA2000 cs_CellsToAddModCDMA2000(integer p_CellIndex, PhysCellIdCDMA2000 p_PhysCellIdCDMA2000) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ cellIndex := p_CellIndex, physCellId := p_PhysCellIdCDMA2000 }; @@ -1883,4 +1925,24 @@ module EUTRA_RRC_Templates { deltaF_PUCCH_Format1bCS_r10 := deltaF1 }; + // @sic R5s150650 moved from EUTRA_RRC_Templates_CA sic@ + template (value) CQI_ReportAperiodic_r10 cs_CQI_ReportAPeriodic_r10_DEFAULT := + { /* acc. to 36.508 Table 4.6.3-1A */ + /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + setup := { + cqi_ReportModeAperiodic_r10 := rm30, + aperiodicCSI_Trigger_r10 := omit + + } + }; + + template (value) CQI_ReportConfig_r10 cs_CQI_ReportConfig_r10_DEFAULT (template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 := omit) := + { /* acc. to 36.508 Table 4.6.3-2AA */ + /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + cqi_ReportAperiodic_r10 := cs_CQI_ReportAPeriodic_r10_DEFAULT, + nomPDSCH_RS_EPRE_Offset := 0, + cqi_ReportPeriodic_r10 := p_CQI_ReportPeriodic_r10, + pmi_RI_Report_r9 := omit, + csi_SubframePatternConfig_r10 := omit + }; } diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn index 9afa32c..feeeec2 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_SRB_Templates.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ // $Rev: 12181 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn index 784663e..e35249a 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_Security_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-03-01 18:20:39 +0100 (Sat, 01 Mar 2014) $ -// $Rev: 10766 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /******************************************************************************/ module EUTRA_Security_Templates { @@ -16,7 +16,6 @@ module EUTRA_Security_Templates { import from EUTRA_ASP_TypeDefs all; import from EUTRA_ASP_NasCtrl all; import from EUTRA_AspCommon_Templates all; - import from EPS_NAS_TypeDefs all; //**************************************************************************** // Configuration of AS security @@ -33,11 +32,12 @@ module EUTRA_Security_Templates { SQN := p_PDCP_SQN }; - template (value) AS_CipheringInfo_Type cs_AS_CipheringInfo(CipheringAlgorithm_Type p_Algo, + template (value) AS_CipheringInfo_Type cs_AS_CipheringInfo(CipheringAlgorithm_r12 p_Algo, B128_Key_Type p_KeyRRC, B128_Key_Type p_KeyUP, template (value) SecurityActTimeList_Type p_ActList) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic BASELINE MOVING 2015: CipheringAlgorithm_Type -> CipheringAlgorithm_r12 sic@ */ Algorithm := p_Algo, KRRCenc := p_KeyRRC, KUPenc := p_KeyUP, @@ -182,7 +182,7 @@ module EUTRA_Security_Templates { }; template (present) PdcpCountInfo_Type cr_PdcpCountInfo_DRB(template (present) DRB_Identity p_Drb) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ RadioBearerId := {Drb := p_Drb}, UL := *, DL := * @@ -226,7 +226,8 @@ module EUTRA_Security_Templates { }; template (value) NAS_CTRL_REQ cas_NasSecurityRelease_REQ := - { /* Note: NAS security seems to be cell independent */ + { /* Note: NAS security is cell independent */ + /* @status APPROVED (LTE) */ Common := cs_ReqAspCommonPart_CellCfg(eutra_Cell_NonSpecific), Request := { Security := { @@ -249,7 +250,7 @@ module EUTRA_Security_Templates { //---------------------------------------------------------------------------- template (value) NAS_CTRL_REQ cas_NasCountGet_REQ := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Common := cs_ReqAspCommonPart_CellCfg(eutra_Cell_NonSpecific), Request := { NasCount := { @@ -259,7 +260,7 @@ module EUTRA_Security_Templates { }; template (present) NAS_CTRL_CNF car_NasCountGet_CNF := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Common := cr_CnfAspCommonPart_CellCfg(eutra_Cell_NonSpecific), Confirm := { NasCount := { diff --git a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn index ae865f8..cb3667b 100644 --- a/LTE_A_IWD_14wk37/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/EUTRA_Templates/EUTRA_SysInfo_Templates.ttcn @@ -2,17 +2,19 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 16:20:12 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14501 $ /******************************************************************************/ module EUTRA_SysInfo_Templates { + import from CommonDefs all; import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_CommonDefs all; import from EUTRA_ASP_TypeDefs all; + import from Parameters all; //---------------------------------------------------------------------------- // templates used in system information as well as in other RRC messages @@ -203,6 +205,23 @@ module EUTRA_SysInfo_Templates { subframeAssignment := p_TDD_SubframeAssignment, specialSubframePatterns := ssp6 }; + + template (value) SystemInformationBlockType1_v1130_IEs cs_SystemInformationBlockType1_v1130_Cat0Allowed:= + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + tdd_Config_v1130 := omit, + cellSelectionInfo_v1130 := omit, + nonCriticalExtension := cs_SystemInformationBlockType1_v1250_Cat0Allowed + } + + template(value) SystemInformationBlockType1_v1250_IEs cs_SystemInformationBlockType1_v1250_Cat0Allowed := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cellAccessRelatedInfo_v1250 := { + category0Allowed_r12 := true_ + }, + cellSelectionInfo_v1250 := omit, + freqBandIndicatorPriority_r12 := omit, + nonCriticalExtension := omit + } template (value) BCCH_DL_SCH_Message cs_508_SystemInformationBlockType1_Def(template (value) PLMN_IdentityList p_PLMN_IdentityList, template (value) TrackingAreaCode p_TrackingAreaCode, @@ -240,7 +259,7 @@ module EUTRA_SysInfo_Templates { nonCriticalExtension := { ims_EmergencySupport_r9 := true_, cellSelectionInfo_v920 := omit, - nonCriticalExtension := omit + nonCriticalExtension := f_EUTRA_SetSystemInformationBlockType1_Cat0Allowed() //@sic R5-151975 sic@ } } } @@ -248,6 +267,7 @@ module EUTRA_SysInfo_Templates { } }; + template (value) BCCH_DL_SCH_Message cds_508_SystemInformationBlockType1_QBased (template (value) PLMN_IdentityList p_PLMN_IdentityList, template (value) TrackingAreaCode p_TrackingAreaCode, template (value) CellIdentity p_CellIdentity, @@ -274,7 +294,7 @@ module EUTRA_SysInfo_Templates { }; template (value) SystemInformationBlockType1_v8h0_IEs cs_SystemInformationBlockType1_v8h0_IEs(template (omit) MultiBandInfoList p_MultiBandInfoList := omit) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ multiBandInfoList := p_MultiBandInfoList, nonCriticalExtension := omit } @@ -421,7 +441,8 @@ module EUTRA_SysInfo_Templates { soundingRS_UL_ConfigCommon := p_SoundingRS_UL_ConfigCommon, /* @sic R5s100135 sic@ */ uplinkPowerControlCommon := cs_508_UplinkPowerControlCommon_Default, /* @sic R5s100135 sic@ */ ul_CyclicPrefixLength := len1, // len1, len2 - uplinkPowerControlCommon_v1020 := omit /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + uplinkPowerControlCommon_v1020 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + rach_ConfigCommon_v1250 := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ }; template (value) UE_TimersAndConstants cs_508_UE_TimersAndConstants := @@ -435,6 +456,26 @@ module EUTRA_SysInfo_Templates { n311 := n1 /* n1, n2, n3, n4, n5, n6, n8, n10 */ }; + template (value) AC_BarringConfig cs_AC_BarringConfig(AC_BarringConfig.ac_BarringFactor p_AC_BarringFactor, + AC_BarringConfig.ac_BarringTime p_AC_BarringTime, + AC_BarringConfig.ac_BarringForSpecialAC p_AC_BarringForSpecialAC) := + { /* @status APPROVED (IMS) */ + ac_BarringFactor := p_AC_BarringFactor, + ac_BarringTime := p_AC_BarringTime, + ac_BarringForSpecialAC := p_AC_BarringForSpecialAC + }; + + template (value) AccessBarringInformation_Type cs_AccessBarringInformationMO_Data := + { /* @status APPROVED (IMS) */ + ac_BarringForEmergency := false, + ac_BarringForMO_Signalling := omit, + ac_BarringForMO_Data := { + ac_BarringFactor := p00, + ac_BarringTime := s4, + ac_BarringForSpecialAC := '11111'B + } + }; + template (value) AccessBarringInformation_Type cs_AccessBarringInformation_TemporaryBarring(AC_BarringConfig.ac_BarringTime p_BarringTime := s4) := { /* @status APPROVED (LTE) */ ac_BarringForEmergency := false, @@ -446,6 +487,16 @@ module EUTRA_SysInfo_Templates { ac_BarringForMO_Data := omit }; + template (value) AccessBarringInformation_Type cs_AccessBarringInformation_Prob0_ForMOCalls := + { /* @status APPROVED (LTE) */ + ac_BarringForEmergency := false, + ac_BarringForMO_Signalling := omit, + ac_BarringForMO_Data := { + ac_BarringFactor := p00, + ac_BarringTime := s512, + ac_BarringForSpecialAC := '11111'B + } + }; template (value) SystemInformationBlockType2 cs_508_SystemInformationBlockType2_Def(template (omit) EUTRA_SysinfoUL_Bandwidth_Type p_UL_ChBandwidth, N_RB_CQI_Type p_N_RB_CQI, @@ -459,19 +510,23 @@ module EUTRA_SysInfo_Templates { ue_TimersAndConstants := cs_508_UE_TimersAndConstants, freqInfo := { ul_CarrierFreq := omit, - ul_Bandwidth := p_UL_ChBandwidth, /* n6, n15, n25, n50, n75, n100; FFS */ + ul_Bandwidth := p_UL_ChBandwidth, /* n6, n15, n25, n50, n75, n100 */ additionalSpectrumEmission := 1 // Acc. Table 4.4.3.3-1: SystemInformationBlockType2 and acc to TS 36.101 Table 6.2.4-1; }, mbsfn_SubframeConfigList := omit, timeAlignmentTimerCommon := sf750, /* sf500, sf750, sf1280, sf1920, sf2560, sf5120, sf10240, asn1-infinity */ lateNonCriticalExtension := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - ssac_BarringForMMTEL_Voice_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - ssac_BarringForMMTEL_Video_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - ac_BarringForCSFB_r10 := omit /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + ssac_BarringForMMTEL_Voice_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + ssac_BarringForMMTEL_Video_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + ac_BarringForCSFB_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + ac_BarringSkipForMMTELVoice_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + ac_BarringSkipForMMTELVideo_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + ac_BarringSkipForSMS_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + ac_BarringPerPLMN_List_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) SystemInformationBlockType2_v8h0_IEs cs_SystemInformationBlockType2_v8h0_IEs(template (omit) SystemInformationBlockType2_v8h0_IEs.multiBandInfoList p_MultiBandInfoList := omit) := - { /* @status APPROVED (LTE) */ + { /* @status APPROVED (LTE, LTE_A) */ multiBandInfoList := p_MultiBandInfoList, nonCriticalExtension := omit }; @@ -505,7 +560,8 @@ module EUTRA_SysInfo_Templates { s_NonIntraSearch_v920 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ q_QualMin_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ threshServingLowQ_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - q_QualMinWB_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + q_QualMinWB_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + q_QualMinRSRQ_OnAllSymbols_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) SystemInformationBlockType3 cds_508_SystemInformationBlockType3_Qbased @@ -556,7 +612,8 @@ module EUTRA_SysInfo_Templates { s_NonIntraSearch_v920 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ q_QualMin_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ threshServingLowQ_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ - q_QualMinWB_r11 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + q_QualMinWB_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + q_QualMinRSRQ_OnAllSymbols_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) SystemInformationBlockType3 cs_508_SystemInformationBlockType3_NonIntraSearch_Intrasearch (ReselectionThreshold p_S_NonIntraSearch, @@ -610,7 +667,9 @@ module EUTRA_SysInfo_Templates { template (value) SystemInformationBlockType5 cs_508_SystemInformationBlockType5_Def(template (value) InterFreqCarrierFreqList p_InterFreqCarrierList) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ interFreqCarrierFreqList := p_InterFreqCarrierList, - lateNonCriticalExtension := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + lateNonCriticalExtension := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + interFreqCarrierFreqList_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + interFreqCarrierFreqListExt_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; template (value) SystemInformationBlockType5_v8h0_IEs cs_SystemInformationBlockType5_v8h0_IEs(template (omit) SystemInformationBlockType5_v8h0_IEs.interFreqCarrierFreqList_v8h0 p_InterFreqCarrierFreqList_v8h0 := omit) := @@ -674,7 +733,11 @@ module EUTRA_SysInfo_Templates { carrierFreqListUTRA_TDD := p_CarrierFreqListUTRA_TDD, t_ReselectionUTRA := 0, t_ReselectionUTRA_SF := omit, - lateNonCriticalExtension := omit /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + lateNonCriticalExtension := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ + carrierFreqListUTRA_FDD_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + carrierFreqListUTRA_TDD_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + carrierFreqListUTRA_FDD_Ext_r12 := omit, /* BASELINE MOVING 2015 sic@ */ + carrierFreqListUTRA_TDD_Ext_r12 := omit /* BASELINE MOVING 2015 sic@ */ }; //---------------------------------------------------------------------------- @@ -720,7 +783,7 @@ module EUTRA_SysInfo_Templates { { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ bandClassList := p_BandClassListCDMA2000, neighCellList := p_NeighCellListCDMA2000, - t_ReselectionCDMA2000 := 0, // value FFS in 36.508 INTEGER (0..7), + t_ReselectionCDMA2000 := 0, // INTEGER (0..7), t_ReselectionCDMA2000_SF := omit }; @@ -770,7 +833,7 @@ module EUTRA_SysInfo_Templates { preRegistrationInfoHRPD := { preRegistrationAllowed := false, preRegistrationZoneId := omit, - secondaryPreRegistrationZoneIdList := omit // FFS only used in P3 P4 C2K test cases + secondaryPreRegistrationZoneIdList := omit // }, cellReselectionParametersHRPD := cs_CellReselectionParameter (p_BandClassListCDMA2000, p_NeighCellListCDMA2000) }; @@ -847,18 +910,18 @@ module EUTRA_SysInfo_Templates { }; // SIB14 - template (value) EAB_Config_r11 cs_EAB_Config_Def := + template (value) EAB_Config_r11 cs_EAB_Config_Def(B10_Type p_EAB_BarringBitmap) := { // Acc. to 36.508 Table 4.4.3.3-13A: SystemInformationBlockType14 /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ eab_Category_r11 := a, - eab_BarringBitmap_r11 := '1111111111'B + eab_BarringBitmap_r11 := p_EAB_BarringBitmap }; - template (value) SystemInformationBlockType14_r11 cs_SystemInformationBlockType14_Def := + template (value) SystemInformationBlockType14_r11 cs_SystemInformationBlockType14_Def(B10_Type p_EAB_BarringBitmap := '1111111111'B) := { // Acc. to 36.508 Table 4.4.3.3-13A: SystemInformationBlockType14 /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - eab_Param_r11 := { - eab_Common_r11 := cs_EAB_Config_Def + eab_Param_r11 := { + eab_Common_r11 := cs_EAB_Config_Def(p_EAB_BarringBitmap) }, lateNonCriticalExtension := omit }; @@ -979,5 +1042,24 @@ module EUTRA_SysInfo_Templates { SIs := p_SI_List, SegmentedSIs := p_SegmentedSI_List }; - + + //====================================================================================================================== + // Local function + /* + * @desc Return the extension v1130, set category0Allowed-r12 to true if UE is category 0. + * Acc to 36.508 Table 4.4.3.2-3 UECAT0=this condition applies when UE under test is a UE of Category 0. + * @return template (omit) SystemInformationBlockType1_v1130_IEs + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_EUTRA_SetSystemInformationBlockType1_Cat0Allowed() return template (omit) SystemInformationBlockType1_v1130_IEs + { //@sic R5-151975 sic@ + var template (omit) SystemInformationBlockType1_v1130_IEs v_SystemInformationBlockType1_v1130:= omit; + + if (pc_ue_CategoryDL_0) { //UECAT0 + v_SystemInformationBlockType1_v1130 := cs_SystemInformationBlockType1_v1130_Cat0Allowed + } + return v_SystemInformationBlockType1_v1130; + }; + + } // End of module diff --git a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_CellInfo.ttcn b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_CellInfo.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/Common/GERAN/GERAN_CellInfo.ttcn rename to LTE_A_IWD_15wk38/Common/GERAN/GERAN_CellInfo.ttcn index 3403342..e131aed 100644 --- a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_CellInfo.ttcn +++ b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_CellInfo.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-06 19:54:44 +0200 (Fri, 06 Jun 2014) $ -// $Rev: 11662 $ +// @version: IWD_15wk38 +// $Date: 2014-10-12 22:04:43 +0200 (Sun, 12 Oct 2014) $ +// $Rev: 12326 $ /******************************************************************************/ module GERAN_CellInfo { @@ -27,45 +27,45 @@ module GERAN_CellInfo { //============================================================================ template (value) CellChDescr cs_CellChDescr(O16_Type p_RefFreqList) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, refFreqList := p_RefFreqList }; template (value) CellChDescr cs_CellAllocGSM450 := cs_CellChDescr('8C838CE0400000000000000000000000'O); /* ARFCNs : 263, 267, 275 and 279 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGSM480 := cs_CellChDescr('8C9B0CE4400000000000000000000000'O); /* ARFCNs : 310, 315, 322 and 326 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS900_Cell24 := cs_CellChDescr('00000000000080000802009000000200'O); /* As specified in 51.010, clause 40.2.1.1.1 {10, 37, 40, 50, 60, 80} bitmap 0 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS1800_1900_Cell24 := cs_CellChDescr('8904053D828000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.1.1 {520, 530, 540, 550} range 512 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS700_Cell24 := cs_CellChDescr('8CDFA8D9665000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.1.1 {447, 457, 477, 487, 497, 509} range 128 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS850_Cell24 := cs_CellChDescr('8C4F86FAAF3000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.1.1 {159, 161, 163, 165, 187, 207} - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS900_Cell26 := cs_CellChDescr('00802009000000200000000000004000'O); /* As specified in 51.010, clause 40.2.1.2 {15, 70, 97, 100, 110, 120} bitmap 0 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS1800_1900_Cell26 := cs_CellChDescr('8918053D814000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.2 {560, 570, 580, 585} range 512 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS700_Cell26 := cs_CellChDescr('8CDB84F8200000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.2 {439, 441, 443, 445} range 128 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS850_Cell26 := cs_CellChDescr('8C5984F8200000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.2 {179, 181, 183, 185} range 128 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS900_Cell25 := cs_CellChDescr('02000020000200002000020000200000'O); /* As specified in 51.010, clause 40.2.1.4 {22, 42, 62, 82, 102, 122} bitmap 0 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS1800_1900_Cell25 := cs_CellChDescr('8940053EC28000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.4 {640, 655, 660, 670} range 512 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS700_Cell25 := cs_CellChDescr('8CE584F8200000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.4 {459, 461, 463, 465} range 128 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) CellChDescr cs_CellAllocGPRS850_Cell25 := cs_CellChDescr('8C4584F8200000000000000000000000'O); /* As specified in 51.010, clause 40.2.1.4 {139, 141, 143, 145} range 128 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ // ============================================================================= // range 256, ARFCN = 985, 989, 995, 1010, 1014 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_ExtNeighBCCH_FreqList2bis := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // bits 128-127 extind := '1'B, // extension indication baind := '0'B, // bcch allocation sequence number indication @@ -77,7 +77,7 @@ module GERAN_CellInfo { // for GSM 700 cell A. ARFCN = 438,447,457,467,477,487,497,502,507 Values are taken from 51.010 Table 40.1.1 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS700 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // range 128 format extind := '0'B, // complete BA baind := '0'B, // bcch allocation sequence number indication @@ -89,7 +89,7 @@ module GERAN_CellInfo { // for GSM 900 GPRS cell A. ARFCN = 5,20, 80,90,100, 110,120,122,124. Values are taken from 51.010 Table 40.2.1.1.1 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS900 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '00'B, // bit map 0 format extind := '1'B, // incomplete BA baind := '0'B, // bcch allocation sequence number indication @@ -101,7 +101,7 @@ module GERAN_CellInfo { // for GSM 1800 cell. ARFCN = 515, 590, 600, 700, 780, 810 870, 875, 885. Values are taken from 51.010 Table 40.2.1.1.1 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS1800 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // range 512 format extind := '0'B, // complete BA baind := '0'B, // bcch allocation sequence number indication @@ -113,7 +113,7 @@ module GERAN_CellInfo { // for GSM 1900 cell. ARFCN = 515, 590, 600, 655, 700, 710, 740, 780, 810. Values are taken from 51.010 Table 40.2.1.1.1 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS1900 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // range 512 format extind := '0'B, // complete BA baind := '0'B, // bcch allocation sequence number indication @@ -125,7 +125,7 @@ module GERAN_CellInfo { // for GSM 450 cell A. ARFCN = 259, 263, 269, 275, 279, 283, 287 and 292 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS450 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // range 128 format extind := '0'B, // complete BA baind := '0'B, // bcch allocation sequence number indication @@ -137,7 +137,7 @@ module GERAN_CellInfo { // for GSM 480 cell A. ARFCN = 306, 310, 316, 322, 326, 330, 334 and 339 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS480 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // range 128 format extind := '0'B, // complete BA baind := '0'B, // bcch allocation sequence number indication @@ -149,7 +149,7 @@ module GERAN_CellInfo { // for GSM 850 cell A. ARFCN = 137,147,157,177,197,207,217,227,237. Values are taken from 51.010 Table 40.2.1.1.1 // ----------------------------------------------------------------------------- template (value) NeighCellDescr cs_NeighBCCH_FreqListGPRS850 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rfl2 := '10'B, // range 128 format extind := '0'B, // complete BA baind := '0'B, // bcch allocation sequence number indication @@ -160,7 +160,7 @@ module GERAN_CellInfo { // ============================================================================= template (value) GERAN_CommonCellInfo_Type cs_G_CommonCellConfigInfoDef (O2_Type p_CellIdentity):= - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ gamma := '00100'B, downlinkPowerLevel := 63, // Downlink transmission power level Vemf(). cellIdentity := p_CellIdentity, // cell identity @@ -213,7 +213,7 @@ module GERAN_CellInfo { }; template (value) DRXparameter cs_SplitPGCycleInitial := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, splitPGcycleCode := '00000000'B, // Split PG cycle code cnDRXcoef := '0000'B, // CN specific DRX cycle length coefficient @@ -226,7 +226,7 @@ module GERAN_CellInfo { * @desc To get the GERAN cell Identity, that's used in the SI msgs * @param p_CellId * @return O2_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CellInfo_GetCellIdentity(GERAN_CellId_Type p_CellId) return O2_Type { @@ -248,7 +248,7 @@ module GERAN_CellInfo { /* * @desc Initialise all GERAN cell info * @return GERAN_CellArray_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CellArray_Init () return GERAN_CellArray_Type { @@ -283,7 +283,7 @@ module GERAN_CellInfo { /* * @desc Initialise the global array with values specified in 51.010-1, clause 40 * @return template (value) GERAN_CellArray_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CellInfoFrequencies_Init() return template (value) GERAN_CellArray_Type { @@ -502,7 +502,7 @@ module GERAN_CellInfo { /* * @desc Initialise GERAN security * @return GERAN_SecurityInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Security_Init() return GERAN_SecurityInfo_Type { @@ -521,7 +521,7 @@ module GERAN_CellInfo { /* * @desc Initialise GERAN Msg Received in Default * @return GERAN_MsgReceivedInDefault_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_MsgInDefault_Init() return GERAN_MsgReceivedInDefault_Type { @@ -539,7 +539,7 @@ module GERAN_CellInfo { * N.B. This function initialises a dummy value for SI2q * @param p_CellArray * @return GERAN_CellArray_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SystemInformation_Init ( template (value) GERAN_CellArray_Type p_CellArray) return GERAN_CellArray_Type { @@ -599,7 +599,7 @@ module GERAN_CellInfo { * @param p_CellArray * @param p_SysInfoList * @return GERAN_CellArray_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SystemInformation_InterRAT ( GERAN_CellArray_Type p_CellArray, IRAT_CoOrd_SysInfo_List_Type p_SysInfoList) return GERAN_CellArray_Type @@ -818,7 +818,7 @@ module GERAN_CellInfo { * @desc To fill IRAT_CoOrd_SysInfo_Type with info on all GERAN cells, ready to be sent to another RAT * @param p_CellInfo * @return template (value) IRAT_CoOrd_SysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_IR_SysInfoInit (GERAN_CellArray_Type p_CellInfo) return template (value) IRAT_CoOrd_SysInfo_Type @@ -870,7 +870,7 @@ module GERAN_CellInfo { /* * @desc Initialises all global variables on GERAN * @param p_ConfiguredPTCs - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Init(IRAT_ConfiguredPTCs_Type p_ConfiguredPTCs := EUTRA_GERAN) runs on GERAN_PTC { /* @sic R5-113805, R5-113696, R5-113734 sic@ */ diff --git a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_CommonFunctions.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/GERAN/GERAN_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/GERAN/GERAN_CommonFunctions.ttcn index f51619d..072fa57 100644 --- a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 10:26:54 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12041 $ +// @version: IWD_15wk38 +// $Date: 2015-09-03 19:05:53 +0200 (Thu, 03 Sep 2015) $ +// $Rev: 14170 $ /******************************************************************************/ module GERAN_CommonFunctions @@ -35,7 +35,7 @@ module GERAN_CommonFunctions /* * @desc To send the Sys Info co-ordination message of the specified cell to EUTRA PTC * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Send_IR_SysInfoToEUTRA(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -46,7 +46,7 @@ module GERAN_CommonFunctions * @desc To send the Sys Info co-ordination message of the specified cell to specified PTC * @param p_CellId * @param p_Port - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Send_IR_SysInfo(GERAN_CellId_Type p_CellId, IRAT_CO_ORD_PORT p_Port) runs on GERAN_PTC @@ -82,7 +82,7 @@ module GERAN_CommonFunctions /* * @desc To create a GSM Control Channel and GPRS channel * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CreateCell(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -117,7 +117,7 @@ module GERAN_CommonFunctions /* * @desc To send the GSM SI messages * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SendGSMSysInfo(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -161,7 +161,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_PhyCh * @param p_LogicChType - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_SendGSMSACCHSysInfo(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, @@ -182,7 +182,7 @@ module GERAN_CommonFunctions * @desc generic function to deal with GERAN L1 configurations where no information needs to be returned by the CNF * @param p_G_CPHY_CONFIG_REQ * @param p_WaitForCNF (default value: waitForCNF) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CPHY_CONFIG_Common(template (value) G_CPHY_CONFIG_REQ p_G_CPHY_CONFIG_REQ, GERAN_WaitForCNF_Type p_WaitForCNF := waitForCNF) runs on GERAN_PTC @@ -196,27 +196,6 @@ module GERAN_CommonFunctions } } - /* - * @desc generic function to deal with GERAN cas_G_CL1_ComingFN_REQ - * @param p_G_CPHY_CONFIG_REQ - * @return G_CPHY_CONFIG_CNF - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_GERAN_CPHY_CONFIG_ComingFN(template (value) G_CPHY_CONFIG_REQ p_G_CPHY_CONFIG_REQ) runs on GERAN_PTC return G_CPHY_CONFIG_CNF - { - var G_CPHY_CONFIG_CNF v_G_CPHY_CONFIG_CNF; - - G_CL1.clear; /* since CNFs are not always handled explicitly there might still an 'old' CNF be in the incoming queue to be removed */ - G_CL1.send(p_G_CPHY_CONFIG_REQ); - alt { - [] G_CL1.receive(car_G_CL1_ComingFN_CNF) -> value v_G_CPHY_CONFIG_CNF {} - [] G_CL1.receive(car_G_CPHY_CONFIG_CNF_Any) { - f_SetVerdictInconc(__FILE__, __LINE__, "got wrong CNF instead of car_G_CL1_ComingFN_CNF"); - } - } - return v_G_CPHY_CONFIG_CNF; - } - //---------------------------------------------------------------------------- /* @@ -225,7 +204,7 @@ module GERAN_CommonFunctions * @param p_LLMEId * @param p_NSAPI * @param p_SAPI - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SNDCP_Config(SNDCPId p_SNDCPId, LLMEId p_LLMEId, @@ -249,7 +228,7 @@ module GERAN_CommonFunctions * @param p_SNDCPId (default value: 1) * @param p_LoopBack (default value: false) .. set to true if this SNDCP will be used for loopback - so don't need to configure routing table * @param p_PdnIndex (default value: PDN_1) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Config_SNDCPandIP(GERAN_CellId_Type p_CellId, integer p_NSAPI := 13, @@ -284,7 +263,7 @@ module GERAN_CommonFunctions * @desc generic function to deal with GERAN LLC configurations * @param p_G_LLC_CONFIG_REQ * @param p_WaitForCNF (default value: waitForCNF) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_LLC_CONFIG_Common(template (value) G_LLC_CONFIG_REQ p_G_LLC_CONFIG_REQ, GERAN_WaitForCNF_Type p_WaitForCNF := waitForCNF) runs on GERAN_PTC @@ -302,7 +281,7 @@ module GERAN_CommonFunctions /* * @desc To create the LLE Entity in the SS * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_Create_LLE_Entity(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { /* @sic R5s120050 MCC160 implementation sic@ */ @@ -316,7 +295,7 @@ module GERAN_CommonFunctions * @param p_OldTLLI * @param p_NewTLLI * @param p_WaitForCNF (default value: waitForCNF) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_LLC_TLLI_Assign(GERAN_CellId_Type p_CellId, TLLI p_OldTLLI, @@ -324,14 +303,14 @@ module GERAN_CommonFunctions GERAN_WaitForCNF_Type p_WaitForCNF := waitForCNF) runs on GERAN_PTC { /* @sic R5s120050 MCC160 implementation sic@ */ var GERAN_SecurityInfo_Type v_SecurityInfo := f_GERAN_SecurityInfo_Get(); - f_GERAN_LLC_CONFIG_Common(cas_G_CLLC_Assign_Req(p_CellId, p_OldTLLI, p_NewTLLI, v_SecurityInfo.gprsCipherAlg, v_SecurityInfo.authPS.KcGSM), p_WaitForCNF); + f_GERAN_LLC_CONFIG_Common(cas_G_CLLC_Assign_Req(p_CellId, p_OldTLLI, p_NewTLLI, v_SecurityInfo.gprsCipherAlg, v_SecurityInfo.authPS.KcGSM, v_SecurityInfo.authPS.Kc128), p_WaitForCNF); // @sic R5s150121 sic@ } // end of f_LLC_TLLI_Assign //---------------------------------------------------------------------------- /* * @desc To create the RLC Entity in the SS * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_CreateRLC_MAC_Entity(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { /* @sic R5s120050 MCC160 implementation sic@ */ @@ -342,7 +321,7 @@ module GERAN_CommonFunctions /* * @desc Combined Cell Control Channel created with power level set to OFF * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_CreateCell_GSM_Comb(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -367,7 +346,7 @@ module GERAN_CommonFunctions * @param p_NCC * @param p_BCC * @param p_TA - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_SetBS_IdCode(GERAN_CellId_Type p_CellId, B3_Type p_NCC, @@ -377,11 +356,27 @@ module GERAN_CommonFunctions f_GERAN_CPHY_CONFIG_Common(cas_G_CL1_CreateCell_REQ(p_CellId, p_NCC, p_BCC, p_TA)); } // end of f_SetBS_IdCode + //---------------------------------------------------------------------------- + /* + * @desc Decide L1 power level based on band used + * @return B5_Type + */ + function fl_GERAN_GetL1Power () return B5_Type + { + select (px_GERAN_BandUnderTest) { + case (DCS1800, PCS1900) { + return '01000'B; // arbitrary value = 14 dBm + } + case else { + return '01111'B; // arbitrary value = 13 dBm + } + } + } //---------------------------------------------------------------------------- /* * @desc Combined Cell Control Channel created with power level set to OFF * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CreatePhyCombinedCellControlCh(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -389,13 +384,13 @@ module GERAN_CommonFunctions var B3_Type v_TSC := f_GERAN_BCC_Get(p_CellId); // @sic R5s110168 change 8.4 sic@ var O1_Type v_TA := f_GERAN_TA_Get(p_CellId); var B1_Type v_BandInd := f_GERAN_BandInd_Get(p_CellId); - var B5_Type v_L1Pwr := '01111'B; // arbitrary value + var B5_Type v_L1Pwr := '01111'B; // fl_GERAN_GetL1Power (); // @sic R5s141219 sic@ var GERAN_SecurityInfo_Type v_SecurityInfo := f_GERAN_SecurityInfo_Get(); var ControlChDescr v_CtrlChDesc := f_GERAN_ControlChDesc_Get(p_CellId); var integer i; var template (value) ChannelSpecificInfo v_ChSpecific; - v_ChSpecific := cs_ChSpecificPara(cs_SDCCH4_Ch(v_SecurityInfo.cipherMode, v_SecurityInfo.authCS.KcGSM, v_L1Pwr, substr(oct2bit(v_TA), 1, 7)), // @sic R5s110657 sic@ + v_ChSpecific := cs_ChSpecificPara(cs_SDCCH4_Ch(v_SecurityInfo.cipherMode, v_SecurityInfo.authCS.KcGSM, v_SecurityInfo.authCS.Kc128, v_L1Pwr, substr(oct2bit(v_TA), 1, 7)), // @sic R5s110657, R5s150121 sic@ cs_CCCH_Info(v_CtrlChDesc.bS_PA_MFRMS, v_CtrlChDesc.bS_AG_BLKS_RES)); // FCCH + SCH + BCCH + CCCH + SDCCH/4(0..3) + SACCH/C4(0..3) @@ -422,7 +417,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_FreqInfo * @param p_PktCh - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CreatePhyGPRSCh(GERAN_CellId_Type p_CellId, template (value) FreqInfo p_FreqInfo, @@ -441,7 +436,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_WaitForFinalCNF (default value: waitForCNF) * @param p_ChanComb (default value: TCH_F) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CreateTCH(GERAN_CellId_Type p_CellId, GERAN_WaitForCNF_Type p_WaitForFinalCNF := waitForCNF, @@ -449,7 +444,7 @@ module GERAN_CommonFunctions { var B1_Type v_BandInd := f_GERAN_BandInd_Get(p_CellId); var GERAN_SecurityInfo_Type v_SecurityInfo := f_GERAN_SecurityInfo_Get(); - var B5_Type v_L1Pwr := '01111'B; // arbitrary value + var B5_Type v_L1Pwr := '01111'B; // fl_GERAN_GetL1Power (); // @sic R5s141219 sic@ var O1_Type v_TA := f_GERAN_TA_Get(p_CellId); var B10_Type v_Freq := f_GERAN_TCHFreq_Get(p_CellId); @@ -461,7 +456,7 @@ module GERAN_CommonFunctions cs_FreqInfo(v_Freq), tsc_TN1, px_TSC, - cs_DedCh(cs_G_ChModeSpeechFROrHRV1, cs_CipherModeSettingGSM, v_SecurityInfo.authCS.KcGSM, v_L1Pwr, substr(oct2bit(v_TA), 1, 7)), // @sic R5s110657 sic@ + cs_DedCh(cs_G_ChModeSpeechFROrHRV1, cs_CipherModeSettingGSM, v_SecurityInfo.authCS.KcGSM, v_SecurityInfo.authCS.Kc128, v_L1Pwr, substr(oct2bit(v_TA), 1, 7)), // @sic R5s110657, R5s150121 sic@ (tsc_GERAN_ChPwrLvl_Off+tsc_Power_ueVOffset), // @sic R5s110433 sic@ v_BandInd)); } @@ -481,7 +476,7 @@ module GERAN_CommonFunctions { var B1_Type v_BandInd := f_GERAN_BandInd_Get(p_CellId); var GERAN_SecurityInfo_Type v_SecurityInfo := f_GERAN_SecurityInfo_Get(); - var B5_Type v_L1Pwr := '01111'B; // arbitrary value + var B5_Type v_L1Pwr := '01111'B; // fl_GERAN_GetL1Power (); // @sic R5s141219 sic@ var O1_Type v_TA := f_GERAN_TA_Get(p_CellId); var B10_Type v_Freq := f_GERAN_GPRSFreq_Get(p_CellId); var template (value) SYSTEMINFORMATIONTYPE6 v_SI6 := f_GERAN_SysInfo_GetSI6(p_CellId); @@ -492,7 +487,7 @@ module GERAN_CommonFunctions cs_FreqInfo(v_Freq), tsc_TN_DTM, px_TSC, - cs_DedCh(cs_G_ChModeSpeechFROrHRV1, cs_CipherModeSettingGSM, v_SecurityInfo.authCS.KcGSM, v_L1Pwr, substr(oct2bit(v_TA), 1, 7)), // @sic R5s110657 sic@ + cs_DedCh(cs_G_ChModeSpeechFROrHRV1, cs_CipherModeSettingGSM, v_SecurityInfo.authCS.KcGSM, v_SecurityInfo.authCS.Kc128, v_L1Pwr, substr(oct2bit(v_TA), 1, 7)), // @sic R5s110657, R5s150121 sic@ (tsc_GERAN_ChPwrLvl_Off+tsc_Power_ueVOffset), // @sic R5s110433 sic@ v_BandInd)); // The SACCH needs to indicate DTM @@ -523,7 +518,7 @@ module GERAN_CommonFunctions /* @desc To be called after GERAN_Init, before the test case body for every test that doesn't start in GERAN. * This will wait until Preamble is finished on EUTRA and it has received the AuthParams * These are then stored in SecurityInfo - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_InterRAT_InitialiseAuthParams() runs on GERAN_PTC { @@ -660,10 +655,7 @@ module GERAN_CommonFunctions // Receive GPRS Attach Request Message if (p_CheckEUTRA) { // GP-110050 - v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(geran_Cell24, car_G_LLC_UnitData_IND(cr_G_AttachReq_EUTRANCap(cr_AttachTypeAny, - cr_MobileIdAny(omit), - cr_RAI(omit), - ?))); + v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(geran_Cell24, car_G_LLC_UnitData_IND(cr_G_AttachReq)); // @sic R5s140964 sic@ v_AttachRequest := v_LLCDataInd.unit.msg.attReq; if (not ((v_AttachRequest.msRadioAccessCap.valuePart.listofValues[0].raCapability.singleAccess.eutraFDD == '1'B) or (v_AttachRequest.msRadioAccessCap.valuePart.listofValues[0].raCapability.singleAccess.eutraTDD == '1'B)) and @@ -672,10 +664,7 @@ module GERAN_CommonFunctions f_GERAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "UE doesn't support EUTRA"); } } else { - v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_UnitData_IND(cr_G_AttachReq(cr_AttachTypeAny, - cr_MobileIdAny(omit), - cr_RAI(omit), - ?))); + v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_UnitData_IND(cr_G_AttachReq)); } v_AttachType := v_LLCDataInd.unit.msg.attReq.attachType.attachType; f_GERAN_SplitPGCycle_Set(p_CellId, v_LLCDataInd.unit.msg.attReq.drxParameter); @@ -712,7 +701,7 @@ module GERAN_CommonFunctions /* * @desc To Perform GPRS Authentication * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_GPRS_Authentication(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -846,7 +835,7 @@ module GERAN_CommonFunctions * @param p_StepNo (default value: "") * only used if the Channel Request needs to assigned a Pass verdict - i.e. in IdleMode tests * @return G_LLC_DATAMESSAGE_IND - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GPRS_ReceiveUplinkMsg(GERAN_CellId_Type p_CellId, template G_LLC_DATAMESSAGE_IND p_DataMsgInd, @@ -870,7 +859,7 @@ module GERAN_CommonFunctions * @param p_AccessInd * @param p_DataMsgInd * @return template (omit) G_LLC_DATAMESSAGE_IND - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_ULTBFOnePhase(GERAN_CellId_Type p_CellId, G_L2_ACCESS_IND p_AccessInd, @@ -946,7 +935,7 @@ module GERAN_CommonFunctions * 5---> 1 data block 2 seconds; * 6---> 1 data block 3 seconds; * 7---> 1 data block 4 seconds - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GPRS_ConfigureDownlinkTBF(GERAN_CellId_Type p_CellId, integer p_USFRate := 1) runs on GERAN_PTC @@ -995,7 +984,7 @@ module GERAN_CommonFunctions * 6---> 1 data block 3 seconds; * 7---> 1 data block 4 seconds * @param p_Msg GPRS Message to be transmitted - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GPRS_SendDownlinkMsg(GERAN_CellId_Type p_CellId, integer p_USFRate := 1, @@ -1018,7 +1007,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_MinUL (default value: false) * @param p_TCH (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SS_CellRelease(GERAN_CellId_Type p_CellId, boolean p_MinUL := false, @@ -1076,7 +1065,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_DoAuth (default value: false) * @return SubChannelNumber - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_LocationUpdate(GERAN_CellId_Type p_CellId, boolean p_DoAuth := false) runs on GERAN_PTC return SubChannelNumber @@ -1123,7 +1112,7 @@ module GERAN_CommonFunctions * @param p_ChannelType * @param p_SubChannel * @param p_DoAuth (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_LocationUpdateWithoutLUReq(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, @@ -1163,7 +1152,7 @@ module GERAN_CommonFunctions * @param p_PhyCh * @param p_ChannelType * @param p_SubChannel - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Ciphering_Mode_Setting(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, @@ -1193,7 +1182,7 @@ module GERAN_CommonFunctions * @param p_ChannelType * @param p_SubChannel * @param p_G_ResumeGPRS (default = omit) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_G_ChannelRelease(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, @@ -1210,7 +1199,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_Pwr * @param p_MinUL (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SetCellPowerLevel(GERAN_CellId_Type p_CellId, TX_Power p_Pwr, @@ -1229,7 +1218,7 @@ module GERAN_CommonFunctions * @param p_PhyCh * @param p_Pwr * @param p_WaitForCNF (default value: waitForCNF) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SetChPwrLevel(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, @@ -1246,13 +1235,14 @@ module GERAN_CommonFunctions * @desc Function to send an XID reset and receive an optional XID response * @param p_CellId * @param p_SAPI - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_LLC_XIDReset(GERAN_CellId_Type p_CellId, SAPI p_SAPI) runs on GERAN_PTC { var integer v_LLMEId := enum2int(p_CellId); var default v_MyDefaultVar := null; + var G_LLC_DATAMESSAGE_IND v_LLCInd; var G_LLC_XID_IND v_XID; timer t_Wait5S := 5.0; @@ -1263,13 +1253,26 @@ module GERAN_CommonFunctions f_GPRS_SendDownlinkMsg(p_CellId, 1, cas_G_LLC_XID_Reset(f_GERAN_TLLI_Get(p_CellId), p_SAPI, v_LLMEId)); // @sic R5s120802 sic@ f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_XID_IndAny); - t_Wait5S.timeout; - deactivate(v_MyDefaultVar); + deactivate(v_MyDefaultVar); // @sic R5s140936 sic@ + if (f_GERAN_MsgInDefault_CheckXID() ) { // @sic R5s140936 sic@ + t_Wait5S.stop; // if already received Msg, then can stop waiting + } else { // @sic R5s140936 sic@ + alt { + [] t_Wait5S.timeout {} + [] G_LLC.receive(car_G_LLC_XID_IndAny) -> value v_LLCInd + { + v_XID := v_LLCInd.xid; + t_Wait5S.stop; + G_CLLC.send(cas_G_CLLC_XID_Req(f_GERAN_TLLI_Get(p_CellId), v_XID.sAPI, v_XID.xID_Info, enum2int(p_CellId))); + f_GERAN_MsgInDefault_SetXID(v_XID); + } + } + } if (f_GERAN_MsgInDefault_CheckXID()) { // If UE has sent another XID, then we need to reply to it @sic R5s140286 sic@ v_XID := f_GERAN_MsgInDefault_GetXID(); f_GPRS_SendDownlinkMsg(p_CellId, 1, cas_G_LLC_XID_Req(f_GERAN_TLLI_Get(p_CellId), v_XID.sAPI, omit, enum2int(p_CellId))); - f_Delay(2.0); + f_Delay(3.5); // @sic R5s140936 sic@ } } //end of f_GERAN_LLC_XIDReset @@ -1280,12 +1283,14 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_RAUComplete - Set to true if this is called after/during an RAU procedure, so that we also have to wait for RAUComplete * @param p_Expected_G_RA_UpdComplete - If above parameter is true, use this template + * @param p_WaitToSendResponse - Set to true if possible the UE can send an IPv6 Router Solicitation at the same time, to avoid the answers clashing in the same DL TBF * @return template (omit) G_L2_DATAMESSAGE_IND - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_LLC_XID(GERAN_CellId_Type p_CellId, boolean p_RAUComplete, - template LLCUnitDataIndType p_Expected_G_RA_UpdComplete := cr_G_RA_UpdComplete) + template LLCUnitDataIndType p_Expected_G_RA_UpdComplete := cr_G_RA_UpdComplete, + boolean p_WaitToSendResponse := false) runs on GERAN_PTC return template (omit) G_L2_DATAMESSAGE_IND // @sic R5s130368 sic@ { var B10_Type v_BCCH_ARFCN := f_GERAN_GPRSFreq_Get(p_CellId); // @sic R5s120587 sic@ @@ -1314,6 +1319,9 @@ module GERAN_CommonFunctions // RACE CONDITION: Do we need to check the flag here ??? G_RLC.receive(car_G_RLC_ControlMsg_IND(p_CellId, tsc_PhyCh1, cr_PacketControlAcknowledgement)); // RACE CONDITION G_CLLC.send(cas_G_CLLC_XID_Req(f_GERAN_TLLI_Get(p_CellId), v_XID.xid.sAPI, v_XID.xid.xID_Info, enum2int(p_CellId))); // @sic R5-135000 sic@ + if (p_WaitToSendResponse) { // @sic R5s141389 sic@ + f_Delay (3.0); + } fl_SendXIDRes(p_CellId, cas_G_LLC_XID_Req(f_GERAN_TLLI_Get(p_CellId), v_XID.xid.sAPI, omit, enum2int(p_CellId))); // @sic R5s130195 Baseline Moving sic@ } [] G_RLC.receive(car_G_RLC_ControlMsg_IND(p_CellId, tsc_PhyCh1, cr_PacketControlAcknowledgement)) @@ -1342,7 +1350,7 @@ module GERAN_CommonFunctions /* * @desc To store XID messages * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ altstep a_GERAN_ReceiveXID(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -1363,7 +1371,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_Msg * @param p_Rpt (default : true) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function fl_SendXIDRes(GERAN_CellId_Type p_CellId, template (value) G_LLC_DATAMESSAGE_REQ p_Msg, // @sic R5s120967 sic@ @@ -1403,34 +1411,29 @@ module GERAN_CommonFunctions * @param p_WaitForXID (default value: false) * @param p_NSAPI (default value: 0) * @param p_SGSNChange (default value: false) - * @param p_SRVCC (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_RAU(GERAN_CellId_Type p_CellId, template (present) B1_Type p_FOR, template (present) B3_Type p_Type, boolean p_DoAuth := false, boolean p_WaitForXID := false, - integer p_NSAPI := 0, // @sic R5s130833 sic@ - boolean p_SGSNChange := false, - boolean p_SRVCC := false) runs on GERAN_PTC + integer p_NSAPI := 0, // @sic R5s130883 sic@ + boolean p_SGSNChange := false) runs on GERAN_PTC { var G_LLC_DATAMESSAGE_IND v_LLCDataInd; var B3_Type v_UpdateType; var template (value) PDP_ContextStatus v_PDP_ContextStatus; // Receive RAU Request Message - v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_UnitData_IND(cr_G_RA_UpdReqAny(cr_GMM_UpdateType(p_FOR, p_Type), cr_RAI(omit), cr_PTMSI_SignatureAny ifpresent, ?))); + v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_UnitData_IND(cr_G_RA_UpdReqAny(cr_GMM_UpdateType(p_FOR, p_Type)))); v_UpdateType := f_UG_RauReq_GetUpdateValueForRauAcc(v_LLCDataInd.unit.msg.rauReq); /* @sic R5s120019 Additional Changes sic@ */ - v_PDP_ContextStatus := v_LLCDataInd.unit.msg.rauReq.pDP_ContextStatus; + v_PDP_ContextStatus := cs_PDP_ContextStatusInactive; // @sic R5-153114 sic@ if (p_SGSNChange) { // @sic R5s120967, R5s130050 sic@ f_GERAN_LLC_XIDReset(p_CellId, 11); } - if (p_SRVCC) { // @sic R5s140158 sic@ - v_PDP_ContextStatus := cs_PDP_ContextStatusInactive; - } f_GERAN_RAUWithoutRAUReq(p_CellId, v_UpdateType, v_PDP_ContextStatus, p_DoAuth, p_WaitForXID, p_NSAPI); // @sic R5s110720, R5-133584 sic@ }// end of f_GERAN_RAU @@ -1445,11 +1448,11 @@ module GERAN_CommonFunctions * @param p_WaitForXID (default value: false) * @param p_NSAPI (default value: 0 = SNDCP not required) * @param p_FOP (default value: '1'B) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_RAUWithoutRAUReq(GERAN_CellId_Type p_CellId, B3_Type p_UpdateType, - template (omit) PDP_ContextStatus p_PDP_ContextStatus, // @sic R5-133584 sic@ + template (omit) PDP_ContextStatus p_PDP_ContextStatus := cs_PDP_ContextStatusInactive, // @sic R5-153114 sic@ boolean p_DoAuth := false, boolean p_WaitForXID := false, integer p_NSAPI := 0, @@ -1464,7 +1467,7 @@ module GERAN_CommonFunctions var template (value) G_LLC_DATAMESSAGE_REQ v_RAU_Accept; // if LTE has sent over NSAPI value, then SNDCP must be configured now - if (p_NSAPI > 0 and not f_GERAN_SNDCPConfigured_Get()) { // @sic R5s130777, R5s130833 sic@ + if (p_NSAPI > 0 and not f_GERAN_SNDCPConfigured_Get()) { // @sic R5s130777, R5s130883 sic@ f_GERAN_Config_SNDCPandIP(p_CellId, p_NSAPI); } if (p_UpdateType == tsc_I_UpdateTypeCombinedWithIMSI or p_UpdateType == tsc_I_UpdateTypeCombined) { @@ -1510,16 +1513,14 @@ module GERAN_CommonFunctions * @param p_WaitForXID (default value: true) * @param p_NSAPI (default value: 0) * @param p_SGSNChange (default value: false) - * @param p_SRVCC (default value: false) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_508CheckCampOnNewGeranCell(GERAN_CellId_Type p_CellId, boolean p_WaitForXID := true, - integer p_NSAPI := 0, // @sic R5s130833 sic@ - boolean p_SGSNChange := false, - boolean p_SRVCC := false) runs on GERAN_PTC + integer p_NSAPI := 0, // @sic R5s130883 sic@ + boolean p_SGSNChange := false) runs on GERAN_PTC { - f_GERAN_RAU(p_CellId, '0'B, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined), true, p_WaitForXID, p_NSAPI, p_SGSNChange, p_SRVCC); // @sic R5s110087, R5s110720, R5s120967, R5s140158 sic@ + f_GERAN_RAU(p_CellId, '0'B, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI), true, p_WaitForXID, p_NSAPI, p_SGSNChange); // @sic R5s110087, R5s110720, R5s120967, R5s140158, R5s140876, R5-153114 sic@ f_GERAN_PreliminaryPass(__FILE__, __LINE__, ""); } @@ -1566,11 +1567,11 @@ module GERAN_CommonFunctions v_LLCDataInd := f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_UnitData_IND(cr_G_ActPDP_ContextReqMO_Any)); v_TI := v_LLCDataInd.unit.msg.actPDPContextReq.ti; - v_NSAPI := v_LLCDataInd.unit.msg.actPDPContextReq.requestedNSAPI; // @sic R5s130833 sic@ + v_NSAPI := v_LLCDataInd.unit.msg.actPDPContextReq.requestedNSAPI; // @sic R5s130883 sic@ // make sure SNDCP is configured now, if its not been done before - if (p_ConfigureSNDCP and not f_GERAN_SNDCPConfigured_Get()) { // @sic R5s130777, R5s130833 sic@ - f_GERAN_Config_SNDCPandIP(p_CellId, bit2int(v_NSAPI.nSAPI_Value)); // @sic R5s130833 sic@ + if (p_ConfigureSNDCP and not f_GERAN_SNDCPConfigured_Get()) { // @sic R5s130777, R5s130883 sic@ + f_GERAN_Config_SNDCPandIP(p_CellId, bit2int(v_NSAPI.nSAPI_Value)); // @sic R5s130883 sic@ } // Send Accept @@ -1594,7 +1595,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_AttachType * @param p_USIM_Rmvd - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SwitchPowerOff(GERAN_CellId_Type p_CellId, UTRAN_GERAN_ATTACH_Type p_AttachType, @@ -1603,45 +1604,97 @@ module GERAN_CommonFunctions var B2_Type v_Nmo := f_GERAN_NMO_Get(p_CellId); var GERAN_POSTAMBLE_CONDITIONS v_Geran_Postamble_Condition := fl_GERAN_SetPostambleCondition(p_AttachType); // @sic R5s110176 sic@ var TLLI v_TLLI := f_GERAN_TLLI_Get(p_CellId); - var G_L2_DATAMESSAGE_IND v_ImsiDet; + var G_L2_DATAMESSAGE_IND v_ImsiDet, v_ChanReq; + var RFN v_RFN; + var integer v_RR_RA; + var B10_Type v_BCCH := f_GERAN_BCCHFreq_Get(p_CellId); + var B3_Type v_BCC := f_GERAN_BCC_Get(p_CellId); var G_LogicChType v_ChannelType; var SubChannelNumber v_SubChannel; + var boolean v_NeedCS := true; + var boolean v_NeedPS := true; timer t_Wait5s := 5.0; + select (v_Geran_Postamble_Condition) { // @sic R5s141158 sic@ + case (GERAN_C1) { + v_NeedCS := false; + } + case (GERAN_C3) { + v_NeedPS := false; + } + case (GERAN_C2) { + if (v_Nmo == '00'B) { // If NMO I then only Detach needed + v_NeedCS := false; + } } + } + if (pc_SwitchOnOff or p_USIM_Rmvd and pc_USIM_Removal) { // The UE can be switched off or USIM removed @sic R5s120597r1 sic@ f_UT_SwitchOffUE(UT, p_USIM_Rmvd); - if ((v_Geran_Postamble_Condition == GERAN_C3) or (v_Geran_Postamble_Condition == GERAN_C2 and v_Nmo == '01'B)) { + alt { // Then expect an IMSI Detach - f_GERAN_RRConnEst(p_CellId); // @sic R5s120584 sic@ - G_L2.receive(car_G_L2_Estab_IND(p_CellId, ?, ?, ?, cr_G_Imsi_DetachInd)) -> value v_ImsiDet; // @sic R5s130325 sic@ - v_ChannelType := v_ImsiDet.sabm.g_LogicChType; - v_SubChannel := v_ImsiDet.sabm.subChannel; - // @sic R5s120584, R5s120866 subject to prose CR approval sic@ - t_Wait5s.start; - alt { - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_ClassmarkChangeAny)) + [v_NeedCS] G_L2.receive(car_G_L2_ACCESS_IND(p_CellId, + tsc_PhyCh0, + tsc_RACH, + ?, + ?, + cr_ChanReqOtherProc)) // @sic R5s141332 sic@ + -> value v_ChanReq + { + v_RFN := v_ChanReq.access.rfn; + v_RR_RA := bit2int(v_ChanReq.access.burst.chReq.estCauRandomRef); + + //Send IMMEDIATE ASSIGNMENT + G_L2.send(cas_G_L2_UNITDATA_REQ(p_CellId, + tsc_PhyCh0, + tsc_AGCH, + 15, + cs_G_RFN_Omit, + cs_ImmAss(cs_ImmediateAssignment(v_BCCH, v_BCC, v_RR_RA, v_RFN, substr(oct2bit(f_GERAN_TA_Get(p_CellId)),1, 6))))); + + G_L2.receive(car_G_L2_Estab_IND(p_CellId, ?, ?, ?, cr_G_Imsi_DetachInd)) -> value v_ImsiDet; // @sic R5s130325 sic@ + v_ChannelType := v_ImsiDet.sabm.g_LogicChType; + v_SubChannel := v_ImsiDet.sabm.subChannel; + // @sic R5s120584, R5s120866 subject to prose CR approval sic@ + t_Wait5s.start; + alt { + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_ClassmarkChangeAny)) { t_Wait5s.stop; - if (pc_UTRA) { - interleave { // @sic R5s130180 sic@ - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)) {} - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit)))){} - } - } else { - G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit)))); - } - } - [] t_Wait5s.timeout {} + if (pc_UTRA or v_NeedPS) { // @sic R5s150408 sic@ + alt { // @sic R5s141332, R5s150408 sic@ interleave cannot have boolean guards + [pc_UTRA] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)) + { + if (v_NeedPS) { + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI))); + } + } + [v_NeedPS] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI))) + { + if (pc_UTRA) { + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)) + } + } + }}} + [] t_Wait5s.timeout {} + } + f_G_ChannelRelease(p_CellId, tsc_PhyCh0, v_ChannelType, v_SubChannel); // @sic R5s130325 sic@ + v_NeedCS := false; // @sic R5s141158 sic@ + if (v_NeedPS) { + repeat; + } + } + // Then expect an GPRS Detach + [v_NeedPS] G_L2.receive(car_G_L2_ACCESS_IND(p_CellId, tsc_PhyCh0, tsc_RACH, ?, ?, cr_ChanReqOnePhase)) -> value v_ChanReq + { + f_GERAN_ULTBFOnePhase(p_CellId, v_ChanReq.access, car_G_LLC_UnitData_IND(cr_G_DetachRequest(cr_DetachTypeOnSwitchOff, cdr_MobileIdTMSI_tlv(?) ifpresent))); // @sic R5s120050 MCC160 implementation sic@ + v_NeedPS := false; // @sic R5s141158 sic@ + if (v_NeedCS) { + repeat; + } } - f_G_ChannelRelease(p_CellId, tsc_PhyCh0, v_ChannelType, v_SubChannel); // @sic R5s130325 sic@ - } - - if (v_Geran_Postamble_Condition != GERAN_C3) { // as long as GPRS is supported - f_GPRS_ReceiveUplinkMsg(p_CellId, car_G_LLC_UnitData_IND(cr_G_DetachRequest(cr_DetachTypeOnSwitchOff, cdr_MobileIdTMSI_tlv(?) ifpresent))); // @sic R5s120889 sic@ } - } - else { // The power must be removed from the UE + } else { // The power must be removed from the UE f_UT_PowerOffUE(UT); } // @sic R5s120056 sic@ @@ -1662,7 +1715,7 @@ module GERAN_CommonFunctions * @param p_DoUpdate (default value: false) * only set to true if UE is not registered to the LAC of this cell, so an RAU is required (default value: false) * @param p_TCHType (default value: NotSpecified) Used in G4_CSCALL. If set, function will also delete TCH - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_Postamble(GERAN_CellId_Type p_CellId, GERAN_POSTAMBLE_STATE_TYPE p_GERAN_POSTAMBLE_STATE, @@ -1733,7 +1786,7 @@ module GERAN_CommonFunctions * and the LTE UE Attach type. According to 36.523-3 Table 10.1-1 * @param p_AttachType * @return GERAN_POSTAMBLE_CONDITIONS - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function fl_GERAN_SetPostambleCondition(UTRAN_GERAN_ATTACH_Type p_AttachType) return GERAN_POSTAMBLE_CONDITIONS { @@ -1756,7 +1809,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_AttachType * @param p_AlreadyRegisteredToLAC (default: false) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CS_Fallback(GERAN_CellId_Type p_CellId, UTRAN_GERAN_ATTACH_Type p_AttachType, @@ -1822,7 +1875,7 @@ module GERAN_CommonFunctions * @param p_ChannelType * @param p_SubChannel (default value: 15); If this is sent on a TCH/F then this value is ignored * @param p_Calltype (default value: cs_TI_MT) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CC_Disconnect(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, @@ -1858,7 +1911,7 @@ module GERAN_CommonFunctions * and returns a boolean (TRUE is attach is combined, false if attach is EPS only) * @param p_AttachType If the prose doesn't state that the UE is configured for a specific state, then set to NotSpecified * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_AttachTypeCheck(UTRAN_GERAN_ATTACH_Type p_AttachType) return boolean { @@ -1950,7 +2003,7 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_ChannelType * @param p_SubChannel - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_MM_Authentication(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, @@ -2001,7 +2054,7 @@ module GERAN_CommonFunctions /* * @desc To receive a channel request and send back an Immediate Assignment message * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (LTE_IRAT) */ function f_GERAN_RRConnEst(GERAN_CellId_Type p_CellId) runs on GERAN_PTC { @@ -2041,18 +2094,20 @@ module GERAN_CommonFunctions * @param p_ChannelType Logical channel of SDCCH UE is currently on * @param p_SubChannel subchannel of SDCCH UE is currently on * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used + * @param p_StopAtU9State (default: false) ...set to true if need U9, Alerting State, used for some rSRVCC tests * @status APPROVED (LTE_IRAT) */ function f_GERAN_EnterU10_MT_Step10_19(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, - SubChannelNumber p_SubChannel) runs on GERAN_PTC return G_LogicChType + SubChannelNumber p_SubChannel, + boolean p_StopAtU9State := false) runs on GERAN_PTC return G_LogicChType { var G_LogicChType v_TCHType; G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_PhyCh0, p_ChannelType, p_SubChannel, cs_G_RFN_Omit, cs_G_SetupMTCall(cs_BcapSpeechMT))); G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_CallConfirmed(?))); // @sic R5s120637 sic@ - v_TCHType := f_GERAN_EnterU10_MT_Step12_19(p_CellId, p_ChannelType, p_SubChannel); + v_TCHType := f_GERAN_EnterU10_MT_Step12_19(p_CellId, p_ChannelType, p_SubChannel, p_StopAtU9State); return v_TCHType; } @@ -2062,13 +2117,15 @@ module GERAN_CommonFunctions * @param p_ChannelType Logical channel of SDCCH UE is currently on * @param p_SubChannel subchannel of SDCCH UE is currently on * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used + * @param p_StopAtU9State (default: false) ...set to true if need U9, Alerting State, used for some rSRVCC tests * @status APPROVED (LTE_IRAT) */ function f_GERAN_EnterU10_MT_Step12_19(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, - SubChannelNumber p_SubChannel) runs on GERAN_PTC return G_LogicChType + SubChannelNumber p_SubChannel, + boolean p_StopAtU9State := false) runs on GERAN_PTC return G_LogicChType { - var G_LogicChType v_TCHType; + var G_LogicChType v_TCHType := p_ChannelType; var SubChannelNumber v_TCHSubChannel; var G_L2_DATAMESSAGE_IND v_EstInd, v_Connect; var TI v_Ti_R, v_Ti_S;// Transaction Identifier. r = value used to receive CC PDU. s = value used to send CC PDU. @@ -2079,38 +2136,47 @@ module GERAN_CommonFunctions omit, omit, cs_CipherModeSettingGSM); - - G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_PhyCh0, p_ChannelType, p_SubChannel, cs_G_RFN_Omit, v_AssignmentCmd)); - G_L2.receive(car_G_L2_Estab_IND(p_CellId, ?, ?, ?, omit)) -> value v_EstInd; // receive establish indication first - - v_TCHType := v_EstInd.sabm.g_LogicChType; - v_TCHSubChannel := v_EstInd.sabm.subChannel; - - alt { - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_TchCh, ?, ?, ?, cr_G_AssignmentComplete)) {} - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_AssignmentFailure)) { - f_GERAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Assignment Failed"); - } - } - alt { - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Connect(cr_TI_Any))) - -> value v_Connect{} - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Alerting(?))) { - f_UT_AnswerCall(UT); - G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Connect(cr_TI_Any))) - -> value v_Connect; - } + if (p_StopAtU9State) { // @sic R5-150428 sic@ + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Alerting(?))); + } else { + alt { + // Step A12 + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Connect(cr_TI_Any))) + -> value v_Connect{} + // Step B12, 13 + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Alerting(?))) { + // Step B14 + f_UT_AnswerCall(UT); + // Step B15 + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?,?, ?, ?, cr_G_Connect(cr_TI_Any))) + -> value v_Connect; + } + } + + // Step 16 + G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_PhyCh0, p_ChannelType, p_SubChannel, cs_G_RFN_Omit, v_AssignmentCmd)); + G_L2.receive(car_G_L2_Estab_IND(p_CellId, ?, ?, ?, omit)) -> value v_EstInd; // receive establish indication first + + v_TCHType := v_EstInd.sabm.g_LogicChType; + v_TCHSubChannel := v_EstInd.sabm.subChannel; + + // Step 17 + alt { + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_TchCh, ?, ?, ?, cr_G_AssignmentComplete)) {} + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_AssignmentFailure)) { + f_GERAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Assignment Failed"); + } + } + // release old channel + G_L2.send(cas_G_L2_Release_REQ(p_CellId, tsc_PhyCh0, p_ChannelType, p_SubChannel)); + G_L2.receive(car_G_L2_Release_CNF); + + // Step 19 + v_Ti_R := v_Connect.l3.msg.connectul.ti; + v_Ti_S := v_Ti_R; + v_Ti_S.tiFlag := v_Ti_R.tiFlag xor4b '1'B; // @sic R5s120637 sic@ + G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_TchCh, v_TCHType, v_TCHSubChannel, cs_G_RFN_Omit, cs_G_ConnectAck(v_Ti_S))); } - - // release old channel - G_L2.send(cas_G_L2_Release_REQ(p_CellId, tsc_PhyCh0, p_ChannelType, p_SubChannel)); - G_L2.receive(car_G_L2_Release_CNF); - - v_Ti_R := v_Connect.l3.msg.connectul.ti; - v_Ti_S := v_Ti_R; - v_Ti_S.tiFlag := v_Ti_R.tiFlag xor4b '1'B; // @sic R5s120637 sic@ - G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_TchCh, v_TCHType, v_TCHSubChannel, cs_G_RFN_Omit, cs_G_ConnectAck(v_Ti_S))); - return v_TCHType; } @@ -2120,10 +2186,12 @@ module GERAN_CommonFunctions * @param p_CellId * @param p_TCHPwrLvl (default value: tsc_GERAN_ServingCell) * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used + * @param p_StopAtU9State (default: false) ...set to true if need U9, Alerting State, used for some rSRVCC tests * @status APPROVED (LTE_IRAT) */ function f_GERAN_EnterU10_MT(GERAN_CellId_Type p_CellId, - integer p_TCHPwrLvl := tsc_GERAN_ServingCell) runs on GERAN_PTC return G_LogicChType + integer p_TCHPwrLvl := tsc_GERAN_ServingCell, + boolean p_StopAtU9State := false) runs on GERAN_PTC return G_LogicChType { var ControlChDescr v_CtrlCh := f_GERAN_ControlChDesc_Get(p_CellId); var integer k := f_PagingGroupCalculate(px_IMSI_Def, v_CtrlCh.cCCH_CONF, @@ -2158,14 +2226,14 @@ module GERAN_CommonFunctions { t_Wait5s.start; alt { // Wait a while to see if a GPRS Suspension Req is also sent - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?))) + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) { t_Wait5s.stop; } [] t_Wait5s.timeout {} } } - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?))) + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) { if (pc_UTRA) { // @sic R5s130260 sic@ G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)); @@ -2177,7 +2245,7 @@ module GERAN_CommonFunctions f_GERAN_Ciphering_Mode_Setting(p_CellId, tsc_PhyCh0, v_ChannelType, v_SubChannel); // From sending Setup all the way to Connect Acknowledge - v_TCHType := f_GERAN_EnterU10_MT_Step10_19(p_CellId, v_ChannelType, v_SubChannel); + v_TCHType := f_GERAN_EnterU10_MT_Step10_19(p_CellId, v_ChannelType, v_SubChannel, p_StopAtU9State); return v_TCHType; } @@ -2187,9 +2255,11 @@ module GERAN_CommonFunctions * @desc To get the UE into Call Active, U10 state on a TCH * @param p_CellId * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150427 sic@ * @status */ - function f_GERAN_EnterU10_MO_WithoutRRConnEst(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return G_LogicChType + function f_GERAN_EnterU10_MO_WithoutRRConnEst(GERAN_CellId_Type p_CellId, + boolean p_StopAtU4State := false) runs on GERAN_PTC return G_LogicChType { var G_L2_DATAMESSAGE_IND v_ServReq; var SubChannelNumber v_SubChannel; @@ -2210,14 +2280,14 @@ module GERAN_CommonFunctions { t_Wait5s.start; alt { // Wait a while to see if a GPRS Suspension Req is also sent - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?))) + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) { t_Wait5s.stop; } [] t_Wait5s.timeout {} } } - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?))) + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) { if (pc_UTRA) { // @sic R5s130260 sic@ G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)); @@ -2225,7 +2295,7 @@ module GERAN_CommonFunctions } } - return f_GERAN_EnterU10_MO_Steps5_19(p_CellId, v_ChannelType, v_SubChannel); + return f_GERAN_EnterU10_MO_Steps5_19(p_CellId, v_ChannelType, v_SubChannel, p_StopAtU4State); } //---------------------------------------------------------------------------- @@ -2235,11 +2305,13 @@ module GERAN_CommonFunctions * @param p_ChannelType Logical channel of SDCCH UE is currently on * @param p_SubChannel subchannel of SDCCH UE is currently on * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150427 sic@ * @status APPROVED (LTE_IRAT) */ function f_GERAN_EnterU10_MO_Steps5_19(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, - SubChannelNumber p_SubChannel) runs on GERAN_PTC return G_LogicChType + SubChannelNumber p_SubChannel, + boolean p_StopAtU4State := false) runs on GERAN_PTC return G_LogicChType { var G_L2_DATAMESSAGE_IND v_SetUp; var TI v_Ti_R; //Receiving Transaction Identifier @@ -2257,7 +2329,7 @@ module GERAN_CommonFunctions G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_SetupUL_MO)) -> value v_SetUp; v_Ti_R := v_SetUp.l3.msg.setupul.ti; - return f_GERAN_EnterU10_MO_Steps11_19 (p_CellId, p_ChannelType, p_SubChannel, v_Ti_R); // @sic R5-142954 sic@ + return f_GERAN_EnterU10_MO_Steps11_19 (p_CellId, p_ChannelType, p_SubChannel, v_Ti_R, p_StopAtU4State); // @sic R5-142954 sic@ } /* @@ -2266,17 +2338,19 @@ module GERAN_CommonFunctions * @param p_ChannelType Logical channel of SDCCH UE is currently on * @param p_SubChannel subchannel of SDCCH UE is currently on * @param p_Ti_R + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150427 sic@ * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used - * @status APPROVED (LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_IRAT) */ function f_GERAN_EnterU10_MO_Steps11_19(GERAN_CellId_Type p_CellId, G_LogicChType p_ChannelType, SubChannelNumber p_SubChannel, - TI p_Ti_R) runs on GERAN_PTC return G_LogicChType + TI p_Ti_R, + boolean p_StopAtU4State := false) runs on GERAN_PTC return G_LogicChType { var G_L2_DATAMESSAGE_IND v_EstInd; var TI v_Ti_S := p_Ti_R; //Sending Transaction Identifier - var G_LogicChType v_TCHType; + var G_LogicChType v_TCHType := p_ChannelType; var SubChannelNumber v_TCHSubChannel; var template (value) L2DataReqType v_AssignmentCmd := cs_G_AssignmentCommand(cs_G_ChModeSpeechFROrHRV1, cs_G_ChannelDescr('00001'B, tsc_TN1, f_GERAN_TCHFreq_Get(p_CellId), px_TSC), @@ -2295,27 +2369,33 @@ module GERAN_CommonFunctions //Send Alert message G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_PhyCh0, p_ChannelType, p_SubChannel, cs_G_RFN_Omit, cs_G_Alert(v_Ti_S))); - //Step 14-15 - //Assignment of Traffic Channel - G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_PhyCh0, p_ChannelType, p_SubChannel, cs_G_RFN_Omit, v_AssignmentCmd)); - G_L2.receive(car_G_L2_Estab_IND(p_CellId, ?, ?, ?, omit)) // receive establish indication first - -> value v_EstInd; - v_TCHType := v_EstInd.sabm.g_LogicChType; - v_TCHSubChannel := v_EstInd.sabm.subChannel; - alt { - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_TchCh,?, ?, ?, cr_G_AssignmentComplete)) {} - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_AssignmentFailure)) { - f_GERAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Assignment Failed"); - } + if (not p_StopAtU4State) { // @sic R5-150427 sic@ + //Step 14-15 + //Assignment of Traffic Channel + G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_PhyCh0, p_ChannelType, p_SubChannel, cs_G_RFN_Omit, v_AssignmentCmd)); + G_L2.receive(car_G_L2_Estab_IND(p_CellId, ?, ?, ?, omit)) // receive establish indication first + -> value v_EstInd; + v_TCHType := v_EstInd.sabm.g_LogicChType; + v_TCHSubChannel := v_EstInd.sabm.subChannel; + alt { + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_TchCh,?, ?, ?, cr_G_AssignmentComplete)) {} + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_AssignmentFailure)) { + f_GERAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Assignment Failed"); + } + } + + // release old channel @sic R5s150495 sic@ + G_L2.send(cas_G_L2_Release_REQ(p_CellId, tsc_PhyCh0, p_ChannelType, p_SubChannel)); + G_L2.receive(car_G_L2_Release_CNF); + + //Step 16 + //Send Connect message + G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_TchCh, v_TCHType, v_TCHSubChannel, cs_G_RFN_Omit, cs_G_Connect(v_Ti_S))); // @sic R5s120600 sic@ + + //Step 17 + //Receive CONNECT ACKNOWLEDGE + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_ConnAck(cr_TI_Any))); } - - //Step 16 - //Send Connect message - G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_TchCh, v_TCHType, v_TCHSubChannel, cs_G_RFN_Omit, cs_G_Connect(v_Ti_S))); // @sic R5s120600 sic@ - - //Step 17 - //Receive CONNECT ACKNOWLEDGE - G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_ConnAck(cr_TI_Any))); return v_TCHType; } @@ -2323,15 +2403,19 @@ module GERAN_CommonFunctions * Function is according to 51.010 cl. 10.2.3 * @param p_CellId * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150427 sic@ * @status */ - function f_GERAN_EnterU10_MO(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return G_LogicChType + function f_GERAN_EnterU10_MO(GERAN_CellId_Type p_CellId, + integer p_TCHPwrLvl := tsc_GERAN_ServingCell, + boolean p_StopAtU4State := false) runs on GERAN_PTC return G_LogicChType { f_GERAN_CreateTCH(p_CellId, dontWaitForCNF); // Create the physical channel first + f_GERAN_SetChPwrLevel (p_CellId, tsc_TchCh, p_TCHPwrLvl); f_GERAN_RRConnEst(p_CellId); - return f_GERAN_EnterU10_MO_WithoutRRConnEst(p_CellId); + return f_GERAN_EnterU10_MO_WithoutRRConnEst(p_CellId, p_StopAtU4State); } //---------------------------------------------------------------------------- @@ -2339,7 +2423,7 @@ module GERAN_CommonFunctions * @desc To get the UE into Call Active, U10 state, steps 5 to 19 of 51.010, 10.2.3 * @param p_CellId * @return G_LogicChType Logical channel of TCH UE is now on N.B. As a full rate TCH is configured in this step, the SubChannel parameter is not used - * @status APPROVED (LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_IRAT) */ function f_GERAN_EmgCallSetup(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return G_LogicChType { @@ -2403,14 +2487,14 @@ module GERAN_CommonFunctions { t_Wait1s.start; alt { // Wait a while to see if a GPRS Suspension Req is also sent - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?))) + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) { t_Wait1s.stop; } [] t_Wait1s.timeout {} } } - [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?))) + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) { if (pc_UTRA) { G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)); @@ -2421,8 +2505,11 @@ module GERAN_CommonFunctions //AUTHENTICATION REQUEST and AUTHENTICATION RESPONSE f_GERAN_MM_Authentication(p_CellId, v_ChannelType, v_SubChannel); + // !!!! Ciphering NOT INCLUDED in the prose !!!! + f_GERAN_Ciphering_Mode_Setting (p_CellId, tsc_PhyCh0, v_ChannelType, v_SubChannel); + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_EmgSetup)) -> value v_SetUp; - v_Ti_R := v_SetUp.l3.msg.setupul.ti; + v_Ti_R := v_SetUp.l3.msg.esetup.ti; v_TchType := f_GERAN_EnterU10_MO_Steps11_19 (p_CellId, v_ChannelType, v_SubChannel, v_Ti_R); f_GERAN_PreliminaryPass(__FILE__, __LINE__, "Emergency Call Setup Received"); @@ -2435,7 +2522,7 @@ module GERAN_CommonFunctions * @desc To TLLI (if required) * @param p_CellId * @param p_NewTLLI - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function fl_GERAN_TLLI_Update(GERAN_CellId_Type p_CellId, TLLI p_NewTLLI) runs on GERAN_PTC @@ -2467,36 +2554,26 @@ module GERAN_CommonFunctions } /* - * @desc The UE sends Uplink Data - * PLEASE NOTE: This is the 1st function of 2 and MUST be followed by a_GERAN_Receive_UplinkData + * @desc To set up for single block access * @param p_CellId - * @param p_ChanReq (default value: omit) + * @param p_ChanReq * @status APPROVED (LTE_IRAT) */ - function f_GERAN_Receive_UplinkDataStart(GERAN_CellId_Type p_CellId, - template (omit) G_L2_DATAMESSAGE_IND p_ChanReq := omit) // @sic R5s130368 sic@ + function f_GERAN_SingleBlockAccess(GERAN_CellId_Type p_CellId, + G_L2_ACCESS_IND p_ChanReq) runs on GERAN_PTC { - var G_L2_DATAMESSAGE_IND v_ChanReq; var G_CPHY_CONFIG_CNF v_G_CL1_ComingFN_CNF; - var G_RLC_DATAMESSAGE_IND v_G_RLC_ControlMsg_IND; var RFN v_StartingTime; - var TLLI v_NewTLLI; var B5_Type v_Gamma := f_GERAN_GAMMA_Get(p_CellId); var B10_Type v_GPRSFreq := f_GERAN_GPRSFreq_Get(p_CellId); var integer v_RR_RA; var RFN v_RFN; - if (isvalue(p_ChanReq)) { // @sic R5s130368 sic@ - v_ChanReq := valueof(p_ChanReq); // need to do this as parameter can be omitted - } else { - // @sic R5s120521 sic@ - G_L2.receive(car_G_L2_ACCESS_IND(p_CellId, tsc_PhyCh0, tsc_RACH, ?, ?, (cr_ChanReqOnePhase, cr_ChanReqTwoPhase))) -> value v_ChanReq; - } // finish configuring the TBF - v_RFN := v_ChanReq.access.rfn; - v_RR_RA := bit2int(v_ChanReq.access.burst.chReq.estCauRandomRef); - if ((111 > v_RR_RA) or (v_RR_RA > 127)) {// establishment cause should be one or two phase access + v_RFN := p_ChanReq.rfn; + v_RR_RA := bit2int(p_ChanReq.burst.chReq.estCauRandomRef); + if ((111 > v_RR_RA) or (v_RR_RA > 127)) {// establishment cause should be one or two phase access @sic R5s150415 sic@ f_GERAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "wrong establishment cause"); } @@ -2515,9 +2592,47 @@ module GERAN_CommonFunctions substr(oct2bit(f_GERAN_TA_Get(p_CellId)),1, 6), // @sic R5s120587 sic@ cds_IARO_SingleBlkPUA(v_Gamma, (v_StartingTime.t1_ & v_StartingTime.t3 & v_StartingTime.t2)))))); // @sic GP-110839 sic@ + } + + /* + * @desc To configure a Two Phase TBF + * @param p_CellId + * @param p_ChanReq + * @status APPROVED (LTE_IRAT) + */ + function f_GERAN_ULTBFTwoPhase(GERAN_CellId_Type p_CellId, + G_L2_ACCESS_IND p_ChanReq) + runs on GERAN_PTC + { + f_GERAN_SingleBlockAccess (p_CellId, p_ChanReq); // @sic R5s150326 sic@ // Configure the Uplink TBF for Dynamic Allocation, USF 0 on timeslot 4 f_GERAN_RLC_CONFIG_Common(cas_ActivateTBF_UplinkDyn(p_CellId, 1), dontWaitForCNF); // don't wait for CNF to avoid race condition with incoming car_G_RLC_ControlMsg_IND + } + + /* + * @desc The UE sends Uplink Data + * PLEASE NOTE: This is the 1st function of 2 and MUST be followed by a_GERAN_Receive_UplinkData + * @param p_CellId + * @param p_ChanReq (default value: omit) + * @status APPROVED (LTE_IRAT) + */ + function f_GERAN_Receive_UplinkDataStart(GERAN_CellId_Type p_CellId, + template (omit) G_L2_DATAMESSAGE_IND p_ChanReq := omit) // @sic R5s130368 sic@ + runs on GERAN_PTC + { + var G_L2_DATAMESSAGE_IND v_ChanReq; + var G_RLC_DATAMESSAGE_IND v_G_RLC_ControlMsg_IND; + var TLLI v_NewTLLI; + var B10_Type v_GPRSFreq := f_GERAN_GPRSFreq_Get(p_CellId); + + if (isvalue(p_ChanReq)) { // @sic R5s130368 sic@ + v_ChanReq := valueof(p_ChanReq); // need to do this as parameter can be omitted + } else { + // @sic R5s120521 sic@ + G_L2.receive(car_G_L2_ACCESS_IND(p_CellId, tsc_PhyCh0, tsc_RACH, ?, ?, (cr_ChanReqOnePhase, cr_ChanReqTwoPhase))) -> value v_ChanReq; + } + f_GERAN_ULTBFTwoPhase (p_CellId, v_ChanReq.access); // @sic R5s150326 sic@ // Now wait for the PRR alt { @@ -2532,7 +2647,7 @@ module GERAN_CommonFunctions } } } - + /* @desc To receive Uplink Data from the UE * PLEASE NOTE: This is the 2nd function of 2 and MUST be preceded by f_GERAN_Trigger_UplinkData * @param p_CellId @@ -2577,7 +2692,7 @@ module GERAN_CommonFunctions { var G_SN_DATAMESSAGE_IND v_RxdMsg; - f_GERAN_Receive_UplinkDataStart(p_CellId, p_ChanReq); + f_GERAN_Receive_UplinkDataStart(p_CellId, p_ChanReq); // @sic R5s150326 sic@ // Receive the message interleave { @@ -2698,7 +2813,7 @@ module GERAN_CommonFunctions ?, ?, ?, - cr_GPRS_SuspensionReq(?, cr_RAI(omit), ?)))-> value v_SusReq; + cr_GPRS_SuspensionReq(?, cr_RAI, ?)))-> value v_SusReq; v_ChannelType := v_SusReq.l3.g_LogicChType; v_SubChannel := v_SusReq.l3.subChannel; @@ -2706,10 +2821,10 @@ module GERAN_CommonFunctions G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, ?, ?, ?, ?, cr_G_TMSI_ReallocCmpl)); + //Tell EUTRA PTC that test case is over + f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); // @sic R5s140898 sic@ + if (p_DoConnect) { - //Tell EUTRA PTC that test case is over - f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); - if (p_SendAlert) { // for bSRVCC G_L2.send(cas_G_L2_DATA_REQ(p_CellId, 0, tsc_TchCh, v_ChannelType, v_SubChannel, cs_G_RFN_Omit, cs_G_Alert(v_Ti_S))); } @@ -2731,9 +2846,7 @@ module GERAN_CommonFunctions var G_L2_DATAMESSAGE_IND v_G_L2_DATAMESSAGE_IND; var G_LogicChType v_ChannelType, v_TchType; var SubChannelNumber v_SubChannel; - var default v_MyDefaultVar := null; - - v_MyDefaultVar := activate (a_Receive_ParallelGPRS_Suspension (p_CellId)); // @sic R5-123629 sic@ + timer t_Wait1s := 1.0; // simple timer to wait for a Suspension Req //Receive CM Service Request G_L2.receive (car_G_L2_Estab_IND (p_CellId, @@ -2745,16 +2858,30 @@ module GERAN_CommonFunctions v_SubChannel := v_G_L2_DATAMESSAGE_IND.sabm.subChannel; f_GERAN_PreliminaryPass (__FILE__, __LINE__, "CS fallback to GERAN with redirection or CCO / MO call (DTM not supported) Step 4"); - // @sic R5s120339 sic@ + // @sic R5s120339, R5s140788 sic@ G_L2.receive (car_G_L2_DATA_IND (p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_ClassmarkChangeAny)); - if (pc_UTRA) { // @sic R5-123629 sic@ - G_L2.receive (car_G_L2_DATA_IND (p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)); + alt { // if UTRAN Classmark Change arrives first + [pc_UTRA] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)) + { + t_Wait1s.start; + alt { // Wait a while to see if a GPRS Suspension Req is also sent + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) + { + t_Wait1s.stop; + } + [] t_Wait1s.timeout {} + } + } + [] G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_GPRS_SuspensionReq(?, cr_RAI, ?))) + { + if (pc_UTRA) { + G_L2.receive(car_G_L2_DATA_IND(p_CellId, ?, tsc_PhyCh0, ?, ?, ?, cr_G_UtranClassmarkChange)); + } + } } v_TchType := f_GERAN_EnterU10_MO_Steps5_19(p_CellId, v_ChannelType, v_SubChannel); // @sic R5s120600 sic@ - - deactivate (v_MyDefaultVar); // @sic R5-123629 sic@ - + //Steps 20-22: Disconnect the MT call with MT procedure f_GERAN_CC_Disconnect(p_CellId, v_TchType, -, cs_TI_MO); // @sic R5s120600 sic@ @@ -2762,7 +2889,7 @@ module GERAN_CommonFunctions f_G_ChannelRelease (p_CellId, tsc_TchCh, v_TchType, 15, cs_G_ResumeGPRS); // @sic R5s120600, R5s130436 sic@ //Perform RAU - f_GERAN_508CheckCampOnNewGeranCell(p_CellId, -, p_NSAPI); // @sic R5s130833 sic@ + f_GERAN_508CheckCampOnNewGeranCell(p_CellId, -, p_NSAPI); // @sic R5s130883 sic@ } /* @@ -2781,28 +2908,26 @@ module GERAN_CommonFunctions f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); //RSteps 3 to 32 - f_GERAN_CSFB_Redirection_CCO_M0_Steps3_32(p_CellId, p_NSAPI); // @sic R5s130833 sic@ + f_GERAN_CSFB_Redirection_CCO_M0_Steps3_32(p_CellId, p_NSAPI); // @sic R5s130883 sic@ } /* * @desc To receive the GPRS Suspension Req in parallel with the CS Fallback procedures * @param p_CellId - * @status APPROVED (LTE_IRAT) */ altstep a_Receive_ParallelGPRS_Suspension (GERAN_CellId_Type p_CellId) runs on GERAN_PTC { // @sic R5-123629 sic@ - [] G_L2.receive (car_G_L2_DATA_IND (p_CellId, - ?, - tsc_PhyCh0, - ?, - ?, - ?, - cr_GPRS_SuspensionReq(?, cr_RAI (omit)))) - { - repeat; - } - + [] G_L2.receive (car_G_L2_DATA_IND(p_CellId, + ?, + tsc_PhyCh0, + ?, + ?, + ?, + cr_GPRS_SuspensionReq(?, cr_RAI))) + { + repeat; + } } -} // End of module +} diff --git a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_Component.ttcn b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_Component.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/GERAN/GERAN_Component.ttcn rename to LTE_A_IWD_15wk38/Common/GERAN/GERAN_Component.ttcn index 0922a1f..a45d91d 100644 --- a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_Component.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-09 21:19:23 +0200 (Sat, 09 Aug 2014) $ -// $Rev: 11868 $ +// @version: IWD_15wk38 +// $Date: 2015-06-01 18:14:24 +0200 (Mon, 01 Jun 2015) $ +// $Rev: 13618 $ /******************************************************************************/ module GERAN_Component { @@ -19,6 +19,7 @@ module GERAN_Component { import from NAS_AuthenticationCommon all; import from GERAN_Templates all; import from IP_PTC_CtrlMsgs all; + import from IMS_PTC_CoordMsg all; import from Parameters all; //============================================================================ @@ -108,7 +109,7 @@ module GERAN_Component { //============================================================================ - type enumerated GERAN_Default_Enum_Type {StandardDefault}; /* refers to common default alt_GERAN_Standard_Default; @status APPROVED (LTE_A, LTE_IRAT) */ + type enumerated GERAN_Default_Enum_Type {StandardDefault}; /* refers to common default alt_GERAN_Standard_Default; @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ type record GERAN_Ctrl_Type { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, UTRAN) */ default Default, /* default behaviour being activated on GERAN */ @@ -139,6 +140,7 @@ module GERAN_Component { port GERAN_RLC_PORT G_RLC; port GERAN_SNDCP_PORT G_SN; // @sic R5s120861 sic@ port IP_RAT_CTRL_PORT IP; /* @sic R5-133612 sic@ */ + port IMS_IPCAN_CO_ORD_PORT IMS[tsc_NoOfPDNs]; /* @sic R5-152083 sic@ */ }; type component GERAN_SYSTEM { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, UTRAN) */ @@ -173,15 +175,15 @@ module GERAN_Component { //============================================================================ // standard default behaviour: - template (present) G_CPHY_CONFIG_CNF car_G_CPHY_CONFIG_CNF_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_RLC_CONFIG_CNF car_G_RLC_CONFIG_CNF_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_LLC_CONFIG_CNF car_G_LLC_CONFIG_CNF_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_L2_DATAMESSAGE_IND car_G_L2_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_LLC_DATAMESSAGE_IND car_G_LLC_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_RLC_DATAMESSAGE_IND car_G_RLC_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_SN_DATAMESSAGE_IND car_G_SN_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT) @sic R5s120861 sic@ */ + template (present) G_CPHY_CONFIG_CNF car_G_CPHY_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_RLC_CONFIG_CNF car_G_RLC_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_LLC_CONFIG_CNF car_G_LLC_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_L2_DATAMESSAGE_IND car_G_L2_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_LLC_DATAMESSAGE_IND car_G_LLC_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_RLC_DATAMESSAGE_IND car_G_RLC_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_SN_DATAMESSAGE_IND car_G_SN_DATAMESSAGE_IND_Any := ?; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) @sic R5s120861 sic@ */ template (present) G_RLC_DATAMESSAGE_IND car_G_RLC_ControlMsg_IND_AnyCellPCA := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ ctrl := { cellId := ?, physicalChId := tsc_PhyCh1, // Channel identifier @@ -194,7 +196,7 @@ module GERAN_Component { }; template (present) G_L2_DATAMESSAGE_IND car_G_L2_AnyCell2PhaseAccess := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ access := { cellId := ?, physicalChId := tsc_PhyCh0, // Channel identifier @@ -209,7 +211,7 @@ module GERAN_Component { * @desc To convert the integer, passed from another PTC, into the GERAN Cell Id enumerated type * @param p_IntId * @return GERAN_CellId_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function fl_ConvertInt2GERAN_Cell_Id (integer p_IntId) runs on GERAN_PTC return GERAN_CellId_Type { @@ -238,9 +240,30 @@ module GERAN_Component { return v_CellId; } + /* + * @desc generic function to deal with GERAN cas_G_CL1_ComingFN_REQ + * @param p_G_CPHY_CONFIG_REQ + * @return G_CPHY_CONFIG_CNF + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) + */ + function f_GERAN_CPHY_CONFIG_ComingFN(template (value) G_CPHY_CONFIG_REQ p_G_CPHY_CONFIG_REQ) runs on GERAN_PTC return G_CPHY_CONFIG_CNF + { + var G_CPHY_CONFIG_CNF v_G_CPHY_CONFIG_CNF; + + G_CL1.clear; /* since CNFs are not always handled explicitly there might still an 'old' CNF be in the incoming queue to be removed */ + G_CL1.send(p_G_CPHY_CONFIG_REQ); + alt { + [] G_CL1.receive(car_G_CL1_ComingFN_CNF) -> value v_G_CPHY_CONFIG_CNF {} + [] G_CL1.receive(car_G_CPHY_CONFIG_CNF_Any) { + f_SetVerdictInconc(__FILE__, __LINE__, "got wrong CNF instead of car_G_CL1_ComingFN_CNF"); + } + } + return v_G_CPHY_CONFIG_CNF; + } + /* * @desc standard default behaviour for GERAN - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ altstep a_GERAN_StandardDefault() runs on GERAN_PTC { // @sic R5s110431 sic@ @@ -249,6 +272,8 @@ module GERAN_Component { var G_L2_DATAMESSAGE_IND v_ChanReq; var G_RLC_DATAMESSAGE_IND v_G_RLC_ControlMsg_IND; var IP_Indication_Type v_IPCoordMsg; + var G_CPHY_CONFIG_CNF v_G_CL1_ComingFN_CNF; + var RFN v_StartingTime; var GERAN_CellId_Type v_CellId; var template (value) PagingReqType v_PagingReqType; var DRXparameter v_SplitPGCycle; @@ -283,13 +308,17 @@ module GERAN_Component { v_SplitPGCycle.splitPGcycleCode); G_L2.send(cas_GPRS_Paging_REQ(v_CellId, k, bit2int(v_SplitPGCycle.splitPGcycleCode), v_PagingReqType)); } - } + repeat; // @sic R5s141368 sic@ + } [] G_L2.receive (car_G_L2_AnyCell2PhaseAccess) -> value v_ChanReq { // @sic R5-133612 sic@ // finish configuring the TBF v_CellId := fl_ConvertInt2GERAN_Cell_Id(v_ChanReq.access.cellId); + v_G_CL1_ComingFN_CNF := f_GERAN_CPHY_CONFIG_ComingFN(cas_G_CL1_ComingFN_REQ(v_CellId, tsc_PhyCh1, tsc_PACCH_F)); // @sic R5s150139 sic@ + v_StartingTime := v_G_CL1_ComingFN_CNF.comingFN; + // Send IA G_L2.send (cas_G_L2_UNITDATA_REQ (v_CellId, tsc_PhyCh0, @@ -300,7 +329,8 @@ module GERAN_Component { bit2int(v_ChanReq.access.burst.chReq.estCauRandomRef), v_ChanReq.access.rfn, substr(oct2bit(f_GERAN_TA_Get(v_CellId)),1, 6), - cds_IARO_SingleBlkPUA( f_GERAN_GAMMA_Get(v_CellId), omit))))); + cds_IARO_SingleBlkPUA( f_GERAN_GAMMA_Get(v_CellId), + v_StartingTime.t1_ & v_StartingTime.t3 & v_StartingTime.t2))))); // @sic R5s150139 sic@ // Configure the Uplink TBF for Dynamic Allocation, USF 0 on timeslot 4 f_GERAN_RLC_CONFIG_Common(cas_ActivateTBF_UplinkDyn(v_CellId, 1), dontWaitForCNF); // don't wait for CNF to avoid race condition with incoming car_G_RLC_ControlMsg_IND @@ -311,6 +341,7 @@ module GERAN_Component { G_RLC.send (cas_G_RLC_ControlMsg_REQ_PACCH( v_CellId, tsc_PhyCh1, 1, tsc_UplinkTFI, cds_PacketUplinkAssignment_TwoPhase(f_GERAN_GPRSFreq_Get(v_CellId), substr(oct2bit(f_GERAN_TA_Get(v_CellId)),1, 6), v_G_RLC_ControlMsg_IND.ctrl.msg.pktResReq.tlli))); + repeat; // @sic R5s141368 sic@ } [] G_RLC.receive (car_G_RLC_ControlMsg_IND_AnyCellPCA) { // @sic R5-133612 sic@ repeat; @@ -359,7 +390,7 @@ module GERAN_Component { /* * @desc to deal with entry and exit of the test body * @param p_TestBodyFlag - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_TestBody_Set(boolean p_TestBodyFlag) runs on GERAN_PTC { vc_GERAN_Global.Ctrl.TestBody := p_TestBodyFlag; @@ -368,7 +399,7 @@ module GERAN_Component { /* * @desc check whether test body is active * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function fl_GERAN_TestBody_Check() runs on GERAN_PTC return boolean { return vc_GERAN_Global.Ctrl.TestBody; @@ -379,7 +410,7 @@ module GERAN_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SetVerdictFailOrInconc(charstring p_FileName, LineNo_Type p_LineNo, @@ -397,7 +428,7 @@ module GERAN_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_PreliminaryPass(charstring p_FileName, LineNo_Type p_LineNo, @@ -412,7 +443,7 @@ module GERAN_Component { /* * @desc to activate the standard default behaviour * @param p_Default identifies a standard behaviour to be activated - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_ActivateDefault(GERAN_Default_Enum_Type p_Default) runs on GERAN_PTC { @@ -434,7 +465,7 @@ module GERAN_Component { * @desc To get the GERAN cell index * @param p_CellId * @return integer - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CellInfo_GetIndex (GERAN_CellId_Type p_CellId) return integer { @@ -457,7 +488,7 @@ module GERAN_Component { * @desc To get the GERAN cell information * @param p_CellId * @return GERAN_CellInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CellInfo_Get(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return GERAN_CellInfo_Type { // NEVER, EVER CALL THIS FROM ANYWHERE @@ -469,7 +500,7 @@ module GERAN_Component { * @desc To set the cell information * @param p_CellId * @param p_CellCfg - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_CellInfo_Set(GERAN_CellId_Type p_CellId, GERAN_CellInfo_Type p_CellCfg) runs on GERAN_PTC @@ -482,7 +513,7 @@ module GERAN_Component { * @desc To get the system information * @param p_CellId * @return GERAN_SystemInformation_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SysInfo_Get(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return GERAN_SystemInformation_Type { @@ -494,7 +525,7 @@ module GERAN_Component { * @desc To set the system information * @param p_CellId * @param p_SysInfo - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SysInfo_Set(GERAN_CellId_Type p_CellId, template (value) GERAN_SystemInformation_Type p_SysInfo) runs on GERAN_PTC @@ -713,7 +744,7 @@ module GERAN_Component { /* * @desc Get the global Security information * @return GERAN_SecurityInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SecurityInfo_Get() runs on GERAN_PTC return GERAN_SecurityInfo_Type { @@ -723,7 +754,7 @@ module GERAN_Component { /* * @desc Set the global security information * @param p_Info - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SecurityInfo_Set(GERAN_SecurityInfo_Type p_Info) runs on GERAN_PTC { @@ -732,7 +763,7 @@ module GERAN_Component { //---------------------------------------------------------------------------- /* * @desc Set the global flag SNDCP configured - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SNDCPConfigured_Set() runs on GERAN_PTC { @@ -742,7 +773,7 @@ module GERAN_Component { /* * @desc Get the global flag SNDCP configured * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SNDCPConfigured_Get() runs on GERAN_PTC return boolean { @@ -824,7 +855,7 @@ module GERAN_Component { * @desc Get the Frequency of the Control Channel * @param p_CellId * @return B10_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_BCCHFreq_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B10_Type { @@ -836,7 +867,7 @@ module GERAN_Component { * @desc Get the Frequency of the GPRS channel * @param p_CellId * @return B10_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_GPRSFreq_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B10_Type { @@ -848,7 +879,7 @@ module GERAN_Component { * @desc Get the Frequency of the Traffic channel * @param p_CellId * @return B10_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_TCHFreq_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B10_Type { @@ -860,7 +891,7 @@ module GERAN_Component { * @desc Get the Band Indicator * @param p_CellId * @return B1_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_BandInd_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B1_Type { @@ -884,7 +915,7 @@ module GERAN_Component { * @desc Get the NCC * @param p_CellId * @return B3_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_NCC_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B3_Type { @@ -896,7 +927,7 @@ module GERAN_Component { * @desc Get the BCC * @param p_CellId * @return B3_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_BCC_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B3_Type { @@ -932,7 +963,7 @@ module GERAN_Component { * @desc Get the NMO * @param p_CellId * @return B2_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_NMO_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B2_Type { @@ -958,7 +989,7 @@ module GERAN_Component { * @desc Get the Timing Advance * @param p_CellId * @return O1_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_TA_Get(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return O1_Type { @@ -970,7 +1001,7 @@ module GERAN_Component { * @desc Get the GAMMA value * @param p_CellId * @return B5_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_GAMMA_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return B5_Type { @@ -982,7 +1013,7 @@ module GERAN_Component { * @desc Get the PLMN Id * @param p_CellId * @return O3_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_PLMN_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return O3_Type { @@ -1016,7 +1047,7 @@ module GERAN_Component { * @desc Get the LAC * @param p_CellId * @return O2_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_LAC_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return O2_Type { @@ -1050,7 +1081,7 @@ module GERAN_Component { * @desc Get the RAC * @param p_CellId * @return O1_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_RAC_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return O1_Type { @@ -1078,7 +1109,7 @@ module GERAN_Component { * @desc Get the TLLI * @param p_CellId * @return TLLI - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_TLLI_Get(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return TLLI { @@ -1090,7 +1121,7 @@ module GERAN_Component { * @desc Set the TLLI * @param p_CellId * @param p_TLLI - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_TLLI_Set(GERAN_CellId_Type p_CellId, TLLI p_TLLI) runs on GERAN_PTC { @@ -1115,7 +1146,7 @@ module GERAN_Component { * @desc Set the old TLLI * @param p_CellId * @param p_TLLI - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_OldTLLI_Set(GERAN_CellId_Type p_CellId, TLLI p_TLLI) runs on GERAN_PTC { @@ -1128,7 +1159,7 @@ module GERAN_Component { * @desc Get the Control Channel Description * @param p_CellId * @return ControlChDescr - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_ControlChDesc_Get (GERAN_CellId_Type p_CellId) runs on GERAN_PTC return ControlChDescr { @@ -1140,7 +1171,7 @@ module GERAN_Component { * @desc Get the Split Paging Cycle * @param p_CellId * @return DRXparameter - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_SplitPGCycle_Get(GERAN_CellId_Type p_CellId) runs on GERAN_PTC return DRXparameter { @@ -1165,7 +1196,7 @@ module GERAN_Component { /* * @desc Store the XID * @param p_XID - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_MsgInDefault_SetXID(G_LLC_XID_IND p_XID) runs on GERAN_PTC { @@ -1175,7 +1206,7 @@ module GERAN_Component { /* * @desc check if an XID has been received * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_MsgInDefault_CheckXID() runs on GERAN_PTC return boolean { @@ -1184,7 +1215,7 @@ module GERAN_Component { /* * @desc Get the XID * @return G_LLC_XID_IND - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_MsgInDefault_GetXID() runs on GERAN_PTC return G_LLC_XID_IND { @@ -1196,7 +1227,7 @@ module GERAN_Component { * @desc generic function to deal with GERAN RLC configurations * @param p_G_RLC_CONFIG_REQ * @param p_WaitForCNF (default value: waitForCNF) - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_RLC_CONFIG_Common(template (value) G_RLC_CONFIG_REQ p_G_RLC_CONFIG_REQ, GERAN_WaitForCNF_Type p_WaitForCNF := waitForCNF) runs on GERAN_PTC diff --git a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_Templates.ttcn b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_Templates.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/GERAN/GERAN_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/GERAN/GERAN_Templates.ttcn index 34d2df0..92e4761 100644 --- a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 13:56:06 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12205 $ +// @version: IWD_15wk38 +// $Date: 2015-09-11 18:01:01 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14308 $ /******************************************************************************/ module GERAN_Templates { @@ -21,59 +21,59 @@ module GERAN_Templates { import from NAS_24008Templates_AccessCap all; const B4_Type tsc_SkipIndicator := '0000'B; /* Skip Indicator field consists of latter half byte after Protocol discriminator field. Its value is '0000'B in all the messages. - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const ProtocolDiscriminator tsc_PD_GMM := '1000'B; const ProtocolDiscriminator tsc_PD_MM := '0101'B; // Protocol discriminator for all the MM messages for non-GPRS is '0101'B - const ProtocolDiscriminator tsc_PD_RR := '0110'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const ProtocolDiscriminator tsc_PD_RR := '0110'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const ProtocolDiscriminator tsc_PD_SM := '1010'B; // SM protocol discriminator const MessageType tsc_MT_LocationUpdatingAccept := '00000010'B; const MessageType tsc_MT_LocationUpdating_Req := '00001000'B; - const MessageType tsc_MT_ImmediateAssignment := '00111111'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const MessageType tsc_MT_ImmediateAssignment := '00111111'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const MessageType tsc_MT_ImmediateAssignmentReject := '00111010'B; /* @status APPROVED (LTE_IRAT) */ - const MessageType tsc_MT_CipheringModeCommand := '00110101'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const MessageType tsc_MT_CipheringModeComplete := '00110010'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const MessageType tsc_MT_CipheringModeCommand := '00110101'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const MessageType tsc_MT_CipheringModeComplete := '00110010'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const octetstring tsc_G_TMSI_Def := '34567812'O; /* different from the TMSI used in the UTRAN cell */ - const B3_Type tsc_DefUSF := '000'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_CS1 := 1; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const B1_Type tsc_LLC_PM := '1'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const B1_Type tsc_LLC_NoCiph := '0'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_LLCSapi_GMM := 1; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_LLCSapi_11 := 11; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_SAPI_0 := 0; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_NormalPaging := 0; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const B5_Type tsc_DownlinkTFI := '00001'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const B5_Type tsc_UplinkTFI := '00000'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const PhysicalChId tsc_PhyCh0 := 0; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const PhysicalChId tsc_PhyCh1 := 1; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const PhysicalChId tsc_TchCh := 2; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const B1_Type tsc_RR_HopOff := '0'B; /* hopping off; @status APPROVED (LTE_A, LTE_IRAT) */ - const B8_Type tsc_SignallingOnly := '00000000'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const O4_Type tsc_TLLI_Initial := 'FFFFFFFF'O; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const TN tsc_TN0 := '000'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const TN tsc_TN1 := '011'B; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const B3_Type tsc_DefUSF := '000'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_CS1 := 1; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const B1_Type tsc_LLC_PM := '1'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const B1_Type tsc_LLC_NoCiph := '0'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_LLCSapi_GMM := 1; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_LLCSapi_11 := 11; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_SAPI_0 := 0; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_NormalPaging := 0; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const B5_Type tsc_DownlinkTFI := '00001'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const B5_Type tsc_UplinkTFI := '00000'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const PhysicalChId tsc_PhyCh0 := 0; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const PhysicalChId tsc_PhyCh1 := 1; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const PhysicalChId tsc_TchCh := 2; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const B1_Type tsc_RR_HopOff := '0'B; /* hopping off; @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const B8_Type tsc_SignallingOnly := '00000000'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const O4_Type tsc_TLLI_Initial := 'FFFFFFFF'O; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const TN tsc_TN0 := '000'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const TN tsc_TN1 := '011'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const TN tsc_TN_DTM := '011'B; /* To be used for DTM CS channel (must be GPRS CH - 1) */ - const integer tsc_Power_ueVOffset := 113; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_GERAN_ChPwrLvl_Off := -123; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const integer tsc_GERAN_ServingCell := -48; /* @status APPROVED (LTE_IRAT) */ - const integer tsc_GERAN_SuitableNeighbourCell := -54;/* @status APPROVED (LTE_IRAT) */ + const integer tsc_Power_ueVOffset := 113; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_GERAN_ChPwrLvl_Off := -123; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const integer tsc_GERAN_ServingCell := -48; /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ + const integer tsc_GERAN_SuitableNeighbourCell := -54;/* @status APPROVED (IMS_IRAT, LTE_IRAT) */ const integer tsc_GERAN_NonSuitableCell := -90; /* @status APPROVED (LTE_IRAT) */ - const G_LogicChType tsc_BCCH := 0; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const G_LogicChType tsc_RACH := 1; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const G_LogicChType tsc_PCH := 2; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const G_LogicChType tsc_AGCH := 3; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_BCCH := 0; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_RACH := 1; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_PCH := 2; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_AGCH := 3; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const G_LogicChType tsc_SDCCH_4 := 4; /* @status APPROVED (LTE_IRAT) */ - const G_LogicChType tsc_SACCH_C4 := 5; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_SACCH_C4 := 5; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const G_LogicChType tsc_SDCCH_8 := 6; /* @status APPROVED (LTE_IRAT) */ const G_LogicChType tsc_SACCH_C8 := 7; /* @status APPROVED (LTE_IRAT) */ const G_LogicChType tsc_TCH_F := 8; /* @status APPROVED (LTE_IRAT) */ const G_LogicChType tsc_FACCH_F := 9; /* @status APPROVED (LTE_A, LTE_IRAT) */ - const G_LogicChType tsc_SACCH_TF := 10; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_SACCH_TF := 10; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const G_LogicChType tsc_TCH_H :=11; const G_LogicChType tsc_FACCH_H := 12; const G_LogicChType tsc_SACCH_TH := 13; const G_LogicChType tsc_PDTCH_F := 18; - const G_LogicChType tsc_PACCH_F := 19; /* @status APPROVED (LTE_A, LTE_IRAT) */ + const G_LogicChType tsc_PACCH_F := 19; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ const B6_Type tsc_TA0 := '000000'B; // Timing Advance 0 /* @@ -82,7 +82,7 @@ module GERAN_Templates { * @param p_CCCH_Conf * @param p_N * @return integer - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_PagingGroupCalculate(hexstring p_IMSI, B3_Type p_CCCH_Conf, @@ -119,7 +119,7 @@ module GERAN_Templates { * @param p_N * @param p_SplitPGCycleBits * @return integer - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_PacketPagingGroupCalculate(hexstring p_IMSI, integer p_KC_Conf, @@ -208,7 +208,7 @@ module GERAN_Templates { template (value) CCCH_Info cs_CCCH_Info(bitstring p_BS_PA_MFRMS, bitstring p_BS_AG_BLKS_RES) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ bS_PA_MFRMS := p_BS_PA_MFRMS, bS_AG_BLKS_RES := p_BS_AG_BLKS_RES }; @@ -231,7 +231,7 @@ module GERAN_Templates { template (value) CellOptionBCCH cs_CellOptionBCCH(template (value) B1_Type p_DN_Ind, template (value) B2_Type p_DTX, template (value) B4_Type p_RadioLinkTimeout) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // information lelement identifier dN_Ind := p_DN_Ind, // dynamic ARFCN mapping indicator pwrc := '0'B, // power control indicator @@ -244,7 +244,7 @@ module GERAN_Templates { template (value) CellOptionSACCH cs_CellOptionSACCH(template (value) B1_Type p_DTX8, template (value) B2_Type p_DTX65, template (value) B4_Type p_RadioLinkTimeout) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // information lelement identifier dtx8 := p_DTX8, // discontinuous transmission indicator, most signifigent bit pwrc := '0'B, // power control indicator @@ -254,28 +254,13 @@ module GERAN_Templates { //----------------------------------------------------------------------------- - template (value) CellSelParam cs_CellSelParam(B3_Type p_CellReselHysteresis, - B5_Type p_MS_TXPWR_MAX_CCH, - B1_Type p_ACS, - B1_Type p_NECI, - B6_Type p_RXLEV_ACCESS_MIN) := - { - cellReselHysteresis := p_CellReselHysteresis, // cell reselected hysteresis - mS_TXPWR_MAX_CCH := p_MS_TXPWR_MAX_CCH, // MS maximum TX power for CCH - acs := p_ACS, // additional reselect parameter indicator - neci := p_NECI, // half rate support - rXLEV_ACCESS_MIN := p_RXLEV_ACCESS_MIN // MS minimum received signal level - }; - - //----------------------------------------------------------------------------- - template (value) ChannelDescr cs_G_ChannelDescr(B5_Type p_ChType, B3_Type p_TN, B10_Type p_ARFCN, B3_Type p_TSC) := { /* Channel description 3GPP TS 44.018 clause 10.5.2.5 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // '01100100'B cht_schn := p_ChType, // channel type and TDMA offset tn := p_TN, // timeslot number @@ -308,13 +293,13 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) ChMode cs_ChMode(template (omit) IEI8_Type p_IEI := '63'O, B8_Type p_Mode) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := p_IEI, // @sic R5s120498 sic@ mode := p_Mode }; template (value) ChMode cs_G_ChModeSpeechFROrHRV1 := cs_ChMode('63'O, '00000001'B); /* speech full rate or half rate version 1 - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ //----------------------------------------------------------------------------- @@ -329,7 +314,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) ChReqDescr cr_ChReqDescrAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pkThrouputClass := ?, radioPriority := ?, rlcMode := ?, // 0 - RLC acknowledged mode @@ -366,7 +351,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) ExtChReqDescr cr_ExtChReqDescrAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pFI := ?, radioPrior := ?, rlcMode := ?, @@ -378,7 +363,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) IuModeChReqDescr cr_IuModeChReqDescrAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rBId := ?, radioPrior := ?, mask1 := ?, @@ -390,7 +375,7 @@ module GERAN_Templates { template (value) ChannelSpecificInfo cs_ChSpecificPara(template (omit) DedCH_Info p_DedChInfo , template (omit) CCCH_Info p_CCCH_Info ) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ dedCH_Info := p_DedChInfo , // parameters for dedicated channel. valid for combinations: 1, 2, 3, 5, 7, 8, 9, 10 cCCH_Info := p_CCCH_Info // parameters for common control channels: PCH, SCH, ... valid for combinations: 4, 5, 6 }; @@ -400,14 +385,14 @@ module GERAN_Templates { template (value) CipherModeSetting cs_CipherModeSetting(B1_Type p_StartCiph) := { /* Cipher mode setting 3GPP TS 44.018 clause 10.5.2.9 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, algId := px_GSM_CipherAlg, // algorithm identifier startingCiph := p_StartCiph // starting ciphering, 1 = start }; template (value) CipherModeSetting cs_CipherModeSettingGSM := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := '9'H, // '1001'B algId := px_GSM_CipherAlg, // algorithm identifier startingCiph := px_GSM_CipheringOnOff // starting ciphering @@ -418,7 +403,7 @@ module GERAN_Templates { template (value) CipherResponse cs_CipherResponse := { /* Cipher response 3GPP TS 44.018 clause 10.5.2.10 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // '1010'B spareBits := '000'B, // spare bits cipherResponse := '0'B // cipher response bit @@ -449,29 +434,31 @@ module GERAN_Templates { template (value) DedCH_Info cs_DedCh(template (value) ChMode p_ChannelMode, template (value) CipherModeSetting p_CipherMode, B64_Type p_CiphyKey, + B128_Type p_CiphyKey128, B5_Type p_PowerLevel, B7_Type p_TimingAdvance) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ chMode := p_ChannelMode, // channel mode see 3GPP TS 44.018 section 10.5.2.6 cipherMode := p_CipherMode, // cipher mode setting see 3GPP TS 44.018 section 10.5.2.9 cipherKey := p_CiphyKey, - cipherKey128 := px_CipherKey128, // @sic R5-144746 sic@ + cipherKey128 := p_CiphyKey128, // @sic R5-144746, R5s150121 sic@ powerLevel := p_PowerLevel, // power level value used in L1 header timingAdvance := p_TimingAdvance // timing advance value used in L1 header }; template (value) DedCH_Info cs_SDCCH4_Ch(template (value) CipherModeSetting p_CipherMode, B64_Type p_CipherKey, + B128_Type p_CiphyKey128, B5_Type p_PowerLevel, B7_Type p_TimingAdvance) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ - cs_DedCh(cs_ChMode(omit, tsc_SignallingOnly), p_CipherMode, p_CipherKey, p_PowerLevel, p_TimingAdvance); // @sic R5s120498 sic@ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + cs_DedCh(cs_ChMode(omit, tsc_SignallingOnly), p_CipherMode, p_CipherKey, p_CiphyKey128, p_PowerLevel, p_TimingAdvance); // @sic R5s120498, R5s150121 sic@ //----------------------------------------------------------------------------- template (value) DedicatedModeOrTBF cs_G_DedicatedModeOrTBF := { /* Reference : 3GPP TS 44.018 clause 10.5.2.25b */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // information element identifier spareBit := '0'B, // always = 0 twoMsgAssig := '0'B, // two message assignment @@ -480,7 +467,7 @@ module GERAN_Templates { }; template (value) DedicatedModeOrTBF cs_G_TBFMode(B1_Type p_Downlink) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // information element identifier spareBit := '0'B, // always = 0 twoMsgAssig := '0'B, // two message assignment @@ -494,7 +481,7 @@ module GERAN_Templates { template (omit) B6_Type p_TimingAdvanceValue) := // @sic R5s120587 sic@ { /* 3GPP TS 44.060 clause 12.12 Values are taken from 51010 clause 40.2.3.4 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ taValueMask := p_TAValueMask, timingAdvanceValue := p_TimingAdvanceValue, // not present if taValueMask = 0 30 bit periods taIndexMask := '0'B, @@ -556,7 +543,7 @@ module GERAN_Templates { template (value) DynamicAllocation cs_DynamicAllocation := { /* It defines all the necessary parameters for dynamic allocation for the TBF. The uSF_TNx field is not applicable when tNx = FALSE. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ extendedAlloc := '0'B, // 0 - dynamic allocation; 1 - extended dynamic allocation uSFGranularity := '0'B, // 0 - one block; 1 - four blocks physicalChId := tsc_PhyCh1, @@ -581,7 +568,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) TimeSlotAllocation_UA cs_TimeSlotAllocation_UA_TN4(B3_Type p_USF) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ tN0mask := '0'B, uSF_TN0 := omit, // not present if tN0mask=0 tN1mask := '0'B, @@ -603,7 +590,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) DynamicAllocationPacket cs_DynamicAllocationPacket := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ extendedAllocMask := '0'B, // 0 - dynamic allocation; 1 - extended dynamic allocation mask := '0'B, p0 := omit, // not present if mask=0 @@ -623,7 +610,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) DYNAMIC_ARFCN_MAPPING cs_DynMap(B4_Type p_GSMBand) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ gSM_Band := p_GSMBand, aRFCN_FIRST := '0000000001'B, bAND_OFFSET := '0110110110'B, @@ -631,13 +618,13 @@ module GERAN_Templates { }; template (value) DYNAMIC_ARFCN_MAP_Descr cs_DynMapDescr (B4_Type p_GSMBand) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ mask := '1'B, instance := cs_DynMap(p_GSMBand) }; template (value) DYNAMIC_ARFCN_MAPPING_LIST cs_DynMapList1 (B4_Type p_GSMBand) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cs_DynMapDescr (p_GSMBand), { mask := '0'B, @@ -648,7 +635,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) EGPRSBEPQualityMeas cr_EGPRSBEPLinkQualAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ mask1 := ?, gMSKMeanBEP := *, // not present if mask1 = 0 gMSKCVBEP := *, // not present if mask1 = 0 @@ -660,7 +647,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) EGPRSTimeslotLinkQualityMeas cr_EGPRSTNLinkQualAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ mask1 := ?, tnmaskA0 := *, // not present if mask1 = 0 tnmaskB0 := *, // not present if mask1 or tnmaskA0 = 0 @@ -724,7 +711,7 @@ module GERAN_Templates { template (value) UTRAN_FDD_Descr cs_G_FDD_Descr1N_1F(B14_Type p_ARFCN, bitstring p_ScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ bandwidthMask := '0'B, bandwidthFDD := omit, // not present if bandwidthMask = 0 repeatedUTRAN_FDD_NeighbourCells1 := { @@ -736,7 +723,7 @@ module GERAN_Templates { template (value) UTRAN_FDD_Descr cs_G_FDD_Descr3N_2F(B14_Type p_ARFCN1, // The 1st freq contains 2 cells, but the scrmCode is hardcoded B14_Type p_ARFCN2, bitstring p_ScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ bandwidthMask := '0'B, bandwidthFDD := omit, // not present if bandwidthMask = 0 repeatedUTRAN_FDD_NeighbourCells1 := { @@ -757,20 +744,20 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) RepeatedUTRANFDDNeighCell cs_G_FDD_DescrListEmpty := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '0'B, iteration := omit }; template (value) RepeatedUTRANFDDNeighCell cs_G_FDD_RptDescr1(B14_Type p_ARFCN, bitstring p_ScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '1'B, iteration := cs_G_FDD_NeighCell1 (p_ARFCN, p_ScrmCode) }; template (value) RepeatedUTRANFDDNeighCell cs_G_FDD_RptDescr2(B14_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '1'B, iteration := cs_G_FDD_NeighCell2 (p_ARFCN) }; @@ -779,7 +766,7 @@ module GERAN_Templates { template (value) RepeatedUTRAN_FDD_NeighCells cs_G_FDD_NeighCell1(B14_Type p_ARFCN, bitstring p_ScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ arfcnIndexMask := '0'B, fDD_ARFCN := p_ARFCN, fDD_Indic0 := '0'B, @@ -790,7 +777,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) RepeatedUTRAN_FDD_NeighCells cs_G_FDD_NeighCell2(B14_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ arfcnIndexMask := '0'B, fDD_ARFCN := p_ARFCN, fDD_Indic0 := '0'B, @@ -802,7 +789,7 @@ module GERAN_Templates { template (value) UTRAN_TDD_Descr cs_G_TDD_Descr1N_1F(B14_Type p_ARFCN, bitstring p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ bandwidthMask := '0'B, bandwidthTDD := omit, // not present if bandwidthMask = 0 repeatedUTRAN_TDD_NeighbourCells1 := { @@ -814,7 +801,7 @@ module GERAN_Templates { template (value) UTRAN_TDD_Descr cs_G_TDD_Descr3N_2F(B14_Type p_ARFCN1, // The 1st freq contains 2 cells, but the scrmCode is hardcoded B14_Type p_ARFCN2, bitstring p_CellId2) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ bandwidthMask := '0'B, bandwidthTDD := omit, // not present if bandwidthMask = 0 repeatedUTRAN_TDD_NeighbourCells1 := { @@ -825,20 +812,20 @@ module GERAN_Templates { }; template (value) RepeatedUTRANTDDNeighCell cs_G_TDD_DescrListEmpty := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '0'B, iteration := omit }; template (value) RepeatedUTRANTDDNeighCell cs_G_TDD_RptDescr1(B14_Type p_ARFCN, bitstring p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '1'B, iteration := cs_G_TDD_NeighCell1 (p_ARFCN, p_CellId) }; template (value) RepeatedUTRANTDDNeighCell cs_G_TDD_RptDescr2(B14_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '1'B, iteration := cs_G_TDD_NeighCell2 (p_ARFCN) }; @@ -847,7 +834,7 @@ module GERAN_Templates { template (value) RepeatedUTRAN_TDD_NeighCells cs_G_TDD_NeighCell1(B14_Type p_ARFCN, bitstring p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ arfcnIndexMask := '0'B, tDD_ARFCN := p_ARFCN, tDD_Indic0 := '0'B, @@ -858,7 +845,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) RepeatedUTRAN_TDD_NeighCells cs_G_TDD_NeighCell2(B14_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ arfcnIndexMask := '0'B, tDD_ARFCN := p_ARFCN, tDD_Indic0 := '0'B, @@ -870,14 +857,15 @@ module GERAN_Templates { template (value) EUTRANMeasParams_SI2 cs_EUTRAN_MeasParams_SI2 (template (value) RptdEUTRANNeighCells p_RptdEUTRANNeighCells, B1_Type p_CCN_Active := '0'B, - template (value) EUTRANMeasParams p_EUTRANMeasParams := cs_EUTRAN_MeasParams) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) EUTRANMeasParams p_EUTRANMeasParams := cs_EUTRAN_MeasParams, + template (omit) GPRS_EUTRANMeasParams p_GPRS_EUTRANMeasParams := omit) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ // @sic R5s110176 sic@ // @sic R5s120016 Additional changes sic@ eutranCCNActive := p_CCN_Active, eutranMeasParams := p_EUTRANMeasParams, - gprsEutranMeasMask := '0'B, - gprsEutranMeasParams := omit, + gprsEutranMeasMask := f_ConvertBoolToBit(isvalue(p_GPRS_EUTRANMeasParams)), // @sic R5s141368 sic@ + gprsEutranMeasParams := p_GPRS_EUTRANMeasParams, // @sic R5s141368 sic@ neighCells := p_RptdEUTRANNeighCells, notAllowedCells := cs_EUTRANNotAllowedCellsNone, pcidToTA := cs_TAMappingNone @@ -886,7 +874,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) RptdEUTRANNotAllowedCellsList cs_RptdEUTRANNotAllowedCell_None := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '0'B, notAllowed := omit }; @@ -898,7 +886,7 @@ module GERAN_Templates { }; template (value) RptdEUTRANNotAllowedCells cs_EUTRANNotAllowedCellsNone := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cs_RptdEUTRANNotAllowedCell_None }; @@ -950,7 +938,7 @@ module GERAN_Templates { }; template (value) RptdTAMapping cs_TAMappingNone := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ // @sic R5s110176 sic@ { prefix := '0'B, @@ -969,13 +957,13 @@ module GERAN_Templates { }; template (value) RptdEUTRANNeighCellsList cs_RptdEUTRAN_NeighCellEmpty := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '0'B, cell := omit }; template (value) RptdEUTRANNeighCells cs_RptdEARFCNNeighCells (template (value) RptdEARFCN_BW p_RptdARFCNs) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ { prefix := '1'B, cell := cs_EARFCN_NeighCell (p_RptdARFCNs) @@ -988,7 +976,7 @@ module GERAN_Templates { template (value) B5_Type p_ThreshHigh := '00010'B, template (omit) B5_Type p_ThreshLow := '00010'B, template (omit) B5_Type p_EutranQrxLevelMin := '10001'B) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ /* @sic R5s110683 Additional Changes sic@ */ earfcnBW := p_RptdARFCNs, pMask := f_ConvertBoolToBit(isvalue(p_Priority)), @@ -1004,7 +992,7 @@ module GERAN_Templates { template (value) EARFCN_BW cs_EARFCN_BW(B16_Type p_ARFCN, template (omit) B3_Type p_BW) := // @sic GP-120009 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ /* @sic R5s110683 Additional Changes sic@ */ earfcn := p_ARFCN, mask := f_ConvertBoolToBit(isvalue(p_BW)), @@ -1015,14 +1003,14 @@ module GERAN_Templates { template (value) EARFCN_BWList cs_EARFCN_BWList (B16_Type p_ARFCN, template (omit) B3_Type p_BW) := // @sic GP-120009 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ /* @sic R5s110683 Additional Changes sic@ */ prefix := '1'B, item := cs_EARFCN_BW(p_ARFCN, p_BW) }; template (value) EARFCN_BWList cs_EARFCN_BWEmpty := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ prefix := '0'B, item := omit }; @@ -1031,7 +1019,7 @@ module GERAN_Templates { template (value) RptdEARFCN_BW cs_RptdEARFCNList1 (B16_Type p_ARFCN1, template (omit) B3_Type p_BW) := // @sic GP-120009 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cs_EARFCN_BWList (p_ARFCN1, p_BW), cs_EARFCN_BWEmpty }; @@ -1040,7 +1028,7 @@ module GERAN_Templates { template (omit) B3_Type p_BW1, // @sic GP-120009 sic@ B16_Type p_ARFCN2, template (omit) B3_Type p_BW2) := // @sic GP-120009 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cs_EARFCN_BWList (p_ARFCN1, p_BW1), cs_EARFCN_BWList (p_ARFCN2, p_BW2), cs_EARFCN_BWEmpty @@ -1078,7 +1066,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) EUTRANMeasParams cs_EUTRAN_MeasParams := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ /* @sic R5s110176 sic@ */ eutranStart := '1'B, // only instance eutranStop := '1'B, // only instance @@ -1107,7 +1095,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) FreqInfo cs_FreqInfo(B10_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ h := '0'B, // h='1'B: hopping channel; h='0'B: non-hopping channel spr := '000'B, // '000'B spr1 := '00'B, // '00'B, if h = '0'B, otherwise OMIT @@ -1122,7 +1110,7 @@ module GERAN_Templates { template (value) FreqParam cs_FreqParam(B3_Type p_TSC, B10_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ tSC := p_TSC, encodingMask := '00'B, aRFCN := p_ARFCN, // present if encodingMask = '00'B @@ -1132,12 +1120,12 @@ module GERAN_Templates { }; template (value) FreqParam cs_FreqParam_BCCH(B10_Type p_ARFCN) := cs_FreqParam('101'B, p_ARFCN); /* @status */ - template (value) FreqParam cs_FreqParam_PDTCH(B10_Type p_ARFCN) := cs_FreqParam(px_TSC, p_ARFCN); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) FreqParam cs_FreqParam_PDTCH(B10_Type p_ARFCN) := cs_FreqParam(px_TSC, p_ARFCN); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ //----------------------------------------------------------------------------- template (present) GlobalTFI cr_GlobalTFIAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ tFIMask := ?, uplinkTFI := *, // not present if TFImask=1 downlinkTFI := * // not present if TFImask=0 @@ -1146,7 +1134,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) GlobalTFI cs_GlobalTFIul := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ tFIMask := '0'B, uplinkTFI := tsc_UplinkTFI, // not present if TFImask=1 downlinkTFI := omit // not present if TFImask=0 @@ -1201,7 +1189,7 @@ module GERAN_Templates { template (value) GPRS_CellOptions cs_GPRS_CellOptionsSI13(template (value) B2_Type p_NMO, template (value) ExtensionInfo p_ExtensionInfo := cs_GPRS_CellOptionsExtension) := { /* values from TS 51.010-1 v.5.5.0 subclause 40.2.1.1.1 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ nMO := p_NMO, // network operation mode I t3168 := '011'B, // 2 second t3192 := '010'B, // 1.5 second @@ -1221,7 +1209,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) ExtensionInfo cs_GPRS_CellOptionsExtension(B1_Type p_DTM_Supported := '0'B) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ extensionMask := '0'B, // EGPRS not supported eGPRS_PACKET_CHANNEL_REQUEST := omit, // EGPRS not supported bEP_PERIOD := omit, // EGPRS not supported @@ -1262,7 +1250,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) GPRS_PowerControlParam cs_GPRS_PowerControlParam := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ aLPHA := '0101'B, // Corrected according to 51.010, cl. 40 t_AVG_W := '01100'B, t_AVG_T := '01100'B, @@ -1274,7 +1262,7 @@ module GERAN_Templates { template (value) PacketDownlinkAssign cs_PktDownlinkAss_IARO(template (value) O4_Type p_TLLI, template (value) B5_Type p_Gamma) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ tLLI := p_TLLI, // TLLI mask := '1'B, tFI_Assignment := tsc_DownlinkTFI, // temporary flow identifier @@ -1326,7 +1314,7 @@ module GERAN_Templates { template (value) IARO cs_IARO_PDA(O4_Type p_TLLI, B5_Type p_Gamma) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ constructMask := '11'B, compressInterRATHO := omit, // present if constructMask = LL reservMask1 := omit, // present if constructMask = LH @@ -1359,7 +1347,7 @@ module GERAN_Templates { template (value) IARO cs_IARO_PUA(B5_Type p_Gamma, template (omit) B16_Type p_StartTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ constructMask := '11'B, compressInterRATHO := omit, // present if constructMask = LL reservMask1 := omit, // present if constructMask = LH @@ -1383,7 +1371,7 @@ module GERAN_Templates { template (value) IARO cds_IARO_SingleBlkPUA(B5_Type p_Gamma, template (omit) B16_Type p_StartTime) modifies cs_IARO_PUA := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ packetUplinkAssign := cs_PktUplinkAssSingleBlk_IARO(p_Gamma, p_StartTime) }; @@ -1391,7 +1379,7 @@ module GERAN_Templates { template (value) PacketUplinkAssign cs_PktUplinkAss_IARO(B5_Type p_Gamma, template (omit) B16_Type p_StartTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ allocMask := '1'B, // 0 -> indicating single block allocation tFI_Assignment := tsc_UplinkTFI, // temporary flow identifier // not present if allocMask = 0 @@ -1430,7 +1418,7 @@ module GERAN_Templates { template (value) PacketUplinkAssign cs_PktUplinkAssSingleBlk_IARO(B5_Type p_Gamma, template (omit) B16_Type p_StartTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ allocMask := '0'B, // 0 -> indicating single block allocation tFI_Assignment := omit, // temporary flow identifier // not present if allocMask = 0 @@ -1497,7 +1485,7 @@ module GERAN_Templates { ba3G_used := ?, // 3G bcch allocation used meas_valid := ?, // measurement results valid rxlev_ssc := ?, // received signal strength on a subset of the serving cell - spare := ?, // @sic R5s100135 sic@ + si23ba_used := ?, // @sic R5s100135, R5s150329 baseline moving sic@ rxqual_fsc := ?, // received signal quality on the full serving cell rxqual_ssc := ?, // received signal quality on a subset of the serving cell no_neighCells := ?, // number of neighbouring cells (nc) @@ -1527,7 +1515,7 @@ module GERAN_Templates { template (value) MobileAlloc cs_G_MobileAlloc := { /* Mobile allocation 3GPP TS 44.018 clause 10.5.2.21 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // '01110010'B iel := '00'O, // '00'O for non hopping mac_8n := omit, // mac64 - mac57 @@ -1642,7 +1630,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) PacketChDescr cs_PacketChDescr(B10_Type p_ARFCN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ chType := '00001'B, // channel type tN := '100'B, // time slot tSC := px_TSC, // training sequence code @@ -1665,7 +1653,7 @@ module GERAN_Templates { template (value) PageModeIE cs_G_PageModeIE(integer p_PagingMode := tsc_NormalPaging) := { /* Page mode 3GPP TS 44.018 clause 10.5.2.26 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, sprb := '00'B, // spare bits pgm := int2bit(p_PagingMode, 2) // page mode @@ -1688,7 +1676,7 @@ module GERAN_Templates { template (value) PowerCommand cs_PowerCommand := { /* Power command 3GPP TS 44.018 clause 10.5.2.28 */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ iei := omit, // information element identifier spareBits := '00'B, // spare bits fpc := '0'B, // fast measurement reporting and power control @@ -1754,7 +1742,7 @@ module GERAN_Templates { template (value) GPRS_Resumption cs_G_ResumeGPRS := { /* 3GPP TS 44.018 clause 10.5.2.14c - @status APPROVED (LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_IRAT) */ iei := '1100'B, spareBits := '000'B, ack := '1'B // GPRS services successfully ack @@ -1764,14 +1752,14 @@ module GERAN_Templates { template (value) RFN cs_RFN_0 := { /* Assign some arbitrary values to the RFN. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ t1_ := '00000'B, // (FN div 1326) mod 32 t3 := '000000'B, // FN mod 26 t2 := '00000'B // FN mod 51 }; template (value) RFN cs_G_RFN_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ t1_ := '11111'B, // (FN div 1326) mod 32 t3 := '111111'B, // FN mod 51 t2 := '11111'B // Results in ignoring of RFN by the lower Layer. @@ -1780,13 +1768,13 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) RR_Cause cs_G_RR_CauNormalevent := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, cause := '00000000'B }; template (present) RR_Cause cr_G_RR_Cause := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, cause := ? }; @@ -1797,7 +1785,7 @@ module GERAN_Templates { template (value) RFN p_RR_RFN) := { /* Request reference 3GPP TS 44.018 clause 10.5.2.30 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // information element identifier radoAccessInfo := int2bit ( p_RR_RA , 8 ), fn := p_RR_RFN @@ -1846,7 +1834,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) SI1RO cs_SI1_RO(template (value) B1_Type p_BandInd) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ mask := '0'B, nCH_Position := omit, // not present if mask = L bandIndicator := p_BandInd // L= DCS1800; H=PCS1900 @@ -1886,7 +1874,7 @@ module GERAN_Templates { template (value) SI2quaterRO_MeasParamDescr3G cs_SI2quaterMeasParams3G_Meas(B4_Type p_Qsearch_I, B4_Type p_Qoffset, B3_Type p_Qmin) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ qsearch_I := p_Qsearch_I, qsearch_C_Initial := '0'B, fDDMask := '1'B, @@ -1899,7 +1887,7 @@ module GERAN_Templates { tDD_MULTIRAT_REPORTING := omit // not present if tDDMask = 0 }; - template (value) SI2quaterRO_MeasParamDescr3G cs_SI2quaterMeasParams3G_ISHO := cs_SI2quaterMeasParams3G_Meas('0111'B, '1000'B, '000'B); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) SI2quaterRO_MeasParamDescr3G cs_SI2quaterMeasParams3G_ISHO := cs_SI2quaterMeasParams3G_Meas('0111'B, '1000'B, '000'B); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ //----------------------------------------------------------------------------- @@ -1907,7 +1895,7 @@ module GERAN_Templates { template (omit) B7_Type p_AbsoluteIndexStartEMR := omit, template (omit) UTRAN_FDD_Descr p_UTRAN_FDD_Descr := omit, template (omit) UTRAN_TDD_Descr p_UTRAN_TDD_Descr := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ indexMask := f_ConvertBoolToBit(isvalue(p_IndexStart3G)), indexStart3G := p_IndexStart3G, // not present if indexMask = 0 absoluteIndexMask := f_ConvertBoolToBit(isvalue(p_AbsoluteIndexStartEMR)), @@ -1919,18 +1907,18 @@ module GERAN_Templates { }; template (value) NeighCellDescr3G cs_SI2quater_3G_1N_1FCell_FDD(B14_Type p_ARFCN1, - bitstring p_ScrmCode) := cs_NeighCellDescr3G_Common(-, -, cs_G_FDD_Descr1N_1F(p_ARFCN1, p_ScrmCode)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + bitstring p_ScrmCode) := cs_NeighCellDescr3G_Common(-, -, cs_G_FDD_Descr1N_1F(p_ARFCN1, p_ScrmCode)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) NeighCellDescr3G cs_SI2quater_3G_3N_2FCell_FDD(B14_Type p_ARFCN1, // The 1st freq contains 2 cells, but the scrmCode is hardcoded B14_Type p_ARFCN2, - bitstring p_ScrmCode2) := cs_NeighCellDescr3G_Common(-, -, cs_G_FDD_Descr3N_2F(p_ARFCN1, p_ARFCN2, p_ScrmCode2)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + bitstring p_ScrmCode2) := cs_NeighCellDescr3G_Common(-, -, cs_G_FDD_Descr3N_2F(p_ARFCN1, p_ARFCN2, p_ScrmCode2)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) NeighCellDescr3G cs_SI2quater_3G_1N_1FCell_TDD(B14_Type p_ARFCN, - bitstring p_CellId) := cs_NeighCellDescr3G_Common(-, -, -, cs_G_TDD_Descr1N_1F(p_ARFCN, p_CellId)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + bitstring p_CellId) := cs_NeighCellDescr3G_Common(-, -, -, cs_G_TDD_Descr1N_1F(p_ARFCN, p_CellId)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) NeighCellDescr3G cs_SI2quater_3G_3N_2FCell_TDD(B14_Type p_ARFCN1, // The 1st freq contains 2 cells, but the CellId is hardcoded B14_Type p_ARFCN2, - bitstring p_CellId) := cs_NeighCellDescr3G_Common(-, -, -, cs_G_TDD_Descr3N_2F(p_ARFCN1, p_ARFCN2, p_CellId)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + bitstring p_CellId) := cs_NeighCellDescr3G_Common(-, -, -, cs_G_TDD_Descr3N_2F(p_ARFCN1, p_ARFCN2, p_CellId)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ //----------------------------------------------------------------------------- @@ -1942,7 +1930,7 @@ module GERAN_Templates { template (omit) SI2quaterRO_GPRS_3G_MeasParamDescr p_GPRS3GMeasParamDescr, template (omit) EUTRANMeasParams_SI2 p_EUTRANMeasParams, B1_Type p_BAInd3G := '0'B) := // @sic R5s120021, R5s130207 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ // @sic GP-110108 sic@ bA_IND := '0'B, bA_IND_3G := p_BAInd3G, @@ -2008,11 +1996,16 @@ module GERAN_Templates { rel10Mask := omit, // not present if rel9Mask = L @sic R5s110178 Baseline Moving sic@ pwrMask := omit, // not present if rel9Mask = L or rel10Mask = L @sic R5s110178 Baseline Moving sic@ initPwrRed := omit, // not present if rel9Mask = L or rel10Mask = L or pwrMask = 0 @sic R5s110178 Baseline Moving sic@ - nc2CSG_PCCN_Permitted := omit // not present if rel9Mask = L or rel10Mask = L @sic R5s110178 Baseline Moving sic@ + nc2CSG_PCCN_Permitted := omit, // not present if rel9Mask = L or rel10Mask = L @sic R5s110178 Baseline Moving sic@ + r11Mask := omit, // not present if rel9Mask = L or rel10Mask = L @sic R5s150329 Baseline Moving sic@ + xtdEARFCNMask := omit, // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L @sic R5s150329 Baseline Moving sic@ + xtdEARFCN_Descr := omit, // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L or xtdEARFCNMask = 0 @sic R5s150329 Baseline Moving sic@ + xtdEARFCN_CSGMask := omit, // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L @sic R5s150329 Baseline Moving sic@ + xtdEARFCN_CSG_Descr := omit // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L or xtdEARFCN_CSGMask = 0 @sic R5s150329 Baseline Moving sic@ }; template (value) Rel7_700810Reporting cs_Rel7_ReportingDef700810 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ mask700 := '0'B, repOffset700 := omit, repThres700 := omit, @@ -2050,7 +2043,7 @@ module GERAN_Templates { template (value) B2_Type p_NMO) := { /* 51.010 clause 40.2.1 The info element has a fixed length of 20 octets. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ mask := '1'B, // the rest fields except spareBs are all not present if mask = L bCCH_CHANGE_MARK := '000'B, sI_CHANGE_FIELD := '0000'B, @@ -2098,7 +2091,7 @@ module GERAN_Templates { template (value) SI3RO cs_SI3_RO_Spare := { /* all bits are spare, 3GPP TS 51.010 clause 26.6.14. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cellSelectMask := '0'B, // Cell select parameter mask cbq := omit, // not present if cellSelectMask = 0, // Cell bar qualify @@ -2125,7 +2118,7 @@ module GERAN_Templates { template (value) SI3RO cds_SI3_RO_GPRS_SI2quater modifies cs_SI3_RO_Spare := { /* indicating SI13 is broadcasted. 3GPP TS 51.010 clause 40.2.1.1.1 GPRS supported */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ earlyClassMarkSendingControl := '1'B, // perform early classmark sending (H=allowed) mask4 := '1'B, // GPRS supported (H=support GPRS) rA_Colour := '001'B, // RA colour @@ -2139,7 +2132,7 @@ module GERAN_Templates { template (value) SI4RO cs_SI4_RO_Spare := { /* all bits are set to spare, 3GPP TS 51.010 clause 26.6.14 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cellSelectMask := '0'B, // no optional Cell selection parameter cbq := omit, // not present cellReselectOffset := omit, // not present @@ -2170,7 +2163,7 @@ module GERAN_Templates { template (value) SI4RO cds_SI4_RO_GPRS modifies cs_SI4_RO_Spare := { /* 3GPP TS 51.010 clause 40.2.1.1.1 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ raColourMask := '1'B, // GPRS indicator (H) rA_Colour := '001'B, sI13Position := '0'B // on BCCH Norm @@ -2180,7 +2173,7 @@ module GERAN_Templates { template (value) SI15RO cs_SI15_RO(B4_Type p_GSMBand) := { /* 51.010 clause 20.1 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ si15Index := '00'B, si15Count := '00'B, dm_CHANGE_MARK := '0000'B, @@ -2190,7 +2183,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) SI6RO cs_SI6_RO_Spare(template (value) B1_Type p_Band) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pchNchMask := '0'B, // PCH, NCH info mask pagingChRestructuring := omit, // not present if pchNchMask = 0 nLN_SACCH := omit, // not present if pchNchMask = 0 @@ -2250,29 +2243,7 @@ module GERAN_Templates { { entry := cr_SIMessageEntry('00011011'B, '01'B)}, // SI3 * }; - - template (present) SIMessageEntryListDescr cr_SIMessageList9Any := - { /* @status APPROVED (LTE_IRAT) */ - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent}, - { entry := cr_SIMessageEntry ifpresent} - }; - - //----------------------------------------------------------------------------- - - template (present) SIMessageList cr_SIMessageListAny := - { /* @status APPROVED (LTE_IRAT) */ - list := cr_SIMessageList9Any ifpresent, - endingRepetition := '0'B, // always 0 - additionalMsgType := ? - }; - + template (present) SIMessageList cr_SIMessageList_SI1and3 := { /* @status APPROVED (LTE_IRAT) */ list := cr_SIMessageList_1and3, @@ -2285,7 +2256,7 @@ module GERAN_Templates { template (value) TA cs_G_TA (B6_Type p_TA):= { /* Timing advance GSM 04.08, 10.5.2.40 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := omit, // '01111101'B sprb := '00'B, // '00'B ievalue := p_TA // @sic R5s120587 sic@ @@ -2302,7 +2273,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) TimeSlotAllocation cs_TimeSlotAllocation_TN4(PhysicalChId p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ physicalChId := p_PhyChId, // Single PDCH or multi-slot configured PDCHs tN0 := false, // TRUE - time slot 0 is allocated; FALSE -- not allocated tN1 := false, // TRUE - time slot 1 is allocated; FALSE -- not allocated @@ -2324,8 +2295,8 @@ module GERAN_Templates { template (present) UnknownSIEntryListDescr cr_UnknownSIList2Any := { /* @status APPROVED (LTE_IRAT) */ - { entry := cr_UnknownSIEntry ifpresent }, - { entry := cr_UnknownSIEntry ifpresent } + { entry := cr_UnknownSIEntry }, + * // @sic R5s150812 sic@ }; //----------------------------------------------------------------------------- @@ -2383,7 +2354,7 @@ module GERAN_Templates { template (present) UTRANPreConfigInfo cr_UtranPreConfigInfo := { /* 3GPP TS 44.018 clause 10.5.2.7a */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iel := ?, ievalue := ? }; @@ -2438,19 +2409,19 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) L2DataIndType cr_G_TMSI_ReallocCmpl := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ tmsiRealloc := cr_TMSI_ReallocCmpl_Common }; //----------------------------------------------------------------------------- template (present) L2DataIndType cr_G_AuthRspAnyExt := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ authResponse := cr_AuthResponse_Common(cr_AuthRspExtAny) }; template (present) L2DataIndType cr_G_AuthRspAnyNoExt := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ authResponse := cr_AuthResponse_Common }; @@ -2459,14 +2430,14 @@ module GERAN_Templates { template (value) L2DataReqType cs_G_AuthReq( template (value) KeySeq p_KeySeq, template (value) MM_RAND p_RAND, template (value) AUTN p_AUTN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ authReq := cs_AuthReq_Common(p_KeySeq, p_RAND, p_AUTN) }; //----------------------------------------------------------------------------- template (present) L2DataIndType cr_G_AuthFailAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ autnFail := cr_AuthFailAny_Common }; @@ -2476,7 +2447,7 @@ module GERAN_Templates { template (omit) CellSelInd p_CellSelInd := omit) := { /* A CHANNEL RELEASE message with RR cause = normal event */ /* @sic R5s120502 additional change sic@ */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ chRelease := { skipIndicator := '0000'B, rRProtocolDiscriminator := '0110'B, @@ -2540,14 +2511,14 @@ module GERAN_Templates { }; template (value) PagingReqType cs_G_PagingRequest_ImmAss (template (value) IMMEDIATEASSIGNMENT p_PDU) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ immedAss := p_PDU }; //----------------------------------------------------------------------------- template (present) GRLCCntrlMsgIndType cr_PacketResourceRequestAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pktResReq := { msgType := '000101'B, // message type M mask1 := ?, @@ -2606,15 +2577,17 @@ module GERAN_Templates { eGPRSTNLinkQual2 := cr_EGPRSTNLinkQualAny ifpresent, // not present if r99mask or if mask6 or rel7mask or mask13 = 0 rel10mask := *, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask = 0 @sic R5s120178 sic@ lowAccessPrioritySig := *, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask or rel10Mask = 0 @sic R5s120178 sic@ + rel12mask := *, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask or rel10Mask = 0 @sic R5s150329 Baseline Moving sic@ + eTFI := *, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask or rel10Mask or rel12Mask = 0 @sic R5s150329 Baseline Moving sic@ sparePadding := * // Uplink message } }; - template MS_RadioAccessCapList cr_MSRadioAccessCapList_2Any := cr_MSRadioAccessCapList(cr_MSRadioAccessCap_2Any); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template MS_RadioAccessCapList cr_MSRadioAccessCapList_2Any := cr_MSRadioAccessCapList(cr_MSRadioAccessCap_2Any); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template MS_RadioAccessCap cr_MSRadioAccessCap_2Any := { // defined in 44.060, cl. 12.30 - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ accessTechType := ?, singleAccess := cr_SingleAccessCap_r99 ifpresent, // only present if accessTechType != 1111 addLength := *, // only present if accessTechType = 1111 @@ -2622,83 +2595,6 @@ module GERAN_Templates { sparebits := * }; - template SingleAccessCap cr_SingleAccessCap_r99 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ - accLength := ?, - rfPwrCap := ?, - mask1 := ?, - a5_1 := *, // not present if mask1 = 0 - a5_2 := *, // not present if mask1 = 0 - a5_3 := *, // not present if mask1 = 0 - a5_4 := *, // not present if mask1 = 0 - a5_5 := *, // not present if mask1 = 0 - a5_6 := *, // not present if mask1 = 0 - a5_7 := *, // not present if mask1 = 0 - esInd := ?, - pS := ?, - vGCS := ?, - vBS := ?, - mask2 := ?, - multiSlotCap := cr_MultiSlotCapAny ifpresent, // not present if mask2 = 0 - mask3 := ?, - psk8PwrCap := *, // not present if mask3 = 0 - compactIFMeas := ?, - revLev := ?, - fddRATCap := ?, - tdd384RATCap := ?, - cdma2000RATCap := ?, - tdd128RATCap := *, - gERANFeatPkge1 := *, - mask4 := *, - extDTMGPRSMultiSlotClass := *, // not present if mask4 = 0 - extDTMEGPRSMultiSlotClass := *, // not present if mask4 = 0 - modulationBasedMultiSlot := *, - mask5 := *, - highMultislotCap := *, // not present if mask5 = 0 - mask6 := *, - gERANIuModeCapLength := *, // not present if mask6 = 0 - fLOIuCap := *, // not present if mask6 = 0 - gmskMultislotPwrProfile := *, - psk8MultislotPwrProfile := *, - multiTBFCap := *, - dlAdvRxPerformance := *, - extRLCMACCtrlCap := *, - dTMEnhCap := *, - mask7 := *, - dTMGPRSHighClass := *, // not present if mask7 = 0 - mask8 := *, // not present if mask7 = 0 - dTMEGPRSHighClass := *, // not present if mask7 or mask8 = 0 - pSHOCap := *, - dTMHOCap := *, - mask9 := *, - multislotCapDlDualCarrier := *, // not present if mask9 = 0 - dlDualCarrierDTMCap := *, // not present if mask9 = 0 - flexTimeslotAssign := *, - gANPSHOCap := *, - rLCNonPersistentMode := *, - reducedLatencyCap := *, - ulEGPRS2 := *, - dlEGPRS2 := *, - eutraFDD := *, - eutraTDD := *, - geran2EutraSupport := *, // @sic R5s100135 sic@ - priorityBasedReselection := *, - mask10 := *, // @sic R5s110176 Baseline Moving, R5s110242 sic@ - altEFTAMultislotClass := *, // not present if mask10 = 0 @sic R5s110176 Baseline Moving sic@ - eftaMultislotCapRedforDDC := *, // not present if mask10 = 0 @sic R5s110176 Baseline Moving sic@ - upperLayerPDUStartCapforRLCUMInd := *, // @sic R5s110176 Baseline Moving sic@ - emstCap := *, // @sic R5s110176 Baseline Moving sic@ - mttiCap := *, // @sic R5s110176 Baseline Moving sic@ - utraCSGCellsReporting := *, // @sic R5s110176 Baseline Moving sic@ - eutraCSGCellsReporting := *, // @sic R5s110176 Baseline Moving sic@ - dtrCap := *, // @sic R5s120178 Baseline Moving sic@ - emsrCap := *, // @sic R5s120178 Baseline Moving sic@ - fastDLFreqSwitchingCap := *, // @sic R5s120178 Baseline Moving sic@ - tighterCap := *, // @sic R5s120178 Baseline Moving sic@, - fanrCap := *, // @sic R5s130195 Baseline Moving sic@ - ipaCap := * // @sic R5s130195 Baseline Moving sic@ - }; - //----------------------------------------------------------------------------- template (value) GRLCCntrlMsgReqType cs_PacketUplinkAssignment(B10_Type p_ARFCN, @@ -2706,7 +2602,7 @@ module GERAN_Templates { { /* This message is sent on the PCCCH or PACCH by the network to the mobile station to assign uplink resources for One phase TBF. TS 3GPP 44.060 clause 11.2.29 Values are taken from 51010 clause 40.2.3.4 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pktULAssignmt := { msgType := '001010'B, // Message type pAGE_MODE := int2bit(tsc_NormalPaging,2), // Normal paging @@ -2745,17 +2641,20 @@ module GERAN_Templates { pFI := omit, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 and pfiMask = 0 rlcModeMask := omit, // not present if r99Mask=0, r5Mask=0 and r6Mask = 0 rlcMode := omit, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 and rlcModeMask = 0 + r12Mask := omit, // not present if r99Mask=0, r5Mask=0 or r6Mask = 0 @sic R5s150329 Baseline Moving sic@ + primaryTSC_Set := omit, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ mask := omit, eGPRSmessage := omit, // not present of EGPRPSmask=0 - dualCarrier := omit + dualCarrier := omit, + multiCarrier := omit // only present if EGPRSmask = 1 and mask = 10 @sic R5s150329 Baseline Moving sic@ } }; template (value) GRLCCntrlMsgReqType cds_PacketUplinkAssignment_TwoPhase(B10_Type p_ARFCN, B6_Type p_TA, template (value) O4_Type p_TLLI) - modifies cs_PacketUplinkAssignment:= - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + modifies cs_PacketUplinkAssignment := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pktULAssignmt := { globalTFIMask := '1'B, globalTFI := omit, @@ -2836,25 +2735,23 @@ module GERAN_Templates { emsrAddPFC1 := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ emsrAddPFC2 := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ emsrAddPFC3 := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ + r12Mask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + primaryTSC_Set := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + dlTSCMask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + secondaryTSC_Set := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + secondaryTSC_Value := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ dualCarrier := omit // only present if messageEscape = 1 }; - template (value) NC_MeasParams cs_NC_MeasParamsDef := - { - nETWORK_CONTROL_ORDER := '01'B, // NC1 - mask := '1'B, - nC_NON_DRX_PERIOD := '000'B, - nC_REPORTING_PERIOD_I := '111'B, - nC_Reporting_PERIOD_T := '011'B - }; - - template (value) NC_MeasParams cs_NC_MeasParamsNC2 := + template (value) NC_MeasParams cs_NC_MeasParams (B2_Type p_NCMode, + B3_Type p_ReportPeriodI := '111'B, + B3_Type p_ReportPeriodT := '010'B) := { /* @status APPROVED (LTE_IRAT) */ - nETWORK_CONTROL_ORDER := '10'B, // NC2 + nETWORK_CONTROL_ORDER := p_NCMode, mask := '1'B, nC_NON_DRX_PERIOD := '000'B, - nC_REPORTING_PERIOD_I := '111'B, - nC_Reporting_PERIOD_T := '010'B + nC_REPORTING_PERIOD_I := p_ReportPeriodI, + nC_Reporting_PERIOD_T := p_ReportPeriodT }; template (value) NC_FreqList cs_NC_FreqListNone := @@ -2872,30 +2769,12 @@ module GERAN_Templates { addFreq := omit // not present if prefix = 0 } }; - - template (present) LLCUnitDataIndType cr_G_AttachReq_EUTRANCap(template (present) AttachType p_AttachType, - template (present) MobileIdentity p_MobId, - template (present) RoutingAreaId p_RAI, - template (present) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_IRAT) */ - attReq := cr_AttachReq_Common(p_AttachType, - p_MobId, - p_RAI, - p_KeySeq, - cr_MS_RadioAccessCapLVAny, - -,// ptmsi sig - -,// gprs timer - -,// tmsi status - -,// lcs cap - -,// clsmk 2 - cdr_MSCLSMK3_EutraCheck ('20'O)) // @sic R5s140493 sic@ - }; - + template (value) GRLCCntrlMsgReqType cs_PacketMeasOrder(template (value) GlobalTFI p_TFI, template (value) NC_MeasParams p_NCMeas, B1_Type p_NCFreqMask, template (omit) NC_FreqList p_NCFreq) := - { + { /* @status APPROVED (LTE_IRAT) */ pktMeasOrder := { msgType := '000011'B, pAGE_MODE := int2bit(tsc_NormalPaging, 2), @@ -2958,7 +2837,12 @@ module GERAN_Templates { enhancedMask := omit, enh_CellReselect := omit, csgCellRptMask := omit, - csgCellRpt := omit + csgCellRpt := omit, + r11Mask := omit, // @sic R5s150329 Baseline Moving sic@ + ippMask := omit, // @sic R5s150329 Baseline Moving sic@ + eutranIPP := omit, // @sic R5s150329 Baseline Moving sic@ + encMask := omit, // @sic R5s150329 Baseline Moving sic@ + eutranNC := omit // @sic R5s150329 Baseline Moving sic@ } }; @@ -2987,7 +2871,12 @@ module GERAN_Templates { eutranMask := '1'B, // not present if cellTypeMask r5Mask or r8Mask = 0 eutranTargetCell := p_EUTRANTargetCell, // not present if cellTypeMask r5Mask or r8Mask or eutranMask = 0 individualMask := '0'B, // not present if cellTypeMask r5Mask or r8Mask = 0 - individualPrior := omit // not present if cellTypeMask r5Mask or r8Mask or individualMask = 0 + individualPrior := omit, // not present if cellTypeMask r5Mask or r8Mask or individualMask = 0 + r11Mask := omit, // not present if cellTypeMask or r5Mask or r8Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + xtdEutranMask := omit, // not present if cellTypeMask r5Mask or r8Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + xtdEutranTargetCell := omit, // not present if cellTypeMask r5Mask or r8Mask or r11Mask or xtdEutranMask = 0 @sic R5s150329 Baseline Moving sic@ + eutranIPPMask := omit, // not present if cellTypeMask r5Mask or r8Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + xtdEutranIPP := omit // not present if cellTypeMask r5Mask or r8Mask or r11Mask or eutranIPPMask = 0 @sic R5s150329 Baseline Moving sic@ } }; @@ -3056,6 +2945,13 @@ module GERAN_Templates { ccn3GMeasReport := *, r10Mask := *, // not present if r6Mask = 0 @sic R5s120178 Baseline Moving sic@ csgDiscriminator := *, // not present if r6Mask = 0 or r10Mask = 0 @sic R5s120178 Baseline Moving sic@ + r11Mask := *, // not present if r6Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + xtdEARFCNMask := *, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + xtdEutranTarget := *, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 or xtdEARFCNMask = 0 @sic @sic R5s150329 Baseline Moving sic@ + reportingQuantity := *, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 or xtdEARFCNMask = 0 not included in the ExtdEUTRAN_Target IE @sic @sic R5s150329 Baseline Moving sic@ + r12Mask := *, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + eTFIMask := *, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + dl_eTFI := *, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or eTFIMask = 0 @sic R5s150329 Baseline Moving sic@ paddingBits := * // uplink, so have to receive this in TTCN } }; @@ -3118,6 +3014,8 @@ module GERAN_Templates { utranCSGReport := *, // not present if r99Mask or r5Mask or r8Mask or r9Mask or utranMask = 0 eutranMask := *, // not present if r99Mask or r5Mask or r8Mask or r9Mask = 0 eutranCSGReport := *, // not present if r99Mask or r5Mask or r8Mask or r9Mask or eutranMask = 0 + r11Mask := *, // not present if r99Mask or r5Mask or r8Mask or r9Mask = 0 @sic R5s150329 Baseline Moving sic@ + si23BA_Used := *, // not present if r99Mask or r5Mask or r8Mask or r9Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ paddingBits := * } }; @@ -3160,7 +3058,7 @@ module GERAN_Templates { template (value) SYSTEMINFORMATIONTYPE1 cs_SysInfoType1(template (value) CellChDescr p_CellAlloc, template (value) RACHControlParam p_RACHControlParam, template (value) B1_Type p_BandInd) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '55'O, // L2 pseudo length = 21 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3171,7 +3069,7 @@ module GERAN_Templates { }; template (value) SYSTEMINFORMATIONTYPE13 cs_SysInfoType13(template (value) SI13RO p_SI13RO) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '01'O, // L2 pseudo length = 0 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3180,7 +3078,7 @@ module GERAN_Templates { }; template (value) SYSTEMINFORMATIONTYPE15 cs_SysInfoType15(template (value) SI15RO p_SI15RO) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '01'O, // L2 pseudo length = 0 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3191,7 +3089,7 @@ module GERAN_Templates { template (value) SYSTEMINFORMATIONTYPE2 cs_SysInfoType2(template (value) NeighCellDescr p_NeighBCCHs, template (value) O1_Type p_NCC_Permitted, template (value) RACHControlParam p_RACHControlParam) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '59'O, // L2 pseudo length = 22 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3203,7 +3101,7 @@ module GERAN_Templates { template (value) SYSTEMINFORMATIONTYPE2bis cs_SysInfoType2bis(template (value) NeighCellDescr p_ExtBCCHs, template (value) RACHControlParam p_RACHControlParam) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '55'O, // L2 pseudo length = 21 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3213,7 +3111,7 @@ module GERAN_Templates { }; template (value) SYSTEMINFORMATIONTYPE2quater cs_SysInfoType2quater(template (value) SI2quaterRO p_SI2quaterRO) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '05'O, // L2 pseudo length = 1 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3239,7 +3137,7 @@ module GERAN_Templates { template (value) CellSelParam p_CellSelParam, template (value) RACHControlParam p_RACHControlParam, template (value) SI3RO p_SI3RO) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '49'O, // L2 pseudo length = 18 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3260,7 +3158,7 @@ module GERAN_Templates { template (value) RACHControlParam p_RACHControlParam, template (value) SI4RO p_SI4RO) := { /* no cell broadcast channel description IE, no cell broadcast channel mobile allocation IE. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '31'O, // L2 pseudo length = 12 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3275,7 +3173,7 @@ module GERAN_Templates { }; template (value) SYSTEMINFORMATIONTYPE5 cs_SysInfoType5(template (value) NeighCellDescr p_NeighCellFreqList) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '49'O, // L2 pseudo length =18 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3284,7 +3182,7 @@ module GERAN_Templates { }; template (value) SYSTEMINFORMATIONTYPE5bis cs_SysInfoType5bis(template (value) NeighCellDescr p_ExtBCCHs) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '49'O, // L2 pseudo length = 18 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3297,7 +3195,7 @@ module GERAN_Templates { template (value) CellOptionSACCH p_CellOptionSACCH, template (value) NCCPermitted p_NCCPermitted, template (value) SI6RO p_SI6RO) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := '2D'O, // L2 pseudo length = 11 skipIndicator := '0000'B, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3312,17 +3210,17 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) AccessIndType cr_G_ChannelReq(template (present) B8_Type p_EstCauRandomRef) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ chReq := { estCauRandomRef := p_EstCauRandomRef } }; - template (present) AccessIndType cr_G_ChannelReq_Any := cr_G_ChannelReq(?); /* To match any received CHANNEL REQUEST message; @status APPROVED (LTE_A, LTE_IRAT) */ + template (present) AccessIndType cr_G_ChannelReq_Any := cr_G_ChannelReq(?); /* To match any received CHANNEL REQUEST message; @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (present) AccessIndType cr_G_ChannelReq_LocUpdate := cr_G_ChannelReq('000?????'B); /* A CHANNEL REQUEST message containing establishment cause location update; @status APPROVED (LTE_IRAT) */ - template (present) AccessIndType cr_ChanReqOnePhase := cr_G_ChannelReq(('011110??'B, '01111?0?'B, '01111??0'B)); /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) AccessIndType cr_ChanReqTwoPhase := cr_G_ChannelReq('01110???'B); /* @status APPROVED (LTE_A, LTE_IRAT); @sic R5s120521 sic@ */ - template (present) AccessIndType cr_ChanReqOtherProc := cr_G_ChannelReq(('111?????'B, '0001????'B)); + template (present) AccessIndType cr_ChanReqOnePhase := cr_G_ChannelReq(('011110??'B, '01111?0?'B, '01111??0'B)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) AccessIndType cr_ChanReqTwoPhase := cr_G_ChannelReq('01110???'B); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT); @sic R5s120521 sic@ */ + template (present) AccessIndType cr_ChanReqOtherProc := cr_G_ChannelReq(('111?????'B, '0001????'B)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ //----------------------------------------------------------------------------- @@ -3343,7 +3241,7 @@ module GERAN_Templates { template (present) O1_Type p_Cause := ?) := { /* RR GPRS Suspension Request ue/ms -> ntw 3GPP TS 44.018 clause 9.1.13b */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ gprsSuspendReq := { skipIndicator := tsc_SkipIndicator, // skip indicator rRProtocolDiscriminator := tsc_PD_RR, // RR protocol discriminator @@ -3360,7 +3258,7 @@ module GERAN_Templates { template (present) L2DataIndType cr_G_AssignmentComplete := { /* RR ASSSIGNMENT COMPLETE ue/ms -> ntw 3GPP TS 44.018 clause 9.1.3 */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ assignmentComplete := { skipIndicator := ?, // skip indicator rRProtocolDiscriminator := '0110'B, // RR protocol discriminator @@ -3374,7 +3272,7 @@ module GERAN_Templates { template (present) L2DataIndType cr_G_AssignmentFailure := { /* RR ASSSIGNMENT FAILURE ue/ms -> ntw 3GPP TS 44.018 clause 9.1.4 */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ assignmentFail := { skipIndicator := ?, // skip indicator M rRProtocolDiscriminator := '0110'B, // RR protocol discriminator M @@ -3388,7 +3286,7 @@ module GERAN_Templates { template (present) L2DataIndType cr_G_CipheringModeComplete := { /* RR CIPHERING MODE COMPLETE ue/ms -> ntw/ue 3GPP TS 44.018 clause 9.1.10 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cipherComplete := { skipIndicator := ?, // skip indicator M rRProtocolDiscriminator := tsc_PD_RR, // RR protocol discriminator M @@ -3402,7 +3300,7 @@ module GERAN_Templates { template (present) L2DataIndType cr_G_ClassmarkChangeAny := { /* RR CLASSMARK CHANGE ue/ms -> ntw 3GPP TS 44.018 clause 9.1.11 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ classmarkChange := { skipIndicator := '0000'B, // skip indicator M rRProtocolDiscriminator := '0110'B, // RR protocol discriminator M @@ -3434,54 +3332,54 @@ module GERAN_Templates { }; template (present) EstablishIndType cr_G_CMServiceRequest(template (present) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cmServiceReq := cr_CM_ServReq (p_KeySeq) }; template (value) L2DataReqType cs_G_CMServiceReject(template (value) RejCau p_RejCau) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cmServiceReject := cs_CM_ServRej (p_RejCau) }; template (value) L2DataReqType cs_G_CallProc(template (value) TI p_TI) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ callProceeding := cs_CallProc_Common(p_TI) }; template (value) L2DataReqType cs_G_Alert(template (value) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ alerting := cs_Alert_Common(p_TI) }; template (value) L2DataReqType cs_G_Connect(template (value) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ connectdl := cs_Connect_Common(p_TI) }; template (present) L2DataIndType cr_G_ConnAck(template (present) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ connectAcknowledge := cr_ConnAck_Common(p_TI) }; template (value) L2DataReqType cs_G_Disconnect (template (value) TI p_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ disconnectdl := cs_Disconnect_Common(p_Ti) }; template (present) L2DataIndType cr_G_Release(template (present) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ release := cr_Rel_Common(p_TI) }; template (value) L2DataReqType cs_G_RelCmpl (template (value) TI p_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ releaseComplete := cs_RelCmpl_Common(p_Ti) }; //----------------------------------------------------------------------------- template (present) EstablishIndType cr_G_LocationUpdatingRequest := { /* TS 24.008 V3.4.0 cl. 9.2.15 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ locUpdReq := cr_LocUpdReq_Common (?, -, -, -, -, omit) // @sic R5s110801 sic@ }; @@ -3499,7 +3397,7 @@ module GERAN_Templates { template (present) LocUpdType p_Type := ?, // @sic R5-112114 sic@ template (present) LocAreaId p_LocAreaId := cr_LAI_Any_v, template (present) MS_Clsmk1 p_MSClsmk1 := cr_MS_Clsmk1_Any, - template (present) MobileIdentity p_MobileId := cr_MobileIdAny(omit), + template (present) MobileIdentity p_MobileId := cr_MobileIdAny, template MS_Clsmk2 p_MSClsmk2 := omit) := // @sic R5s110801 sic@ { /* TS 24.008 V3.4.0 cl. 9.2.15 */ /* @status APPROVED (LTE_IRAT) */ @@ -3508,7 +3406,7 @@ module GERAN_Templates { template (present) EstablishIndType cr_G_PagRsp(template (present) KeySeq p_KeySeq, template (present) MobileIdentity p_MobileId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pagingRsp := cr_PagRsp_Common ( p_KeySeq, p_MobileId ) }; @@ -3527,8 +3425,8 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) L2DataIndType cr_G_EmgSetup (template (present) Bcap p_Bcap := cr_BcapSpeechMO):= - { /* @status APPROVED (LTE_IRAT) */ - esetup := cr_ESetup (p_Bcap) + { /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ + esetup := cr_ESetup(p_Bcap) }; //----------------------------------------------------------------------------- @@ -3536,7 +3434,7 @@ module GERAN_Templates { template (present) L2DataIndType cr_G_UtranClassmarkChange := { /* RR UTRAN CLASSMARK CHANGE ue/ms -> ntw 3GPP TS 44.018 clause 9.1.11a */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ utranClassmarkChange := { skipIndicator := '0000'B, // skip indicator M rRProtocolDiscriminator := '0110'B, // RR protocol discriminator M @@ -3546,7 +3444,7 @@ module GERAN_Templates { }; template (present) GRLCCntrlMsgIndType cr_PacketControlAcknowledgement := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pktCtrlAck := { msgType := '000001'B, // Message type tLLI := ?, @@ -3578,12 +3476,18 @@ module GERAN_Templates { } }; - template (present) GRLCCntrlMsgIndType cdr_PacketSIStatusAny modifies cr_PacketSIStatus1and3 := - { /* @status APPROVED (LTE_IRAT) */ - pktSIStatus := { - rcvdSIList := cr_SIMessageListAny - } - }; + //----------------------------------------------------------------------------- + template (value) L2DataReqType cs_IntersystemToEutranHandoverCmd (octetstring p_HOCnd, + template (value) CNtoMSTransparentInfo p_ATGWInfo) := + { + handoverToEutranCommand := { + skipIndicator := '0000'B, // skip indicator M + rRProtocolDiscriminator := '0110'B, // RR protocol discriminator M @sic R5s150329 Baseline Moving sic@ + msgType := '01100110'B, // message type M + hoCmd := p_HOCnd, //M OCTETSTRING LV [2-n] + cnToMSInfo := p_ATGWInfo + } +}; //----------------------------------------------------------------------------- @@ -3596,7 +3500,7 @@ module GERAN_Templates { template (omit) CipherModeSetting p_Cphms) := { /* RR ASSSIGNMENT COMMAND ntw -> ue/ms 3GPP TS 44.018 clause 9.1.2 */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ assignmentCmd := { skipIndicator := '0000'B, // skip indicator M rRProtocolDiscriminator := '0110'B, // RR protocol discriminator M @@ -3626,7 +3530,9 @@ module GERAN_Templates { cphms := p_Cphms, // cipher mode setting O OCTETSTRING [1] vGCS_TargetMode := omit, // VGCS target mode Indication O OCTETSTRING [3] mltiRateConfig := omit, // multiRate configuration O OCTETSTRING [4..8] - vGCS_CipherParams := omit + vGCS_CipherParams := omit, // VGCS ciphering parameters O TLV [3-15] + xtdedTSC_BeforeTime := omit, // extended TSC Set before time O TV [2] @sic R5s150329 Baseline Moving sic@ + xtdedTSC_AfterTime := omit // extended TSC Set after time O TV [2] @sic R5s150329 Baseline Moving sic@ } }; @@ -3635,7 +3541,7 @@ module GERAN_Templates { template (value) L2DataReqType cs_G_CipheringModeCommand(B1_Type p_StartCiph) := { /* RR CIPHERING MODE COMMAND ntw -> ue/ms 3GPP TS 44.018 clause 9.1.9 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cipherModeCmd := { skipIndicator := tsc_SkipIndicator, // skip indicator rRProtocolDiscriminator := tsc_PD_RR, // RR protocol discriminator @@ -3653,7 +3559,7 @@ module GERAN_Templates { { /* MM LOCATION UPDATING ACCEPT n -> ms 3G TS 24.008 V3.4.0 cl. 9.2.13 (1) In messages sent from the network bits 7 and 8 are "0" (see 3G TS 24.008 cl. 10.4). */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ locUpdAccept := cs_LocUpdAcp_Common (p_PLMN, p_LAC, p_MS_Id, omit) }; @@ -3669,8 +3575,8 @@ module GERAN_Templates { //----------------------------------------------------------------------------- - template (present) EstablishIndType cr_G_Imsi_DetachInd(template (present) MobileIdentity p_MobileIdentity := cr_MobileIdAny (omit)) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (present) EstablishIndType cr_G_Imsi_DetachInd(template (present) MobileIdentity p_MobileIdentity := cr_MobileIdAny) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ // @sic R5s140414 sic@ imsiDetachInd := cr_IMSI_DetachInd_Common (-, p_MobileIdentity) // @sic R5s120632 sic@ }; @@ -3695,7 +3601,7 @@ module GERAN_Templates { B6_Type p_TA, template (value) MobileAlloc p_MobileAlloc := cs_G_MobileAlloc, template (omit) IARO p_RO := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l2PseudoLength := p_L2PseudoLength, // L2 pseudo length skipIndicator := tsc_SkipIndicator, // skip indicator rRProtocolDiscriminator := tsc_PD_RR, // RR protocol discriminator @@ -3708,7 +3614,8 @@ module GERAN_Templates { ta := cs_G_TA (p_TA), // timing advance M OCTETSTRING [1] @sic R5s120587 sic@ mobileAlloc := p_MobileAlloc, startingTime := omit, // starting time O OCTETSTRING [3] - iaroct := p_RO // IA rest octets / frequency parameter, before time M + iaroct := p_RO, // IA rest octets / frequency parameter, before time M + xtdedTSC := omit // extended TSC Set before time O TV [2] @sic R5s150329 Baseline Moving sic@ }; @@ -3720,7 +3627,7 @@ module GERAN_Templates { /* RR IMMEDIATE ASSIGNMENT ntw -> ue/ms 3GPP TS 44.018 clause 9.1.18 The message has a fixed length of 23 octets. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cs_ImmediateAssignment_Common(-, cs_G_DedicatedModeOrTBF, cs_G_ChannelDescr ('00101'B, '000'B, p_ARFCN, p_TSC), @@ -3734,7 +3641,7 @@ module GERAN_Templates { template (value) RFN p_RR_RFN, B6_Type p_TA, template (value) IARO p_RO) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cs_ImmediateAssignment_Common(-, cs_G_TBFMode(p_Downlink), omit, @@ -3748,10 +3655,10 @@ module GERAN_Templates { // PDU templates //----------------------------------------------------------------------------- - template (present) LLCUnitDataIndType cr_G_AttachReq(template (present) AttachType p_AttachType, - template (present) MobileIdentity p_MobId, - template (present) RoutingAreaId p_RAI, - template (present) KeySeq p_KeySeq, + template (present) LLCUnitDataIndType cr_G_AttachReq(template (present) AttachType p_AttachType := cr_AttachTypeAny, + template (present) MobileIdentity p_MobId := cr_MobileIdAny, + template (present) RoutingAreaId p_RAI := cr_RAI, + template (present) KeySeq p_KeySeq := ?, template (present) MS_RadioAccessCap_LV p_MS_RadioAccessCap := cr_MS_RadioAccessCapLVAny) := { /* @status APPROVED (LTE_IRAT) */ attReq := cr_AttachReq_Common(p_AttachType, @@ -3838,14 +3745,14 @@ module GERAN_Templates { template (value) CiphKeySeqNum p_CiphKeySeqNum, template (value) GPRS_CipherAlg p_CipherAlg, template (value) AUTN p_AUTN) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ autnCipherReq := cs_AuthAndCiphReq_Common(p_RAND, p_CiphKeySeqNum, p_CipherAlg, p_AUTN) }; //----------------------------------------------------------------------------- template (present) LLCUnitDataIndType cr_G_AuthAndCiphFailureAny := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ authCipherFail := cr_AuthAndCiphFailure_Common }; @@ -3853,7 +3760,7 @@ module GERAN_Templates { template (present) LLCUnitDataIndType cr_G_AuthAndCiphRsp(template AuthRsp p_AuthRsp, template AuthRspExt p_AuthRspExt) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ authCipherResp := cr_AuthAndCiphRsp_Common (p_AuthRsp, p_AuthRspExt) }; @@ -3862,7 +3769,7 @@ module GERAN_Templates { template (present) LLCUnitDataIndType cr_G_DetachRequest(template DetachType p_Type, template MobileIdentity p_Ptmsi, template PTMSI_Signature p_Signature := cr_PTMSI_Signature2Any ifpresent) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ detachReq := cr_DetachReq_Common (p_Type, p_Ptmsi, p_Signature) }; @@ -3895,17 +3802,18 @@ module GERAN_Templates { pDP_Addr := omit, pKT_FlowIdentifier := omit, protocolConfOpts := omit, - tft := omit + tft := omit, + wlanOffloadInd := omit // @sic R5s150329 Baseline Moving sic@ } }; //----------------------------------------------------------------------------- template (present) LLCUnitDataIndType cr_G_RA_UpdReqAny(template (present) UpdateType p_UpdateType, - template (present) RoutingAreaId p_RAI, - template PTMSI_Signature p_PTMSISig, - template (present) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (present) RoutingAreaId p_RAI := cr_RAI, + template PTMSI_Signature p_PTMSISig := cr_PTMSI_SignatureAny ifpresent, + template (present) KeySeq p_KeySeq := ?) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rauReq := cr_RAURequest_Common(p_UpdateType, p_RAI, p_PTMSISig, @@ -3942,9 +3850,9 @@ module GERAN_Templates { template (value) RoutingAreaId p_RAI, template (omit) PTMSI_Signature p_PTMSIsig, template (omit) MobileIdentity p_PTMSI, - template (omit) PDP_ContextStatus p_PDP_ContextStatus, // @sic R5-133584 sic@ + template (omit) PDP_ContextStatus p_PDP_ContextStatus := cs_PDP_ContextStatusInactive, // @sic R5-133584, R5-153114 sic@ template (omit) RequestedMS_Info p_ReqMSInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rauAccept := cs_RA_UpdAcc_Common (p_UpdateResult, p_RAI, p_PTMSIsig, @@ -3963,7 +3871,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) LLCUnitDataIndType cr_G_RA_UpdComplete(template EUTRAN_HO_Info p_EUTRAN_HO_Info := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ rauComplete := cr_RAUpdComplete_Common(p_EUTRAN_HO_Info) }; @@ -4006,12 +3914,12 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) G_CPHY_CONFIG_CNF car_G_CPHY_Config_CNF := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ None := true }; template (present) G_CPHY_CONFIG_CNF car_G_CL1_ComingFN_CNF := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ comingFN := ? // the reduced frame number (FN modulo 42432) which is about 5 seconds later than current frame number and is able to carry L3 message }; @@ -4020,7 +3928,7 @@ module GERAN_Templates { template (value) G_CPHY_CONFIG_REQ cas_G_CL1_ChangePowerLevel_REQ(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyChId, TX_Power p_TX_Power) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ changePowerLevel := { cellId := enum2int(p_CellId), physicalChId := p_PhyChId, // Channel identifier @@ -4039,7 +3947,7 @@ module GERAN_Templates { template (omit) ChannelSpecificInfo p_ChSpecificPara := omit, TX_Power p_DownlinkPowerLevel, B1_Type p_BandIndicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ createPhyCh := { cellId := enum2int(p_CellId), physicalChId := p_PhyChId, // identifier of the physical channel created @@ -4061,7 +3969,7 @@ module GERAN_Templates { template (value) TSC p_TSC, TX_Power p_DownlinkPowerLevel, B1_Type p_BandIndicator) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_G_CPHY_CONFIG_CreatePhyCh(p_CellId, p_PhyChId, p_ChComb, p_FreqInfo, p_TimeSlot, p_TSC, -, p_DownlinkPowerLevel, p_BandIndicator); @@ -4074,7 +3982,7 @@ module GERAN_Templates { TX_Power p_DownlinkPowerLevel, B1_Type p_BandIndicator) := /* FCCH + SCH + BCCH + CCCH + SDCCH/4(0..3) + SACCH/C4(0..3) */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_G_CPHY_CONFIG_CreatePhyCh(p_CellId, p_PhyChId, p_ChComb, cs_FreqInfo(p_BCCHFreq), tsc_TN0, p_TSC, p_ChSpecificPara, p_DownlinkPowerLevel, p_BandIndicator); @@ -4088,7 +3996,7 @@ module GERAN_Templates { TX_Power p_DownlinkPowerLevel, B1_Type p_BandIndicator) := /* TCH/F + FACCH/F + SACCH/F */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_G_CPHY_CONFIG_CreatePhyCh(p_CellId, p_PhyChId, p_ChComb, p_FreqInfo, p_TimeSlot, p_TSC, cs_ChSpecificPara(p_DedChInfo, omit), p_DownlinkPowerLevel, p_BandIndicator); //----------------------------------------------------------------------------- @@ -4096,7 +4004,7 @@ module GERAN_Templates { template (value) G_CPHY_CONFIG_REQ cas_G_CL1_CipheringControl_REQ(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, B1_Type p_CiphMode) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cipheringControl := { cellId := enum2int(p_CellId), physicalChId := p_PhyCh, // Channel Identifier @@ -4110,7 +4018,7 @@ module GERAN_Templates { B3_Type p_NCC, B3_Type p_BCC, O1_Type p_TA) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ createCell := { cellId := enum2int(p_CellId), baseId := p_NCC & p_BCC, @@ -4138,7 +4046,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) G_CPHY_CONFIG_REQ cas_G_CL1_DeleteCell_REQ(GERAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ deleteCell := { cellId := enum2int(p_CellId) } @@ -4148,7 +4056,7 @@ module GERAN_Templates { template (value) G_CPHY_CONFIG_REQ cas_G_CL1_DeleteChannel_REQ(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ deleteChannel := { cellId := enum2int(p_CellId), physicalChId := p_PhyChId // identifier of the physical channel or the multi-slot configuration to be deleted @@ -4173,7 +4081,7 @@ module GERAN_Templates { template (value) G_L2_DATAMESSAGE_REQ cas_G_Paging_REQ(GERAN_CellId_Type p_CellId, PAGING_GROUP p_PagingGroup, template (value) PagingReqType p_Msg) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ page := { cellId := enum2int(p_CellId), sAPI := 0, @@ -4191,7 +4099,7 @@ module GERAN_Templates { PAGING_GROUP p_PagingGroup, integer p_PGcode, template (value) PagingReqType p_Msg) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ pageGPRS := { cellId := enum2int(p_CellId), sAPI := 0, // 0 @@ -4212,7 +4120,7 @@ module GERAN_Templates { integer p_InstanceIndex := 0, B1_Type p_BCCHExt := '0'B, template (value) SysInfoMsg p_SysInfoMsg) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ si := { cellId := enum2int(p_CellId), sAPI := tsc_SAPI_0, // 0 @@ -4227,24 +4135,24 @@ module GERAN_Templates { template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo1(GERAN_CellId_Type p_CellId, template (value) SYSTEMINFORMATIONTYPE1 p_SI1) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, -, -, {si1 := p_SI1 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo2(GERAN_CellId_Type p_CellId, template (value) SYSTEMINFORMATIONTYPE2 p_SI2) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, -, -, {si2 := p_SI2 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo2bis(GERAN_CellId_Type p_CellId, integer p_InstanceIndex, template (value) SYSTEMINFORMATIONTYPE2bis p_SI2bis) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, p_InstanceIndex, -, {si2bis := p_SI2bis }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo2quater(GERAN_CellId_Type p_CellId, integer p_InstanceIndex, template (value) SYSTEMINFORMATIONTYPE2quater p_SI2quater) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, p_InstanceIndex, -, {si2quater := p_SI2quater }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo2ter(GERAN_CellId_Type p_CellId, @@ -4254,44 +4162,44 @@ module GERAN_Templates { template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo3(GERAN_CellId_Type p_CellId, template (value) SYSTEMINFORMATIONTYPE3 p_SI3) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, -, -, {si3 := p_SI3 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo4(GERAN_CellId_Type p_CellId, template (value) SYSTEMINFORMATIONTYPE4 p_SI4) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, -, -, {si4 := p_SI4 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo5(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, G_LogicChType p_LogicChType, template (value) SYSTEMINFORMATIONTYPE5 p_SI5) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, p_PhyCh, p_LogicChType, -, -, {si5 := p_SI5 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo5bis(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, G_LogicChType p_LogicChType, template (value) SYSTEMINFORMATIONTYPE5bis p_SI5bis) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, p_PhyCh, p_LogicChType, -, -, {si5bis := p_SI5bis }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo6(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyCh, G_LogicChType p_LogicChType, template (value) SYSTEMINFORMATIONTYPE6 p_SI6) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, p_PhyCh, p_LogicChType, -, -, {si6 := p_SI6 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo13(GERAN_CellId_Type p_CellId, B1_Type p_BCCHExt, template (value) SYSTEMINFORMATIONTYPE13 p_SI13) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, -, p_BCCHExt, {si13 := p_SI13 }); template (value) G_L2_DATAMESSAGE_REQ cas_SysInfo15(GERAN_CellId_Type p_CellId, template (value) SYSTEMINFORMATIONTYPE15 p_SI15) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ cas_SysInfo_Common(p_CellId, -, -, -, -, {si15 := p_SI15 }); //----------------------------------------------------------------------------- @@ -4302,7 +4210,7 @@ module GERAN_Templates { template (present) SubChannelNumber p_SubCN, template (present) RFN p_RFN, template (present) AccessIndType p_Burst) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ access := { cellId := enum2int(p_CellId), physicalChId := p_PhysicalChId, // Channel identifier @@ -4336,7 +4244,7 @@ module GERAN_Templates { G_LogicChType p_LogType, SubChannelNumber p_SubchNo) := { /* This ASP requests L2 to send Layer 2 DISC command on the indicated SAPI. */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ rel := { cellId := enum2int(p_CellId), sAPI := tsc_SAPI_0, @@ -4353,7 +4261,7 @@ module GERAN_Templates { template (present) G_L2_DATAMESSAGE_IND car_G_L2_Release_CNF := { /* The ASP from L2, indicates that the multiple frame operation release was successful. This means that the UA message was received in response to L2 DISC command. */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT) */ relCnf := { cellId := ?, sAPI := ?, @@ -4376,7 +4284,7 @@ module GERAN_Templates { template (value) L2DataReqType p_Msg) := { /* The ASP is used to send L3 signalling message on the signalling channels or user data on the traffic channels to the UE/MS in acknowledged mode. Parameter fn is only used in the test cases which requires specific L3 message to be sent on specified frame number */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l3 := { cellId := enum2int(p_CellId), sAPI := p_SAPI, // 0 @@ -4396,7 +4304,7 @@ module GERAN_Templates { SubChannelNumber p_SubCN, template (value) RFN p_RFN, template (value) L2UnitDataReqType p_Msg) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ unit := { cellId := enum2int(p_CellId), sAPI := tsc_SAPI_0, // 0 @@ -4412,7 +4320,7 @@ module GERAN_Templates { template (present) G_L2_DATAMESSAGE_IND car_G_L2_Release_IND_Any := { /* The ASP is used to receive an indication of the termination of an established multiple frame operation or an indication of an unsuccessful establishment attempt. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ relInd := { cellId := ?, sAPI := ?, // 0 @@ -4434,7 +4342,7 @@ module GERAN_Templates { template RFN p_RFN, template L2DataIndType p_Msg) := { /* The ASP is used to receive a L3 signalling message on the signalling channels or user data on the traffic channels from the UE/MS in acknowledged mode. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ l3 := { cellId := enum2int(p_CellId), sAPI := p_SAPI, // 0 @@ -4464,7 +4372,7 @@ module GERAN_Templates { G_LogicChType p_LogCh, SubChannelNumber p_SubCh, boolean p_OnOff) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ measReportCtrl := { cellId := enum2int(p_CellId), physicalChId := p_PhyCh, // Channel identifier @@ -4500,7 +4408,7 @@ module GERAN_Templates { template (present) G_RLC_DATAMESSAGE_IND car_G_RLC_ControlMsg_IND(GERAN_CellId_Type p_CellId, template PhysicalChId p_PhyChId, template GRLCCntrlMsgIndType p_Msg) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ ctrl := { cellId := enum2int(p_CellId), physicalChId := p_PhyChId, // Channel identifier @@ -4519,7 +4427,7 @@ module GERAN_Templates { One RLC/MAC entity per cell can exist, cellId will be used for couping LLC layer module to the RLC/MAC emulation module. The packet channel description given in the ChannelSpecificInfo of G_CL1_CreateBasicPhyCh_REQ shall be used to configure this layer. This ASP shall be called after the G_CL1_CreateBasicPhyCh_REQ ASP. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ createRLC := { cellId := enum2int(p_CellId) // The identifier of the cell } @@ -4533,7 +4441,7 @@ module GERAN_Templates { B5_Type p_TFI, template (value) GRLCCntrlMsgReqType p_Msg) := { /* The constraint is used to transmitt the down link RLC/MAC control message to the UE/MS on PCCCH channel. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ ctrl := { cellId := enum2int(p_CellId), physicalChId := p_PhyChId, //PACCH @@ -4551,8 +4459,8 @@ module GERAN_Templates { //----------------------------------------------------------------------------- - template (present) G_RLC_CONFIG_CNF car_G_RLC_Config_CNF := {}; /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (present) G_LLC_CONFIG_CNF car_G_CLLC_Config_CNF := {}; /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (present) G_RLC_CONFIG_CNF car_G_RLC_Config_CNF := {}; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ + template (present) G_LLC_CONFIG_CNF car_G_CLLC_Config_CNF := {}; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ //----------------------------------------------------------------------------- @@ -4585,7 +4493,7 @@ module GERAN_Templates { template G_LogicChType p_G_LogicChType, template SubChannelNumber p_SubCN, template EstablishIndType p_Msg) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ sabm := { cellId := enum2int(p_CellId), physicalChId := p_PhysicalChId, // Channel identifier @@ -4604,7 +4512,7 @@ module GERAN_Templates { template (present) integer p_SAPI := ?) := { /* The ASP is used to receive an L3 PDU from the UE/MS in LLC unconfirmed transmission. 3GPP TS 44.064 clause 8.4.2 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ unit := { lLMEId := ?, // @sic R5s120572 sic@ tLLI := ?, // temporary logical link identifier @@ -4623,7 +4531,7 @@ module GERAN_Templates { GERAN_CellId_Type p_LLMEId := geran_Cell24) := { /* The ASP is used to transmit an L3 PDU to the UE/MS in LLC unconfirmed transmission. 3GPP TS 44.064 clause 8.4.1 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ unit := { lLMEId := enum2int (p_LLMEId), // @sic R5s120572, R5s120695 sic@ tLLI := p_TLLI, // temporary logical link identifier @@ -4653,7 +4561,7 @@ module GERAN_Templates { template (omit) XID_Info p_XID_Info, integer p_LLMEId := 1) := { /* The ASP is used to inform the UE of the XID information responded to the UE by the TTCN. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ xid := { lLMEId := p_LLMEId, tLLI := p_TLLI, // temporary logical link identifier @@ -4665,7 +4573,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (present) G_LLC_DATAMESSAGE_IND car_G_LLC_XID_IndAny := { /* The ASP is used to receive the XID requested by the UE/MS. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ xid := { lLMEId := ?, tLLI := ?, // temporary logical link identifier @@ -4681,7 +4589,7 @@ module GERAN_Templates { template (omit) XID_Info p_XID_Info, integer p_LLMEId := 1) := { /* The ASP is used to send to the UE/MS the negotiated XID parameters agreed by the SS. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ xid := { lLMEId := p_LLMEId, // @sic R5s120572 sic@ tLLI := p_TLLI, // temporary logical link identifier @@ -4695,7 +4603,7 @@ module GERAN_Templates { template (value) G_LLC_DATAMESSAGE_REQ cas_G_LLC_XID_Reset(TLLI p_TLLI, SAPI p_SAPI, integer p_LLMEId := 1) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ xid := { lLMEId := p_LLMEId, // @sic R5s120572 sic@ tLLI := p_TLLI, // temporary logical link identifier @@ -4711,7 +4619,7 @@ module GERAN_Templates { { /* the ASP is used to configure a TBF used for uplink data transfer For GPRS channel coding can be: CS-1, CS-2, CS-3 and CS-4;For EGPRS channel coding can be: MCS-1, MCS-2, MCS-3, MCS-4, MCS-5, MCS-6, MCS-7, MCS-8, MCS-9, MCS-5-7 and MCS-6-9. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ ulTBFConfig := { cellId := enum2int(p_CellId), tFI := tsc_UplinkTFI, @@ -4738,15 +4646,16 @@ module GERAN_Templates { TLLI p_OldTLLI, TLLI p_NewTLLI, GPRS_CipherAlg p_CipherAlg, - B64_Type p_CipherKey) := + B64_Type p_CipherKey, + B128_Type p_CiphyKey128) := { /* The constraint is used to assign the TLLI, the cipher key (Kc) and the cipher algorithm of GERAN LLC emulator module. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ assign := { cellId := enum2int(p_CellId), oldTLLI := p_OldTLLI, // OCTETSTRING[4] newTLLI := p_NewTLLI, cipherKey := p_CipherKey, - cipherKey128 := px_CipherKey128, // @sic R5-144746 sic@ + cipherKey128 := p_CiphyKey128, // @sic R5-144746, R5s150121 sic@ cipherAlgorithm := p_CipherAlg // BITSTRING[3], 3GPP TS 24.008 section 10.5.5.3 } }; @@ -4757,7 +4666,7 @@ module GERAN_Templates { integer p_LLMEId := 1) := { /* The ASP is used to create an LLE (LLC Entity) in GERAN LLC emulation module. The RlcMacEntityId needs to be created prior to this by G_CRLC_CreateRLC_MAC_REQ ASP. */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ createLLC := { lLMEId := p_LLMEId, // Logical Layer Management Entity Id @sic R5s120572 sic@ rLC_MAC_MappingInfo := enum2int(p_CellId) // This parameter indicates the RLC/MAC emulation module in the cell, not the cell itself. @@ -4779,7 +4688,7 @@ module GERAN_Templates { template (value) G_RLC_CONFIG_REQ cas_ActivateTBF_Downlink(GERAN_CellId_Type p_CellId, PhysicalChId p_PhyChId, integer p_USFRate) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ dlTBFConfig := { cellId := enum2int(p_CellId), tFI := tsc_DownlinkTFI, @@ -4804,7 +4713,7 @@ module GERAN_Templates { template (value) G_CPHY_CONFIG_REQ cas_G_CL1_ComingFN_REQ(GERAN_CellId_Type p_CellId, PhysicalChId p_PhysicalChId, G_LogicChType p_G_LogicChType) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ comingFN := { cellId := enum2int(p_CellId), physicalChId := p_PhysicalChId, // Channel identifier @@ -4873,7 +4782,7 @@ module GERAN_Templates { //----------------------------------------------------------------------------- template (value) L2UnitDataReqType cs_ImmAss (template (value) IMMEDIATEASSIGNMENT p_PDU) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ immedAss := p_PDU }; @@ -4995,6 +4904,7 @@ module GERAN_Templates { aGbModeMask := '00'B, // only present if globalTFImask=0 and payloadMask=00 psHORadioResource := p_PSHO_RResource, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=00 psHORadioResource2 := omit, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=01 + psHORadioResource3 := omit, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=10 @sic R5s150329 Baseline Moving sic@ nasMask := p_NMask, // only present if globalTFImask=0 and payloadMask=00 nasContainerLength := p_NASContainerLen, // only present if globalTFImask=0 and payloadMask=00 and nasMask=1 nasContainerData := p_NASContainer, // only present if globalTFImask=0 and payloadMask=00 and nasMask=1 @@ -5030,7 +4940,12 @@ module GERAN_Templates { emsrAddPFC3_ul := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or if ulEMSRMask = 0 @sic R5s120178 sic@ r11Mask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s130195 Baseline Moving sic@ plmnMask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or if r10Mask = 0 or r11Mask = 0 @sic R5s130195 Baseline Moving sic@ - plmnIndexSelected := omit // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or if plmnMask = 0 @sic R5s130195 Baseline Moving sic@ + plmnIndexSelected := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or if plmnMask = 0 @sic R5s130195 Baseline Moving sic@ + r12Mask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + primaryTSC_Set := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + dlTSCMask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + secondaryTSC_Set := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + secondaryTSC_Value := omit // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ }; template (value) GRLCCntrlMsgReqType cs_G_PSHandoverCmdToEUTRA(template (value) GlobalTFI p_GlobalTFI, @@ -5047,6 +4962,7 @@ module GERAN_Templates { aGbModeMask := omit, // only present if globalTFImask=0 and payloadMask=00 psHORadioResource := omit, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=00 psHORadioResource2 := omit, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=01 + psHORadioResource3 := omit, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=10 @sic R5s150329 Baseline Moving sic@ nasMask := omit, // only present if globalTFImask=0 and payloadMask=00 nasContainerLength := omit, // only present if globalTFImask=0 and payloadMask=00 and nasMask=1 nasContainerData := omit, // only present if globalTFImask=0 and payloadMask=00 and nasMask=1 @@ -5082,7 +4998,12 @@ module GERAN_Templates { emsrAddPFC3_ul := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or if ulEMSRMask = 0 @sic R5s120178 sic@ r11Mask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s130195 Baseline Moving sic@ plmnMask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or if r10Mask = 0 or r11Mask = 0 @sic R5s130195 Baseline Moving sic@ - plmnIndexSelected := omit // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or if plmnMask = 0 @sic R5s130195 Baseline Moving sic@ + plmnIndexSelected := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or if plmnMask = 0 @sic R5s130195 Baseline Moving sic@ + r12Mask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + primaryTSC_Set := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + dlTSCMask := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + secondaryTSC_Set := omit, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + secondaryTSC_Value := omit // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ } }; @@ -5152,7 +5073,8 @@ module GERAN_Templates { mobileAllocC2 := omit, // mobile allocation C2 C TLV [3..10] IEI=18 freqListC2 := omit, // frequency list C2 C TLV [4..132] IEI=19 dlPktChAssign2 := omit, // downlink Packet Channel Assignment O TLV [3..n] IEI=20 - ch1DescrC2 := omit // description of the 1st channel, before time O TV [3] IEI=21 + ch1DescrC2 := omit, // description of the 1st channel, before time O TV [3] IEI=21 + xtdedTSC := omit // extended TSC Set before time C TV [2] @sic R5s150329 Baseline Moving sic@ }; template (value) GPRSBroadCastInfo cs_GPRSBroadCastInfo := @@ -5164,13 +5086,13 @@ module GERAN_Templates { }; template (present) G_SNDCP_CONFIG_CNF car_G_SNDCP_CONFIG_CNF_Any := ?; /* @sic R5s120861 sic@ - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ template (value) G_SNDCP_CONFIG_REQ cas_G_SNDCP_Activate_REQ(SNDCPId p_SNDCPId, LLMEId p_LLMEId, integer p_NSAPI, SAPI p_SAPI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ act := { sndcpId := p_SNDCPId, // The SNDCP entity identifier of the cell lLMEId := p_LLMEId, // Logical Layer Management Entity Id @@ -5224,7 +5146,7 @@ module GERAN_Templates { { /* @status APPROVED (LTE_A, LTE_IRAT) */ hoComplete := { skipIndicator := tsc_SkipIndicator, //BITSTRING [4] - rrProtocolDiscriminator := tsc_PD_RR, //BITSTRING [4] + rRProtocolDiscriminator := tsc_PD_RR, //BITSTRING [4] @sic R5s150329 Baseline Moving sic@ msgType := oct2bit ('2C'O), //BITSTRING [8] rrCau := cr_G_RR_Cause, //OCTETSTRING [1] mobileObservedTimeDiff := cr_MobileTimeDiff_Any ifpresent , // TLV OCTETSTRING [5] IEI=77 diff --git a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_TypeDefs.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/GERAN/GERAN_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/GERAN/GERAN_TypeDefs.ttcn index 3c678f7..c94db2d 100644 --- a/LTE_A_IWD_14wk37/Common/GERAN/GERAN_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/GERAN/GERAN_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 13:56:06 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12205 $ +// @version: IWD_15wk38 +// $Date: 2015-04-27 14:25:29 +0200 (Mon, 27 Apr 2015) $ +// $Rev: 13515 $ /******************************************************************************/ module GERAN_TypeDefs { @@ -204,7 +204,6 @@ type record ChReqDescr { type record CNtoMSTransparentInfo { IEI8_Type iei optional, O1_Type iel, - // O1_Type iel2, 44.018 states that the value field is this IE without the IEI. Does this mean we need 2 length fields ??? octetstring nonce, // encoded as per TS 33.102 octetstring atgwTransferDetails // encoded as per 24.237 }; @@ -840,7 +839,9 @@ type record EGPRSPktUplinkAssigment { B1_Type r10Mask optional, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 and r7Mask = 0 or r9Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC1 optional, // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC2 optional, // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ - RptdAddPFC emsrAddPFC3 optional // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ + RptdAddPFC emsrAddPFC3 optional, // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ + B1_Type r12Mask optional, // not present if r99Mask=0, r5Mask=0 or r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type primaryTSC_Set optional // not present if r99Mask=0, r5Mask=0, r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ }; // ============================================================================= @@ -904,7 +905,7 @@ type record EGPRS_UplinkAssign { }; type record PktDlDualCarrier { // @sic R5s100135 sic@ - B2_Type mask, // set to 00 + B2_Type mask, // set to 00 for dual carrier, 01 for multicarrier B1_Type rlcMode, B1_Type ctrlAck, B2_Type assignType, @@ -972,9 +973,137 @@ type record PktDlDualCarrier { // @sic R5s100135 sic@ RptdAddPFC emsrAddPFC2 optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC3 optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ B1_Type r11Mask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s130195 Baseline Moving sic@ - B1_Type egprsPDAN3 optional // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s130195 Baseline Moving sic@ + B1_Type egprsPDAN3 optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s130195 Baseline Moving sic@ + B1_Type r12Mask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type primaryTSC_Set optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type dlTSCMask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type secondaryTSC_Set optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + B3_Type secondaryTSC_Value optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + PktDlMultiCarrier multicarrier optional // only present if mask = 01 }; +type record PktDlMultiCarrier { // @sic R5s150329 Baseline Moving sic@ + B1_Type rlcMode, + B1_Type ctrlAck, + RptdUFPS ufps, + B1_Type dlmcMeasurementType, + B2_Type linkQualityMeasMode, + B1_Type hiddenMask, + B4_Type carrierForInterferenceMeas optional, // only present if hiddenMask = 0 + PacketTimingAdvance pktTA, + B1_Type xdTAMask, + B2_Type pktExtendedTA optional, // only present if xdTAMask = 1 + B1_Type pttchMask, + B4_Type pttchCarrier optional, // only present if pttchMask = 1 + B1_Type pdanCoding, + B1_Type xtdSNS, + B1_Type bepPeriodMask, + B4_Type bepPeriod2 optional, // only present if bepPeriodMask = 1 + B1_Type pfiMask, + B7_Type pFI optional, // only present if pfiMask = 1 + B1_Type npmMask, + B5_Type npmTransferTime optional, // only present if npmMask = 1 + B1_Type fanrMask, + B1_Type eventBasedFANR optional, // only present if fanrMask = 1 + B2_Type dlEGPRSLevel, + B1_Type upperLayerStartForUMInd, + B1_Type egprsPDAN3 +}; + +type record of UFPS_Struct RptdUFPS; + +type record UFPS_Struct { + B1_Type prefix, + UFPS ufps optional // not present if prefix = 0 +}; + +type record UFPS { + B2_Type existingUFPS, // 00 - released, 01 - unchanged, 10 - new info provided + B1_Type freqMask optional, // only present if existingUFPS = 10 + DLMC_FreqParams dlmcFreqParams optional, // only present if existingUFPS = 10 and freqMask = 1 + RptdCarrierSpecificInfo carrierSpecificInfo optional // only present if existingUFPS = 10 +}; + +type record DLMC_FreqParams { + B3_Type tsc, + B2_Type encodeMask, // 00 - ARFCN, 01 - Indirect, 10 - Direct 1, 11 - Direct 2 + B10_Type arfcn optional, // only present if encodeMask = 00 + DLMC_Indirect indirect optional, // only present if encodeMask = 01 + GPRSMobileAlloc direct1 optional, // only present if encodeMask = 10 + DLMC_Direct2 direct2 optional // only present if encodeMask = 11 +}; + +type record DLMC_Indirect { + B4_Type maNum, + B1_Type mask1, + B2_Type changeMark1 optional, // only present if mask1 = 1 + B1_Type mask2 optional, // only present if mask1 = 1 + B2_Type changeMark2 optional // only present if mask1 = 1 and mask2 = 1 +}; + +type record DLMC_Direct2 { + B6_Type hsn, + B4_Type lengthOfMA, + bitstring maFreqLisstContents +}; + +type record of CarrierSpecificInfoStruct RptdCarrierSpecificInfo; + +type record CarrierSpecificInfoStruct { + B1_Type prefix, + CarrierSpecificInfo info optional // not present if prefix = 0 +}; + +type record CarrierSpecificInfo { + B2_Type existingCarrier, // 00 - released, 01 - unchanged, 10 - new info provided + B1_Type bTTIMask optional, // only present if existingCarrier = 10 + B1_Type tnAllocMask optional, // only present if existingCarrier = 10 and bTTIMask = 0 + B8_Type timeslotAlloc optional, // only present if existingCarrier = 10 and if bTTIMask = 0 and tnAllocMask = 1 + B1_Type pdchMask optional, // only present if existingCarrier = 10 and if bTTIMask = 1 + B8_Type dlPDCH_DLMC optional, // only present if existingCarrier = 10, bTTIMask = 1 and pdchMask = 1 + B4_Type rTTIDLPDCH_DLMC optional, // only present if existingCarrier = 10, bTTIMask = 1 and pdchMask = 1 + B1_Type maioMask optional, // only present if existingCarrier = 10 + B6_Type maio optional, // only present if existingCarrier = 10 and maioMask = 1 + B1_Type pwrCtrlMask optional, // only present if existingCarrier = 10 + B4_Type p0 optional, // only present if existingCarrier = 10 and pwrCtrlMask = 1 + B1_Type pR_Mode optional, // only present if existingCarrier = 10 and pwrCtrlMask = 1 + B1_Type dlTFIMask optional, // only present if existingCarrier = 10 + B5_Type dlTFIAssign optional, // only present if existingCarrier = 10 and dlTFIMask =1 + B1_Type eTFIMask optional, // only present if existingCarrier = 10 and dlTFIMask =1 + B3_Type dl_eTFI optional, // only present if existingCarrier = 10 and dlTFIMask =1 and eTFIMask = 1 + B1_Type pwrParamsMask optional, // only present if existingCarrier = 10 + PowerControlParam pwrCtrlParams optional, // only present if existingCarrier = 10 and pwrParamsMask = 1 + B1_Type emstMask optional, // only present if existingCarrier = 10 + RLCEntity rlcEntity2 optional, // only present if existingCarrier = 10 and emstMask = 1 + B1_Type eTFI2Mask optional, // only present if existingCarrier = 10 and emstMask =1 + B3_Type dl_eTFI2 optional, // only present if existingCarrier = 10 and emstMask =1 and eTFI2Mask = 1 + B1_Type entity3Mask optional, // only present if existingCarrier = 10 and emstMask =1 + RLCEntity rlcEntity3 optional, // only present if existingCarrier = 10 and emstMask =1 entity3Mask = 1 + B1_Type eTFI3Mask optional, // only present if existingCarrier = 10 and emstMask =1 + B3_Type dl_eTFI3 optional, // only present if existingCarrier = 10 and emstMask =1 and eTFI3Mask = 1 + B1_Type emsrMask optional, // only present if existingCarrier = 10 + RptdEMSRAddPFC emsrAddPFC1 optional, // only present if existingCarrier = 10 and emsrMask = 1 + RptdEMSRAddPFC emsrAddPFC2 optional, // only present if existingCarrier = 10 and emsrMask = 1 + RptdEMSRAddPFC emsrAddPFC3 optional, // only present if existingCarrier = 10 and emsrMask = 1 + B1_Type primaryTSC_Set optional, // only present if existingCarrier = 10 + B1_Type dlTSCMask optional, // only present if existingCarrier = 10 + B1_Type secondaryTSC_Set optional, // only present if existingCarrier = 10 and dlTSCMask = 1 + B3_Type secondaryTSC_Value optional // only present if existingCarrier = 10 and dlTSCMask = 1 +}; + +type record of EMSRAddPFCStruct RptdEMSRAddPFC; + +type record EMSRAddPFCStruct { + B1_Type prefix, + EMSRAddPFC addPFC optional // not present if prefix = 0 +}; + +type record EMSRAddPFC { + AddPFC addPFC, + B1_Type eTFIMask, + B3_Type dl_eTFI optional // only present if eTFIMask = 1 +}; + type record of AddPFCStruct RptdAddPFC; type record AddPFCStruct { @@ -1048,8 +1177,57 @@ type record PktUlDualCarrier { B1_Type r10Mask optional, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 and r7Mask = 0 or r9Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC1 optional, // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC2 optional, // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ - RptdAddPFC emsrAddPFC3 optional // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ + RptdAddPFC emsrAddPFC3 optional, // not present if r99mask = 0 or if r5Mask=0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ + B1_Type r12Mask optional, // not present if r99Mask=0, r5Mask=0 or r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type primaryTSC_Set optional // not present if r99Mask=0, r5Mask=0, r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + }; + +type record PktUlMultiCarrier { + B1_Type resegment, // 0 - Retransmitted RLC data blocks shall not be re-segmented; 1 - Retransmitted RLC data blocks shall be re-segmented according to commanded MCS + DLMC_UL_CarrierInfo dlmcULCarrierInfo, + B5_Type windowSize, + B5_Type ulTFI, + PacketTimingAdvance pktTimingAdvance, + B1_Type xdTAMask, + B2_Type pktExtendedTA optional, // only present if xdTAMask = 1 + B1_Type bepPeriodMask, + B4_Type bepPeriod2 optional, // only present if bepPeriodMask = 1 + B1_Type pfiMask, + B7_Type pFI optional, // only present if pfiMask = 1 + B1_Type rlcMask, + B1_Type rlcMode optional, // only present if rlcMask =1 + B1_Type npmMask, + B5_Type npmTransferTime optional, // only present if npmMask = 1 + B1_Type fanrMask, + B1_Type timeMask optional, // only present if fanrMask = 1 + B8_Type reportedTimeslot optional, // only present if fanrMask = 1 and timeMask = 1 + B2_Type tSH optional, // only present if fanrMask = 1 and timeMask = 1 + B2_Type ulEGPRSLevel, + B1_Type pulseMask, + PulseFormat pulseFormat optional, // only present if pulseMask = 1 + B1_Type upperLayerStartForUMInd, + B1_Type enhancedFlexTimeslot, + B4_Type eGPRSChCodingCmd }; + +type record DLMC_UL_CarrierInfo { + B2_Type carrierMask, // 00 - released, 01 - unchanged, 10 - info provided + B1_Type bTTIMask optional, // only present if carrierMask = 10 + B1_Type tsMask optional, // only present if carrierMask = 10 and bTTIMask = 0 + B8_Type ulTimeslotAlloc optional, // only present if carrierMask = 10 and bTTIMask = 0 and tsMask = 1 + B1_Type pdchMask optional, // only present if carrierMask = 10 and bTTIMask = 1 + B8_Type pdchPairsDLMC optional, // only present if carrierMask = 10 and bTTIMask = 1 and pdchMask + DynamicAlloc3 dynamicAlloc3 optional, // only present if carrierMask = 10 + B1_Type emstMask optional, // only present if carrierMask = 10 + RLCEntity rlcEntity2 optional, // only present if carrierMask = 10 and emstMask = 1 + B1_Type entity3Mask optional, // only present if carrierMask = 10 and emstMask = 1 + RLCEntity rlcEntity3 optional, // only present if carrierMask = 10 and emstMask = 1 and entity3Mask = 1 + B1_Type emsrMask optional, // only present if carrierMask = 10 + RptdAddPFC emsrAddPFC1 optional, // only present if carrierMask = 10 and emsrMask = 1 + RptdAddPFC emsrAddPFC2 optional, // only present if carrierMask = 10 and emsrMask = 1 + RptdAddPFC emsrAddPFC3 optional, // only present if carrierMask = 10 and emsrMask = 1 + B1_Type primaryTSC_Set optional // only present if carrierMask = 10 +}; type record PDCHPairsDescr { // @sic R5s100135 sic@ B1_Type singleCarrier, @@ -1120,6 +1298,50 @@ type record length (1..16) of B3_Type USFList; type record length (1..16) of B5_Type GammaList; +// ============================================================================= +// Structured Type Definition 44.060 12.65 +// ----------------------------------------------------------------------------- +type record DynamicAlloc3 { + B1_Type extendedAlloc, + B1_Type usfGranularity, // 0 - 1 block, 1 - 4 blocks + B1_Type alphaMask, + B4_Type alpha optional, // only present if alphaMask = 1 + B1_Type tscMask, + B3_Type tsc optional, // only present if tscMask = 1 + B1_Type bTTIMask, + BTTI_UsfGammaList btti optional, // only present if bTTIMask = 0 + RTTI_UsfGammaList rtti optional // only present if bTTIMask = 1 +}; + +type record of RptdBTTI_UsfGamma BTTI_UsfGammaList; + +type record RptdBTTI_UsfGamma { + B1_Type prefix, + BTTI_UsfGamma list optional // only present if prefix = 1 +}; + +type record BTTI_UsfGamma { + B1_Type mask, + B3_Type usf optional, // only present if mask = 1 + B5_Type gamma optional // only present if mask = 1 +}; + +type record of RptdRTTI_UsfGamma RTTI_UsfGammaList; + +type record RptdRTTI_UsfGamma { + B1_Type prefix, + BTTI_UsfGamma list optional // only present if prefix = 1 +}; + +type record RTTI_UsfGamma { + B1_Type mask, + B3_Type usf optional, // only present if mask = 1 + B5_Type gamma optional, // only present if mask = 1 + B1_Type modeMask optional, // only present if mask = 1 + B1_Type mask2 optional, // only present if mask = 1 and modeMask = 1 + B3_Type usf2 optional // only present if mask = 1 and modeMask = 1 and mask2 = 1 +}; + // ============================================================================= // Structured Type Definition // ----------------------------------------------------------------------------- @@ -1555,7 +1777,7 @@ type record MeasResults { B1_Type ba3G_used, // 3G bcch allocation used B1_Type meas_valid, // measurement results valid RxLevel rxlev_ssc, // received signal strength on a subset of the serving cell - B1_Type spare, // @sic R5s100135 sic@ + B1_Type si23ba_used, // @sic R5s100135, R5s150329 baseline moving sic@ B3_Type rxqual_fsc, // received signal quality on the full serving cell B3_Type rxqual_ssc, // received signal quality on a subset of the serving cell B3_Type no_neighCells, // number of neighbouring cells (nc) @@ -1922,6 +2144,67 @@ type record PSHO_RResource2 { // @sic R5s120178 sic@ B1_Type egprsPDAN3 optional // not present if extnMask = 0 @sic R5s130195 Baseline Moving sic@ }; +type record PSHO_RResource3 { // @sic R5s150329 Baseline Moving sic@ + B1_Type hoMask, + B8_Type hoReference optional, // not present if hoMask = 0 + B2_Type si, + B1_Type nci, + B6_Type bsic, + B1_Type ccnMask, + B1_Type ccnActive optional, // not present if ccnMask = 0 + B1_Type ccn3GMask, + B1_Type ccn3GActive optional, // not present if ccn3GMask = 0 + B1_Type ccnSupportMask, + CCN_SupportDescr ccnSupportDescr optional, // not present if ccnSupportMask = 0 + B1_Type rlcMode_DL, + B1_Type ctrlAck, + RptdUFPS ufps, + B1_Type dlmcMeasurementType, + B2_Type linkQualityMeasMode, + B1_Type hiddenMask, + B4_Type carrierForInterferenceMeas optional, // only present if hiddenMask = 0 + GlobalPacketTimingAdvance pktTA, + B1_Type xdTAMask, + B2_Type pktExtendedTA optional, // only present if xdTAMask = 1 + B1_Type pttchMask, + B4_Type pttchCarrier optional, // only present if pttchMask = 1 + B1_Type pdanCoding, + B1_Type xtdSNS, + B1_Type bepPeriodMask, + B4_Type bepPeriod2 optional, // only present if bepPeriodMask = 1 + B1_Type pfiDLMask, + B7_Type pFI_DL optional, // only present if pfiDLMask = 1 + B1_Type npmDLMask, + B5_Type npmTransferTime_DL optional, // only present if npmDLMask = 1 + B1_Type fanrDLMask, + B1_Type eventBasedFANR optional, // only present if fanrDLMask = 1 + B2_Type dlEGPRSLevel, + B1_Type upperLayerStartForUMInd, + B1_Type egprsPDAN3, + B4_Type egprsChCodingCmd, + B1_Type resegment, // 0 - Retransmitted RLC data blocks shall not be re-segmented; 1 - Retransmitted RLC data blocks shall be re-segmented according to commanded MCS + DLMC_UL_CarrierInfo dlmcULCarrierInfo, + B5_Type windowSize, + B5_Type ulTFI, + B1_Type pfiULMask, + B7_Type pFI_UL optional, // only present if pfiULMask = 1 + B1_Type rlcMask, + B1_Type rlcMode_UL optional, // only present if rlcMask =1 + B1_Type npmULMask, + B5_Type npmTransferTime_UL optional, // only present if npmULMask = 1 + B1_Type fanrULMask, + B1_Type timeMask optional, // only present if fanrULMask = 1 + B8_Type reportedTimeslot optional, // only present if fanrULMask = 1 and timeMask = 1 + B2_Type tSH optional, // only present if fanrULMask = 1 and timeMask = 1 + B2_Type ulEGPRSLevel, + B1_Type pulseMask, + PulseFormat pulseFormat optional, // only present if pulseMask = 1 + B1_Type timeslotMask, + B3_Type uplinkCtrlTimeslot optional, // only present if timeslotMask = 1 + B2_Type nwkCtrlOrder, + B1_Type rlcReset +}; + type record GlobalPacketTimingAdvance { B1_Type valueMask, B6_Type taValue optional, // not present if valueMask = 0 @@ -3801,7 +4084,12 @@ type record SI2quaterRO { // @sic R5s100135 sic@ LH_B1_Type rel10Mask optional, // not present if rel9Mask = L @sic R5s110178 Baseline Moving sic@ B1_Type pwrMask optional, // not present if rel9Mask = L or rel10Mask = L @sic R5s110178 Baseline Moving sic@ B1_Type initPwrRed optional, // not present if rel9Mask = L or rel10Mask = L or pwrMask = 0 @sic R5s110178 Baseline Moving sic@ - B1_Type nc2CSG_PCCN_Permitted optional // not present if rel9Mask = L or rel10Mask = L @sic R5s110178 Baseline Moving sic@ + B1_Type nc2CSG_PCCN_Permitted optional, // not present if rel9Mask = L or rel10Mask = L @sic R5s110178 Baseline Moving sic@ + LH_B1_Type r11Mask optional, // not present if rel9Mask = L or rel10Mask = L @sic R5s150329 Baseline Moving sic@ + B1_Type xtdEARFCNMask optional, // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L @sic R5s150329 Baseline Moving sic@ + RptdEARFCN xtdEARFCN_Descr optional, // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L or xtdEARFCNMask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type xtdEARFCN_CSGMask optional, // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L @sic R5s150329 Baseline Moving sic@ + RptdEARFCN xtdEARFCN_CSG_Descr optional // not present if rel9Mask = L or rel10Mask = L or rel11Mask = L or xtdEARFCN_CSGMask = 0 @sic R5s150329 Baseline Moving sic@ }; type record CSG_CellReportDescr { // @sic R5s110176 sic@ @@ -3857,6 +4145,59 @@ type record Rel7_700810Reporting { B3_Type repThres810 optional // not present if mask 810 = 0 }; +type record of XTD_EARFCN_NC_Params XTD_EARFCN_NC_Descr; + +type record XTD_EARFCN_NC_Params { + B1_Type prefix, + RptdXTD_EARFCN_NC params optional // only present if prefix = 1 +}; + +type record RptdXTD_EARFCN_NC { + B18_Type xtdEARFCN, + RptdEARFCN rptdEARFCN, + B1_Type bwMask, + B3_Type measBandwidth optional // not present if bwMask = 0 +}; + +type record RptdEARFCN { + B1_Type prefix, + B18_Type xtdEARFCN optional // only present if prefix = 1 +}; + +type record EUTRAN_IPP_Descr { + B1_Type defaultMask, + B3_Type defaultEUTRANPriority optional, // not present if defaultMask = 0 + RptdEARFCN_PP_Descr rptdEARFCN_PP +}; + +type record RptdEARFCN_PP_Descr { + B1_Type prefix, + RptdEARFCN_PP xtdEARFCN optional // only present if prefix = 1 +}; + +type record RptdEARFCN_PP { + RptdEARFCN rptdEARFCN, + B3_Type eutranPriority +}; + +type record of RptdEUTRAN_NC EUTRAN_NC_IE; + +type record RptdEUTRAN_NC { + B1_Type prefix, + EUTRAN_NC_descr earfcnNC optional // only present if prefix = 1 +}; + +type record EUTRAN_NC_descr { + RptdXTD_EARFCN_NC xtdEARFCN, + B1_Type priorMask, + B3_Type eutranPriority optional, // not present if priorMask = 0 + B5_Type threshEUTRANHigh, + B1_Type lowMask, + B5_Type threshEUTRANLow optional, // not present if lowMask = 0 + B1_Type rxMask, + B5_Type eutranQRxLevMin optional // not present if rxMask = 0 +}; + type record Priority3GParams { B1_Type priorMask, B3_Type defUtranPriority optional, // not present if priorMask = 0 @@ -4838,6 +5179,13 @@ type record EUTRAN_TargetCell { B9_Type cellIdentity }; +type record ExtdEUTRAN_Target { + B18_Type xtdEARFCN, + B1_Type bwMask, + B3_Type bandwidth optional, // not present if bwMask = 0 + B9_Type cellIdentity +}; + type record UTRAN_FDDTargetCell { B14_Type fddArfcn, B1_Type diversity, @@ -4884,7 +5232,10 @@ type record IndividualPriorities { B1_Type eutranMask, IndividualEUTRANPriorityParams eutranParams optional, // not present if eutranMask = 0 B1_Type durationMask, - B3_Type t3230TimeoutValue optional // not present if durationMask = 0 + B3_Type t3230TimeoutValue optional, // not present if durationMask = 0 + LH_B1_Type r11Mask, // @sic R5s150329 Baseline Moving sic@ + B1_Type xtdEARFCNMask optional, // not present if rel11Mask = L @sic R5s150329 Baseline Moving sic@ + EUTRAN_IPP_Descr xtdEARFCN_IPP_Descr optional // not present if rel11Mask = L or xtdEARFCNMask = 0 @sic R5s150329 Baseline Moving sic@ }; type record IndividualUTRANPriorityParams { @@ -5055,7 +5406,22 @@ type record ASSIGNMENTCOMMAND { CipherModeSetting cphms optional, // cipher mode setting O TV [1] VGCS_TargetMode vGCS_TargetMode optional, // VGCS target mode Indication O TLV [3] MultiRateConfig mltiRateConfig optional, // multiRate configuration O TLV [4..8] - VGCSCiphParam vGCS_CipherParams optional // VGCS ciphering parameters O TLV [3-15] + VGCSCiphParam vGCS_CipherParams optional, // VGCS ciphering parameters O TLV [3-15] + ExtendedTSCSet xtdedTSC_BeforeTime optional, // extended TSC Set before time O TV [2] @sic R5s150329 Baseline Moving sic@ + ExtendedTSCSet xtdedTSC_AfterTime optional // extended TSC Set after time O TV [2] @sic R5s150329 Baseline Moving sic@ +}; + +// ============================================================================= +// Structured Type Definition +// 3GPP TS 44.018 clause 10.5.2.82 +// ----------------------------------------------------------------------------- +type record ExtendedTSCSet { + IEI8_Type iei, + B3_Type secondPS_Domain_TSC_Value, + B1_Type secondPS_Domain_TSC_Set, + B1_Type primePS_Domain_TSC_Set, + B1_Type secondPS_Domain_TSC_Assigned, + B2_Type cs_Domain_TSC_Set }; // ============================================================================= @@ -5107,7 +5473,7 @@ type record CHANNELRELEASE { TalkerPriorityStatus talkerPriorityStatus optional, // Talker Priority Status O TLV [3] VGCS_AMRConfig vGCS_AMRConfig optional, // VGCS AMR Config O TLV [3] IndividualPriorities individPrior optional // Individual Priorities O TLV [3-?] -}; +}with { encode "GSM Spare Padding Rule2"} // ============================================================================= // PDU Type Definition @@ -5203,7 +5569,8 @@ type record DTMASSIGNMENTCOMMAND { MobileAlloc mobileAllocC2 optional, // mobile allocation C2 C TLV [3..10] IEI=18 FreqList freqListC2 optional, // frequency list C2 C TLV [4..132] IEI=19 RRPacketDownlinkAssignment2 dlPktChAssign2 optional, // downlink Packet Channel Assignment O TLV [3..n] IEI=20 - ChannelDescr3 ch1DescrC2 optional // description of the 1st channel, before time O TV [3] IEI=21 + ChannelDescr3 ch1DescrC2 optional, // description of the 1st channel, before time O TV [3] IEI=21 + ExtendedTSCSet xtdedTSC optional // extended TSC Set before time C TV [2] @sic R5s150329 Baseline Moving sic@ }; type record GPRSBroadCastInfo { @@ -5255,7 +5622,7 @@ type record PSHANDOVERACCESS_11Bit { // ----------------------------------------------------------------------------- type record INTERSYSTEMTOUTRANHANDOVERCOMMAND { SkipIndicator skipIndicator, //BITSTRING [4] - ProtocolDiscriminator rrProtocolDiscriminator, //BITSTRING [4] + ProtocolDiscriminator rRProtocolDiscriminator, //BITSTRING [4] @sic R5s150329 Baseline Moving sic@ MessageType msgType, //BITSTRING [8] octetstring hoCmd, //M OCTETSTRING LV [2-n] CNtoMSTransparentInfo cnToMSInfo optional //O TLV [3-n] @@ -5267,10 +5634,10 @@ type record INTERSYSTEMTOUTRANHANDOVERCOMMAND { // ----------------------------------------------------------------------------- type record INTERSYSTEMTOEUTRANHANDOVERCOMMAND { SkipIndicator skipIndicator, //BITSTRING [4] - ProtocolDiscriminator rrProtocolDiscriminator, //BITSTRING [4] + ProtocolDiscriminator rRProtocolDiscriminator, //BITSTRING [4] @sic R5s150329 Baseline Moving sic@ MessageType msgType, //BITSTRING [8] octetstring hoCmd, //M OCTETSTRING LV [2-n] - CNtoMSTransparentInfo cnToMSInfo optional //M LV [2-n] + CNtoMSTransparentInfo cnToMSInfo optional //O TLV [3-n] }; // ============================================================================= @@ -5279,7 +5646,7 @@ type record INTERSYSTEMTOEUTRANHANDOVERCOMMAND { // ----------------------------------------------------------------------------- type record HANDOVERCOMMAND { SkipIndicator skipIndicator, //BITSTRING [4] - ProtocolDiscriminator rrProtocolDiscriminator, //BITSTRING [4] + ProtocolDiscriminator rRProtocolDiscriminator, //BITSTRING [4] @sic R5s150329 Baseline Moving sic@ MessageType msgType, //BITSTRING [8] CellDescr cellDescr, //M OCTETSTRING [2] ChannelDescr ch1Descr_at, //description of the 1st channel, after time M OCTETSTRING [3] @@ -5317,7 +5684,9 @@ type record HANDOVERCOMMAND { DynaARFCN_Mapping dynaARFCN_Mapping optional, //dynamic ARFCN mapping O TLV [6..34] VGCSCiphParam vGCSCipherParams optional, // VGCS Ciphering Parameters O TLV [3-15] DedicatedServiceInfo dedServiceInfo optional,// Dedicated Service Info O TV 2 - PLMNIndex plmnIndex optional // PLMN Index O TV 1 IEI = A @sic R5s130195 Baseline Moving sic@ + PLMNIndex plmnIndex optional, // PLMN Index O TV 1 IEI = A @sic R5s130195 Baseline Moving sic@ + ExtendedTSCSet xtdedTSC_BeforeTime optional, // extended TSC Set before time O TV [2] @sic R5s150329 Baseline Moving sic@ + ExtendedTSCSet xtdedTSC_AfterTime optional // extended TSC Set after time O TV [2] @sic R5s150329 Baseline Moving sic@ }; // ============================================================================= @@ -5327,7 +5696,7 @@ type record HANDOVERCOMMAND { // ----------------------------------------------------------------------------- type record HANDOVERCOMPLETE { SkipIndicator skipIndicator, //BITSTRING [4] - ProtocolDiscriminator rrProtocolDiscriminator, //BITSTRING [4] + ProtocolDiscriminator rRProtocolDiscriminator, //BITSTRING [4] @sic R5s150329 Baseline Moving sic@ MessageType msgType, //BITSTRING [8] RR_Cause rrCau, //OCTETSTRING [1] MobileTimeDiff mobileObservedTimeDiff optional, // TLV OCTETSTRING [5] IEI=77 @@ -5341,7 +5710,7 @@ type record HANDOVERCOMPLETE { // ----------------------------------------------------------------------------- type record HANDOVERFAILURE { SkipIndicator skipIndicator, //BITSTRING [4] - ProtocolDiscriminator rrProtocolDiscriminator, //BITSTRING [4] + ProtocolDiscriminator rRProtocolDiscriminator, //BITSTRING [4] @sic R5s150329 Baseline Moving sic@ MessageType msgType, //BITSTRING [8] RR_Cause rrCau, //OCTETSTRING [1] PS_Cause psCau optional //O TV OCTETSTRING [1] @@ -5366,7 +5735,8 @@ type record IMMEDIATEASSIGNMENT { TA ta, // timing advance M OCTETSTRING [1] MobileAlloc mobileAlloc, // mobile allocation, M OCTETSTRING [1..9] StartingTime startingTime optional, // starting time O OCTETSTRING [3] - IARO iaroct optional // IA rest octets / frequency parameter, before time M + IARO iaroct optional, // IA rest octets / frequency parameter, before time M + ExtendedTSCSet xtdedTSC optional // extended TSC Set before time O TV [2] @sic R5s150329 Baseline Moving sic@ }with { encode "GSM Spare Padding Rule2"} // ============================================================================= @@ -5447,7 +5817,10 @@ type record MEASUREMENTINFORMATION { B1_Type csg3GMask optional, // not present if r5Mask or r7Mask or r8Mask or r9Mask = 0 CSG_3G_Descr csg_3GDescr optional, // not present if r5Mask or r7Mask or r8Mask or r9Mask or csg3GMask = 0 B1_Type csgCellRptMask optional, // not present if r5Mask or r7Mask or r8Mask or r9Mask = 0 - UTRAN_CSGCellReportDescr utranCSGCellsReport optional // not present if r5Mask or r7Mask or r8Mask or r9Mask or csgCellRptMask = 0 + UTRAN_CSGCellReportDescr utranCSGCellsReport optional, // not present if r5Mask or r7Mask or r8Mask or r9Mask or csgCellRptMask = 0 + LH_B1_Type r11Mask optional, // not present if r5Mask or r7Mask or r8Mask or r9Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type xtdEARFCNMask optional, // not present if r5Mask or r7Mask or r8Mask or r9Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + XTD_EARFCN_NC_Descr xtdEARFCN_NC_Descr optional // not present if r5Mask or r7Mask or r8Mask or r9Mask or r11Mask or xtdEARFCNMask = 0 @sic R5s150329 Baseline Moving sic@ }; // ============================================================================= // PDU Type Definition @@ -5496,6 +5869,7 @@ type record PSHANDOVERCOMMAND { B2_Type aGbModeMask optional, // only present if globalTFImask=0 and payloadMask=00 PSHO_RResource psHORadioResource optional, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=00 PSHO_RResource2 psHORadioResource2 optional, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=01 + PSHO_RResource3 psHORadioResource3 optional, // only present if globalTFImask=0 and payloadMask=00 and aGbModeMask=10 @sic R5s150329 Baseline Moving sic@ B1_Type nasMask optional, // only present if globalTFImask=0 and payloadMask=00 B7_Type nasContainerLength optional, // only present if globalTFImask=0 and payloadMask=00 and nasMask=1 octetstring nasContainerData optional, // only present if globalTFImask=0 and payloadMask=00 and nasMask=1 @@ -5531,7 +5905,12 @@ type record PSHANDOVERCOMMAND { RptdAddPFC emsrAddPFC3_ul optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or if ulEMSRMask = 0 @sic R5s120178 sic@ B1_Type r11Mask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s130195 Baseline Moving sic@ B1_Type plmnMask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or if r10Mask = 0 or r11Mask = 0 @sic R5s130195 Baseline Moving sic@ - B3_Type plmnIndexSelected optional // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or if plmnMask = 0 @sic R5s130195 Baseline Moving sic@ + B3_Type plmnIndexSelected optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or if plmnMask = 0 @sic R5s130195 Baseline Moving sic@ + B1_Type r12Mask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type primaryTSC_Set optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type dlTSCMask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type secondaryTSC_Set optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + B3_Type secondaryTSC_Value optional // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ } with { encode "GPRSPadding Rule1" } // ============================================================================= @@ -5605,6 +5984,11 @@ type record PACKETDOWNLINKASSIGNMENT { RptdAddPFC emsrAddPFC1 optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC2 optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ RptdAddPFC emsrAddPFC3 optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s120178 sic@ + B1_Type r12Mask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type primaryTSC_Set optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type dlTSCMask optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type secondaryTSC_Set optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ + B3_Type secondaryTSC_Value optional, // not present if r99mask = 0 or if r6Mask = 0 or if r7Mask = 0 or if r9Mask = 0 or r10Mask = 0 or r12Mask = 0 or dlTSCMask = 0 @sic R5s150329 Baseline Moving sic@ PktDlDualCarrier dualCarrier optional // only present if messageEscape = 1 }with { encode "GPRSPadding Rule1" } @@ -5649,9 +6033,14 @@ type record PACKETCELLCHANGEORDER { B4_Type gRNTIExtension optional, // not present if cellTypeMask or r5Mask or gRNTIXMask = 0 B1_Type r8Mask optional, // not present if cellTypeMask or r5Mask = 0 B1_Type eutranMask optional, // not present if cellTypeMask r5Mask or r8Mask = 0 - EUTRAN_TargetCell eutranTargetCell optional, // not present if cellTypeMask r5Mask or r8Mask or eutranMask = 0 + EUTRAN_TargetCell eutranTargetCell optional, // not present if cellTypeMask r5Mask or r8Mask or eutranMask = 0 B1_Type individualMask optional, // not present if cellTypeMask r5Mask or r8Mask = 0 - IndividualPriorities individualPrior optional // not present if cellTypeMask r5Mask or r8Mask or individualMask = 0 + IndividualPriorities individualPrior optional, // not present if cellTypeMask r5Mask or r8Mask or individualMask = 0 + B1_Type r11Mask optional, // not present if cellTypeMask or r5Mask or r8Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type xtdEutranMask optional, // not present if cellTypeMask r5Mask or r8Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + ExtdEUTRAN_Target xtdEutranTargetCell optional, // not present if cellTypeMask r5Mask or r8Mask or r11Mask or xtdEutranMask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type eutranIPPMask optional, // not present if cellTypeMask r5Mask or r8Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + EUTRAN_IPP_Descr xtdEutranIPP optional // not present if cellTypeMask r5Mask or r8Mask or r11Mask or eutranIPPMask = 0 @sic R5s150329 Baseline Moving sic@ }with { encode "GPRSPadding Rule1" } // ============================================================================= @@ -5720,7 +6109,12 @@ type record PACKETMEASUREMENTORDER { B1_Type enhancedMask optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask = 0 ENH_CellReselectParamsList enh_CellReselect optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or enhancedMask = 0 B1_Type csgCellRptMask optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask = 0 - CSG_CellReportDescr csgCellRpt optional // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or csgCellRptMask = 0 + CSG_CellReportDescr csgCellRpt optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or csgCellRptMask = 0 + B1_Type r11Mask optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type ippMask optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + EUTRAN_IPP_Descr eutranIPP optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or r11Mask or ippMask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type encMask optional, // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + EUTRAN_NC_IE eutranNC optional // not present if r98Mask or r99Mask or r4Mask or r5Mask or r6Mask or r7Mask or r8Mask or r9Mask or r11Mask or encMask = 0 @sic R5s150329 Baseline Moving sic@ }with { encode "GPRSPadding Rule1" } // ============================================================================= @@ -5755,6 +6149,8 @@ type record PACKETMEASUREMENTREPORT { UTRANCSGReport utranCSGReport optional, // not present if r99Mask or r5Mask or r8Mask or r9Mask or utranMask = 0 B1_Type eutranMask optional, // not present if r99Mask or r5Mask or r8Mask or r9Mask = 0 EUTRANCSGReport eutranCSGReport optional, // not present if r99Mask or r5Mask or r8Mask or r9Mask or eutranMask = 0 + B1_Type r11Mask optional, // not present if r99Mask or r5Mask or r8Mask or r9Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type si23BA_Used optional, // not present if r99Mask or r5Mask or r8Mask or r9Mask or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ bitstring paddingBits optional // uplink, so have to receive this in TTCN } // @sic R5s120715 sic@ @@ -5844,6 +6240,13 @@ type record PACKETCELLCHANGENOTIFICATION { CCN3G_MeasRptList ccn3GMeasReport optional, // not present if r6Mask = 0 @sic R5s120519 sic@ B1_Type r10Mask optional, // not present if r6Mask = 0 @sic R5s120178 Baseline Moving sic@ B1_Type csgDiscriminator optional, // not present if r6Mask = 0 or r10Mask = 0 @sic R5s120178 Baseline Moving sic@ + B1_Type r11Mask optional, // not present if r6Mask = 0 or r10Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type xtdEARFCNMask optional, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + ExtdEUTRAN_Target xtdEutranTarget optional, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 or xtdEARFCNMask = 0 @sic @sic R5s150329 Baseline Moving sic@ + B6_Type reportingQuantity optional, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 or xtdEARFCNMask = 0 not included in the ExtdEUTRAN_Target IE @sic @sic R5s150329 Baseline Moving sic@ + B1_Type r12Mask optional, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type eTFIMask optional, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 @sic R5s150329 Baseline Moving sic@ + B3_Type dl_eTFI optional, // not present if r6Mask = 0 or r10Mask = 0 or r11Mask = 0 or r12Mask = 0 or eTFIMask = 0 @sic R5s150329 Baseline Moving sic@ bitstring paddingBits optional // uplink, so have to receive this in TTCN } // @sic R5s120715 sic@ @@ -5998,9 +6401,12 @@ type record PACKETUPLINKASSIGNMENT { B7_Type pFI optional, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 and pfiMask = 0 B1_Type rlcModeMask optional, // not present if r99Mask=0, r5Mask=0 and r6Mask = 0 B1_Type rlcMode optional, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 and rlcModeMask = 0 + B1_Type r12Mask optional, // not present if r99Mask=0, r5Mask=0 or r6Mask = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type primaryTSC_Set optional, // not present if r99Mask=0, r5Mask=0, r6Mask = 0 or r12Mask = 0 @sic R5s150329 Baseline Moving sic@ B2_Type mask optional, // only present if EGPRSmask = 1 EGPRSPktUplinkAssigment eGPRSmessage optional, // only present if EGPRSmask=1 and mask = 00 - PktUlDualCarrier dualCarrier optional // only present if EGPRSmask = 1 and mask = 01 + PktUlDualCarrier dualCarrier optional, // only present if EGPRSmask = 1 and mask = 01 + PktUlMultiCarrier multiCarrier optional // only present if EGPRSmask = 1 and mask = 10 @sic R5s150329 Baseline Moving sic@ }with { encode "GPRSPadding Rule1" } // ============================================================================= @@ -6064,7 +6470,9 @@ type record PACKETRESOURCEREQUEST { EGPRSTimeslotLinkQualityMeas eGPRSTNLinkQual2 optional, // not present if r99mask or if mask6 or rel7mask or mask13 = 0 B1_Type rel10mask optional, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask = 0 @sic R5s120178 sic@ B1_Type lowAccessPrioritySig optional, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask or rel10Mask = 0 @sic R5s120178 sic@ - bitstring sparePadding optional // Uplink message + B1_Type rel12mask optional, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask or rel10Mask = 0 @sic R5s150329 Baseline Moving sic@ + B3_Type eTFI optional, // not present if r99mask or rel5mask or mask9 or rel6mask or rel7mask or rel10Mask or rel12Mask = 0 @sic R5s150329 Baseline Moving sic@ + bitstring sparePadding optional // Uplink message } // @sic R5s120715 sic@ // ============================================================================= @@ -6139,7 +6547,6 @@ type record PACKETCSCOMMAND { octetstring containerData }with { encode "GPRSPadding Rule1" } - // ============================================================================= // PDU Type Definition // RR UTRAN CLASSMARK CHANGE ue/ms -> ntw 3GPP TS 44.018 clause 9.1.11a @@ -6605,6 +7012,7 @@ type union L2DataReqType { CONNECTACKNOWLEDGE connectAcknowledge, DISCONNECTdl disconnectdl, HANDOVERCOMMAND handoverCommand, + INTERSYSTEMTOEUTRANHANDOVERCOMMAND handoverToEutranCommand, INTERSYSTEMTOUTRANHANDOVERCOMMAND handoverToUtranCommand, LOCATIONUPDATINGACCEPT locUpdAccept, RELEASECOMPLETE releaseComplete, diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_ASP_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_ASP_Templates.ttcn similarity index 77% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_ASP_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_ASP_Templates.ttcn index 94e7d10..f951e73 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_ASP_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_ASP_Templates.ttcn @@ -2,39 +2,38 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /******************************************************************************/ module IMS_ASP_Templates { import from LibSip_SIPTypesAndValues all; import from IP_ASP_TypeDefs all; import from IMS_ASP_TypeDefs all; - import from CommonDefs all; //**************************************************************************** // ASPs to send/receive IMS messages //---------------------------------------------------------------------------- template (value) IMS_RoutingInfo_Type cs_IMS_RoutingInfo(InternetProtocol_Type p_Protocol, - template (omit) IMS_ProtectedUnprotected_Type p_ProtectedUnprotected := omit, + template (omit) IMS_SecurityContextEnum_Type p_SecurityContextEnum := omit, template (omit) IP_AddrInfo_Type p_UE_Address := omit, template (omit) IP_AddrInfo_Type p_NW_Address := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ Protocol := p_Protocol, - Security := p_ProtectedUnprotected, + Security := p_SecurityContextEnum, UE_Address := p_UE_Address, NW_Address := p_NW_Address }; template (present) IMS_RoutingInfo_Type cr_IMS_RoutingInfo(template (present) InternetProtocol_Type p_Protocol := ?, - template IMS_ProtectedUnprotected_Type p_ProtectedUnprotected := *) := // @sic R5s130133 additional change 1; R5s130187 sic@ - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template IMS_SecurityContextEnum_Type p_SecurityContextEnum := *) := // @sic R5s130133 additional change 1; R5s130187 sic@ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Protocol := p_Protocol, - Security := p_ProtectedUnprotected, + Security := p_SecurityContextEnum, UE_Address := *, // @sic R5s120907 change 1 sic@ NW_Address := * // @sic R5s120907 change 1 sic@ }; @@ -50,7 +49,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Register_Request(template (present) REGISTER_Request p_RegisterRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Register := p_RegisterRequest @@ -60,7 +59,7 @@ module IMS_ASP_Templates { template (present) IMS_DATA_RSP cr_IMS_DATA_RSP_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ template (present) IMS_DATA_REQ car_IMS_Subscribe_Request(template (present) SUBSCRIBE_Request p_SubscribeRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Subscribe := p_SubscribeRequest @@ -69,7 +68,7 @@ module IMS_ASP_Templates { template (value) IMS_DATA_REQ cas_IMS_Notify_Request(template (value) IMS_RoutingInfo_Type p_RoutingInfo, template (value) NOTIFY_Request p_NotifyRequest) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := p_RoutingInfo, Request := { Notify := p_NotifyRequest @@ -102,7 +101,7 @@ module IMS_ASP_Templates { template (present) IMS_DATA_RSP car_IMS_DATA_RSP(template (present) IMS_RoutingInfo_Type p_RoutingInfo, template (present) IMS_Response_Type p_Response) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ RoutingInfo := p_RoutingInfo, Response := p_Response }; @@ -118,7 +117,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Prack_Request(template (present) PRACK_Request p_PrackRequest) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Prack := p_PrackRequest @@ -126,7 +125,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Refer_Request(template (present) REFER_Request p_ReferRequest) := - { + { /* @status APPROVED (IMS) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Refer := p_ReferRequest @@ -152,7 +151,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Update_Request(template (present) UPDATE_Request p_UpdateRequest := ?) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Update := p_UpdateRequest @@ -221,7 +220,7 @@ module IMS_ASP_Templates { }; template (present) IMS_DATA_REQ car_IMS_Message_Request(template (present) MESSAGE_Request p_MessageRequest := ?) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ RoutingInfo := cr_IMS_RoutingInfo, Request := { Message := p_MessageRequest @@ -230,7 +229,7 @@ module IMS_ASP_Templates { template (value) IMS_DATA_REQ cas_IMS_Message_Request(template (value) IMS_RoutingInfo_Type p_RoutingInfo, template (value) MESSAGE_Request p_MessageRequest ) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ RoutingInfo := p_RoutingInfo, Request := { Message := p_MessageRequest @@ -246,34 +245,4 @@ module IMS_ASP_Templates { } }; - //**************************************************************************** - // Auxiliary function - //---------------------------------------------------------------------------- - /* - * @desc get MessageHeader from given IMS request - * @param p_Request - * @return MessageHeader - * @status APPROVED (IMS_34229) - */ - function f_IMS_Request_GetMessageHeader(IMS_Request_Type p_Request) return MessageHeader - { - var MessageHeader v_MessageHeader; - - if (ischosen(p_Request.Register)) { v_MessageHeader := p_Request.Register.msgHeader; } - else if (ischosen(p_Request.Invite)) { v_MessageHeader := p_Request.Invite.msgHeader; } - else if (ischosen(p_Request.Options)) { v_MessageHeader := p_Request.Options.msgHeader; } - else if (ischosen(p_Request.Bye)) { v_MessageHeader := p_Request.Bye.msgHeader; } - else if (ischosen(p_Request.Cancel)) { v_MessageHeader := p_Request.Cancel.msgHeader; } - else if (ischosen(p_Request.Ack)) { v_MessageHeader := p_Request.Ack.msgHeader; } - else if (ischosen(p_Request.Prack)) { v_MessageHeader := p_Request.Prack.msgHeader; } - else if (ischosen(p_Request.Notify)) { v_MessageHeader := p_Request.Notify.msgHeader; } - else if (ischosen(p_Request.Subscribe)) { v_MessageHeader := p_Request.Subscribe.msgHeader; } - else if (ischosen(p_Request.Publish)) { v_MessageHeader := p_Request.Publish.msgHeader; } - else if (ischosen(p_Request.Update)) { v_MessageHeader := p_Request.Update.msgHeader; } - else if (ischosen(p_Request.Refer)) { v_MessageHeader := p_Request.Refer.msgHeader; } - else if (ischosen(p_Request.Message)) { v_MessageHeader := p_Request.Message.msgHeader; } - else { FatalError(__FILE__, __LINE__, "unknown SIP message"); } - - return v_MessageHeader; - } } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_ASP_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_ASP_TypeDefs.ttcn similarity index 89% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_ASP_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_ASP_TypeDefs.ttcn index f5de504..7b9699b 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_ASP_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_ASP_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-03-03 17:01:01 +0100 (Mon, 03 Mar 2014) $ -// $Rev: 10790 $ +// @version: IWD_15wk38 +// $Date: 2015-06-26 20:08:06 +0200 (Fri, 26 Jun 2015) $ +// $Rev: 13970 $ /******************************************************************************/ module IMS_ASP_TypeDefs { @@ -18,17 +18,17 @@ module IMS_ASP_TypeDefs { // Data ASPs //**************************************************************************** - type enumerated IMS_ProtectedUnprotected_Type {protected, unprotected}; + type enumerated IMS_SecurityContextEnum_Type {unprotected, protectedContext1, protectedContext2}; /* @sic R5-145732: support of second security context sic@ */ type record IMS_RoutingInfo_Type { InternetProtocol_Type Protocol, // UDP or TCP - IMS_ProtectedUnprotected_Type Security optional, // protected or unprotected (in DL omit when IP PTC shall decide what to do) + IMS_SecurityContextEnum_Type Security optional, // protected or unprotected (in DL omit when IP PTC shall decide what to do) IP_AddrInfo_Type UE_Address optional, // sent by the IP PTC when there is an initial request on unprotected connection IP_AddrInfo_Type NW_Address optional // sent by the IP PTC when there is an initial request on unprotected connection }; - type RequestUnion IMS_Request_Type with { encode "SIPCodec"}; // Alias for 'RequestUnion' as defined in LibSip_SIPTypesAndValues - type Response IMS_Response_Type with { encode "SIPCodec"}; // Alias for 'Response' as defined in LibSip_SIPTypesAndValues + type RequestUnion IMS_Request_Type with { encode "SIPCodec"}; // Alias for "RequestUnion" as defined in LibSip_SIPTypesAndValues + type Response IMS_Response_Type with { encode "SIPCodec"}; // Alias for "Response" as defined in LibSip_SIPTypesAndValues type record IMS_DATA_REQ { IMS_RoutingInfo_Type RoutingInfo, @@ -78,7 +78,7 @@ module IMS_ASP_TypeDefs { type record IMS_PortsAndSecurityConfigReq_Type { PortNumber_Type UnprotectedPort_us optional, // 5060 per default - IMS_RegistrationInfo_Type RegistrationInfo + IMS_RegistrationInfo_Type RegistrationInfo optional /* @sic R5s150268 change 3: optional sic@ */ }; type Null_Type IMS_PortsAndSecurityConfigCnf_Type; /* @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: sic@ @@ -88,7 +88,7 @@ module IMS_ASP_TypeDefs { type union IMS_CONFIG_REQ { IPsec_SecurityKeys_Type InstallKey, IMS_PortsAndSecurityConfigReq_Type PortsAndSecurityConfig, - IMS_SecurityInfo_Type SecurityRelease, + Null_Type SecurityRelease, Null_Type RegInfoRelease, /* @sic R5s140123 change 9 sic@ */ Null_Type CloseTCP /* @sic R5s130988 change 1 - MCC160 implementation sic@ */ }; diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonDefs.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonDefs.ttcn similarity index 73% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_CommonDefs.ttcn index a80ae12..d4f0617 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_CommonDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonDefs.ttcn @@ -2,77 +2,70 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-24 13:09:45 +0200 (Sun, 24 Aug 2014) $ -// $Rev: 11892 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module IMS_CommonDefs { import from CommonDefs all; import from Parameters all; - import from IMS_CC_Parameters all; - type enumerated IMS_SecurityScheme_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_SecurityScheme_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ GIBA, /* 34.229-2 Table A.6a Item 1 */ IMS_Security /* 34.229-2 Table A.6a Item 2 */ }; + type enumerated IMS_Emergency_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + NO_EMERGENCY, /* No IMS emergency call */ + REGULAR_EMERGENCY, /* Regular IMS emergency call (normal or limited service) */ + ASSERTED_EMERGENCY /* Asserted emergency call (Non-UE detectable emergency call) */ + }; + type enumerated IMS_CallHoldResume_Type {HOLD, RESUME}; /* @status APPROVED (IMS) */ - const boolean tsc_IMS_SMSoverIMS := false; /* In previous releases 34.229-2 A.4.5/21 (Rel-8) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const boolean tsc_IMS_VideoFeature := false; /* A.12/zz - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - const B128_Type tsc_IMS_AuthRAND := px_eAuthRAND; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const B128_Type tsc_IMS_AuthRAND := px_eAuthRAND; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_Port_ps_NoSec := 5060; const integer tsc_IMS_Port_pc := 5061; /* client port at NW side for security protected IMS signalling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_Port_ps := 5062; /* server port at NW side for security protected IMS signalling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_Port_pc_2 := 5063; /* "new" client port at NW side for security protected IMS signalling: for re-authentication a new client port is needed - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_MediaPort_M1 := 60350; /* RTP port Speech @sic R5s130495 Change 19 sic@ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_MediaPort_M2 := 60352; /* RTP port Video @sic R5s130495 Change 19 sic@ * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const integer tsc_IMS_MediaPort_M3 := 60354; /* RTP port Text @sic R5s130495 Change 19 sic@ - * @status APPROVED (IMS, LTE_A) */ + * @status APPROVED (IMS, LTE, LTE_A) */ const charstring tsc_IMS_Scscf := "scscf@3gpp.org"; - const charstring tsc_IMS_Opaque := "5ccc069c403ebaf9f0171e9517f40e41"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_IMS_RegisterExpiration := "600"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_Opaque := "5ccc069c403ebaf9f0171e9517f40e41"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const charstring tsc_IMS_RegisterExpiration := "600"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5-153254: 600 -> 600000 sic@ */ const charstring tsc_IMS_FeatureParamId_3gpp_icsi_ref := "+g.3gpp.icsi-ref"; /* @sic R5s120530 change 3.6 sic@ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - const charstring tsc_IMS_FeatureParamValue_3gpp_icsi_ref := "urn:urn-7:3gpp-service.ims.icsi.mmtel"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) charstring cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref := f_URL_Encoding(tsc_IMS_FeatureParamValue_3gpp_icsi_ref); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + const charstring tsc_IMS_FeatureParamValue_3gpp_icsi_ref := "urn:urn-7:3gpp-service.ims.icsi.mmtel"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) charstring cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref := f_URL_Encoding(tsc_IMS_FeatureParamValue_3gpp_icsi_ref); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5-142247 URL encoding sic@ */ - const charstring tsc_IMS_UEInstanceId := """"""; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - const charstring tsc_IMS_FeatureCap_SrvccAlerting := "+g.3gpp.srvcc-alerting"; /* @sic R5-142287 change 1, 2 sic@ - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - const charstring tsc_IMS_FinalConferenceUri := "sip:Stf160FinalConf@3gpp.org"; // FFS px_FinalConferenceUri - const charstring tsc_IMS_ConferenceFactoryUri := "sip:Stf160ConfFactory@3gpp.org"; // FFS px_ConferenceFactoryUri - const charstring tsc_IMS_TemporaryConferenceUri := "sip:Stf160TempConf@3gpp.org"; // FFS px_TemporaryConferenceUri + const charstring tsc_IMS_FeatureCap_SrvccAlerting := "+g.3gpp.srvcc-alerting"; /* @sic R5-142287 change 1, 2 sic@ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_FeatureCap_SrvccPreAlerting := "+g.3gpp.ps2cs-srvcc-orig-pre-alerting"; /* @sic R5s140962 sic@ + @status APPROVED (IMS, LTE, LTE_A) */ - const charstring tsc_IMS_PSI_SMSC := "tel:+" & px_SMS_SMSC_InternationalNumber; /* @status APPROVED (IMS) */ - - template (value) charstring cs_IMS_ArbitraryValueFor_gr(charstring p_PublicUserIdentity) := """" & p_PublicUserIdentity & ";gr=urn%3Auuid%3Af81d4fae-7dec-11d0-a765-00a0c91e6bf6"""; /* FFS - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) charstring cs_IMS_TempGRUUForUE(charstring p_HomeDomainName) := """sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@" & p_HomeDomainName & ";gr"""; /* FFS - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_PubGRUU_UriParameterValue := "urn%3Auuid%3Af81d4fae-7dec-11d0-a765-00a0c91e6bf6"; /* arbitrary value @sic R5s150721 sic@ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const integer tsc_IMS_RSeqNumFor183 := 121; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE, LTE_IRAT) */ const charstring tsc_IMS_Emergency_TelUri := "tel:112"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const charstring tsc_IMS_CalleeTelUri := "tel:+4989364072"; //FFS - const charstring tsc_IMS_UrnServiceSos := "urn:service:sos"; /* @status APPROVED (IMS) */ + const charstring tsc_IMS_UrnServiceSos := "urn:service:sos"; /* @status APPROVED (IMS, IMS_IRAT) */ const charstring tsc_IMS_UrnServiceSos_Ambulance := tsc_IMS_UrnServiceSos & "." & "ambulance"; /* @status APPROVED (IMS) */ const charstring tsc_IMS_CallerDomain := "stf160.etsi.org"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ @@ -81,11 +74,11 @@ module IMS_CommonDefs { const charstring tsc_P_CSCF_DomainName := "3gpp.org"; - const charstring tsc_IMS_ExpiresDef := "600000"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_IMS_ExpiresDef := "600000"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const charstring tsc_IMS_Ecscf := "ecscf.other.com"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const float tsc_IMS_WaitForTcpClose := 3.0; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const float tsc_IMS_WaitForTcpClose := 3.0; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc build up receive template for (case-insensitve) token @@ -109,7 +102,7 @@ module IMS_CommonDefs { * @desc convert IPCAN_RAN_Type to charstring * @param p_RAN_Type * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RANType2Charstring(IPCAN_RAN_Type p_RAN_Type) return charstring { @@ -131,7 +124,7 @@ module IMS_CommonDefs { * @param p_Method * @param p_FromOrTo (default value: "To") * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_GenerateTag(charstring p_Method, charstring p_FromOrTo := "To") return charstring @@ -140,21 +133,6 @@ module IMS_CommonDefs { return "abc-" & p_Method & "-" & p_FromOrTo & "tag"; } - /* - * @desc return Security Scheme to be used - * @param p_IsGiba - * @return IMS_SecurityScheme_Type - * @status APPROVED (IMS) - */ - function f_IMS_SecurityScheme(boolean p_IsGiba) return IMS_SecurityScheme_Type - { - var IMS_SecurityScheme_Type v_SecurityScheme := IMS_Security; - if (p_IsGiba) { - v_SecurityScheme := GIBA; - } - return v_SecurityScheme; - } - /* * @desc restore URL-encoded (or "percent-encoded") URL: * replace all "%XY" with the the respective character corresponding to the hex code XY @@ -189,7 +167,7 @@ module IMS_CommonDefs { * @desc returns p_Char if it is not a reserved character or the encoded value * @param p_Char * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_URL_Encoding_SingleChar(Char1_Type p_Char) return charstring { @@ -210,7 +188,7 @@ module IMS_CommonDefs { * reserved characters acc. to RFC 3986 are replaced by their percent-code * @param p_Url * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_URL_Encoding(charstring p_Url) return charstring { @@ -222,5 +200,40 @@ module IMS_CommonDefs { } return v_EncodedUrl; } + + /* + * @desc returns p_Char if it is not a reserved character or the corresponding escape sequence + * @param p_Char + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_HTML_Encoding_SingleChar(Char1_Type p_Char) return charstring + { + var Char1List_Type v_ReservedChars := {"""", "&", "'", "<", ">"}; /* NOTE: may not be complete */ + var CharStringList_Type v_EscapeString := {"quot", "amp", "apos", "lt", "gt"}; + var integer i; + for (i:=0; i < lengthof(v_ReservedChars); i:=i+1) { + if (v_ReservedChars[i] == p_Char) { + return "&" & v_EscapeString[i] & ";"; + } + } + return p_Char; + } + /* + * @desc HTML encoding: reserved characters are replaced by their escape sequence + * @param p_String + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_HTML_Encoding(charstring p_String) return charstring + { + var charstring v_EncodedString := ""; + var integer i; + + for (i:=0; i < lengthof(p_String); i:=i+1) { + v_EncodedString := v_EncodedString & fl_HTML_Encoding_SingleChar(p_String[i]); + } + return v_EncodedString; + } } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonFunctions.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_CommonFunctions.ttcn index 04d9a89..6e800dd 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-01 13:53:52 +0200 (Thu, 01 May 2014) $ -// $Rev: 11225 $ +// @version: IWD_15wk38 +// $Date: 2015-04-25 09:25:26 +0200 (Sat, 25 Apr 2015) $ +// $Rev: 13507 $ /******************************************************************************/ module IMS_CommonFunctions { @@ -32,7 +32,7 @@ module IMS_CommonFunctions { * Adapted from Java Base64 implementation in en.wikibooks.org * @param p_Bitstring * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Bitstring2Base64 (bitstring p_Bitstring) return charstring { @@ -71,7 +71,7 @@ module IMS_CommonFunctions { * @param p_Rand * @param p_AuthenticationError (default value: noError) * @return Common_AuthenticationParams_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_AuthenticationInit(template (value) B128_Type p_Rand, AuthenticationError_Type p_AuthenticationError := noError) return Common_AuthenticationParams_Type @@ -87,7 +87,7 @@ module IMS_CommonFunctions { * @param p_XRES * @param p_XRESLength .. length of XRES in octets * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Authorization_CheckDigestResponse(charstring p_Method := "REGISTER", CommaParam_List p_DigestResponse, @@ -154,7 +154,7 @@ module IMS_CommonFunctions { * @desc convert transport protocol to string to be used in IMS messages * @param p_Protocol * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_ConvertTransportProtocolToString(InternetProtocol_Type p_Protocol) return charstring { @@ -177,14 +177,14 @@ module IMS_CommonFunctions { * NOTE: in DL we never send any IP addresses * @param p_RoutingInfo_UL * @return template (value) IMS_RoutingInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RoutingInfo_ULtoDL(IMS_RoutingInfo_Type p_RoutingInfo_UL) return template (value) IMS_RoutingInfo_Type { return cs_IMS_RoutingInfo(p_RoutingInfo_UL.Protocol, p_RoutingInfo_UL.Security, - p_RoutingInfo_UL.UE_Address, // may be omit - p_RoutingInfo_UL.NW_Address); // may be omit + p_RoutingInfo_UL.UE_Address, // may be omit + p_RoutingInfo_UL.NW_Address); // may be omit } //---------------------------------------------------------------------------- @@ -225,13 +225,15 @@ module IMS_CommonFunctions { //---------------------------------------------------------------------------- /* - * @desc build up home network domain name derived from IMSI acc. to 23.003 clause 13.2 - * @param p_IMSI (default value: px_IMSI_Def) + * @desc build up a domain name derived from IMSI acc. to 23.003 + * @param p_FirstLabel + * @param p_IMSI * @param p_LengthOfMNC (default value: 2) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_HomeDomainNameDerivedFromIMSI(hexstring p_IMSI, + function f_IMS_3gppDomainNameDerivedFromIMSI(charstring p_FirstLabel, + hexstring p_IMSI, integer p_LengthOfMNC := 2) return charstring { /* NOTE: the length of the MNC in general cannot be derived from the IMSI (some countries have MNCs with 2 and 3 digits; see e.g "Annex to ITU Operational Bulletin No. 992 - 15.XI.2011") * instead the length of the MNC is stored in the EF-AD file on the SIM card (see 31.102 cl. 4.2.18) and acc. to 31.121 the MNC has 2 digits. */ @@ -242,7 +244,20 @@ module IMS_CommonFunctions { if (p_LengthOfMNC == 2) { v_MNC := "0" & v_MNC; } - return "ims.mnc" & v_MNC & ".mcc" & v_MCC & ".3gppnetwork.org"; + return p_FirstLabel & ".mnc" & v_MNC & ".mcc" & v_MCC & ".3gppnetwork.org"; + } + + /* + * @desc build up home network domain name derived from IMSI acc. to 23.003 clause 13.2 + * @param p_IMSI + * @param p_LengthOfMNC (default value: 2) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_HomeDomainNameDerivedFromIMSI(hexstring p_IMSI, + integer p_LengthOfMNC := 2) return charstring + { + return f_IMS_3gppDomainNameDerivedFromIMSI("ims", p_IMSI, p_LengthOfMNC); } /* @@ -250,7 +265,7 @@ module IMS_CommonFunctions { * @param p_IMSI (default value: px_IMSI_Def) * @param p_LengthOfMNC (default value: 2) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PrivateUserIdentityDerivedFromIMSI(hexstring p_IMSI, integer p_LengthOfMNC := 2) return charstring @@ -264,7 +279,7 @@ module IMS_CommonFunctions { * @param p_IMSI (default value: px_IMSI_Def) * @param p_LengthOfMNC (default value: 2) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_TemporaryPublicUserIdentity(hexstring p_IMSI, integer p_LengthOfMNC := 2) return charstring diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonSRVCC.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonSRVCC.ttcn similarity index 55% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_CommonSRVCC.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_CommonSRVCC.ttcn index ff9ebca..fb83bed 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonSRVCC.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonSRVCC.ttcn @@ -2,15 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ /******************************************************************************/ module IMS_CommonSRVCC { + import from IMS_CommonDefs all; import from IMS_Component all; import from IMS_ASP_TypeDefs all; import from IP_ASP_TypeDefs all; @@ -24,7 +25,6 @@ module IMS_CommonSRVCC { import from IMS_SIP_Templates all; import from IMS_MessageBody_Templates all; import from IMS_CommonFunctions all; - import from IMS_CommonParameters all; import from IMS_SDP_Messages all; import from IMS_Component all; import from IMS_SDP_Templates all; @@ -36,16 +36,92 @@ module IMS_CommonSRVCC { noReInvite }; + //============================================================================ + /* + * @desc default handler to be activated on top of regular default handler to check if Invite sent for C.24 + * @status APPROVED (LTE_IRAT) + */ + altstep a_IMS_C24_CheckInvite() runs on IMS_PTC + { + [] IMS_Server.check(receive(car_IMS_Invite_Request())) {} // no repeat because need to drop out of calling alt statement + [] any timer.timeout {} // no repeat because need to drop out of calling alt statement + } + + /* + * @desc 34.229-1 Annex C.24 - Step 1: INVITE with condition A5 + * @param p_OtherCalleeUri + * @param p_WaitDuration (default value: omit) + * @param p_GeolocationInfoAvailable (default value: false) + * @return template (omit) IMS_InviteRequestWithSdp_Type + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_SRVCC_ReInvite_AnnexC24_Step1(charstring p_OtherCalleeUri, + template (omit) float p_WaitDuration := omit, + boolean p_GeolocationInfoAvailable := false) + runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type + { /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer sic@ */ + /* @sic R5s140331 change 8: parameter p_WaitDuration sic@ */ + /* @sic R5-151957: parameter p_OtherCalleeUri sic@ */ + var template (present) SDP_Message v_SDP_MessageRX := f_IMS_BuildSDP_AnnexC24_Step1(); + var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; + var IMS_DATA_REQ v_IMS_DATA_REQ_Val; + var SDP_Message v_SDP_Message; + var template (present) SipUrl v_CalleeSipUrl := f_SIP_BuildSipUri_RX(p_OtherCalleeUri, *); /* @sic R5-151957 sic@ */ + + v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A5, -, -, v_CalleeSipUrl, p_WaitDuration, -, p_GeolocationInfoAvailable); + if (isvalue(v_IMS_DATA_REQ)) { + v_IMS_DATA_REQ_Val := valueof(v_IMS_DATA_REQ); + v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ_Val.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); + + return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ_Val, v_SDP_Message); + } + return omit; + } + + //============================================================================ + /* + * @desc 34.229-1 Annex C.31 - Step 1: INVITE with condition A5 + * @param p_OtherCalleeUri + * @param p_GeolocationInfoAvailable (default value: false) + * @return IMS_InviteRequestWithSdp_Type + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_SRVCC_ReInvite_AnnexC31_Step1(charstring p_OtherCalleeUri, + boolean p_GeolocationInfoAvailable := false) + runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { /* @sic R5s140020, R5-140799: new function sic@ */ + /* @sic R5-140799 sic@ */ + /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ + /* @sic R5-150706: new parameter p_OtherCalleeUri to hand over the contact URI being used in the intial INVITE (MT call) sic@ */ + + var template (omit) float v_WaitDuration := omit; // no wait duration + var template (present) SDP_Message v_SDP_MessageRX := f_IMS_BuildSDP_AnnexC31_Step1(); + var template (present) MessageHeader v_MessageHeader := cr_MessageHeader_Dummy; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var SDP_Message v_SDP_Message; + var template (present) SipUrl v_CalleeSipUrl := f_SIP_BuildSipUri_RX(p_OtherCalleeUri, *); /* @sic R5s150204 sic@ */ + + v_MessageHeader.reason := f_IMS_SIP_Reason487_RX(); // @sic R5s140370 change 3 - MCC160 implementation sic@ + + v_IMS_DATA_REQ := valueof(f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A5, v_MessageHeader, -, v_CalleeSipUrl, v_WaitDuration, -, p_GeolocationInfoAvailable)); + v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); + + return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ, v_SDP_Message); + } + //---------------------------------------------------------------------------- /* * @desc Procedure acc. to 34.229-1 C.24 + * @param p_OtherCalleeUri * @param p_WaitDuration (default value: omit) * @return template (omit) IMS_InviteRequestWithSdp_Type * @status APPROVED (LTE_IRAT) */ - function f_IMS_SRVCC_ReInvite_AnnexC24(template (omit) float p_WaitDuration := omit) + function f_IMS_SRVCC_ReInvite_AnnexC24(charstring p_OtherCalleeUri, + template (omit) float p_WaitDuration := omit) runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type { /* @sic R5s140331 change 7: parameter p_WaitDuration; return value sic@ */ + /* @sic R5-151957: new parameter p_OtherCalleeUri to hand over the contact URI being used in the intial INVITE (MT call) sic@ */ var template (omit) IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdpVal; var INVITE_Request v_InviteRequest; @@ -54,9 +130,10 @@ module IMS_CommonSRVCC { var template (value) MessageHeader v_MessageHeader_InviteResponse_200; var template (present) MessageHeader v_MessageHeader_Ack; var template (present) SipUrl v_CalleeContactUri; + var template (value) SDP_Message v_SDP_Answer; // Step 1 - v_InviteRequestWithSdp := f_IMS_SRVCC_ReInvite_AnnexC24_Step1(p_WaitDuration); + v_InviteRequestWithSdp := f_IMS_SRVCC_ReInvite_AnnexC24_Step1(p_OtherCalleeUri, p_WaitDuration); if (isvalue(v_InviteRequestWithSdp)) { v_InviteRequestWithSdpVal := valueof(v_InviteRequestWithSdp); v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdpVal.RoutingInfo); @@ -66,11 +143,18 @@ module IMS_CommonSRVCC { // Step 2. SS sends a 100 Trying provisional response. IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); - // Step 2. SS sends a 200 OK - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader_Invite); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); + // Step 3. SS sends a 200 OK + + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader_Invite, + cs_ContentTypeSDP, /* @sic R5-151957 sic@ */ + -, + p_OtherCalleeUri); /* @sic R5-151957: p_OtherCalleeUri sic@ */ + v_SDP_Answer := f_IMS_BuildSDP_AnnexC24_Step3(v_InviteRequestWithSdpVal.SdpOffer); /* @sic R5s140020 change 5.2; R5-140799 sic@ */ + + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200, cs_MessageBody_SDP(v_SDP_Answer)))); // @sic R5-151957 sic@ - v_CalleeContactUri := f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri); + // Step 4. UE sends ACK + v_CalleeContactUri := f_SIP_BuildSipUri_RX(p_OtherCalleeUri); /* @sic R5-151957 sic@ */ v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactUri, v_MessageHeader_Ack))); } @@ -79,20 +163,24 @@ module IMS_CommonSRVCC { //---------------------------------------------------------------------------- /* - * @desc Common function For handling IMS signalling of Registration, MT IMS speech call and optional derigstrations + * @desc Common function for handling IMS signalling of Registration, MT IMS speech call and optional deregistration * @param p_ReInviteType (default value: noReInvite) * @param p_WaitDuration (default value: omit) + * @return boolean * @status APPROVED (LTE_IRAT) */ function f_IMS_Generic_Sequence_SRVCC(SRVCC_ReInvite_Type p_ReInviteType := noReInvite, - template (omit) float p_WaitDuration := omit) runs on IMS_PTC + template (omit) float p_WaitDuration := omit) runs on IMS_PTC return boolean { var template (omit) IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdpVal; /* @sic R5w140112: v_InviteRequestWithSdpVal instead of v_InviteRequest sic@ */ var IMS_ResponseWithSdp_Type v_ResponseWithSdp; /* @sic R5w140112 sic@ */ var INVITE_Request v_InviteRequest; var IMS_Response_Type v_SessionInProgress183; - var SipUrl v_ContactUrl; + var SipUrl v_ContactSipUrlUE; + var boolean v_DeregisteredEarly := false; + var default v_C24Check := null; + timer t_C24; f_IMS_PTC_Init(); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // send trigger to EUTRA PTC to indicate start of IMS registration @sic R5s131034 sic@ @@ -106,37 +194,52 @@ module IMS_CommonSRVCC { v_InviteRequest := v_InviteRequestWithSdpVal.Invite; v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdpVal); v_SessionInProgress183 := v_ResponseWithSdp.Response; - v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); + v_ContactSipUrlUE := f_MessageHeader_GetContactSipUrl(v_SessionInProgress183.msgHeader); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdpVal, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_13(v_InviteRequestWithSdpVal, v_ResponseWithSdp); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); select (p_ReInviteType) { case (reInviteC31) { /* @sic R5s140161 change 5.1 sic@ */ f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_SRVCC_ReInvite_AnnexC31(); - f_IMS_CallReleaseMT(v_InviteRequest, v_ContactUrl); /* @sic R5s140579 change 2 sic@ */ + f_IMS_SRVCC_ReInvite_AnnexC31(tsc_IMS_CallerSipAddrStr); /* @sic R5-150706: tsc_IMS_CallerSipAddrStr as used in f_IMS_InviteRequest_MessageHeaderTX sic@ */ + f_IMS_CallReleaseMT(v_InviteRequest, v_ContactSipUrlUE); /* @sic R5s140579 change 2 sic@ */ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); } case (reInviteC24) { /* @sic R5s140259 sic@ */ f_IMS_PTC_SetRanType(UTRAN_FDD); - v_InviteRequestWithSdp := f_IMS_SRVCC_ReInvite_AnnexC24(p_WaitDuration); /* if there is a WaitDuration C.24 is optional and the function returns omit when the timer expires */ - if (isvalue(v_InviteRequestWithSdp)) { /* => v_InviteRequestWithSdp is omit when C.24 did not happen */ - v_InviteRequestWithSdpVal := valueof(v_InviteRequestWithSdp); - v_InviteRequest := v_InviteRequestWithSdpVal.Invite; - v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_InviteRequest.msgHeader); + if (not isvalue(p_WaitDuration)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Need a timer for C.24"); + } + t_C24.start(valueof(p_WaitDuration)); // @sic R5-154047 sic@ + v_C24Check := activate (a_IMS_C24_CheckInvite()); // @sic R5-154047 sic@ + v_DeregisteredEarly := f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-154047 sic@ + deactivate (v_C24Check); // @sic R5-154047 sic@ + if (t_C24.running) { // @sic R5-154047 sic@ + t_C24.stop; + // If timer has not already timed out, then this must be because INVITE was received + v_InviteRequestWithSdp := f_IMS_SRVCC_ReInvite_AnnexC24(tsc_IMS_CallerSipAddrStr); /* Don't need to wait for this now, as have already waited in extra default @sic R5-154047 sic@ + @sic R5-151957: tsc_IMS_CallerSipAddrStr as used in f_IMS_InviteRequest_MessageHeaderTX sic@ */ + if (isvalue(v_InviteRequestWithSdp)) { /* => v_InviteRequestWithSdp is omit when C.24 did not happen */ + v_InviteRequestWithSdpVal := valueof(v_InviteRequestWithSdp); + v_InviteRequest := v_InviteRequestWithSdpVal.Invite; + v_ContactSipUrlUE := f_MessageHeader_GetContactSipUrl(v_InviteRequest.msgHeader); + } + } + if (not v_DeregisteredEarly) { // @sic R5-154047 sic@ + f_IMS_SRVCC_CallReleaseMT_AnnexC36(v_InviteRequest, v_ContactSipUrlUE); /* v_InviteRequest, v_ContactSipUrlUE are either acc. to C.11 or acc. to C.24 (when C.24 happened) + @sic R5-144667 sic@ */ } - f_IMS_SRVCC_CallReleaseMT_AnnexC36(v_InviteRequest, v_ContactUrl); /* v_InviteRequest, v_ContactUrl are either acc. to C.11 or acc. to C.24 (when C.24 happened) - @sic R5-144667 sic@ */ f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); } } + return v_DeregisteredEarly; } //---------------------------------------------------------------------------- @@ -147,28 +250,16 @@ module IMS_CommonSRVCC { */ function f_IMS_BuildSDP_AnnexC28_Step1() runs on IMS_PTC return template (present) SDP_Message { - var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); - var template (present) charstring v_IPAddrOrigin := ?; - var template (present) charstring v_IPAddrConnection := ?; - - var template (present) SDP_attribute_list v_SDP_Attribute_List := { - cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, cr_RTPMAP_AMR_8000), - cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr), - cr_SDP_Attribute_sendrecv, - // precondition attributes: - cr_SDP_Attribute_curr_qos(c_local, c_sendrecv), - cr_SDP_Attribute_curr_qos(c_remote, c_sendrecv), - cr_SDP_Attribute_des_qos(c_mandatory, c_local), - cr_SDP_Attribute_des_qos((c_mandatory, c_optional), c_remote), - * + var template (present) charstring v_Fmt := cr_SDP_AnyMediaFormatDescr; + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio(v_Fmt); + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(v_Fmt, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(v_Fmt), + cr_SDP_Attribute_sendrecv }; - - var template (present) SDP_media_desc v_SDP_Media_Desc; - v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio(cr_SDP_AnyMediaFormatDescr), - cr_SDP_Connection(v_AddrType, v_IPAddrConnection), - cr_SDP_Bandwidth_List_Media(?, ?, ?), - v_SDP_Attribute_List); - return cr_SDP_Message_Def(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_SDP_Media_Desc); + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, (c_optional, c_mandatory)); + + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); } /* @@ -178,7 +269,7 @@ module IMS_CommonSRVCC { * @status APPROVED (LTE_A) */ function f_IMS_SRVCC_AnnexC28(INVITE_Request p_InviteRequest, - template (omit) MessageHeader p_MessageHeader_Response183 := omit) runs on IMS_PTC + template (omit) MessageHeader p_MessageHeader_Response183 := omit) runs on IMS_PTC { var SipUrl v_PeerContactUrl; var IMS_DATA_REQ v_IMS_DATA_REQ; @@ -197,24 +288,30 @@ module IMS_CommonSRVCC { // Step 1. Receive Update v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(p_InviteRequest); v_MessageHeader_Update.reason := f_IMS_SIP_Reason487_RX(); // @sic R5s140370 change 3 sic@ - IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_PeerContactUrl, v_MessageHeader_Update, ?))) -> value v_IMS_DATA_REQ; + IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_PeerContactUrl, v_MessageHeader_Update, cr_MessageBody_SDP))) -> value v_IMS_DATA_REQ; /* @sic R5-150702 change 22: cr_MessageBody_SDP sic@ */ v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; - v_SDP_Offer := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_UpdateRequest.messageBody, f_IMS_BuildSDP_AnnexC28_Step1()); /* @sic R5w140112 sic@ @sic R5s140370 change 3 - MCC160 implementation; R5-142936 sic@ */ + + v_SDP_Offer := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_UpdateRequest.messageBody, f_IMS_BuildSDP_AnnexC28_Step1()); /* @sic R5s150205 (reverting R5-150702 change 22) sic@ */ + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_UpdateRequest.msgHeader.cSeq.seqNumber); /* @sic R5w140112 sic@ @sic R5s140370 change 3 - MCC160 implementation: set cseq in case there has not been any request in UL before sic@ */ // Step 2. Send 200 OK - v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_CommonResponseToOfferTX(v_SDP_Offer)); /* @sic R5w140112 sic@ @sic R5s140370 change 3 - MCC160 implementation sic@ */ + v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_CommonResponseToOfferTX(v_SDP_Offer)); /* @sic R5w140112 sic@ @sic R5s140370 change 3 - MCC160 implementation sic@ + @sic R5-150702 change 22: "o=" line identical to previous SDP sent by SS sic@ + @sic R5s150665: SessVersion to be incremented sic@ */ + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_UpdateRequest.msgHeader, cs_ContentTypeSDP), v_MessageBodyTx))); } //---------------------------------------------------------------------------- /* * @desc Procedure acc. to 34.229-1 C.31 + * @param p_OtherCalleeUri * @status APPROVED (LTE_IRAT) */ - function f_IMS_SRVCC_ReInvite_AnnexC31() runs on IMS_PTC - { + function f_IMS_SRVCC_ReInvite_AnnexC31(charstring p_OtherCalleeUri) runs on IMS_PTC + { /* @sic R5-150706: new parameter p_OtherCalleeUri to hand over the contact URI being used in the intial INVITE (MT call) sic@ */ var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; var MessageHeader v_MessageHeader_Invite; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; @@ -223,9 +320,10 @@ module IMS_CommonSRVCC { var template (value) SDP_Message v_SDP_Answer; var template (present) SipUrl v_CalleeContactUri; var INVITE_Request v_InviteRequest; - + // Step 1 - v_InviteRequestWithSdp := f_IMS_SRVCC_ReInvite_AnnexC31_Step1(); /* @sic R5s140020 change 5.1; @sic R5w140112: IMS_InviteRequestWithSdp_Type sic@ */ + v_InviteRequestWithSdp := f_IMS_SRVCC_ReInvite_AnnexC31_Step1(p_OtherCalleeUri); /* @sic R5s140020 change 5.1; @sic R5w140112: IMS_InviteRequestWithSdp_Type sic@ + @sic R5-150706: p_OtherCalleeUri sic@ */ v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); v_InviteRequest := v_InviteRequestWithSdp.Invite; v_MessageHeader_Invite := v_InviteRequest.msgHeader; @@ -233,12 +331,17 @@ module IMS_CommonSRVCC { // Step 2. SS sends a 100 Trying provisional response. IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); - // Step 2. SS sends a 200 OK - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader_Invite, cs_ContentTypeSDP); /* @sic R5s140020 change 5.2: content type sic@ */ + // Step 3. SS sends a 200 OK + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader_Invite, + cs_ContentTypeSDP, /* @sic R5s140020 change 5.2: content type sic@ */ + -, + p_OtherCalleeUri); /* @sic R5-150706, R5-151957: p_OtherCalleeUri sic@ */ v_SDP_Answer := f_IMS_BuildSDP_AnnexC31_Step3(v_InviteRequestWithSdp.SdpOffer); /* @sic R5s140020 change 5.2; R5-140799 sic@ */ IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200, cs_MessageBody_SDP(v_SDP_Answer)))); - v_CalleeContactUri := f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri); /* @sic R5s140020 change 5.3 sic@ */ + // Step 4. UE sends ACK + v_CalleeContactUri := f_SIP_BuildSipUri_RX(p_OtherCalleeUri); /* @sic R5s140020 change 5.3 sic@ + @sic R5-150706: p_OtherCalleeUri sic@ */ v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactUri, v_MessageHeader_Ack))); } @@ -315,10 +418,10 @@ module IMS_CommonSRVCC { cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Bye)), v_IMS_DATA_RSP) {} - [] a_IMS_ReceiveResponse(p_InviteRequest.msgHeader, + [] a_IMS_ReceiveResponse(v_MessageHeader_Bye, v_Protocol, - cr_Response(c_statusLine481, f_IMS_InviteResponse_4XX_MessageHeaderRX(p_InviteRequest.msgHeader)), - v_IMS_DATA_RSP){} + cr_Response(c_statusLine481, f_IMS_InviteResponse_4XX_MessageHeaderRX(v_MessageHeader_Bye)), + v_IMS_DATA_RSP){} /* @sic R5s141157: 481 response refers to BYE but not to the Invite sic@ */ } f_IMS_PTC_ImsInfo_DialogRelease(); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonTemplates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonTemplates.ttcn similarity index 63% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_CommonTemplates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_CommonTemplates.ttcn index f88f05a..0961019 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_CommonTemplates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_CommonTemplates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-23 18:15:44 +0200 (Mon, 23 Jun 2014) $ -// $Rev: 11767 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 11:05:29 +0200 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module IMS_CommonTemplates { @@ -19,7 +19,7 @@ module IMS_CommonTemplates { * @param p_SemicolonParam_List1 * @param p_SemicolonParam_List2 * @return template (value) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SemicolonParam_List_Concat_TX(template (omit) SemicolonParam_List p_SemicolonParam_List1, template (value) SemicolonParam_List p_SemicolonParam_List2) return template (value) SemicolonParam_List @@ -43,7 +43,7 @@ module IMS_CommonTemplates { * @param p_SemicolonParam_List * @param p_GenericParam * @return template (value) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SemicolonParam_List_Add_TX(template (omit) SemicolonParam_List p_SemicolonParam_List, template (value) GenericParam p_GenericParam) return template (value) SemicolonParam_List @@ -51,6 +51,22 @@ module IMS_CommonTemplates { return f_SemicolonParam_List_Concat_TX(p_SemicolonParam_List, {p_GenericParam}); } + /* + * @desc Add element to semi colon seperated parameter list + * @param p_SemicolonParam_List + * @param p_GenericParam + * @return template (present) SemicolonParam_List + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_SemicolonParam_List_Add_RX(template (present) SemicolonParam_List p_SemicolonParam_List, + template (present) GenericParam p_GenericParam) return template (present) SemicolonParam_List + { /* NOTE: may need to be enhanced like f_SemicolonParam_List_Concat_TX/f_SemicolonParam_List_Add_TX */ + var template (present) SemicolonParam_List v_SemicolonParam_List := p_SemicolonParam_List; + var integer i := lengthof(p_SemicolonParam_List); + v_SemicolonParam_List[i] := p_GenericParam; + return v_SemicolonParam_List; + } + /******************************************************************************/ /* AuxiliaryTemplates */ /******************************************************************************/ @@ -58,7 +74,7 @@ module IMS_CommonTemplates { * @desc return parameter value ("" if none) * @param p_GenericParam * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_GenericParam_GetValue(template (omit) GenericParam p_GenericParam) return charstring { @@ -78,20 +94,20 @@ module IMS_CommonTemplates { // Generic parameter as used in SemicolonParam_List, AmpersandParam_List, CommaParam_List: - template (value) GenValue cs_GenValueToken(template (value) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) GenValue cs_GenValueQuoted(template (value) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenValue cr_GenValueToken(template (present) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenValue cr_GenValueQuoted(template (present) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenValue cr_GenValue(template (present) charstring p_ParamValue) := (cr_GenValueToken(p_ParamValue), cr_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) GenValue cs_GenValueToken(template (value) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) GenValue cs_GenValueQuoted(template (value) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) GenValue cr_GenValueToken(template (present) charstring p_ParamValue) := {tokenOrHost := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) GenValue cr_GenValueQuoted(template (present) charstring p_ParamValue) := {quotedString := p_ParamValue}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) GenValue cr_GenValue(template (present) charstring p_ParamValue) := (cr_GenValueToken(p_ParamValue), cr_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template GenValue cr_GenValue_None := (cr_GenValue(""), omit); /* i.e. either an empty string or omit - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc build GenValue considering that value my be omit * @param p_ParamValue * @return template (omit) GenValue - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_GenValue_TX(template (omit) charstring p_ParamValue) return template (omit) GenValue { @@ -105,27 +121,27 @@ module IMS_CommonTemplates { template (value) GenericParam cs_GenericParam_Common(charstring p_Id, template (omit) GenValue p_GenValue := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ id := p_Id, paramValue := p_GenValue }; template (value) GenericParam cs_GenericParamQuoted(charstring p_Id, - charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueQuoted(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) GenericParam cs_GenericParamToken(charstring p_Id, - charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueToken(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + charstring p_ParamValue) := cs_GenericParam_Common(p_Id, cs_GenValueToken(p_ParamValue)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) GenericParam cs_GenericParam(charstring p_Id, template (omit) charstring p_ParamValue := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cs_GenericParam_Common(p_Id, fl_GenValue_TX(p_ParamValue)); // @sic R5w140111 sic@ template (present) GenericParam cr_GenericParam_Common(template (present) charstring p_Id := ?, template GenValue p_GenValue := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ id := p_Id, paramValue := p_GenValue }; @@ -133,7 +149,7 @@ module IMS_CommonTemplates { template (present) GenericParam cr_GenericParam(template (present) charstring p_Id, template (present) charstring p_ParamValue) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_GenericParam_Common(p_Id, cr_GenValue(p_ParamValue)); // @sic R5w140111 sic@ template (present) GenericParam cr_GenericParam_Any := cr_GenericParam_Common(?, *); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ @@ -142,7 +158,7 @@ module IMS_CommonTemplates { * @desc build GenericParam to be used as receive template with same id and value as given send template * @param p_GenericParamTX * @return template (present) GenericParam - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_GenericParam_AsTX(template (value) GenericParam p_GenericParamTX) return template (present) GenericParam { @@ -162,57 +178,134 @@ module IMS_CommonTemplates { template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParam(charstring p_Id, template GenValue p_GenValue := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: GenValue sic@ */ cr_GenericParam_Common(p_Id, p_GenValue), * }; template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParamWithValue(charstring p_Id, - template (present) charstring p_ParamValue := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) charstring p_ParamValue := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParam(p_Id, cr_GenValue(p_ParamValue)); - template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParamNoValue(charstring p_Id) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_SemicolonParam_List_OneSpecificParamNoValue(charstring p_Id) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParam(p_Id, omit); /******************************************************************************/ /* AuxiliaryFunctions */ /******************************************************************************/ - type set of GenericParam GenericParamList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type set of GenericParam GenericParamList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //**************************************************************************** // auxilliary functions to access comma, semicolon or ampersand separated lists //---------------------------------------------------------------------------- /* - * @desc common function to get specific parameter from GenericParamList + * @desc common function to get index of specific parameter from GenericParamList or -1 when the parameter has not been found * @param p_ParamList * @param p_ParamId - * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_StartIndex (default value: 0) + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function fl_SIP_GenericParamList_GetParam(GenericParamList_Type p_ParamList, - charstring p_ParamId) return template (omit) GenericParam + function fl_SIP_GenericParamList_GetParamIndex(GenericParamList_Type p_ParamList, + charstring p_ParamId, + integer p_StartIndex := 0) return integer { /* @sic R5w140111: GenValue sic@ */ var charstring v_ParamId; var integer v_NoOfParams := lengthof(p_ParamList); var integer i; - for (i:=0; i < v_NoOfParams; i := i+1) { + for ( i:= p_StartIndex; i < v_NoOfParams; i := i + 1) { v_ParamId := f_StringToLower(p_ParamList[i].id); if (v_ParamId == p_ParamId) { - return p_ParamList[i]; + return i; } } + return -1; + } + + /* + * @desc common function to get specific parameter from GenericParamList + * @param p_ParamList + * @param p_ParamId + * @return template (omit) GenericParam + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_SIP_GenericParamList_GetParam(GenericParamList_Type p_ParamList, + charstring p_ParamId) return template (omit) GenericParam + { /* @sic R5w140111: GenValue sic@ */ + var integer i := fl_SIP_GenericParamList_GetParamIndex(p_ParamList, p_ParamId); + + if (i >= 0) { + return p_ParamList[i]; + } return omit; } + /* + * @desc convert CommaParamList to GenericParamList + * @param p_ParamList + * @return GenericParamList_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_SIP_CommaParamList2GenericParamList(template (omit) CommaParam_List p_ParamList) return GenericParamList_Type + { + var CommaParam_List v_ParamList; + var GenericParamList_Type v_GenericParamList := {}; + var integer i; + + if (isvalue(p_ParamList)) { + v_ParamList := valueof(p_ParamList); + for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} + } + return v_GenericParamList; + } + + /* + * @desc convert SemicolonParamList to GenericParamList + * @param p_ParamList + * @return GenericParamList_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_SIP_SemicolonParamList2GenericParamList(template (omit) SemicolonParam_List p_ParamList) return GenericParamList_Type + { + var SemicolonParam_List v_ParamList; + var GenericParamList_Type v_GenericParamList := {}; + var integer i; + + if (isvalue(p_ParamList)) { + v_ParamList := valueof(p_ParamList); + for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} + } + return v_GenericParamList; + } + + /* + * @desc convert AmpersandParamList to GenericParamList + * @param p_ParamList + * @return GenericParamList_Type + * @status APPROVED (IMS) + */ + function fl_SIP_AmpersandParamList2GenericParamList(template (omit) AmpersandParam_List p_ParamList) return GenericParamList_Type + { + var AmpersandParam_List v_ParamList; + var GenericParamList_Type v_GenericParamList := {}; + var integer i; + + if (isvalue(p_ParamList)) { + v_ParamList := valueof(p_ParamList); + for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} + } + return v_GenericParamList; + } + /* * @desc common function to get value of specific parameter from GenericParamList * @param p_ParamId * @param p_GenericParam * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_SIP_GenericParamCheckAndGetValue(charstring p_ParamId, template (omit) GenericParam p_GenericParam) return charstring @@ -228,19 +321,12 @@ module IMS_CommonTemplates { * @param p_ParamList * @param p_ParamId * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_CommaParamList_GetParam(template (omit) CommaParam_List p_ParamList, charstring p_ParamId) return template (omit) GenericParam { /* @sic R5w140111: GenValue sic@ */ - var CommaParam_List v_ParamList; - var GenericParamList_Type v_GenericParamList := {}; - var integer i; - - if (isvalue(p_ParamList)) { - v_ParamList := valueof(p_ParamList); - for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} - } + var GenericParamList_Type v_GenericParamList := fl_SIP_CommaParamList2GenericParamList(p_ParamList); return fl_SIP_GenericParamList_GetParam(v_GenericParamList, p_ParamId); } @@ -249,7 +335,7 @@ module IMS_CommonTemplates { * @param p_ParamList * @param p_ParamId * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_CommaParamList_GetParamValue(template (omit) CommaParam_List p_ParamList, charstring p_ParamId) return charstring @@ -258,33 +344,86 @@ module IMS_CommonTemplates { return fl_SIP_GenericParamCheckAndGetValue(p_ParamId, v_GenericParam); } + + /* + * @desc Add element to Comma seperated parameter list + * @param p_CommaParam_List + * @param p_GenericParam + * @return template (value) CommaParam_List + */ + function f_CommaParam_List_Add_TX(template (value) CommaParam_List p_CommaParam_List, + template (value) GenericParam p_GenericParam) return template (value) CommaParam_List + { + var template (value) CommaParam_List v_CommaParam_List := p_CommaParam_List; + var integer i := lengthof(p_CommaParam_List); + v_CommaParam_List[i] := p_GenericParam; + return v_CommaParam_List; + } + + /* + * @desc Add element to comma seperated parameter list + * @param p_CommaParam_List + * @param p_GenericParam + * @return template (present) CommaParam_List + * @status APPROVED (IMS) + */ + function f_CommaParam_List_Add_RX(template (present) CommaParam_List p_CommaParam_List, + template (present) GenericParam p_GenericParam) return template (present) CommaParam_List + { + var template (present) CommaParam_List v_CommaParam_List := p_CommaParam_List; + var integer i := lengthof(p_CommaParam_List); + v_CommaParam_List[i] := p_GenericParam; + return v_CommaParam_List; + } + /* * @desc return given parameter in parameter list (or omit if not present) * @param p_ParamList * @param p_ParamId * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SemicolonParamList_GetParam(template (omit) SemicolonParam_List p_ParamList, charstring p_ParamId) return template (omit) GenericParam { /* @sic R5w140111: GenValue sic@ */ - var SemicolonParam_List v_ParamList; - var GenericParamList_Type v_GenericParamList := {}; - var integer i; - - if (isvalue(p_ParamList)) { - v_ParamList := valueof(p_ParamList); - for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} - } + var GenericParamList_Type v_GenericParamList := fl_SIP_SemicolonParamList2GenericParamList(p_ParamList); return fl_SIP_GenericParamList_GetParam(v_GenericParamList, p_ParamId); } + /* + * @desc Remove parameter from SemicolonParamList + * @param p_ParamList + * @param p_ParamId + * @return template (omit) SemicolonParam_List + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_SIP_SemicolonParamList_RemoveParam(template (omit) SemicolonParam_List p_ParamList, + charstring p_ParamId) return template (omit) SemicolonParam_List + { + var SemicolonParam_List v_SemicolonParamList; + var GenericParamList_Type v_GenericParamList := fl_SIP_SemicolonParamList2GenericParamList(p_ParamList); + var integer v_Index := fl_SIP_GenericParamList_GetParamIndex(v_GenericParamList, p_ParamId); + var integer i; + var integer k := 0; + + if (v_Index >= 0) { + for (i := 0; i < lengthof(v_GenericParamList); i := i + 1) { + if (i != v_Index) { + v_SemicolonParamList[k] := v_GenericParamList[i]; + k := k + 1; + } + } + return v_SemicolonParamList; + } + return p_ParamList; + } + /* * @desc return value of given parameter in parameter list * @param p_ParamList * @param p_ParamId * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SemicolonParamList_GetParamValue(template (omit) SemicolonParam_List p_ParamList, charstring p_ParamId) return charstring @@ -293,17 +432,17 @@ module IMS_CommonTemplates { return fl_SIP_GenericParamCheckAndGetValue(p_ParamId, v_GenericParam); } + /* + * @desc return given parameter in parameter list (or omit if not present) + * @param p_ParamList + * @param p_ParamId + * @return template (omit) GenericParam + * @status APPROVED (IMS) + */ function f_SIP_AmpersandParamList_GetParam(template (omit) AmpersandParam_List p_ParamList, charstring p_ParamId) return template (omit) GenericParam { /* @sic R5w140111: GenValue sic@ */ - var AmpersandParam_List v_ParamList; - var GenericParamList_Type v_GenericParamList := {}; - var integer i; - - if (isvalue(p_ParamList)) { - v_ParamList := valueof(p_ParamList); - for (i:=0; i < lengthof(v_ParamList); i := i+1) {v_GenericParamList[i] := v_ParamList[i];} - } + var GenericParamList_Type v_GenericParamList := fl_SIP_AmpersandParamList2GenericParamList(p_ParamList); return fl_SIP_GenericParamList_GetParam(v_GenericParamList, p_ParamId); } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Component.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_Component.ttcn similarity index 74% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_Component.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_Component.ttcn index 576ef73..2d520a4 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_Component.ttcn @@ -2,16 +2,17 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_Component { import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; import from CommonDefs all; import from CommonIP all; import from Parameters all; @@ -27,22 +28,23 @@ module IMS_Component { import from NAS_AuthenticationCommon all; import from UpperTesterPtcToMtcDefs all; // all messages being defined to communicate with the upper tester; port definitions - type enumerated IMS_PTC_Handling_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_PTC_Handling_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ testcaseSpecificHandling, defaultHandling }; - type record IMS_PTC_Ctrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - default Default, /* default behaviour being activated on IMS PTC */ - boolean TestBody, /* true: => fail may be assigend - * false: => inconc is assigned instead of fail */ - boolean BlockUlDataInDefault /* @sic R5s140780 - MCC160 Implementation sic@ + type record IMS_PTC_Ctrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + default Default, /* default behaviour being activated on IMS PTC */ + boolean TestBody, /* true: => fail may be assigend + * false: => inconc is assigned instead of fail */ + boolean BlockUlDataInDefault, /* @sic R5s140780 - MCC160 Implementation sic@ * true: => ports IMS_Server and IMS_Client are not handle by default handler * i.e. any messages coming up at these ports are stored until there are explicit receive statements in the test case * false: => UL data may cause test case fail/inconc */ + boolean IgnoreReset /* @sic R5s150031: to deal with "Reset" sent from IPCAN to reset IMS in case of the UE being switched on after a switch-off during the test case sic@ */ }; - type record IMS_PTC_SecurityInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_SecurityInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IPsec_IntegrityAlgorithm_Type IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type CipheringAlgorithm, IMS_ProtectedPorts_Type ProtectedPorts optional, @@ -52,44 +54,61 @@ module IMS_Component { integer XRESLength optional // @sic R5s120907 sic@ }; - type enumerated IMS_UriInfo_UriType_Type { firstId, secondId, thirdId, defaultId, registrationId, emergencyId, dialogLocalId, dialogRemoteId, temporaryId }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type enumerated IMS_PTC_CseqType_Type { register, dialogRemote, dialogLocal }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type enumerated IMS_PTC_DialogIndex_Type {firstDialog, secondDialog, thirdDialog, referDialog}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_UriInfo_UriType_Type { firstId, secondId, thirdId, defaultId, registrationId, emergencyId, dialogLocalId, dialogRemoteId, temporaryId, gruu }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5-153760: gruu sic@ */ + type enumerated IMS_PTC_CseqType_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + register, /* CSeq used by the UE in any REGISTER message (registration, re-registration and de-registration */ + dialogRemote, /* CSeq to be used in requests which are sent MO requests */ + dialogLocal /* CSeq to be used in requests which are sent MT requests */ + }; + type enumerated IMS_PTC_DialogIndex_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + firstDialog, + secondDialog, + thirdDialog, + referDialog, + confEventDialog, /* @sic R5-153986: confEventDialog sic@ */ + regEventDialog, /* @sic R5-153756: needed to unsubscribe (to get the correct CSeq for the NOTIFY) sic@ */ + msgSummayDialog /* @sic R5-153756: needed to unsubscribe (to get the correct CSeq for the NOTIFY) sic@ */ + }; - type record IMS_PTC_RegistrationInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_RegistrationInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ charstring Uri optional, /* SIP URI used for registration (can be temporary SIP URI when the UE does not have an ISIM) */ charstring CallId optional, /* CallId used for registration (needed to check against CallId of INVITE) */ integer Cseq }; - type record IMS_DialogInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + type record IMS_DialogInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s140092 change 1.5: RemoteURI, RemoteCseq, LocalURI, LocalCseq stored in this structure sic@ */ boolean MobileOriginated optional, /* needed e.g. to get the right route-set for re-INVITE */ - charstring RemoteTag optional, /* acc. to RFC 3261 when creating a dialog in first request there is a From tag but no To tag; + charstring RemoteTag optional, /* acc. to RFC 3261 when creating a dialog in first request there is a From tag but no To tag; the To tag is chosen by the other send and sent in a response; in all further messages within the dialogthe same From and To tags shall be used (=> especially in request messages (e.g. BYE) it may be necessary to use this stored value whereas in responses the values can be used as sent in the request); NOTE: in general outside a dialog (e.g. registration) requests get a new From tag and the corresponding reponses contain a new To tag */ - charstring RemoteURI optional, /* URI of the remote side in a dialog created by INVITE */ - integer RemoteCseq optional, /* @sic R5s140235: changed to optional sic@ */ - charstring LocalTag optional, - charstring LocalURI optional, /* URI of the UE in a dialog created by INVITE */ + charstring RemoteURI optional, /* URI of the remote side in a dialog created by INVITE */ + integer RemoteCseq optional, /* @sic R5s140235: changed to optional sic@ */ + charstring LocalTag optional, + charstring LocalURI optional, /* URI of the UE in a dialog created by INVITE */ integer LocalCseq, - charstring CallId optional, - charstring SessionId optional + charstring CallId optional, + charstring SessionId optional, + charstring SdpSessionIdTX, /* @sic R5-150707 sic@ */ + integer SdpSessionVersionTX, /* current SDP session version for the DL @sic R5-150707 sic@ */ + SDP_Message SdpMessagePrevRX optional /* previous SDP message sent by the UE @sic R5-150702 sic@ */ }; - const integer tsc_IMS_NoOfDialogs := 4; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type record length(tsc_IMS_NoOfDialogs) of IMS_DialogInfo_Type IMS_PTC_DialogInfoList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const integer tsc_IMS_NoOfDialogs := 6; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type record length(tsc_IMS_NoOfDialogs) of IMS_DialogInfo_Type IMS_PTC_DialogInfoList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - type record IMS_PTC_DialogList_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_DialogList_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ integer CurrentIndex, IMS_PTC_DialogInfoList_Type Info }; - type record IMS_PTC_ImsInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_PTC_ImsInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ CharStringList_Type IMPUList, /* list of all Public User Ids acc. to ISIM setting (31.121) or as stored in the HSS */ IP_AddrInfo_Type UE_Address optional, IP_AddrInfo_Type NW_Address optional, + charstring P_CSCF_Address optional, /* @sic R5s140934 sic@ */ InternetProtocol_Type TransportProtocol, /* transport protocol to be used for requests sent in DL * @sic R5s120530 change 1.7 sic@ * NOTE: in contrast to R5s120530 and acc. to rejection of R5-130765 at RAN WG5 Meeting #58 in Malta UDP is used for all requests in DL; @@ -108,14 +127,14 @@ module IMS_Component { IMS_SecurityScheme_Type SecurityScheme /* IMS security or GIBA acc. to 34.229-2 Table A.6a; depends on PICS setting and may depend on test case */ }; - type record IMS_Global_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record IMS_Global_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ PDN_Index_Type PdnIndex, /* @sic R5s130651: new variable sic@ */ IMS_PTC_Ctrl_Type Ctrl, IMS_PTC_SecurityInfo_Type Security, IMS_PTC_ImsInfo_Type ImsInfo }; - type component IMS_PTC { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type component IMS_PTC { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ var IMS_Global_Type vc_IMS_Global; @@ -138,7 +157,7 @@ module IMS_Component { //---------------------------------------------------------------------------- template (value) IMS_PTC_SecurityInfo_Type cs_IMS_SecurityInfo_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IntegrityAlgorithm := px_IMS_IPSecAlgorithm, CipheringAlgorithm := px_IMS_CiphAlgo_Def, ProtectedPorts := omit, @@ -149,29 +168,32 @@ module IMS_Component { }; template (value) IMS_PTC_RegistrationInfo_Type cs_IMS_RegistrationInfo_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Uri := omit, CallId := omit, Cseq := 0 }; template (value) IMS_DialogInfo_Type cs_IMS_DialogInfo_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ MobileOriginated := omit, RemoteTag := omit, RemoteURI := omit, - RemoteCseq := omit, /* @sic R5s140235: changed to omit sic@ */ + RemoteCseq := omit, /* @sic R5s140235: changed to omit sic@ */ LocalTag := omit, LocalURI := omit, LocalCseq := 0, CallId := omit, - SessionId := omit + SessionId := omit, + SdpSessionIdTX := "1111111111", /* @sic R5-150707: new variable replacing tsc_SDP_SessionId sic@ */ + SdpSessionVersionTX := 1111111110, /* @sic R5-150702: new variable; intialised with 1111111110 as being incremented firstly (see f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX) sic@ */ + SdpMessagePrevRX := omit }; /* * @desc initialise dialog status information * @return template (value) IMS_PTC_DialogList_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_DialogList_Init() return template (value) IMS_PTC_DialogList_Type { @@ -188,11 +210,14 @@ module IMS_Component { template (omit) integer p_UE_Release, charstring p_HomeDomainName := px_IMS_HomeDomainName, charstring p_PrivateUserId := px_IMS_Private_UserId, - IMS_SecurityScheme_Type p_SecurityScheme) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + IMS_SecurityScheme_Type p_SecurityScheme, + integer p_BranchIndex := 0) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic R5s140802: new parameter p_BranchIndex sic@ */ IMPUList := {px_IMS_PublicUserIdentity1, px_IMS_PublicUserIdentity2, px_IMS_PublicUserIdentity3}, UE_Address := omit, NW_Address := omit, + P_CSCF_Address := omit, TransportProtocol := udp, RanType := p_RanType, UE_Release := p_UE_Release, @@ -200,7 +225,7 @@ module IMS_Component { HomeDomainName := p_HomeDomainName, PrivateUserId := p_PrivateUserId, ContactUrl := omit, - BranchIndex := 0, + BranchIndex := p_BranchIndex, CallIdCnt := 0, Registration := cs_IMS_RegistrationInfo_Init, Dialog := fl_IMS_PTC_DialogList_Init(), @@ -211,7 +236,7 @@ module IMS_Component { PortNumber_Type p_Port_uc, PortNumber_Type p_Port_ps, PortNumber_Type p_Port_pc) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Port_us := p_Port_us, Port_uc := p_Port_uc, Port_ps := p_Port_ps, @@ -220,7 +245,7 @@ module IMS_Component { template (value) IMS_SPIs_Type cs_IMS_SPIs_Init(IPsec_SPI_Type p_SPI_us, IPsec_SPI_Type p_SPI_uc) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ SPI_us := p_SPI_us, SPI_uc := p_SPI_uc, SPI_ps := omit, @@ -239,7 +264,7 @@ module IMS_Component { * @param p_PrevSPI_ps (default value: omit) * @param p_PrevSPI_pc (default value: omit) * @return IMS_SPIs_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_SPIs_Init(integer p_NewSPI_us, integer p_NewSPI_uc, @@ -278,7 +303,7 @@ module IMS_Component { * @param p_Port_uc * @param p_SPI_us * @param p_SPI_uc - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_Init(template (omit) Common_AuthenticationParams_Type p_AuthenticationParams := omit, PortNumber_Type p_Port_us, @@ -311,19 +336,10 @@ module IMS_Component { vc_IMS_Global.Security.ProtectedPorts := valueof(cs_IMS_ProtectedPorts(p_Port_us, p_Port_uc, tsc_IMS_Port_ps, v_Port_pc)); } - /* - * @desc release IMS security info on protected ports - * @status APPROVED (IMS, IMS_IRAT) - */ - function f_IMS_PTC_Security_Release() runs on IMS_PTC - { - vc_IMS_Global.Security := valueof(cs_IMS_SecurityInfo_Init); - } - /* * @desc return true when IMS security is started on protected ports * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_IsStarted() runs on IMS_PTC return boolean { @@ -333,7 +349,7 @@ module IMS_Component { /* * @desc return integrity algorithm stored at the IMS PTC * @return IPsec_IntegrityAlgorithm_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetIntegrityAlgorithm() runs on IMS_PTC return IPsec_IntegrityAlgorithm_Type { @@ -343,7 +359,7 @@ module IMS_Component { /* * @desc return ciphering algorithm stored at the IMS PTC * @return IPsec_CipheringAlgorithm_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetCipheringAlgorithm() runs on IMS_PTC return IPsec_CipheringAlgorithm_Type { @@ -353,7 +369,7 @@ module IMS_Component { /* * @desc return NONCE stored at the IMS PTC * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetNonce() runs on IMS_PTC return charstring { @@ -363,7 +379,7 @@ module IMS_Component { /* * @desc return XRES stored at the IMS PTC * @return B32_128_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetXRES() runs on IMS_PTC return B32_128_Type { @@ -373,7 +389,7 @@ module IMS_Component { /* * @desc return length of XRES as stored at the IMS PTC * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetXRESLength() runs on IMS_PTC return integer // @sic R5s120907 sic@ { @@ -383,7 +399,7 @@ module IMS_Component { /* * @desc set info retrieved from IPCAN * @param p_IpcanInfo - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_SetIpcanInfo(IPCAN_INFO_Type p_IpcanInfo) runs on IMS_PTC { /* @sic R5s120907 R5s130133 additional changes sic@ */ @@ -395,27 +411,53 @@ module IMS_Component { /* * @desc set RAN type * @param p_RanType - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_IMS_PTC_SetRanType(IPCAN_RAN_Type p_RanType) runs on IMS_PTC { vc_IMS_Global.ImsInfo.RanType := p_RanType; } + /* + * @desc reset RAN type to omit + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_PTC_ResetRanType() runs on IMS_PTC + { + vc_IMS_Global.ImsInfo.RanType := omit; + } + /* * @desc get UE release * @return template (omit) integer - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_GetUE_Release() runs on IMS_PTC return template (omit) integer { return vc_IMS_Global.ImsInfo.UE_Release; } + /* + * @desc return true when UE release is >= given release + * @param p_Release + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_PTC_UE_ReleaseGreaterOrEqual(integer p_Release) runs on IMS_PTC return boolean + { + var template (omit) integer v_UERelease := f_IMS_PTC_GetUE_Release(); + var boolean v_Result := false; + + if (isvalue(v_UERelease)) { + v_Result := (valueof(v_UERelease) >= p_Release); + } + return v_Result; + } + /* * @desc get SPIs stored at IMS PTC * @return IMS_SPIs_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetSPIs() runs on IMS_PTC return IMS_SPIs_Type { @@ -425,7 +467,7 @@ module IMS_Component { /* * @desc return security information as stored at the IMS PTC * @return IMS_ProtectedPorts_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Security_GetProtectedPorts() runs on IMS_PTC return IMS_ProtectedPorts_Type { @@ -435,7 +477,7 @@ module IMS_Component { /* * @desc Build SecurityMechanism list template from the stored security configuration to be used for sending * @return template (value) SecurityMechanism_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_BuildSecurityServerParam() runs on IMS_PTC return template (value) SecurityMechanism_List { @@ -452,7 +494,7 @@ module IMS_Component { /* * @desc Build SecurityVerify heaader template from the stored security configuration to be used for sending * @return template (present) SecurityVerify - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_BuildSecurityVerifyHeader() runs on IMS_PTC return template (present) SecurityVerify { @@ -469,7 +511,7 @@ module IMS_Component { /* * @desc return true when GIBA * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_SecurityScheme_IsGiba() runs on IMS_PTC return boolean { @@ -492,7 +534,7 @@ module IMS_Component { * @param p_NW_Address * @param p_RegisterReq * @param p_SigCompStarted (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_Init(IP_AddrInfo_Type p_UE_Address, IP_AddrInfo_Type p_NW_Address, @@ -507,6 +549,8 @@ module IMS_Component { v_TransportProtocol := tcp; } + vc_IMS_Global.Ctrl.IgnoreReset := false; /* @sic R5s150031: f_IMS_PTC_ImsInfo_Init is called e.g. after the UE has send the initial REGISTER => from now on we need to care about any reset sic@ */ + vc_IMS_Global.ImsInfo.UE_Address := p_UE_Address; vc_IMS_Global.ImsInfo.NW_Address := p_NW_Address; vc_IMS_Global.ImsInfo.TransportProtocol := v_TransportProtocol; @@ -525,7 +569,7 @@ module IMS_Component { * @desc Get dialog index value related to given enumerated * @param p_Index * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_ImsInfo_GetDialogIndexValue(template (omit) IMS_PTC_DialogIndex_Type p_Index) runs on IMS_PTC return integer { @@ -533,9 +577,13 @@ module IMS_Component { if (isvalue(p_Index)) { select (valueof(p_Index)) { - case (firstDialog) { i := 0; } - case (secondDialog) { i := 1; } - case (referDialog) { i := 2; } + case (firstDialog) { i := 0; } + case (secondDialog) { i := 1; } + case (thirdDialog, + referDialog) { i := 2; } + case (confEventDialog) { i := 3; } /* @sic R5-153986 sic@ */ + case (regEventDialog) { i := 4; } /* @sic R5-153756 sic@ */ + case (msgSummayDialog) { i := 6; } /* @sic R5-153756 sic@ */ case else { FatalError(__FILE__, __LINE__, "invalid dialog"); } } } else { @@ -549,7 +597,7 @@ module IMS_Component { * @desc Get dialog status information for the currenct dialog * @param p_DialogIndex * @return IMS_DialogInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_ImsInfo_GetDialog(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex) runs on IMS_PTC return IMS_DialogInfo_Type { @@ -561,7 +609,7 @@ module IMS_Component { * @desc Set dialog status information for the currenct dialog * @param p_DialogIndex * @param p_DialogInfo - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_PTC_ImsInfo_SetDialog(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex, IMS_DialogInfo_Type p_DialogInfo) runs on IMS_PTC @@ -573,7 +621,7 @@ module IMS_Component { /* * @desc return IP address which is used by the UE for IMS signalling (IPv4 or IPv6) * @return IP_AddrInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_UE_Address_Get() runs on IMS_PTC return IP_AddrInfo_Type { @@ -583,7 +631,7 @@ module IMS_Component { /* * @desc return network address stored at the IMS PTC * @return IP_AddrInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_NW_Address_Get() runs on IMS_PTC return IP_AddrInfo_Type { @@ -603,7 +651,7 @@ module IMS_Component { /* * @desc return network address stored at the IMS PTC as charstring * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_NW_Address_GetAddrStr() runs on IMS_PTC return charstring { @@ -635,11 +683,41 @@ module IMS_Component { /* * @desc return P-CSCF address (FQDN) stored at the IMS PTC * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Pcscf_Get() runs on IMS_PTC return charstring { /* @sic R5-144747 removal of px_IMS_Pcscf and px_IMS_Pcscf_Emg sic@ */ - return f_IMS_PTC_NW_Address_GetAddrStr(); + /* @sic R5s140934: P_CSCF_Address sic@ */ + var charstring v_P_CSCF_Address; + + if (ispresent(vc_IMS_Global.ImsInfo.P_CSCF_Address)) { + v_P_CSCF_Address := vc_IMS_Global.ImsInfo.P_CSCF_Address; + } else { + v_P_CSCF_Address := f_IMS_PTC_NW_Address_GetAddrStr(); + } + return v_P_CSCF_Address; + } + + /* + * @desc Check P-CSCF address; + * NOTE: the P-CSCF address is the same address as the NW_Address but in case of IPv6 it may be a different notation + * typically the UE may use the canonical format acc. to RFC 5952 + * @param p_P_CSCF_Address + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_PTC_Pcscf_CheckAndSet(charstring p_P_CSCF_Address) runs on IMS_PTC return boolean + { + var charstring v_P_CSCF_Address := f_IMS_PTC_Pcscf_Get(); + + if (v_P_CSCF_Address != p_P_CSCF_Address) { + if (f_IPAddresses_Compare(v_P_CSCF_Address, p_P_CSCF_Address)) { + vc_IMS_Global.ImsInfo.P_CSCF_Address := p_P_CSCF_Address; + } else { + return false; + } + } + return true; } /* @@ -648,7 +726,7 @@ module IMS_Component { * @param p_Port (default value: *) * @param p_AllowFQDN (default value: true) * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_CheckHostPortForIPAddrOrFQDN(HostPort p_HostPort, template integer p_Port := *, @@ -666,17 +744,18 @@ module IMS_Component { * @desc Check SipUrl (e.g. in Contact header) to be "SIP URI with IP address or FQDN and protected server port of UE or GRUU as returned by the SS in registration" * @param p_SipUrl * @param p_Port (default value: *) - * @param p_AllowGRUU (default value: false) + * @param p_GRUUsInSIP (default value: pc_IMS_GRUUsInSIP) * @param p_AllowFQDN (default value: true) * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_CheckSipUrlForIPAddrOrFQDNOrGRUU(SipUrl p_SipUrl, template integer p_Port := *, - boolean p_AllowGRUU := false, + boolean p_GRUUsInSIP := pc_IMS_GRUUsInSIP, boolean p_AllowFQDN := true) runs on IMS_PTC return boolean { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ - var template (present) SipUrl v_ExpectedSipUrlGRUU; + /* @sic R5-153760: p_GRUUsInSIP := pc_IMS_GRUUsInSIP sic@ */ + var template (present) SipUrl v_ExpectedSipUrl; var HostPort v_HostPort; if (not ischosen(p_SipUrl.components.sip)) { @@ -684,22 +763,20 @@ module IMS_Component { } v_HostPort := p_SipUrl.components.sip.hostPort; - if (p_AllowGRUU and false) { // @sic R5s130133 additional change 4; FFS sic@ - v_ExpectedSipUrlGRUU := f_SIP_BuildSipUri_RX("???", p_Port); - /* !!!! acc. to 24.229 cl. 5.4.7A.2 it seems that GRUU is a SIP URI of a 'normal' public user id with specific SIP URI parameter "gr"; - * !!!! => we need a GRUU specific template for the SipUrl with appropriate parameters; furthermore the GRUU information needs to be stored at the IMS PTC - * !!!! FFS !!!!*/ - if (match(p_SipUrl, v_ExpectedSipUrlGRUU)) { - return true; - } + if (p_GRUUsInSIP) { // @sic R5-153760 sic@ + v_ExpectedSipUrl := f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(gruu), -, cr_UriParameters_gruu); /* when "obtaining and using GRUUs in SIP" the UE shall use the public GRUU in the Contact header + => SIP URI as used during registration + "gr" uri-parameter + @sic R5s150721, R5-153760 sic@ */ + return match(p_SipUrl, v_ExpectedSipUrl); + } else { // No GRUU + return f_IMS_PTC_CheckHostPortForIPAddrOrFQDN(v_HostPort, p_Port, p_AllowFQDN); } - return f_IMS_PTC_CheckHostPortForIPAddrOrFQDN(v_HostPort, p_Port, p_AllowFQDN); } /* * @desc RAN type as stored at the IMS PTC; at the beginning the RAN type is omit => '?' is returned in this case * @return template (present) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_RanType_GetString() runs on IMS_PTC return template (present) charstring { // when RanType is not explicitly initialised it is omit as initialised; => we check for presence only @@ -712,7 +789,7 @@ module IMS_Component { /* * @desc return true when SigComp is started * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_SigCompStarted() runs on IMS_PTC return boolean { @@ -722,7 +799,7 @@ module IMS_Component { /* * @desc return sig comp parameters or omit when sig comp is not started * @return template (omit) GenericParam - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetSigCompParam() runs on IMS_PTC return template (omit) GenericParam { @@ -739,7 +816,7 @@ module IMS_Component { * @param p_IdType * @param p_DialogIndex (default value: omit) * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetURI(IMS_UriInfo_UriType_Type p_IdType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return charstring @@ -756,7 +833,7 @@ module IMS_Component { case (thirdId) { return vc_IMS_Global.ImsInfo.IMPUList[2]; } - case (registrationId) { + case (registrationId, gruu) { /* @sic R5-153760: support of gruu; same URI as used by the UE in the To header of the REGISTER message sic@ */ if (ispresent(vc_IMS_Global.ImsInfo.Registration.Uri)) { return vc_IMS_Global.ImsInfo.Registration.Uri; } @@ -783,32 +860,36 @@ module IMS_Component { * @desc return SipUrl to be used in DL * @param p_IdType * @param p_Port (default value: omit) + * @param p_DialogIndex (default value: omit) * @return template (value) SipUrl - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetSipUriTX(IMS_UriInfo_UriType_Type p_IdType, - template (omit) integer p_Port := omit) runs on IMS_PTC return template (value) SipUrl - { - return f_SIP_BuildSipUri_TX(f_IMS_PTC_ImsInfo_GetURI(p_IdType), p_Port); + template (omit) integer p_Port := omit, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) SipUrl + { /* @sic R5s150382 change 1: p_DialogIndex sic@ */ + return f_SIP_BuildSipUri_TX(f_IMS_PTC_ImsInfo_GetURI(p_IdType, p_DialogIndex), p_Port); } /* * @desc return SipUrl to be used in UL * @param p_IdType * @param p_Port (default value: omit) + * @param p_DialogIndex (default value: omit) * @return template (present) SipUrl * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_PTC_ImsInfo_GetSipUriRX(IMS_UriInfo_UriType_Type p_IdType, - template integer p_Port := omit) runs on IMS_PTC return template (present) SipUrl - { - return f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(p_IdType), p_Port); + template integer p_Port := omit, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) SipUrl + { /* @sic R5s150382 change 1: p_DialogIndex sic@ */ + return f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(p_IdType, p_DialogIndex), p_Port); } /* * @desc return all PublicUserIds for which the UE is registered or shall be registered * @return CharStringList_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetAllIMPUs() runs on IMS_PTC return CharStringList_Type { @@ -819,7 +900,7 @@ module IMS_Component { * @desc return SipUrl as used for subscription * @param p_Port (default value: omit) * @return template (present) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(template integer p_Port := omit) runs on IMS_PTC return template (present) SipUrl { @@ -839,18 +920,18 @@ module IMS_Component { * @desc Initialise structure of type IMS_DialogInfo_Type * @param p_DialogInfo * @param p_CseqType - * @param p_MessageHeader_InviteOrRefer + * @param p_MessageHeader_InviteOrReferOrSubscribe * @return IMS_DialogInfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_DialogInfo_Init(IMS_DialogInfo_Type p_DialogInfo, IMS_PTC_CseqType_Type p_CseqType, - MessageHeader p_MessageHeader_InviteOrRefer) return IMS_DialogInfo_Type + MessageHeader p_MessageHeader_InviteOrReferOrSubscribe) return IMS_DialogInfo_Type { - var charstring v_FromURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrRefer.fromField.addressField)); - var charstring v_ToURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrRefer.toField.addressField)); - var charstring v_FromTag := f_MessageHeader_GetFromTag(p_MessageHeader_InviteOrRefer); - var integer v_CseqValue := p_MessageHeader_InviteOrRefer.cSeq.seqNumber; + var charstring v_FromURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrReferOrSubscribe.fromField.addressField)); + var charstring v_ToURI := f_SIP_SipUrl2Str(f_Addr_Union_GetSipUrl(p_MessageHeader_InviteOrReferOrSubscribe.toField.addressField)); + var charstring v_FromTag := f_MessageHeader_GetFromTag(p_MessageHeader_InviteOrReferOrSubscribe); + var integer v_CseqValue := p_MessageHeader_InviteOrReferOrSubscribe.cSeq.seqNumber; var IMS_DialogInfo_Type v_Dialog := p_DialogInfo; select (p_CseqType) { @@ -866,7 +947,7 @@ module IMS_Component { v_Dialog.LocalURI := v_ToURI; /* @sic R5s140121 change 2.2: needs to be v_ToURI instead of v_FromURI sic@ */ v_Dialog.RemoteURI := v_FromURI; /* @sic R5s140121 change 2.2: needs to be v_FromURI instead of v_ToURI sic@ */ v_Dialog.MobileOriginated := true; - v_Dialog.LocalTag := omit; /* @sic R5s130497 change 1 - MCC160 implementation sic@ */ + v_Dialog.LocalTag := omit; /* @sic R5s130497 change 1 - MCC160 implementation sic@ */ v_Dialog.RemoteTag := v_FromTag; v_Dialog.RemoteCseq := v_CseqValue; } @@ -875,9 +956,9 @@ module IMS_Component { } } - v_Dialog.CallId := p_MessageHeader_InviteOrRefer.callId.callid; - if (ispresent(p_MessageHeader_InviteOrRefer.sessionId)) { - v_Dialog.SessionId := p_MessageHeader_InviteOrRefer.sessionId.sessid; + v_Dialog.CallId := p_MessageHeader_InviteOrReferOrSubscribe.callId.callid; + if (ispresent(p_MessageHeader_InviteOrReferOrSubscribe.sessionId)) { + v_Dialog.SessionId := p_MessageHeader_InviteOrReferOrSubscribe.sessionId.sessid; } return v_Dialog; } @@ -885,22 +966,33 @@ module IMS_Component { /* * @desc Initialise global variables for SIP dialog * @param p_CseqType - * @param p_MessageHeader_InviteOrRefer + * @param p_MessageHeader_InviteOrReferOrSubscribe * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogInit(IMS_PTC_CseqType_Type p_CseqType, - MessageHeader p_MessageHeader_InviteOrRefer, + MessageHeader p_MessageHeader_InviteOrReferOrSubscribe, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC { /* @sic R5s140017 MCC160 implementation: ToTag replaced by RemoteTag and LocalTag; additional state variables: CallId, SessionId sic@ */ /* @sic R5sXXXXXX function may be used for REFER dialog as well (-> e.g. test case 15.21) sic@ */ var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); - v_Dialog := f_IMS_DialogInfo_Init(v_Dialog, p_CseqType, p_MessageHeader_InviteOrRefer); /* @sic R5sXXXXXX new function f_IMS_DialogInfo_Init to use IMS_PTC_DialogIndex_Type as local context - e.g. in f_IMS_InviteUserToConference_AnnexC19 sic@ */ + v_Dialog := f_IMS_DialogInfo_Init(v_Dialog, p_CseqType, p_MessageHeader_InviteOrReferOrSubscribe); fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); } + /* + * @desc check whether given dialog is started + * @param p_DialogIndex (default value: omit) + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogIsStarted(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return boolean + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return ispresent(v_Dialog.CallId); + } + /* * @desc release a SIP dialog * @param p_DialogIndex (default value: omit) @@ -911,6 +1003,12 @@ module IMS_Component { fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, valueof(cs_IMS_DialogInfo_Init)); } + /* + * @desc returns true if a dialog is released already + * @param p_DialogIndex (default value: omit) + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ function f_IMS_PTC_ImsInfo_DialogIsReleased(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return boolean { var template (omit) charstring v_LocalTag := f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex); @@ -932,7 +1030,7 @@ module IMS_Component { * @desc function to set local tag acc. to response for INVITE (MO call setup) * @param p_Tag * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogSetLocalTag(charstring p_Tag, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC @@ -960,7 +1058,7 @@ module IMS_Component { * @desc function to be used to get local tag for sending any request to a UE within a dialog (e.g. PRACK, BYE etc.) * @param p_DialogIndex (default value: omit) * @return template (omit) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetLocalTag(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) charstring { @@ -972,7 +1070,7 @@ module IMS_Component { * @desc function to be used to get remote tag for sending any request to a UE within a dialog (e.g. PRACK, BYE etc.) * @param p_DialogIndex (default value: omit) * @return template (omit) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetRemoteTag(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) charstring { @@ -984,7 +1082,7 @@ module IMS_Component { * @desc function to get call id of the current dialog * @param p_DialogIndex (default value: omit) * @return template (value) CallId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetCallId(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) CallId { @@ -997,7 +1095,7 @@ module IMS_Component { * @desc function to be used to get remote tag for sending any request to a UE within a dialog (e.g. PRACK, BYE etc.) * @param p_DialogIndex (default value: omit) * @return template (omit) SessionId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_DialogGetSessionId(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) SessionId { @@ -1009,6 +1107,104 @@ module IMS_Component { return v_SessionId; } + /* + * @desc get previous SDP message (sent by the UE) + * @param p_DialogIndex (default value: omit) + * @return template (omit) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogGetPrevSdpMessageRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) SDP_Message + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return v_Dialog.SdpMessagePrevRX; + } + + /* + * @desc store SDP message (sent by the UE) + * @param p_SDP_Message + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogSetPrevSdpMessageRX(template (omit) SDP_Message p_SDP_Message, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + if (isvalue(p_SDP_Message)) { /* @sic R5s150666, R5-153525 sic@ */ + v_Dialog.SdpMessagePrevRX := valueof(p_SDP_Message); + } else { + v_Dialog.SdpMessagePrevRX := omit; + } + fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); + } + + /* + * @desc set SDP session version to be used in DL + * @param p_SessVersion + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogSetSessVersionTX(integer p_SessVersion, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { /* @sic R5-150707: new function to allow to set session version needs to specific values by a test case sic@ */ + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + v_Dialog.SdpSessionVersionTX := p_SessVersion; + fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); + } + + /* + * @desc get SDP session version to be used in DL + * @param p_DialogIndex (default value: omit) + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogGetSessVersionTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return integer + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return v_Dialog.SdpSessionVersionTX; + } + + /* + * @desc get next session version for DL + * @param p_DialogIndex (default value: omit) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return charstring + { /* @sic R5-150707: replaces f_IMS_PTC_SDP_SessVersionIndex_GetNext and f_IMS_SDP_SessVersion_GetNext sic@ + NOTE: when session version needs to be set to specific values by a test case we cannot use an index anymore to increment the value */ + + var integer v_SdpSessionVersionTX := f_IMS_PTC_ImsInfo_DialogGetSessVersionTX(p_DialogIndex) + 1; + f_IMS_PTC_ImsInfo_DialogSetSessVersionTX(v_SdpSessionVersionTX, p_DialogIndex); + + return int2str(v_SdpSessionVersionTX); + } + + /* + * @desc set SDP session id to be used in DL + * @param p_SessId + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS) + */ + function f_IMS_PTC_ImsInfo_DialogSetSessIdTX(charstring p_SessId, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { /* @sic R5-150707: new function sic@ */ + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + v_Dialog.SdpSessionIdTX := p_SessId; + fl_IMS_PTC_ImsInfo_SetDialog(p_DialogIndex, v_Dialog); + } + + /* + * @desc set SDP session id to be used in DL + * @param p_DialogIndex (default value: omit) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_PTC_ImsInfo_DialogGetSessIdTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return charstring + { + var IMS_DialogInfo_Type v_Dialog := fl_IMS_PTC_ImsInfo_GetDialog(p_DialogIndex); + return v_Dialog.SdpSessionIdTX; + } + /* * @desc returns true when the current dialog is MO * @param p_DialogIndex (default value: omit) @@ -1028,7 +1224,7 @@ module IMS_Component { /* * @desc return contact address as provided in contact header of the REGISTER message * @return SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetContactUrl() runs on IMS_PTC return SipUrl { @@ -1038,7 +1234,7 @@ module IMS_Component { /* * @desc return Contact header as stored * @param p_ContactUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_SetContactUrl(SipUrl p_ContactUrl) runs on IMS_PTC { /* shall be used when subsequent REGISTER has been received during registration */ @@ -1072,7 +1268,7 @@ module IMS_Component { /* * @desc return transport protocol (UDP/TCP) to be used for requests in DL * @return InternetProtocol_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetTransportProtocol() runs on IMS_PTC return InternetProtocol_Type { @@ -1084,7 +1280,7 @@ module IMS_Component { * @param p_CseqType * @param p_DialogIndex (default value: omit) * @return template (omit) integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqGet(IMS_PTC_CseqType_Type p_CseqType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (omit) integer @@ -1106,7 +1302,7 @@ module IMS_Component { * @param p_CseqType * @param p_DialogIndex (default value: omit) * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqGetValue(IMS_PTC_CseqType_Type p_CseqType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return integer @@ -1124,7 +1320,7 @@ module IMS_Component { * @param p_CseqType * @param p_CseqValue * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqSet(IMS_PTC_CseqType_Type p_CseqType, integer p_CseqValue, @@ -1145,7 +1341,7 @@ module IMS_Component { * @param p_CseqType * @param p_DialogIndex (default value: omit) * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_CseqIncr(IMS_PTC_CseqType_Type p_CseqType, template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return integer @@ -1158,7 +1354,7 @@ module IMS_Component { /* * @desc return appropriate branch value * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetNextBranch() runs on IMS_PTC return charstring { /* @sic R5s130561 change 4: addtional branch values sic@ */ @@ -1182,7 +1378,7 @@ module IMS_Component { /* * @desc provide latest HomeDomainName * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetHomeDomainName() runs on IMS_PTC return charstring { @@ -1192,7 +1388,7 @@ module IMS_Component { /* * @desc provide latest HomeDomainName * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ImsInfo_GetPrivateUserId() runs on IMS_PTC return charstring { @@ -1209,23 +1405,26 @@ module IMS_Component { } /* - * @desc reset ImsInfo as it is before initial registration - * @status APPROVED (IMS) + * @desc reset ImsInfo, Security and 'IgnoreReset' flag as it is before initial registration + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_PTC_ImsInfo_Reset() runs on IMS_PTC - { + function f_IMS_PTC_Reset() runs on IMS_PTC + { /* @sic R5s150031: new common function sic@ */ vc_IMS_Global.ImsInfo := valueof(cs_IMS_ImsInfo_Init(vc_IMS_Global.ImsInfo.RanType, vc_IMS_Global.ImsInfo.UE_Release, vc_IMS_Global.ImsInfo.HomeDomainName, vc_IMS_Global.ImsInfo.PrivateUserId, - vc_IMS_Global.ImsInfo.SecurityScheme)); + vc_IMS_Global.ImsInfo.SecurityScheme, + vc_IMS_Global.ImsInfo.BranchIndex)); /* @sic R5s140802 sic@ */ + vc_IMS_Global.Security := valueof(cs_IMS_SecurityInfo_Init); + vc_IMS_Global.Ctrl.IgnoreReset := true; } //**************************************************************************** /* * @desc to deal with entry and exit of the test body * @param p_TestBodyFlag - * @status APPROVED (IMS_IRAT, IMS, LTE) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_TestBody_Set(boolean p_TestBodyFlag) runs on IMS_PTC { @@ -1235,7 +1434,7 @@ module IMS_Component { /* * @desc check whether test body is active * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_TestBody_Check() runs on IMS_PTC return boolean { @@ -1244,8 +1443,8 @@ module IMS_Component { /* * @desc to block UL data from default handling - * @param p_TestBodyFlag - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_BlockUlDataInDefault + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_BlockUlDataInDefault_Set(boolean p_BlockUlDataInDefault) runs on IMS_PTC { @@ -1257,7 +1456,7 @@ module IMS_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SetVerdictFailOrInconc(charstring p_FileName, LineNo_Type p_LineNo, @@ -1289,14 +1488,19 @@ module IMS_Component { //**************************************************************************** - template (present) IMS_CONFIG_CNF cr_IMS_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) IMS_CONFIG_CNF cr_IMS_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc Default behaviour for test cases when the IMS behaviour is matter of the test purpose - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ altstep a_IMS_PTC_DefaultBehaviour_TestcaseSpecificImsHandling() runs on IMS_PTC { + var boolean v_IgnoreReset := vc_IMS_Global.Ctrl.IgnoreReset; + + [v_IgnoreReset] IPCAN.receive(cmr_IPCAN_IMS_Reset) { + repeat; + } [] IMS_CTRL.receive(cr_IMS_CONFIG_CNF_Any) { all timer.stop; f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "unexpected receive event at the IMS_CTRL port"); @@ -1319,7 +1523,7 @@ module IMS_Component { * @desc Default behaviour for default IMS handling * when IMS PTC shall only deal with IMS messages as for the initial registration * but IMS behavour is not matter of the test purpose - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ altstep a_IMS_PTC_DefaultBehaviour_DefaultImsHandling() { @@ -1349,7 +1553,7 @@ module IMS_Component { /* * @desc to activate the standard default behaviour or default behaviour for test case specific IMS handling * @param p_Handling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_ActivateDefault(IMS_PTC_Handling_Type p_Handling) runs on IMS_PTC { @@ -1376,7 +1580,7 @@ module IMS_Component { * @param p_SecurityScheme (default value: omit) * @param p_RanType (default value: omit) * @param p_UE_Release (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Init(PDN_Index_Type p_PdnIndex := PDN_1, IMS_PTC_Handling_Type p_Handling := testcaseSpecificHandling, @@ -1411,6 +1615,7 @@ module IMS_Component { vc_IMS_Global.PdnIndex := p_PdnIndex; vc_IMS_Global.Ctrl.TestBody := false; vc_IMS_Global.Ctrl.BlockUlDataInDefault := false; /* @sic R5s140780 - MCC160 Implementation sic@ */ + vc_IMS_Global.Ctrl.IgnoreReset := true; /* @sic R5s150031: IMS is already reset after initialisation sic@ */ vc_IMS_Global.Ctrl.Default := null; vc_IMS_Global.Security := valueof(cs_IMS_SecurityInfo_Init); vc_IMS_Global.ImsInfo := valueof(cs_IMS_ImsInfo_Init(p_RanType, p_UE_Release, v_HomeDomainName, v_PrivateUserId, v_SecurityScheme)); @@ -1421,7 +1626,7 @@ module IMS_Component { /* * @desc create IMS component * @return IMS_PTC - * @status APPROVED (LTE, IMS_IRAT, LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Create() return IMS_PTC { diff --git a/LTE_A_IWD_15wk38/Common/IMS/IMS_DefaultHandler.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_DefaultHandler.ttcn new file mode 100644 index 0000000..1ced24b --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_DefaultHandler.ttcn @@ -0,0 +1,71 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-04-25 09:25:26 +0200 (Sat, 25 Apr 2015) $ +// $Rev: 13507 $ +/******************************************************************************/ + +module IMS_DefaultHandler { + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_Component all; + import from IMS_PTC_CoordMsg all; + import from IMS_Procedures_Registration all; + import from IMS_Procedures_Common all; + + /* + * @desc Initial IMS registration with synchronistion between IMS and IPCAN + * @param p_IMS_DATA_REQ (default value: omit) + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_DefaultHandler_InitialRegistration(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit) runs on IMS_PTC + { /* @sic R5s140788 change 2: new function sic@ */ + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // send trigger to EUTRA PTC to indicate start of IMS registration @sic R5-123731 sic@ + f_IMS_Registration(p_IMS_DATA_REQ); + f_IMS_TCP_CloseHandling(justWait); /* @sic R5s140219 - MCC160 implementation sic@ */ + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // send trigger to EUTRA PTC to indicate end of IMS registration @sic R5-123731 sic@ + } + + //**************************************************************************** + // Main loop: + //---------------------------------------------------------------------------- + /* + * @desc default IMS behaviour: + * used for non-IMS test cases to deal with the initial IMS registration + * @status APPROVED (IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_DefaultHandler() runs on IMS_PTC + { + var boolean v_IsRegistered := false; + var IMS_DATA_REQ v_IMS_DATA_REQ; + + f_IMS_PTC_Init(-, defaultHandling, IMS_Security); + + while (true) { + alt { + [] IPCAN.receive(cmr_IPCAN_IMS_Reset) { + v_IsRegistered := false; + } + [] IMS_Server.receive(car_IMS_Register_Request(?)) -> value v_IMS_DATA_REQ { // receive any REGISTER + if (not v_IsRegistered) { + f_IMS_DefaultHandler_InitialRegistration(v_IMS_DATA_REQ); // @sic R5s140788 change 2 sic@ + v_IsRegistered := true; + } else { + f_IMS_PTC_ResetRanType(); // @sic R5s150057 change 3: reset RanType to allow de-registrtion from any RAT sic@ + f_IMS_PTC_Deregistration(v_IMS_DATA_REQ); // @sic R5-132037 sic@ + /* @sic R5s140219 - MCC160 implementation: closing TCP connections is handled in f_IMS_PTC_Deregistration sic@ */ + v_IsRegistered := false; + } + } + } + if (not v_IsRegistered) { /* the UE is not registered anymore => reset IMS + @sic R5s150231 change 2 sic@ */ + f_IMS_GlobalRelease(); /* reset IMS_PTC and IP_PTC's registration info in case of de-registration or the UE being switched off (-> cmr_IPCAN_IMS_Reset) */ + } + } + } +} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_IP_Config.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_IP_Config.ttcn similarity index 75% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_IP_Config.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_IP_Config.ttcn index bdf8eb4..53de7b0 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_IP_Config.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_IP_Config.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-04-25 09:25:26 +0200 (Sat, 25 Apr 2015) $ +// $Rev: 13507 $ /******************************************************************************/ module IMS_IP_Config { @@ -24,7 +24,7 @@ module IMS_IP_Config { template (value) IMS_SPIs_Type p_SPIs, IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ ProtectedPorts := p_ProtectedPorts, SPIs := p_SPIs, IntegrityAlgorithm := p_IntegrityAlgorithm, @@ -33,16 +33,16 @@ module IMS_IP_Config { template (value) IMS_RegistrationInfo_Type cs_IMS_RegistrationInfo(IP_AddrInfo_Type p_NW_Address, IP_AddrInfo_Type p_UE_Address, - template (omit) IMS_SecurityInfo_Type p_SecurityInfo) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (omit) IMS_SecurityInfo_Type p_SecurityInfo := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ NW_Address := p_NW_Address, UE_Address := p_UE_Address, SecurityInfo := p_SecurityInfo }; template (value) IMS_PortsAndSecurityConfigReq_Type cs_IMS_PortsAndSecurityConfig(template (omit) PortNumber_Type p_UnprotectedPort_us, - template (value) IMS_RegistrationInfo_Type p_RegistrationInfo) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (omit) IMS_RegistrationInfo_Type p_RegistrationInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ UnprotectedPort_us := p_UnprotectedPort_us, RegistrationInfo := p_RegistrationInfo }; @@ -51,7 +51,7 @@ module IMS_IP_Config { bitstring p_SHA_1_96Key, bitstring p_DES_EDE3_CBCKey, bitstring p_AES_CBCKey) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ MD5_96Key := p_MD5_96Key, SHA_1_96Key := p_SHA_1_96Key, DES_EDE3_CBCKey := p_DES_EDE3_CBCKey, @@ -59,35 +59,36 @@ module IMS_IP_Config { }; template (value) IMS_CONFIG_REQ cas_IMS_InstallKey_REQ(template (value) IPsec_SecurityKeys_Type p_InstallKey) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ InstallKey := p_InstallKey }; template (value) IMS_CONFIG_REQ cas_IMS_PortsAndSecurityConfig_REQ(template (value) IMS_PortsAndSecurityConfigReq_Type p_PortsAndSecurityConfig) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ PortsAndSecurityConfig := p_PortsAndSecurityConfig }; - template (value) IMS_CONFIG_REQ cas_IMS_SecurityRelease_REQ(template (value) IMS_SecurityInfo_Type p_SecurityInfo) := + template (value) IMS_CONFIG_REQ cas_IMS_SecurityRelease_REQ := { /* @status APPROVED (IMS) */ - SecurityRelease := p_SecurityInfo + /* @sic R5w150015: SecurityRelease gets Null_Type sic@ */ + SecurityRelease := true }; - template (value) IMS_CONFIG_REQ cas_IMS_CloseTCP_REQ := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) IMS_CONFIG_REQ cas_IMS_RegInfoRelease_REQ := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT) */ + template (value) IMS_CONFIG_REQ cas_IMS_CloseTCP_REQ := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) IMS_CONFIG_REQ cas_IMS_RegInfoRelease_REQ := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) IMS_CONFIG_CNF car_IMS_InstallKey_CNF := {InstallKey := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) IMS_CONFIG_CNF car_IMS_PortsAndSecurityConfig_CNF := {PortsAndSecurityConfig := ?}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) IMS_CONFIG_CNF car_IMS_InstallKey_CNF := {InstallKey := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) IMS_CONFIG_CNF car_IMS_PortsAndSecurityConfig_CNF := {PortsAndSecurityConfig := ?}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (present) IMS_CONFIG_CNF car_IMS_SecurityRelease_CNF := {SecurityRelease := true}; /* @status APPROVED (IMS) */ - template (present) IMS_CONFIG_CNF car_IMS_CloseTCP_CNF := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) IMS_CONFIG_CNF car_IMS_RegInfoRelease_CNF := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT) */ + template (present) IMS_CONFIG_CNF car_IMS_CloseTCP_CNF := {CloseTCP := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) IMS_CONFIG_CNF car_IMS_RegInfoRelease_CNF := {RegInfoRelease := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc Common function to configure the IP PTC (send IMS_CONFIG_REQ, receive IMS_CONFIG_CNF) * @param p_IMS_CONFIG_REQ * @param p_IMS_CONFIG_CNF - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_ConfigureIP(template (value) IMS_CONFIG_REQ p_IMS_CONFIG_REQ, template (present) IMS_CONFIG_CNF p_IMS_CONFIG_CNF) runs on IMS_PTC @@ -106,7 +107,7 @@ module IMS_IP_Config { * the keys are sent to the SS via the IP PTC * @param p_IK * @param p_CK - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_InstallIPsecKeys(B128_Type p_IK, B128_Type p_CK) runs on IMS_PTC @@ -125,44 +126,40 @@ module IMS_IP_Config { /* * @desc configure ports and security at the SS * @param p_UnprotectedPort_us - * @param p_NW_Address - * @param p_UE_Address - * @param p_SecurityInfo (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_RegistrationInfo + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PortsAndSecurityConfig(template (omit) PortNumber_Type p_UnprotectedPort_us, - IP_AddrInfo_Type p_NW_Address, - IP_AddrInfo_Type p_UE_Address, - template (omit) IMS_SecurityInfo_Type p_SecurityInfo := omit) runs on IMS_PTC + template (omit) IMS_RegistrationInfo_Type p_RegistrationInfo := omit) runs on IMS_PTC { /* configure IMS security; the IP PTC returns SPIs which it has assigned; * p_SecurityInfo is omit in case of GIBA * @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: SPIs for re-authentication sic@ */ + /* @sic R5s150268 change 2: p_RegistrationInfo instead of p_NW_Address, p_UE_Address, p_SecurityInfo sic@ */ - if (isvalue(p_SecurityInfo)) { - if (valueof(p_SecurityInfo.SPIs.SPI_us) == valueof(p_SecurityInfo.SPIs.SPI_uc)) { + if (isvalue(p_RegistrationInfo.SecurityInfo)) { + if (valueof(p_RegistrationInfo.SecurityInfo.SPIs.SPI_us) == valueof(p_RegistrationInfo.SecurityInfo.SPIs.SPI_uc)) { FatalError(__FILE__, __LINE__, "SPI_us and SPI_uc shall have different values"); } } - fl_IMS_ConfigureIP(cas_IMS_PortsAndSecurityConfig_REQ(cs_IMS_PortsAndSecurityConfig(p_UnprotectedPort_us, cs_IMS_RegistrationInfo(p_NW_Address, p_UE_Address, p_SecurityInfo))), + fl_IMS_ConfigureIP(cas_IMS_PortsAndSecurityConfig_REQ(cs_IMS_PortsAndSecurityConfig(p_UnprotectedPort_us, p_RegistrationInfo)), car_IMS_PortsAndSecurityConfig_CNF); /* @sic R5s140780 - MCC160 Implementation sic@ */ } /* * @desc trigger IP PTC to release security related to this IMS PTC - * @param p_SecurityInfo * @status APPROVED (IMS) */ - function f_IMS_Register_SecurityRelease(template (value) IMS_SecurityInfo_Type p_SecurityInfo) runs on IMS_PTC - { - fl_IMS_ConfigureIP(cas_IMS_SecurityRelease_REQ(p_SecurityInfo), + function f_IMS_Register_SecurityRelease() runs on IMS_PTC + { /* @sic R5w150015: p_SecurityInfo removed sic@ */ + fl_IMS_ConfigureIP(cas_IMS_SecurityRelease_REQ, car_IMS_SecurityRelease_CNF); /* @sic R5s140780 - MCC160 Implementation sic@ */ } /* * @desc trigger IP PTC to release registration info related to this IMS PTC - * @status APPROVED (IMS, IMS_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterInfo_Release() runs on IMS_PTC { @@ -172,7 +169,7 @@ module IMS_IP_Config { /* * @desc trigger IP PTC to close TCP connections related to this IMS PTC - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_CloseTCP() runs on IMS_PTC { diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_MessageBody_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_MessageBody_Templates.ttcn similarity index 84% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_MessageBody_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_MessageBody_Templates.ttcn index 265da12..4429227 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_MessageBody_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_MessageBody_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-24 23:07:55 +0200 (Sat, 24 May 2014) $ -// $Rev: 11321 $ +// @version: IWD_15wk38 +// $Date: 2015-06-01 18:14:24 +0200 (Mon, 01 Jun 2015) $ +// $Rev: 13618 $ /******************************************************************************/ module IMS_MessageBody_Templates { @@ -52,7 +52,7 @@ module IMS_MessageBody_Templates { }; template (value) MessageBody cs_MessageBody_RegInfo(template (value) Reginfo_Type p_RegInfo) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ xmlBody := oct2char(bit2oct(encvalue(p_RegInfo))) /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ }; @@ -82,13 +82,24 @@ module IMS_MessageBody_Templates { }; template (value) MessageBody cs_MessageBody_SipFrag(charstring p_SipFrag) := - { + { /* @status APPROVED (IMS) */ sipfrag := p_SipFrag }; - template (value) MessageBody cs_MessageBody_XML(template (value) TIMS3GPP_Type p_TIMS3GPP) := - { /* @status APPROVED (IMS) */ - xmlBody := oct2char(bit2oct(encvalue(p_TIMS3GPP))) + // @sic R5s141138 sic@ + template (value) MessageBody cs_MessageBody_XML(template (value) Ims_3gpp_Type p_Ims3gpp) := + { /* @status APPROVED (IMS, IMS_IRAT) */ + xmlBody := oct2char(bit2oct(encvalue(p_Ims3gpp))) + }; + + template (value) MessageBody cs_MessageBody_XML_SRVCC(template (value) State_and_event_info_Type p_State_and_event_info) := + { + xmlBody := oct2char(bit2oct(encvalue(p_State_and_event_info))) + }; + + template (present) MessageBody cr_MessageBody_XML_SRVCC(template (present) State_and_event_info_Type p_State_and_event_info) := + { + xmlBody := oct2char(bit2oct(encvalue(p_State_and_event_info))) }; //**************************************************************************** diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_PTC_CoordMsg.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_PTC_CoordMsg.ttcn similarity index 85% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_PTC_CoordMsg.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_PTC_CoordMsg.ttcn index 8ee8ace..d703408 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_PTC_CoordMsg.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_PTC_CoordMsg.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 18:07:49 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12192 $ +// @version: IWD_15wk38 +// $Date: 2015-08-26 09:14:31 +0200 (Wed, 26 Aug 2015) $ +// $Rev: 14113 $ /******************************************************************************/ module IMS_PTC_CoordMsg { @@ -19,6 +19,7 @@ module IMS_PTC_CoordMsg { // parameters type enumerated IMS_TestProcedure_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @sic R5s141286 change 9: new field IPCAN_MO_Speech_EmergencyCall sic@ */ IPCAN_InitialRegistration, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5.2.3 without RRC Connection Release at the end of the procedure * NOTE: As working assumption the UE does IMS REGISTRATION automatically after RRC/NAS registration; * if that is not the case the IMS PTC may trigger release of the connection after some time and initiate manual IMS registration (FFS) */ @@ -28,9 +29,13 @@ module IMS_PTC_CoordMsg { IPCAN_MT_SpeechCall, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.7.3 */ IPCAN_MO_VideoCall, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.8.3 */ IPCAN_MT_VideoCall, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.9.3 */ + IPCAN_MO_AddVideo, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.11.3 */ + IPCAN_MT_AddVideo, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.12.3 */ + IPCAN_ReleaseVideo, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.15.3 */ IPCAN_MO_IMS_Signalling, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5.3.3 with m = n = 0; used e.g. for MT SMS test case 18.2 */ IPCAN_MT_IMS_Signalling, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5.3.3 Steps 3 to 9 with m = n = 0; used e.g. for MT SMS test case 18.1 */ - IPCAN_XCAP_Signalling /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.14 */ + IPCAN_XCAP_Signalling, /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.14 */ + IPCAN_MO_Speech_EmergencyCall /* EUTRA/EPS signalling acc. to 36.508 cl. 4.5A.4.3 and 4.5A.6.3 */ }; type enumerated IMS_TestConfiguration_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ @@ -49,9 +54,8 @@ module IMS_PTC_CoordMsg { SIB2_TC_12_19b, /* SIB2 configuration acc. to test case 12.19b */ SIB2_TC_12_20, /* SIB2 configuration acc. to test case 12.20 */ SIB2_TC_12_20a, /* SIB2 configuration acc. to test case 12.20a */ - IPCAN_UpdateUELocationInformation, /* EUTRA: set UELocationInformation acc. to 36.509 */ - IPCAN_EmergencyBearers /* EUTRA: configure 2 bearers for emergency (test case 19.3.3) */ - }; + IPCAN_UpdateUELocationInformation /* EUTRA: set UELocationInformation acc. to 36.509 */ + }; type record IPCAN_INFO_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120907 R5s130133 additional changes sic@ */ @@ -71,7 +75,7 @@ module IMS_PTC_CoordMsg { * depending on the connection type triggers may need to be sent from IPCAN to IMS or from IMS to IPCAN to synchronise establishment * of dedicated DRBs (EUTRA) or secondary PDP contexts (UTRAN) */ IPCAN_ENDPROCEDURE, /* trigger RRC connection release by the IPCAN_PTC; - * as a SIP may be sent out just before end of the procedure in general a delay of 2s shall be added before sending IPCAN_ENDPROCEDURE to IPCAN; + * as a SIP message may be sent out just before end of the procedure in general a delay of 2s shall be added before sending IPCAN_ENDPROCEDURE to IPCAN; * for UTRAN it is up to IPCAN and SS implementation to cope with possible/necessary release of (secondary) PDP context; * a trigger shall be sent from IPCAN to IMS to indicate when RRC connection is released */ IPCAN_RELEASE, /* Detach UE and release cell (postamble); @@ -108,9 +112,11 @@ module IMS_PTC_CoordMsg { type union IMS_IPCAN_Coordination_MSG { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ Null_Type TriggerEvent, // any trigger of confirmation Null_Type AbortEvent, // sent instead of TriggerEvent if procedure shall be aborted + Null_Type Reset, // IMS <- IPCAN: to reset IMS after UE has been switched off and gets switched on again IMS_IPCAN_Command_Type IMS_IPCAN_Command, // IMS -> IPCAN: command to be done at IPCAN IPCAN_IMS_Response_Type IPCAN_IMS_Response, // IMS <- IPCAN: response for previous command - NAS_ProtocolConfigOptions_Type ProtocolConfigOptions // IMS <-> IPCAN: PCOs to be used in NAS signalling + NAS_ProtocolConfigOptions_Type ProtocolConfigOptions, // IMS <-> IPCAN: PCOs to be used in NAS signalling + charstring IPCAN_IMS_Data // IMS <- IPCAN: to send data from IPCAN to IMS @sic R5-151607 sic@ }; type port IMS_IPCAN_CO_ORD_PORT message @@ -120,11 +126,11 @@ module IMS_PTC_CoordMsg { }; - type union IMS_IMS_Coordination_MSG { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type union IMS_IMS_Coordination_MSG { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ Null_Type TriggerEvent }; - type port IMS_IMS_CO_ORD_PORT message { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type port IMS_IMS_CO_ORD_PORT message { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ out IMS_IMS_Coordination_MSG; in IMS_IMS_Coordination_MSG; }; @@ -155,7 +161,7 @@ module IMS_PTC_CoordMsg { template (omit) IMS_TestConfiguration_Type p_TestConfiguration := omit, template (omit) IMS_TestProcedure_Type p_TestProcedure := omit, template (omit) IMS_CellConfiguration_Type p_CellConfiguration := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IMS_IPCAN_Command := { Name := p_CommandName, TestConfiguration := p_TestConfiguration, @@ -197,9 +203,31 @@ module IMS_PTC_CoordMsg { @sic R5s130133 additional changes sic@ */ template (present) IMS_IPCAN_Coordination_MSG cmr_IPCAN_IMS_Response := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ IPCAN_IMS_Response := ? }; + + template (value) IMS_IPCAN_Coordination_MSG cms_IPCAN_IMS_Reset := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + Reset := true + }; + + template (present) IMS_IPCAN_Coordination_MSG cmr_IPCAN_IMS_Reset := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + Reset := true + }; + + template (value) IMS_IPCAN_Coordination_MSG cms_IPCAN_IMS_Data (charstring p_Data):= + { /* @status APPROVED (LTE_A) */ + /* @sic R5-151607 sic@ */ + IPCAN_IMS_Data := p_Data + }; + + template (present) IMS_IPCAN_Coordination_MSG cmr_IPCAN_IMS_Data (template (present) charstring p_Data := ?):= + { /* @status APPROVED (LTE_A) */ + /* @sic R5-151607 sic@ */ + IPCAN_IMS_Data := p_Data + }; //---------------------------------------------------------------------------- @@ -218,7 +246,7 @@ module IMS_PTC_CoordMsg { * @desc query IPCAN specific information from IPCAN PTC * @param p_ImsCoorPort * @return IPCAN_INFO_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_IPCAN_Query(IMS_IPCAN_CO_ORD_PORT p_ImsCoorPort) return IPCAN_INFO_Type { @@ -271,6 +299,19 @@ module IMS_PTC_CoordMsg { return v_Result; } + /* + * @desc Wait for a synchonisation message from IMS/IPCAN PTC + * @param p_Port + * @return charstring + * @status APPROVED (LTE_A) + */ + function f_IMS_IPCAN_WaitForData(IMS_IPCAN_CO_ORD_PORT p_Port) return charstring + { /* @sic R5-151607 sic@ */ + var IMS_IPCAN_Coordination_MSG v_IMS_IPCAN_CoordMsg; + p_Port.receive(cmr_IPCAN_IMS_Data) -> value v_IMS_IPCAN_CoordMsg; // @sic R5s150704 sic@ + return v_IMS_IPCAN_CoordMsg.IPCAN_IMS_Data; + } + //---------------------------------------------------------------------------- /* * @desc send message to IMS/IPCAN PTC diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_CallControl.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallControl.ttcn similarity index 76% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_CallControl.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallControl.ttcn index 3915b07..6062a61 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_CallControl.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallControl.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 15:45:52 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12207 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 13:17:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14487 $ /******************************************************************************/ module IMS_Procedures_CallControl { @@ -14,6 +14,7 @@ module IMS_Procedures_CallControl { import from CommonDefs all; import from CommonIP all; import from IP_ASP_TypeDefs all; + import from IMS_IP_Config all; import from IMS_Component all; import from IMS_ASP_TypeDefs all; import from IMS_ASP_Templates all; @@ -43,7 +44,7 @@ module IMS_Procedures_CallControl { A_2_1_A7 /* INVITE for creating an emergency session within an emergency registration */ }; - type record IMS_InviteRequestWithSdp_Type { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) + type record IMS_InviteRequestWithSdp_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5w140112: new type sic@ */ IMS_RoutingInfo_Type RoutingInfo, INVITE_Request Invite, @@ -69,7 +70,7 @@ module IMS_Procedures_CallControl { * @param p_IMS_DATA_REQ * @param p_SdpOffer * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_InviteRequestWithSdpMO(IMS_DATA_REQ p_IMS_DATA_REQ, SDP_Message p_SdpOffer) return IMS_InviteRequestWithSdp_Type @@ -114,51 +115,39 @@ module IMS_Procedures_CallControl { } /* - * @desc check session version of given SDP message to be greater than previous session version - * @param p_CurrentSDP_Message - * @param p_PreviousSDP_Message - * @param p_PreviousSessionVersion (default value: omit) - * @status APPROVED (IMS, LTE_A) + * @desc Check max-red parameter in fmtp line + * @param p_AttributeList + * @param p_Fmt + * @param p_FormatSpecificParameters (default value: cr_AMR_Fmtp_DefaultParameters) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_IMS_SDP_CheckSessionVersion(SDP_Message p_CurrentSDP_Message, - template (omit) SDP_Message p_PreviousSDP_Message, - template (omit) integer p_PreviousSessionVersion := omit) runs on IMS_PTC - { /* @sic R5s140686, R5-144755: parameter p_PreviousSDP_Message; check whether current and previous SDP message are identically sic@ */ - var integer v_PreviousSessionVersion; - var integer v_CurrentSessionVersion := str2int(p_CurrentSDP_Message.origin.session_version); - var template SDP_Message v_PreviousSDP_Template; - - if (isvalue(p_PreviousSDP_Message)) { - v_PreviousSessionVersion := str2int(valueof(p_PreviousSDP_Message.origin.session_version)); - if (v_PreviousSessionVersion == v_CurrentSessionVersion) { - v_PreviousSDP_Template := p_PreviousSDP_Message; - v_PreviousSDP_Template.origin.session_version := ?; - if (not match(p_CurrentSDP_Message, v_PreviousSDP_Template)) { /* => previous and current message are not indentical */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "session version is the same as in previous SDP message but content has changed"); + function fl_IMS_SDP_Fmtp_CheckMaxRed(template (omit) SDP_attribute_list p_AttributeList, + charstring p_Fmt, + template (present) SDP_attribute_fmtp_format_specific_params p_FormatSpecificParameters := cr_AMR_Fmtp_DefaultParameters) runs on IMS_PTC + { + var template (omit) SDP_attribute v_Attribute; + var charstring v_RedMaxValStr; + var integer v_RedMaxVal; + + v_Attribute := f_SDP_AttributeList_GetAttribute(p_AttributeList, cr_SDP_Attribute_fmtp(p_Fmt, p_FormatSpecificParameters)); + if (isvalue(v_Attribute)) { + v_RedMaxValStr := f_SIP_SemicolonParamList_GetParamValue(v_Attribute.fmtp.params.paramList, "max-red"); // @sic R5w140113, R5w140009 sic@ + if (v_RedMaxValStr != "") { + v_RedMaxVal := str2int(v_RedMaxValStr); + if (not match(v_RedMaxVal, (0..220))) { /* @sic R5-141114sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid value for red-max parameter"); } - return; } - } else if (isvalue(p_PreviousSessionVersion)) { - v_PreviousSessionVersion := valueof(p_PreviousSessionVersion); - } else { - FatalError(__FILE__, __LINE__, ""); - } - // check session version for subsequent SDP message being different: - if (v_CurrentSessionVersion != v_PreviousSessionVersion + 1) { /* @sic R5-143201 sic@ */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "session version not incremented"); } } /* * @desc Check whether given media description contains default AMR codec * @param p_SDP_Media_Desc - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_SDP_CheckMediaDescr_AMR_8000_1(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC { - var template (omit) SDP_attribute v_Attribute; - var integer v_RedMaxVal; - var charstring v_RedMaxValStr; var charstring v_Fmt := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_Desc); if (v_Fmt == "") { /* @sic R5-141114: tsc_AMR_Fmtp_DefaultParameters -> tsc_AMR_Fmtp_DefaultParameters_RX_Pattern sic@ */ @@ -166,18 +155,48 @@ module IMS_Procedures_CallControl { } /* check of the red-max parameter: @sic R5-141114sic@ */ - v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_Media_Desc.attributes, cr_SDP_Attribute_fmtp(v_Fmt, cr_AMR_Fmtp_DefaultParameters)); - if (isvalue(v_Attribute)) { - v_RedMaxValStr := f_SIP_SemicolonParamList_GetParamValue(v_Attribute.fmtp.params.paramList, "max-red"); // @sic R5w140113, R5w140009 sic@ - if (v_RedMaxValStr != "") { - v_RedMaxVal := str2int(v_RedMaxValStr); - if (not match(v_RedMaxVal, (0..220))) { /* @sic R5-141114sic@ */ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid value for red-max parameter"); - } - } + fl_IMS_SDP_Fmtp_CheckMaxRed(p_SDP_Media_Desc.attributes, v_Fmt); + } + + /* + * @desc Check whether given media description contains AMR-WB/16000 codec + * @param p_SDP_Media_Desc + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_IMS_SDP_CheckMediaDescr_AMR_16000_1(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC + { + var charstring v_Fmt := f_SDP_MediaDescr_GetAMR_16000_1(p_SDP_Media_Desc); + + if (v_Fmt == "") { /* @sic R5-141114: tsc_AMR_Fmtp_DefaultParameters -> tsc_AMR_Fmtp_DefaultParameters_RX_Pattern sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "AMR/WB/1 not found in given media description"); + } + + /* check of the red-max parameter: */ + fl_IMS_SDP_Fmtp_CheckMaxRed(p_SDP_Media_Desc.attributes, v_Fmt); + } + + /* + * @desc Check whether given media description contains EVS/16000 codec + * @param p_SDP_Media_Desc + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_IMS_SDP_CheckMediaDescr_EVS_16000_1(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC + { + var charstring v_Fmt := f_SDP_MediaDescr_GetEVS_16000_1(p_SDP_Media_Desc); + + if (v_Fmt == "") { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "EVS/16000/1 not found in given media description"); } + + /* check of the red-max parameter: */ + fl_IMS_SDP_Fmtp_CheckMaxRed(p_SDP_Media_Desc.attributes, v_Fmt); } + /* + * @desc Check whether given media description contains default video codec + * @param p_SDP_Media_Desc + * @status APPROVED (IMS) + */ function f_IMS_SDP_CheckMediaDescr_H264_90000(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC { if (f_SDP_MediaDescr_GetH264_90000(p_SDP_Media_Desc) == "") { @@ -188,7 +207,7 @@ module IMS_Procedures_CallControl { /* * @desc DTMF Digits, Telephony Tones, and Telephony Signals (RFC 4733) * @param p_SDP_Media_Desc - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_SDP_CheckMediaDescr_DTMF(SDP_media_desc p_SDP_Media_Desc) runs on IMS_PTC { @@ -207,10 +226,9 @@ module IMS_Procedures_CallControl { function f_IMS_SIP_Reason_RX(integer p_CauseValue, template charstring p_Text := omit) runs on IMS_PTC return template (present) Reason { - var template (omit) integer v_UE_Release := f_IMS_PTC_GetUE_Release(); var template charstring v_ReasonText := p_Text; - if (not (ispresent(v_UE_Release) and (valueof(v_UE_Release) >= 10))) { // @sic R5s140234 change 1; R5-142948; R5-142287 change 3 sic@ + if (not f_IMS_PTC_UE_ReleaseGreaterOrEqual(10)) { // @sic R5s140234 change 1; R5-142948; R5-142287 change 3; R5s150630: f_IMS_PTC_UE_ReleaseGreaterOrEqual sic@ v_ReasonText := omit; } return cr_Reason(p_CauseValue, v_ReasonText); @@ -255,27 +273,48 @@ module IMS_Procedures_CallControl { /* * @desc returns expected route-set depending on whether the dialog is MO or MT - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_DialogIndex (default value: omit) * @return template (present) RouteBody_List * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function fl_RouteSet_RouteBodyList_RX(boolean p_IsEmergency := false) runs on IMS_PTC return template (present) RouteBody_List - { + function f_RouteSet_RouteBodyList_RX(IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) RouteBody_List + { /* @sic R5s150692 change 6: parameter p_EmergencyType sic@ */ var template (present) RouteBody_List v_RouteBodyList := {}; - if (f_IMS_PTC_ImsInfo_DialogIsMO()) { - v_RouteBodyList := fl_RouteSet_ReverseOrder(f_IMS_RouteSet_MO_Call_TX(p_IsEmergency)); + if (f_IMS_PTC_ImsInfo_DialogIsMO(p_DialogIndex)) { + v_RouteBodyList := fl_RouteSet_ReverseOrder(f_IMS_RouteSet_MO_Call_TX(p_EmergencyType)); /* @sic R5s150692 change 6 sic@ */ } else { v_RouteBodyList := f_IMS_RouteSet_MT_Call_TX(); } return v_RouteBodyList; } + /* + * @desc returns given RecordRoute but with address information of the first entry being set to ? + * this is needed as the first entry may be the IP address of the P-CSCF which may be represented differently + * @param p_Invite_RecordRoute + * @return template RecordRoute + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_RecordRoute_AsInInvite_RX(template (omit) RecordRoute p_Invite_RecordRoute) return template RecordRoute + { + var template RecordRoute v_RecordRoute := omit; + + if (ispresent(p_Invite_RecordRoute)) { + v_RecordRoute := p_Invite_RecordRoute; + v_RecordRoute.routeBody[0].nameAddr.addrSpec.components := ?; /* as the PCSCF address may be an IPv6 address in may be represented differently by the UE than sent to the UE + the address needs to be checked explicitly after receiving (@sic R5s150039 sic@) */ + } + return v_RecordRoute; + } + /* * @desc revert entries of Route header * @param p_RecordRoute * @return template (present) Route - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function fl_Route_ReverseOrderOfRecordRouteRX(template (omit) RecordRoute p_RecordRoute) return template (present) Route { @@ -361,12 +400,13 @@ module IMS_Procedures_CallControl { /* * @desc build up Via header to be received from the UE in the INVITE request + * @param p_Port_us (default value: *) * @return template (present) Via * @status APPROVED (LTE, IMS_IRAT, IMS, LTE_A, LTE_IRAT) */ - function f_IMS_InviteRequest_ViaRX() runs on IMS_PTC return template (present) Via - { - var template integer v_Port_us := *; + function f_IMS_InviteRequest_ViaRX(template integer p_Port_us := *) runs on IMS_PTC return template (present) Via + { /* @sic R5-150745: still in A.2.10 the port number is mandatory for GIBA (in crast to A.2.1) => parameter p_Port_us sic@ */ + var template integer v_Port_us := p_Port_us; if (f_IMS_PTC_Security_IsStarted()) { v_Port_us := f_IMS_PTC_GetPort_us(); @@ -401,104 +441,6 @@ module IMS_Procedures_CallControl { return cs_Via(v_ViaBodyList); } - //---------------------------------------------------------------------------- - /* - * @desc returns either next Cseq value of ? if there has been no request sent by the UE so far - * @param p_CseqType (default value: dialogRemote) - * @param p_DialogIndex (default value: omit) - * @return template (present) integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_CSeqValueRX(IMS_PTC_CseqType_Type p_CseqType := dialogRemote, - template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) integer - { - var template (present) integer v_CSeqValue := ?; - - if (isvalue(f_IMS_PTC_ImsInfo_CseqGet(p_CseqType, p_DialogIndex))) { - v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(p_CseqType, p_DialogIndex); - } - return v_CSeqValue; - } - - /* - * @desc Build the From header for requests being received within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (present) From - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_FromHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) From - { /* @sic R5s140017 MCC160 implementation sic@ */ - /* @sic R5s140121 change 2.1: "runs on" added sic@ */ - var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogRemoteId); - return cr_FromWithTag(v_SipUrl, v_FromTag); - } - - /* - * @desc Build the To header for requests being received within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (present) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_ToHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) To - { /* @sic R5s140017 MCC160 implementation sic@ */ - var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogLocalId); - return cr_ToWithTag(v_SipUrl, v_ToTag); - } - - /* - * @desc Build the From header for requests being sent within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (value) From - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_FromHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) From - { /* @sic R5s140017 MCC160 implementation sic@ */ - /* @sic R5s140121 change 4.1: "runs on" added sic@ */ - var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogLocalId); - return cs_From(v_SipUrl, v_FromTag); - } - - /* - * @desc Build the To header for requests being sent within a dialog (e.g. PRACK or BYE) - * @param p_DialogIndex (default value: omit) - * @return template (value) To - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_RequestInDialog_ToHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) To - { /* @sic R5s140017 MCC160 implementation sic@ */ - var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before - var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogRemoteId); - return cs_ToWithTag(v_SipUrl, v_ToTag); - } - - /* - * @desc check to-tag of received response and store value if necessary (mainly called after receiving 180 or 183 response) - * @param p_ResponseMessageHeader - * @param p_DialogIndex (default value: omit) - * @status APPROVED (IMS, LTE_A, LTE_IRAT) - */ - function f_IMS_Dialog_SetRemoteTag(MessageHeader p_ResponseMessageHeader, - template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC - { /* @sic R5s140017 MCC160 implementation: f_IMS_PTC_ImsInfo_DialogGetToTag, f_IMS_PTC_ImsInfo_DialogSetToTag replaced by f_IMS_PTC_ImsInfo_DialogGetRemoteTag, f_IMS_PTC_ImsInfo_DialogSetRemoteTag sic@ */ - var template (omit) charstring v_DialogRemoteTag := f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex); - var template (omit) charstring v_ReceivedToTag := f_MessageHeader_GetToTag(p_ResponseMessageHeader); - var charstring v_ReceivedToTagValue; - - if (ispresent(v_ReceivedToTag)) { - v_ReceivedToTagValue := valueof(v_ReceivedToTag); - if (ispresent(v_DialogRemoteTag)) { // @sic R5s140173 sic@ - if (not match(v_ReceivedToTagValue, v_DialogRemoteTag)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid To-tag"); - } - } else { - f_IMS_PTC_ImsInfo_DialogSetRemoteTag(v_ReceivedToTagValue); - } - } - } - //============================================================================ // Functions to build responses to be sent to the UE //---------------------------------------------------------------------------- @@ -528,7 +470,7 @@ module IMS_Procedures_CallControl { * @param p_InviteRequest * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_PrackRequested (default value: true) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @return template (value) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @@ -536,17 +478,17 @@ module IMS_Procedures_CallControl { function f_IMS_InviteResponse_180_MessageHeaderTX(INVITE_Request p_InviteRequest, charstring p_ContactUri := px_IMS_CalleeContactUri, boolean p_PrackRequested := true, - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC return template (value) MessageHeader { // p_PrackRequested .. condition A3; needs to be true when the 180 response shall be acknowleged with a PRACK i.e. is "sent reliably" acc. to A.2.6 A3 - // p_IsEmergency .. condition A4 // p_SrvccAlertingSupported .. if voice call => condition A6; needs to be set to false for non-voice calls /* @sic R5s130333 change 2: new parameter p_PrackRequested sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5s140370 change 6: new parameter p_SrvccAlertingSupported sic@ */ + /* @sic R5s150692 change 11: parameter p_EmergencyType sic@ */ var MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; - var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_IsEmergency); /* @sic R5s130756 change 8: p_IsEmergency sic@ */ + var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_EmergencyType); /* @sic R5s150692 change 11 sic@ */ v_MessageHeader_Response.recordRoute := cs_RecordRoute(v_RouteBodyList); v_MessageHeader_Response.via := v_MessageHeader_Invite.via; @@ -560,11 +502,11 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.require := cs_Require(tsc_OptionTagList_100rel); /* -> reliable provisional responses acc. RFC 3262 */ v_MessageHeader_Response.rSeq := cs_RSeq(tsc_IMS_RSeqNumFor183 + 1); } - if (p_IsEmergency) { // Condition A4 + if (p_EmergencyType != NO_EMERGENCY) { // Condition A4 @sic R5s150692 change 11 sic@ v_MessageHeader_Response.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_lr_TX(tsc_IMS_Emergency_TelUri)); } if (p_SrvccAlertingSupported) { - v_MessageHeader_Response.featureCaps := cs_FeatureCaps(tsc_IMS_FeatureCap_SrvccAlerting); + v_MessageHeader_Response.featureCaps := cs_FeatureCaps({ cs_GenericParam(tsc_IMS_FeatureCap_SrvccAlerting)}); // @sic R5-145796 sic@ } return v_MessageHeader_Response; } @@ -599,23 +541,27 @@ module IMS_Procedures_CallControl { * @param p_AdditionalOptionTagsForRequire (default value: tsc_OptionTagList_Empty) * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_AditionalContactParams (default value: omit) - * @param p_IsEmergency (default value: false) - * @param p_Video (default value: tsc_IMS_VideoFeature) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_A6 (default value: pc_IMS_Video_FeatureTag) + * @param p_Earlymedia (default value: false) * @return template (value) MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_InviteResponse_183_MessageHeaderTX(INVITE_Request p_InviteRequest, OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty, charstring p_ContactUri := px_IMS_CalleeContactUri, template (omit) SemicolonParam_List p_AditionalContactParams := omit, - boolean p_IsEmergency := false, - boolean p_Video := tsc_IMS_VideoFeature) runs on IMS_PTC return template (value) MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_A6 := pc_IMS_Video_FeatureTag, + boolean p_Earlymedia := false) runs on IMS_PTC return template (value) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ + /* @sic R5s150692 change 7: parameter p_EmergencyType sic@ */ var MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; var template (omit) SemicolonParam_List v_ContactParams := p_AditionalContactParams; var OptionTag_List v_OptionTag_List := tsc_OptionTagList_100rel & p_AdditionalOptionTagsForRequire; // @sic R5-133629 sic@ - var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_IsEmergency); /* @sic R5s130756 change 8: p_IsEmergency sic@ */ + var template (value) RouteBody_List v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(p_EmergencyType); /* @sic R5s150692 change 7 sic@ */ v_MessageHeader_Response.recordRoute := cs_RecordRoute(v_RouteBodyList); v_MessageHeader_Response.via := v_MessageHeader_Invite.via; @@ -627,14 +573,19 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Response.cSeq := v_MessageHeader_Invite.cSeq; v_MessageHeader_Response.contentType := cs_ContentTypeSDP; - if (p_IsEmergency) { // Condition A5 + if (p_EmergencyType == ASSERTED_EMERGENCY) { // Condition A5 @sic R5s150692 change 7 sic@ v_MessageHeader_Response.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_lr_TX(tsc_IMS_Emergency_TelUri)); } - if (p_Video) { // @sic R5s130109 sic@ + if (pc_BSRVCC) { // @sic R5s140962 sic@ + v_MessageHeader_Response.featureCaps := cs_FeatureCaps({ cs_GenericParam(tsc_IMS_FeatureCap_SrvccPreAlerting)}); // @sic R5-145796 sic@ + } + if (p_A6) { // @sic R5s130109 sic@ v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("video")); } v_MessageHeader_Response.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_ContactUri), v_ContactParams); - + if (p_Earlymedia) { // @sic R5-151953 sic@ + v_MessageHeader_Response.pEarlyMedia := cs_PEarlyMedia({c_sendonly}) + } return v_MessageHeader_Response; } @@ -644,26 +595,43 @@ module IMS_Procedures_CallControl { * @param p_ContentType (default value: omit) * @param p_EmergencyTelURI (default value: omit) * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @param p_AdditionalOptionTagsForRequire (default value: tsc_OptionTagList_Empty) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @return template (value) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_OtherResponse_200_MessageHeaderTX(template (value) MessageHeader p_MessageHeader_Request, template (omit) ContentType p_ContentType := omit, template (omit) charstring p_EmergencyTelURI := omit, - charstring p_ContactUri := px_IMS_CalleeContactUri) runs on IMS_PTC return template (value) MessageHeader + charstring p_ContactUri := px_IMS_CalleeContactUri, + OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) + runs on IMS_PTC return template (value) MessageHeader { /* @sic R5-130683: common handling for INVITE and UPDATE sic@ */ /* p_EmergencyTelURI .. shall be set e.g. to tsc_IMS_Emergency_TelUri for condition A6 in A.3.1 */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150237: parameter p_AdditionalOptionTagsForRequire sic@ */ + /* @sic R5s150692 change 17: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; var charstring v_Method := valueof(p_MessageHeader_Request.cSeq.method); var boolean v_A1A3 := false; var template (value) RouteBody_List v_RouteBodyList; - var boolean v_IsEmergency := ispresent(p_EmergencyTelURI); // Condition A6 @sic R5s130756 change 10 sic@ + var IMS_Emergency_Type v_EmergencyType := p_EmergencyType; + var template (omit) Require v_Require := omit; + + if (lengthof(p_AdditionalOptionTagsForRequire) > 0) { + v_Require := cs_Require(p_AdditionalOptionTagsForRequire); + } + + if ((p_EmergencyType == ASSERTED_EMERGENCY) and (not (ispresent(p_EmergencyTelURI)))) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "EmergencyTelURI not provided for Asserted Emergency"); /* @sic R5s150692 change 17 sic@ */ + } select (v_Method) { case ("INVITE", "UPDATE") { v_A1A3 := true; } } v_MessageHeader_Response.via := p_MessageHeader_Request.via; + v_MessageHeader_Response.require := v_Require; /* @sic R5s150237 change 1 sic@ */ v_MessageHeader_Response.fromField := p_MessageHeader_Request.fromField; v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_MessageHeader_Request); /* @sic R5-131897, R5-132063 - generic handling of to-tags sic@ */ v_MessageHeader_Response.callId := p_MessageHeader_Request.callId; @@ -672,11 +640,11 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.contentType := p_ContentType; if (v_A1A3) { - v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(v_IsEmergency); /* @sic R5s130756 change 8: p_IsEmergency sic@ */ + v_RouteBodyList := f_IMS_RouteSet_MO_Call_TX(v_EmergencyType); /* @sic R5s150692 change 17 sic@ */ v_MessageHeader_Response.recordRoute := cs_RecordRoute(v_RouteBodyList); v_MessageHeader_Response.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_ContactUri)); } - if (v_IsEmergency) { // Condition A6 + if (v_EmergencyType != NO_EMERGENCY) { // Condition A6 v_MessageHeader_Response.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_lr_TX(valueof(p_EmergencyTelURI))); } return v_MessageHeader_Response; @@ -771,32 +739,36 @@ module IMS_Procedures_CallControl { return v_MessageHeader_Response; } - + /* * @desc 180 Ringing for INVITE (see TS 34.229, A.2.6) * @param p_InviteRequest - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_ContentType (default value: *) * @param p_ContentLength (default value: ?) * @return template (present) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_InviteResponse_180_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, template ContentType p_ContentType := *, template (present) ContentLength p_ContentLength := ?) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5-140975: new parameters p_ContentType, p_ContentLength to ensure that the content type is omit in case of C.11 sic@ */ + /* @sic R5s150692 change 22: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Response := cr_MessageHeader_Dummy; var integer v_Port_us := f_IMS_PTC_GetPort_us(); - v_MessageHeader_Response.recordRoute := v_MessageHeader_Invite.recordRoute; /* @sic R5s130510 change 9 sic@ */ + v_MessageHeader_Response.recordRoute := f_IMS_RecordRoute_AsInInvite_RX(v_MessageHeader_Invite.recordRoute); /* @sic R5s130510 change 9 sic@ + @sic R5s150039 change 2 sic@ */ + v_MessageHeader_Response.via := f_Via_ResponseRX(v_MessageHeader_Invite.via); /* @sic R5s140350 sic@ */ - v_MessageHeader_Response.fromField := f_IMS_Response_FromHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ - v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ + v_MessageHeader_Response.fromField := f_IMS_Response_FromHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ - v_MessageHeader_Response.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us), cr_FeatureParam_3gpp_icsi_ref); // host address needs to be checked after receiving + v_MessageHeader_Response.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us), cr_FeatureParamList_3gpp_icsi_ref); /* host address needs to be checked after receiving + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ v_MessageHeader_Response.callId := v_MessageHeader_Invite.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Response.cSeq := v_MessageHeader_Invite.cSeq; @@ -804,7 +776,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.contentLength := p_ContentLength; /* @sic R5-140975 sic@ */ v_MessageHeader_Response.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); // NOTE: acc. A.2.6 there is no condition regarding GIBA - if (p_IsEmergency) { // Condition A4 + if (p_EmergencyType == ASSERTED_EMERGENCY) { // Condition A4 @sic R5s150692 change 22 sic@ v_MessageHeader_Response.pAssertedID := cr_PAssertedId(f_SIP_BuildSipUri_lr_RX(tsc_IMS_Emergency_TelUri)); } return v_MessageHeader_Response; @@ -814,24 +786,33 @@ module IMS_Procedures_CallControl { * @desc 183 Session Progress for INVITE (see TS 34.229, A.2.3) * @param p_InviteRequest * @param p_AdditionalOptionTagsForRequire (default value: tsc_OptionTagList_Empty) + * @param p_A7 (default value: pc_IMS_Video_FeatureTag) * @return template (present) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_InviteResponse_183_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, - OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty) + OptionTag_List p_AdditionalOptionTagsForRequire := tsc_OptionTagList_Empty, + boolean p_A7 := pc_IMS_Video_FeatureTag) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Response := cr_MessageHeader_Dummy; var integer v_Port_us := f_IMS_PTC_GetPort_us(); var OptionTag_List v_OptionTag_List := tsc_OptionTagList_100rel & p_AdditionalOptionTagsForRequire; // @sic R5-133629 sic@ - + var template (present) SemicolonParam_List v_ContactParams := { cr_FeatureParam_3gpp_icsi_ref }; + + if (p_A7) { /* @sic R5s150180 sic@ */ + v_ContactParams := f_SemicolonParam_List_Add_RX(v_ContactParams, cr_FeatureParam_Video); + } + v_MessageHeader_Response.via := f_Via_ResponseRX(v_MessageHeader_Invite.via); /* @sic R5s140350 sic@ */ - v_MessageHeader_Response.recordRoute := v_MessageHeader_Invite.recordRoute; /* @sic R5s130510 change 6.1, R5-135004 change 1 sic@ */ + v_MessageHeader_Response.recordRoute := f_IMS_RecordRoute_AsInInvite_RX(v_MessageHeader_Invite.recordRoute); /* @sic R5s130510 change 6.1, R5-135004 change 1 sic@ + @sic R5s150039 change 2 sic@ */ v_MessageHeader_Response.require := cr_Require(v_OptionTag_List); v_MessageHeader_Response.fromField := f_IMS_Response_FromHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderRX(v_MessageHeader_Invite); /* @sic R5s130453 sic@ */ - v_MessageHeader_Response.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us), cr_FeatureParam_3gpp_icsi_ref); // host address needs to be checked after receiving + v_MessageHeader_Response.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us), superset(all from v_ContactParams)); /* host address needs to be checked after receiving + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ v_MessageHeader_Response.rSeq := cr_RSeq(?); /* @sic R5s130510 sic@ */ v_MessageHeader_Response.callId := v_MessageHeader_Invite.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ @@ -860,7 +841,7 @@ module IMS_Procedures_CallControl { * @desc 380 Alternative Service (see TS 34.229, A.4.1) * @param p_InviteRequest * @return template (value) MessageHeader - * @status APPROVED (IMS) + * @status APPROVED (IMS, IMS_IRAT) */ function f_IMS_InviteResponse_380_MessageHeaderTX(INVITE_Request p_InviteRequest) runs on IMS_PTC return template (value) MessageHeader { @@ -869,7 +850,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Response.via := v_MessageHeader_Invite.via; v_MessageHeader_Response.fromField := v_MessageHeader_Invite.fromField; - v_MessageHeader_Response.toField := cs_ToDef(f_Addr_Union_GetSipUrl(v_MessageHeader_Invite.toField.addressField)); + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(v_MessageHeader_Invite); /* @sic R5s140788 change 16 - MCC160 Implementation sic@ */ v_MessageHeader_Response.pAssertedID := cs_PAssertedId(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get())); /* @sic R5-144747: removal of px_IMS_Pcscf_Emg => f_IMS_PTC_Pcscf_Get sic@ */ v_MessageHeader_Response.callId := v_MessageHeader_Invite.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ @@ -908,8 +889,8 @@ module IMS_Procedures_CallControl { * @param p_Context (default value: A_2_1_A4) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @param p_MTSI (default value: pc_MultimediaTelephonyService) - * @param p_Video (default value: tsc_IMS_VideoFeature) - * @param p_SessionIdSupported (default value: false) + * @param p_Video (default value: pc_IMS_Video_FeatureTag) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @param p_CSeqValue (default value: 4711) * @return template (value) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) @@ -918,12 +899,15 @@ module IMS_Procedures_CallControl { INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert, boolean p_MTSI := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ - boolean p_Video := tsc_IMS_VideoFeature, - boolean p_SessionIdSupported := false, + boolean p_Video := pc_IMS_Video_FeatureTag, + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported, integer p_CSeqValue := 4711) runs on IMS_PTC return template (value) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5-140915 MT call hold requires re-INVITE => new parameter p_Context for A4/A5 sic@ */ /* @sic R5s140385 change 6: new parameter p_SrvccAlertingSupported sic@ */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ + var template (value) MessageHeader v_MessageHeader_Invite := cs_MessageHeader_Dummy; var template (value) SipUrl v_PublicUserId_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); // @sic R5-133304: use default public user id sic@ var template (omit) SemicolonParam_List v_ContactParams := omit; @@ -996,7 +980,7 @@ module IMS_Procedures_CallControl { if (p_Context != A_2_1_A5) { if (p_SrvccAlertingSupported) { /* @sic R5s140385 change 6 - NOTE: feature caps shall only be inserted when creating a voice call sic@ */ - v_MessageHeader_Invite.featureCaps := cs_FeatureCaps(tsc_IMS_FeatureCap_SrvccAlerting); + v_MessageHeader_Invite.featureCaps := cs_FeatureCaps({ cs_GenericParam(tsc_IMS_FeatureCap_SrvccAlerting)}); // @sic R5-145796 sic@ } f_IMS_PTC_ImsInfo_DialogInit(dialogLocal, valueof(v_MessageHeader_Invite)); @@ -1057,6 +1041,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Update.cSeq := cs_CseqDef(v_CSeqValue, "UPDATE"); v_MessageHeader_Update.maxForwards := cs_MaxForwardsDef; v_MessageHeader_Update.contentType := cs_ContentTypeSDP; + v_MessageHeader_Update.contact := v_MessageHeader_Invite.contact; /* @sic R5-150692 sic@ */ return v_MessageHeader_Update; } @@ -1137,7 +1122,7 @@ module IMS_Procedures_CallControl { * @param p_Context (default value: A_2_1_A4) * @param p_A3 (default value: pc_MultimediaTelephonyService) * @param p_A8 (default value: pc_IMS_Geolocation) - * @param p_A9 (default value: false) + * @param p_A9 (default value: pc_IMS_SessionIdSupported) * @param p_A11 (default value: false) * @return template (present) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @@ -1148,12 +1133,12 @@ module IMS_Procedures_CallControl { INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, boolean p_A3 := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ boolean p_A8 := pc_IMS_Geolocation, - boolean p_A9 := false, + boolean p_A9 := pc_IMS_SessionIdSupported, boolean p_A11 := false) runs on IMS_PTC return template (present) MessageHeader { /* p_A3: MTSI p_A8: UE uses Geolocation header to provide its geographical location for emergency session setup, has obtained its location and is setting up an emergency session - p_A9: UE supports Session-ID + p_A9: UE supports Session-ID @sic R5s150086: pc_IMS_SessionIdSupported per default sic@ p_A11: INVITE for creating a video call and UE supports video media feature tag NOTE1: If SigComp shall be applied the param "comp=sigcomp" is optional for Via, Route and Contact NOTE2: condition A5 (re-INVITE within a dialog) is not considered yet and will have impact e.g. on checking of the From/To headers */ @@ -1170,14 +1155,20 @@ module IMS_Procedures_CallControl { var template DisplayName v_DisplayName := *; var template (present) SipUrl v_SipUrlFrom := ?; /* per default any SIP URI is accepted in the From header in the first place; further checks may be applied in f_IMS_A_2_1_Invite_CommonChecks (depending on the conditions acc. to A.2.1 */ + var template (present) charstring v_Pcscf; var template (present) charstring v_MediaType := "application/sdp"; var template (present) CallId v_CallId; var template (present) integer v_CSeqValue := ?; var template (present) From v_From; var template (present) To v_To; var template SessionId v_SessionId; + var template AcceptBody_List v_AcceptBodyList := {}; var OptionTag_List v_OptionTag_List := tsc_OptionTagList_100rel & p_AdditionalOptionTagsForSupported; + if (pc_IMS_CS_PS_SRVCCMidCall or pc_IMS_CS_PS_SRVCCAlert) { // @sic R5-145746 sic@ + v_OptionTag_List := v_OptionTag_List & tsc_OptionTagList_norefersub; + } + if (p_Context == A_2_1_A6) { // INVITE for creating an emergency session in case of no registration // Via, Route, Contact: ports to be used v_Port_us := ?; @@ -1195,7 +1186,7 @@ module IMS_Procedures_CallControl { } if (p_Context == A_2_1_A5) { /* re-invite @sic R5s140017 MCC160 implementation sic@ */ - v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(); + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(); v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); v_From := f_IMS_RequestInDialog_FromHeaderRX(); v_To := f_IMS_RequestInDialog_ToHeaderRX(); @@ -1204,8 +1195,13 @@ module IMS_Procedures_CallControl { } else { /* normal case: no re-invite */ // route body acc. to conditions in A.2.1 - v_RouteBodyList[0] := cr_RouteBody(*, cr_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps)); - if (not match(p_Context, (A_2_1_A6, A_2_1_A7))) { // => no emergency call + v_Pcscf := ?; /* @sic R5s140934 change 6: P-CSCF address is checked later on sic@ */ + + + if (match(p_Context, (A_2_1_A6, A_2_1_A7))) { // => emergency call + v_RouteBodyList[0] := cr_RouteBody(*, cr_SipUri_HostPort(v_Pcscf, v_Port_ps)); /* @sic R5s150817: "loose routing" parameter not mandatory for emergency call sic@ */ + } else { + v_RouteBodyList[0] := cr_RouteBody(*, cr_SipUri_HostPort_lr(v_Pcscf, v_Port_ps)); /* @sic R5s140873: v_Pcscf; R5s140934 change 6 sic@ */ v_RouteBodyList[1] := cr_RouteBody(*, cr_SipUri_HostPort_lr(px_IMS_Scscf)); } if (p_A8) { @@ -1228,7 +1224,8 @@ module IMS_Procedures_CallControl { v_MessageHeader_Invite.sessionId := v_SessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Invite.cSeq := cr_CseqDef(v_CSeqValue, "INVITE"); /* additional checks in f_IMS_A_2_1_Invite_CommonChecks: A5 */ v_MessageHeader_Invite.supported := cr_Supported(v_OptionTag_List); - v_MessageHeader_Invite.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us)); /* additional checks in f_IMS_A_2_1_Invite_CommonChecks: check of FQDN or IP address, check of feature-param for A3, A6, A10, A12 */ + v_MessageHeader_Invite.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* additional checks in f_IMS_A_2_1_Invite_CommonChecks: check of FQDN or IP address, check of feature-param for A3, A6, A10, A12 + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ v_MessageHeader_Invite.contentType := cr_ContentType(v_MediaType); v_MessageHeader_Invite.maxForwards := cr_MaxForwardsDef; @@ -1250,9 +1247,21 @@ module IMS_Procedures_CallControl { if (not v_IsGiba) { v_MessageHeader_Invite.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); } + if (p_Context == A_2_1_A4) { /* @sic R5s140017 change 9.3 sic@ */ - v_MessageHeader_Invite.accept := cr_Accept({cr_AcceptBody("application/sdp"), cr_AcceptBody("application/3gpp-ims+xml"), *}); + v_AcceptBodyList := {cr_AcceptBody("application/sdp"), cr_AcceptBody("application/3gpp-ims+xml")}; + } + if (pc_IMS_CS_PS_SRVCCMidCall) { // @sic R5-145746 sic@ + v_AcceptBodyList[lengthof(v_AcceptBodyList)] := cr_AcceptBody("application/vnd.3gpp.mid-call+xml"); // add another element in the array + } + if (pc_IMS_CS_PS_SRVCCAlert) { // @sic R5-145746 sic@ + v_AcceptBodyList[lengthof(v_AcceptBodyList)] := cr_AcceptBody("application/vnd.3gpp.state-and-event-info+xml"); // add another element in the array + v_MessageHeader_Invite.recvInfo := cr_RecvInfo ({cr_InfoPackage_Type("g.3gpp.state-and-event")}); // @sic R5-145746, R5s150704 sic@ } + if (lengthof(v_AcceptBodyList) > 0) { + v_MessageHeader_Invite.accept := cr_Accept(superset(all from v_AcceptBodyList)); + } + if (p_A8) { v_MessageHeader_Invite.geolocation := cr_GeolocationAny; // Checked in f_IMS_A_2_1_Invite_CommonChecks v_MessageHeader_Invite.geolocationRouting := cr_GeolocationRoutingAny; // Checked in f_IMS_A_2_1_Invite_CommonChecks @sic R5-133151 sic@ @@ -1278,7 +1287,7 @@ module IMS_Procedures_CallControl { * @param p_MessageHeader_PrevReliableResponse * @param p_ContentType (default value: *) * @return template (present) MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_PrackRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, template (value) MessageHeader p_MessageHeader_PrevReliableResponse, @@ -1308,18 +1317,20 @@ module IMS_Procedures_CallControl { /* * @desc UPDATE (see TS 34.229, A.2.5) * @param p_InviteRequest + * @param p_EmergencyType (default value: NO_EMERGENCY) * @return template (present) MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ - function f_IMS_UpdateRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest) + function f_IMS_UpdateRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150692 change 8: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Update := cr_MessageHeader_Dummy; var template (present) integer v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(); - var template (present) RouteBody_List v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(); /* @sic R5s140385 change 3 - MCC160 Implementation: sic@ - In case of MO call establishment the results in f_IMS_PTC_ImsInfo_DialogIsMO - what is the same as used in f_IMS_InviteResponse_183_MessageHeaderTX */ + var template (present) RouteBody_List v_RouteBodyList := f_RouteSet_RouteBodyList_RX(p_EmergencyType); /* @sic R5s140385 change 3 - MCC160 Implementation: sic@ + @sic R5s150692 change 8 sic@ */ var template (present) Via v_Via; if (f_IMS_PTC_ImsInfo_DialogIsMO()) { /* @sic R5s140385 change 3 - MCC160 Implementation sic@ */ @@ -1337,6 +1348,7 @@ module IMS_Procedures_CallControl { v_MessageHeader_Update.cSeq := cr_CseqDef(v_CSeqValue, "UPDATE"); v_MessageHeader_Update.maxForwards := cr_MaxForwardsDef; v_MessageHeader_Update.contentType := cr_ContentTypeSDP; + v_MessageHeader_Update.contact := cr_Contact(?); /* @sic R5-150692 sic@ */ if (not f_IMS_PTC_SecurityScheme_IsGiba()) { v_MessageHeader_Update.require := cr_RequireSecAgree; @@ -1354,20 +1366,20 @@ module IMS_Procedures_CallControl { * @desc ACK (see TS 34.229, A.2.7) * @param p_InviteRequest * @param p_StatusLine_PrevResponse - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_IsReInvite (default value: false) * @return template (present) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_AckRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, template (value) StatusLine p_StatusLine_PrevResponse, - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, boolean p_IsReInvite := false) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130684: p_StatusLine_PrevResponse made mandatory, p_MessageHeader_PrevResponse removed, new parameter p_IsGiba sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ - /* @sic R5s130897 change 2: new parameter p_IsEmergency sic@ */ /* @sic R5-141115: new parameter p_IsReInvite sic@ */ + /* @sic R5s150692 change 18: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Ack := cr_MessageHeader_Dummy; var integer v_CSeqValue := f_MessageHeader_GetCseqValue(v_MessageHeader_Invite); @@ -1378,9 +1390,10 @@ module IMS_Procedures_CallControl { if (p_IsReInvite or not v_Is2xxResponse) { /* @sic R5-141115 sic@ */ v_RouteBodyList := p_InviteRequest.msgHeader.route.routeBody; /* @sic R5-134958, R5s130885: use the Route header of the INVITE in case of e.g. 5XX responses (see RFC 3261 cl. 17.1.1.3) sic@ */ } else { - v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(p_IsEmergency); /* @sic R5s130684: same as for 180 or 183 response in reverse order sic@ + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(p_EmergencyType); /* @sic R5s130684: same as for 180 or 183 response in reverse order sic@ @sic R5s130897 change 3 sic@ - @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ */ + @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ + @sic R5s150692 change 18 sic@ */ } if (v_Is2xxResponse) { /* @sic R5-130682: ACK for 2xx response sic@ */ @@ -1404,17 +1417,19 @@ module IMS_Procedures_CallControl { /* * @desc BYE (see TS 34.229, A.2.8) * @param p_InviteRequest - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_DialogIndex (default value: omit) * @return template (present) MessageHeader * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_ByeRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest, - boolean p_IsEmergency := false) runs on IMS_PTC return template (present) MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ - /* @sic R5s130754 change 3: p_IsEmergency sic@ */ + /* @sic R5s150692 change 19: parameter p_EmergencyType sic@ */ var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; var template (present) MessageHeader v_MessageHeader_Bye := cr_MessageHeader_Dummy; - var integer v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote); + var integer v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote, p_DialogIndex); var boolean v_SecurityIsStarted := f_IMS_PTC_Security_IsStarted(); /* @sic R5s130988 Change 2-5 - MCC160 Implementation sic@ */ var template (present) RouteBody_List v_RouteBodyList; var template (present) Via v_Via; @@ -1425,14 +1440,15 @@ module IMS_Procedures_CallControl { } else { /* in case of MO call establishment the route set as for the 183 response shall be used (in reverse order) */ v_Via := fl_Via_AsInPrevInvite(v_MessageHeader_Invite.via) } - v_RouteBodyList := fl_RouteSet_RouteBodyList_RX(p_IsEmergency); /* @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ */ + v_RouteBodyList := f_RouteSet_RouteBodyList_RX(p_EmergencyType, p_DialogIndex); /* @sic R5s140017 MCC160 implementation: re-INVITE - Route is different for MO and MT calls sic@ + @sic R5s150692 change 19 sic@ */ v_MessageHeader_Bye.via := v_Via; v_MessageHeader_Bye.route := cr_Route(v_RouteBodyList); - v_MessageHeader_Bye.toField := f_IMS_RequestInDialog_ToHeaderRX(); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ - v_MessageHeader_Bye.fromField := f_IMS_RequestInDialog_FromHeaderRX(); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ + v_MessageHeader_Bye.toField := f_IMS_RequestInDialog_ToHeaderRX(p_DialogIndex); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ + v_MessageHeader_Bye.fromField := f_IMS_RequestInDialog_FromHeaderRX(p_DialogIndex); /* @sic R5s130497 change 1 - MCC160 implementation; R5s140017 MCC160 implementation sic@ */ v_MessageHeader_Bye.callId := v_MessageHeader_Invite.callId; - v_MessageHeader_Bye.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ + v_MessageHeader_Bye.sessionId := v_MessageHeader_Invite.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Bye.cSeq := cr_CseqDef(v_CSeqValue, "BYE"); v_MessageHeader_Bye.maxForwards := cr_MaxForwardsDef; @@ -1475,7 +1491,7 @@ module IMS_Procedures_CallControl { * @param p_Context (default value: A_2_1_A4) * @param p_A3 (default value: false) * @param p_A8 (default value: false) - * @param p_A10 (default value: false) + * @param p_A10 (default value: pc_IMS_Video_FeatureTag) * @param p_A11 (default value: false) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @@ -1484,12 +1500,13 @@ module IMS_Procedures_CallControl { INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, boolean p_A3 := false, boolean p_A8 := false, - boolean p_A10 := false, + boolean p_A10 := pc_IMS_Video_FeatureTag, boolean p_A11 := false, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC { // p_A12 .. shall be pc_IMS_SRVCCAlert for voice call; needs to be set to false for non-voice calls /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s140370 change 7: pc_IMS_SRVCCAlert default value for p_A12, p_A12 renamed to p_SrvccAlertingSupported sic@ */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ var MessageHeader v_MessageHeader := p_IMS_INVITE_REQ.Request.Invite.msgHeader; var SemicolonParam_List v_ContactParams := {}; var SemicolonParam_List v_AcceptContactParams := {}; @@ -1503,7 +1520,6 @@ module IMS_Procedures_CallControl { var boolean v_CheckRport := (p_Context == A_2_1_A6); var boolean v_A12 := p_SrvccAlertingSupported and (p_Context != A_2_1_A5); /* @sic R5s140370 change 7 sic@ */ var integer i; - var charstring v_IMEI; var template (present) GenValue v_SipInstanceValue; if (ispresent(v_MessageHeader.contact.contactBody.contactAddresses[0].contactParams)) { @@ -1515,9 +1531,10 @@ module IMS_Procedures_CallControl { // **** Common checks **** f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol, v_AllowFQDN, v_CheckRport); // check whether via contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) if (p_Context != A_2_1_A5) { - f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // check that there is no To tag + f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // check that there is no To tag + f_IMS_MessageHeader_Request_CheckRoute(v_MessageHeader); // @sic R5s140934 change 7 sic@ } // **** Check URIs in From header, P-Preferred-Identity header and further headers **** @@ -1545,8 +1562,7 @@ module IMS_Procedures_CallControl { /* @sic R5s140017 MCC160 implementation: no further checks for A5 are needed in this function anymore sic@ */ } case (A_2_1_A6) { - v_IMEI := hex2str(px_IMEI_Def); // @sic R5s130756 change 11 sic@ - v_SipInstanceValue := cr_GenValueQuoted(""); /* @sic R5w140111: GenValue sic@ */ + v_SipInstanceValue := cr_GenValueQuoted(f_SIP_InstanceId()); /* @sic R5s130756 change 11; R5w140111: GenValue; R5s141212 sic@ */ if (not match(v_ContactParams, cr_SemicolonParam_List_OneSpecificParam("+sip.instance", v_SipInstanceValue))) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "IMEI code of the UE, coded as specified in draft-montemurro-gsma-imei-urn, not matching"); } @@ -1569,11 +1585,11 @@ module IMS_Procedures_CallControl { // **** Check further Contact feature-param acc. to further conditions of A.2.1: **** // if (p_A3) { // A.1.2 condition A3: MTSI - if (not match(v_ContactParams, cr_FeatureParam_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ + if (not match(v_ContactParams, cr_FeatureParamList_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A3: Missing feature-param in Contact header"); } if (p_Context == A_2_1_A4) { // @sic R5-142949 sic@ - if (not match(v_AcceptContactParams, cr_FeatureParam_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ + if (not match(v_AcceptContactParams, cr_FeatureParamList_3gpp_icsi_ref)) { // @sic R5s130738: string needs to be quoted; R5-142247 sic@ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A3: Missing feature-param in AcceptContact header"); } } @@ -1585,14 +1601,14 @@ module IMS_Procedures_CallControl { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A8: Wrong geolocation-routing"); } } - if (p_A10) { // A.1.2 condition A10: UE indicates video media feature tag in REGISTER and INVITE request + if (p_A10 and p_A11 and (p_Context != A_2_1_A6) and (p_Context != A_2_1_A7)) { /* A.1.2 condition A10: UE supports video + A.1.2 condition A11: INVITE for creating a video call and UE supports video + @sic R5-153766: "p_A10 and p_A11 and (p_Context != A_2_1_A6) and (p_Context != A_2_1_A7)" sic@ */ if (not match(v_ContactParams, cr_VideoInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A10: Missing feature-param"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A10, A11: Missing feature-param in Contact header"); } - } - if (p_A11) { // A.1.2 condition A11: INVITE for creating a video call and UE supports video media feature tag if (not match(v_AcceptContactParams, cr_VideoInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A11: Missing feature-param"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "A.2.1 condition A10, A11: Missing feature-param in Accept-Contact header"); } } if (v_A12) { // A.1.2 condition A12: INVITE for creating a voice call and UE supports g.3gpp.srvcc-alerting media feature tag @@ -1655,7 +1671,7 @@ module IMS_Procedures_CallControl { else { v_Status_ElemList := v_Presence.tuple_list[0].status.elem_list; } - v_BitStr := oct2bit(char2oct(v_Status_ElemList[0])); // first of 1 or more geopriv elements + v_BitStr := oct2bit(str2oct(v_Status_ElemList[0])); // first of 1 or more geopriv elements if (decvalue(v_BitStr, v_Geolocation) != 0) { FatalError(__FILE__, __LINE__, "Geolocation cannot be decoded"); @@ -1687,38 +1703,40 @@ module IMS_Procedures_CallControl { * @param p_A3 (default value: pc_MultimediaTelephonyService) * @param p_A8 (default value: pc_IMS_Geolocation) * @param p_A9 (default value: false) - * @param p_A10 (default value: false) * @param p_A11 (default value: false) - * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) + * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @return template (omit) IMS_DATA_REQ * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_INVITE_ReceiveRequest_Common(INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, template (present) MessageHeader p_MessageHeader := cr_MessageHeader_Dummy, OptionTag_List p_AdditionalOptionTagsForSupported := tsc_OptionTagList_Empty, - template (omit) charstring p_OtherCalleeUri := omit, + template SipUrl p_OtherCalleeUri := omit, template (omit) float p_WaitDuration := omit, boolean p_A3 := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ boolean p_A8 := pc_IMS_Geolocation, boolean p_A9 := false, - boolean p_A10 := false, boolean p_A11 := false, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC return template (omit) IMS_DATA_REQ - { /* p_OtherCalleeUri .. if present to be used as CalleeUri; if omit default CalleeUri is used acc. to PIXITs and cntext */ + { /* p_OtherCalleeUri .. if present to be used as CalleeUri; if omit default CalleeUri is used acc. to PIXITs and context */ /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5-140799: additional parameter p_MessageHeader to deal with Reason header sic@ */ /* @sic R5s140370 change 7: pc_IMS_SRVCCAlert default value for p_A12, p_A12 renamed to p_SrvccAlertingSupported sic@ */ + /* @sic R5s150180: p_A10 removed sic@ */ + /* @sic R5s150177 change 9, R5s150204: p_OtherCalleeUri changed to "template SipUrl p_OtherCalleeUri"; NOTE: p_OtherCalleeUri shall either omit or "template (present)" (but not e.g. "*") sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; var template (present) MessageBody v_MessageBody := f_SIP_MessageBodySDP_RX(p_A8); /* @sic R5w140112 sic@ */ var template (present) MessageHeader v_MessageHeader_Invite; var template (present) SipUrl v_ExpectedCalleeUri; + var INVITE_Request v_InviteRequest; + var SipUrl v_ContactUrl; var boolean v_TimerControl := ispresent(p_WaitDuration); timer t_Timer; if (ispresent(p_OtherCalleeUri)) { - v_ExpectedCalleeUri := f_SIP_BuildSipUri_RX(valueof(p_OtherCalleeUri)); + v_ExpectedCalleeUri := p_OtherCalleeUri; /* @sic R5s150204 sic@ */ } else { select (p_Context) { case (A_2_1_A4) { // A4: INVITE creating a dialog @@ -1744,15 +1762,18 @@ module IMS_Procedures_CallControl { [] IMS_Server.receive(car_IMS_Invite_Request(cr_INVITE_Request(v_ExpectedCalleeUri, v_MessageHeader_Invite, v_MessageBody))) -> value v_IMS_DATA_REQ { t_Timer.stop; + v_InviteRequest := v_IMS_DATA_REQ.Request.Invite; if (p_Context == A_2_1_A6) { // emergency call without registration @sic R5s130756 change 14 sic@ + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_InviteRequest.msgHeader); /* @sic R5s150268 change 1 sic@ */ f_IMS_PTC_ImsInfo_Init(v_IMS_DATA_REQ.RoutingInfo.UE_Address, v_IMS_DATA_REQ.RoutingInfo.NW_Address); + f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl)); /* @sic R5s150268 change 1 sic@ */ } - f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, p_Context, p_A3, p_A8, p_A10, p_A11, p_SrvccAlertingSupported); + f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, p_Context, p_A3, p_A8, -, p_A11, p_SrvccAlertingSupported); if (p_Context != A_2_1_A5) { /* @sic R5s140020 change 8.2 sic@ */ - f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_IMS_DATA_REQ.Request.Invite.msgHeader); + f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_InviteRequest.msgHeader); } else { if (not isvalue(f_IMS_PTC_ImsInfo_CseqGet(dialogRemote))) { /* @sic R5s140235 sic@ */ - f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_IMS_DATA_REQ.Request.Invite.msgHeader.cSeq.seqNumber); + f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_InviteRequest.msgHeader.cSeq.seqNumber); } } return v_IMS_DATA_REQ; @@ -1770,27 +1791,27 @@ module IMS_Procedures_CallControl { * @param p_A3 (default value: pc_MultimediaTelephonyService) * @param p_A8 (default value: pc_IMS_Geolocation) * @param p_A9 (default value: false) - * @param p_A10 (default value: false) * @param p_A11 (default value: false) - * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) + * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) * @return IMS_DATA_REQ * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) */ function f_IMS_INVITE_ReceiveRequest(INVITE_A_2_1_Context_Type p_Context := A_2_1_A4, OptionTag_List p_AdditionalOptionTagsForSupported := tsc_OptionTagList_Empty, - template (omit) charstring p_OtherCalleeUri := omit, + template SipUrl p_OtherCalleeUri := omit, boolean p_A3 := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ boolean p_A8 := pc_IMS_Geolocation, boolean p_A9 := false, - boolean p_A10 := false, boolean p_A11 := false, boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC return IMS_DATA_REQ { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5s140370 change 7: pc_IMS_SRVCCAlert default value for p_A12, p_A12 renamed to p_SrvccAlertingSupported sic@ */ + /* @sic R5s150180: p_A10 removed sic@ */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ var template (omit) float v_WaitDuration := omit; // no wait duration var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; - v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(p_Context, -, p_AdditionalOptionTagsForSupported, p_OtherCalleeUri, v_WaitDuration, p_A3, p_A8, p_A9, p_A10, p_A11, p_SrvccAlertingSupported); + v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(p_Context, -, p_AdditionalOptionTagsForSupported, p_OtherCalleeUri, v_WaitDuration, p_A3, p_A8, p_A9, p_A11, p_SrvccAlertingSupported); return valueof(v_IMS_DATA_REQ); // as we don't have any WaitDuration f_IMS_INVITE_ReceiveRequest_Common returns a value (omit could only occur when a timer expires) } @@ -1816,52 +1837,71 @@ module IMS_Procedures_CallControl { f_IMS_PTC_ImsInfo_DialogRelease(); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ } + /* + * @desc MO Call release scc. to 34.229-1 C.32 + * @param p_DialogIndex (default value: omit) + * @param p_ContactSipUrl + * @param p_MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + altstep a_IMS_ReceiveByeSendOK(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit, + template (present) SipUrl p_ContactSipUrl, + template (present) MessageHeader p_MessageHeader) runs on IMS_PTC + { + var IMS_DATA_REQ v_IMS_DATA_REQ; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo; + + // --- Receive BYE + [] IMS_Server.receive(car_IMS_Bye_Request(cr_BYE_Request(p_ContactSipUrl, p_MessageHeader))) -> value v_IMS_DATA_REQ + { + if (f_IMS_PTC_ImsInfo_DialogIsReleased(p_DialogIndex)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Dialog has already been released"); + } + f_IMS_MessageHeader_Request_CheckVia(v_IMS_DATA_REQ.Request.Bye.msgHeader, v_IMS_DATA_REQ.RoutingInfo.Protocol); /* @sic R5-134116: additional check of Via header sic@ */ + + // --- Send 200 OK + v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Bye.msgHeader)))); + + f_IMS_PTC_ImsInfo_DialogRelease(p_DialogIndex); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ + } + } + /* * @desc MO Call release scc. to 34.229-1 C.32 * @param p_InviteRequest * @param p_ContactSipUrl (default value: f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri)) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @param p_AutonomousCallRelease (default value: false) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_IMS_CallReleaseMO(template (value) INVITE_Request p_InviteRequest, template (present) SipUrl p_ContactSipUrl := f_SIP_BuildSipUri_RX(px_IMS_CalleeContactUri), - boolean p_IsEmergency := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, boolean p_AutonomousCallRelease := false) runs on IMS_PTC { /* @sic R5s130333 change 6 - new parameter p_ContactUri sic@ */ /* @sic R5-134116: parameter p_RecordRouteOfPrevResponse removed sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ - /* @sic R5s130754 change 3: p_IsEmergency sic@ */ /* @sic R5s140370 change 14: p_AutonomousCallRelease sic@ */ - var IMS_DATA_REQ v_IMS_DATA_REQ; - var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - var template (present) MessageHeader v_MessageHeader_Bye; + /* @sic R5s150692 change 20: parameter p_EmergencyType sic@ */ + var template (present) MessageHeader v_MessageHeader_Bye := f_IMS_ByeRequest_MessageHeaderRX(p_InviteRequest, p_EmergencyType); /* @sic R5s150692 change 20 sic@ */ if (not p_AutonomousCallRelease) { f_UT_HangupIMSCall(MMI); /* @sic R5s130333 change 20, R5-134290 sic@ */ } - - // --- Receive BYE - v_MessageHeader_Bye := f_IMS_ByeRequest_MessageHeaderRX(p_InviteRequest, p_IsEmergency); - IMS_Server.receive(car_IMS_Bye_Request(cr_BYE_Request(p_ContactSipUrl, v_MessageHeader_Bye))) -> value v_IMS_DATA_REQ; - f_IMS_MessageHeader_Request_CheckVia(v_IMS_DATA_REQ.Request.Bye.msgHeader, v_IMS_DATA_REQ.RoutingInfo.Protocol); /* @sic R5-134116: additional check of Via header sic@ */ - - // --- Send 200 OK - v_RoutingInfo := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Bye.msgHeader)))); - - f_IMS_PTC_ImsInfo_DialogRelease(); /* there is no dialog anymore; @sic R5s140017 MCC160 implementation sic@ */ + a_IMS_ReceiveByeSendOK(-, p_ContactSipUrl, v_MessageHeader_Bye); /* @sic R5s150382 - Additional Change by MCC160 sic@ */ } - /* * @desc Emergency Call release (wrapper function) * @param p_InviteRequest + * @param p_AutonomousCallRelease (default value: false) * @status APPROVED (IMS, IMS_IRAT, LTE) */ - function f_IMS_EmergencyCallRelease(INVITE_Request p_InviteRequest) runs on IMS_PTC - { - f_IMS_CallReleaseMO(p_InviteRequest, -, true); + function f_IMS_EmergencyCallRelease(INVITE_Request p_InviteRequest, + boolean p_AutonomousCallRelease := false) runs on IMS_PTC + { /* @sic R5s141286 change 2: new parameter p_AutonomousCallRelease sic@ */ + f_IMS_CallReleaseMO(p_InviteRequest, -, REGULAR_EMERGENCY, p_AutonomousCallRelease); f_IMS_TCP_CloseHandling(waitAndClose); /* @sic R5s130988 change 1 - MCC160 implementation sic@ * @sic R5s140219 - additional changes sic@ * NOTE: for emergency call there is no user-initiated emergency deregistration (see 24.229 cl. 5.1.6.6); @@ -1881,7 +1921,7 @@ module IMS_Procedures_CallControl { */ function f_IMS_EmergencyCallSetup_AnnexC22(INVITE_A_2_1_Context_Type p_Context := A_2_1_A7, boolean p_GeolocationInfoAvailable := false, - template (omit) charstring p_OtherCalleeUri := omit) runs on IMS_PTC return INVITE_Request + template SipUrl p_OtherCalleeUri := omit) runs on IMS_PTC return INVITE_Request { /* p_Context .. A_2_1_A6 (INVITE for creating an emergency session in case of no registration) or * A_2_1_A7 (INVITE for creating an emergency session within an emergency registration) */ /* @sic R5s130988 change 6/7: sic@ @@ -1889,6 +1929,7 @@ module IMS_Procedures_CallControl { * => we cannot setup any address information before we have received the INVITE * => as the SDP message at step 1 contains address information we cannot build up the template in advance but need to match after the INVITE has been received */ /* @sic R5-140920: additional parameter p_OtherCalleeUri sic@ */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; var template(value) IMS_RoutingInfo_Type v_RoutingInfo_DL; var template (present) SipUrl v_CalleeContactSipUri; @@ -1899,7 +1940,7 @@ module IMS_Procedures_CallControl { var template (present) SDP_Message v_SDP_Message_Step1; var template (value) SDP_Message v_SDP_Message_Step4; var SDP_Message v_SDP_Message; - var boolean v_IsEmergency := true; + var IMS_Emergency_Type v_EmergencyType := REGULAR_EMERGENCY; var boolean v_PrackRequiredFor180Ringing := false; /* => there is no PRACK expected to acknowledge the 180 response */ var charstring v_FmtAudio; @@ -1920,16 +1961,16 @@ module IMS_Procedures_CallControl { IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); // Step 3. SS sends a 180 Ringing. - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine180, f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, -, v_PrackRequiredFor180Ringing, v_IsEmergency)))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine180, f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, -, v_PrackRequiredFor180Ringing, v_EmergencyType)))); // Step 4. SS responds to the invite INVITE with 200 OK including the SDP record. - v_SDP_Message_Step4 := f_IMS_BuildSDP_AnnexC22_Step4(v_FmtAudio, v_SDP_Message.origin.addr); - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP, tsc_IMS_Emergency_TelUri); + v_SDP_Message_Step4 := f_IMS_BuildSDP_AnnexC22_Step4(v_FmtAudio); /* @sic R5s141244: no origin address to be handed over anymore sic@ */ + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP, tsc_IMS_Emergency_TelUri, -, -, v_EmergencyType); v_CalleeContactSipUri := f_Addr_Union_GetSipUrl(v_MessageHeader_InviteResponse_200.contact.contactBody.contactAddresses[0].addressField); IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200, cs_MessageBody_SDP(v_SDP_Message_Step4)))); // Step 5. Finally, UE acknowledges call setup. - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, v_IsEmergency); // @sic R5s130897 change 2 sic@ + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, v_EmergencyType); // @sic R5s130897 change 2 sic@ IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactSipUri, v_MessageHeader_Ack))); return v_InviteRequest; } @@ -1943,28 +1984,30 @@ module IMS_Procedures_CallControl { * @param p_InviteRequestStep1 * @param p_SDP_MessageStep4 * @param p_Protocol + * @param p_AllowTrying (default value: true) * @return IMS_ResponseWithSdp_Type * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_MTCallSetup_Common_Steps3_4(template (value) INVITE_Request p_InviteRequestStep1, template (present) SDP_Message p_SDP_MessageStep4, - InternetProtocol_Type p_Protocol) runs on IMS_PTC return IMS_ResponseWithSdp_Type + InternetProtocol_Type p_Protocol, + boolean p_AllowTrying := true) runs on IMS_PTC return IMS_ResponseWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: returns IMS_ResponseWithSdp_Type instead of IMS_Response_Type sic@ */ var IMS_DATA_RSP v_IMS_DATA_RSP; - var boolean v_Trying := false; + var boolean v_AllowTrying := p_AllowTrying; var MessageHeader v_MessageHeader; var SDP_Message v_SDP_Message; var IMS_Response_Type v_SessionInProgress183; alt { // Step 3 - Receive optional 100 Trying - [not v_Trying] a_IMS_ReceiveResponse(p_InviteRequestStep1.msgHeader, - p_Protocol, - cr_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderRX(p_InviteRequestStep1)), - v_IMS_DATA_RSP) /* @sic R5s140350: v_IMS_DATA_RSP is 'out' parameter sic@ */ + [v_AllowTrying] a_IMS_ReceiveResponse(p_InviteRequestStep1.msgHeader, + p_Protocol, + cr_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderRX(p_InviteRequestStep1)), + v_IMS_DATA_RSP) /* @sic R5s140350: v_IMS_DATA_RSP is 'out' parameter sic@ */ { - v_Trying := true; + v_AllowTrying := false; repeat; } // Step 4 - Receive 183 Session in Progress @@ -1977,6 +2020,7 @@ module IMS_Procedures_CallControl { { v_SessionInProgress183 := v_IMS_DATA_RSP.Response; v_MessageHeader := v_SessionInProgress183.msgHeader; + f_IMS_MessageHeader_Response_CheckRecordRoute(v_MessageHeader); /* @sic R5s150039 Change 4 sic@ */ f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) f_IMS_Dialog_SetRemoteTag(v_MessageHeader); // check SDP message: @@ -2104,6 +2148,7 @@ module IMS_Procedures_CallControl { } } if (isbound(v_MessageHeader_Ringing)) { + f_IMS_MessageHeader_Response_CheckRecordRoute (v_MessageHeader_Ringing); /* @sic R5s150039 Change 5 sic@ */ f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader_Ringing); // check whether contact contains "SIP URI with IP address or FQDN" (see @sic R5s120727 sic@) if (p_SrvccAlerting) { /* @sic R5s140385 change 8 sic@ */ @@ -2180,18 +2225,20 @@ module IMS_Procedures_CallControl { //---------------------------------------------------------------------------- /* * @desc Build INVITE to be used for MO call estblishment (C.11) + * @param p_IsC45 (default value: false) * @return IMS_InviteRequestWithSdp_Type * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - function f_IMS_MTCallSetup_AnnexC11_INVITE() runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + function f_IMS_MTCallSetup_AnnexC11_INVITE(boolean p_IsC45:= false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ; initialisation of routing info sic@ */ + /* @sic R5-153798: p_IsC45 sic@ */ var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); var template (value) INVITE_Request v_InviteRequest; var template (value) MessageHeader v_MessageHeader_Invite; var template (value) SDP_Message v_SDP_MessageStep1; - v_SDP_MessageStep1 := f_IMS_BuildSDP_AnnexC11_Step1or7("step 1"); + v_SDP_MessageStep1 := f_IMS_BuildSDP_AnnexC11_Step1or7(-, p_IsC45); v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderTX(tsc_OptionTagList_precondition); v_InviteRequest := cs_INVITE_Request(v_ContactUrl, v_MessageHeader_Invite, cs_MessageBody_SDP(v_SDP_MessageStep1)); @@ -2202,10 +2249,12 @@ module IMS_Procedures_CallControl { * @desc MT speech call setup according to 34.229-1 Annex C.11, steps 1 to 4. * return p_SessionInProgress183 received in step 4 * @param p_InviteRequestWithSdp + * @param p_IsC45 (default value: false) * @return IMS_ResponseWithSdp_Type * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - function f_IMS_MTCallSetup_AnnexC11_Steps1_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC return IMS_ResponseWithSdp_Type + function f_IMS_MTCallSetup_AnnexC11_Steps1_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + boolean p_IsC45:= false) runs on IMS_PTC return IMS_ResponseWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequestWithSdp instead of p_InviteRequest sic@ */ /* @sic R5w140112: returns IMS_ResponseWithSdp_Type instead of IMS_Response_Type sic@ */ @@ -2219,7 +2268,7 @@ module IMS_Procedures_CallControl { // Step 2 - Void // Step 3 .. 4 - v_SDP_MessageStep4 := f_IMS_BuildSDP_AnnexC11_Step4or8("step 4"); + v_SDP_MessageStep4 := f_IMS_BuildSDP_AnnexC11_Step4or8("step 4", p_IsC45); return f_IMS_MTCallSetup_Common_Steps3_4(v_InviteRequest, v_SDP_MessageStep4, v_Protocol); } @@ -2227,28 +2276,25 @@ module IMS_Procedures_CallControl { /* * @desc MT speech call setup according to 34.229-1 Annex C.11, steps 7..11 * @param p_InviteRequestWithSdp + * @param p_SessionInProgress183 + * @param p_IsC45 (default value: false) * @return template (omit) MessageHeader * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - function f_IMS_MTCallSetup_AnnexC11_Steps7_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC return template (omit) MessageHeader + function f_IMS_MTCallSetup_AnnexC11_Steps7_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + IMS_ResponseWithSdp_Type p_SessionInProgress183, + boolean p_IsC45:= false) runs on IMS_PTC return template (omit) MessageHeader { /* @sic R5w140112: p_InviteRequestWithSdp instead of p_InviteRequest sic@ */ + /* @sic R5-153798: new parameter p_SessionInProgress183, p_IsC45 sic@ */ var template (value) INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var InternetProtocol_Type v_ProtocolUsedForInvite := p_InviteRequestWithSdp.RoutingInfo.Protocol; - var SDP_Message v_SDP_Message := p_InviteRequestWithSdp.SdpOffer; - var charstring v_Direction; + var SDP_Message v_SDP_Message183 := p_SessionInProgress183.SdpMessage; var template (value) SDP_Message v_Tx_SDP; var template (present) SDP_Message v_Rx_SDP; // Step 7 - 8. Send UPDATE, Receive 200 OK - // get curr:qos remote for SDP message in step 7 - if (isvalue(v_SDP_Message.media_list[0]) and - f_SDP_AttributeList_CheckAttribute(v_SDP_Message.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, c_none))) { // see C.11 step 7 Note 1 - v_Direction := c_none; - } else { - v_Direction := c_sendrecv; - } - v_Tx_SDP := f_IMS_BuildSDP_AnnexC11_Step1or7("step 7", cs_SDP_Attribute_curr_qos(c_remote, v_Direction)); - v_Rx_SDP := f_IMS_BuildSDP_AnnexC11_Step4or8("step 8"); // @sic R5s120530 change 3.16 sic@ + v_Tx_SDP := f_IMS_BuildSDP_AnnexC11_Step1or7(v_SDP_Message183, p_IsC45); /* @sic R5-153798 sic@*/ + v_Rx_SDP := f_IMS_BuildSDP_AnnexC11_Step4or8("step 8", p_IsC45); // @sic R5s120530 change 3.16 sic@ @sic R5-153798 sic@ return f_IMS_MTCallSetup_Common_Steps7_11(v_InviteRequest, v_Tx_SDP, v_Rx_SDP, v_ProtocolUsedForInvite, pc_IMS_SRVCCAlert); } @@ -2256,19 +2302,23 @@ module IMS_Procedures_CallControl { * @desc MT speech call setup according to 34.229-1 Annex C.11, steps 5 to 13 * @param p_InviteRequestWithSdp * @param p_SessionInProgress183 + * @param p_IsC45 (default value: false) * @status APPROVED (IMS, LTE_IRAT) */ function f_IMS_MTCallSetup_AnnexC11_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - IMS_Response_Type p_SessionInProgress183) runs on IMS_PTC + IMS_ResponseWithSdp_Type p_SessionInProgress183, + boolean p_IsC45 := false ) runs on IMS_PTC { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequestWithSdp instead of p_InviteRequest sic@ */ - var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.msgHeader; + /* @sic R5-153798: p_SessionInProgress183 changed to IMS_ResponseWithSdp_Type sic@ */ + /* @sic R5-153798: p_IsC45 sic@ */ + var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.Response.msgHeader; // Step 5 - 6. Send PRACK, Receive 200 OK f_IMS_MTCallSetup_SendPRACK_ReceiveOK(p_InviteRequestWithSdp.Invite, v_MessageHeader_PrevReliableResponse); // Step 7 - 11. Send UPDATE, Receive 200 OK, Receive optional 180 Ringing and send PRACK if requested - f_IMS_MTCallSetup_AnnexC11_Steps7_11(p_InviteRequestWithSdp); + f_IMS_MTCallSetup_AnnexC11_Steps7_11(p_InviteRequestWithSdp, p_SessionInProgress183, p_IsC45); /* @sic R5-153798 sic@ */ // Step 11A - Make UE accept the speech AMR offer f_UT_AnswerCall(MMI); // @sic R5-134290 sic@ @@ -2277,139 +2327,104 @@ module IMS_Procedures_CallControl { f_IMS_MTCallSetup_Common_Steps12_13(p_InviteRequestWithSdp); } - //============================================================================ - /* - * @desc 34.229-1 Annex C.24 - Step 1: INVITE with condition A5 - * @param p_WaitDuration (default value: omit) - * @param p_GeolocationInfoAvailable (default value: false) - * @return template (omit) IMS_InviteRequestWithSdp_Type - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_SRVCC_ReInvite_AnnexC24_Step1(template (omit) float p_WaitDuration := omit, - boolean p_GeolocationInfoAvailable := false) - runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type - { /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer sic@ */ - /* @sic R5s140331 change 8: parameter p_WaitDuration sic@ */ - var template (present) SDP_Message v_SDP_MessageRX := f_IMS_BuildSDP_AnnexC24_Step1(); - var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; - var IMS_DATA_REQ v_IMS_DATA_REQ_Val; - var SDP_Message v_SDP_Message; - - v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A5, -, -, -, p_WaitDuration, -, p_GeolocationInfoAvailable); - if (isvalue(v_IMS_DATA_REQ)) { - v_IMS_DATA_REQ_Val := valueof(v_IMS_DATA_REQ); - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ_Val.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); - - return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ_Val, v_SDP_Message); - } - return omit; - } - - //============================================================================ - /* - * @desc 34.229-1 Annex C.31 - Step 1: INVITE with condition A5 - * @param p_GeolocationInfoAvailable (default value: false) - * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (LTE_IRAT) - */ - function f_IMS_SRVCC_ReInvite_AnnexC31_Step1(boolean p_GeolocationInfoAvailable := false) - runs on IMS_PTC return IMS_InviteRequestWithSdp_Type - { /* @sic R5s140020, R5-140799: new function sic@ */ - /* @sic R5-140799 sic@ */ - /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - var template (omit) float v_WaitDuration := omit; // no wait duration - var template (present) SDP_Message v_SDP_MessageRX := f_IMS_BuildSDP_AnnexC31_Step1(); - var template (present) MessageHeader v_MessageHeader := cr_MessageHeader_Dummy; - var IMS_DATA_REQ v_IMS_DATA_REQ; - var SDP_Message v_SDP_Message; - - v_MessageHeader.reason := f_IMS_SIP_Reason487_RX(); // @sic R5s140370 change 3 - MCC160 implementation sic@ - - v_IMS_DATA_REQ := valueof(f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A5, v_MessageHeader, -, -, v_WaitDuration, -, p_GeolocationInfoAvailable)); - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_IMS_DATA_REQ.Request.Invite.messageBody, v_SDP_MessageRX, p_GeolocationInfoAvailable); - - return f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ, v_SDP_Message); - } - //============================================================================ /* * @desc 34.229-1 Annex C.21 - Step 2: receive INVITE acc. to A.2.1; * if the INVITE is optional a wait duration shall be given + * @param p_SDP_Message_Step2 * @param p_OtherCalleeUri (default value: omit) * @param p_A_2_1_Context (default value: A_2_1_A4) * @param p_WaitDuration (default value: omit) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_IsC44 (default value: false) * @return template (omit) IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_IMS_MOCallSetup_AnnexC21_Step2_Optional(template (omit) charstring p_OtherCalleeUri := omit, + function f_IMS_MOCallSetup_AnnexC21_Step2_Optional(template (present) SDP_Message p_SDP_Message_Step2, + template SipUrl p_OtherCalleeUri := omit, INVITE_A_2_1_Context_Type p_A_2_1_Context := A_2_1_A4, template (omit) float p_WaitDuration := omit, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type + boolean p_GeolocationInfoAvailable := false, + boolean p_IsC44 := false) runs on IMS_PTC return template (omit) IMS_InviteRequestWithSdp_Type { /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - var template (present) SDP_Message v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC21_Step2(); + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150704 - additional changes: parameter p_SDP_Message_Step2 sic@ */ var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; var template (omit) IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp := omit; var IMS_DATA_REQ v_IMS_DATA_REQ_Value; var SDP_Message v_SDP_Message; var INVITE_Request v_InviteRequest; - + // Step 2. Receive INVITE Request v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(p_A_2_1_Context, -, tsc_OptionTagList_precondition, p_OtherCalleeUri, p_WaitDuration, -, p_GeolocationInfoAvailable); if (isvalue(v_IMS_DATA_REQ)) { v_IMS_DATA_REQ_Value := valueof(v_IMS_DATA_REQ); v_InviteRequest := v_IMS_DATA_REQ_Value.Request.Invite; - v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_InviteRequest.messageBody, v_SDP_Message_Step2, p_GeolocationInfoAvailable); - + v_SDP_Message := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_InviteRequest.messageBody, p_SDP_Message_Step2, p_GeolocationInfoAvailable); + // check media description: + if (p_IsC44) { + f_IMS_SDP_CheckMediaDescr_EVS_16000_1(v_SDP_Message.media_list[0]); /* @sic R5-151968 sic@ */ + f_IMS_SDP_CheckMediaDescr_AMR_16000_1(v_SDP_Message.media_list[0]); /* @sic R5-151968 sic@ */ + } f_IMS_SDP_CheckMediaDescr_AMR_8000_1(v_SDP_Message.media_list[0]); f_IMS_SDP_CheckMediaDescr_DTMF(v_SDP_Message.media_list[0]); - + v_InviteRequestWithSdp := f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ_Value, v_SDP_Message); } return v_InviteRequestWithSdp; } - + /* - * @desc 34.229-1 Annex C.21 - Step 2: receive INVITE acc. to A.2.1 + * @desc 34.229-1 Annex C.21 and C.44 - Step 2: receive INVITE acc. to A.2.1 * @param p_OtherCalleeUri (default value: omit) * @param p_A_2_1_Context (default value: A_2_1_A4) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_IsC44 (default value: false) * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ - function f_IMS_MOCallSetup_AnnexC21_Step2_Common(template (omit) charstring p_OtherCalleeUri := omit, + function f_IMS_MOCallSetup_AnnexC21_Step2_Common(template SipUrl p_OtherCalleeUri := omit, INVITE_A_2_1_Context_Type p_A_2_1_Context := A_2_1_A4, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + boolean p_GeolocationInfoAvailable := false, + boolean p_IsC44 := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type { /* @sic R5-133276, R5-133301 Cleanup of functions for MO Call Setup sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ var template (omit) float v_WaitDuration := omit; var template (omit) IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; - v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Optional(p_OtherCalleeUri, p_A_2_1_Context, v_WaitDuration, p_GeolocationInfoAvailable); + var template (present) SDP_Message v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC21_Step2(); /* @sic R5s150704 - additional changes sic@ */ + v_InviteRequestWithSdp := f_IMS_MOCallSetup_AnnexC21_Step2_Optional(v_SDP_Message_Step2, p_OtherCalleeUri, p_A_2_1_Context, v_WaitDuration, p_GeolocationInfoAvailable, p_IsC44); return valueof(v_InviteRequestWithSdp); } /* - * @desc 34.229-1 Annex C.21 - Step 2: Wrapper function for A.2.1 condition A4 (INVITE creating a dialog) + * @desc 34.229-1 Annex C.21 C.44 - Step 2: Wrapper function for A.2.1 condition A4 (INVITE creating a dialog) * @param p_OtherCalleeUri (default value: omit) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_IsC44 (default value: false) * @return IMS_InviteRequestWithSdp_Type - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ - function f_IMS_MOCallSetup_AnnexC21_Step2_A4(template (omit) charstring p_OtherCalleeUri := omit, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + function f_IMS_MOCallSetup_AnnexC21_Step2_A4(template SipUrl p_OtherCalleeUri := omit, + boolean p_GeolocationInfoAvailable := false, + boolean p_IsC44 := false) runs on IMS_PTC return IMS_InviteRequestWithSdp_Type { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: return type changed to IMS_InviteRequestWithSdp_Type to carry decoded SDP offer */ - return f_IMS_MOCallSetup_AnnexC21_Step2_Common(p_OtherCalleeUri, A_2_1_A4, p_GeolocationInfoAvailable); + /* @sic R5s150204: p_OtherCalleeUri charstring -> SipUrl sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + return f_IMS_MOCallSetup_AnnexC21_Step2_Common(p_OtherCalleeUri, A_2_1_A4, p_GeolocationInfoAvailable, p_IsC44); } /* * @desc 34.229-1 Annex C.21 - Step 3: send 100 Trying * @param p_InviteRequestWithSdp - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21_Step3(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC { @@ -2417,58 +2432,72 @@ module IMS_Procedures_CallControl { IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(p_InviteRequestWithSdp.Invite)))); } - + /* * @desc 34.229-1 Annex C.21 - Step 3: send 183 Session In Progress * return MessageHeader of the 183 response * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_AditionalContactParams (default value: omit) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsC44 (default value: false) + * @param p_CodecName (default value: "AMR-8000") * @return MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21_Step4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_ContactUri := px_IMS_CalleeContactUri, template (omit) SemicolonParam_List p_AditionalContactParams := omit, - boolean p_IsEmergency := false) runs on IMS_PTC return MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsC44 := false, + charstring p_CodecName := "AMR-8000") runs on IMS_PTC return MessageHeader { /* @sic R5-142951: tsc_OptionTagList_precondition to be added to the Require header instead of the Supported header sic@ */ + /* @sic R5-151968 new parameter: p_IsC44 sic@ */ + /* @sic R5s150692 change 13: parameter p_EmergencyType sic@ */ + /* @sic R5-153950 parameter p_CodecName sic@ */ var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var SDP_Message v_SDP_MessageInvite := p_InviteRequestWithSdp.SdpOffer; /* @sic R5w140112 sic@ */ var template (value) MessageHeader v_MessageHeader_Response183; - var template (value) SDP_Message v_SDP_MessageTx := f_IMS_BuildSDP_AnnexC21_Step4(v_SDP_MessageInvite); /* @sic R5-135020 sic@ */ + var template (value) SDP_Message v_SDP_MessageTx := f_IMS_BuildSDP_AnnexC21_Step4(v_SDP_MessageInvite, p_IsC44, p_CodecName); /* @sic R5-135020 sic@ */ // Step 4. Send 183 Session In Progress. - v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri, p_AditionalContactParams, p_IsEmergency); /* @sic R5-142951 sic@ */ + v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_ContactUri, p_AditionalContactParams, p_EmergencyType); /* @sic R5-142951 sic@ @sic R5s150692 change 13 sic@*/ IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_MessageTx)))); return valueof(v_MessageHeader_Response183); } /* - * @desc 34.229-1 Annex C.21 - Step 3..4 + * @desc 34.229-1 Annex C.21 and C.44 - Step 3..4 * return MessageHeader of the 183 response * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_AditionalContactParams (default value: omit) - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsC44 (default value: false) + * @param p_CodecName (default value: "AMR-8000") * @return MessageHeader - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21_Step3_4(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_ContactUri := px_IMS_CalleeContactUri, template (omit) SemicolonParam_List p_AditionalContactParams := omit, - boolean p_IsEmergency := false) runs on IMS_PTC return MessageHeader + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsC44 := false, + charstring p_CodecName := "AMR-8000") runs on IMS_PTC return MessageHeader { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequestWithSdp instead of p_RoutingInfo_DL, p_InviteRequest sic@ */ /* @sic R5s140359 - Additional Changes: split (f_IMS_MOCallSetup_AnnexC21_Step3, f_IMS_MOCallSetup_AnnexC21_Step4) sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150692 change 12: parameter p_EmergencyType sic@ */ + /* @sic R5s153535, R5-153950 parameter p_CodecName sic@ */ var MessageHeader v_MessageHeader_Response183; - + // Step 3. SS sends a 100 Trying provisional response. f_IMS_MOCallSetup_AnnexC21_Step3(p_InviteRequestWithSdp); - + // Step 4. Send 183 Session In Progress. - v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step4(p_InviteRequestWithSdp, p_ContactUri, p_AditionalContactParams, p_IsEmergency); + v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step4(p_InviteRequestWithSdp, p_ContactUri, p_AditionalContactParams, p_EmergencyType, p_IsC44, p_CodecName); /* @sic R5s150692 change 12 sic@ @sic R5s153535, R5-153950 sic@*/ return v_MessageHeader_Response183; } @@ -2481,21 +2510,30 @@ module IMS_Procedures_CallControl { * @param p_GeolocationInfoAvailable (default value: false) * @param p_SDP_Message_Step5or7 (default value: omit) * @param p_PrevSDP_Message (default value: omit) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsCAT (default value: false) + * @param p_IsC44 (default value: false) * @return SDP_Message - * @status APPROVED (IMS, LTE_A) - */ - function f_IMS_MOCallSetup_AnnexC21_Steps5_8(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - template (value) MessageHeader p_MessageHeader_Prev183Response, - boolean p_GeolocationInfoAvailable := false, - template SDP_Message p_SDP_Message_Step5or7 := omit, - template (omit) SDP_Message p_PrevSDP_Message := omit) runs on IMS_PTC return SDP_Message - { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_MOCallSetup_AnnexC21C25_Steps5_8(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + template (value) MessageHeader p_MessageHeader_Prev183Response, + boolean p_GeolocationInfoAvailable := false, + template SDP_Message p_SDP_Message_Step5or7 := omit, + template (omit) SDP_Message p_PrevSDP_Message := omit, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsCAT := false, + boolean p_IsC44 := false) runs on IMS_PTC return SDP_Message + { /* p_SDP_Message_Step5or7 .. used in case of video (C.25) */ + /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_InviteRequest changed to p_InviteRequestWithSdp */ /* @sic R5s140686, R5-144755: parameter p_PrevSDP_Message sic@ */ + /* @sic R5-151953 new parameter: p_IsCAT sic@ */ + /* @sic R5-151968 new parameter: p_IsC44 sic@ */ + /* @sic R5s150692 change 16: parameter p_EmergencyType sic@ */ var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader_Prev183Response); /* @sic R5s130333 change 8.2 - acc. to A.2.4, A.2.5 same as in previous response sic@ */ var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var SDP_Message v_SDP_Message := p_InviteRequestWithSdp.SdpOffer; /* @sic R5w140112 sic@ */ - var charstring v_FmtAudio; var template (present) SDP_Message v_SDP_Message_Step5or7; var template (present) MessageBody v_MessageBody; var boolean v_MediaConfigured := false; @@ -2514,10 +2552,10 @@ module IMS_Procedures_CallControl { } if (not ispresent(p_SDP_Message_Step5or7)) { - v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Message.media_list[0]); - v_SDP_Message_Step5or7 := f_IMS_BuildSDP_AnnexC21_Step5or7(v_FmtAudio); + v_SDP_Message_Step5or7 := f_IMS_BuildSDP_AnnexC21_Step5or7(v_SDP_Message, p_IsCAT, p_IsC44); /* => use speech per default */ } else { - v_SDP_Message_Step5or7 := p_SDP_Message_Step5or7; // NOTE: compiler warning cannot be avoided here + v_SDP_Message_Step5or7 := p_SDP_Message_Step5or7; /* In case of video the SDP message needs to be handed over + NOTE: compiler warning cannot be avoided here */ } // Step 5. Receive PRACK @@ -2532,27 +2570,30 @@ module IMS_Procedures_CallControl { if (ispresent(v_PrackRequest.messageBody)) { v_SDP_LatestOffer := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_PrackRequest.messageBody, v_SDP_Message_Step5or7); // @sic R5w140112 sic@ - // check session version increased - f_IMS_SDP_CheckSessionVersion(v_SDP_LatestOffer, v_SDP_Message); + // check session version increased @sic R5-150702: done in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ v_ContentType := cs_ContentTypeSDP; - v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestOffer)); /* NOTE: f_IMS_BuildSDP_AnnexC21_Step6or8 is not specific for C.21 but can be used for C.25 as well - @sic R5w140112 sic@ */ + v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21C25_Step6or8(v_SDP_LatestOffer)); /* @sic R5w140112 sic@ */ v_MediaConfigured := true; } - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_PrackRequest.msgHeader, v_ContentType), v_MessageBodyTx))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_PrackRequest.msgHeader, v_ContentType, -, -, tsc_OptionTagList_precondition, p_EmergencyType), /* @sic R5s150237 change 2 sic@ @sic R5s150692 change 16 sic@ */ + v_MessageBodyTx))); // Step 7 Optional. Receive Update // Note: UE will send Update if Media is not yet configured if (not v_MediaConfigured) { - v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(v_InviteRequest); + v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(v_InviteRequest, p_EmergencyType); /* @sic R5s150692 change 16 sic@ */ v_MessageBody := f_SIP_MessageBodySDP_RX(p_GeolocationInfoAvailable); if (p_GeolocationInfoAvailable) { v_MessageHeader_Update.geolocation := cr_GeolocationAny; v_MessageHeader_Update.geolocationRouting := cr_GeolocationRoutingSupported; // @sic R5-134798 sic@ v_MessageHeader_Update.contentType := cr_ContentType("multipart/mixed"); } + if (testcasename() == "TC_19_3_1") { // @sic !!!! R5-153760: DIRTY HACK - PROSE CR REQUIRED to correct Content-Type !!!! sic@ + v_MessageHeader_Update.contentType := cr_ContentType("multipart/mixed"); + } IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_ContactUrl, v_MessageHeader_Update, v_MessageBody))) -> value v_IMS_DATA_REQ; v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); @@ -2560,38 +2601,71 @@ module IMS_Procedures_CallControl { //fl_IMS_Params_CheckSigComp(v_UpdateRequest.msgHeader.route.routeBody[0].rrParam); // acc. to 34.229-1 cl. 13.2.4 step 6 (UPDATE) "comp=sigcomp" is optional for Via and Route - // check session version increased - f_IMS_SDP_CheckSessionVersion(v_SDP_LatestOffer, v_SDP_Message); + // check session version increased @sic R5-150702: done in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ v_ContentType := cs_ContentTypeSDP; - v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21_Step6or8(v_SDP_LatestOffer)); /* NOTE: f_IMS_BuildSDP_AnnexC21_Step6or8 is not specific for C.21 but can be used for C.25 as well - @sic R5w140112 sic@ */ - v_MediaConfigured := true; + v_MessageBodyTx := cs_MessageBody_SDP(f_IMS_BuildSDP_AnnexC21C25_Step6or8(v_SDP_LatestOffer)); /* @sic R5w140112 sic@ */ + + if (testcasename() == "TC_19_3_1") { // @sic !!!! R5-153760: DIRTY HACK - PROSE CR REQUIRED to remove checking of Route_header from UPDATE !!!! sic@ */ + f_IMS_MessageHeader_CheckContactAddr(v_UpdateRequest.msgHeader); // @sic R5-153760: check route header sic@ + } + // Step 8 Optional. Send 200 OK - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_UpdateRequest.msgHeader, v_ContentType), v_MessageBodyTx))); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_UpdateRequest.msgHeader, v_ContentType, -, -, tsc_OptionTagList_precondition, p_EmergencyType), /* @sic R5s150237 change 2 sic@ @sic R5s150692 change 16 sic@ */ + v_MessageBodyTx))); } return v_SDP_LatestOffer; } - + + /* + * @desc wrapper function: 34.229-1 Annex C.21 and C.44 - Step 5..8 + * returns the "latest SDP offer" received from the UE + * @param p_InviteRequestWithSdp + * @param p_MessageHeader_Prev183Response + * @param p_GeolocationInfoAvailable (default value: false) + * @param p_PrevSDP_Message (default value: omit) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsCAT (default value: false) + * @param p_IsC44 (default value: false) + * @return SDP_Message + * @status APPROVED (IMS, LTE_A) + */ + function f_IMS_MOCallSetup_AnnexC21_Steps5_8(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + template (value) MessageHeader p_MessageHeader_Prev183Response, + boolean p_GeolocationInfoAvailable := false, + template (omit) SDP_Message p_PrevSDP_Message := omit, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsCAT := false, + boolean p_IsC44 := false) runs on IMS_PTC return SDP_Message + { /* @sic R5-151953 new parameter: p_IsCAT sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150692 change 15: parameter p_EmergencyType sic@ */ + return f_IMS_MOCallSetup_AnnexC21C25_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfoAvailable, -, p_PrevSDP_Message, p_EmergencyType, p_IsCAT, p_IsC44); /* @sic R5s150692 change 15 sic@ */ + } /* * @desc 34.229-1 Annex C.21 - Step 9..11 * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_SrvccAlertingSupported (default value: pc_IMS_SRVCCAlert) - * @status APPROVED (IMS, LTE_A) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21C25_Step9_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, charstring p_ContactUri := px_IMS_CalleeContactUri, - boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert) runs on IMS_PTC + boolean p_SrvccAlertingSupported := pc_IMS_SRVCCAlert, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC { // p_SrvccAlertingSupported .. if voice call => condition A6 of A.2.6; needs to be set to false for non-voice calls /* @sic R5s130333 change 9.2 - parameter p_ContactUri: acc. to see A.2.4 contact in request line of PRACK shall be the same in as in previous response (180 Ringing) sic@ */ /* @sic R5w140112: p_IMS_INVITE_REQ changed to p_InviteRequestWithSdp */ /* @sic R5s140370 change 6: new parameter p_SrvccAlertingSupported sic@ */ + /* @sic R5s150692 change 10: parameter p_EmergencyType sic@ */ var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); - var template (value) MessageHeader v_MessageHeader_180Response := f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, p_ContactUri, -, -, p_SrvccAlertingSupported); + var template (value) MessageHeader v_MessageHeader_180Response := f_IMS_InviteResponse_180_MessageHeaderTX(v_InviteRequest, p_ContactUri, -, p_EmergencyType, p_SrvccAlertingSupported); /* @sic R5s150667 change 2 sic@ + @sic R5s150692 change 3, 10 sic@ */ var template (value) MessageHeader v_MessageHeader_PrackResponse_200; var template (present) MessageHeader v_MessageHeader_Prack; var IMS_DATA_REQ v_IMS_DATA_REQ; @@ -2618,337 +2692,125 @@ module IMS_Procedures_CallControl { * @desc 34.229-1 Annex C.21 - Step 12..13 * @param p_InviteRequestWithSdp * @param p_ContactUri (default value: px_IMS_CalleeContactUri) - * @status APPROVED (IMS, LTE_A) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_IMS_MOCallSetup_AnnexC21C25_Step12_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - charstring p_ContactUri := px_IMS_CalleeContactUri) runs on IMS_PTC + charstring p_ContactUri := px_IMS_CalleeContactUri, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC { /* @sic R5s130333 change 9.3 - parameter p_ContactUri: acc. to A.2.7 contact in request line of ACK shall be the same in as PRACK sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_IMS_INVITE_REQ changed to p_InviteRequestWithSdp */ + /* @sic R5s150692 change 21: parameter p_EmergencyType sic@ */ var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); var template (value) MessageHeader v_MessageHeader_InviteResponse_200; var template (present) MessageHeader v_MessageHeader_Ack; + var template (omit) charstring v_EmergencyTelURI := omit; /* @sic R5s150739 sic@ */ + + if(p_EmergencyType == ASSERTED_EMERGENCY) { /* @sic R5s150739 sic@ */ + v_EmergencyTelURI := tsc_IMS_Emergency_TelUri; + } // Step 12. Send 200 OK (response to INVITE) - v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader); + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, -, v_EmergencyTelURI, p_ContactUri, -, p_EmergencyType); /* @sic R5s150692 change 21 sic@ @sic R5s150739 sic@ */ IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200))); // Step 13. Finally, UE acknowledges call setup. - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200, p_EmergencyType); /* @sic R5s150692 change 21 sic@ */ IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(f_SIP_BuildSipUri_RX(p_ContactUri), v_MessageHeader_Ack))); //fl_IMS_Params_CheckSigComp(v_IMS_DATA_REQ.Request.Ack.msgHeader.route.routeBody[0].rrParam); // acc. to 34.229-1 cl. 13.2.4 step 12 (ACK) "comp=sigcomp" is optional for Route } /* - * @desc wrapper for steps 5..13 of C.21; + * @desc wrapper for steps 5..13 of C.21 and C.44; * returns the "latest SDP offer" received from the UE * @param p_InviteRequestWithSdp * @param p_MessageHeader_Prev183Response + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) * @param p_GeolocationInfoAvailable (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) + * @param p_IsC44 (default value: false) * @return SDP_Message * @status APPROVED (IMS) */ function f_IMS_MOCallSetup_AnnexC21_Steps5_13(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, MessageHeader p_MessageHeader_Prev183Response, - boolean p_GeolocationInfoAvailable := false) runs on IMS_PTC return SDP_Message + charstring p_ContactUri := px_IMS_CalleeContactUri, + boolean p_GeolocationInfoAvailable := false, + IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY, + boolean p_IsC44 := false) runs on IMS_PTC return SDP_Message { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ /* @sic R5w140112: p_IMS_INVITE_REQ changed to p_InviteRequestWithSdp */ - var SDP_Message v_SDP_Message := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfoAvailable); - - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp); - f_IMS_MOCallSetup_AnnexC21C25_Step12_13(p_InviteRequestWithSdp); - + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150692 change 9: parameter p_EmergencyType sic@ */ + var SDP_Message v_SDP_Message := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfoAvailable, -, p_EmergencyType, p_IsC44); //@sic R5s141155 change 3 sic@ + + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp, p_ContactUri, -, p_EmergencyType); /* @sic R5s150692 ch. 2 sic@ @sic R5s150692 change 9 sic@ */ + f_IMS_MOCallSetup_AnnexC21C25_Step12_13(p_InviteRequestWithSdp, p_ContactUri, p_EmergencyType); /* @sic R5s150692 change 9 sic@ */ return v_SDP_Message; } //============================================================================ - /* - * @desc check all media streams to have the given attribute - * @param p_Media_Desc_List - * @param p_Attribute - * @return boolean - * @status APPROVED (IMS) - */ - function f_IMS_SDP_CheckMediaListAttributes(template (value) SDP_media_desc_list p_Media_Desc_List, - template (present) SDP_attribute p_Attribute) return boolean - { - var integer i; - - for (i := 0; i < lengthof(p_Media_Desc_List); i:=i+1) { - if (not f_SDP_AttributeList_CheckAttribute(p_Media_Desc_List[i].attributes, p_Attribute)) { - return false; - } - } - return true; - } - - /* - * @desc Check recv mode for call hold/resume acc. to C.8 - * @param p_HoldResume - * @param p_HoldResumeOffer - * @param p_OriginalOffer - * @status APPROVED (IMS) - */ - function fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(IMS_CallHoldResume_Type p_HoldResume, - SDP_Message p_HoldResumeOffer, - SDP_Message p_OriginalOffer) runs on IMS_PTC - { - var SDP_attribute_list v_HoldResumeOffer_AttributeList; - var SDP_attribute_list v_OriginalOffer_AttributeList; - var template (omit) SDP_attribute v_SendRecvAttribute; - var SDP_attribute v_SendRecvAttributeVal; - var integer i; - - v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(p_HoldResumeOffer.attributes, cr_SDP_Attribute_AnySendRecvMode); // session attribute - if (ispresent(v_SendRecvAttribute)) { - // Hold/Resume offer has session attribute for send/recv mode - v_SendRecvAttributeVal := valueof(v_SendRecvAttribute); - select (p_HoldResume) { - case (HOLD) { - if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_inactive)) { // => check all media streams of the original offer to be recvonly - if (not f_IMS_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_recvonly)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'inactive' and but not all media streams of the original offer have been 'recvonly' "); - return; - } - } else if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_sendonly)) { // => check all media streams of the original offer to be sendrecv - if (not f_IMS_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_sendrecv)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'sendonly' and but not all media streams of the original offer have been 'sendrecv' "); - return; - } - } else { // send/recv mode is neither inactive nor sendonly - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute being neither 'sendonly' not 'inactive'"); - return; - } - } - case (RESUME) { // all media streams of the original offer shall be the same and the same as in the "RESUME offer" - if (not f_IMS_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, v_SendRecvAttributeVal)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call resume has session attribute not matching with all media streams of the original offer"); - return; - } - } - } - // check that Hold/Resume offer does not have further send/recv mode attributes in any media stream - if (f_IMS_SDP_CheckMediaListAttributes(p_HoldResumeOffer.media_list, cr_SDP_Attribute_AnySendRecvMode)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has session attribute for send/recv mode but also send/recv mode attributes for media streams"); - return; - } - } else { - // Hold/Resume offer has no session attribute for send/recv mode => check stream by stream - if (lengthof(p_HoldResumeOffer.media_list) != lengthof(p_OriginalOffer.media_list)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has different number of media streams than the original offer"); - return; - } - for (i := 0; i < lengthof(p_HoldResumeOffer.media_list); i:=i+1) { - v_HoldResumeOffer_AttributeList := p_HoldResumeOffer.media_list[i].attributes; - v_OriginalOffer_AttributeList := p_OriginalOffer.media_list[i].attributes; - select (p_HoldResume) { - case (HOLD) { - if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_inactive)) { - v_SendRecvAttribute := cs_SDP_Attribute_recvonly; - } - else if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_sendonly)) { - v_SendRecvAttribute := cs_SDP_Attribute_sendrecv; - } - } - case (RESUME) { - v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(v_HoldResumeOffer_AttributeList, cr_SDP_Attribute_AnySendRecvMode); - } - } - if (not ispresent(v_SendRecvAttribute) or not f_SDP_AttributeList_CheckAttribute(v_OriginalOffer_AttributeList, v_SendRecvAttribute)) { // compiler warning cannot be avoided for v_SendRecvAttribute - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has invalid send/recv mode attribute for single media stream"); - return; - } - } - } - } - - /* - * @desc Check bandwidth for call hold/resume acc. to C.8 - * @param p_HoldResume - * @param p_SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(IMS_CallHoldResume_Type p_HoldResume, - SDP_Message p_SDP_Message) runs on IMS_PTC - { - var integer i; - var charstring v_Modifier; - var integer v_Bandwidth; - - for (i := 0; i < lengthof(p_SDP_Message.bandwidth); i := i+1) { - v_Modifier := p_SDP_Message.bandwidth[i].modifier; - v_Bandwidth := p_SDP_Message.bandwidth[i].bandwidth; - select (v_Modifier) { - case ("RR", "RS") { - if ((p_HoldResume == HOLD) and not (v_Bandwidth > 0)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call hold: " & v_Modifier & " bandwidth shall be greater than zero"); - return; - } - else if ((p_HoldResume == RESUME) and (v_Bandwidth > 0)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call resume: " & v_Modifier & " bandwidth shall be zero"); - return; - } - } - } - } - } - - /* - * @desc MO call hold according to Annex C.8 (TS 34.229-1) - * @param p_HoldResume - * @param p_PrevInviteRequest - * @param p_MessageHeader_Prev183Response - * @param p_SDP_OriginalOffer - * @param p_PrevSessionVersion (default value: omit) - * @return SDP_Message - * @status APPROVED (IMS) - */ - function f_IMS_MOCallHoldResume_AnnexC8(IMS_CallHoldResume_Type p_HoldResume, - INVITE_Request p_PrevInviteRequest, - MessageHeader p_MessageHeader_Prev183Response, - SDP_Message p_SDP_OriginalOffer, - template (omit) integer p_PrevSessionVersion := omit) runs on IMS_PTC return SDP_Message - { - var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; - var template (present) MessageHeader v_MessageHeader_Invite; - var template (present) MessageHeader v_MessageHeader_Update; - var template (present) MessageHeader v_MessageHeader_Ack; - var template (value) SDP_Message v_SDP_HoldResumeResponse; - var MessageBody v_MessageBody; - var IMS_DATA_REQ v_IMS_DATA_REQ; - var INVITE_Request v_InviteRequest; - var UPDATE_Request v_UpdateRequest; - var MessageHeader v_MessageHeader; - var SDP_Message v_SDP_HoldResumeOffer; - var integer v_PrevSessionVersion; - var SipUrl v_RequestSipUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader_Prev183Response); // get the contact URI out of the Contact header being sent to the UE in the earlier 183 response - var SipUrl v_ToHeaderSipUrl := f_Addr_Union_GetSipUrl(p_PrevInviteRequest.msgHeader.toField.addressField); // SIP URI in the To header of the INVITE needs to be the same SIP URI as been used in the previous INVITE - var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqGetValue(dialogRemote); /* @sic R5s140121 change 7: CSeq Value is incremented in f_IMS_InviteRequest_MessageHeaderRX and in f_IMS_UpdateRequest_MessageHeaderRX but shall be the same for both sic@ */ - - // Steps 1 and 2 - Receive Invite Request or Update Request - v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderRX(-, v_ToHeaderSipUrl, -, A_2_1_A5); - f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_CseqValue); /* @sic R5s140121 change 7: restore CSeq Value sic@ */ - v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(p_PrevInviteRequest); - - alt { - // INVITE - [] IMS_Server.receive(car_IMS_Invite_Request(cr_INVITE_Request(v_RequestSipUrl, v_MessageHeader_Invite, cr_MessageBody_SDP))) - -> value v_IMS_DATA_REQ - { - v_InviteRequest := v_IMS_DATA_REQ.Request.Invite; - v_MessageHeader := v_InviteRequest.msgHeader; - v_MessageBody := v_InviteRequest.messageBody; - - f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, A_2_1_A5); - } - // UPDATE - [] IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_RequestSipUrl, v_MessageHeader_Update, cr_MessageBody_SDP))) - -> value v_IMS_DATA_REQ - { - v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; - v_MessageHeader := v_UpdateRequest.msgHeader; - v_MessageBody := v_UpdateRequest.messageBody; - } - } - f_IMS_PreliminaryPass(__FILE__, __LINE__, "Annex C.8 step 1"); - - v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); - v_SDP_HoldResumeOffer := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_MessageBody, f_IMS_BuildSDP_AnnexC8_Step1(p_SDP_OriginalOffer)); /* @sic R5s140324 - additional change 2 sic@ */ - - // Check version number: - if (isvalue(p_PrevSessionVersion)) { - v_PrevSessionVersion := valueof(p_PrevSessionVersion); - } else { - v_PrevSessionVersion := str2int(p_SDP_OriginalOffer.origin.session_version); - } - f_IMS_SDP_CheckSessionVersion(v_SDP_HoldResumeOffer, omit, v_PrevSessionVersion); - - // Check bandwidth - f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(p_HoldResume, v_SDP_HoldResumeOffer); - - // Check send/receive mode - fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(p_HoldResume, v_SDP_HoldResumeOffer, p_SDP_OriginalOffer); - - if (isbound(v_InviteRequest)) { - // Step 2. Send 100 Trying - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); - } - - // Step 3. Respond with 200 OK (A.3.1 condition A5: Any response sent by the UE within a dialog - v_SDP_HoldResumeResponse := f_IMS_BuildSDP_AnnexC8_Step3(p_HoldResume, v_SDP_HoldResumeOffer); - IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, - f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader, cs_ContentTypeSDP), - cs_MessageBody_SDP(v_SDP_HoldResumeResponse)))); - if (isbound(v_InviteRequest)) { - // Step 4. Receive ACK - v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); - IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_RequestSipUrl, v_MessageHeader_Ack))); - } - - return v_SDP_HoldResumeOffer; - } - //============================================================================ - - group HandlingOfPublishMessage { +/* group HandlingOfPublishMessage { */ - function f_IMS_PublishRequest_MessageHeaderRX(template (present) SipUrl p_SipUrlPublicUserId, - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader - { /* PUBLISH (see TS 34.229, A.4.3) */ - /* !!!! NOTE: Checks may need to be enhanced !!!!*/ - var template (present) MessageHeader v_MessageHeader_Publish := cr_MessageHeader_Dummy; +/* function f_IMS_PublishRequest_MessageHeaderRX(template (present) SipUrl p_SipUrlPublicUserId, */ +/* boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader */ +/* { /\* PUBLISH (see TS 34.229, A.4.3) *\/ */ +/* /\* !!!! NOTE: Checks may need to be enhanced !!!!*\/ */ +/* var template (present) MessageHeader v_MessageHeader_Publish := cr_MessageHeader_Dummy; */ - v_MessageHeader_Publish.route := cr_RouteSubs(f_IMS_PTC_Pcscf_Get(), *, px_IMS_Scscf); - v_MessageHeader_Publish.via := cr_ViaDef(-, cr_HostPort(?)); - v_MessageHeader_Publish.toField := cr_ToDef(p_SipUrlPublicUserId); // NOTE: absence of the To tag needs to be checked separately - v_MessageHeader_Publish.fromField := cr_FromWithTag(p_SipUrlPublicUserId); - v_MessageHeader_Publish.cSeq := cr_CseqDef(?, "PUBLISH"); - v_MessageHeader_Publish.callId := cr_CallId(?); - v_MessageHeader_Publish.sessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ - v_MessageHeader_Publish.maxForwards := cr_MaxForwardsDef; - v_MessageHeader_Publish.event := cr_EventDef(?); - if (not f_IMS_PTC_SecurityScheme_IsGiba()) { - v_MessageHeader_Publish.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); - v_MessageHeader_Publish.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); - } - return v_MessageHeader_Publish; - } +/* v_MessageHeader_Publish.route := cr_RouteSubs(f_IMS_PTC_Pcscf_Get(), *, px_IMS_Scscf); */ +/* v_MessageHeader_Publish.via := cr_ViaDef(-, cr_HostPort(?)); */ +/* v_MessageHeader_Publish.toField := cr_ToDef(p_SipUrlPublicUserId); // NOTE: absence of the To tag needs to be checked separately */ +/* v_MessageHeader_Publish.fromField := cr_FromWithTag(p_SipUrlPublicUserId); */ +/* v_MessageHeader_Publish.cSeq := cr_CseqDef(?, "PUBLISH"); */ +/* v_MessageHeader_Publish.callId := cr_CallId(?); */ +/* v_MessageHeader_Publish.sessionId := f_IMS_SessionId_RX_IfSupported(p_SessionIdSupported); /\* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ *\/ */ +/* v_MessageHeader_Publish.maxForwards := cr_MaxForwardsDef; */ +/* v_MessageHeader_Publish.event := cr_EventDef(?); */ +/* if (not f_IMS_PTC_SecurityScheme_IsGiba()) { */ +/* v_MessageHeader_Publish.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); */ +/* v_MessageHeader_Publish.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); */ +/* } */ +/* return v_MessageHeader_Publish; */ +/* } */ - function f_IMS_PublishResponse_200_MessageHeaderTX(PUBLISH_Request p_PublishRequest) runs on IMS_PTC return template (value) MessageHeader - { // 200 OK for PUBLISH (see TS 34.229, A.4.4) - var MessageHeader v_MessageHeader_Publish := p_PublishRequest.msgHeader; - var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; +/* function f_IMS_PublishResponse_200_MessageHeaderTX(PUBLISH_Request p_PublishRequest) runs on IMS_PTC return template (value) MessageHeader */ +/* { // 200 OK for PUBLISH (see TS 34.229, A.4.4) */ +/* var MessageHeader v_MessageHeader_Publish := p_PublishRequest.msgHeader; */ +/* var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; */ - v_MessageHeader_Response.via := v_MessageHeader_Publish.via; - v_MessageHeader_Response.fromField := v_MessageHeader_Publish.fromField; - v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(v_MessageHeader_Publish); - v_MessageHeader_Response.callId := v_MessageHeader_Publish.callId; - v_MessageHeader_Response.sessionId := v_MessageHeader_Publish.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ - v_MessageHeader_Response.cSeq := v_MessageHeader_Publish.cSeq; - v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(px_IMS_Scscf)); - v_MessageHeader_Response.expires := cs_Expires ("600000"); - v_MessageHeader_Response.sipETag := cs_SIP_ETag("dx200xyz"); /* @sic R5s130195 BASELINE MOVING 2013 - SIP-ETag (RFC 3903) sic@ */ - - return v_MessageHeader_Response; - } - - // FFS: Code not yet used, but may be needed - altstep a_IMS_DefaultPublish() runs on IMS_PTC - { /* acc. to 34.229-1 C.5 Default handling of PUBLISH requests */ - var IMS_DATA_REQ v_IMS_DATA_REQ; - var template (present) SipUrl v_SipUrlPublicUserId := ?; /* acc. to A.4.3 in the PUBLISH request the public user id to be used in the Request-Line, From and To is "any IMPU within the set of IMPUs" - => needs to be checked after receiving as well as the tag for From and To - !!!! check function needs to be implemented !!!! */ +/* v_MessageHeader_Response.via := v_MessageHeader_Publish.via; */ +/* v_MessageHeader_Response.fromField := v_MessageHeader_Publish.fromField; */ +/* v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(v_MessageHeader_Publish); */ +/* v_MessageHeader_Response.callId := v_MessageHeader_Publish.callId; */ +/* v_MessageHeader_Response.sessionId := v_MessageHeader_Publish.sessionId; /\* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ *\/ */ +/* v_MessageHeader_Response.cSeq := v_MessageHeader_Publish.cSeq; */ +/* v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(px_IMS_Scscf)); */ +/* v_MessageHeader_Response.expires := cs_Expires ("600000"); */ +/* v_MessageHeader_Response.sipETag := cs_SIP_ETag("dx200xyz"); /\* @sic R5s130195 BASELINE MOVING 2013 - SIP-ETag (RFC 3903) sic@ *\/ */ + +/* return v_MessageHeader_Response; */ +/* } */ + +/* // FFS: Code not yet used, but may be needed */ +/* altstep a_IMS_DefaultPublish() runs on IMS_PTC */ +/* { /\* acc. to 34.229-1 C.5 Default handling of PUBLISH requests *\/ */ +/* var IMS_DATA_REQ v_IMS_DATA_REQ; */ +/* var template (present) SipUrl v_SipUrlPublicUserId := ?; /\* acc. to A.4.3 in the PUBLISH request the public user id to be used in the Request-Line, From and To is "any IMPU within the set of IMPUs" */ +/* => needs to be checked after receiving as well as the tag for From and To */ +/* !!!! check function needs to be implemented !!!! *\/ */ - [] IMS_Server.receive(car_IMS_Publish_Request(cr_PUBLISH_Request(v_SipUrlPublicUserId, f_IMS_PublishRequest_MessageHeaderRX(v_SipUrlPublicUserId)))) - -> value v_IMS_DATA_REQ - { - IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), - cs_Response(c_statusLine200, f_IMS_PublishResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Publish)))); - } - } +/* [] IMS_Server.receive(car_IMS_Publish_Request(cr_PUBLISH_Request(v_SipUrlPublicUserId, f_IMS_PublishRequest_MessageHeaderRX(v_SipUrlPublicUserId)))) */ +/* -> value v_IMS_DATA_REQ */ +/* { */ +/* IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), */ +/* cs_Response(c_statusLine200, f_IMS_PublishResponse_200_MessageHeaderTX(v_IMS_DATA_REQ.Request.Publish)))); */ +/* } */ +/* } */ - } // group +/* } // group */ } diff --git a/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn new file mode 100644 index 0000000..31f129c --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_CallHold.ttcn @@ -0,0 +1,380 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-11 10:39:38 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14283 $ +/******************************************************************************/ + +module IMS_Procedures_CallHold { + + import from LibSip_SDPTypes all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_MessageBodyTypes all; + + import from IMS_Component all; + import from IMS_CommonDefs all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_SDP_MessagesVideo all; + import from IMS_MessageBody_Templates all; + import from IMS_SIP_Templates all; + import from IMS_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from IMS_CommonFunctions all; + + import from IMS_Procedures_CallControl all; + import from IMS_Procedures_Common all; + import from IMS_CommonParameters all; + + //============================================================================ + // Annex C8 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Acc. to 34.229-1 C.8 the UE shall use the same SDP body as for step 5 of C.21 or C.25 except from + * - direction-tag for the current-status remote segment shall be "sendrecv" (handled in f_IMS_BuildSDP_AnnexC21_Step5or7/f_IMS_BuildSDP_MOCallAudioVideo_Step5or7) + * - specific bandwith values in case of pc_SendRTCPOnlyOnHold==true: + * this is checked by f_IMS_CallHoldResume_AnnexC8_CheckBandwidth after the message has been received + * (=> no changes needed compared to step 5 of C.21 or C.25) + * - specific direction attribute (either on session level or on media description level) + * this is checked by fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode after the message has been received + * (=> no changes needed compared to step 5 of C.21 or C.25) + * @param p_SDP_Message_PrevOffer + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AnnexC8_Step1(SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-145726: use of f_IMS_BuildSDP_AnnexC21_Step5or7, f_IMS_BuildSDP_MOCallAudioVideo_Step5or7 sic@ */ + var template (present) SDP_Message v_SDP_Message; + var boolean v_CallHoldC8 := true; + + if (lengthof(p_SDP_Message_PrevOffer.media_list) == 1) { // => audio only + v_SDP_Message := f_IMS_BuildSDP_AnnexC21_Step5or7(p_SDP_Message_PrevOffer, v_CallHoldC8); + } else { + v_SDP_Message := f_IMS_BuildSDP_MOCallAudioVideo_Step5or7(CallHold, p_SDP_Message_PrevOffer); + } + return v_SDP_Message; + } + + /* + * @desc build up SDP message for step 3 of C.8 + * @param p_HoldResume + * @param p_SDP_Message_PrevOffer + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AnnexC8_Step3(IMS_CallHoldResume_Type p_HoldResume, + SDP_Message p_SDP_Message_PrevOffer) runs on IMS_PTC return template (value) SDP_Message + { + var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); + + if (p_HoldResume == HOLD) { + // invert "sendonly" to "recvonly" in the session attributes (if the UE uses session attribute to hold the call) + v_SDP_Message.attributes := f_SDP_ExchangeAttribute(v_SDP_Message.attributes, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change session attributes + v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, cr_SDP_Attribute_sendonly, cs_SDP_Attribute_recvonly); // change media lines + } + return v_SDP_Message; + } + + //---------------------------------------------------------------------------- + /* + * @desc Check recv mode for call hold/resume acc. to C.8 + * @param p_HoldResume + * @param p_HoldResumeOffer + * @param p_OriginalOffer + * @status APPROVED (IMS) + */ + function fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(IMS_CallHoldResume_Type p_HoldResume, + SDP_Message p_HoldResumeOffer, + SDP_Message p_OriginalOffer) runs on IMS_PTC + { + var SDP_attribute_list v_HoldResumeOffer_AttributeList; + var SDP_attribute_list v_OriginalOffer_AttributeList; + var template (omit) SDP_attribute v_SendRecvAttribute; + var SDP_attribute v_SendRecvAttributeVal; + var integer i; + + v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(p_HoldResumeOffer.attributes, cr_SDP_Attribute_AnySendRecvMode); // session attribute + if (ispresent(v_SendRecvAttribute)) { + // Hold/Resume offer has session attribute for send/recv mode + v_SendRecvAttributeVal := valueof(v_SendRecvAttribute); + select (p_HoldResume) { + case (HOLD) { + if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_inactive)) { // => check all media streams of the original offer to be recvonly + if (not f_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_recvonly)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'inactive' and but not all media streams of the original offer have been 'recvonly' "); + return; + } + } else if (match(v_SendRecvAttributeVal, cs_SDP_Attribute_sendonly)) { // => check all media streams of the original offer to be sendrecv + if (not f_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, cs_SDP_Attribute_sendrecv)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute 'sendonly' and but not all media streams of the original offer have been 'sendrecv' "); + return; + } + } else { // send/recv mode is neither inactive nor sendonly + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold has session attribute being neither 'sendonly' not 'inactive'"); + return; + } + } + case (RESUME) { // all media streams of the original offer shall be the same and the same as in the "RESUME offer" + if (not f_SDP_CheckMediaListAttributes(p_OriginalOffer.media_list, v_SendRecvAttributeVal)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call resume has session attribute not matching with all media streams of the original offer"); + return; + } + } + } + // check that Hold/Resume offer does not have further send/recv mode attributes in any media stream + if (f_SDP_CheckMediaListAttributes(p_HoldResumeOffer.media_list, cr_SDP_Attribute_AnySendRecvMode)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has session attribute for send/recv mode but also send/recv mode attributes for media streams"); + return; + } + } else { + // Hold/Resume offer has no session attribute for send/recv mode => check stream by stream + if (lengthof(p_HoldResumeOffer.media_list) != lengthof(p_OriginalOffer.media_list)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has different number of media streams than the original offer"); + return; + } + for (i := 0; i < lengthof(p_HoldResumeOffer.media_list); i:=i+1) { + v_HoldResumeOffer_AttributeList := p_HoldResumeOffer.media_list[i].attributes; + v_OriginalOffer_AttributeList := p_OriginalOffer.media_list[i].attributes; + select (p_HoldResume) { + case (HOLD) { + if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_inactive)) { + v_SendRecvAttribute := cs_SDP_Attribute_recvonly; + } + else if (f_SDP_AttributeList_CheckAttribute(v_HoldResumeOffer_AttributeList, cs_SDP_Attribute_sendonly)) { + v_SendRecvAttribute := cs_SDP_Attribute_sendrecv; + } + } + case (RESUME) { + v_SendRecvAttribute := f_SDP_AttributeList_GetAttribute(v_HoldResumeOffer_AttributeList, cr_SDP_Attribute_AnySendRecvMode); + } + } + if (not ispresent(v_SendRecvAttribute) or not f_SDP_AttributeList_CheckAttribute(v_OriginalOffer_AttributeList, v_SendRecvAttribute)) { // compiler warning cannot be avoided for v_SendRecvAttribute + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "SDP offer for call hold/resume has invalid send/recv mode attribute for single media stream"); + return; + } + } + } + } + + /* + * @desc Check bandwidth for call hold/resume acc. to C.8 + * @param p_HoldResume + * @param p_BandwidthList + * @param p_RtcpDuringHold (default value: pc_SendRTCPOnlyOnHold) + * @status APPROVED (IMS) + */ + function f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList(IMS_CallHoldResume_Type p_HoldResume, + template (omit) SDP_bandwidth_list p_BandwidthList, + boolean p_RtcpDuringHold := pc_SendRTCPOnlyOnHold) runs on IMS_PTC + { /* @sic R5-145730: new parameter p_RtcpDuringHold sic@ */ + var integer i; + var SDP_bandwidth_list v_BandwidthList; + var charstring v_Modifier; + var integer v_Bandwidth; + + if (isvalue(p_BandwidthList)) { + v_BandwidthList := valueof(p_BandwidthList); + for (i := 0; i < lengthof(v_BandwidthList); i := i+1) { + v_Modifier := v_BandwidthList[i].modifier; + v_Bandwidth := v_BandwidthList[i].bandwidth; + select (p_HoldResume) { + case (HOLD) { + select (v_Modifier) { + case ("RR") { /* @sic R5-145730: bandwith shall be changed for RR only sic@ */ + if (p_RtcpDuringHold and not (v_Bandwidth > 0)) { /* @sic R5-145730: p_RtcpDuringHold sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call hold: " & v_Modifier & " bandwidth shall be greater than zero"); + return; + } + } + } + } + case (RESUME) { + select (v_Modifier) { + case ("RR", "RS") { + if (p_RtcpDuringHold and (v_Bandwidth != 0)) { /* @sic R5-145730: p_RtcpDuringHold sic@ + @sic R5s150153 change 2 sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Call resume: " & v_Modifier & " bandwidth shall be zero"); + return; + } + } + } + } + } + } + } + } + + /* + * @desc Check bandwidth for call hold/resume acc. to C.8 + * @param p_HoldResume + * @param p_SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(IMS_CallHoldResume_Type p_HoldResume, + SDP_Message p_SDP_Message) runs on IMS_PTC + { /* @sic R5-145730: new local function f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList to check media level bandwidth sic@ */ + var integer i; + + f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList(p_HoldResume, p_SDP_Message.bandwidth); + for (i:=0; i < lengthof(p_SDP_Message.media_list); i:=i+1) { + f_IMS_CallHoldResume_AnnexC8_CheckBandwidthList(p_HoldResume, p_SDP_Message.media_list[i].bandwidth); + } + } + + /* + * @desc MO call hold according to Annex C.8 (TS 34.229-1) + * @param p_HoldResume + * @param p_PrevInviteRequest + * @param p_MessageHeader_Prev183Response + * @param p_SDP_OriginalOffer + * @param p_ContactUri (default value: px_IMS_CalleeContactUri) + * @return SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_MOCallHoldResume_AnnexC8(IMS_CallHoldResume_Type p_HoldResume, + INVITE_Request p_PrevInviteRequest, + MessageHeader p_MessageHeader_Prev183Response, + SDP_Message p_SDP_OriginalOffer, + charstring p_ContactUri := px_IMS_CalleeContactUri) runs on IMS_PTC return SDP_Message + { /* @sic R5-150702: p_PrevSessionVersion removed; session version now is checked in generic way in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var template (present) MessageHeader v_MessageHeader_Invite; + var template (present) MessageHeader v_MessageHeader_Update; + var template (present) MessageHeader v_MessageHeader_Ack; + var template (value) SDP_Message v_SDP_HoldResumeResponse; + var MessageBody v_MessageBody; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var INVITE_Request v_InviteRequest; + var UPDATE_Request v_UpdateRequest; + var MessageHeader v_MessageHeader; + var SDP_Message v_SDP_HoldResumeOffer; + var SipUrl v_RequestSipUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader_Prev183Response); // get the contact URI out of the Contact header being sent to the UE in the earlier 183 response + var SipUrl v_ToHeaderSipUrl := f_Addr_Union_GetSipUrl(p_PrevInviteRequest.msgHeader.toField.addressField); // SIP URI in the To header of the INVITE needs to be the same SIP URI as been used in the previous INVITE + var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqGetValue(dialogRemote); /* @sic R5s140121 change 7: CSeq Value is incremented in f_IMS_InviteRequest_MessageHeaderRX and in f_IMS_UpdateRequest_MessageHeaderRX but shall be the same for both sic@ */ + + // Steps 1 and 2 - Receive Invite Request or Update Request + v_MessageHeader_Invite := f_IMS_InviteRequest_MessageHeaderRX(-, v_ToHeaderSipUrl, -, A_2_1_A5); + f_IMS_PTC_ImsInfo_CseqSet(dialogRemote, v_CseqValue); /* @sic R5s140121 change 7: restore CSeq Value sic@ */ + v_MessageHeader_Update := f_IMS_UpdateRequest_MessageHeaderRX(p_PrevInviteRequest); + + alt { + // INVITE + [] IMS_Server.receive(car_IMS_Invite_Request(cr_INVITE_Request(v_RequestSipUrl, v_MessageHeader_Invite, cr_MessageBody_SDP))) + -> value v_IMS_DATA_REQ + { + v_InviteRequest := v_IMS_DATA_REQ.Request.Invite; + v_MessageHeader := v_InviteRequest.msgHeader; + v_MessageBody := v_InviteRequest.messageBody; + + f_IMS_A_2_1_Invite_CommonChecks(v_IMS_DATA_REQ, A_2_1_A5); + } + // UPDATE + [] IMS_Server.receive(car_IMS_Update_Request(cr_UPDATE_Request(v_RequestSipUrl, v_MessageHeader_Update, cr_MessageBody_SDP))) + -> value v_IMS_DATA_REQ + { + v_UpdateRequest := v_IMS_DATA_REQ.Request.Update; + v_MessageHeader := v_UpdateRequest.msgHeader; + v_MessageBody := v_UpdateRequest.messageBody; + } + } + f_IMS_PreliminaryPass(__FILE__, __LINE__, "Annex C.8 step 1"); + + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); + v_SDP_HoldResumeOffer := f_IMS_MessageBody_CheckSdpMessageAndGeolocation(v_MessageBody, f_IMS_BuildSDP_AnnexC8_Step1(p_SDP_OriginalOffer)); /* @sic R5s140324 - additional change 2 sic@ */ + + /* @sic R5-150702: session version is checked in generic way in f_IMS_SIP_DecodeMatchAndCheckSDP sic@ */ + + // Check bandwidth + f_IMS_CallHoldResume_AnnexC8_CheckBandwidth(p_HoldResume, v_SDP_HoldResumeOffer); + + // Check send/receive mode + fl_IMS_MOCallHoldResume_AnnexC8_CheckSendRecvMode(p_HoldResume, v_SDP_HoldResumeOffer, p_SDP_OriginalOffer); + + if (isbound(v_InviteRequest)) { + // Step 2. Send 100 Trying + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); + } + + // Step 3. Respond with 200 OK (A.3.1 condition A5: Any response sent by the UE within a dialog + v_SDP_HoldResumeResponse := f_IMS_BuildSDP_AnnexC8_Step3(p_HoldResume, v_SDP_HoldResumeOffer); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_MessageHeader, + cs_ContentTypeSDP, + -, + p_ContactUri, + tsc_OptionTagList_precondition), /* @sic R5s150274: tsc_OptionTagList_precondition sic@ */ + cs_MessageBody_SDP(v_SDP_HoldResumeResponse)))); + if (isbound(v_InviteRequest)) { + // Step 4. Receive ACK + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_RequestSipUrl, v_MessageHeader_Ack))); + } + + return v_SDP_HoldResumeOffer; + } + + function f_IMS_ReferRequest_MessageHeaderTX(boolean p_ReferCreatingDialog := true, + charstring p_CallerSipAddrStr, + charstring p_ConferenceURI, + template (omit) charstring p_ReferredByURI := omit, + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported, + integer p_CSeqValue := 1234) runs on IMS_PTC return template (value) MessageHeader + { /* REFER acc. to see TS 34.229, A.2.12 - MT REFER: + p_CallerSipAddrStr .. Address of the remote UE + p_ConferenceURI .. URI of the conference focus as defined in RFC 4353 */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ + /* Prose issues (-> A.2.12): + * - acc to prose there shall be P-Access-Network-Info (does not make sense for MT) + * - Via is not exactly the same as for INVITE (A.2.9) but there seems to be no reason for any difference + */ + var template (value) MessageHeader v_MessageHeader_Refer := cs_MessageHeader_Dummy; + var template (value) SipUrl v_PublicUserId_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); // as for INVITE + var template (omit) SessionId v_SessionId := omit; + var charstring v_CallIdString; + var template (value) From v_From; + var template (value) To v_To; + var template (value) CallId v_CallId; + var integer v_CSeqValue; + + if (p_ReferCreatingDialog) { + v_CSeqValue := p_CSeqValue; + v_From := cs_From(f_SIP_BuildSipUri_TX(p_CallerSipAddrStr), f_IMS_GenerateTag("REFER", "From")); + v_To := cs_ToDef(v_PublicUserId_SipUrl); + v_CallIdString := f_IMS_PTC_GenerateCallId("REFER"); + v_CallId := cs_CallId(v_CallIdString); + if (p_SessionIdSupported) { + v_SessionId := cs_SessionId(f_IMS_SessionId_TX_Generate(v_CallIdString)); + } + } else { /* no dialog is active => there has been no previous INVITE (e.g. test case 15.21) + => REFER creates dialog between the remote UE (p_CallerSipAddrStr) and the UE (addressed with default IMPU) - see RFC 3515 clause 2 */ + // !!!! this branch needs to be checked !!!! + v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal); + v_To := f_IMS_RequestInDialog_ToHeaderTX(); + v_From := f_IMS_RequestInDialog_FromHeaderTX(); + v_CallId := f_IMS_PTC_ImsInfo_DialogGetCallId(); + v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); + } + + v_MessageHeader_Refer.via := f_IMS_InviteRequest_ViaTX(); // same as for INVITE + v_MessageHeader_Refer.fromField := v_From; + v_MessageHeader_Refer.toField := v_To; + v_MessageHeader_Refer.callId := v_CallId; + v_MessageHeader_Refer.sessionId := v_SessionId; + v_MessageHeader_Refer.cSeq := cs_CseqDef(v_CSeqValue, "REFER"); + v_MessageHeader_Refer.contact := cs_Contact(f_SIP_BuildSipUri_TX(p_CallerSipAddrStr, tsc_IMS_CallerPort)); /* same as for INVITE: this is the address to which the UE shall send the notifications */ + v_MessageHeader_Refer.referTo := cs_ReferTo(f_SIP_BuildSipUri_TX(p_ConferenceURI)); /* NOTE: acc. to 24.147 cl. 5.3.1.5.2 when inviting another user there shall be a "method=INVITE" + * or the "method parameter shall be omitted => we don't need to include the "method" parameter */ + v_MessageHeader_Refer.maxForwards := cs_MaxForwardsDef; + + if (ispresent(p_ReferredByURI)) { + v_MessageHeader_Refer.referredBy := cs_ReferredBy(f_SIP_BuildSipUri_TX(valueof(p_ReferredByURI))); /* NOTE: acc. to 24.147 cl. 5.3.1.5.2 this shall be the "URI of the conference participant that is sending the REFER request" + * => it might not be necessary to use a different URI than as for the From header */ + } + return v_MessageHeader_Refer; + } + +} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_Common.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_Common.ttcn similarity index 60% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_Common.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_Common.ttcn index 1293130..fabc236 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_Procedures_Common.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_Common.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-02 15:47:20 +0200 (Tue, 02 Sep 2014) $ -// $Rev: 11984 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module IMS_Procedures_Common { @@ -25,12 +25,13 @@ module IMS_Procedures_Common { import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; - type enumerated IMS_TCP_CloseHandling_Type { justWait, waitAndClose }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated IMS_TCP_CloseHandling_Type { justWait, waitAndClose, dontWait }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + @sic R5s140801: dontWait sic@ */ /* * @desc common function to handle closing down TCP connections used for SIP signalling * @param p_Handling - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_TCP_CloseHandling(IMS_TCP_CloseHandling_Type p_Handling) runs on IMS_PTC { @@ -46,13 +47,25 @@ module IMS_Procedures_Common { } } + //---------------------------------------------------------------------------- + /* + * @desc Release of IMS registration and security plus resetting of IMS information + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_GlobalRelease() runs on IMS_PTC + { + f_IMS_RegisterInfo_Release(); /* release registration information at IPCAN */ + f_IMS_PTC_Reset(); /* reset ImsInfo and release security + @sic R5s150031: common function f_IMS_PTC_Reset sic@ */ + } + //---------------------------------------------------------------------------- /* * @desc check whether public user id matches with any public user id in the given list * @param p_PublicUserIdentityList * @param p_SipUrl * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PublicUserId_Match(CharStringList_Type p_PublicUserIdentityList, SipUrl p_SipUrl) return boolean @@ -71,7 +84,7 @@ module IMS_Procedures_Common { /* * @desc return server port of the network side depending on whether it is protected or not * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_GetPort_ps() runs on IMS_PTC return integer { /* @sic R5s130756 additional changes: p_IsProtected removed (f_IMS_PTC_Security_IsStarted used instead) sic@ */ @@ -88,7 +101,7 @@ module IMS_Procedures_Common { /* * @desc return server port of the UE side depending on whether it is protected or not * @return integer - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_GetPort_us() runs on IMS_PTC return integer { @@ -110,7 +123,7 @@ module IMS_Procedures_Common { * when there still no to-tag a new to-tag is generated for the reponse * @param p_RequestMessageHeader * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Response_ToTagTX(template (value) MessageHeader p_RequestMessageHeader) runs on IMS_PTC return charstring { /* @sic R5-131897, R5-132063 - new generic function sic@ */ @@ -138,13 +151,21 @@ module IMS_Procedures_Common { /* * @desc Generate To header to be used in a response: in general the To header consists of the address and the to-tag * @param p_RequestMessageHeader + * @param p_ToTag (default value: omit) * @return template (value) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_Response_ToHeaderTX(template (value) MessageHeader p_RequestMessageHeader) runs on IMS_PTC return template (value) To - { - var charstring v_ToTag := f_IMS_Response_ToTagTX(p_RequestMessageHeader); + function f_IMS_Response_ToHeaderTX(template (value) MessageHeader p_RequestMessageHeader, + template (omit) charstring p_ToTag := omit) runs on IMS_PTC return template (value) To + { /* @sic R5-153986: parameter p_ToTag to allow different ToTags for different dialogs created by subscription to even packages sic@ */ var SipUrl v_SipUrl := f_Addr_Union_GetSipUrl(p_RequestMessageHeader.toField.addressField); + var charstring v_ToTag; + + if (ispresent(p_ToTag)) { + v_ToTag := valueof(p_ToTag); + } else { + v_ToTag := f_IMS_Response_ToTagTX(p_RequestMessageHeader); + } return cs_ToWithTag(v_SipUrl, v_ToTag); } @@ -154,7 +175,7 @@ module IMS_Procedures_Common { * @param p_RequestMessageHeader * @param p_Is100Response (default value: false) * @return template (present) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Response_ToHeaderRX(template (value) MessageHeader p_RequestMessageHeader, boolean p_Is100Response := false) return template (present) To @@ -179,7 +200,7 @@ module IMS_Procedures_Common { * @desc generate template for From header (the from-tag has to be the same as in the corresponding request) * @param p_RequestMessageHeader * @return template (present) From - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Response_FromHeaderRX(template (value) MessageHeader p_RequestMessageHeader) return template (present) From { @@ -192,12 +213,12 @@ module IMS_Procedures_Common { //---------------------------------------------------------------------------- /* * @desc Route set acc. A.2.3 and A.3.1 - * @param p_IsEmergency (default value: false) + * @param p_EmergencyType (default value: NO_EMERGENCY) * @return template (value) RouteBody_List * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function f_IMS_RouteSet_MO_Call_TX(boolean p_IsEmergency := false) runs on IMS_PTC return template (value) RouteBody_List - { /* @sic R5s130756 change 8: new parameter p_IsEmergency sic@ */ + function f_IMS_RouteSet_MO_Call_TX(IMS_Emergency_Type p_EmergencyType := NO_EMERGENCY) runs on IMS_PTC return template (value) RouteBody_List + { /* @sic R5s150692 change 5: parameter p_EmergencyType sic@ */ var template (omit) GenericParam v_SigCompParam := f_IMS_PTC_ImsInfo_GetSigCompParam(); // Compression parameter to be included in the last route parameter (see 34.229-1 cl. 13.2.4) var template (omit) integer v_Port_ps := omit; var template (value) RouteBody_List v_RouteBodyList; @@ -206,19 +227,21 @@ module IMS_Procedures_Common { v_Port_ps := f_IMS_PTC_GetPort_ps(); } // else: in case of GIBA or emergency call without registration SS server port in unprotected (and therefore left out) - if (p_IsEmergency) { /* @sic R5s130756 change 8 sic@ - !!!! PROSE ISSUE: acc. to R5-134955 the normal emergency call would not be routed to the E-CSCF but as a normal call !!!! */ - v_RouteBodyList := { - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & tsc_IMS_Ecscf)), - f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) - }; - } else { - v_RouteBodyList := { - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:pcscf.other.com")), - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:scscf.other.com")), - cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & px_IMS_Scscf)), - f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) - }; + select (p_EmergencyType) { + case (NO_EMERGENCY) { + v_RouteBodyList := { + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:pcscf.other.com")), + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:scscf.other.com")), + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & px_IMS_Scscf)), + f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) + }; + } + case else { /* @sic R5s150692 change 5, R5-153472 sic@ */ + v_RouteBodyList := { + cs_RouteBody(f_SIP_BuildSipUri_lr_TX("sip:orig@" & tsc_IMS_Ecscf)), + f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(f_IMS_PTC_Pcscf_Get(), v_Port_ps), v_SigCompParam) + }; + } } return v_RouteBodyList; } @@ -248,13 +271,13 @@ module IMS_Procedures_Common { // Check functions //---------------------------------------------------------------------------- - type enumerated CheckToTag_Type {noToTag, dialogToTag}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type enumerated CheckToTag_Type {noToTag, dialogToTag}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* * @desc check the To header e.g. whether it has unexpected tag * @param p_MessageHeader * @param p_CheckType - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_CheckTo(MessageHeader p_MessageHeader, CheckToTag_Type p_CheckType) runs on IMS_PTC @@ -291,7 +314,7 @@ module IMS_Procedures_Common { * @param p_Protocol * @param p_AllowFQDN (default value: true) * @param p_CheckRport (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_Request_CheckVia(MessageHeader p_MessageHeader, InternetProtocol_Type p_Protocol, @@ -320,7 +343,7 @@ module IMS_Procedures_Common { * (taking into consideration that the format of IP address representation may change) * @param p_RequestHeader * @param p_ResponseHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_Response_CheckVia(MessageHeader p_RequestHeader, MessageHeader p_ResponseHeader) runs on IMS_PTC @@ -345,28 +368,178 @@ module IMS_Procedures_Common { } } + /* + * @desc check whether the first entry in the route body matches the P-CSCF address + * @param p_RouteBodyList + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_RouteBody_CheckPcscfAddr(RouteBody_List p_RouteBodyList) runs on IMS_PTC + { /* @sic R5s150039: new function to deal with RecordRoute header as well as with Route header sic@ */ + var charstring v_PcscfAddr := p_RouteBodyList[0].nameAddr.addrSpec.components.sip.hostPort.host; + + if (not f_IMS_PTC_Pcscf_CheckAndSet(v_PcscfAddr)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid host in 'route body'"); + } + } + + /* + * @desc Check Route header of a given request sent by the UE: + * The first entry has to correspond to the IP address of the P-CSCF + * => in case of IPv6 the presentation of the address may differ from the address stored at the IMS PTC + * @param p_RequestHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_MessageHeader_Request_CheckRoute(MessageHeader p_RequestHeader) runs on IMS_PTC + { + fl_RouteBody_CheckPcscfAddr(p_RequestHeader.route.routeBody); /* @sic R5s150039: fl_RouteBody_CheckPcscfAddr sic@ */ + } + + /* + * @desc Check RecordRoute header of a given request sent by the UE: + * The first entry has to correspond to the IP address of the P-CSCF + * => in case of IPv6 the presentation of the address may differ from the address stored at the IMS PTC + * @param p_RequestHeader + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_MessageHeader_Response_CheckRecordRoute(MessageHeader p_RequestHeader) runs on IMS_PTC + { + fl_RouteBody_CheckPcscfAddr(p_RequestHeader.recordRoute.routeBody); /* @sic R5s150039: fl_RouteBody_CheckPcscfAddr sic@ */ + } + /* * @desc Check Contact header * @param p_MessageHeader - * @param p_AllowGRUU (default value: false) - * @param p_AllowFQDN (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_MessageHeader_CheckContactAddr(MessageHeader p_MessageHeader, - boolean p_AllowGRUU := false, - boolean p_AllowFQDN := true) runs on IMS_PTC - { + function f_IMS_MessageHeader_CheckContactAddr(MessageHeader p_MessageHeader) runs on IMS_PTC + { /* @sic R5-153760: p_AllowGRUU, p_AllowFQDN removed sic@ */ var template integer v_Port := *; var SipUrl v_SipUrl; if (not match(p_MessageHeader.contact, cr_Contact_Wildcard)) { // contact may be wildcard for de-registration v_SipUrl := f_MessageHeader_GetContactSipUrl(p_MessageHeader); - if (not f_IMS_PTC_CheckSipUrlForIPAddrOrFQDNOrGRUU(v_SipUrl, v_Port, p_AllowGRUU, p_AllowFQDN)) { + if (not f_IMS_PTC_CheckSipUrlForIPAddrOrFQDNOrGRUU(v_SipUrl, v_Port)) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SipUrl in 'contact'"); } } } + /* + * @desc Check CSeq of a MessageHeader against expected value + * @param p_MessageHeader + * @param p_ExpectedCSeqValue + * @status APPROVED (IMS) + */ + function f_IMS_MessageHeader_CheckCSeq(template (value) MessageHeader p_MessageHeader, + integer p_ExpectedCSeqValue) runs on IMS_PTC + { + var integer v_CSeqValue := f_MessageHeader_GetCseqValue(p_MessageHeader); + if (v_CSeqValue != p_ExpectedCSeqValue) { // @sic R5s150276 change 2: "==" replaced by "!=" sic@ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid CSeqValue"); + } + } + + //============================================================================ + // Dialog handling + //---------------------------------------------------------------------------- + /* + * @desc returns either next Cseq value of ? if there has been no request sent by the UE so far + * @param p_CseqType (default value: dialogRemote) + * @param p_DialogIndex (default value: omit) + * @return template (present) integer + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_RequestInDialog_CSeqValueRX(IMS_PTC_CseqType_Type p_CseqType := dialogRemote, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) integer + { + var template (present) integer v_CSeqValue := ?; + + if (isvalue(f_IMS_PTC_ImsInfo_CseqGet(p_CseqType, p_DialogIndex))) { + v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(p_CseqType, p_DialogIndex); + } + return v_CSeqValue; + } + + /* + * @desc Build the From header for requests being received within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (present) From + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_RequestInDialog_FromHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) From + { /* @sic R5s140017 MCC160 implementation sic@ */ + /* @sic R5s140121 change 2.1: "runs on" added sic@ */ + var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before + var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogRemoteId); + return cr_FromWithTag(v_SipUrl, v_FromTag); + } + + /* + * @desc Build the To header for requests being received within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (present) To + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_RequestInDialog_ToHeaderRX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (present) To + { /* @sic R5s140017 MCC160 implementation sic@ */ + var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); /* will cause a runtime error when to-tag has not been set before + NOTE: this runtime error is intended as something else is wrong */ + var template (present) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriRX(dialogLocalId, -, p_DialogIndex); /* @sic R5s150382 change 1: p_DialogIndex sic@ */ + return cr_ToWithTag(v_SipUrl, v_ToTag); + } + + /* + * @desc Build the From header for requests being sent within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (value) From + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_RequestInDialog_FromHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) From + { /* @sic R5s140017 MCC160 implementation sic@ */ + /* @sic R5s140121 change 4.1: "runs on" added sic@ */ + var charstring v_FromTag := valueof(f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before + var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogLocalId); + return cs_From(v_SipUrl, v_FromTag); + } + + /* + * @desc Build the To header for requests being sent within a dialog (e.g. PRACK or BYE) + * @param p_DialogIndex (default value: omit) + * @return template (value) To + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_RequestInDialog_ToHeaderTX(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC return template (value) To + { /* @sic R5s140017 MCC160 implementation sic@ */ + var charstring v_ToTag := valueof(f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex)); // will cause a runtime error when to-tag has not been set before + var template (value) SipUrl v_SipUrl := f_IMS_PTC_ImsInfo_GetSipUriTX(dialogRemoteId); + return cs_ToWithTag(v_SipUrl, v_ToTag); + } + + /* + * @desc check to-tag of received response and store value if necessary (mainly called after receiving 180 or 183 response) + * @param p_ResponseMessageHeader + * @param p_DialogIndex (default value: omit) + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_Dialog_SetRemoteTag(MessageHeader p_ResponseMessageHeader, + template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex := omit) runs on IMS_PTC + { /* @sic R5s140017 MCC160 implementation: f_IMS_PTC_ImsInfo_DialogGetToTag, f_IMS_PTC_ImsInfo_DialogSetToTag replaced by f_IMS_PTC_ImsInfo_DialogGetRemoteTag, f_IMS_PTC_ImsInfo_DialogSetRemoteTag sic@ */ + var template (omit) charstring v_DialogRemoteTag := f_IMS_PTC_ImsInfo_DialogGetRemoteTag(p_DialogIndex); + var template (omit) charstring v_ReceivedToTag := f_MessageHeader_GetToTag(p_ResponseMessageHeader); + var charstring v_ReceivedToTagValue; + + if (ispresent(v_ReceivedToTag)) { + v_ReceivedToTagValue := valueof(v_ReceivedToTag); + if (ispresent(v_DialogRemoteTag)) { // @sic R5s140173 sic@ + if (not match(v_ReceivedToTagValue, v_DialogRemoteTag)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid To-tag"); + } + } else { + f_IMS_PTC_ImsInfo_DialogSetRemoteTag(v_ReceivedToTagValue); + } + } + } + //============================================================================ // Generic Common Messages //---------------------------------------------------------------------------- @@ -375,7 +548,7 @@ module IMS_Procedures_Common { * @param p_MessageHeader_Request * @param p_ContentType (default value: omit) * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_OtherResponse_200_MessageHeaderRX(template (value) MessageHeader p_MessageHeader_Request, template ContentType p_ContentType := omit) runs on IMS_PTC return template (present) MessageHeader @@ -429,7 +602,8 @@ module IMS_Procedures_Common { } if (v_A2A4) { v_Port_us := f_IMS_PTC_GetPort_us(); /* @sic R5s130985 Change 2 sic@ */ - v_MessageHeader_Response.contact := cr_Contact(cr_SipUri_HostPort(?, v_Port_us)); // host address needs to be checked after receiving + v_MessageHeader_Response.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us)); /* host address needs to be checked after receiving + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ } return v_MessageHeader_Response; } @@ -440,7 +614,7 @@ module IMS_Procedures_Common { * @param p_Protocol * @param p_Response * @param p_IMS_DATA_RSP_ByRef (by reference) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ altstep a_IMS_ReceiveResponse(template (value) MessageHeader p_RequestHeader, template (present) InternetProtocol_Type p_Protocol, @@ -461,7 +635,7 @@ module IMS_Procedures_Common { * @param p_Protocol * @param p_Response * @return IMS_DATA_RSP - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_ReceiveResponse(template (value) MessageHeader p_RequestHeader, template (present) InternetProtocol_Type p_Protocol, @@ -472,4 +646,23 @@ module IMS_Procedures_Common { return v_IMS_DATA_RSP_ByRef; } + /* + * @desc wrapper altstep to receive 200 OK + * @param p_RequestHeader + * @param p_Protocol + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + altstep a_IMS_ReceiveResponse200OK(template (value) MessageHeader p_RequestHeader, + template (present) InternetProtocol_Type p_Protocol) runs on IMS_PTC + { // NOTE: in general the responses e.g. for different NOTIFY messages differ in the CSeq value only + var template (present) MessageHeader v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(p_RequestHeader); + var IMS_DATA_RSP v_IMS_DATA_RSP_ByRef; // Dummy + + [] a_IMS_ReceiveResponse(p_RequestHeader, p_Protocol, cr_Response(c_statusLine200, v_MessageHeader_Response), v_IMS_DATA_RSP_ByRef); + } + + + + + } diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_Registration.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_Registration.ttcn similarity index 70% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_Registration.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_Registration.ttcn index 0d7c5fd..79ddafc 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_Procedures_Registration.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_Procedures_Registration.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 12:36:16 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12204 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:40:16 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14433 $ /******************************************************************************/ module IMS_Procedures_Registration { @@ -30,13 +30,41 @@ module IMS_Procedures_Registration { import from NAS_AuthenticationCommon all; import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; + import from Parameters all; + + + //---------------------------------------------------------------------------- + + template (value) charstring cs_IMS_PubGRUU(charstring p_PublicUserIdentity) := p_PublicUserIdentity & ";gr=" & tsc_IMS_PubGRUU_UriParameterValue; /* @sic R5s150721, R5-153760 sic@ + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + /* + * @desc to get a unique and distinct temp gruu (see RFC 5627) for a given URI; + * "sip:user@3gpp.org" shall result in "sip:tgruu.736970-75736572-33677070-6f7267@" &p_HomeDomainName & ";gr"; + * NOTE: for each AOR used in the NOTIFY for reg-event package and/or the 200 OK for REGISTER there shall be a distinct temp-gruu + * @param p_PublicUserIdentity + * @param p_HomeDomainName + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_IMS_TempGRUU(charstring p_PublicUserIdentity, + charstring p_HomeDomainName) return charstring + { /* @sic R5s150721, R5-153760: replaces cs_IMS_TempGRUUForUE sic@ */ + var CharStringList_Type v_CharStringList := f_StringSplit(p_PublicUserIdentity, {":", ".", "@"}); + var CharStringList_Type v_HexStringList; + var integer i; + for (i:=0; i < lengthof(v_CharStringList); i:=i+1) { + v_HexStringList[i] := oct2str(char2oct(v_CharStringList[i])); + } + return "sip:tgruu." & f_StringJoin(v_HexStringList, "-") & "@" & p_HomeDomainName & ";gr"; + } //---------------------------------------------------------------------------- /* * @desc return security parameters out of register request message * @param p_RegisterRequest * @return SecurityClientParams_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_GetSecurityClientParams(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return SecurityClientParams_Type { @@ -65,56 +93,23 @@ module IMS_Procedures_Registration { return v_SecurityClientParams; } - /* - * @desc Acc. to A.1.6 the To header is derived from the From header of the previous SUBSCRIBE message - * NOTE: in fact the URIs in From and To are the same - * @param p_SubscribeMessageHeader - * @return template (value) To - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_Notify_ToHeaderTX(MessageHeader p_SubscribeMessageHeader) return template (value) To - { - var charstring v_ToTag := f_MessageHeader_GetFromTag(p_SubscribeMessageHeader); - var SipUrl v_SipUrl := f_Addr_Union_GetSipUrl(p_SubscribeMessageHeader.fromField.addressField); /* @sic R5s130133 additional change 3 sic@ */ - - return cs_ToWithTag(v_SipUrl, v_ToTag); /* @sic R5-130750: same URI as in previous SUBSCRIBE's From header sic@ */ - } - - /* - * @desc Acc. to A.1.6 the From header is derived from the To header of the previous SUBSCRIBE message - * NOTE: in fact the URIs in From and To are the same - * @param p_SubscribeMessageHeader - * @return template (value) From - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) - */ - function f_IMS_Notify_FromHeaderTX(MessageHeader p_SubscribeMessageHeader) runs on IMS_PTC return template (value) From - { - var SipUrl v_SipUrl := f_Addr_Union_GetSipUrl(p_SubscribeMessageHeader.toField.addressField); /* @sic R5s130133 additional change 3 sic@ */ - var charstring v_FromTag := f_IMS_Response_ToTagTX(p_SubscribeMessageHeader); /* NOTE: RFC 3265 explicitly requires the to-tag of the NOTIFY to be the same as the from-tag of the SUBSCRIBE (see clause 3.3.4) - * but in general SUBSCRIBE generates a dialog or is sent on a pre-existing dialog - * => NOTIFY needs to be sent on this dialog and has to use the tags of this dialog - * @sic R5-131897, R5-132063 - generic handling of to-tags sic@ - * @sic R5s130660 sic@ */ - return cs_From(v_SipUrl, v_FromTag); /* @sic R5-130750: same URI as in previous SUBSCRIBE's To header sic@ */ - } - /* * @desc Build Contact header template to be used for sending * @param p_RegisterRequestMessageHeader - * @param p_GRUUsInSIP * @param p_Expires + * @param p_GRUUsInSIP (default value: pc_IMS_GRUUsInSIP) * @return template (value) Contact - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_RegisterResponse_BuildContactHeader(MessageHeader p_RegisterRequestMessageHeader, - boolean p_GRUUsInSIP, - charstring p_Expires) runs on IMS_PTC return template (value) Contact + charstring p_Expires, + boolean p_GRUUsInSIP := pc_IMS_GRUUsInSIP) runs on IMS_PTC return template (value) Contact { /* @sic R5-130750 change 6: for now all parameters will be taken over from the REGISTER's Contact (i.e. without checking whether a particular parameter is really a feature parameter) sic@ */ /* @sic R5s130274: wildcard in contact header of de-registration sic@ */ - var SipUrl v_ContactUrl; - var template (omit) SemicolonParam_List v_ContactParams := omit; - var charstring v_PublicUserIdForGRUU; var boolean v_WildcardedContact := match(p_RegisterRequestMessageHeader.contact, cr_Contact_Wildcard); + var template (omit) SemicolonParam_List v_ContactParams := omit; + var charstring v_SipUriForGruu; + var SipUrl v_ContactUrl; if (v_WildcardedContact) { // contact may be wildcard for de-registration v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); @@ -129,16 +124,13 @@ module IMS_Procedures_Registration { } else { v_ContactParams := p_RegisterRequestMessageHeader.contact.contactBody.contactAddresses[0].contactParams; /* @sic R5-130750 change 6 sic@ */ + v_ContactParams := f_SIP_SemicolonParamList_RemoveParam(v_ContactParams, "expires"); /* @sic R5s150342 sic@ */ } - if (p_GRUUsInSIP) { // Add pub-gruu and temp-gruu parameters - v_PublicUserIdForGRUU := f_SIP_SipUrl_GetPublicUserIdentity(f_Addr_Union_GetSipUrl(p_RegisterRequestMessageHeader.toField.addressField)); - v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("pub-gruu", cs_IMS_ArbitraryValueFor_gr(v_PublicUserIdForGRUU))); - v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("temp-gruu", cs_IMS_TempGRUUForUE(f_IMS_PTC_ImsInfo_GetHomeDomainName()))); /* !!!! acc. to 34.229-1 A.1.3: - !!!! "with an arbitrary value in the user part and the host part matching - !!!! with the domain of the To header of the REGISTER and - !!!! gr parameter without any value" - !!!! => shall not use px_IMS_HomeDomainName ??? */ + if (p_GRUUsInSIP) { // Add pub-gruu and temp-gruu parameters @sic R5-153760 sic@ + v_SipUriForGruu := f_IMS_PTC_ImsInfo_GetURI(gruu); + v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParamQuoted("pub-gruu", cs_IMS_PubGRUU(v_SipUriForGruu))); + v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParamQuoted("temp-gruu", fl_IMS_TempGRUU(v_SipUriForGruu, f_IMS_PTC_ImsInfo_GetHomeDomainName()))); } } v_ContactParams := f_SemicolonParam_List_Add_TX(v_ContactParams, cs_GenericParam("expires", p_Expires)); @@ -151,25 +143,57 @@ module IMS_Procedures_Registration { group CheckFunctions { /* - * @desc check the parameters of the Contact header + * @desc check given contact parametes to contain parameter with given p_ParamId and its value (comma separated list) containing the given p_TagValue + * @param p_ContactParams + * @param p_ParamId + * @param p_TagValue + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_IMS_ContactParams_CheckValueList(SemicolonParam_List p_ContactParams, + charstring p_ParamId, + template (present) charstring p_TagValue) return boolean + { + var integer i; + var integer k; + var charstring v_TagValueString; + var CharStringList_Type v_TagValueList; + + for (i:=0; i < lengthof(p_ContactParams); i:=i+1) { + if (match(p_ContactParams[i], cr_GenericParam_Common(p_ParamId, cr_GenValueQuoted(?)))) { + v_TagValueString := p_ContactParams[i].paramValue.quotedString; + v_TagValueList := f_StringSplit(v_TagValueString, {","}); + for (k:=0; k < lengthof(v_TagValueList); k:=k+1) { + if (match(v_TagValueList[k], p_TagValue)) { + return true; + } + } + } + } + return false; + } + + /* + * @desc check the parameters of the Contact header of REGISTER messsage * @param p_ContactAddress * @param p_CondA7 (default value: false) * @param p_IMS_MTSI (default value: pc_MultimediaTelephonyService) - * @param p_IMS_GRUUsInSIP (default value: pc_IMS_GRUUsInSIP) - * @param p_IMS_SMSoverIMS (default value: tsc_IMS_SMSoverIMS) - * @param p_Video (default value: tsc_IMS_VideoFeature) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_IMS_SMSoverIMS (default value: pc_SMS_MT) + * @param p_Video (default value: pc_IMS_Video_FeatureTag) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function fl_IMS_Register_ContactAddress_CheckParams(ContactAddress p_ContactAddress, - boolean p_CondA7 := false, - boolean p_IMS_MTSI := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ - boolean p_IMS_GRUUsInSIP := pc_IMS_GRUUsInSIP, - boolean p_IMS_SMSoverIMS := tsc_IMS_SMSoverIMS, - boolean p_Video := tsc_IMS_VideoFeature) runs on IMS_PTC + function fl_IMS_Register_ContactHeader_CheckParams(ContactAddress p_ContactAddress, + boolean p_CondA7 := false, + boolean p_IMS_MTSI := pc_MultimediaTelephonyService, /* @sic R5s130510 additional change 1: tsc_IMS_MTSI replaced by pc_MultimediaTelephonyService sic@ */ + boolean p_IMS_SMSoverIMS := pc_SMS_MT, + boolean p_Video := pc_IMS_Video_FeatureTag) runs on IMS_PTC { /* NOTE: 'Expires' can only be checked in context with the 'Expires' header field */ + /* @sic R5s150180: tsc_IMS_VideoFeature replaced by pc_IMS_Video_FeatureTag sic@ */ + /* @sic R5-153766: p_IMS_SMSoverIMS := pc_SMS_MT, check of instance id for gruu removed as this is done in f_IMS_A_1_1_MessageHeader_CommonChecks now sic@ */ var SemicolonParam_List v_ContactParams := {}; var SemicolonParam_List v_UrlParams := {}; var SipUrl v_SipUrl; + var boolean v_Rel11OrGreater := f_IMS_PTC_UE_ReleaseGreaterOrEqual(11); /* @sic R5s150630 sic@ */ if (ispresent(p_ContactAddress.contactParams)) { v_ContactParams := p_ContactAddress.contactParams; @@ -181,32 +205,39 @@ module IMS_Procedures_Registration { v_UrlParams := v_SipUrl.urlParameters; } if (not match(v_UrlParams, cr_SemicolonParam_List_OneSpecificParam("sos"))) { // @sic R5s130495 change 10 sic@ - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sos URI parameter for 'ContactAddress'"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sos URI parameter for Contact header"); } } // Rel-7 specific, @sic R5-073440 sic@ - if (p_IMS_MTSI) { // check 'feature-param' - if (not match(v_ContactParams, cr_FeatureParam_3gpp_icsi_ref)) { // @sic R5s130109, R5s130738: string needs to be quoted; R5-142247 sic@ + if (p_IMS_MTSI) { // check 'feature-param' + if (not fl_IMS_ContactParams_CheckValueList(v_ContactParams, tsc_IMS_FeatureParamId_3gpp_icsi_ref, cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref)) { /* @sic R5s130109, R5s130738: string needs to be quoted; R5-142247 sic@ + @sic R5-153987: fl_IMS_ContactParams_CheckValueList sic@ */ f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid params in 'Contact Feature Params'"); } } - if (p_IMS_GRUUsInSIP) { // check 'c-p-instance' - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // @sic R5-134659 sic@ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - if (not match(v_ContactParams, cr_CPInstanceInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid params in 'ContactAddress'"); - } - } - if (p_IMS_SMSoverIMS) { // check 'feature-param' + if (p_IMS_SMSoverIMS and not p_CondA7) { // check 'feature-param' @sic R5-153766: "and not p_CondA7" sic@ if (not match(v_ContactParams, cr_SMSParamInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SMS params in 'ContactAddress'"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SMS params in Contact header"); } } - if (p_Video) { // check 'feature-param' + if (p_Video and not p_CondA7) { // check 'feature-param' @sic R5-153766: "and not p_CondA7" sic@ if (not match(v_ContactParams, cr_VideoInContactParams)) { - f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid video params in 'ContactAddress'"); + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid video params in Contact header"); + } + } + if (v_Rel11OrGreater and pc_IMS_CS_PS_SRVCC) { // check 'feature-param' @sic R5-145796; R5s150630 sic@ + if (not match(v_ContactParams, cr_RSRVCCInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid rSRVCC params in Contact header"); + } + } + if (v_Rel11OrGreater and pc_IMS_CS_PS_SRVCCAlert) { // check 'feature-param' @sic R5-145796; R5s150630 sic@ + if (not match(v_ContactParams, cr_RSRVCCAlertInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid rSRVCC Alerting params in Contact header"); + } + } + if (v_Rel11OrGreater and pc_SRVCC_GERAN_UTRAN) { // check 'feature-param' @sic R5-151242; R5s150630 sic@ + if (not match(v_ContactParams, cr_AccessTypeInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "feature parameter 'g.3gpp.accesstype' missing in Contact header"); } } } @@ -215,7 +246,7 @@ module IMS_Procedures_Registration { * @desc Check the address of the Contact header * @param p_ContactAddress * @param p_UE_Address - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_ContactAddress_CheckHostname(ContactAddress p_ContactAddress, IP_AddrInfo_Type p_UE_Address) runs on IMS_PTC @@ -257,7 +288,7 @@ module IMS_Procedures_Registration { /* * @desc Check the SecurityClient header * @param p_SecClient - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_SecurityClient_Check(SecurityClient p_SecClient) runs on IMS_PTC { /* @sic R5s130710 - MCC160 Implementation: p_Confidentiality removed sic@ */ @@ -294,7 +325,7 @@ module IMS_Procedures_Registration { /* * @desc check Authorization header sent by the UE * @param p_Authorization - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_Authorization_Check(Authorization p_Authorization) runs on IMS_PTC { @@ -317,7 +348,7 @@ module IMS_Procedures_Registration { * NOTE: 'contact' may be wildcard e.g. in case of de-registration * @param p_MessageHeader * @param p_ExplicitExpiry (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_MessageHeader_CheckExpires(MessageHeader p_MessageHeader, template (omit) charstring p_ExplicitExpiry := omit) runs on IMS_PTC @@ -359,7 +390,7 @@ module IMS_Procedures_Registration { * @param p_UE_Address (default value: omit) * @param p_ExplicitExpiry (default value: omit) * @param p_CheckAuthorization (default value: true) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_A_1_1_MessageHeader_CommonChecks(MessageHeader p_MessageHeader, InternetProtocol_Type p_Protocol, @@ -377,12 +408,20 @@ module IMS_Procedures_Registration { // Check 'To' f_IMS_MessageHeader_CheckTo(p_MessageHeader, noToTag); - // Check 'ContactAddress' + // Check Contact header if (ispresent(p_MessageHeader.contact.contactBody.contactAddresses[0])) { /* NOTE: is not be present when 'contact' is wildcard e.g. in case of de-registration * but in this case the respective receive template needs to allow 'cr_ContactWildcard' */ v_ContactAddress := p_MessageHeader.contact.contactBody.contactAddresses[0]; + + if (pc_IMS_GRUUsInSIP) { // check 'c-p-instance' + // @sic R5-153766: Check of instance-id shall be done for GRUU too sic@ + if (not match(v_ContactAddress.contactParams, cr_CPInstanceInContactParams)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid instance id in Contact header"); + } + } + if (not v_IsDeregistration) { /* @sic R5-142956: in case of deregistration no further contact parameters need to be checked sic@ */ - fl_IMS_Register_ContactAddress_CheckParams(v_ContactAddress, p_CondA7); + fl_IMS_Register_ContactHeader_CheckParams(v_ContactAddress, p_CondA7); } if (isvalue(p_UE_Address)) { fl_IMS_ContactAddress_CheckHostname(v_ContactAddress, valueof(p_UE_Address)); @@ -405,7 +444,7 @@ module IMS_Procedures_Registration { /* * @desc Check whether message header contains parameter for sig compression * @param p_MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_MessageHeader_CheckSigComp(MessageHeader p_MessageHeader) runs on IMS_PTC { @@ -429,7 +468,7 @@ module IMS_Procedures_Registration { * @param p_CondA7 (default value: false) * @param p_CondA3 (default value: false) * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_PublicUserIdentity_Check(SipUrl p_SipUrl, boolean p_CondA7 := false, @@ -461,7 +500,7 @@ module IMS_Procedures_Registration { * @param p_MessageHeader * @param p_CondA7 (default value: false) * @param p_CondA3 (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_A_1_1_MessageHeader_CheckPublicUserIdentity(MessageHeader p_MessageHeader, boolean p_CondA7 := false, @@ -491,7 +530,7 @@ module IMS_Procedures_Registration { * @desc wait for REGISTER when it has not been received yet * @param p_IMS_DATA_REQ * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_ReceiveOrGetRegisterRequest(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ) runs on IMS_PTC return IMS_DATA_REQ { @@ -512,12 +551,14 @@ module IMS_Procedures_Registration { * @param p_RegisterRequest * @param p_CondA3 (default value: false) * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) + * @param p_CondA4 (default value: (pc_IMS_CS_PS_SRVCCAlert or pc_IMS_CS_PS_SRVCC)) * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterResponse_200_MessageHeaderTX(REGISTER_Request p_RegisterRequest, boolean p_CondA3 := false, - charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return template (value) MessageHeader + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration, + boolean p_CondA4 := (pc_IMS_CS_PS_SRVCCAlert or pc_IMS_CS_PS_SRVCC)) runs on IMS_PTC return template (value) MessageHeader { /* p_CondA3 .. condition A3 (Response for an emergency registration) */ /* @sic R5-130750 change 1, 4: specific IMPU for messages sent in DL; P-Associated-URI sic@ */ var MessageHeader v_MessageHeader_Register := p_RegisterRequest.msgHeader; @@ -550,10 +591,15 @@ module IMS_Procedures_Registration { v_MessageHeader_Response.callId := v_MessageHeader_Register.callId; v_MessageHeader_Response.sessionId := v_MessageHeader_Register.sessionId; /* @sic R5s130195 BASELINE MOVING 2013 - SessionId sic@ */ v_MessageHeader_Response.cSeq := v_MessageHeader_Register.cSeq; - v_MessageHeader_Response.contact := f_SIP_RegisterResponse_BuildContactHeader(v_MessageHeader_Register, pc_IMS_GRUUsInSIP, p_RegisterExpiration); + v_MessageHeader_Response.contact := f_SIP_RegisterResponse_BuildContactHeader(v_MessageHeader_Register, p_RegisterExpiration); v_MessageHeader_Response.pAssociatedURI := cs_PAssociatedURI(v_NameAddrParamList); v_MessageHeader_Response.serviceRoute := v_ServiceRoute; v_MessageHeader_Response.path := cs_PathDef(f_IMS_PTC_Pcscf_Get()); + + if (p_CondA4) { // @sic R5-145796 sic@ + v_MessageHeader_Response.featureCaps := cs_FeatureCaps({ cs_GenericParam_Common("+g.3gpp.atcf", cs_GenValueQuoted("tel:+1-237-888-999")), + cs_GenericParam_Common("+g.3gpp.cs2ps-srvcc", cs_GenValueQuoted(""))}); + } return v_MessageHeader_Response; } @@ -563,7 +609,7 @@ module IMS_Procedures_Registration { * @param p_RegisterRequest * @param p_Nonce (default value: omit) * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterResponse_401_MessageHeaderTX(REGISTER_Request p_RegisterRequest, template (omit) charstring p_Nonce := omit) runs on IMS_PTC return template (value) MessageHeader @@ -595,7 +641,7 @@ module IMS_Procedures_Registration { * @desc 403 Forbidden (see TS 34.229, A.3.2) * @param p_RegisterRequest * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT) + * @status APPROVED (IMS_IRAT) */ function f_IMS_RegisterResponse_403_MessageHeaderTX(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) MessageHeader { @@ -617,25 +663,28 @@ module IMS_Procedures_Registration { * @param p_SubscribeRequest * @param p_RecordRoute * @param p_ExpireTime (default value: "600000") - * @param p_ContactAddr (default value: px_IMS_Scscf) + * @param p_ContactHostname (default value: px_IMS_Scscf) + * @param p_ToTag (default value: omit) * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SubscribeResponse_200_MessageHeaderTX(SUBSCRIBE_Request p_SubscribeRequest, template (value) RecordRoute p_RecordRoute, charstring p_ExpireTime := "600000", - charstring p_ContactAddr := px_IMS_Scscf) runs on IMS_PTC return template (value) MessageHeader + charstring p_ContactHostname := px_IMS_Scscf, + template (omit) charstring p_ToTag := omit) runs on IMS_PTC return template (value) MessageHeader { /* NOTE: acc. to A.1.5 this message does not have a Session-ID */ + /* @sic R5-153986: parameter p_ToTag to allow different ToTags for different dialogs created by subscription to even packages sic@ */ var MessageHeader v_MessageHeader_Subscribe := p_SubscribeRequest.msgHeader; var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; v_MessageHeader_Response.via := v_MessageHeader_Subscribe.via; - v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_SubscribeRequest.msgHeader); /* @sic R5-130750 same as in SUBSCRIBE, R5s130235 additional changes sic@ - @sic R5-131897, R5-132063 - generic handling of to-tags sic@ */ + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_SubscribeRequest.msgHeader, p_ToTag); /* @sic R5-130750 same as in SUBSCRIBE, R5s130235 additional changes sic@ + @sic R5-131897, R5-132063 - generic handling of to-tags sic@ */ v_MessageHeader_Response.fromField := v_MessageHeader_Subscribe.fromField; v_MessageHeader_Response.callId := v_MessageHeader_Subscribe.callId; v_MessageHeader_Response.cSeq := v_MessageHeader_Subscribe.cSeq; - v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(p_ContactAddr)); // @sic R5s120727 change 3 sic@ + v_MessageHeader_Response.contact := cs_Contact(cs_SipUri_HostPort(p_ContactHostname)); // @sic R5s120727 change 3 sic@ v_MessageHeader_Response.expires := cs_Expires (p_ExpireTime); // @sic R5-130548 sic@ v_MessageHeader_Response.recordRoute := p_RecordRoute; @@ -670,14 +719,14 @@ module IMS_Procedures_Registration { * @desc used for initialisation of f_IMS_RegisterRequest_MessageHeaderRX_Initial/Subsequent with headers being common * @param p_CondA3 * @param p_CseqValue - * @param p_SessionIdSupported (default value: false) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_IMS_RegisterRequest_MessageHeaderRX_Base(boolean p_CondA3, template (present) integer p_CseqValue, - boolean p_SessionIdSupported := false) return template (present) MessageHeader - { + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) return template (present) MessageHeader + { /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ var template (present) MessageHeader v_MessageHeader_Register := cr_MessageHeader_Dummy; v_MessageHeader_Register.cSeq := cr_CseqDef(p_CseqValue, "REGISTER"); @@ -706,7 +755,7 @@ module IMS_Procedures_Registration { * @desc initial REGISTER (condition A1 or A3) acc. to 34.229-1 Annex A.1.1 * @param p_Protocol * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterRequest_MessageHeaderRX_Initial(InternetProtocol_Type p_Protocol) runs on IMS_PTC return template (present) MessageHeader { /* NOTE: several checks are done explicitly in the respective check functions applied on the receive messages (the same for sigcomp) */ @@ -731,7 +780,7 @@ module IMS_Procedures_Registration { v_MessageHeader_Register.route := omit; // @sic R5-134659 sic@ v_MessageHeader_Register.fromField := cr_FromWithTag(v_SipUrlPublicUserId); // checked in f_IMS_A_1_1_MessageHeader_CheckPublicUserIdentity v_MessageHeader_Register.toField := cr_ToDef(v_SipUrlPublicUserId); // checked in f_IMS_A_1_1_MessageHeader_CheckPublicUserIdentity - v_MessageHeader_Register.contact := cr_Contact(cr_SipUri_HostPort(?, *)); // checked in fl_IMS_Register_ContactAddress_CheckParams, f_IMS_A_1_1_MessageHeader_CommonChecks + v_MessageHeader_Register.contact := cr_Contact(cr_SipUri_HostPort(?, *)); // checked in fl_IMS_Register_ContactHeader_CheckParams, f_IMS_A_1_1_MessageHeader_CommonChecks v_MessageHeader_Register.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()) ifpresent; // optional for A1, A3; cellId is not checked @@ -745,13 +794,15 @@ module IMS_Procedures_Registration { /* * @desc subsequent REGISTER (condition A2) acc. to 34.229-1 Annex A.1.1 * @param p_NonceCount + * @param p_Protocol * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(integer p_NonceCount) runs on IMS_PTC return template (present) MessageHeader + function f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(integer p_NonceCount, + InternetProtocol_Type p_Protocol) runs on IMS_PTC return template (present) MessageHeader { /* p_NonceCount .. Acc. to A.1.1 "counter to indicate how many times UE has sent the same value of nonce within successive REGISTERs, initial value shall be 1" * => during initial registration "1" is used per default; for each re-authentication (=> new nonce) the nonce-counter is reset to "1" - */ + * @sic R5-142727: new parameter p_Protocol sic@ */ var template (present) MessageHeader v_MessageHeader_Register; var template (present) SipUrl v_SipUrlPublicUserId; var charstring v_Nonce := f_IMS_PTC_Security_GetNonce(); @@ -759,6 +810,11 @@ module IMS_Procedures_Registration { var IMS_ProtectedPorts_Type v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqIncr(register); var boolean v_IsGiba := false; + var template integer v_ViaPort := *; + + if (p_Protocol == udp) { // @sic R5-145727 sic@ + v_ViaPort := v_Protected.Port_us; + } v_SipUrlPublicUserId := f_SIP_BuildSipUri_RX(f_IMS_PTC_ImsInfo_GetURI(registrationId)); /* public user identity is checked against what the UE has sent in initial REGISTER (in case the UE does not have an ISIM this is the temporary user id) @@ -766,7 +822,7 @@ module IMS_Procedures_Registration { v_MessageHeader_Register := fl_IMS_RegisterRequest_MessageHeaderRX_Base(v_IsGiba, v_CseqValue); v_MessageHeader_Register.route := omit; // @sic R5-134659 sic@ - v_MessageHeader_Register.via := cr_ViaDef(-, cr_HostPort(?, v_Protected.Port_us)); // @sic R5s120727 change 7 sic@ + v_MessageHeader_Register.via := cr_ViaDef(-, cr_HostPort(?, v_ViaPort)); // @sic R5s120727 change 7; R5-145727 sic@ v_MessageHeader_Register.fromField := cr_FromWithTag(v_SipUrlPublicUserId); v_MessageHeader_Register.toField := cr_ToDef(v_SipUrlPublicUserId); v_MessageHeader_Register.contact := cr_Contact(cr_SipUri_HostPort(?, v_Protected.Port_us)); // checked in f_IMS_A_1_1_MessageHeader_CommonChecks; @sic R5s120727 change 7 sic@ @@ -781,7 +837,7 @@ module IMS_Procedures_Registration { /* * @desc REGISTER to de-register * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_RegisterRequest_MessageHeaderRX_Derregister() runs on IMS_PTC return template (present) MessageHeader { @@ -820,31 +876,34 @@ module IMS_Procedures_Registration { } //---------------------------------------------------------------------------- - /* * @desc SUBSCRIBE acc. to 34.229-1 Annex A.1.4, A.5.1 or A.6.1 * @param p_EventType (default value: "reg") * @param p_SipUrlTo (default value: omit) * @param p_ExpireTime (default value: "600000") - * @param p_SessionIdSupported (default value: false) + * @param p_SessionIdSupported (default value: pc_IMS_SessionIdSupported) * @return template (present) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SubscribeRequest_MessageHeaderRX(EventType p_EventType := "reg", template SipUrl p_SipUrlTo := omit, template (present) charstring p_ExpireTime := "600000", - boolean p_SessionIdSupported := false) runs on IMS_PTC return template (present) MessageHeader + boolean p_SessionIdSupported := pc_IMS_SessionIdSupported) runs on IMS_PTC return template (present) MessageHeader { /* p_EventType: * "reg" - normal case acc. A.1.4 * "conference" - "SUBSCRIBE for conference event package" acc. annex A.5.1; NOTE in this case p_SipUrlTo shall be present and set acc. to "px_FinalConferenceUri" * "message-summary" - "SUBSCRIBE for Message Waiting Indication package" acc. annex A.6.1 */ /* @sic R5-130750 change 4: specific IMPU for messages sent in DL sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5s150086 - p_SessionIdSupported: pc_IMS_SessionIdSupported per default sic@ */ var template (present) MessageHeader v_MessageHeader_Subscribe := cr_MessageHeader_Dummy; var IMS_ProtectedPorts_Type v_Protected; var template (present) PAccessNetworkInfo v_PAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); var template (present) SipUrl v_SipUrlFrom := f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(); var template (present) SipUrl v_SipUrlTo; + var template integer v_Port_ps := *; + var template integer v_Port_us_Via := *; + var template integer v_Port_us_Contact := ?; if (ispresent(p_SipUrlTo)) { v_SipUrlTo := p_SipUrlTo; // NOTE: compiler warning cannot be avoided here @@ -862,11 +921,6 @@ module IMS_Procedures_Registration { v_MessageHeader_Subscribe.event := cr_EventDef(p_EventType); if (f_IMS_PTC_SecurityScheme_IsGiba()) { - v_MessageHeader_Subscribe.route := cr_RouteSubs (f_IMS_PTC_Pcscf_Get(), *, px_IMS_Scscf); - v_MessageHeader_Subscribe.via := cr_ViaDef(-, cr_HostPort(?)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ */ - v_MessageHeader_Subscribe.contact := cr_Contact(cr_SipUri_HostPort(?, ?)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ - @sic R5s130925 change 1: UE may use any port as server port sic@ */ - v_MessageHeader_Subscribe.require := omit; v_MessageHeader_Subscribe.proxyRequire := omit; v_MessageHeader_Subscribe.securityVerify := omit; @@ -874,16 +928,20 @@ module IMS_Procedures_Registration { } else { v_Protected := f_IMS_PTC_Security_GetProtectedPorts(); - v_MessageHeader_Subscribe.route := cr_RouteSubs (f_IMS_PTC_Pcscf_Get(), v_Protected.Port_ps, px_IMS_Scscf); - v_MessageHeader_Subscribe.via := cr_ViaDef(-, cr_HostPort(?, v_Protected.Port_us)); // host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ - v_MessageHeader_Subscribe.contact := cr_Contact(cr_SipUri_HostPort(?, v_Protected.Port_us)); // host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ - + v_Port_ps := v_Protected.Port_ps; + v_Port_us_Via := v_Protected.Port_us; + v_Port_us_Contact := v_Protected.Port_us; v_MessageHeader_Subscribe.require := cr_RequireSecAgree; v_MessageHeader_Subscribe.proxyRequire := cr_ProxyRequireDef; v_MessageHeader_Subscribe.securityVerify := f_IMS_PTC_BuildSecurityVerifyHeader(); v_MessageHeader_Subscribe.pAccessNetworkInfo := v_PAccessNetworkInfo } + v_MessageHeader_Subscribe.route := cr_Route(cr_RouteBodyList_InitialReq(v_Port_ps)); /* @sic R5s140934 change 1 sic@ */ + v_MessageHeader_Subscribe.via := cr_ViaDef(-, cr_HostPort(?, v_Port_us_Via)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ */ + v_MessageHeader_Subscribe.contact := cr_Contact(f_Contact_SipUri_HostPortRX(?, v_Port_us_Contact)); /* host address needs to be checked after receiving @sic R5s120727 change 6.1 sic@ + @sic R5s130925 change 1: UE may use any port as server port sic@ + @sic R5s150721, R5-153760: cr_SipUri_HostPort replaced by f_Contact_SipUri_HostPortRX sic@ */ select (p_EventType) { case ("reg") { // normal case v_MessageHeader_Subscribe.accept := cr_AcceptDef(c_xmlreginfoApplication) ifpresent; @@ -900,6 +958,13 @@ module IMS_Procedures_Registration { return v_MessageHeader_Subscribe; } + + + + + + + } // group //============================================================================ @@ -914,7 +979,7 @@ module IMS_Procedures_Registration { * @param p_CondA7 (default value: false) * @param p_CondA3 (default value: false) * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_REGISTER_InitialRequest(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, template (omit) charstring p_ExplicitExpiry := omit, @@ -967,7 +1032,7 @@ module IMS_Procedures_Registration { * @desc local initialisation of ports and spis at the IMS PTC * @param p_RegisterReq * @param p_AuthenticationParams - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_SecurityInitPortsAndSPIs(REGISTER_Request p_RegisterReq, Common_AuthenticationParams_Type p_AuthenticationParams) runs on IMS_PTC @@ -984,7 +1049,7 @@ module IMS_Procedures_Registration { * @param p_RegisterReq * @param p_Rand (default value: tsc_IMS_AuthRAND) * @param p_Unprotected (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_SecurityInit(REGISTER_Request p_RegisterReq, B128_Type p_Rand := tsc_IMS_AuthRAND, @@ -997,9 +1062,8 @@ module IMS_Procedures_Registration { var SipUrl v_ContactUrl := f_MessageHeader_GetContactSipUrl(p_RegisterReq.msgHeader); if (p_Unprotected) { - f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl), // may be omit in which case 5060 is chosen by the IP PTC - v_NW_Address, - v_UE_Address); + f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl), // may be omit in which case 5060 is chosen by the IP PTC + cs_IMS_RegistrationInfo(v_NW_Address, v_UE_Address)); // @sic R5s150268 change 2 sic@ } else { f_IMS_InstallIPsecKeys(v_AuthenticationParams.IK, v_AuthenticationParams.CK); @@ -1010,12 +1074,12 @@ module IMS_Procedures_Registration { * NOTE: release of the security context is not done at the end of the deregistration since it is not sure that the deregistration really happens and * when realeasing the security directly after sending the deregistration it may lead to timing issues */ f_IMS_PortsAndSecurityConfig(f_SIP_ContactUrl_GetPort(v_ContactUrl), // may be omit in which case 5060 is chosen by the IP PTC - v_NW_Address, - v_UE_Address, - cs_IMS_SecurityInfo(f_IMS_PTC_Security_GetProtectedPorts(), - f_IMS_PTC_Security_GetSPIs(), - f_IMS_PTC_Security_GetIntegrityAlgorithm(), - f_IMS_PTC_Security_GetCipheringAlgorithm())); + cs_IMS_RegistrationInfo(v_NW_Address, // @sic R5s150268 change 2 sic@ + v_UE_Address, + cs_IMS_SecurityInfo(f_IMS_PTC_Security_GetProtectedPorts(), + f_IMS_PTC_Security_GetSPIs(), + f_IMS_PTC_Security_GetIntegrityAlgorithm(), + f_IMS_PTC_Security_GetCipheringAlgorithm()))); } } @@ -1027,7 +1091,7 @@ module IMS_Procedures_Registration { * @param p_NonceCount (default value: 1) * @param p_ExplicitExpiry (default value: omit) * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_REGISTER_SubsequentRequest(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, boolean p_CondA7 := false, @@ -1050,7 +1114,7 @@ module IMS_Procedures_Registration { v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; v_MessageHeader := v_RegisterReq.msgHeader; - v_Match := match(v_MessageHeader, f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(p_NonceCount)); + v_Match := match(v_MessageHeader, f_IMS_RegisterRequest_MessageHeaderRX_Subsequent(p_NonceCount, v_Protocol)); if (not v_Match) { f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "invalid REGISTER Request"); } @@ -1072,7 +1136,7 @@ module IMS_Procedures_Registration { * @param p_SigCompIsActive (default value: false) * @param p_IsEmergency (default value: false) * @return REGISTER_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_NonGIBA(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration, @@ -1102,7 +1166,7 @@ module IMS_Procedures_Registration { * @param p_IMS_DATA_REQ (default value: omit) * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_GIBA(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request @@ -1127,33 +1191,86 @@ module IMS_Procedures_Registration { * @desc common function for IMS registration * @param p_IMS_DATA_REQ (default value: omit) * @param p_SigCompIsActive (default value: false) + * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, - boolean p_SigCompIsActive := false) runs on IMS_PTC return REGISTER_Request + boolean p_SigCompIsActive := false, + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5-151769 additional parameter p_RegisterExpiration sic@ */ var REGISTER_Request v_RegisterRequest; if (f_IMS_PTC_SecurityScheme_IsGiba()) { if (p_SigCompIsActive) { FatalError(__FILE__, __LINE__, "sigcomp is not supported for GIBA"); } - v_RegisterRequest := f_IMS_Register_GIBA(p_IMS_DATA_REQ); + v_RegisterRequest := f_IMS_Register_GIBA(p_IMS_DATA_REQ, p_RegisterExpiration); } else { - v_RegisterRequest := f_IMS_Register_NonGIBA(p_IMS_DATA_REQ, -, p_SigCompIsActive); + v_RegisterRequest := f_IMS_Register_NonGIBA(p_IMS_DATA_REQ, p_RegisterExpiration, p_SigCompIsActive); } return v_RegisterRequest; } //============================================================================ + /* + * @desc Receive SUBSCRIBE acc. to 34.229-1 Annex A.1.4 + * @param p_IMS_DATA_REQ (by reference) + * @param p_EventType + * @param p_SipUrlRequestUri + * @param p_SipUrlTo (default value: omit) + * @param p_ExpireTime (default value: "600000") + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + altstep a_IMS_SUBSCRIBE_Request(out IMS_DATA_REQ p_IMS_DATA_REQ, + EventType p_EventType, + template (present) SipUrl p_SipUrlRequestUri, + template SipUrl p_SipUrlTo := omit, + template (present) charstring p_ExpireTime := "600000") runs on IMS_PTC + { /* NOTE: applicable only if the SUBSCRIBE creates a new dialog (i.e. is ot sent within existing dialog */ + var IMS_DATA_REQ v_IMS_DATA_REQ; + var MessageHeader v_MessageHeader; + var InternetProtocol_Type v_Protocol; + var charstring v_ToTag := f_IMS_GenerateTag("SUBSCRIBE-to-" & p_EventType & "-package"); /* @sic R5-153756: dialog for subscribe sic@ */ + var template (present) MessageHeader v_ExpectedMessageHeader := f_IMS_SubscribeRequest_MessageHeaderRX(p_EventType, p_SipUrlTo, p_ExpireTime); + var IMS_PTC_DialogIndex_Type v_DialogIndex; + + [] IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(p_SipUrlRequestUri, v_ExpectedMessageHeader))) -> value v_IMS_DATA_REQ + { + v_MessageHeader := v_IMS_DATA_REQ.Request.Subscribe.msgHeader; + v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; + + f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // This cannot be checked in the template + + f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // @sic R5s120727 change 9 sic@ + f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader); // @sic R5s120727 change 9 sic@ + f_IMS_MessageHeader_Request_CheckRoute(v_MessageHeader); // @sic R5s140934 change 2 sic@ + + if (f_IMS_PTC_ImsInfo_SigCompStarted()) { + f_IMS_MessageHeader_CheckSigComp(v_MessageHeader); + } + + select (p_EventType) { + case ("reg") { v_DialogIndex := regEventDialog; } + case ("message-summary") { v_DialogIndex := msgSummayDialog; } + case ("conference") { v_DialogIndex := confEventDialog; } + case else { FatalError(__FILE__, __LINE__, "invalid event type"); } + } + f_IMS_PTC_ImsInfo_DialogInit(dialogRemote, v_MessageHeader, v_DialogIndex); /* @sic R5-153756: dialog for subscribe sic@ */ + f_IMS_PTC_ImsInfo_DialogSetLocalTag(v_ToTag, v_DialogIndex); /* @sic R5-153756: dialog for subscribe sic@ */ + + p_IMS_DATA_REQ := v_IMS_DATA_REQ; + } + } + /* * @desc Receive SUBSCRIBE acc. to 34.229-1 Annex A.1.4 * @param p_EventType (default value: "reg") * @param p_SipUrlTo (default value: omit) * @param p_ExpireTime (default value: "600000") * @return IMS_DATA_REQ - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SUBSCRIBE_Request(EventType p_EventType := "reg", template SipUrl p_SipUrlTo := omit, @@ -1161,98 +1278,76 @@ module IMS_Procedures_Registration { { /* @sic R5-130750 change 4: specific IMPU for messages sent in DL sic@ */ /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; - var MessageHeader v_MessageHeader; - var InternetProtocol_Type v_Protocol; var template (present) SipUrl v_SipUrlRequestUri := f_IMS_PTC_ImsInfo_GetSipUriSubscriptionRX(); - var template (present) MessageHeader v_ExpectedMessageHeader; - - v_ExpectedMessageHeader := f_IMS_SubscribeRequest_MessageHeaderRX(p_EventType, p_SipUrlTo, p_ExpireTime); - IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(v_SipUrlRequestUri, v_ExpectedMessageHeader))) -> value v_IMS_DATA_REQ; - v_MessageHeader := v_IMS_DATA_REQ.Request.Subscribe.msgHeader; - v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; - - f_IMS_MessageHeader_CheckTo(v_MessageHeader, noToTag); // This cannot be checked in the template - f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // @sic R5s120727 change 9 sic@ - f_IMS_MessageHeader_CheckContactAddr(v_MessageHeader, true); // @sic R5s120727 change 9 sic@ + a_IMS_SUBSCRIBE_Request(v_IMS_DATA_REQ, p_EventType, v_SipUrlRequestUri, p_SipUrlTo, p_ExpireTime); /* @sic R5-150705: altstep a_IMS_SUBSCRIBE_Request sic@ */ - if (f_IMS_PTC_ImsInfo_SigCompStarted()) { - f_IMS_MessageHeader_CheckSigComp(v_MessageHeader); - } return v_IMS_DATA_REQ; } /* * @desc Send 200 OK for SUBSCRIBE acc. to 34.229-1 Annex A.1.5 or Annex 5.2 + * @param p_DialogIndex * @param p_IMS_Subscribe_Request * @param p_ExpireTime (default value: "600000") - * @param p_ContactAddr (default value: px_IMS_Scscf) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_ContactHostname (default value: px_IMS_Scscf) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_SUBSCRIBE_Response(IMS_DATA_REQ p_IMS_Subscribe_Request, + function f_IMS_SUBSCRIBE_Response(IMS_PTC_DialogIndex_Type p_DialogIndex, + IMS_DATA_REQ p_IMS_Subscribe_Request, charstring p_ExpireTime := "600000", - charstring p_ContactAddr := px_IMS_Scscf) runs on IMS_PTC + charstring p_ContactHostname := px_IMS_Scscf) runs on IMS_PTC { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ + /* @sic R5-153756, R5-153986: new parameter p_DialogIndex to use to-tag as stored for the respective "subscribe-dialog" sic@ */ var IMS_RoutingInfo_Type v_RoutingInfo_UL; var SUBSCRIBE_Request v_SubscribeRequest; var template (value) RouteBody_List v_RouteBodyList; var charstring v_RouteHost := f_IMS_PTC_Pcscf_Get(); var integer v_Port_ps := f_IMS_PTC_GetPort_ps(); var template (omit) GenericParam v_SigCompParam := f_IMS_PTC_ImsInfo_GetSigCompParam(); - + var template (omit) charstring v_ToTag := f_IMS_PTC_ImsInfo_DialogGetLocalTag(p_DialogIndex); /* @sic R5-153756, R5-153986 sic@ */ + v_RoutingInfo_UL := p_IMS_Subscribe_Request.RoutingInfo; v_SubscribeRequest := p_IMS_Subscribe_Request.Request.Subscribe; v_RouteBodyList := { f_RouteBodyWithParamsTX(cs_SipUri_HostPort_lr(v_RouteHost, v_Port_ps), v_SigCompParam) }; - IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_RoutingInfo_UL), cs_Response(c_statusLine200, f_IMS_SubscribeResponse_200_MessageHeaderTX(v_SubscribeRequest, - cs_RecordRoute(v_RouteBodyList), - p_ExpireTime, - p_ContactAddr)))); + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_RoutingInfo_UL), + cs_Response(c_statusLine200, f_IMS_SubscribeResponse_200_MessageHeaderTX(v_SubscribeRequest, + cs_RecordRoute(v_RouteBodyList), + p_ExpireTime, + p_ContactHostname, + v_ToTag)))); } /* * @desc receive SUBSCRIBE and send response * @return SUBSCRIBE_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_Subscribe() runs on IMS_PTC return SUBSCRIBE_Request { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ var IMS_DATA_REQ v_IMS_DATA_REQ; v_IMS_DATA_REQ := f_IMS_SUBSCRIBE_Request(); - f_IMS_SUBSCRIBE_Response(v_IMS_DATA_REQ); + f_IMS_SUBSCRIBE_Response(regEventDialog, v_IMS_DATA_REQ); return v_IMS_DATA_REQ.Request.Subscribe; } //---------------------------------------------------------------------------- /* - * @desc Common function for NOTIFY message - * @param p_SubscribeRequest + * @desc Generate Via header for NOTIFY request * @param p_ViaAddressList - * @param p_ContactSipUrl - * @param p_EventType - * @param p_CseqValue - * @param p_SubscriptionState - * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @return template (value) Via + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_NotifyRequest_MessageHeader_Common(SUBSCRIBE_Request p_SubscribeRequest, - CharStringList_Type p_ViaAddressList, - template (value) SipUrl p_ContactSipUrl, - EventType p_EventType, - integer p_CseqValue, - template (value) SubscriptionState p_SubscriptionState) - runs on IMS_PTC return template (value) MessageHeader - { /* NOTE: acc. to A.1.6 this message does not have a Session-ID */ - /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ - var template (value) MessageHeader v_MessageHeader_Notify := cs_MessageHeader_Dummy; + function f_IMS_NotifyRequest_ViaTX(CharStringList_Type p_ViaAddressList) runs on IMS_PTC return template (value) Via + { var charstring v_ProtocolString := f_IMS_ConvertTransportProtocolToString(f_IMS_PTC_ImsInfo_GetTransportProtocol()); var template (omit) integer v_Port_ps := f_IMS_PTC_GetPort_ps(); // @sic R5s120907 change 5 - Port_ps instead of Port_us sic@ var template (omit) GenericParam v_SigCompParam := f_IMS_PTC_ImsInfo_GetSigCompParam(); var template (value) ViaBody_List v_ViaBodyList; var charstring v_NextBranch; - var charstring v_ContentType; var integer i; for (i:=0; i < lengthof(p_ViaAddressList); i:=i+1) { @@ -1263,21 +1358,48 @@ module IMS_Procedures_Registration { v_SigCompParam := omit; } } - select (p_EventType) { - case ("reg") { v_ContentType := c_xmlreginfoApplication; } - case ("message-summary") { v_ContentType := "application/simple-message-summary"; } - case ("conference") { v_ContentType := "application/conference-info+xml"; } - case else { FatalError(__FILE__, __LINE__, "unknown event type"); } - } - - v_MessageHeader_Notify.via := cs_Via(v_ViaBodyList); - v_MessageHeader_Notify.fromField := f_IMS_Notify_FromHeaderTX(p_SubscribeRequest.msgHeader); - v_MessageHeader_Notify.toField := f_IMS_Notify_ToHeaderTX(p_SubscribeRequest.msgHeader); - v_MessageHeader_Notify.callId := p_SubscribeRequest.msgHeader.callId; - // v_MessageHeader_Notify.sessionId := p_SubscribeRequest.msgHeader.sessionId; to be added by appropriate CR - v_MessageHeader_Notify.cSeq := cs_CseqDef(p_CseqValue, "NOTIFY"); + return cs_Via(v_ViaBodyList); + } + + /* + * @desc Common function for NOTIFY message + * @param p_DialogIndex + * @param p_Via + * @param p_ContactSipUrl + * @param p_EventType + * @param p_SubscriptionState + * @param p_ContentType + * @return template (value) MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IMS_NotifyRequest_MessageHeader_Common(template (omit) IMS_PTC_DialogIndex_Type p_DialogIndex, + template (value) Via p_Via, + template (value) SipUrl p_ContactSipUrl, + EventType p_EventType, + template (value) SubscriptionState p_SubscriptionState, + template (omit) ContentType p_ContentType) + runs on IMS_PTC return template (value) MessageHeader + { /* NOTE: acc. to A.1.6 this message does not have a Session-ID */ + /* NOTE: function is independent of whether the subscription has been done creating a new dialog or within an existing dialog + * => in general p_DialogIndex and p_EventType are not correlated to each other */ + /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ + /* @sic R5-153756, R5-153986: new parameter p_DialogIndex to use respective dialog; p_SubscribeRequest and p_CseqValue removed sic@ */ + /* @sic R5-153756, R5-153986: dialog information as stored at the IMS PTC is used rather than SUBSCRIBE sic@ */ + /* @sic R5-153756, R5-153986: p_Via instead of p_ViaAddressList sic@ */ + /* @sic R5-153756: p_ContentType sic@ */ + var template (value) MessageHeader v_MessageHeader_Notify := cs_MessageHeader_Dummy; + var integer v_CseqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogLocal, p_DialogIndex); + + v_MessageHeader_Notify.via := p_Via; /* @sic R5-153986: p_Via sic@ */ + v_MessageHeader_Notify.toField := f_IMS_RequestInDialog_ToHeaderTX(p_DialogIndex); + v_MessageHeader_Notify.fromField := f_IMS_RequestInDialog_FromHeaderTX(p_DialogIndex); + v_MessageHeader_Notify.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(p_DialogIndex); + if (p_EventType != "reg") { /* PROSE ISSUE: session id is not specified in A.1.6 => to be added by appropriate CR */ + v_MessageHeader_Notify.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(p_DialogIndex); + } + v_MessageHeader_Notify.cSeq := cs_CseqDef(v_CseqValue, "NOTIFY"); v_MessageHeader_Notify.contact := cs_Contact(p_ContactSipUrl); - v_MessageHeader_Notify.contentType := cs_ContentType(v_ContentType); + v_MessageHeader_Notify.contentType := p_ContentType; v_MessageHeader_Notify.event := cs_EventDef(p_EventType); v_MessageHeader_Notify.maxForwards := cs_MaxForwardsDef(69); v_MessageHeader_Notify.subscriptionState := p_SubscriptionState; @@ -1287,48 +1409,42 @@ module IMS_Procedures_Registration { /* * @desc Send NOTIFY acc. to 34.229-1 Annex A.1.6 - * @param p_SubscribeRequest - * @param p_CseqValue * @param p_SubscriptionState * @return template (value) MessageHeader - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - function f_IMS_NotifyRequest_MessageHeader_A16(SUBSCRIBE_Request p_SubscribeRequest, - integer p_CseqValue, - template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader + function f_IMS_NotifyRequest_MessageHeader_A16(template (value) SubscriptionState p_SubscriptionState) runs on IMS_PTC return template (value) MessageHeader { /* NOTE: acc. to A.1.6 this message does not have a Session-ID */ /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ /* @sic R5s130768 additional MCC160 change: use of new function f_IMS_NotifyRequest_MessageHeader_Common sic@ */ + /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); /* @sic R5s130133 change 6: f_IMS_PTC_NW_Address_GetHostFormat replaced by f_IMS_PTC_NW_Address_GetAddrStr sic@ */ - var charstring v_Scscf := px_IMS_Scscf; - var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, v_Scscf}; - var template (value) SipUrl v_ContactSipUrl := cs_SipUri_HostPort(v_Scscf); // @sic R5s120727 change 10 sic@ - var EventType v_EventType := "reg"; + var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, px_IMS_Scscf}; + var template (value) Via v_Via := f_IMS_NotifyRequest_ViaTX(v_ViaAddressList); /* @sic R5-153986: new function f_IMS_NotifyRequest_ViaTX sic@ */ + var template (value) SipUrl v_ContactSipUrl := cs_SipUri_HostPort(px_IMS_Scscf); /* @sic R5s120727 change 10 sic@ */ + var template (value) ContentType v_ContentType := cs_ContentType(c_xmlreginfoApplication); /* @sic R5-153756 sic@ */ - return f_IMS_NotifyRequest_MessageHeader_Common(p_SubscribeRequest, v_ViaAddressList, v_ContactSipUrl, v_EventType, p_CseqValue, p_SubscriptionState); + return f_IMS_NotifyRequest_MessageHeader_Common(regEventDialog, v_Via, v_ContactSipUrl, "reg", p_SubscriptionState, v_ContentType); } //---------------------------------------------------------------------------- /* * @desc Send NOTIFY acc. to 34.229-1 Annex A.1.6 * @param p_ContactUrl - * @param p_SubscribeRequest * @param p_XmlMessage - * @param p_CseqValue (default value: 1) * @param p_SubscriptionState (default value: cs_SubscriptionState_Active) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_Notify(SipUrl p_ContactUrl, - SUBSCRIBE_Request p_SubscribeRequest, template (value) Reginfo_Type p_XmlMessage, - integer p_CseqValue := 1, template (value) SubscriptionState p_SubscriptionState := cs_SubscriptionState_Active) runs on IMS_PTC { /* @sic R5s130756 additional changes: p_CondA2 removed sic@ */ + /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ var template (value) MessageHeader v_MessageHeader_Notify; var template (present) MessageHeader v_MessageHeader_Response; var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); - v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A16(p_SubscribeRequest, p_CseqValue, p_SubscriptionState); + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_A16(p_SubscriptionState); /* @sic R5-153756, R5-153986 sic@ */ IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(v_Protocol), cs_NOTIFY_Request(p_ContactUrl, v_MessageHeader_Notify, cs_MessageBody_RegInfo(p_XmlMessage)))); v_MessageHeader_Response := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Notify); @@ -1339,7 +1455,7 @@ module IMS_Procedures_Registration { /* * @desc return RegInfo.Registration * @param p_RegisterRequest - * @param p_Uri + * @param p_Aor * @param p_RegistrationId * @param p_ContactId * @param p_ContactState (default value: active) @@ -1348,10 +1464,10 @@ module IMS_Procedures_Registration { * @param p_ApplyGRUU (default value: pc_IMS_GRUUsInSIP) * @param p_IsTelUri (default value: false) * @return template (value) RegInfo_Registration_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_XML_RegistrationInfo(REGISTER_Request p_RegisterRequest, - charstring p_Uri, + charstring p_Aor, charstring p_RegistrationId, charstring p_ContactId, RegInfo_Contact_State_Type p_ContactState := active, @@ -1368,6 +1484,7 @@ module IMS_Procedures_Registration { var template (omit) TempGruu_Type v_TempGruu := omit; var template (value) RegInfo_Contact_UnknownParams_Type v_UnknownParams := {}; var RegInfo_Registration_State_Type v_RegistrationState; + var charstring v_InstanceId; if (p_ContactState == active) { v_RegistrationState := active; @@ -1375,29 +1492,30 @@ module IMS_Procedures_Registration { v_RegistrationState := terminated; } - if (p_ApplyGRUU) { - v_PubGruu := cs_PubGruu(p_Uri); /* !!!! "public GRUU for the UE" acc. to 34.229-1 A.1.6; !!!! - !!!! NOTE: it is not specified what the public GRUU really is and which URI to be used; !!!! - !!!! assumption: it is the same URI as for this registration !!!! */ - v_TempGruu := cs_TempGruu(f_IMS_PTC_ImsInfo_GetHomeDomainName(), p_RegisterRequest.msgHeader.cSeq.seqNumber); /* !!!! acc. to 34.229-1 A.1.6 "temporary GRUU for the UE" !!!! - !!!! -> open issue: how to build up the temp GRUU; where to take the domain name from !!!! */ - v_UnknownParams := { cs_XML_UEInstance }; + if (p_ApplyGRUU) { /* @sic R5-153760: support of GRUU sic@ */ + v_PubGruu := cs_XML_PubGruu(cs_IMS_PubGRUU(p_Aor)); /* !!!! PROSE ISSUE: acc. to RFC 5628 each contact (i.e. aor) has its own pub-gruu !!!! + !!!! but 34.229-1 A.1.6 says "public GRUU for the UE" for all entries !!!! */ + v_TempGruu := cs_XML_TempGruu(fl_IMS_TempGRUU(p_Aor, f_IMS_PTC_ImsInfo_GetHomeDomainName()), + p_RegisterRequest.msgHeader.cSeq.seqNumber); /* !!!! PROSE ISSUE: acc. to RFC 5628 each contact (i.e. aor) has its own temp-gruu !!!! + !!!! but 34.229-1 A.1.6 says "temporary GRUU for the UE" !!!! */ + v_InstanceId := f_SIP_InstanceId(); + v_UnknownParams := { cs_XML_UEInstance(v_InstanceId) }; if (not p_IsTelUri) { v_CallId := p_RegisterRequest.msgHeader.callId.callid; // Call-Id of most recent REGISTER v_Cseq := p_RegisterRequest.msgHeader.cSeq.seqNumber; // CSeq value of most recent REGISTER } } - return cs_RegistrationInfo(cs_RegistrationContact(v_ContactUri, p_ContactId, p_ContactState, p_ContactEvent, v_CallId, v_Cseq, p_Expires, v_UnknownParams, v_PubGruu, v_TempGruu), - p_Uri, - p_RegistrationId, - v_RegistrationState); + return cs_XML_RegistrationInfo(cs_XML_RegistrationContact(v_ContactUri, p_ContactId, p_ContactState, p_ContactEvent, v_CallId, v_Cseq, p_Expires, v_UnknownParams, v_PubGruu, v_TempGruu), + p_Aor, + p_RegistrationId, + v_RegistrationState); } template (value) RegInfo_RegistrationList_Type cs_RegistrationList (template (value) RegInfo_Registration_Type p_Reg1, template (value) RegInfo_Registration_Type p_Reg2, template (value) RegInfo_Registration_Type p_Reg3, template (value) RegInfo_Registration_Type p_Reg4) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ { p_Reg1, p_Reg2, p_Reg3, p_Reg4 }; template (value) RegInfo_RegistrationList_Type cs_RegistrationListOf3 (template (value) RegInfo_Registration_Type p_Reg1, @@ -1409,7 +1527,7 @@ module IMS_Procedures_Registration { * @desc return default Reginfo for NOTIFY message * @param p_RegisterRequest * @return template (value) Reginfo_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_XmlMessageForNotify_Def(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return template (value) Reginfo_Type { /* @sic R5-130750 sic@ */ @@ -1428,7 +1546,7 @@ module IMS_Procedures_Registration { * This is the second half of the generic Registration procedure (Steps 8 to 11) * @param p_RegisterRequest * @return SUBSCRIBE_Request - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Register_SubscribeNotify(REGISTER_Request p_RegisterRequest) runs on IMS_PTC return SUBSCRIBE_Request { /* @sic R5s130756 additional changes: p_IsGIBA removed sic@ */ @@ -1439,7 +1557,7 @@ module IMS_Procedures_Registration { v_SubscribeReq := f_IMS_Register_Subscribe(); // Steps 10 and 11 - f_IMS_Register_Notify(v_ContactUrl, v_SubscribeReq, f_IMS_XmlMessageForNotify_Def(p_RegisterRequest)); + f_IMS_Register_Notify(v_ContactUrl, f_IMS_XmlMessageForNotify_Def(p_RegisterRequest)); /* @sic R5-153756, R5-153986: p_SubscribeRequest and p_CseqValue removed sic@ */ return v_SubscribeReq; } @@ -1448,7 +1566,7 @@ module IMS_Procedures_Registration { /* * @desc procedure to de-register UE acc. to 34.229-1 C.30 * @param p_IMS_DATA_REQ (default value: omit) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_PTC_Deregistration(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit) runs on IMS_PTC { /* @sic R5-140902: no delay needed anymore to wait for TCP close sic@ */ @@ -1479,7 +1597,7 @@ module IMS_Procedures_Registration { //============================================================================ // re-registration: used e.g. for test cases 8.2 and 11.2 - type record SecurityClientParams_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type record SecurityClientParams_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ PortNumber_Type Port_us, PortNumber_Type Port_uc, IPsec_SPI_Type SPI_us, @@ -1578,17 +1696,19 @@ module IMS_Procedures_Registration { * @desc Generic procedure to register IMS * @param p_IMS_DATA_REQ (default value: omit) * @param p_SigCompIsActive (default value: false) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_Registration(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, - boolean p_SigCompIsActive := false) runs on IMS_PTC + boolean p_SigCompIsActive := false, + charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC { /* NOTE: * - In case the the function is called in a default handler, the Register message has been already received * - When used in the IMS CC tests, the PTC needs to wait for the reception of the Register message */ /* @sic R5s130756 additional changes: p_IsGIBA removed as security scheme is managed at the IMS PTC (-> f_IMS_PTC_SecurityScheme_IsGiba()) sic@ */ var REGISTER_Request v_RegisterRequest; - v_RegisterRequest := f_IMS_Register(p_IMS_DATA_REQ, p_SigCompIsActive); + v_RegisterRequest := f_IMS_Register(p_IMS_DATA_REQ, p_SigCompIsActive, p_RegisterExpiration); f_IMS_Register_SubscribeNotify(v_RegisterRequest); } @@ -1597,7 +1717,7 @@ module IMS_Procedures_Registration { * @param p_IMS_DATA_REQ (default value: omit) * @param p_RegisterExpiration (default value: tsc_IMS_RegisterExpiration) * @return REGISTER_Request - * @status APPROVED (IMS, LTE) + * @status APPROVED (IMS_IRAT, IMS, LTE) */ function f_IMS_EmergencyRegistration_C20(template (omit) IMS_DATA_REQ p_IMS_DATA_REQ := omit, charstring p_RegisterExpiration := tsc_IMS_RegisterExpiration) runs on IMS_PTC return REGISTER_Request @@ -1631,31 +1751,175 @@ module IMS_Procedures_Registration { return v_IMS_DATA_REQ.Request.Register; } + //---------------------------------------------------------------------------- + /* + * @desc Unsubscribe from event package for given dialog + * @param p_DialogIndex + * @return template (present) MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SubscribeRequest_MessageHeaderRX_C30(IMS_PTC_DialogIndex_Type p_DialogIndex) runs on IMS_PTC return template (present) MessageHeader + { /* !!!! PROSE ISSUE: + !!!! R5-153756 has specified for SUBSCRIBE (step 0A) + !!!! "Use the default message 'SUBSCRIBE for reg-event package' in annex A.1.4 or + !!!! 'SUBSCRIBE for conference event package' in annex A.5.1 or + !!!! 'SUBSCRIBE for message-summary event package' in annex A.6.1 with the following exceptions ..." + !!!! => at least for reg-event package and message-summary event package this does not work as there will be a To-tag. + !!!! Furthermore it should be clearly specified up to which degree the SUBSCRIBE shall be checked + !!!! => for now we keep it simple but check for the To-tag to be absent to force a fail */ + var template (present) MessageHeader v_MessageHeader_Subscribe := cr_MessageHeader_Dummy; + var template (present) integer v_CSeqValue := f_IMS_RequestInDialog_CSeqValueRX(dialogRemote, p_DialogIndex); + var EventType v_EventType; + + select (p_DialogIndex) { + case (confEventDialog) { v_EventType := "conference"; } + case (regEventDialog) { v_EventType := "reg"; } + case (msgSummayDialog) { v_EventType := "message-summary"; } + case else { FatalError(__FILE__, __LINE__, "invalid dialog"); } + } + + v_MessageHeader_Subscribe.cSeq := cr_CseqDef(v_CSeqValue, "SUBSCRIBE"); + v_MessageHeader_Subscribe.fromField := f_IMS_RequestInDialog_FromHeaderRX(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.toField := f_IMS_RequestInDialog_ToHeaderRX(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.callId := f_IMS_PTC_ImsInfo_DialogGetCallId(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.sessionId := f_IMS_PTC_ImsInfo_DialogGetSessionId(); // !!!! PROSE ISSUE !!!! + v_MessageHeader_Subscribe.expires := cr_Expires("0"); + v_MessageHeader_Subscribe.event := cr_EventDef(v_EventType); + + return v_MessageHeader_Subscribe; + } + + /* + * @desc Notfiy the UE of being unsubscribed + * @param p_DialogIndex + * @param p_SubscribeRequest + * @return template (value) MessageHeader + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_NotifyRequest_MessageHeader_C30(IMS_PTC_DialogIndex_Type p_DialogIndex, + SUBSCRIBE_Request p_SubscribeRequest) runs on IMS_PTC return template (value) MessageHeader + { + var charstring v_NW_AddrStr := f_IMS_PTC_NW_Address_GetAddrStr(); + var CharStringList_Type v_ViaAddressList := {v_NW_AddrStr, px_IMS_Scscf}; + var template (value) SubscriptionState v_SubscriptionState := cs_SubscriptionState_Terminated; + var template (omit) ContentType v_ContentType := omit; + var template (value) SipUrl v_ContactSipUrl; + var template (value) Via v_Via; + var EventType v_EventType; + + select (p_DialogIndex) { + case (regEventDialog) { // A3 + v_EventType := "reg"; + v_ContactSipUrl := cs_SipUri_HostPort(px_IMS_Scscf); + } + case (confEventDialog) { // A4 + v_EventType := "conference"; + v_ContactSipUrl := p_SubscribeRequest.requestLine.requestUri; /* the UE shall use the FinalConferenceUri in the request line of the SUBSCRIBE message */ + } + case (msgSummayDialog) { // A5 + v_EventType := "message-summary"; + // v_ViaAddressList[lengthof(v_ViaAddressList)] := f_IMS_PTC_ImsInfo_GetHomeDomainName(); !!!! PROSE ISSUE: acc. to A.6.2 the via header for message-summary has 3 entries !!!! + v_ContactSipUrl := cs_SipUri_HostPort(px_IMS_Scscf); + } + case else { + FatalError(__FILE__, __LINE__, "invalid dialog"); + } + } + v_Via := f_IMS_NotifyRequest_ViaTX(v_ViaAddressList); + + return f_IMS_NotifyRequest_MessageHeader_Common(p_DialogIndex, v_Via, v_ContactSipUrl, v_EventType, v_SubscriptionState, v_ContentType); + } + + /* + * @desc to let the UE unsubscribe from event package before de-registration + * @param p_DialogIndex + * @param p_Protocol + * @param p_MessageHeader_Notify (by reference) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + altstep a_IMS_Deregister_Unsubcribe(IMS_PTC_DialogIndex_Type p_DialogIndex, + InternetProtocol_Type p_Protocol, + out template (value) MessageHeader p_MessageHeader_Notify) runs on IMS_PTC + { + var template (present) SipUrl v_SubscribeRequestUri := ?; /* @sic R5s150647 sic@ */ + var template (present) MessageHeader v_MessageHeader_Subscribe := f_IMS_SubscribeRequest_MessageHeaderRX_C30(p_DialogIndex); + var template (value) MessageHeader v_MessageHeader_Notify; + var IMS_DATA_REQ v_IMS_SUBSCRIBE_REQ; + var SUBSCRIBE_Request v_SubscribeRequest; + var SipUrl v_ContactUrl; + + [] IMS_Server.receive(car_IMS_Subscribe_Request(cr_SUBSCRIBE_Request(v_SubscribeRequestUri, v_MessageHeader_Subscribe))) /* @sic R5s150647 sic@ */ + -> value v_IMS_SUBSCRIBE_REQ + { + v_SubscribeRequest := v_IMS_SUBSCRIBE_REQ.Request.Subscribe; + f_IMS_MessageHeader_CheckTo(v_SubscribeRequest.msgHeader, noToTag); /* !!!! PROSE ISSUE: + !!!! acc. to R5-153756 the SUBSCRIBE shall be as e.g. in A.1.4 + !!!! => it shall not have a To-tag what seems to be wrong */ + f_IMS_SUBSCRIBE_Response(p_DialogIndex, v_IMS_SUBSCRIBE_REQ, "0"); + v_MessageHeader_Notify := f_IMS_NotifyRequest_MessageHeader_C30(p_DialogIndex, v_SubscribeRequest); + v_ContactUrl := f_MessageHeader_GetContactSipUrl(v_SubscribeRequest.msgHeader); + IMS_Client.send(cas_IMS_Notify_Request(cs_IMS_RoutingInfo(p_Protocol), cs_NOTIFY_Request(v_ContactUrl, v_MessageHeader_Notify))); + p_MessageHeader_Notify := v_MessageHeader_Notify; + } + } + //---------------------------------------------------------------------------- /* * @desc handle optional de-registration * @param p_Port * @param p_AllowRetransmission (default value: false) * @param p_WaitForDeRegistration (default value: true) + * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(IMS_IPCAN_CO_ORD_PORT p_Port, boolean p_AllowRetransmission := false, - boolean p_WaitForDeRegistration := true) runs on IMS_PTC + boolean p_WaitForDeRegistration := true) runs on IMS_PTC return boolean { /* @sic R5s140710 - MCC160 Implementation: parameter p_AllowRetransmission sic@ */ - var IMS_DATA_REQ v_IMS_DATA_REQ; + var IMS_DATA_REQ v_IMS_REGISTER_REQ; var template (present) SipUrl v_SipUrl := cr_SipUri_HostPort(f_IMS_PTC_ImsInfo_GetHomeDomainName()); + var InternetProtocol_Type v_ProtocolForRequestInDL := f_IMS_PTC_ImsInfo_GetTransportProtocol(); var boolean v_WaitForDeRegistration := p_WaitForDeRegistration; + var boolean v_WaitForUnsubscribe_RegEvent := f_IMS_PTC_ImsInfo_DialogIsStarted(regEventDialog); /* @sic R5-153756 sic@ */ + var boolean v_WaitForUnsubscribe_MsgSummary := f_IMS_PTC_ImsInfo_DialogIsStarted(msgSummayDialog); /* @sic R5-153756 sic@ */ + var boolean v_WaitForUnsubscribe_ConfEvent := f_IMS_PTC_ImsInfo_DialogIsStarted(confEventDialog); /* @sic R5-153756 sic@ */ + var template (value) MessageHeader v_MessageHeader_Notify_ByRef; + var default v_RetransmissionHandler := null; + var default v_NotifyResponseHandler_RegEvent := null; /* @sic R5-153756 sic@ */ + var default v_NotifyResponseHandler_ConfEvent := null; /* @sic R5-153756 sic@ */ + var default v_NotifyResponseHandler_MsgSummary := null; /* @sic R5-153756 sic@ */ alt { // @sic R5-141113: de-registration is not mandatory sic@ - [v_WaitForDeRegistration] IMS_Server.receive(car_IMS_Register_Request(cr_REGISTER_Request(v_SipUrl))) -> value v_IMS_DATA_REQ + [v_WaitForDeRegistration and v_WaitForUnsubscribe_RegEvent] a_IMS_Deregister_Unsubcribe(regEventDialog, v_ProtocolForRequestInDL, v_MessageHeader_Notify_ByRef) /* @sic R5-153756 sic@ */ + { + v_NotifyResponseHandler_RegEvent := activate(a_IMS_ReceiveResponse200OK(v_MessageHeader_Notify_ByRef, v_ProtocolForRequestInDL)); + v_WaitForUnsubscribe_RegEvent := false; + repeat; + } + [v_WaitForDeRegistration and v_WaitForUnsubscribe_ConfEvent] a_IMS_Deregister_Unsubcribe(confEventDialog, v_ProtocolForRequestInDL, v_MessageHeader_Notify_ByRef) /* @sic R5-153756 sic@ */ + { + v_NotifyResponseHandler_ConfEvent := activate(a_IMS_ReceiveResponse200OK(v_MessageHeader_Notify_ByRef, v_ProtocolForRequestInDL)); + v_WaitForUnsubscribe_ConfEvent := false; + repeat; + } + [v_WaitForDeRegistration and v_WaitForUnsubscribe_MsgSummary] a_IMS_Deregister_Unsubcribe(msgSummayDialog, v_ProtocolForRequestInDL, v_MessageHeader_Notify_ByRef) /* @sic R5-153756 sic@ */ + { + v_NotifyResponseHandler_MsgSummary := activate(a_IMS_ReceiveResponse200OK(v_MessageHeader_Notify_ByRef, v_ProtocolForRequestInDL)); + v_WaitForUnsubscribe_MsgSummary := false; + repeat; + } + [v_WaitForDeRegistration] IMS_Server.receive(car_IMS_Register_Request(cr_REGISTER_Request(v_SipUrl))) + -> value v_IMS_REGISTER_REQ { if (p_AllowRetransmission) { - v_RetransmissionHandler := activate(a_IMS_RetransmissionHandler(v_IMS_DATA_REQ)); /* when re-transmissions are allowed they may colide with f_Delay in f_IMS_TCP_CloseHandling - or with the confirmation in f_IMS_CloseTCP (if any); */ + v_RetransmissionHandler := activate(a_IMS_RetransmissionHandler(v_IMS_REGISTER_REQ)); /* when re-transmissions are allowed they may colide with f_Delay in f_IMS_TCP_CloseHandling + or with the confirmation in f_IMS_CloseTCP (if any); */ } - f_IMS_PTC_Deregistration(v_IMS_DATA_REQ); + deactivate(v_NotifyResponseHandler_RegEvent); + deactivate(v_NotifyResponseHandler_MsgSummary); + deactivate(v_NotifyResponseHandler_ConfEvent); + f_IMS_PTC_Deregistration(v_IMS_REGISTER_REQ); v_WaitForDeRegistration := false; repeat; /* @sic R5s140175 sic@ */ } @@ -1664,27 +1928,30 @@ module IMS_Procedures_Registration { } } deactivate(v_RetransmissionHandler); + return not v_WaitForDeRegistration; // @sic R5-154047 sic@ } /* * @desc handle optional de-registration * @param p_WaitForDeRegistration (default value: true) + * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - function f_IMS_IpcanReleaseWithOptionalDeregistration(boolean p_WaitForDeRegistration := true) runs on IMS_PTC + function f_IMS_IpcanReleaseWithOptionalDeregistration(boolean p_WaitForDeRegistration := true) runs on IMS_PTC return boolean { - f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(IPCAN, -, p_WaitForDeRegistration); + return f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(IPCAN, -, p_WaitForDeRegistration); // @sic R5-154047 sic@ } /* * @desc handle optional de-registration on "other RAT" * @param p_WaitForDeRegistration (default value: true) - * @status APPROVED (LTE_A, LTE_IRAT) + * @return boolean + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ - function f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(boolean p_WaitForDeRegistration := true) runs on IMS_PTC + function f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(boolean p_WaitForDeRegistration := true) runs on IMS_PTC return boolean { var boolean v_AllowRetransmission := true; - f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(OtherIPCAN, v_AllowRetransmission, p_WaitForDeRegistration); + return f_IMS_IpcanReleaseWithOptionalDeregistrationOnAnyPTC(OtherIPCAN, v_AllowRetransmission, p_WaitForDeRegistration); // @sic R5-154047 sic@ } diff --git a/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn new file mode 100644 index 0000000..44e1af7 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Messages.ttcn @@ -0,0 +1,782 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 20:33:09 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14474 $ +/******************************************************************************/ + +module IMS_SDP_Messages { + import from LibSip_SDPTypes all; + import from IMS_CommonDefs all; + import from IMS_Component all; + import from CommonDefs all; + import from IMS_SDP_Templates all; + import from IMS_CommonTemplates all; + import from IMS_CommonParameters all; + import from LibSip_MessageBodyTypes all; + + type enumerated SDP_Message_Check_Type {asPreviousSDP, newSDP}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + + /* + * @desc Wrapper function to encode SDP message + * @param p_SDP_Message + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + + function f_IMS_SDP_Message_Encode(template (value) SDP_Message p_SDP_Message) return charstring + { + var bitstring v_BitStr := encvalue(p_SDP_Message); + return oct2char(bit2oct(v_BitStr)); + } + + /* + * @desc Wrapper function to decode SDP message and to assign fail verdict in case of syntactically wrong SDP message + * @param p_SdpBody + * @return SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function fl_IMS_SDP_Message_Decode(SdpBody p_SdpBody) runs on IMS_PTC return SDP_Message + { + var SDP_Message v_SDP_Message; + var bitstring v_BitStr := oct2bit(char2oct(p_SdpBody)); + var integer v_Result := decvalue(v_BitStr, v_SDP_Message); + + if (v_Result != 0) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Invalid SDP message"); + } + return v_SDP_Message; + } + + /* + * @desc check that 'Connections' is included either at the top level or in the media description(s) or in both + * @param p_SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SDP_CheckConnections(SDP_Message p_SDP_Message) runs on IMS_PTC + { + var boolean v_ConnectionFound := false; + var integer i; + + if (ispresent(p_SDP_Message.connection)) { + v_ConnectionFound := true; + } + + if (not v_ConnectionFound) { + // no connection specified in session description => there shall be at least one connection per media description + v_ConnectionFound := true; + for (i := 0; i < lengthof(p_SDP_Message.media_list); i := i + 1) { + if (not ispresent(p_SDP_Message.media_list[i].connections)) { // @sic R5s130586 change 12 sic@ + v_ConnectionFound := false; + break; + } + } + } + + if (not v_ConnectionFound) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "'Connections found neither in session description nor in media description"); + } + } + + /* + * @desc Wrapper function to decode and match SDP message + * @param p_SdpBody + * @param p_SDP_Message_Template + * @param p_SdpCheck (default value: newSDP) + * @param p_CheckConnections (default value: true) + * @return SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SIP_DecodeMatchAndCheckSDP(template (omit) SdpBody p_SdpBody, + template SDP_Message p_SDP_Message_Template, + SDP_Message_Check_Type p_SdpCheck := newSDP, + boolean p_CheckConnections := true) runs on IMS_PTC return SDP_Message + { /* @sic R5-150702: generic check of origin sic@ */ + var SDP_Message v_SDP_Message; + var template (omit) SDP_Message v_PrevSdpMessage; + var integer v_CurrSessionVersion; + var integer v_PrevSessionVersion; + var template SDP_Origin v_ExpectedOrigin := *; + + if (not ispresent(p_SdpBody)) { /* there is no SDP message */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "Missing sdpMessageBody"); + } + else { /* => MessageBody is present and contains an SDP message */ + v_SDP_Message := fl_IMS_SDP_Message_Decode(valueof(p_SdpBody)); + if (not match(v_SDP_Message, p_SDP_Message_Template)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "received sdpMessageBody does not match"); + } + + /* @sic R5-150702: sic@ */ + v_PrevSdpMessage := f_IMS_PTC_ImsInfo_DialogGetPrevSdpMessageRX(); + select (p_SdpCheck) { /* @sic R5-150702 sic@ */ + case (asPreviousSDP) { /* current SDP shall be identically as previous SDP (i.e. even the session version has to be the same) */ + if (not match(v_SDP_Message, v_PrevSdpMessage)) { + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "received SDP message is different than previous one"); + } + } + case (newSDP) { + if (p_CheckConnections) { // check at least one connections field is sent + f_IMS_SDP_CheckConnections(v_SDP_Message); + } + if (ispresent(v_PrevSdpMessage)) { + if (not match(v_SDP_Message, v_PrevSdpMessage)) { /* @sic R5s150497: SDP may be the same as previous SDP sic@ + NOTE: whether or not it shall be allowed to have the same SDP depends on the given template */ + v_CurrSessionVersion := str2int(v_SDP_Message.origin.session_version); + v_PrevSessionVersion := str2int(valueof(v_PrevSdpMessage.origin.session_version)); + v_ExpectedOrigin := v_PrevSdpMessage.origin; + v_ExpectedOrigin.session_version := int2str(v_PrevSessionVersion + 1); + + if (not match(v_SDP_Message.origin, v_ExpectedOrigin)) { /* @sic R5-143201, R5-151684 sic@ */ + f_IMS_SetVerdictFailOrInconc(__FILE__, __LINE__, "session version not incremented or o-line changed"); + } + } + } + f_IMS_PTC_ImsInfo_DialogSetPrevSdpMessageRX(v_SDP_Message); + } + } + } + return v_SDP_Message; + } + + /* + * @desc wrapper function to decode and match optional SDP message + * @param p_MessageBody + * @param p_SDP_Message_Template + * @return template (omit) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(template (omit) MessageBody p_MessageBody, + template SDP_Message p_SDP_Message_Template) runs on IMS_PTC return template (omit) SDP_Message + { + var template (omit) SdpBody v_SdpBody := omit; + var SDP_Message v_SDP_Message; + + if (ischosen(p_MessageBody.sdpMessageBody)) { /* there is an SDP message */ + v_SdpBody := p_MessageBody.sdpMessageBody; + } + if (not ispresent(v_SdpBody) and not ispresent(p_SDP_Message_Template)) { /* NOTE: + not ispresent(p_SDP_Message_Template) does not mean that p_SDP_Message_Template is omit + but p_SDP_Message_Template can be e.g. "cr_SomeSDP ifpresent" + nevertheless when we have "not ispresent(p_SDP_Message_Template)" the SDP message may be omitted */ + return omit; + } else { + v_SDP_Message := f_IMS_SIP_DecodeMatchAndCheckSDP(v_SdpBody, p_SDP_Message_Template); + return v_SDP_Message; + } + } + + /* + * @desc wrapper function to decode and match SDP message + * @param p_MessageBody + * @param p_SDP_Message_Template + * @return SDP_Message + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(template (omit) MessageBody p_MessageBody, + template (present) SDP_Message p_SDP_Message_Template) runs on IMS_PTC return SDP_Message + { + var template (omit) SDP_Message v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP_Ifpresent(p_MessageBody, p_SDP_Message_Template); + return valueof(v_SDP_Message); + } + + //============================================================================ + // Common functions + //---------------------------------------------------------------------------- + /* + * @desc build SDP message to be sent as response to an offer e.g. at the end of C.21 or C.8 + * the function does + * "IP address on "c=" lines and transport port on "m=" lines changed to indicate to which IP address and port the UE should send the media" + * "o-line as in preceding SDP sent by SS, but with sess-version being incremented" + * @param p_SDP_Message_PrevOffer + * @param p_SessionVersion (default value: omit) + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_CommonResponseToOfferTX(SDP_Message p_SDP_Message_PrevOffer, + template (omit) charstring p_SessionVersion := omit) runs on IMS_PTC return template (value) SDP_Message + { + var integer i; + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var charstring v_IPAddrOrigin := f_IMS_PTC_RemoteAddress_GetAddrStr(); + var IntegerList_Type v_IMS_MediaPortList := {tsc_IMS_MediaPort_M1, tsc_IMS_MediaPort_M2, tsc_IMS_MediaPort_M3}; + var template (value) SDP_Message v_SDP_Message := p_SDP_Message_PrevOffer; + var template (value) SDP_media_desc_list v_Media_Desc_List := p_SDP_Message_PrevOffer.media_list; + var template (value) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrOrigin); + var template (value) SDP_media_desc v_SDP_Media_Desc; + var charstring v_SessionVersion; + var charstring v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessIdTX(); /* @sic R5-150707 sic@ */ + + if (ispresent(p_SessionVersion)) { + v_SessionVersion := valueof(p_SessionVersion); + } else { + v_SessionVersion := f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(); + } + + v_SDP_Message.origin := cs_SDP_Origin(v_SessionId, v_SessionVersion, v_AddrType, v_IPAddrOrigin); // @sic R5s141244: "o=" line sic@ + v_SDP_Message.connection := v_SDP_Connection; // IP address on "c=" line + + for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { + v_SDP_Media_Desc := v_Media_Desc_List[i]; + v_SDP_Media_Desc.media_field.ports.port_number := v_IMS_MediaPortList[i]; + v_SDP_Media_Desc.connections := { v_SDP_Connection }; // IP address on "c=" line + v_Media_Desc_List[i] := v_SDP_Media_Desc; + } + v_SDP_Message.media_list := v_Media_Desc_List; + return v_SDP_Message; + } + + /* + * @desc exchange attribute in all media streams of the given media list + * @param p_Media_Desc_List + * @param p_AttributeToBeChanged + * @param p_NewAttribute + * @return template (omit) SDP_media_desc_list + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_SDP_MediaList_ExchangeAttribute(template (omit) SDP_media_desc_list p_Media_Desc_List, + template (present) SDP_attribute p_AttributeToBeChanged, + template (value) SDP_attribute p_NewAttribute) return template (omit) SDP_media_desc_list + { + var template (omit) SDP_media_desc_list v_Media_Desc_List := p_Media_Desc_List; + var integer i; + + if (ispresent(p_Media_Desc_List)) { + for (i:=0; i < lengthof(v_Media_Desc_List); i:=i+1) { + v_Media_Desc_List[i].attributes := f_SDP_ExchangeAttribute(v_Media_Desc_List[i].attributes, p_AttributeToBeChanged, p_NewAttribute); + } + } + return v_Media_Desc_List; + } + + //============================================================================ + // Common SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc generic function to build up SDP message + * @param p_TimeDescription (default value: cr_SDP_Time_0_0) + * @param p_SDP_Media_Field + * @param p_SDP_MediaAttributes + * @param p_SDP_PrecondionAttributes + * @param p_MediaBW_AS + * @param p_MediaBW_RS + * @param p_MediaBW_RR + * @return template (present) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_RX(template (present) SDP_time p_TimeDescription := cr_SDP_Time_0_0, + template (present) SDP_media_field p_SDP_Media_Field, + template (present) SDP_attribute_list p_SDP_MediaAttributes := {}, + template (present) SDP_attribute_list p_SDP_PrecondionAttributes := {}, + template (present) integer p_MediaBW_AS := ?, + template (present) integer p_MediaBW_RS := ?, + template (present) integer p_MediaBW_RR := ?) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150704, R5s150751 - additional changes: new parameters p_MediaBW_AS, p_MediaBW_RS, p_MediaBW_RR sic@ */ + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var template (present) charstring v_IPAddrOrigin := ?; + var template (present) charstring v_IPAddrConnection := ?; + var template SDP_attribute_list v_SDP_Attribute_List := f_SDP_Attributes_Concat_RX(p_SDP_MediaAttributes, p_SDP_PrecondionAttributes); + var template SDP_bandwidth_list v_Media_Desc_BandwidthList := f_SDP_SDP_Media_Desc_BandwidthList(p_SDP_Media_Field, p_MediaBW_AS, p_MediaBW_RS, p_MediaBW_RR); /* results in * if the stream shall be released (port number == 0) + @sic R5s150704, R5s150751 - additional changes sic@ */ + var template (present) SDP_media_desc v_SDP_Media_Desc; + var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; + + if (lengthof(v_SDP_Attribute_List) > 0) { + v_SDP_Attribute_List := superset(all from v_SDP_Attribute_List); + } else { + v_SDP_Attribute_List := *; + } + + v_SDP_Media_Desc := cr_SDP_Media_Desc(p_SDP_Media_Field, + cr_SDP_Connection(v_AddrType, v_IPAddrConnection), + v_Media_Desc_BandwidthList, + v_SDP_Attribute_List); + v_SDP_Media_Desc_List := { v_SDP_Media_Desc }; + + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, -, p_TimeDescription, v_SDP_Media_Desc_List); + } + + /* + * @desc generic function to build up SDP message + * @param p_Media + * @param p_MediaBandwidth_List + * @param p_SDP_MediaAttributes + * @param p_SDP_PrecondionAttributes + * @param p_SessionBandwidthAS (default value: omit) + * @param p_ConnectionInSessionDesc (default value: true) + * @return template (value) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_TX(template (value) SDP_media_field p_Media, + template (omit) SDP_bandwidth_list p_MediaBandwidth_List, + template (omit) SDP_attribute_list p_SDP_MediaAttributes, + template (omit) SDP_attribute_list p_SDP_PrecondionAttributes, + template (omit) integer p_SessionBandwidthAS := omit, + boolean p_ConnectionInSessionDesc := true) runs on IMS_PTC return template (value) SDP_Message + { + var charstring v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessIdTX(); /* @sic R5-150707 sic@ */ + var charstring v_SessionVersion := f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(); + var template (omit) SDP_attribute_list v_SDP_Attribute_List := f_SDP_Attributes_Concat_TX(p_SDP_MediaAttributes, p_SDP_PrecondionAttributes); + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); + var charstring v_IPAddrOrigin := v_IPAddrConnection; + var template (omit) SDP_connection v_SDP_Connection := cs_SDP_Connection(v_AddrType, v_IPAddrConnection); + var template (omit) SDP_connection v_SDP_ConnectionInSession := omit; + var template (omit) SDP_connection_list v_SDP_ConnectionListInMedia := omit; + var template (omit) SDP_bandwidth_list v_SessionBandwidthList := omit; + var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; + var integer v_SessionBandwidthAS; + + if (isvalue(p_SessionBandwidthAS)) { + v_SessionBandwidthList := cs_SDP_Bandwidth_List_AS(valueof(p_SessionBandwidthAS)); + } else if (isvalue(p_MediaBandwidth_List)) { /* @sic R5s150704, R5s150751 - Additional changes: p_MediaBandwidth_List may be omit sic@ */ + v_SessionBandwidthAS := f_SDP_BandwidthList_GetBandwidth(valueof(p_MediaBandwidth_List), "AS"); + v_SessionBandwidthList := cs_SDP_Bandwidth_List_AS(v_SessionBandwidthAS); + } + + if (p_ConnectionInSessionDesc) { + v_SDP_ConnectionInSession := v_SDP_Connection; + } else { + v_SDP_ConnectionListInMedia := { v_SDP_Connection }; + } + v_SDP_Media_Desc_List := { cs_SDP_Media_Desc(p_Media, p_MediaBandwidth_List, v_SDP_Attribute_List, v_SDP_ConnectionListInMedia) }; + + return cs_SDP_Message_Common(cs_SDP_Origin(v_SessionId, v_SessionVersion, v_AddrType, v_IPAddrOrigin), /* Session description - o=line */ + v_SDP_ConnectionInSession, /* Session description - c=line */ + v_SessionBandwidthList, /* Session description - b=line */ + -, /* Time description - t=line */ + v_SDP_Media_Desc_List); /* Media description */ + } + + //============================================================================ + // Annex C11 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.11 + * @param p_SDP_Message183 (default value: omit) + * @param p_IsC45 (default value: false) + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC11_Step1or7(template (omit) SDP_Message p_SDP_Message183 := omit, + boolean p_IsC45:= false) + runs on IMS_PTC + return template (value) SDP_Message + { /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + /* @sic R5-153610: "sendrecv" media attribute removed from SDP message for C.11 step 7 sic@ */ + /* @sic R5-153798: p_SDP_Message183 replacing p_SDP_Attribute_curr_qos_remote and p_Step; p_IsC45 sic@ */ + var boolean v_IsUPDATE := isvalue(p_SDP_Message183); /* @sic R5-153798: if there has been a 183 response it must be UPDATE (but not INVITE) sic@ */ + var charstring v_FmtAudio := tsc_SDP_FmtAudio; + var charstring v_FmtEVS := "97"; + var SDP_fmt_list v_FmtList; + var template (value) SDP_bandwidth_list v_MediaBandwidth_List; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := {}; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes; + var charstring v_DirectionRemote := c_none; + var charstring v_DirectionLocal := c_none; + var template (omit) SDP_attribute v_FmtpAttributeEVS; + var charstring v_BrSendVal; + var charstring v_BrRecvVal; + + if (p_IsC45) { /* @sic R5-153798 sic@*/ + v_MediaBandwidth_List := cs_SDP_Bandwidth_List_Media(65, 0, 2000); + + if (not v_IsUPDATE) { /* => INVITE */ + v_FmtList := {v_FmtEVS, "98", "99"}; + f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, f_SDP_MediaAttributes_EVS_AudioCommon(v_FmtEVS, cs_EVS_Fmtp_AudioParamsExt)); + f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, f_SDP_MediaAttributes_AMR_WB_AudioCommon("98")); + f_SDP_Attributes_Concat_TX(v_SDP_MediaAttributes, f_SDP_MediaAttributes_AudioDef("99")); + } + else { /* => UPDATE */ + v_FmtpAttributeEVS := f_SDP_AttributeList_GetAttribute(p_SDP_Message183.media_list[0].attributes, cr_SDP_Attribute_fmtp(v_FmtEVS)); + v_BrSendVal := f_SIP_SemicolonParamList_GetParamValue(v_FmtpAttributeEVS.fmtp.params.paramList, "br-send"); + v_BrRecvVal := f_SIP_SemicolonParamList_GetParamValue(v_FmtpAttributeEVS.fmtp.params.paramList, "br-recv"); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_EVS_AudioDef(v_FmtEVS, cs_EVS_Fmtp_AudioParamsExt(v_BrSendVal, v_BrRecvVal)); + } + } + else { /* => C.11 */ + v_MediaBandwidth_List := cs_SDP_Bandwidth_List_Media(37, 0, 2500); /* @sic R5-130751; R5-134270: RR=2500; R5-144700: AS=37 sic@ */ + v_FmtList := {v_FmtAudio}; + v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + } + + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_sendrecv, v_IsUPDATE); + + + // Pre condition attributes: + if (v_IsUPDATE) { // @sic R5-153798: step 7 (C.11) or step 6 (C.45) + + v_DirectionLocal := c_sendrecv; + + // get curr:qos remote for SDP message in step 7 + if (isvalue(p_SDP_Message183.media_list[0]) and + f_SDP_AttributeList_CheckAttribute(p_SDP_Message183.media_list[0].attributes, cr_SDP_Attribute_curr_qos(c_local, c_none))) { // see C.11 step 7 Note 1 + v_DirectionRemote := c_none; + } else { + v_DirectionRemote := c_sendrecv; + } + } + + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(v_DirectionLocal, v_DirectionRemote, c_mandatory, c_optional); /* @sic R5-153798: usage of cs_SDP_PrecondionAttributes sic@*/ + + return f_IMS_BuildSDP_TX(cs_SDP_Media_MultiAudio(v_FmtList), v_MediaBandwidth_List, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //---------------------------------------------------------------------------- + /* + * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21 step 5/7 + * @param p_Step + * @param p_IsC45 (default value: false) + * @return template (present) SDP_Message + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC11_Step4or8(charstring p_Step, + boolean p_IsC45:= false) + runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-123077 change 3: 'inactive' removed from 'Attributes for media' for step 4 sic@ */ + /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_Def sic@ */ + /* @sic R5-153798: p_IsC45 sic@ */ + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes; + var template (present) SDP_attribute_list v_SDP_MediaAttributes; + var template (present) SDP_attribute_rtpmap_codec v_RtpmapCodec; + + if (p_IsC45) { /* @sic R5-153798 sic@*/ + v_RtpmapCodec := cr_RTPMAP_EVS_16000; + } else{ + v_RtpmapCodec := cr_RTPMAP_AMR_8000; + } + + v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, v_RtpmapCodec), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr) + }; + + select (p_Step) { + case ("step 4") { + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes((c_none, c_sendrecv), c_none, c_mandatory, c_mandatory); // @sic R5s120530 change 3.15 sic@ + v_SDP_PrecondionAttributes := f_SDP_Attributes_Add_RX(v_SDP_PrecondionAttributes, cr_SDP_Attribute_conf_qos); // @sic R5s140204 sic@ + } + case ("step 8") { + /* @sic R5-150709: cr_SDP_Attribute_sendrecv removed sic@ */ + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //============================================================================ + // Annex C21 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc return template for SDP message at step 2 according to 34.229-1 Annex C.21 + * @param p_RtcpDuringVoiceSession (default value: pc_IMS_RtcpDuringVoiceSession) + * @param p_PreconditionsRequired (default value: true) + * @return template (present) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21_Step2(boolean p_RtcpDuringVoiceSession := pc_IMS_RtcpDuringVoiceSession, + boolean p_PreconditionsRequired := true) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-135020, R5-135021: new PICS pc_IMS_RtcpDuringVoiceSession sic@ */ + /* @sic R5w140113, R5w140009: new SDP type definitions */ + /* @sic R5s150704, R5s150751 - Additional changes: parameter p_PreconditionsRequired, f_IMS_BuildSDP_RX used instead of cr_SDP_Message_AnySession sic@ */ + var template (present) integer v_BandwidthRS := 0; + var template (present) integer v_BandwidthRR := 0; + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), /* @sic R5w140113, R5w140009: cr_AMR_Fmtp_DefaultParameters replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ */ + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), // @sic R5s130333 change 14.2 - pattern needs to include a rate; R5s130798 change 5 - MCC160 Comment: rate is optional sic@ + cr_SDP_Attribute_ptime, + cr_SDP_Attribute_maxptime + /* @sic R5-150709: cr_SDP_Attribute_inactive removed sic@ */ + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := {}; + + if (p_PreconditionsRequired) { /* @sic R5s150704, R5s150751 - Additional changes sic@ */ + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + } + if (p_RtcpDuringVoiceSession) { /* @sic R5-135020 sic@ */ + v_BandwidthRS := ?; + v_BandwidthRR := (1..infinity); + } + return f_IMS_BuildSDP_RX(cr_SDP_Time_Any, cr_SDP_Media_Audio, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes, -, v_BandwidthRS, v_BandwidthRR); + } + + //---------------------------------------------------------------------------- + /* + * @desc return template for SDP message at step 4 according to 34.229-1 Annex C.21 and C.44 + * @param p_SDP_MessageInvite + * @param p_PreconditionsRequired (default value: true) + * @param p_CodecName (default value: "AMR-8000") + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21_Step4(SDP_Message p_SDP_MessageInvite, + boolean p_PreconditionsRequired := true, + charstring p_CodecName := "AMR-8000") + runs on IMS_PTC + return template (value) SDP_Message + { /* @sic R5-135020: parameter p_SDP_MessageInvite to get RR and RS values sic@ */ + /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ + /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + /* @sic R5-151968: p_IsC44 sic@ */ + /* @sic R5s150704, R5s150751 - Additional changes: p_PreconditionsRequired sic@ */ + /* @sic R5-153999: p_IsC44 renamed to p_CodecName sic@ */ + var integer i; + var template (omit) SDP_attribute v_Attribute; + var SDP_media_desc v_SDP_Media_Invite := p_SDP_MessageInvite.media_list[0]; + var charstring v_FmtAudio; + var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RS"); + var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Invite.bandwidth, "RR"); + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); // @sic R5-123505, R5-135020; R5-144700: AS=37 sic@ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes; + var template (value) SDP_attribute_list v_AdditionalOptionalAttributes; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := omit; + + + select (p_CodecName) { // @sic R5-151968, R5-153999 sic@ + case ("EVS-16000"){ // @sic R5-153999 sic@ + /* !!!! prose acc to R5-153999 says: "All present br, br-send and br-recv parameter=value pairs are copied from step 2" !!!! + !!!! this is missing so far (FFS) !!!! */ + v_FmtAudio := f_SDP_MediaDescr_GetEVS_16000_1(v_SDP_Media_Invite); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_EVS_AudioDef(v_FmtAudio); + } + case ("AMR-WB"){ // @sic R5-153950 sic@ + v_FmtAudio := f_SDP_MediaDescr_GetAMR_16000_1(v_SDP_Media_Invite); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_EVS_AudioDef(v_FmtAudio); + v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(38, v_BandwidthRS, v_BandwidthRR); + } + case ("AMR-8000"){ + v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Invite); + v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + } + case else { + FatalError(__FILE__, __LINE__, "") + } + } + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_Invite.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-150694 sic@ */ + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_inactive); + } + + // additional attributes to be added (using f_SDP_Attributes_Add_TX): + // a=ecn-capable-rtp: leap; ect=0 [Note 3] + // a=rtcp-fb:* nack ecn [Note 3] + // a=rtcp-xr:ecn-sum [Note 3] + // a=3ge2ae: requested [Note 1] + // a=crypto:1 AES_CM_128_HMAC_SHA1_80inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4 [Note 4] + v_AdditionalOptionalAttributes := { /* @sic R5s140359 - Additional Changes sic@ */ + cs_SDP_Attribute_ecn_capable_rtp("leap", "ect=0"), + cs_SDP_Attribute_rtcp_fb("*", "nack ecn"), + cs_SDP_Attribute_rtcp_xr("ecn-sum"), + cs_SDP_Attribute_3ge2ae("requested"), + cs_SDP_Attribute_crypto("1", "AES_CM_128_HMAC_SHA1_80", "inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:4") + }; + for (i := 0; i < lengthof(v_AdditionalOptionalAttributes); i := i + 1) { + v_Attribute := f_SDP_AttributeList_GetAttribute(p_SDP_MessageInvite.attributes, v_AdditionalOptionalAttributes[i]); + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, v_Attribute); + } + + if (p_PreconditionsRequired) { /* @sic R5s150704, R5s150751 - Additional changes sic@ */ + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory); + v_SDP_PrecondionAttributes := f_SDP_Attributes_Add_TX(v_SDP_PrecondionAttributes, cs_SDP_Attribute_conf_qos); // @sic R5s120530 change 3.5 sic@ + } + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //---------------------------------------------------------------------------- + /* + * @desc to receive SDP answer sent by the UE in C.11 step 8 (200 OK sent by the SS) or 2nd SDP sent by the UE in C.21/C.44 step 5/7 + * @param p_SDP_MessageInvite + * @param p_CallHoldC8 (default value: true) + * @param p_IsC44 (default value: true) + * @return template (present) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21_Step5or7(SDP_Message p_SDP_MessageInvite, + boolean p_CallHoldC8 := false, + boolean p_IsC44 := false) + runs on IMS_PTC + return template (present) SDP_Message + { /* @sic R5-145726: function restructured to allow it to be used by e.g. f_IMS_BuildSDP_AnnexC8_Step1; new parameter p_CallHoldC8 sic@ */ + /* @sic R5-151968 new parameter: p_IsC44 sic@ */ + /* @sic R5-153610: p_SDP_MessageInvite instead of p_Fmt sic@ */ + var SDP_media_desc v_SDP_Media_Invite := p_SDP_MessageInvite.media_list[0]; + var charstring v_Fmt := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Invite); // @sic R5-153610 sic@ + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio(v_Fmt); + var template (present) SDP_attribute_list v_SDP_MediaAttributes; + var template (present) charstring v_DirectionRemote; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes; + var template (present) SDP_attribute_rtpmap_codec v_RtpmapAttr; + + if (not p_IsC44) { /* @sic R5-1551968 sic@ */ + v_RtpmapAttr := cr_RTPMAP_AMR_8000; + } + else { + v_RtpmapAttr := cr_RTPMAP_EVS_16000; + } + + v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(v_Fmt, v_RtpmapAttr), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(v_Fmt) /* @sic R5s130497 change 2: format parameters added; R5s130586 change 4: format parameters changed back to any parameters sic@ */ + }; + + if (not p_CallHoldC8) { + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_Invite.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-153610 sic@ */ + v_SDP_MediaAttributes := f_SDP_Attributes_Add_RX(v_SDP_MediaAttributes, cr_SDP_Attribute_sendrecv); + } + v_DirectionRemote := c_none; + } else { + v_DirectionRemote := c_sendrecv; + } + v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_sendrecv, v_DirectionRemote, c_mandatory, (c_optional, c_mandatory)); + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //---------------------------------------------------------------------------- + /* + * @desc build SDP message to be sent in step 6 or 8 of 34.229-1 Annex C.21 + * NOTE: function is not specific for C.21 but can be used for C.25 as well + * @param p_SDP_Message_PrevOffer + * @return template (value) SDP_Message + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_IMS_BuildSDP_AnnexC21C25_Step6or8(SDP_Message p_SDP_Message_PrevOffer) + runs on IMS_PTC + return template (value) SDP_Message + { + var template (value) SDP_Message v_SDP_Message := f_IMS_BuildSDP_CommonResponseToOfferTX(p_SDP_Message_PrevOffer); + + v_SDP_Message.media_list := f_IMS_SDP_MediaList_ExchangeAttribute(v_SDP_Message.media_list, + cs_SDP_Attribute_curr_qos(c_remote, c_none), // value sent by the UE in step 5/7 + cs_SDP_Attribute_curr_qos(c_remote, c_sendrecv)); // ... to be replaced + return v_SDP_Message; + } + + //============================================================================ + // Annex C22 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be received from the UE at step 1 according to 34.229-1 Annex C.22 + * @return template (present) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC22_Step1() runs on IMS_PTC return template (present) SDP_Message + { + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var template (present) charstring v_IPAddrOrigin := ?; + var template (present) charstring v_IPAddrConnection := ?; + var template (present) SDP_media_desc v_SDP_Media_Desc; + var template SDP_bandwidth_list v_Bandwidth := *; + var template SDP_attribute_list v_SDP_Attribute_List := *; //acc. to annex C.22 there shall be at least one AMR codec ("AMR/*" of "AMR-WB/*"); + // this will be checked later-on when the fmt value for the AMR codec is extracted (-> f_IMS_EmergencyCallSetup_AnnexC22, f_SDP_MediaDescr_GetAMR_Any) + v_SDP_Media_Desc := cr_SDP_Media_Desc(cr_SDP_Media_Audio, + cr_SDP_Connection(v_AddrType, v_IPAddrOrigin), + cr_SDP_Bandwidth_List_AS, + v_SDP_Attribute_List); + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, v_IPAddrConnection, v_Bandwidth, cr_SDP_Time_Any, { v_SDP_Media_Desc }); /* @sic R5s130495 change 21 sic@ */ + } + + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.22 + * NOTE: the "payload type" of the rtpmap attribute and the "format" of the fmtp atribute refer to the format in the media description (RFC 4566) + * => as long as there is only one media description, the fmt, payload type and format have the same value + * @param p_Fmt + * @return template (value) SDP_Message + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC22_Step4(charstring p_Fmt) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s141244: use of f_IMS_BuildSDP_TX; p_IPAddrOrigin removed sic@ */ + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, 0, 0); /* @sic R5-144700: AS=37 sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(p_Fmt); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := omit; + + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(p_Fmt), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + //============================================================================ + // Annex C24 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP message to be received from the UE according to 34.229-1 Annex C.24 step 1 + * @return template (present) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC24_Step1() runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_AnySession sic@ */ + var integer v_PortNumber := 0; + return f_IMS_BuildSDP_RX(cr_SDP_Time_Any, cr_SDP_Media_Audio(-, v_PortNumber)); + } + + /* + * @desc Build SDP answer to be sent to the UE according to 34.229-1 Annex C.24 step 3 + * @param p_SDP_Offer + * @return template (value) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC24_Step3(SDP_Message p_SDP_Offer) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s150704, R5s150751 - Additional changes, R5-153755: use of f_IMS_BuildSDP_TX sic@ */ + + var template (omit) SDP_bandwidth_list v_MediaBandwidth_List := omit; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := omit; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes := omit; + var SDP_media_desc v_SDP_Media_Offer := p_SDP_Offer.media_list[0]; + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Offer); + var integer v_LocalPort := 0; + var integer v_SessionBandwidthAS := 37; /* @sic R5s150704, R5s150751 - Additional changes sic@ */ + + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio, v_LocalPort), v_MediaBandwidth_List, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes, v_SessionBandwidthAS); + } + + //============================================================================ + // Annex C31 - SDP Messages + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.31 + * @return template (present) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC31_Step1() runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5s150704, R5s150751 - Additional changes: f_IMS_BuildSDP_RX used instead of cr_SDP_Message_AnySession sic@ */ + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := {}; // precondition attributes: none @sic R5s140263 change 4, R5-142995 sic@ + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp + // @sic R5-153610: "sendrecv" media attribute removed sic@ + }; + return f_IMS_BuildSDP_RX(cr_SDP_Time_Any, cr_SDP_Media_Audio, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + /* + * @desc Build SDP to be sent to the UE at step 3 according to 34.229-1 Annex C.31 + * @param p_SDP_Offer + * @return template (value) SDP_Message + * @status APPROVED (LTE_IRAT) + */ + function f_IMS_BuildSDP_AnnexC31_Step3(SDP_Message p_SDP_Offer) runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5s141244: use of f_IMS_BuildSDP_TX sic@ */ + var SDP_media_desc v_SDP_Media_Offer := p_SDP_Offer.media_list[0]; + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_Offer); + var integer v_BandwidthRS := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RS"); + var integer v_BandwidthRR := f_SDP_BandwidthList_GetBandwidth(v_SDP_Media_Offer.bandwidth, "RR"); + var template (value) SDP_bandwidth_list v_Bandwidth_List_Media := cs_SDP_Bandwidth_List_Media(37, v_BandwidthRS, v_BandwidthRR); /* @sic R5-144700: AS=37 sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioCommon(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioCommon sic@ */ + var template (value) SDP_attribute_list v_SDP_PrecondionAttributes; + + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_Offer.attributes, cr_SDP_Attribute_sendrecv)) { /* @sic R5-153610: "sendrecv" only if included in the INVITE too sic@ */ + v_SDP_MediaAttributes := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes, cs_SDP_Attribute_sendrecv); + } + + v_SDP_PrecondionAttributes := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); /* @sic R5s150704, R5s150751 - Additional changes: cs_SDP_PrecondionAttributes sic@ */ + return f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio), v_Bandwidth_List_Media, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + +} diff --git a/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn new file mode 100644 index 0000000..57eaad9 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_MessagesVideo.ttcn @@ -0,0 +1,477 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ +/******************************************************************************/ + +module IMS_SDP_MessagesVideo { + import from LibSip_Common all; + import from LibSip_SDPTypes all; + import from IMS_Component all; + import from IMS_SDP_Templates all; + + type enumerated VideoCallTypeMO_Type {C25, AddVideo, CallHold}; /* @status APPROVED (IMS) */ + type enumerated VideoCallTypeMT_Type {C26, AddVideo}; /* @status APPROVED (IMS) */ + type enumerated VideoCallMT_MessageTX_Type {Invite, Update, InviteRemoveVideo}; /* @status APPROVED (IMS) */ + type enumerated VideoCallMT_MessageRX_Type {Response183, Response200}; /* @status APPROVED (IMS) */ + + /* + * @desc returns true if media attributes for tcap and pcfg are needed in DL + * @param p_SDP_Media_Desc + * @return boolean + * @status APPROVED (IMS) + */ + function fl_IMS_Video_TcapPcfgRequired(SDP_media_desc p_SDP_Media_Desc) return boolean + { + return (p_SDP_Media_Desc.media_field.transport == c_rtpAvp); + } + + //============================================================================ + // Video - SDP Messages Common + //---------------------------------------------------------------------------- + /* + * @desc Common function for video SDP messges in UL + * @param p_TimeDescription (default value: cr_SDP_Time_0_0) + * @param p_SDP_Media_Field_Audio + * @param p_SDP_MediaAttributes_Audio + * @param p_SDP_PrecondionAttributes_Audio + * @param p_SDP_Media_Field_Video + * @param p_SDP_MediaAttributes_Video + * @param p_SDP_PrecondionAttributes_Video + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AudioVideo_RX(template (present) SDP_time p_TimeDescription := cr_SDP_Time_0_0, + template (present) SDP_media_field p_SDP_Media_Field_Audio, + template (present) SDP_attribute_list p_SDP_MediaAttributes_Audio, + template (present) SDP_attribute_list p_SDP_PrecondionAttributes_Audio, + template (present) SDP_media_field p_SDP_Media_Field_Video, + template (present) SDP_attribute_list p_SDP_MediaAttributes_Video, + template (present) SDP_attribute_list p_SDP_PrecondionAttributes_Video) runs on IMS_PTC return template (present) SDP_Message + { + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var template (present) charstring v_IPAddrOrigin := ?; + var template (present) charstring v_IPAddrAudio := ?; + var template (present) charstring v_IPAddrVideo := ?; + var template (present) SDP_attribute_list v_SDP_Attribute_List_Audio := f_SDP_Attributes_Concat_RX(p_SDP_MediaAttributes_Audio, p_SDP_PrecondionAttributes_Audio); + var template (present) SDP_attribute_list v_SDP_Attribute_List_Video := f_SDP_Attributes_Concat_RX(p_SDP_MediaAttributes_Video, p_SDP_PrecondionAttributes_Video); + var template (present) SDP_media_desc v_SDP_Media_Desc_Audio; + var template (present) SDP_media_desc v_SDP_Media_Desc_Video; + var template SDP_bandwidth_list v_BandwidthList_Audio := f_SDP_SDP_Media_Desc_BandwidthList(p_SDP_Media_Field_Audio); /* results in * if the audio stream shall be released */ + var template SDP_bandwidth_list v_BandwidthList_Video := f_SDP_SDP_Media_Desc_BandwidthList(p_SDP_Media_Field_Video); /* results in * if the video stream shall be released */ + var template (present) SDP_media_desc_list v_SDP_Media_Desc_List; + + v_SDP_Attribute_List_Audio := superset(all from v_SDP_Attribute_List_Audio); + v_SDP_Attribute_List_Video := superset(all from v_SDP_Attribute_List_Video); + + v_SDP_Media_Desc_Audio := cr_SDP_Media_Desc(p_SDP_Media_Field_Audio, + cr_SDP_Connection(v_AddrType, v_IPAddrAudio), + v_BandwidthList_Audio, + v_SDP_Attribute_List_Audio); + v_SDP_Media_Desc_Video := cr_SDP_Media_Desc(p_SDP_Media_Field_Video, + cr_SDP_Connection(v_AddrType, v_IPAddrVideo), + v_BandwidthList_Video, + v_SDP_Attribute_List_Video); + v_SDP_Media_Desc_List := { v_SDP_Media_Desc_Audio, v_SDP_Media_Desc_Video }; + + return cr_SDP_Message_Common(v_AddrType, v_IPAddrOrigin, ?, -, p_TimeDescription, v_SDP_Media_Desc_List); + } + + /* + * @desc Common function for video SDP messges in DL + * @param p_SessionBandwidthAS (default value: 30) + * @param p_MediaAudio + * @param p_Bandwidth_List_Audio + * @param p_SDP_MediaAttributes_Audio + * @param p_SDP_PrecondionAttributes_Audio + * @param p_MediaVideo + * @param p_Bandwidth_List_Video + * @param p_SDP_MediaAttributes_Video + * @param p_SDP_PrecondionAttributes_Video + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AudioVideo_TX(integer p_SessionBandwidthAS := 30, + template (value) SDP_media_field p_MediaAudio, + template (value) SDP_bandwidth_list p_Bandwidth_List_Audio, + template (omit) SDP_attribute_list p_SDP_MediaAttributes_Audio, + template (omit) SDP_attribute_list p_SDP_PrecondionAttributes_Audio, + template (value) SDP_media_field p_MediaVideo, + template (value) SDP_bandwidth_list p_Bandwidth_List_Video, + template (omit) SDP_attribute_list p_SDP_MediaAttributes_Video, + template (omit) SDP_attribute_list p_SDP_PrecondionAttributes_Video) + runs on IMS_PTC + return template (value) SDP_Message + { + var charstring v_SessionId := f_IMS_PTC_ImsInfo_DialogGetSessIdTX(); /* @sic R5-150707 sic@ */ + var charstring v_SessionVersion := f_IMS_PTC_ImsInfo_DialogIncrAndGetSessVersionTX(); + var charstring v_AddrType := f_IMS_PTC_NW_Address_GetTypeStr(); + var charstring v_IPAddrConnection := f_IMS_PTC_RemoteAddress_GetAddrStr(); + var charstring v_IPAddrOrigin := v_IPAddrConnection; + var template (omit) SDP_attribute_list v_SDP_Attribute_List_Audio := f_SDP_Attributes_Concat_TX(p_SDP_MediaAttributes_Audio, p_SDP_PrecondionAttributes_Audio); + var template (omit) SDP_attribute_list v_SDP_Attribute_List_Video := f_SDP_Attributes_Concat_TX(p_SDP_MediaAttributes_Video, p_SDP_PrecondionAttributes_Video); + var template (value) SDP_media_desc v_SDP_Media_Desc_AudioTx; + var template (value) SDP_media_desc v_SDP_Media_Desc_VideoTx; + var template (value) SDP_media_desc_list v_SDP_Media_Desc_List; + + v_SDP_Media_Desc_AudioTx := cs_SDP_Media_Desc(p_MediaAudio, + p_Bandwidth_List_Audio, + v_SDP_Attribute_List_Audio); + v_SDP_Media_Desc_VideoTx := cs_SDP_Media_Desc(p_MediaVideo, + p_Bandwidth_List_Video, + v_SDP_Attribute_List_Video); + + v_SDP_Media_Desc_List := { v_SDP_Media_Desc_AudioTx, v_SDP_Media_Desc_VideoTx }; + + return cs_SDP_Message_Common(cs_SDP_Origin(v_SessionId, v_SessionVersion, v_AddrType, v_IPAddrOrigin), + cs_SDP_Connection(v_AddrType, v_IPAddrConnection), + cs_SDP_Bandwidth_List_AS(p_SessionBandwidthAS), + -, + v_SDP_Media_Desc_List); + } + + //============================================================================ + // Video - SDP Messages MO Call (C.25 and 17.1) + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be received from the UE at step 2 according to 34.229-1 Annex C.25 + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AnnexC25_Step2() runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-151796: "a=inactive" removed from media attributes for audio and video sic@ */ + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(-, cr_AMR_Fmtp_DefaultParameters), + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent), + cr_SDP_Attribute_ptime, + cr_SDP_Attribute_maxptime + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + // The tcap/pcfg attributes need to be checked later when we know whether we have RTP/AVP or RTP/AVPF + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(-, cr_Video_Fmtp_DefaultParametersMO) + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + + return f_IMS_BuildSDP_AudioVideo_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes, + cr_SDP_Media_Video(-, (c_rtpAvp, c_rtpAvpf)), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes); + } + + /* + * @desc Build SDP record to be received from the UE at step 2 according to 34.229-1 test case 17.1 + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_AddVideoMO_Step2() runs on IMS_PTC return template (present) SDP_Message + { + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp // => any parameters for audio + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_optional); + + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + // The tcap/pcfg attributes need to be checked later when we know whether we have RTP/AVP or RTP/AVPF + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(-, cr_Video_Fmtp_DefaultParametersMO) + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_optional); + + return f_IMS_BuildSDP_AudioVideo_RX(cr_SDP_Time_Any, + cr_SDP_Media_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media_Video(-, (c_rtpAvp, c_rtpAvpf)), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + //---------------------------------------------------------------------------- + /* + * @desc Build SDP record to be sent to the UE at step 4 according to 34.229-1 Annex C.25 or test case 17.1 + * @param p_VideoCallType + * @param p_SDP_Media_AudioRx + * @param p_SDP_Media_VideoRx + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MOCallAudioVideo_Step4(VideoCallTypeMO_Type p_VideoCallType, + SDP_media_desc p_SDP_Media_AudioRx, + SDP_media_desc p_SDP_Media_VideoRx) + runs on IMS_PTC return template (value) SDP_Message + { /* @sic R5-144402: p_IPAddrOrigin removed sic@ */ + var boolean v_TcapPcfg := fl_IMS_Video_TcapPcfgRequired(p_SDP_Media_VideoRx); + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(p_SDP_Media_AudioRx); + var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(p_SDP_Media_VideoRx); + var template (omit) SDP_attribute v_FmtpAttributeVideo; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio := p_SDP_Media_AudioRx.bandwidth; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Video := p_SDP_Media_VideoRx.bandwidth; + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Audio := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Video := {}; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (omit) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + var template (value) SemicolonParam_List v_FmtpParamListVideo := {}; + + v_SDP_PrecondionAttributes_Video := f_SDP_Attributes_Add_TX(cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory), cs_SDP_Attribute_conf_qos); + + select (p_VideoCallType) { + case (C25) { + v_SDP_PrecondionAttributes_Audio := v_SDP_PrecondionAttributes_Video; // same preconditions for audio and video + } + case (AddVideo) { + v_SDP_PrecondionAttributes_Audio := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + } + + v_FmtpAttributeVideo := f_SDP_AttributeList_GetAttribute(p_SDP_Media_VideoRx.attributes, cr_SDP_Attribute_fmtp(v_FmtVideo)); // @sic R5s141336 change 2.2 - MCC160 implementation sic@ */ + if (isvalue(v_FmtpAttributeVideo)) { + v_FmtpParamListVideo := valueof(v_FmtpAttributeVideo.fmtp.params.paramList); /* @sic R5-150734, R5-150736 sic@ */ + } + + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtpmap(v_FmtVideo, cs_RTPMAP_H264_90000)); + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_fmtp(v_FmtVideo, cs_Fmtp_ParamList(v_FmtpParamListVideo))); + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_acfg(1, "t=1"), v_TcapPcfg); + + if (p_VideoCallType == C25) { /* NOTE: there is nothing specified in 17.1 regarding "a=inactive" yet */ + if (f_SDP_AttributeList_CheckAttribute(p_SDP_Media_VideoRx.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-150694 sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_inactive); + } + if (f_SDP_AttributeList_CheckAttribute(p_SDP_Media_AudioRx.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-151796/R5-151797 sic@ */ + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_inactive); + } + } + + return f_IMS_BuildSDP_AudioVideo_TX(-, + cs_SDP_Media_Audio(v_FmtAudio), + v_Bandwidth_List_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cs_SDP_Media_Video(v_FmtVideo), + v_Bandwidth_List_Video, + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + //---------------------------------------------------------------------------- + /* + * @desc to receive 2nd SDP answer sent by the UE in C.25 step 5/7 + * @param p_VideoCallType + * @param p_SDP_MessageInvite + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MOCallAudioVideo_Step5or7(VideoCallTypeMO_Type p_VideoCallType, + SDP_Message p_SDP_MessageInvite) runs on IMS_PTC return template (present) SDP_Message + { /* @sic R5-153610: p_SDP_MessageInvite instead of p_FmtAudio, p_FmtVideo sic@ */ + + var SDP_media_desc v_SDP_Media_InviteAudio := p_SDP_MessageInvite.media_list[0]; + var SDP_media_desc v_SDP_Media_InviteVideo := p_SDP_MessageInvite.media_list[1]; + var charstring v_FmtAudio := f_SDP_MediaDescr_GetAMR_8000_1(v_SDP_Media_InviteAudio); // @sic R5-153610 sic@ + var charstring v_FmtVideo := f_SDP_MediaDescr_GetH264_90000(v_SDP_Media_InviteVideo); // @sic R5-153610 sic@ + + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(v_FmtAudio, cr_RTPMAP_AMR_8000), // @sic R5s130681 change 2 sic@ + cr_SDP_Attribute_fmtp(v_FmtAudio) + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + var template (present) charstring v_DirectionRemote_Audio; + var template (present) charstring v_DirectionRemote_Video; + var template (present) charstring v_StrengthRemote := c_optional; + + v_SDP_MediaAttributes_Video := { /* @sic R5s141336 change 3 sic@ */ + cr_SDP_Attribute_rtpmap(v_FmtVideo, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(v_FmtVideo, cr_Video_Fmtp_DefaultParametersMO) /* @sic R5-150734, R5-150736: same parameters for C.25 and 17.1 sic@ */ + }; + + select (p_VideoCallType) { + case (C25) { + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_InviteAudio.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-153610 sic@ */ + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_RX(v_SDP_MediaAttributes_Audio, cr_SDP_Attribute_sendrecv); + } + if (f_SDP_AttributeList_CheckAttribute(v_SDP_Media_InviteVideo.attributes, cr_SDP_Attribute_inactive)) { /* @sic R5-153610 sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_RX(v_SDP_MediaAttributes_Video, cr_SDP_Attribute_sendrecv); + } + v_DirectionRemote_Audio := c_none; + v_DirectionRemote_Video := c_none; + v_StrengthRemote := (c_optional, c_mandatory); /* @sic R5s141221 change 4.1; R5s150236 sic@ */ + } + case (AddVideo) { + v_DirectionRemote_Audio := c_sendrecv; + v_DirectionRemote_Video := c_none; + } + case (CallHold) { + v_DirectionRemote_Audio := c_sendrecv; + v_DirectionRemote_Video := c_sendrecv; + v_StrengthRemote := (c_optional, c_mandatory); /* @sic R5s150775 sic@ */ + } + } + v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_sendrecv, v_DirectionRemote_Audio, c_mandatory, v_StrengthRemote); + v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, v_DirectionRemote_Video, c_mandatory, v_StrengthRemote); + + return f_IMS_BuildSDP_AudioVideo_RX(-, + cr_SDP_Media_Audio(v_FmtAudio), + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media_Video(v_FmtVideo), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + //============================================================================ + // Video - SDP Messages MT Call (C.26 and 17.2) + //---------------------------------------------------------------------------- + /* + * @desc Build SDP message to be sent to the UE at step 1/7 of Annex C.26 or at step 1/6 of 17.2 + * @param p_VideoCallType + * @param p_MessageType + * @param p_FmtAudio + * @param p_FmtVideo + * @param p_DirectionRemote (default value: c_none) + * @return template (value) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MTCallAudioVideo_TX(VideoCallTypeMT_Type p_VideoCallType, + VideoCallMT_MessageTX_Type p_MessageType, + charstring p_FmtAudio, + charstring p_FmtVideo, + charstring p_DirectionRemote := c_none) + runs on IMS_PTC + return template (value) SDP_Message + { + var template (value) SDP_media_field v_MediaVideo := cs_SDP_Media_Video(p_FmtVideo); + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Audio := f_SDP_MediaAttributes_AudioCommon(p_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioCommon sic@ */ + var template (omit) SDP_attribute_list v_SDP_MediaAttributes_Video := { + cs_SDP_Attribute_rtpmap(p_FmtVideo, cs_RTPMAP_H264_90000), + cs_SDP_Attribute_fmtp(p_FmtVideo, cs_Fmtp_ParamList(cs_Fmtp_VideoParamsDef)) + }; + var integer v_SessionBandwidthAS; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Audio; + var template (value) SDP_bandwidth_list v_Bandwidth_List_Video := cs_SDP_Bandwidth_List_Media(315, 0, 2500); + var template (value) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (value) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + var boolean v_IsNotRemoveVideo := (p_MessageType != InviteRemoveVideo); + var boolean v_IsUpdate := false; + + if (p_MessageType != InviteRemoveVideo) { + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "trr-int 5000"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "nack"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "nack pli"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "ccm fir"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + v_SDP_MediaAttributes_Video := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Video, cs_SDP_Attribute_rtcp_fb("*", "ccm tmmbr"), v_IsNotRemoveVideo); /* @sic R5s141329 change 2.2: attribute is for video sic@ */ + } + + select (p_MessageType) { + case (Invite) { + v_SDP_PrecondionAttributes_Video := cs_SDP_PrecondionAttributes(c_none, c_none, c_mandatory, c_mandatory); + } + case (Update) { + v_SDP_PrecondionAttributes_Video := cs_SDP_PrecondionAttributes(c_sendrecv, p_DirectionRemote, c_mandatory, c_mandatory); + v_IsUpdate := true; + } + case (InviteRemoveVideo) { + v_SDP_PrecondionAttributes_Video := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + v_MediaVideo.ports.port_number := 0; + } + } + + if (not (v_IsUpdate and (p_VideoCallType == AddVideo))) { // @sic R5-151956: there are no ptime, maxptime for UPDATE of 17.2 sic@ + // additional attributes for audio: ptime, maxptime + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_ptime); + v_SDP_MediaAttributes_Audio := f_SDP_Attributes_Add_TX(v_SDP_MediaAttributes_Audio, cs_SDP_Attribute_maxptime); + } + + select (p_VideoCallType) { + case (C26) { + v_SessionBandwidthAS := 30; // @sic R5-151956 sic@ + v_Bandwidth_List_Audio := cs_SDP_Bandwidth_List_Media(30, 0, 2000); // @sic R5-151956 sic@ + // @sic R5-153610: "sendrecv" media attribute removed from UPDATE (Step 7) for audio and Video sic@ + v_SDP_PrecondionAttributes_Audio := v_SDP_PrecondionAttributes_Video; // same precondions for video and audio + } + case (AddVideo) { + v_SessionBandwidthAS := 37; // @sic R5-151956 sic@ + v_Bandwidth_List_Audio := cs_SDP_Bandwidth_List_Media(37, 0, 2500); // @sic R5-151956 sic@ + // acc. 34.229-1 in contrast to C.26 there is no sendrecv attribute for audio or video + v_SDP_PrecondionAttributes_Audio := cs_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); // audio is already there + } + } + + return f_IMS_BuildSDP_AudioVideo_TX(v_SessionBandwidthAS, + cs_SDP_Media_Audio(p_FmtAudio), + v_Bandwidth_List_Audio, + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + v_MediaVideo, + v_Bandwidth_List_Video, + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + + /* + * @desc SDP message received in step 4 (C.26) or step 3 (17.2) + * @param p_VideoCallType + * @param p_MessageType + * @param p_FmtAudio + * @param p_FmtVideo + * @return template (present) SDP_Message + * @status APPROVED (IMS) + */ + function f_IMS_BuildSDP_MTCallAudioVideo_RX(VideoCallTypeMT_Type p_VideoCallType, + VideoCallMT_MessageRX_Type p_MessageType, + charstring p_FmtAudio, + charstring p_FmtVideo) + runs on IMS_PTC + return template (present) SDP_Message + { + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Audio := { + cr_SDP_Attribute_rtpmap(p_FmtAudio, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(p_FmtAudio) + }; + var template (present) SDP_attribute_list v_SDP_MediaAttributes_Video := { + cr_SDP_Attribute_rtpmap(p_FmtVideo, cr_RTPMAP_H264_90000), + cr_SDP_Attribute_fmtp(p_FmtVideo, cr_Video_Fmtp_DefaultParametersMT) /* @sic R5s141329 - MCC160 implementation sic@ + @sic R5-150703: same parameters for C.26 and 17.2 sic@ */ + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes_Video; + + select (p_MessageType) { + case (Response183) { + v_SDP_PrecondionAttributes_Video := f_SDP_Attributes_Add_RX(cr_SDP_PrecondionAttributes((c_none, c_sendrecv), c_none, c_mandatory, c_mandatory), cr_SDP_Attribute_conf_qos); + } + case (Response200) { + v_SDP_PrecondionAttributes_Video := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + } + + select (p_VideoCallType) { + case (C26) { + v_SDP_PrecondionAttributes_Audio := v_SDP_PrecondionAttributes_Video; + } + case (AddVideo) { + v_SDP_PrecondionAttributes_Audio := cr_SDP_PrecondionAttributes(c_sendrecv, c_sendrecv, c_mandatory, c_mandatory); + } + } + + return f_IMS_BuildSDP_AudioVideo_RX(-, + cr_SDP_Media_Audio(p_FmtAudio), + v_SDP_MediaAttributes_Audio, + v_SDP_PrecondionAttributes_Audio, + cr_SDP_Media_Video(p_FmtVideo), + v_SDP_MediaAttributes_Video, + v_SDP_PrecondionAttributes_Video); + } + +} diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Templates.ttcn similarity index 63% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Templates.ttcn index 24d67e7..72824d5 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SDP_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_SDP_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 13:17:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14487 $ /******************************************************************************/ module IMS_SDP_Templates { @@ -33,15 +33,16 @@ module IMS_SDP_Templates { template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_AnyCodec := cr_RTPMAP_Codec(pattern "AMR*"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT) any AMR codec ("AMR[/]*" or "AMR-WB[/]*") @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_Any_RX_Pattern sic@ */ - template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_8000 := cr_RTPMAP_Codec("AMR", "8000", "1" ifpresent); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_8000 := cr_RTPMAP_Codec("AMR", "8000", "1" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_8000_RX_Pattern sic@ */ - template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_16000 := cr_RTPMAP_Codec("AMR-WB", "16000", "1" ifpresent); /* @status APPROVED (IMS) + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_AMR_16000 := cr_RTPMAP_Codec("AMR-WB", "16000", "1" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_16000_RX_Pattern sic@ */ + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_EVS_16000 := cr_RTPMAP_Codec("EVS", "16000", "1" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_TelephoneEvent := - cr_RTPMAP_Codec("telephone-event", pattern "([0-9]+)", pattern "([0-9]+)" ifpresent); /* @status APPROVED (IMS, LTE_A) + cr_RTPMAP_Codec("telephone-event", pattern "([0-9]+)", pattern "([0-9]+)" ifpresent); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) @sic R5s130798 change 5 - MCC160 Comment sic@ @sic R5w140113, R5w140009: replaces tsc_CODEC_TelephoneEvent_RX_Pattern sic@ */ - template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_H264_90000 := cr_RTPMAP_Codec("H264", "90000"); + template (present) SDP_attribute_rtpmap_codec cr_RTPMAP_H264_90000 := cr_RTPMAP_Codec("H264", "90000"); /* @status APPROVED (IMS) */ template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_Codec(template (value) charstring p_Encoding, template (value) charstring p_ClockRate, @@ -54,50 +55,92 @@ module IMS_SDP_Templates { template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_AMR_8000 := cs_RTPMAP_Codec("AMR", "8000", "1"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_8000_TX sic@ */ - template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_AMR_16000 := cs_RTPMAP_Codec("AMR-WB", "16000", "1"); /* @status APPROVED (IMS) + template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_AMR_16000 := cs_RTPMAP_Codec("AMR-WB", "16000", "1"); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) @sic R5w140113, R5w140009: replaces tsc_CODEC_AMR_16000_TX sic@ */ - template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_H264_90000 := cs_RTPMAP_Codec("H264", "90000"); + template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_H264_90000 := cs_RTPMAP_Codec("H264", "90000"); /* @status APPROVED (IMS) */ + + template (value) SDP_attribute_rtpmap_codec cs_RTPMAP_EVS_16000 := cs_RTPMAP_Codec("EVS", "16000", "1"); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ // FMTP: template (value) SDP_attribute_fmtp_format_specific_params cs_Fmtp_ParamList(template (value) SemicolonParam_List p_ParamList) := {paramList := p_ParamList}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SDP_attribute_fmtp_format_specific_params cr_Fmtp_ParamList(template (present) SemicolonParam_List p_ParamList) := {paramList := p_ParamList}; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (present) SDP_attribute_fmtp_format_specific_params cr_Fmtp_ParamList(template (present) SemicolonParam_List p_ParamList) := {paramList := p_ParamList}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (value) SDP_attribute_fmtp_format_specific_params crs_Fmtp_UnstructuredParams(charstring p_ParamString) := {unstructured := p_ParamString}; // audio - format specific parameters template (value) GenericParam cs_AMR_ModeChangeCapability := cs_GenericParam("mode-change-capability", "2"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenericParam cr_AMR_ModeChangeCapability := f_GenericParam_AsTX(cs_AMR_ModeChangeCapability); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (present) GenericParam cr_AMR_ModeChangeCapability := f_GenericParam_AsTX(cs_AMR_ModeChangeCapability); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ template (value) GenericParam cs_AMR_MaxRed := cs_GenericParam("max-red", "220"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) GenericParam cr_AMR_MaxRed := cr_GenericParam("max-red", pattern "[0-9]+"); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) + template (present) GenericParam cr_AMR_MaxRed := cr_GenericParam("max-red", pattern "[0-9]+"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5-141114: in UL max-red can be any value within 0..220 sic@ */ + template (value) GenericParam cs_EVS_BrSend(charstring p_Value) := cs_GenericParam("br-send", p_Value); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_BrRecv(charstring p_Value) := cs_GenericParam("br-recv", p_Value); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_Bw := cs_GenericParam("bw", "swb"); /* @sic R5-153999 sic@ + @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_BwSend := cs_GenericParam("bw-send", "swb"); /* @sic R5-153999 sic@ + @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_EVS_BwRecv := cs_GenericParam("bw-recv", "swb"); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) SemicolonParam_List cs_Fmtp_AudioParamsDef := {cs_AMR_ModeChangeCapability, cs_AMR_MaxRed}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SemicolonParam_List cr_Fmtp_AudioParamsDef := {cr_AMR_ModeChangeCapability, cr_AMR_MaxRed, *}; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (value) SemicolonParam_List cs_EVS_Fmtp_AudioParamsDef := {cs_EVS_Bw, cs_EVS_BwSend, cs_EVS_BwRecv, cs_AMR_MaxRed}; /* @sic R5-153999 sic@ + @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + template (value) SemicolonParam_List cs_EVS_Fmtp_AudioParamsExt(charstring p_BrSendVal := "8-48", + charstring p_BrRecvVal := "32-48") := + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + cs_EVS_BrSend(p_BrSendVal), + cs_EVS_BrRecv(p_BrRecvVal), + cs_EVS_Bw, + cs_EVS_BwSend, + cs_EVS_BwRecv, + cs_AMR_MaxRed + }; + + template (present) SemicolonParam_List cr_Fmtp_AudioParamsDef := {cr_AMR_ModeChangeCapability, cr_AMR_MaxRed, *}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_EVS_Fmtp_AudioParamsDef := {cr_AMR_MaxRed, *}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ template (value) SDP_attribute_fmtp_format_specific_params cs_AMR_Fmtp_DefaultParameters := cs_Fmtp_ParamList(cs_Fmtp_AudioParamsDef); /* @sic R5w140113, R5w140009: replaces tsc_AMR_Fmtp_DefaultParameters_TX sic@ @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT)*/ + template (present) SDP_attribute_fmtp_format_specific_params cr_AMR_Fmtp_DefaultParameters := cr_Fmtp_ParamList(cr_Fmtp_AudioParamsDef); /* @sic R5w140113, R5w140009: replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ - @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SDP_attribute_fmtp_format_specific_params cr_EVS_Fmtp_DefaultParameters := cr_Fmtp_ParamList(cr_EVS_Fmtp_AudioParamsDef); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ // video - format specific parameters - const charstring tsc_IMS_Video_Fmtp_ProfileLevelId_Def := "42e00c"; - template (value) GenericParam cs_Video_Fmtp_ProfileLevelId := cs_GenericParam("profile-level-id", tsc_IMS_Video_Fmtp_ProfileLevelId_Def); - template (present) GenericParam cr_Video_Fmtp_ProfileLevelId(template (present) charstring p_ProfileLevelId) := cr_GenericParam("profile-level-id", p_ProfileLevelId); /* @sic R5-144595 sic@ */ - template (value) GenericParam cs_Video_Fmtp_SpropParameterSets := cs_GenericParam("sprop-parameter-sets", "J0LgDJWgUH6Af1A=,KM46gA=="); - template (present) GenericParam cr_Video_Fmtp_SpropParameterSets := f_GenericParam_AsTX(cs_Video_Fmtp_SpropParameterSets); - template (value) GenericParam cs_Video_Fmtp_PacketizationMode := cs_GenericParam("packetization-mode", "0"); - template (present) GenericParam cr_Video_Fmtp_PacketizationMode := f_GenericParam_AsTX(cs_Video_Fmtp_PacketizationMode); - template (value) SemicolonParam_List cs_Fmtp_VideoParamsDef := {cs_Video_Fmtp_ProfileLevelId, cs_Video_Fmtp_SpropParameterSets}; - template (present) SemicolonParam_List cr_Fmtp_VideoParamsDef := {cr_Video_Fmtp_ProfileLevelId(?), cr_Video_Fmtp_SpropParameterSets, *}; - template (value) SemicolonParam_List cs_Fmtp_VideoParamsWithPacketizationMode := {cs_Video_Fmtp_PacketizationMode, cs_Video_Fmtp_ProfileLevelId, cs_Video_Fmtp_SpropParameterSets}; - template (present) SemicolonParam_List cr_Fmtp_VideoParamsWithPacketizationMode := {cr_Video_Fmtp_PacketizationMode, cr_Video_Fmtp_ProfileLevelId(tsc_IMS_Video_Fmtp_ProfileLevelId_Def), cr_Video_Fmtp_SpropParameterSets, *}; - template (present) SDP_attribute_fmtp_format_specific_params cr_Video_Fmtp_DefaultParameters := cr_Fmtp_ParamList(cr_Fmtp_VideoParamsDef); + const charstring tsc_IMS_Video_Fmtp_ProfileLevelId_Def := "42e00c"; /* @status APPROVED (IMS) */ + const charstring tsc_IMS_Video_Fmtp_SpropParameterSets_Def := "J0LgDJWgUH6Af1A=,KM46gA=="; /* @status APPROVED (IMS) */ + const charstring tsc_IMS_Video_Fmtp_PacketizationMode_Def := "0"; /* @status APPROVED (IMS) */ - const charstring tsc_SDP_FmtAudio := "97"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - const charstring tsc_SDP_FmtVideo := "98"; + template (value) GenericParam cs_Video_Fmtp_ProfileLevelId(charstring p_Value := tsc_IMS_Video_Fmtp_ProfileLevelId_Def) := cs_GenericParam("profile-level-id", p_Value); /* @status APPROVED (IMS) */ + template (present) GenericParam cr_Video_Fmtp_ProfileLevelId(template (present) charstring p_Value := ?) := cr_GenericParam("profile-level-id", p_Value); /* @sic R5-144595 sic@ + @status APPROVED (IMS)*/ + template (value) GenericParam cs_Video_Fmtp_SpropParameterSets(charstring p_Value := tsc_IMS_Video_Fmtp_SpropParameterSets_Def) := cs_GenericParam("sprop-parameter-sets", p_Value); /* @status APPROVED (IMS) */ + + template (value) GenericParam cs_Video_Fmtp_PacketizationMode(charstring p_Value := tsc_IMS_Video_Fmtp_PacketizationMode_Def) := cs_GenericParam("packetization-mode", p_Value); /* @status APPROVED (IMS) */ + template (present) GenericParam cr_Video_Fmtp_PacketizationMode(template (present) charstring p_Value := ?) := cr_GenericParam("packetization-mode", p_Value); /* @status APPROVED (IMS) */ + + template (value) SemicolonParam_List cs_Fmtp_VideoParamsDef := {cs_Video_Fmtp_PacketizationMode, cs_Video_Fmtp_ProfileLevelId, cs_Video_Fmtp_SpropParameterSets}; /* @status APPROVED (IMS) */ + + template (present) SemicolonParam_List cr_Fmtp_VideoParamsMO_Def := + { /* @status APPROVED (IMS) + @sic R5-150703: any ProfileLevelId; all other parameters are optional sic@ */ + cr_Video_Fmtp_ProfileLevelId, + * + }; + + template (present) SemicolonParam_List cr_Fmtp_VideoParamsMT_Def := + { /* @status APPROVED (IMS) */ + /* @sic R5s141329 - MCC160 implementation sic@ + @sic R5-150703: any ProfileLevelId; SpropParameterSets not mandatory sic@ */ + cr_Video_Fmtp_PacketizationMode(tsc_IMS_Video_Fmtp_PacketizationMode_Def), + cr_Video_Fmtp_ProfileLevelId, + * + }; + + template (present) SDP_attribute_fmtp_format_specific_params cr_Video_Fmtp_DefaultParametersMO := cr_Fmtp_ParamList(cr_Fmtp_VideoParamsMO_Def); /* @status APPROVED (IMS) */ + template (present) SDP_attribute_fmtp_format_specific_params cr_Video_Fmtp_DefaultParametersMT := cr_Fmtp_ParamList(cr_Fmtp_VideoParamsMT_Def); /* @status APPROVED (IMS) */ - const charstring tsc_SDP_SessionId := "1111111111"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_SDP_SessionVersion1 := "1111111111"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_SDP_SessionVersion2 := "1111111112"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + const charstring tsc_SDP_FmtAudio := "97"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + const charstring tsc_SDP_FmtVideo := "98"; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ template (present) charstring cr_SDP_AnyMediaFormatDescr := pattern "[0-9]#(2,3)"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ @@ -108,7 +151,7 @@ module IMS_SDP_Templates { * @param p_SDP_Attribute * @param p_Condition (default value: true) * @return template (omit) SDP_attribute_list - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_SDP_Attributes_Add_TX(template (omit) SDP_attribute_list p_SDP_Attribute_List, template (omit) SDP_attribute p_SDP_Attribute, @@ -127,6 +170,73 @@ module IMS_SDP_Templates { } return v_SDP_Attribute_List; } + + /* + * @desc concatinate list of SDP attributes + * @param p_SDP_Attribute_List1 + * @param p_SDP_Attribute_List2 + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_Attributes_Concat_TX(template (omit) SDP_attribute_list p_SDP_Attribute_List1, + template (omit) SDP_attribute_list p_SDP_Attribute_List2) return template (omit) SDP_attribute_list + { + var template (omit) SDP_attribute_list v_SDP_Attribute_List := p_SDP_Attribute_List1; + var SDP_attribute_list v_SDP_Attribute_List2; + var integer n; + var integer k; + + if (isvalue(p_SDP_Attribute_List2)) { + v_SDP_Attribute_List2 := valueof(p_SDP_Attribute_List2); + n := lengthof(v_SDP_Attribute_List2); + for (k:=0; k < n; k:=k+1) { + v_SDP_Attribute_List := f_SDP_Attributes_Add_TX(v_SDP_Attribute_List, v_SDP_Attribute_List2[k]); + } + } + return v_SDP_Attribute_List; + } + + /* + * @desc add attribute to list of attributes + * @param p_SDP_Attribute_List + * @param p_SDP_Attribute + * @param p_Condition (default value: true) + * @return template (present) SDP_attribute_list + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_Attributes_Add_RX(template (present) SDP_attribute_list p_SDP_Attribute_List, + template (present) SDP_attribute p_SDP_Attribute, + boolean p_Condition := true) return template (present) SDP_attribute_list + { + var template (present) SDP_attribute_list v_SDP_Attribute_List := p_SDP_Attribute_List; + var integer i := 0; + + if (p_Condition) { + i := lengthof(v_SDP_Attribute_List); + v_SDP_Attribute_List[i] := p_SDP_Attribute; + } + return v_SDP_Attribute_List; + } + + /* + * @desc concatinate list of SDP attributes + * @param p_SDP_Attribute_List1 + * @param p_SDP_Attribute_List2 + * @return template (present) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_Attributes_Concat_RX(template (present) SDP_attribute_list p_SDP_Attribute_List1, + template (present) SDP_attribute_list p_SDP_Attribute_List2) return template (present) SDP_attribute_list + { + var template (present) SDP_attribute_list v_SDP_Attribute_List := p_SDP_Attribute_List1; + var integer i := lengthof(p_SDP_Attribute_List1); + var integer k; + + for (k:=0; k < lengthof(p_SDP_Attribute_List2); k:=k+1) { + v_SDP_Attribute_List[i+k] := p_SDP_Attribute_List2[k]; + } + return v_SDP_Attribute_List; + } /* * @desc exchange attribute in given attribute list @@ -134,7 +244,7 @@ module IMS_SDP_Templates { * @param p_AttributeToBeChanged * @param p_NewAttribute * @return template (omit) SDP_attribute_list - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, LTE, LTE_A) */ function f_SDP_ExchangeAttribute(template (omit) SDP_attribute_list p_AttributeList, template (present) SDP_attribute p_AttributeToBeChanged, @@ -159,7 +269,7 @@ module IMS_SDP_Templates { * @param p_AttributeList * @param p_Attribute * @return template (omit) SDP_attribute - * @status APPROVED (IMS, LTE_A) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ function f_SDP_AttributeList_GetAttribute(template (omit) SDP_attribute_list p_AttributeList, template (present) SDP_attribute p_Attribute) return template (omit) SDP_attribute @@ -198,6 +308,26 @@ module IMS_SDP_Templates { return v_Result; } + /* + * @desc check all media streams to have the given attribute + * @param p_Media_Desc_List + * @param p_Attribute + * @return boolean + * @status APPROVED (IMS) + */ + function f_SDP_CheckMediaListAttributes(template (value) SDP_media_desc_list p_Media_Desc_List, + template (present) SDP_attribute p_Attribute) return boolean + { + var integer i; + + for (i := 0; i < lengthof(p_Media_Desc_List); i:=i+1) { + if (not f_SDP_AttributeList_CheckAttribute(p_Media_Desc_List[i].attributes, p_Attribute)) { + return false; + } + } + return true; + } + /* * @desc get a specific fmt out of the fmts list in a media description of the initial request (in general INVITE) of the dialog; * when p_RtpmapCodecInfo == omit => rtpmap attributes are not checked @@ -246,7 +376,7 @@ module IMS_SDP_Templates { * @param p_SDP_Media_Desc * @param p_FmtpParameters (default value: cr_AMR_Fmtp_DefaultParameters) * @return charstring - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_SDP_MediaDescr_GetAMR_8000_1(SDP_media_desc p_SDP_Media_Desc, template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_AMR_Fmtp_DefaultParameters) return charstring @@ -254,6 +384,33 @@ module IMS_SDP_Templates { return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_AMR_8000, p_FmtpParameters); } + /* + * @desc get AMR-WB/16000 audio codec + * @param p_SDP_Media_Desc + * @param p_FmtpParameters (default value: cr_AMR_Fmtp_DefaultParameters) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_SDP_MediaDescr_GetAMR_16000_1(SDP_media_desc p_SDP_Media_Desc, + template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_AMR_Fmtp_DefaultParameters) return charstring + { /* @sic R5w140113, R5w140009: cr_AMR_Fmtp_DefaultParameters replaces tsc_AMR_Fmtp_DefaultParameters_RX sic@ */ + return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_AMR_16000, p_FmtpParameters); + } + + /* + * @desc get EVS audio codec + * @param p_SDP_Media_Desc + * @param p_FmtpParameters (default value: cr_EVS_Fmtp_DefaultParameters) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) + */ + function f_SDP_MediaDescr_GetEVS_16000_1(SDP_media_desc p_SDP_Media_Desc, + template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_EVS_Fmtp_DefaultParameters) + return charstring + { + return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_EVS_16000, p_FmtpParameters); + } + /* * @desc return (first) AMR of given media description * @param p_SDP_Media_Desc @@ -265,8 +422,15 @@ module IMS_SDP_Templates { return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_AMR_AnyCodec); } + /* + * @desc return video codec of given media description + * @param p_SDP_Media_Desc + * @param p_FmtpParameters (default value: cr_Video_Fmtp_DefaultParametersMO) + * @return charstring + * @status APPROVED (IMS) + */ function f_SDP_MediaDescr_GetH264_90000(SDP_media_desc p_SDP_Media_Desc, - template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_Video_Fmtp_DefaultParameters) return charstring + template SDP_attribute_fmtp_format_specific_params p_FmtpParameters := cr_Video_Fmtp_DefaultParametersMO) return charstring { /* get default video codec */ return f_SDP_MediaDescr_GetMediaFormat(p_SDP_Media_Desc, cr_RTPMAP_H264_90000, p_FmtpParameters); } @@ -278,7 +442,7 @@ module IMS_SDP_Templates { * @param p_BandwidthList * @param p_Modifier * @return integer - * @status APPROVED (IMS, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ function f_SDP_BandwidthList_GetBandwidth(SDP_bandwidth_list p_BandwidthList, charstring p_Modifier) return integer @@ -294,6 +458,33 @@ module IMS_SDP_Templates { return 0; } + //---------------------------------------------------------------------------- + /* + * @desc return BandwidthList: if the given SDP_media_field refers to a port number of 0 (=> release of the media stream) the UE does not need to provide and bandwidth information + * @param p_SDP_Media_Field + * @param p_AS + * @param p_RS + * @param p_RR + * @return template SDP_bandwidth_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_SDP_Media_Desc_BandwidthList(template (present) SDP_media_field p_SDP_Media_Field, + template (present) integer p_AS := ?, + template (present) integer p_RS := ?, + template (present) integer p_RR := ?) return template SDP_bandwidth_list + { /* @sic R5s150704, R5s150751 - additional changes: new parameters p_AS, p_RS, p_RR sic@ */ + var template SDP_bandwidth_list v_BandwidthList := cr_SDP_Bandwidth_List_Media(p_AS, p_RS, p_RR); + var integer v_PortNumber; + + if (isvalue(p_SDP_Media_Field.ports.port_number)) { + v_PortNumber := valueof(p_SDP_Media_Field.ports.port_number); + if (v_PortNumber == 0) { // => release of the media stream + v_BandwidthList := *; + } + } + return v_BandwidthList; + } + //---------------------------------------------------------------------------- template (value) SDP_attribute cs_SDP_Attribute_rtpmap(charstring p_PayloadType, @@ -342,7 +533,7 @@ module IMS_SDP_Templates { }; template (present) SDP_attribute cr_SDP_Attribute_ptime(template (present) charstring p_Value := "20") := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ ptime := { attr_value := p_Value } @@ -357,7 +548,7 @@ module IMS_SDP_Templates { }; template (present) SDP_attribute cr_SDP_Attribute_maxptime(template (present) charstring p_Value := "240") := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A) */ /* @sic R5w140113, R5w140009 sic@ */ maxptime := { attr_value := p_Value @@ -380,12 +571,21 @@ module IMS_SDP_Templates { }; template (value) SDP_attribute cs_SDP_Attribute_inactive := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ inactive := {} }; + template (value) SDP_attribute cs_SDP_Attribute_content(template (value) charstring p_Value) := + { /* @status APPROVED (IMS) */ + content := { + { + p_Value + } + } + }; + template (present) SDP_attribute cr_SDP_Attribute_sendrecv := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ sendrecv := {} // @sic R5s130586 change 2 sic@ }; @@ -400,17 +600,19 @@ module IMS_SDP_Templates { }; template (present) SDP_attribute cr_SDP_Attribute_inactive := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ inactive := {} // @sic R5s130586 change 1 sic@ }; template (present) SDP_attribute cr_SDP_Attribute_AnySendRecvMode := (cr_SDP_Attribute_sendrecv, cr_SDP_Attribute_recvonly, cr_SDP_Attribute_sendonly, cr_SDP_Attribute_inactive); /* @status APPROVED (IMS) */ + //---------------------------------------------------------------------------- + // precondition attributes //---------------------------------------------------------------------------- template (value) SDP_attribute cs_SDP_Attribute_conf_qos(charstring p_StatusType := c_remote, charstring p_Direction := c_sendrecv) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ conf := { preconditionType := c_qos, statusType := p_StatusType, @@ -430,7 +632,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_curr_qos(charstring p_StatusType, charstring p_Direction := c_none) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ curr := { preconditionType := c_qos, statusType := p_StatusType, @@ -440,7 +642,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_curr_qos(template (present) charstring p_StatusType, template (present) charstring p_Direction := c_none) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ curr := { preconditionType := c_qos, statusType := p_StatusType, @@ -451,7 +653,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_des_qos(charstring p_Strength, charstring p_StatusType, charstring p_Direction := c_sendrecv) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ des := { preconditionType := c_qos, strength := p_Strength, // @sic R5s120530 change 3.4 sic@ @@ -463,7 +665,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_des_qos(template (present) charstring p_Strength, template (present) charstring p_StatusType, template (present) charstring p_Direction := c_sendrecv) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ des := { preconditionType := c_qos, strength := p_Strength, @@ -472,9 +674,120 @@ module IMS_SDP_Templates { } }; + template (value) SDP_attribute_list cs_SDP_PrecondionAttributes(charstring p_DirectionLocal, + charstring p_DirectionRemote, + charstring p_StrengthLocal := c_mandatory, + charstring p_StrengthRemote := c_mandatory) := + { /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ + cs_SDP_Attribute_curr_qos(c_local, p_DirectionLocal), + cs_SDP_Attribute_curr_qos(c_remote, p_DirectionRemote), + cs_SDP_Attribute_des_qos(p_StrengthLocal, c_local), + cs_SDP_Attribute_des_qos(p_StrengthRemote, c_remote) + }; + + template (present) SDP_attribute_list cr_SDP_PrecondionAttributes(template (present) charstring p_DirectionLocal, + template (present) charstring p_DirectionRemote, + template (present) charstring p_StrengthLocal := c_mandatory, + template (present) charstring p_StrengthRemote := c_mandatory) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + cr_SDP_Attribute_curr_qos(c_local, p_DirectionLocal), + cr_SDP_Attribute_curr_qos(c_remote, p_DirectionRemote), + cr_SDP_Attribute_des_qos(p_StrengthLocal, c_local), + cr_SDP_Attribute_des_qos(p_StrengthRemote, c_remote) + }; + + /* + * @desc returns default attributes for audio (at least rtpmap, fmtp) + * @param p_FmtAudio + * @param p_AddMediaAttributes (default value: omit) + * @return template (value) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_AudioCommon(charstring p_FmtAudio, + template (omit) SDP_attribute_list p_AddMediaAttributes := omit) return template (value) SDP_attribute_list + { + var template (value) SDP_attribute_list v_MediaAttributes := { + cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_AMR_8000), + cs_SDP_Attribute_fmtp(p_FmtAudio, cs_AMR_Fmtp_DefaultParameters) + }; + return valueof(f_SDP_Attributes_Concat_TX(v_MediaAttributes, p_AddMediaAttributes)); + } + + /* + * @desc returns default attributes for EVS audio (at least rtpmap, fmtp) + * @param p_FmtAudio + * @param p_FmtpParameterList (default value: cs_EVS_Fmtp_AudioParamsDef) + * @param p_AddMediaAttributes (default value: omit) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_EVS_AudioCommon(charstring p_FmtAudio, + template (value) SemicolonParam_List p_FmtpParameterList := cs_EVS_Fmtp_AudioParamsDef, + template (omit) SDP_attribute_list p_AddMediaAttributes := omit) return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_MediaAttributes; + var template (value) SDP_attribute_fmtp_format_specific_params v_FmtpParameters := cs_Fmtp_ParamList(p_FmtpParameterList); + + v_MediaAttributes:= { + cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_EVS_16000), + cs_SDP_Attribute_fmtp(p_FmtAudio, v_FmtpParameters) + }; + return f_SDP_Attributes_Concat_TX(v_MediaAttributes, p_AddMediaAttributes); + } + + /* + * @desc returns default media attributes for audio (rtpmap, fmtp, ptime, maxptime) + * @param p_FmtAudio + * @param p_FmtpParameterList (default value: cs_EVS_Fmtp_AudioParamsDef) + * @param p_FmtpParameters (default value: cs_EVS_Fmtp_DefaultParameters) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_AudioDef(charstring p_FmtAudio) return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_AddMediaAttributes := {cs_SDP_Attribute_ptime, cs_SDP_Attribute_maxptime}; + return f_SDP_MediaAttributes_AudioCommon(p_FmtAudio, v_AddMediaAttributes); + } + + /* + * @desc returns default media attributes for audio (rtpmap, fmtp, ptime, maxptime) + * @param p_FmtAudio + * @param p_FmtpParameters (default value: cs_EVS_Fmtp_DefaultParameters) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, LTE, LTE_A) + */ + function f_SDP_MediaAttributes_EVS_AudioDef(charstring p_FmtAudio, + template (value) SemicolonParam_List p_FmtpParameterList := cs_EVS_Fmtp_AudioParamsDef) return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_AddMediaAttributes := {cs_SDP_Attribute_ptime, cs_SDP_Attribute_maxptime}; + return f_SDP_MediaAttributes_EVS_AudioCommon(p_FmtAudio, p_FmtpParameterList, v_AddMediaAttributes); + } + + /* + * @desc returns default attributes for audio (at least rtpmap, fmtp) + * @param p_FmtAudio + * @param p_AddMediaAttributes (default value: omit) + * @return template (omit) SDP_attribute_list + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_SDP_MediaAttributes_AMR_WB_AudioCommon(charstring p_FmtAudio, + template (omit) SDP_attribute_list p_AddMediaAttributes := omit) + return template (omit) SDP_attribute_list + { + var template (value) SDP_attribute_list v_MediaAttributes := { + cs_SDP_Attribute_rtpmap(p_FmtAudio, cs_RTPMAP_AMR_16000), + cs_SDP_Attribute_fmtp(p_FmtAudio, cs_AMR_Fmtp_DefaultParameters) + }; + return f_SDP_Attributes_Concat_TX(v_MediaAttributes, p_AddMediaAttributes); + } + + //---------------------------------------------------------------------------- + // other attributes + //---------------------------------------------------------------------------- + template (value) SDP_attribute cs_SDP_Attribute_ecn_capable_rtp(charstring p_InitVal, charstring p_ParmVal) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ ecn_capable_rtp := { init_list := { p_InitVal }, parm_list := { p_ParmVal } @@ -483,7 +796,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_rtcp_fb(charstring p_Rtcp_fb_pt, charstring p_Rtcp_fb_val) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ rtcp_fb := { rtcp_fb_pt := p_Rtcp_fb_pt, rtcp_fb_val := p_Rtcp_fb_val @@ -491,7 +804,7 @@ module IMS_SDP_Templates { }; template (value) SDP_attribute cs_SDP_Attribute_rtcp_xr(charstring p_XR_Format) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ rtcp_xr := { xr_format_list := { p_XR_Format @@ -500,7 +813,7 @@ module IMS_SDP_Templates { }; template (value) SDP_attribute cs_SDP_Attribute_3ge2ae(charstring p_Indicator) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ e2ae := { indicator := p_Indicator } @@ -509,7 +822,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_crypto(charstring p_Tag, charstring p_Suite, charstring p_KeyParams) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ crypto := { tag := p_Tag, crypto_suite := p_Suite, @@ -529,7 +842,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_pcfg(integer p_ConfigNumber, charstring p_PotCfg) := - { + { /* @status APPROVED (IMS) */ pcfg := { config_number := p_ConfigNumber, pot_cfg_list := { p_PotCfg, * } @@ -538,7 +851,7 @@ module IMS_SDP_Templates { template (present) SDP_attribute cr_SDP_Attribute_tcap(integer p_TrprCapNumber, charstring p_Proto) := - { + { /* @status APPROVED (IMS) */ tcap := { trpr_cap_num := p_TrprCapNumber, proto_list := { p_Proto, * } @@ -547,7 +860,7 @@ module IMS_SDP_Templates { template (value) SDP_attribute cs_SDP_Attribute_acfg(integer p_ConfigNumber, charstring p_SelCfg) := - { + { /* @status APPROVED (IMS) */ acfg := { config_number := p_ConfigNumber, sel_cfg_list := { p_SelCfg } @@ -583,7 +896,7 @@ module IMS_SDP_Templates { template (present) SDP_bandwidth_list cr_SDP_Bandwidth_List_Media(template (present) integer p_AS := ?, template (present) integer p_RS := ?, template (present) integer p_RR := ?) := - { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ cr_SDP_Bandwidth("AS", p_AS), cr_SDP_Bandwidth("RS", p_RS), cr_SDP_Bandwidth("RR", p_RR) @@ -669,7 +982,9 @@ module IMS_SDP_Templates { template (value) SDP_media_field cs_SDP_Media_Video(charstring p_Fmt, integer p_LocalPort := tsc_IMS_MediaPort_M2, - charstring p_Transport := c_rtpAvp) := + charstring p_Transport := c_rtpAvpf) := + /* @status APPROVED (IMS) */ + /* @sic R5s141329 change 2.1 and R5s141336 change 2.3: c_rtpAvpf instead of c_rtpAvp as default value for p_Transport sic@ */ cs_SDP_Media(c_video, p_LocalPort, p_Transport, {p_Fmt}); @@ -703,16 +1018,21 @@ module IMS_SDP_Templates { template (present) charstring p_Fmt2 := cr_SDP_AnyMediaFormatDescr) := cr_SDP_Media(c_text, -, -, cr_SDP_FmtList_AtLeastTwo(p_Fmt1, p_Fmt2)); - template (present) SDP_media_field cr_SDP_Media_Video(template (present) charstring p_Fmt := cr_SDP_AnyMediaFormatDescr) := - cr_SDP_Media(c_video, -, -, cr_SDP_FmtList_AtLeastOne(p_Fmt)); + template (present) SDP_media_field cr_SDP_Media_Video(template (present) charstring p_Fmt := cr_SDP_AnyMediaFormatDescr, + template (present) charstring p_Transport := c_rtpAvpf) := + /* @status APPROVED (IMS) */ + /* @sic R5s141221 change 2.3: p_Transport sic@ */ + /* @sic R5s141329 change 1 and R5s141336 change 1: c_rtpAvpf as default value for p_Transport sic@ */ + cr_SDP_Media(c_video, -, p_Transport, cr_SDP_FmtList_AtLeastOne(p_Fmt)); //---------------------------------------------------------------------------- - template (value) SDP_Origin cs_SDP_Origin(charstring p_SessionId := tsc_SDP_SessionId, - charstring p_SessionVersion := tsc_SDP_SessionVersion1, + template (value) SDP_Origin cs_SDP_Origin(charstring p_SessionId, + charstring p_SessionVersion, template (value) charstring p_AddrType, template (value) charstring p_IPAddr) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @sic R5-150707: new parameter p_SessionId sic@ */ user_name := "-", session_id := p_SessionId, session_version := p_SessionVersion, @@ -721,8 +1041,8 @@ module IMS_SDP_Templates { addr := p_IPAddr }; - template (present) SDP_Origin cr_SDP_Origin(template (present) charstring p_AddrType, - template (present) charstring p_IPAddr) := + template (present) SDP_Origin cr_SDP_Origin(template (present) charstring p_AddrType := ?, + template (present) charstring p_IPAddr := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ user_name := ?, session_id := ?, @@ -761,8 +1081,8 @@ module IMS_SDP_Templates { //============================================================================ template (value) SDP_media_desc cs_SDP_Media_Desc(template (value) SDP_media_field p_SDP_Media_Field, - template (value) SDP_bandwidth_list p_SDP_Bandwidth_List, - template (omit) SDP_attribute_list p_SDP_Attribute_List, + template (omit) SDP_bandwidth_list p_SDP_Bandwidth_List := omit, + template (omit) SDP_attribute_list p_SDP_Attribute_List := omit, template (omit) SDP_connection_list p_SDP_Connection_List := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ media_field := p_SDP_Media_Field, @@ -790,16 +1110,16 @@ module IMS_SDP_Templates { template (value) SDP_Message cs_SDP_Message_Common(template (value) SDP_Origin p_SDP_Origin, template (omit) SDP_connection p_SDP_Connection, - charstring p_Sessionname := tsc_SDP_NoSessionname, - template (value) SDP_bandwidth_list p_Bandwidth, + template (omit) SDP_bandwidth_list p_Bandwidth, template (value) SDP_time p_Time := cs_SDP_Time_0_0, template (omit) SDP_media_desc_list p_SDP_Media_Desc_List := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ /* @sic R5s130510 change 4 - additional change sic@ */ /* @sic R5-144700: default value removed for p_Bandwidth sic@ */ + /* @sic R5-150386: there is no reason anymore to provide a parameter for session_name anymore sic@ */ protocol_version := 0, // v-line origin := p_SDP_Origin, // o-line - session_name := p_Sessionname, // s-line + session_name := tsc_SDP_NoSessionname, // s-line information := omit, uri := omit, emails := omit, @@ -813,28 +1133,17 @@ module IMS_SDP_Templates { media_list := p_SDP_Media_Desc_List }; - template (value) SDP_Message cs_SDP_Message_Def(template (value) SDP_Origin p_SDP_Origin, - template (omit) SDP_connection p_SDP_Connection, - charstring p_Sessionname := tsc_SDP_NoSessionname, - integer p_BandwidthAS := 37, - template (value) SDP_media_desc p_SDP_Media_Desc) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - /* @sic R5s130510 change 4 - additional change sic@ */ - /* @sic R5-144700: new parameter p_BandwidthAS set to 37 per default sic@ */ - cs_SDP_Message_Common(p_SDP_Origin, p_SDP_Connection, p_Sessionname, cs_SDP_Bandwidth_List_AS(p_BandwidthAS), -, { p_SDP_Media_Desc }); - - template (present) SDP_Message cr_SDP_Message_Common(template (present) charstring p_AddrType := ?, template (present) charstring p_IPAddrOrigin := ?, template (present) charstring p_IPAddrConnection := ?, - template (present) charstring p_Sessionname := ?, // @sic R5-130751 sic@ template SDP_bandwidth_list p_Bandwidth := cr_SDP_Bandwidth_List_AS, template (present) SDP_time p_Time := cr_SDP_Time_0_0, template SDP_media_desc_list p_SDP_Media_Desc_List := *) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @sic R5-150386: there is no reason anymore to provide a parameter for session_name anymore sic@ */ protocol_version := 0, // v-line origin := cr_SDP_Origin(p_AddrType, p_IPAddrOrigin), // o-line - session_name := p_Sessionname, // s-line + session_name := ?, // s-line information := omit, uri := omit, emails := omit, @@ -848,18 +1157,4 @@ module IMS_SDP_Templates { media_list := p_SDP_Media_Desc_List }; - template (present) SDP_Message cr_SDP_Message_Def(template (present) charstring p_AddrType := ?, - template (present) charstring p_IPAddrOrigin := ?, - template (present) charstring p_IPAddrConnection := ?, - template (present) SDP_media_desc p_SDP_Media_Desc) := - /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - cr_SDP_Message_Common(p_AddrType, p_IPAddrOrigin, p_IPAddrConnection, -, -, -, { p_SDP_Media_Desc }); - - template (present) SDP_Message cr_SDP_Message_AnySession(template (present) charstring p_AddrType := ?, - template (present) charstring p_IPAddrOrigin := ?, - template (present) charstring p_IPAddrConnection := ?, - template (present) SDP_media_desc p_SDP_Media_Desc) := - /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - cr_SDP_Message_Common(p_AddrType, p_IPAddrOrigin, p_IPAddrConnection, -, -, cr_SDP_Time_Any, { p_SDP_Media_Desc }); - } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SIP_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_SIP_Templates.ttcn similarity index 82% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_SIP_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_SIP_Templates.ttcn index 072b383..b782402 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_SIP_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_SIP_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 12:36:16 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12204 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IMS_SIP_Templates { @@ -16,44 +16,77 @@ module IMS_SIP_Templates { import from IMS_CommonDefs all; import from IMS_CommonTemplates all; import from IP_ASP_TypeDefs all; + import from Parameters all; import from LibSip_Common all; import from LibSip_MessageBodyTypes all; import from LibSip_SIPTypesAndValues all; const charstring tsc_SEC_MECHANISM := "ipsec-3gpp"; /* Security Mechanism name - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ // Securiity algorithms for IPSEC - const charstring tsc_HMAC_MD5_96 := "hmac-md5-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_HMAC_SHA_1_96 := "hmac-sha-1-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - const charstring tsc_AKAv1_MD5 := "AKAv1-MD5"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const charstring tsc_HMAC_MD5_96 := "hmac-md5-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const charstring tsc_HMAC_SHA_1_96 := "hmac-sha-1-96"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const charstring tsc_AKAv1_MD5 := "AKAv1-MD5"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const charstring tsc_HTTP_MD5 := "MD5"; /* @status APPROVED (IMS) */ - const octetstring tsc_COLON_HEX := '3A'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const octetstring tsc_COLON_HEX := '3A'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) SemicolonParam_List cr_SemicolonParam_List_WithAnyTag := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const integer tsc_MESSAGE_CSeqValue := 42; /* @status APPROVED (IMS, LTE_A) */ + + /* + * @desc generate URN acc. to rules given by RFC 7254 + * @param p_IMEI (default value: px_IMEI_Def) + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_SIP_InstanceId(hexstring p_IMEI := px_IMEI_Def) return charstring + { + var charstring v_ImeiString := hex2str(p_IMEI); + var charstring v_InstanceId := ""; + + return v_InstanceId; + } + + template (present) GenericParam cr_FeatureParam_3gpp_icsi_ref := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_GenericParam_Common(tsc_IMS_FeatureParamId_3gpp_icsi_ref, cr_GenValueQuoted(cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref)); // @sic R5s120530 change 3.1, R5w140111, R5-142247 sic@ + + template (present) GenericParam cr_FeatureParam_Video := cr_GenericParam_Common("video", omit); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) SemicolonParam_List cr_SemicolonParam_List_WithAnyTag := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParam(c_tagId, *); - template (present) SemicolonParam_List cr_ExpiresInContactParams(template (present) charstring p_Expires := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_ExpiresInContactParams(template (present) charstring p_Expires := ?) := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParamWithValue("expires", p_Expires); - template (present) SemicolonParam_List cr_CPInstanceInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_SemicolonParam_List_OneSpecificParamWithValue("c-p-instance", "sip.instance=" & tsc_IMS_UEInstanceId); + template (present) SemicolonParam_List cr_CPInstanceInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamWithValue("+sip.instance", f_SIP_InstanceId()); /* @sic R5s141212, R5s150446 sic@ */ template (present) SemicolonParam_List cr_SMSParamInContactParams := /* @sic R5s120530 change 2.1 sic@ - @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParamNoValue("+g.3gpp.smsip"); - template (present) SemicolonParam_List cr_VideoInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_SemicolonParam_List_OneSpecificParamNoValue("video"); + template (present) SemicolonParam_List cr_VideoInContactParams := superset(cr_FeatureParam_Video); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) SemicolonParam_List cr_UriParameters_lr := superset(cr_GenericParam_Common("lr", omit)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SemicolonParam_List cr_UriParameters_gruu := superset(cr_GenericParam_Common("gr", cr_GenValueQuoted(tsc_IMS_PubGRUU_UriParameterValue))); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + - template (present) SemicolonParam_List cr_FeatureParam_3gpp_icsi_ref := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_SemicolonParam_List_OneSpecificParam(tsc_IMS_FeatureParamId_3gpp_icsi_ref, cr_GenValueQuoted(cs_IMS_EncodedFeatureParamValue_3gpp_icsi_ref)); // @sic R5s120530 change 3.1, R5w140111, R5-142247 sic@ + template (present) SemicolonParam_List cr_FeatureParamList_3gpp_icsi_ref := superset(cr_FeatureParam_3gpp_icsi_ref); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (present) SemicolonParam_List cr_SigCompParam := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SemicolonParam_List cr_RSRVCCInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamNoValue("+g.3gpp.cs2ps-srvcc"); + + template (present) SemicolonParam_List cr_RSRVCCAlertInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamNoValue("+g.3gpp.cs2ps-srvcc-alerting"); + + template (present) SemicolonParam_List cr_AccessTypeInContactParams := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_SemicolonParam_List_OneSpecificParamWithValue("+g.3gpp.accesstype", "cellular2"); + + template (present) SemicolonParam_List cr_SigCompParam := /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_SemicolonParam_List_OneSpecificParamWithValue("comp", "sigcomp"); template (present) SemicolonParam_List cr_SecurityMechParams_IPsec(charstring p_Algorithm) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_GenericParam("alg", p_Algorithm), cr_GenericParam("spi-c", ?), cr_GenericParam("spi-s", ?), @@ -62,43 +95,30 @@ module IMS_SIP_Templates { * }; - template (value) GenericParam cs_SigCompParam := cs_GenericParam("comp", "sigcomp"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) GenericParam cs_SigCompParam := cs_GenericParam("comp", "sigcomp"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //---------------------------------------------------------------------------- + const charstring c_norefersub := "norefersub"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const OptionTag_List tsc_OptionTagList_norefersub := {c_norefersub}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ const OptionTag_List tsc_OptionTagList_100rel := {c_tag100rel}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ -// const OptionTag_List tsc_OptionTagList_geolocation := {"geolocation"}; /* @status APPROVED (IMS, LTE) */ - const OptionTag_List tsc_OptionTagList_precondition := {c_tagPrecond}; /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ - const OptionTag_List tsc_OptionTagList_sec_agree := {"sec-agree"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + // const OptionTag_List tsc_OptionTagList_geolocation := {"geolocation"}; /* @status APPROVED (IMS, LTE) */ + const OptionTag_List tsc_OptionTagList_precondition := {c_tagPrecond}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + const OptionTag_List tsc_OptionTagList_sec_agree := {"sec-agree"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ const OptionTag_List tsc_OptionTagList_Empty := {}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - + /* * @desc generate receive template expection all given option tags and any further ones * @param p_RequestedTags * @return template (present) OptionTag_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_OptionTagListRX(OptionTag_List p_RequestedTags) return template (present) OptionTag_List - { + { /* @sic R5s141020 - MCC160 change: workarounds for "superset(all from p_TagList)" removed sic@ */ var template (present) OptionTag_List v_TagList; - // v_TagList := superset(all from p_TagList); // this is the solution acc. to V4.5.1 of the core language ... - // ... WORKAROUND: - - select (lengthof(p_RequestedTags)) { -/* case (1) { v_TagList := superset(p_RequestedTags[0]); } */ -/* case (2) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1]); } */ -/* case (3) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2]); } */ -/* case (4) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3]); } */ -/* case (4) { v_TagList := superset(p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3], p_RequestedTags[4]); } */ - // workaround: - case (1) { v_TagList := {p_RequestedTags[0], *}; } - case (2) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], *}; } - case (3) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], *}; } - case (4) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3], *}; } - case (4) { v_TagList := {p_RequestedTags[0], p_RequestedTags[1], p_RequestedTags[2], p_RequestedTags[3], p_RequestedTags[4], *}; } - case else { FatalError(__FILE__, __LINE__, ""); } - } + v_TagList := superset(all from p_RequestedTags); // this is the solution acc. to V4.5.1 of the core language ... + return v_TagList; } @@ -111,7 +131,7 @@ module IMS_SIP_Templates { template (present) NameAddr cr_NameAddr(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: p_DisplayName - type changed from charstring to DisplayName sic@ */ displayName := p_DisplayName, addrSpec := p_SipUrl @@ -120,7 +140,7 @@ module IMS_SIP_Templates { template (present) NameAddr cr_NameAddr_NoDisplayName(template (present) SipUrl p_SipUrl) := cr_NameAddr(omit, p_SipUrl); template (value) NameAddr cs_NameAddr(template (value) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ displayName := omit, addrSpec := p_SipUrl }; @@ -132,7 +152,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Accept cr_AcceptDef (charstring p_MediaRange) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := ACCEPT_E, acceptArgs := { { @@ -196,12 +216,12 @@ module IMS_SIP_Templates { template (present) Addr_Union cr_Addr_Union_NameAddr(template (present) SipUrl p_SipUrl, template DisplayName p_DisplayName := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cr_NameAddr(p_DisplayName, p_SipUrl) }; template (present) Addr_Union cr_Addr_Union_AddrSpecUnion(template (present) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ addrSpecUnion := p_SipUrl }; @@ -210,7 +230,7 @@ module IMS_SIP_Templates { * @param p_SipUrl * @param p_DisplayName (default value: *) * @return template (present) Addr_Union - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Addr_Union_RX(template (present) SipUrl p_SipUrl, template DisplayName p_DisplayName := *) return template (present) Addr_Union @@ -229,7 +249,7 @@ module IMS_SIP_Templates { * @desc get SipUrl from 'Addr_Union' union * @param p_Addr_Union * @return SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Addr_Union_GetSipUrl(template (omit) Addr_Union p_Addr_Union) return SipUrl { @@ -276,7 +296,7 @@ module IMS_SIP_Templates { charstring p_Realm, template GenValue p_Nonce := cr_GenValue_None, template GenValue p_Response := cr_GenValue_None) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: GenValue sic@ */ fieldName := AUTHORIZATION_E, body := { @@ -303,7 +323,7 @@ module IMS_SIP_Templates { charstring p_Qop := "auth", template (present) charstring p_Cnonce := ?, template (present) charstring p_Response := ?) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130794 change 2: new parameters p_Algorithm, p_Uri; renamed to cr_AuthorizationCommon sic@ */ fieldName := AUTHORIZATION_E, body := { @@ -329,20 +349,20 @@ module IMS_SIP_Templates { charstring p_Realm, charstring p_Nonce, template (present) charstring p_Nc) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130794 change 2: wrapper template sic@ */ cr_AuthorizationCommon(p_UserName, p_Realm, p_Nonce, "sip:" & p_Realm, tsc_AKAv1_MD5, p_Nc); //---------------------------------------------------------------------------- template (present) CallId cr_CallId (template (present) charstring p_CallId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CALL_ID_E, callid := p_CallId }; template (value) CallId cs_CallId (charstring p_CallId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CALL_ID_E, callid := p_CallId }; @@ -352,7 +372,7 @@ module IMS_SIP_Templates { template (present) ContactAddress cr_ContactAddress(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl, template SemicolonParam_List p_ContactParams := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s140676 Change 1 sic@ */ addressField := f_Addr_Union_RX(p_SipUrl, p_DisplayName), contactParams := p_ContactParams @@ -360,7 +380,7 @@ module IMS_SIP_Templates { template (present) Contact cr_Contact(template (present) SipUrl p_SipUrl, template SemicolonParam_List p_ContactParams := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTACT_E, contactBody := { contactAddresses := { @@ -372,7 +392,7 @@ module IMS_SIP_Templates { template (value) Contact cs_Contact(template (value) SipUrl p_SipUrl, template (omit) SemicolonParam_List p_ContactParams := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTACT_E, contactBody := { contactAddresses := { @@ -387,7 +407,7 @@ module IMS_SIP_Templates { }; template (present) Contact cr_Contact_Wildcard := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTACT_E, contactBody := { wildcard := "*" @@ -404,7 +424,7 @@ module IMS_SIP_Templates { template (value) ContentLength cs_ContentLength(integer p_Length := -1) := { // Note: The actual length shall be set by the encoder, see 34.229-3 clause 7.3.4 - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTENT_LENGTH_E, len := p_Length }; @@ -417,10 +437,10 @@ module IMS_SIP_Templates { mediaType := p_MediaType }; - template (present) ContentType cr_ContentTypeSDP := cr_ContentType("application/sdp"); /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ + template (present) ContentType cr_ContentTypeSDP := cr_ContentType("application/sdp"); /* @status APPROVED (IMS, LTE, LTE_A, LTE_IRAT) */ template (value) ContentType cs_ContentType(charstring p_MediaType) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CONTENT_TYPE_E, mediaType := p_MediaType }; @@ -431,7 +451,7 @@ module IMS_SIP_Templates { template (present) CSeq cr_CseqDef(template (present) integer p_SeqNo, charstring p_Method) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CSEQ_E, seqNumber := p_SeqNo, method := p_Method @@ -439,7 +459,7 @@ module IMS_SIP_Templates { template (value) CSeq cs_CseqDef(template (value) integer p_SeqNo, charstring p_Method) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := CSEQ_E, seqNumber := p_SeqNo, method := p_Method @@ -448,14 +468,14 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Event cr_EventDef (template (present) EventType p_EventType) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EVENT_E, eventType := p_EventType, eventParams := omit }; template (value) Event cs_EventDef (template (value) EventType p_EventType) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EVENT_E, eventType := p_EventType, eventParams := omit @@ -464,26 +484,26 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Expires cr_Expires(template (present) charstring p_DeltaSec) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EXPIRES_E, deltaSec := p_DeltaSec }; template (value) Expires cs_Expires(charstring p_DeltaSec) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := EXPIRES_E, deltaSec := p_DeltaSec }; //---------------------------------------------------------------------------- - template (value) FeatureCaps cs_FeatureCaps(charstring p_FeatureCap) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) FeatureCaps cs_FeatureCaps(template (value) SemicolonParam_List p_ParamList) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := FEATURE_CAPS_E, fcValues := { { wildcard := c_WILDCARD, - fcParams := { cs_GenericParam(p_FeatureCap) } + fcParams := p_ParamList // @sic R5-145796 sic@ } } }; @@ -493,18 +513,18 @@ module IMS_SIP_Templates { template (present) From cr_From(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl, template (present) charstring p_Tag := ?) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := FROM_E, addressField := f_Addr_Union_RX(p_SipUrl, p_DisplayName), /* @sic R5s130378 change 3 sic@ */ fromParams := { cr_GenericParam(c_tagId, p_Tag), * } }; template (present) From cr_FromWithTag(template (present) SipUrl p_SipUrl, - template (present) charstring p_Tag := ?) := cr_From(*, p_SipUrl, p_Tag); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) @sic R5s130256 sic@ */ + template (present) charstring p_Tag := ?) := cr_From(*, p_SipUrl, p_Tag); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130256 sic@ */ template (value) From cs_From(template (value) SipUrl p_SipUrl, template (omit) charstring p_Tag := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := FROM_E, addressField := { nameAddr := cs_NameAddr(p_SipUrl) @@ -542,7 +562,7 @@ module IMS_SIP_Templates { template (value) HistoryInfoEntry cs_HistoryInfoEntry(template (value) SipUrl p_SipUrl) := { /* @status APPROVED (IMS) */ nameAddr := cs_NameAddr(p_SipUrl), - hiIndex := { 1 }, /* @sic R5s130195 BASELINE MOVING 2013 sic@ + hiIndex := { 1 }, /* @sic R5s130195 BASELINE MOVING 2013 sic@ @sic LibSip v.3.0.0: hiIndex changed to IntegerList sic@ */ hiExtention := omit }; @@ -559,14 +579,14 @@ module IMS_SIP_Templates { template (present) HostPort cr_HostPort(template (present) charstring p_Host := ?, template integer p_Port := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ host := p_Host, portField := p_Port }; template (value) HostPort cs_HostPort(charstring p_Host, template (omit) integer p_Port := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ host := p_Host, portField := p_Port }; @@ -574,21 +594,21 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) MaxForwards cr_MaxForwardsDef(template (present) integer p_Value := (1..255)) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := MAX_FORWARDS_E, forwards := p_Value }; template (value) MaxForwards cs_MaxForwardsDef (template (value) integer p_Value := 67) := { // p_Value := 67 -> any value - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := MAX_FORWARDS_E, forwards := p_Value }; //---------------------------------------------------------------------------- template (value) NameAddrParam cs_NameAddrParam(template (value) SipUrl p_SipUrl) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cs_NameAddr(p_SipUrl), genericParams := omit }; @@ -597,7 +617,7 @@ module IMS_SIP_Templates { template (present) PAccessNetworkInfo cr_PAccessNetworkInfoDef (template (present) charstring p_AccessType, template GenValue p_GenValueCellId := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := P_ACCESS_NETWORK_INFO_E, accessType := p_AccessType, genericParams := { @@ -641,7 +661,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) PAssociatedURI cs_PAssociatedURI(template (value) NameAddrParam_List p_NameAddrParam) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := P_ASSOCIATED_URI_E, nameAddrList := p_NameAddrParam }; @@ -649,7 +669,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) Path cs_PathDef(charstring p_Host) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := PATH_E, pathValues := { { @@ -669,6 +689,14 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- + template (value) PEarlyMedia cs_PEarlyMedia(template (value) EM_List p_EmList) := + { /* @status APPROVED (IMS, LTE, LTE_A) */ + fieldName := P_EARLY_MEDIA_E, + em_param := p_EmList + }; + + //---------------------------------------------------------------------------- + template (present) PPreferredID cr_PPreferredID(template (present) PPreferredIDValue_List p_PPreferredIDList := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ fieldName := P_PREFERRED_ID_E, @@ -686,7 +714,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) ProxyRequire cr_ProxyRequireDef := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := PROXY_REQUIRE_E, optionsTags := { "sec-agree", *} }; @@ -706,7 +734,7 @@ module IMS_SIP_Templates { template (present) RAck cr_RAckDef(template (present) integer p_RSeq, template (present) integer p_CSeq, template (present) charstring p_Method) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ fieldName := RACK_E, responseNum := p_RSeq, seqNumber := p_CSeq, @@ -760,7 +788,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) RecordRoute cs_RecordRoute(template (value) RouteBody_List p_RouteBodyList) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := RECORD_ROUTE_E, routeBody := p_RouteBodyList }; @@ -773,6 +801,33 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- + template (value) InfoPackage_Type cs_InfoPackage_Type(charstring p_Name, + template (omit) SemicolonParam_List p_InfoPackageParams := omit) := + { + infoPackageName := p_Name, + infoPackageParams := p_InfoPackageParams + }; + + template (value) RecvInfo cs_RecvInfo (template (value) InfoPackage_List p_InfoPackage_List) := + { + fieldName := RECV_INFO_E, + infoPackageList := p_InfoPackage_List + }; + + template (present) InfoPackage_Type cr_InfoPackage_Type(charstring p_Name, + template SemicolonParam_List p_InfoPackageParams := *) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + infoPackageName := p_Name, + infoPackageParams := p_InfoPackageParams + }; + + template (present) RecvInfo cr_RecvInfo (template (present) InfoPackage_List p_InfoPackage_List) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + fieldName := RECV_INFO_E, + infoPackageList := p_InfoPackage_List + }; + + //---------------------------------------------------------------------------- template (value) ReferredBy cs_ReferredBy (template (value) SipUrl p_SipUrl) := { fieldName := REFERRED_BY_E, @@ -790,7 +845,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) ReferTo cr_ReferTo(template (present) SipUrl p_SipUrl) := - { + { /* @status APPROVED (IMS) */ fieldName := REFER_TO_E, nameAddr := cr_NameAddr(*, p_SipUrl), referToParams := omit @@ -803,7 +858,7 @@ module IMS_SIP_Templates { nameAddr := cs_NameAddr(p_SipUrl), referToParams := p_ReferToParams }; - + //---------------------------------------------------------------------------- template (present) RequestDisposition cr_RequestDisposition(template (present) Directive_List p_Directives) := @@ -811,18 +866,18 @@ module IMS_SIP_Templates { fieldName := REQUEST_DISPOSITION_E, directives := p_Directives }; - + template (value) RequestDisposition cs_RequestDisposition(template (value) Directive_List p_Directives) := { /* @status APPROVED (IMS) */ fieldName := REQUEST_DISPOSITION_E, directives := p_Directives }; - + //---------------------------------------------------------------------------- template (present) RequestLine cr_RequestLineSip(Method p_Method, template (present) SipUrl p_URI) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ method := p_Method, requestUri := p_URI, sipVersion := c_sipNameVersion @@ -830,7 +885,7 @@ module IMS_SIP_Templates { template (value) RequestLine cs_RequestLineSip(Method p_Method, template (value) SipUrl p_URI) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ method := p_Method, requestUri := p_URI, sipVersion := c_sipNameVersion @@ -839,12 +894,12 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Require cr_Require(OptionTag_List p_OptionTags) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := REQUIRE_E, optionsTags := f_SIP_OptionTagListRX(p_OptionTags) // @sic R5-133629 sic@ }; - template (present) Require cr_RequireSecAgree := cr_Require(tsc_OptionTagList_sec_agree); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + template (present) Require cr_RequireSecAgree := cr_Require(tsc_OptionTagList_sec_agree); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5-133629 sic@ */ template (value) Require cs_Require(OptionTag_List p_OptionTags) := @@ -868,14 +923,22 @@ module IMS_SIP_Templates { template (present) RouteBody cr_RouteBody(template DisplayName p_DisplayName, template (present) SipUrl p_SipUrl, template SemicolonParam_List p_RRParam := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cr_NameAddr(p_DisplayName, p_SipUrl), rrParam := p_RRParam }; + template (present) RouteBody_List cr_RouteBodyList_InitialReq(template integer p_PcscfPort := *, + template (present) charstring p_PcscfHost := ?, + charstring p_ScscfHost := px_IMS_Scscf) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_PcscfHost, p_PcscfPort)), + cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_ScscfHost)) + }; + template (value) RouteBody cs_RouteBody(template (value) SipUrl p_SipUrl, template (omit) SemicolonParam_List p_RRParam := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ nameAddr := cs_NameAddr(p_SipUrl), rrParam := p_RRParam }; @@ -885,7 +948,7 @@ module IMS_SIP_Templates { * @param p_SipUrl * @param p_SigCompParam (default value: omit) * @return template (value) RouteBody - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_RouteBodyWithParamsTX(template (value) SipUrl p_SipUrl, template (omit) GenericParam p_SigCompParam := omit) return template (value) RouteBody @@ -900,26 +963,11 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) Route cr_Route(template RouteBody_List p_RouteBodyList) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := ROUTE_E, routeBody := p_RouteBodyList }; - template (present) Route cr_RouteRegDef(template (present) charstring p_Host, - template integer p_Port) := - cr_Route( {cr_RouteBody(*, cr_SipUri_HostPort_lr(p_Host, p_Port))} ); - - template (present) Route cr_RouteSubs(charstring p_Host1, - template integer p_Port, - charstring p_Host2) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - cr_Route( { cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_Host1, p_Port)), cr_RouteBody(omit, cr_SipUri_HostPort_lr(p_Host2)) } ); - - template (present) Route cr_RouteReReg (charstring p_Host, - template integer p_Port, - charstring p_Host2) := - ( cr_RouteRegDef(p_Host, p_Port), cr_RouteSubs(p_Host, p_Port, p_Host2) ); - template (value) Route cs_Route(template (value) RouteBody_List p_RouteBodyList) := { fieldName := ROUTE_E, @@ -943,7 +991,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) SecurityClient cr_SecClientMandatoryFields := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SECURITY_CLIENT_E, securityMech := { // cr_SecurityMechanism(cr_SecurityMechParams_IPsec(tsc_HMAC_MD5_96)), @sic R5-144131 sic@ @@ -954,7 +1002,7 @@ module IMS_SIP_Templates { template (present) SecurityClient cr_SecClientOptionalFields(charstring p_Id, template GenValue p_GenValue := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5w140111: GenValue sic@ */ fieldName := SECURITY_CLIENT_E, securityMech := { @@ -964,18 +1012,18 @@ module IMS_SIP_Templates { } }; - template (present) SecurityClient cr_SecClientOptionalProt := cr_SecClientOptionalFields("prot", cr_GenValue("esp")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientOptionalProtAny := cr_SecClientOptionalFields("prot"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientOptionalMod := cr_SecClientOptionalFields("mod", cr_GenValue("trans")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientOptionalModAny := cr_SecClientOptionalFields("mod"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientEalg := cr_SecClientOptionalFields("ealg", cr_GenValue(("des-ede3-cbc", "aes-cbc"))); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientEalgNull := cr_SecClientOptionalFields("ealg", cr_GenValue("null")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (present) SecurityClient cr_SecClientEalgAny := cr_SecClientOptionalFields("ealg"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SecurityClient cr_SecClientOptionalProt := cr_SecClientOptionalFields("prot", cr_GenValue("esp")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientOptionalProtAny := cr_SecClientOptionalFields("prot"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientOptionalMod := cr_SecClientOptionalFields("mod", cr_GenValue("trans")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientOptionalModAny := cr_SecClientOptionalFields("mod"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientEalg := cr_SecClientOptionalFields("ealg", cr_GenValue(("des-ede3-cbc", "aes-cbc"))); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientEalgNull := cr_SecClientOptionalFields("ealg", cr_GenValue("null")); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) SecurityClient cr_SecClientEalgAny := cr_SecClientOptionalFields("ealg"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ //---------------------------------------------------------------------------- template (present) SecurityMechanism cr_SecurityMechanism(template SemicolonParam_List p_MechParams) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ mechName := tsc_SEC_MECHANISM, mechParams := p_MechParams }; @@ -983,7 +1031,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) SecurityServer cs_SecServerDef(template (value) SecurityMechanism_List p_SecurityMech) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SECURITY_SERVER_E, securityMech := p_SecurityMech }; @@ -991,7 +1039,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (present) SecurityVerify cr_SecVerifyDef (template (present) SecurityMechanism_List p_SecurityMech) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SECURITY_VERIFY_E, securityMech := p_SecurityMech }; @@ -999,7 +1047,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) ServiceRoute cs_ServiceRouteDef (charstring p_Host) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SERVICE_ROUTE_E, routeBody := { cs_RouteBody(cs_SipUri_HostPort_lr(p_Host)) @@ -1008,10 +1056,10 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- - template (present) SessIdString cr_SessIdString_Any := pattern "[0-9a-f]#32"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SessIdString cr_SessIdString_Any := pattern "[0-9a-f]#32"; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (present) SessionId cr_SessionId(template (present) SessIdString p_SessIdString := cr_SessIdString_Any) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SESSION_ID_E, sessid := p_SessIdString, sessidParam := * @@ -1021,7 +1069,7 @@ module IMS_SIP_Templates { * @desc return either omit or cr_SessionId (any session id) * @param p_SessionIdSupported * @return template SessionId - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IMS_SessionId_RX_IfSupported(boolean p_SessionIdSupported) return template SessionId { @@ -1033,22 +1081,38 @@ module IMS_SIP_Templates { } template (value) SessionId cs_SessionId(SessIdString p_SessIdString) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SESSION_ID_E, sessid := p_SessIdString, sessidParam := omit }; /* - * @desc return Session-ID derived from Call-ID based on SHA-1 hashing acc. to draft-kaplan-dispatch-session-id-03 clause 4.1 + * @desc return Session-ID (see RFC 7329) * @param p_CallId * @return SessIdString * @status APPROVED (IMS, LTE_A, LTE_IRAT) */ function f_IMS_SessionId_TX_Generate(charstring p_CallId) return SessIdString - { /* T.B.D. */ - FatalError(__FILE__, __LINE__, "f_IMS_SessionId_TX_Generate: not implemented yet"); - return "0123456789abcdef0123456789abcdef"; + { /* NOTE: in terms of UE conformance testing there seems to be no requirement on the session ID rather than that is is unique for different call ids + * => we use a simplified algorithm to get the 32 digit session id out from the given call id (rather than SHA-1 hashing acc. to RFC 7329) */ + /* @sic R5s150086 sic@ */ + var B128_Type v_B128 := int2bit(0, 128); + var octetstring v_OctetString := char2oct(p_CallId); + var SessIdString v_SessIdString; + var integer v_Len; + var integer i; + + for (i := 0; i < 15; i := i + 1) { v_OctetString := v_OctetString & '5C'O; } // 15 octets padding + + while (true) { + v_Len := lengthof(v_OctetString); + if (v_Len < 16) {break;} + v_B128 := v_B128 xor4b oct2bit(substr(v_OctetString, 0, 16)); + v_OctetString := substr(v_OctetString, 16, v_Len - 16); + } + v_SessIdString := oct2str(bit2oct(v_B128)); + return f_StringToLower(v_SessIdString); // acc. RFC 7329 the Session-ID Value has to be lowercase hex representation } //---------------------------------------------------------------------------- @@ -1063,7 +1127,7 @@ module IMS_SIP_Templates { template (present) UriComponents cr_SipUriComponent(template UserInfo p_UserInfo := *, template (present) charstring p_Host, template integer p_Port := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sip := { userInfo := p_UserInfo, hostPort := { @@ -1084,7 +1148,7 @@ module IMS_SIP_Templates { template (present) SipUrl cr_SipUrl_Common(template (present) charstring p_Scheme, template (present) UriComponents p_UriComponents, template SemicolonParam_List p_Params := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ scheme := p_Scheme, components := p_UriComponents, urlParameters := p_Params, @@ -1093,20 +1157,38 @@ module IMS_SIP_Templates { template (present) SipUrl cr_SipUri_HostPort_lr(template (present) charstring p_Host, template integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ - cr_SipUrl_Common(c_sipScheme, cr_SipUriComponent(*, p_Host, p_Port), {cr_GenericParam_Common("lr"), *}); /* @sic R5s120858 change 4, 5 sic@ */ + cr_SipUrl_Common(c_sipScheme, cr_SipUriComponent(*, p_Host, p_Port), cr_UriParameters_lr); /* @sic R5s120858 change 4, 5 sic@ + @sic R5-153760: cr_UriParameters_lr sic@ */ template (present) SipUrl cr_SipUri_HostPort(template (present) charstring p_Host, template integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ cr_SipUrl_Common(c_sipScheme, cr_SipUriComponent(*, p_Host, p_Port)); /* @sic R5s120858 change 4, 5 sic@ */ + /* + * @desc Build up SipUri to be used in Contact header depending on whether or not GRUU shall be used by the UE + * @param p_Host + * @param p_Port + * @return template (present) SipUrl + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_Contact_SipUri_HostPortRX(template (present) charstring p_Host, + template integer p_Port := *) return template (present) SipUrl + { + var template integer v_Port := p_Port; + if (pc_IMS_GRUUsInSIP) { + v_Port := *; + } + return cr_SipUri_HostPort(p_Host, v_Port); + } + template (value) UriComponents cs_SipUriComponent(template (omit) UserInfo p_UserInfo := omit, template (value) charstring p_Host, template (omit) integer p_Port := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sip := { userInfo := p_UserInfo, hostPort := { @@ -1117,7 +1199,7 @@ module IMS_SIP_Templates { }; template (value) UriComponents cs_TelUriComponent(template (value) charstring p_Subscriber) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ tel := { subscriber := p_Subscriber } @@ -1125,7 +1207,7 @@ module IMS_SIP_Templates { template (value) UriComponents cs_UrnUriComponent(template (value) charstring p_NamespaceId, template (value) charstring p_NamespaceSpecificString) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ urn := { namespaceId := p_NamespaceId, namespaceSpecificString := p_NamespaceSpecificString @@ -1133,14 +1215,14 @@ module IMS_SIP_Templates { }; template (value) UriComponents cs_OtherComponent(charstring p_Other) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ other := p_Other }; template (value) SipUrl cs_SipUrl_Common(template (value) charstring p_Scheme, template (value) UriComponents p_UriComponents, template (omit) SemicolonParam_List p_Params := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ scheme := p_Scheme, components := p_UriComponents, urlParameters := p_Params, @@ -1149,13 +1231,13 @@ module IMS_SIP_Templates { template (value) SipUrl cs_SipUri_HostPort_lr(template (value) charstring p_Host, template (omit) integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ cs_SipUrl_Common(c_sipScheme, cs_SipUriComponent(-, p_Host, p_Port), {cs_GenericParam("lr")} ); template (value) SipUrl cs_SipUri_HostPort(template (value) charstring p_Host, template (omit) integer p_Port := omit) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ cs_SipUrl_Common(c_sipScheme, cs_SipUriComponent(-, p_Host, p_Port)); @@ -1167,37 +1249,41 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- - template (value) SubscriptionState cs_SubscriptionStateDef(charstring p_SubstateValue, - charstring p_Expires) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) SubscriptionState cs_SubscriptionState(charstring p_SubstateValue, + template (value) SemicolonParam_List p_SubStateParams) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := SUBSCRIPTION_STATE_E, subState := p_SubstateValue, - substateParams := { - cs_GenericParam("expires", p_Expires) - } + substateParams := p_SubStateParams }; - template (value) SubscriptionState cs_SubscriptionState_Active(charstring p_Expires := "600000") := cs_SubscriptionStateDef("active", p_Expires); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - template (value) SubscriptionState cs_SubscriptionState_Terminated := cs_SubscriptionStateDef("terminated", "0"); /* @status APPROVED (IMS) */ + template (value) SubscriptionState cs_SubscriptionStateDef(charstring p_SubstateValue, + charstring p_Expires) := + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + cs_SubscriptionState(p_SubstateValue, { cs_GenericParam("expires", p_Expires) } ); + + template (value) SubscriptionState cs_SubscriptionState_Active(charstring p_Expires := "600000") := cs_SubscriptionStateDef("active", p_Expires); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) SubscriptionState cs_SubscriptionState_Terminated := cs_SubscriptionStateDef("terminated", "0"); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) SubscriptionState cr_SubscriptionState(charstring p_SubstateValue, - template SemicolonParam_List p_SubexpParams) := + template SemicolonParam_List p_SubStateParams) := { fieldName := SUBSCRIPTION_STATE_E, subState := p_SubstateValue, - substateParams := p_SubexpParams + substateParams := p_SubStateParams }; //---------------------------------------------------------------------------- template (present) Supported cr_Supported(OptionTag_List p_RequestedTags) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5-133629: handling of option tags in Supported and Require headers sic@ */ fieldName := SUPPORTED_E, optionsTags := f_SIP_OptionTagListRX(p_RequestedTags) }; - template (present) Supported cr_Supported_Register := cr_Supported(f_SIP_Register_SupportedTagList(pc_IMS_GRUUsInSIP)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (present) Supported cr_Supported_Register := cr_Supported(f_SIP_Register_SupportedTagList(pc_IMS_GRUUsInSIP)); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ template (value) Supported cs_Supported(template (value) OptionTag_List p_TagList) := { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ @@ -1209,23 +1295,23 @@ module IMS_SIP_Templates { template (present) To cr_ToCommon(template (present) SipUrl p_SipUrl, template SemicolonParam_List p_Params := *) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := TO_E, addressField := f_Addr_Union_RX(p_SipUrl), toParams := p_Params }; template (present) To cr_ToDef(template (present) SipUrl p_SipUrl, - template SemicolonParam_List p_Params := *) := cr_ToCommon(p_SipUrl, p_Params); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + template SemicolonParam_List p_Params := *) := cr_ToCommon(p_SipUrl, p_Params); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130378 change 3 sic@ */ template (present) To cr_ToWithTag(template (present) SipUrl p_SipUrl, - template (present) charstring p_Tag := ?) := cr_ToCommon(p_SipUrl, {cr_GenericParam(c_tagId, p_Tag), *}); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + template (present) charstring p_Tag := ?) := cr_ToCommon(p_SipUrl, {cr_GenericParam(c_tagId, p_Tag), *}); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130183 sic@ */ template (value) To cs_ToDef(template (value) SipUrl p_SipUrl, template (omit) SemicolonParam_List p_Params := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := TO_E, addressField := { nameAddr := cs_NameAddr(p_SipUrl) @@ -1235,7 +1321,7 @@ module IMS_SIP_Templates { template (value) To cs_ToWithTag(template (value) SipUrl p_SipUrl, template (value) charstring p_Tag) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cs_ToDef(p_SipUrl, { cs_GenericParam(c_tagId, p_Tag) }); //---------------------------------------------------------------------------- @@ -1243,7 +1329,7 @@ module IMS_SIP_Templates { * @desc build up receive template for paramter list to be used in the Via header * @param p_Rport (default value: omit) * @return template (present) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_ViaParamsRX(template GenericParam p_Rport := omit) return template (present) SemicolonParam_List { /* @sic R5s130187 change 6: "*" needed at the end of the list sic@ */ @@ -1262,7 +1348,7 @@ module IMS_SIP_Templates { template (present) ViaBody cr_ViaBody(template (present) charstring p_Transport, template (present) HostPort p_SendBy, template (present) SemicolonParam_List p_ViaParams := f_ViaParamsRX()) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sentProtocol := { protocolName := c_sipName, protocolVersion := c_sipVersion, @@ -1276,7 +1362,7 @@ module IMS_SIP_Templates { template (present) HostPort p_HostPort := cr_HostPort(?, *), template GenericParam p_Rport := omit) := { /* for initial request p_Rport may need to be set to "cr_GenericParam("rport", ?)" see 34.229-1 A.1.1 condition A1 */ - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := VIA_E, viaBody := { cr_ViaBody(p_Transport, p_HostPort, f_ViaParamsRX(p_Rport)) @@ -1285,7 +1371,7 @@ module IMS_SIP_Templates { template (present) Via cr_ViaInitialReg(template (present) charstring p_Transport := ?, template (present) HostPort p_HostPort := cr_HostPort(?, *)) := - /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ cr_ViaDef(p_Transport, p_HostPort, cr_GenericParam_Common("rport", omit)); // @sic R5s120907 change 8 - rport has no value sic@ @@ -1293,7 +1379,7 @@ module IMS_SIP_Templates { * @desc Via header to be used for responses sent by the UE * @param p_ViaRequest * @return template (present) Via - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_Via_ResponseRX(template (value) Via p_ViaRequest) return template (present) Via { /* @sic R5s140350: as format of IPv6 addresses may change we need to check host addresses seperately sic@ */ @@ -1311,7 +1397,7 @@ module IMS_SIP_Templates { * @param p_Branch * @param p_SigCompParam (default value: omit) * @return template (value) SemicolonParam_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_ViaParamsTX(template (value) charstring p_Branch, template (omit) GenericParam p_SigCompParam := omit) return template (value) SemicolonParam_List @@ -1327,7 +1413,7 @@ module IMS_SIP_Templates { template (value) ViaBody cs_ViaBody(template (value) charstring p_Transport, template (value) HostPort p_SendBy, template (omit) SemicolonParam_List p_ViaParams := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ sentProtocol := { protocolName := c_sipName, protocolVersion := c_sipVersion, @@ -1338,7 +1424,7 @@ module IMS_SIP_Templates { }; template (value) Via cs_Via(template (value) ViaBody_List p_BodyList) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ fieldName := VIA_E, viaBody := p_BodyList }; @@ -1349,7 +1435,7 @@ module IMS_SIP_Templates { charstring p_Nonce, charstring p_Opaque := tsc_IMS_Opaque, charstring p_Algorithm := tsc_AKAv1_MD5) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ /* @sic R5s130794 change 2: new parameter p_Algorithm sic@ */ fieldName := WWW_AUTHENTICATE_E, challenge := { @@ -1371,7 +1457,7 @@ module IMS_SIP_Templates { * @desc returns the tag from the From header (NOTE: there has to be a from-tag) * @param p_MessageHeader * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_MessageHeader_GetFromTag(template (value) MessageHeader p_MessageHeader) return charstring { @@ -1383,7 +1469,7 @@ module IMS_SIP_Templates { * (in contrast to the From header the tag may be missing in the To header) * @param p_MessageHeader * @return template (omit) charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_MessageHeader_GetToTag(template (value) MessageHeader p_MessageHeader) return template (omit) charstring { /* @sic R5w140111: GenValue sic@ */ @@ -1403,7 +1489,7 @@ module IMS_SIP_Templates { * @desc return string representing given IntegrityAlgorithm * @param p_IntegrityAlgorithm * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_IntegrityAlgorithm_String(IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm) return charstring { @@ -1424,7 +1510,7 @@ module IMS_SIP_Templates { * @desc return string representing given CipheringAlgorithm * @param p_CipheringAlgorithm * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_CipheringAlgorithm_String(IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm) return charstring { @@ -1448,14 +1534,14 @@ module IMS_SIP_Templates { template (value) UserInfo cs_UserInfo(charstring p_UserName, template (omit) charstring p_Password := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ userOrTelephoneSubscriber := p_UserName, password := p_Password }; template (present) UserInfo cr_UserInfo(charstring p_UserName, template charstring p_Password := *) := - { /* @status APPROVED (IMS) */ + { userOrTelephoneSubscriber := p_UserName, password := p_Password }; @@ -1469,7 +1555,7 @@ module IMS_SIP_Templates { * see RFC 3986 for URIs in general) * @param p_URI * @return template (value) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_SIP_ParseURI(charstring p_URI) return template (value) SipUrl { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1522,13 +1608,15 @@ module IMS_SIP_Templates { * @desc Built receive template for SipUrl * @param p_URI * @param p_Port (default value: omit) - * @param p_LrParam (default value: omit) + * @param p_UrlParameters (default value: *) + * @param p_Headers (default value: omit) * @return template (present) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSipUri_RX(charstring p_URI, template integer p_Port := omit, - template GenericParam p_LrParam := omit) return template (present) SipUrl + template SemicolonParam_List p_UrlParameters := *, + template AmpersandParam_List p_Headers := omit) return template (present) SipUrl { var template (present) SipUrl v_SipUrl := fl_SIP_ParseURI(p_URI); @@ -1536,11 +1624,8 @@ module IMS_SIP_Templates { @sic R5s140020 change 11: p_Port may be * therefore shall not be checked to be present sic@ */ v_SipUrl.components.sip.hostPort.portField := p_Port; } - if (ispresent(p_LrParam)) { - v_SipUrl.urlParameters := {p_LrParam, *}; - } else { - v_SipUrl.urlParameters := *; - } + v_SipUrl.urlParameters := p_UrlParameters; + v_SipUrl.headers := p_Headers; /* @sic R5s150382 change 4 sic@ */ return v_SipUrl; } @@ -1556,7 +1641,7 @@ module IMS_SIP_Templates { function f_SIP_BuildSipUri_lr_RX(charstring p_URI, template integer p_Port := omit) return template (present) SipUrl { - return f_SIP_BuildSipUri_RX(p_URI, p_Port, cr_GenericParam_Common("lr", omit)); + return f_SIP_BuildSipUri_RX(p_URI, p_Port, cr_UriParameters_lr); /* @sic R5-153760: cr_UriParameters_lr sic@ */ } /* @@ -1565,7 +1650,7 @@ module IMS_SIP_Templates { * @param p_Port (default value: omit) * @param p_LrParam (default value: omit) * @return template (value) SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSipUri_TX(charstring p_URI, template (omit) integer p_Port := omit, @@ -1602,7 +1687,7 @@ module IMS_SIP_Templates { * @desc convert SipUrl to string * @param p_SipUrl * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SipUrl2Str(SipUrl p_SipUrl) return charstring { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1640,7 +1725,7 @@ module IMS_SIP_Templates { * @desc encode SipUrl as string * @param p_SipUrl * @return charstring - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_SipUrl_GetPublicUserIdentity(SipUrl p_SipUrl) return charstring { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1662,6 +1747,20 @@ module IMS_SIP_Templates { return v_PublicUserIdentity; } + + /* + * @desc Compare two URLs + * @param p_SipUrl1 + * @param p_SipUrl2 + * @return boolean + * @status APPROVED (IMS) + */ + function f_SIP_SipUrl_Compare(SipUrl p_SipUrl1, + SipUrl p_SipUrl2) return boolean + { + return match(p_SipUrl1, cr_SipUrl_Common(p_SipUrl2.scheme, p_SipUrl2.components, p_SipUrl2.urlParameters)); + } + /* * @desc return sequence number of given message * @param p_MessageHeader @@ -1677,7 +1776,7 @@ module IMS_SIP_Templates { * @desc get SipUrl from Contact header * @param p_MessageHeader * @return SipUrl - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_MessageHeader_GetContactSipUrl(template (value) MessageHeader p_MessageHeader) return SipUrl { @@ -1709,7 +1808,7 @@ module IMS_SIP_Templates { * @param p_SSProtClientPort * @param p_SSProtServerPort * @return template (value) SecurityMechanism_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSecurityServerParam(IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm, @@ -1785,7 +1884,7 @@ module IMS_SIP_Templates { * @param p_SSProtClientPort * @param p_SSProtServerPort * @return template (present) SecurityVerify - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_BuildSecurityVerifyHeader(IPsec_IntegrityAlgorithm_Type p_IntegrityAlgorithm, IPsec_CipheringAlgorithm_Type p_CipheringAlgorithm, @@ -1808,19 +1907,18 @@ module IMS_SIP_Templates { * @desc Return the correct tag to be included in the Supported header of REGISTER messages * @param p_GRUUsInSIP * @return OptionTag_List - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_Register_SupportedTagList(boolean p_GRUUsInSIP) return OptionTag_List { /* @sic R5-133629: handling of option tags in Supported and Require headers sic@ */ - var charstring v_SupportedTag; - + /* @sic R5s150721 - Additional change: "path" shall always be included sic@ */ + var OptionTag_List v_SupportedTagList; + + v_SupportedTagList[0] := "path"; if (p_GRUUsInSIP) { - v_SupportedTag := "gruu"; - } - else { - v_SupportedTag := "path"; + v_SupportedTagList[1] := "gruu"; } - return {v_SupportedTag}; + return v_SupportedTagList; } //**************************************************************************** @@ -1830,7 +1928,7 @@ module IMS_SIP_Templates { * @desc return portnumber given in ContactUrl (if any) * @param p_ContactUrl * @return template (omit) PortNumber_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_ContactUrl_GetPort(SipUrl p_ContactUrl) return template (omit) PortNumber_Type { /* @sic R5s130195 BASELINE MOVING 2013: change of SipUrl sic@ */ @@ -1850,7 +1948,7 @@ module IMS_SIP_Templates { * @param p_UriString * @param p_SipUrl * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_SIP_MatchURI(charstring p_UriString, SipUrl p_SipUrl) return boolean @@ -1863,7 +1961,7 @@ module IMS_SIP_Templates { //---------------------------------------------------------------------------- template (value) MessageHeader cs_MessageHeader_Dummy := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ accept := omit, acceptContact := omit, acceptEncoding := omit, @@ -1891,6 +1989,7 @@ module IMS_SIP_Templates { geolocation := omit, geolocationRouting := omit, // @sic R5-133151 sic@ historyInfo := omit, + infoPackage := omit, // @sic R5s150339 sic@ inReplyTo := omit, maxForwards := c_maxForwards70, mimeVersion := omit, @@ -1919,6 +2018,7 @@ module IMS_SIP_Templates { rSeq := omit, reason := omit, recordRoute := omit, + recvInfo := omit, // @sic R5s150339 sic@ requestDisposition := omit, referredBy := omit, referTo := omit, @@ -1952,7 +2052,7 @@ module IMS_SIP_Templates { }; template (present) MessageHeader cr_MessageHeader_Dummy := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ accept := *, acceptContact := *, acceptEncoding := *, @@ -1980,6 +2080,7 @@ module IMS_SIP_Templates { geolocation := *, geolocationRouting := *, // @sic R5-133151 sic@ historyInfo := *, + infoPackage := *, // @sic R5s150339 sic@ inReplyTo := *, maxForwards := *, mimeVersion := *, @@ -2008,6 +2109,7 @@ module IMS_SIP_Templates { rSeq := *, reason := *, recordRoute := *, + recvInfo := *, // @sic R5s150339 sic@ requestDisposition := *, referredBy := *, referTo := *, @@ -2048,7 +2150,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := omit, template Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ requestLine := cr_RequestLineSip(REGISTER_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2059,7 +2161,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := omit, template Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ requestLine := cr_RequestLineSip(SUBSCRIBE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2092,7 +2194,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := *, template Payload p_Payload := *) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ requestLine := cr_RequestLineSip(PRACK_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2103,7 +2205,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := ?, template Payload p_Payload := *) := - { /* @status APPROVED (IMS, LTE_A) */ + { /* @status APPROVED (IMS, LTE, LTE_A) */ requestLine := cr_RequestLineSip(UPDATE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2133,7 +2235,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader := ?, template MessageBody p_MessageBody := ?, template Payload p_Payload := *) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ requestLine := cr_RequestLineSip(MESSAGE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2142,7 +2244,7 @@ module IMS_SIP_Templates { template (present) REFER_Request cr_REFER_Request(template (present) SipUrl p_SipUrl, template (present) MessageHeader p_MessageHeader := ?) := - { + { /* @status APPROVED (IMS) */ requestLine := cr_RequestLineSip(REFER_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := omit, @@ -2173,8 +2275,8 @@ module IMS_SIP_Templates { template (value) NOTIFY_Request cs_NOTIFY_Request(template (value) SipUrl p_SipUrl, template (value) MessageHeader p_MessageHeader, - template (value) MessageBody p_MessageBody) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (omit) MessageBody p_MessageBody := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ requestLine := cs_RequestLineSip(NOTIFY_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2232,7 +2334,7 @@ module IMS_SIP_Templates { template (value) MESSAGE_Request cs_MESSAGE_Request(template (value) SipUrl p_SipUrl, template (value) MessageHeader p_MessageHeader, template (value) MessageBody p_MessageBody) := - { /* @status APPROVED (IMS) */ + { /* @status APPROVED (IMS, LTE_A) */ requestLine := cs_RequestLineSip(MESSAGE_E, p_SipUrl), msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2256,7 +2358,7 @@ module IMS_SIP_Templates { template (value) MessageHeader p_MessageHeader, template (omit) MessageBody p_MessageBody := omit, template (omit) Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ statusLine := p_StatusLine, msgHeader := p_MessageHeader, messageBody := p_MessageBody, @@ -2268,7 +2370,7 @@ module IMS_SIP_Templates { template (present) MessageHeader p_MessageHeader, template MessageBody p_MessageBody := omit, template Payload p_Payload := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ statusLine := p_StatusLine, msgHeader := p_MessageHeader, messageBody := p_MessageBody, diff --git a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_XML_PIDF_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_XML_PIDF_Templates.ttcn similarity index 73% rename from IMS_PART4_IWD_14wk37/Common/IMS/IMS_XML_PIDF_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_XML_PIDF_Templates.ttcn index 84df9c6..5d2ea42 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS/IMS_XML_PIDF_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_XML_PIDF_Templates.ttcn @@ -2,18 +2,18 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 17:10:15 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12171 $ +// @version: IWD_15wk38 +// $Date: 2015-05-22 21:31:08 +0200 (Fri, 22 May 2015) $ +// $Rev: 13593 $ /******************************************************************************/ module IMS_XML_PIDF_Templates { -// import from urn_ietf_params_xml_ns_pidf language "XSD" all; - // import from urn_ietf_params_xml_ns_pidf_geopriv10 language "XSD" all; - import from urn_ietf_params_xml_ns_pidf all; - import from urn_ietf_params_xml_ns_pidf_geopriv10 all; + import from urn_ietf_params_xml_ns_pidf language "XSD" all; + import from urn_ietf_params_xml_ns_pidf_geopriv10 language "XSD" all; + // import from urn_ietf_params_xml_ns_pidf all; +// import from urn_ietf_params_xml_ns_pidf_geopriv10 all; import from XSD all; group Alias_Definitions { @@ -23,11 +23,11 @@ module IMS_XML_PIDF_Templates { type Presence_1 PIDF_Presence_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ type Tuple PIDF_Tuple_Type; /* @status */ type Tuple.note_list PIDF_Tuple_Note_List_Type; /* @status */ - type Presence.tuple_list PIDF_Presence_Tuple_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + // type Presence.tuple_list PIDF_Presence_Tuple_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ type Status PIDF_Status_Type; /* @status */ type Status.elem_list PIDF_Status_ElemList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ type Basic PIDF_Basic_Type; /* @status */ - type Presence.note_list PIDF_Presence_Note_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + // type Presence.note_list PIDF_Presence_Note_List_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ @@ -67,13 +67,11 @@ module IMS_XML_PIDF_Templates { timestamp := p_Timestamp }; - template (present) PIDF_Presence_Type cr_PIDF_Presence_Any (template AnyURI p_Entity := ?, - template (present) PIDF_Presence_Tuple_List_Type p_PIDF_Tuples := ?, - template (present) PIDF_Presence_Note_List_Type p_PIDF_Notes := ?) := + template (present) PIDF_Presence_Type cr_PIDF_Presence_Any (template AnyURI p_Entity := ?) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ entity := p_Entity, - tuple_list := p_PIDF_Tuples, - note_list := p_PIDF_Notes, + tuple_list := ?, + note_list := ?, elem_list := {} }; diff --git a/LTE_A_IWD_14wk37/Common/IMS/IMS_XML_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IMS/IMS_XML_Templates.ttcn similarity index 54% rename from LTE_A_IWD_14wk37/Common/IMS/IMS_XML_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IMS/IMS_XML_Templates.ttcn index 49de506..64a0504 100644 --- a/LTE_A_IWD_14wk37/Common/IMS/IMS_XML_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS/IMS_XML_Templates.ttcn @@ -2,58 +2,59 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-04 18:05:38 +0200 (Fri, 04 Sep 2015) $ +// $Rev: 14182 $ /******************************************************************************/ module IMS_XML_Templates { import from CommonDefs all; import from IMS_CommonDefs all; - // import from urn_ietf_params_xml_ns_reginfo language "XSD" all; -// import from urn_ietf_params_xml_ns_gruuinfo language "XSD" all; -// import from urn_ietf_params_xml_ns_conference_info language "XSD" all; -// import from NoTargetNamespace language "XSD" all; - import from urn_ietf_params_xml_ns_reginfo all; - import from urn_ietf_params_xml_ns_gruuinfo all; - import from NoTargetNamespace all; + import from urn_ietf_params_xml_ns_reginfo language "XSD" all; + import from urn_ietf_params_xml_ns_gruuinfo language "XSD" all; + import from NoTargetNamespace language "XSD" all; +// import from urn_ietf_params_xml_ns_reginfo all; +// import from urn_ietf_params_xml_ns_gruuinfo all; +// import from NoTargetNamespace all; group Alias_Definitions { - type TIMS3GPP TIMS3GPP_Type; /* @status APPROVED (IMS) */ + type Ims_3gpp Ims_3gpp_Type; /* @status APPROVED (IMS, IMS_IRAT) + @sic R5s141138 sic@ */ + type Tstate_and_event_info State_and_event_info_Type; - type Contact.state RegInfo_Contact_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.event RegInfo_Contact_Event_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.unknown_param_list RegInfo_Contact_UnknownParams_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.unknown_param_list[-] RegInfo_Contact_UnknownParam_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Contact.elem_list RegInfo_Contact_ElemList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - - type Reginfo.registration_list RegInfo_RegistrationList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Registration RegInfo_Registration_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Reginfo Reginfo_Type with { encode "XML"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + type Contact.state RegInfo_Contact_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.event RegInfo_Contact_Event_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.unknown_param_list RegInfo_Contact_UnknownParams_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.unknown_param_list[-] RegInfo_Contact_UnknownParam_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Contact.elem_list RegInfo_Contact_ElemList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + type Reginfo.registration_list RegInfo_RegistrationList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Registration RegInfo_Registration_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Reginfo Reginfo_Type with { encode "XML"}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) @sic R5s130474: encoding rule sic@ */ - type Reginfo_Type.state Reginfo_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type Registration.state RegInfo_Registration_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type Reginfo_Type.state Reginfo_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type Registration.state RegInfo_Registration_State_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - type PubGruu PubGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - type TempGruu TempGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + type PubGruu PubGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + type TempGruu TempGruu_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ } with { encode "XML"}; // @sic R5s130474 sic@ //---------------------------------------------------------------------------- - template (value) Pub_gruu cs_PubGruu(charstring p_PublicUserId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - uri := cs_IMS_ArbitraryValueFor_gr(p_PublicUserId) + template (value) Pub_gruu cs_XML_PubGruu(template (value) charstring p_PubGruuUri) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + uri := p_PubGruuUri }; - template (value) Temp_gruu cs_TempGruu(charstring p_HomeDomainName, - integer p_Cseq) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) Temp_gruu cs_XML_TempGruu(template (value) charstring p_TempGruuUri, + integer p_Cseq) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ first_cseq := p_Cseq, - uri := cs_IMS_TempGRUUForUE(p_HomeDomainName) + uri := p_TempGruuUri }; /* @@ -61,7 +62,7 @@ module IMS_XML_Templates { * @param p_PubGruu (default value: omit) * @param p_TempGruu (default value: omit) * @return RegInfo_Contact_ElemList_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function fl_RegInfo_GruuExtension(template (omit) PubGruu_Type p_PubGruu := omit, template (omit) TempGruu_Type p_TempGruu := omit) return RegInfo_Contact_ElemList_Type @@ -80,19 +81,19 @@ module IMS_XML_Templates { //---------------------------------------------------------------------------- - template (value) RegInfo_Contact_UnknownParam_Type cs_XML_UEInstance(charstring p_UEInstanceId := tsc_IMS_UEInstanceId) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - /* NOTE: p_UEInstanceId may need to be URL encoded (-> f_URL_Encoding) */ - name := p_UEInstanceId, - base := "+sip.instance" + template (value) RegInfo_Contact_UnknownParam_Type cs_XML_UEInstance(charstring p_UEInstanceId) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + /* @sic R5-153760 - Support of GRUU: base is the content, name is "+sip.instance" sic@ */ + name := "+sip.instance", + base := f_HTML_Encoding(p_UEInstanceId) /* @sic R5-153760: f_HTML_Encoding sic@ */ }; - template (value) Registration cs_RegistrationInfo(template (value) Contact p_Contact, - charstring p_PublicUserId, - charstring p_Id, - RegInfo_Registration_State_Type p_State) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ - aor := p_PublicUserId, + template (value) Registration cs_XML_RegistrationInfo(template (value) Contact p_Contact, + charstring p_Aor, + charstring p_Id, + RegInfo_Registration_State_Type p_State) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + aor := p_Aor, id := p_Id, state := p_State, contact_list := { @@ -103,17 +104,17 @@ module IMS_XML_Templates { //---------------------------------------------------------------------------- - template (value) Contact cs_RegistrationContact(charstring p_ContactUri, - charstring p_Id, - RegInfo_Contact_State_Type p_State, - RegInfo_Contact_Event_Type p_Event, - template (omit) charstring p_CallId := omit, - template (omit) integer p_Cseq := omit, - template (omit) integer p_Expires := omit, - template (value) RegInfo_Contact_UnknownParams_Type p_UnknownParams := {}, - template (omit) Pub_gruu p_PubGruu := omit, - template (omit) Temp_gruu p_TempGruu := omit) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + template (value) Contact cs_XML_RegistrationContact(charstring p_ContactUri, + charstring p_Id, + RegInfo_Contact_State_Type p_State, + RegInfo_Contact_Event_Type p_Event, + template (omit) charstring p_CallId := omit, + template (omit) integer p_Cseq := omit, + template (omit) integer p_Expires := omit, + template (value) RegInfo_Contact_UnknownParams_Type p_UnknownParams := {}, + template (omit) Pub_gruu p_PubGruu := omit, + template (omit) Temp_gruu p_TempGruu := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ callid := p_CallId, cseq := p_Cseq, duration_registered := omit, @@ -134,7 +135,7 @@ module IMS_XML_Templates { template (value) Reginfo cs_XML_Reginfo(Reginfo_State_Type p_State, integer p_Version, template (value) RegInfo_RegistrationList_Type p_Registrations) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ state := p_State, version := p_Version, registration_list := p_Registrations, @@ -147,7 +148,7 @@ module IMS_XML_Templates { * @param p_Version (default value: 0) * @param p_Registrations * @return template (value) Reginfo - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_XML_RegInfo(Reginfo_State_Type p_State := full, integer p_Version := 0, @@ -162,26 +163,25 @@ module IMS_XML_Templates { * @param p_Type * @param p_Reason (default value: "") * @param p_Action (default value: omit) - * @return template (value) TIMS3GPP_Type - * @status APPROVED (IMS) + * @return template (value) Ims_3gpp_Type + * @status APPROVED (IMS, IMS_IRAT) */ - function f_IMS_TIMS3GPP_TX(Type p_Type, + function f_IMS_Ims_3gpp_TX(Type p_Type, charstring p_Reason := "", - template (omit) Action p_Action := omit) return template (value) TIMS3GPP_Type - { - var template (value) TIMS3GPP_Type v_TIMS3GPP; + template (omit) Action p_Action := omit) return template (value) Ims_3gpp_Type + { // @sic R5s141138 sic@ + var template (value) Ims_3gpp_Type v_Ims3gpp; var TAlternativeService.elem_list v_AnyElements := {}; if (ispresent(p_Action)) { - v_AnyElements := {"" & valueof(p_Action) & ""} // @sic R5s140490 sic@ + v_AnyElements := {oct2char(bit2oct(encvalue(p_Action)))}; // @sic R5s140490 sic@ @sic R5s140856r1 sic@ } - v_TIMS3GPP := { + v_Ims3gpp := { version := 1.0, attr := omit, choice := { - alternative_service := - { + alternative_service := { attr := omit, type_ := p_Type, reason := p_Reason, @@ -190,10 +190,25 @@ module IMS_XML_Templates { }, elem_list := {} }; - return v_TIMS3GPP; + return v_Ims3gpp; } + + // @sic R5s141138 sic@ + template (value) Ims_3gpp_Type cs_Ims_3gpp_Emergency(template (omit) Action p_Action := omit) := f_IMS_Ims_3gpp_TX("emergency", -, p_Action); /* @status APPROVED (IMS, IMS_IRAT) */ + template (value) Ims_3gpp_Type cs_Ims_3gpp_Restoration(template (omit) Action p_Action := "initial-registration") := f_IMS_Ims_3gpp_TX("restoration", -, p_Action); /* @status APPROVED (IMS) */ - template (value) TIMS3GPP_Type cs_TIMS3GPP_Emergency(template (omit) Action p_Action := omit) := f_IMS_TIMS3GPP_TX("emergency", -, p_Action); /* @status APPROVED (IMS) */ - template (value) TIMS3GPP_Type cs_TIMS3GPP_Restoration(template (omit) Action p_Action := "initial-registration") := f_IMS_TIMS3GPP_TX("restoration", -, p_Action); /* @status APPROVED (IMS) */ + template (value) State_and_event_info_Type cs_State_and_event_info(template (omit) charstring p_State, + template (value) DirectionType p_Direction, + template (omit) charstring p_Event) := + { + attr := omit, + state_info := p_State, + direction := p_Direction, + event := p_Event, + anyExt := omit, + elem_list := {} + } + template (value) DirectionType cs_DirectionReceiver := receiver; + template (present) DirectionType cr_DirectionInitiator := initiator; } diff --git a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_Common.ttcn b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_Common.ttcn similarity index 68% rename from LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_Common.ttcn rename to LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_Common.ttcn index 52b1a73..c12a83b 100644 --- a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_Common.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_Common.ttcn @@ -2,18 +2,20 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ - +/** + * @author STF160, STF471 + * @version $Id: LibSip_Common.ttcn 12281 2014-09-23 14:32:36Z seka $ + * @desc This module provides the common definitions for SIP messages. + * This module is part of LibSipV3. +*/ module LibSip_Common { - type set length (1..infinity) of charstring Charstring_List; // @sic R5w140113, R5w140009: new common definition sic@ - - //------------------------------------------------------------------------------ - // @sic R5w140113, R5w140009: moved from LibSip_SIPTypesAndValues: sic@ + type set length (1..infinity) of charstring Charstring_List; // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31, // 20.33, 20.34, 20.39, 20.42, 20.44] @@ -40,5 +42,7 @@ module LibSip_Common { type set of GenericParam CommaParam_List; //------------------------------------------------------------------------------ - } +with { + encode "LibSip V3"; +} // end module LibSip_Common diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn similarity index 90% rename from IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn rename to LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn index 37bd398..8272599 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_MessageBodyTypes.ttcn @@ -2,16 +2,15 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-04-11 22:35:20 +0200 (Fri, 11 Apr 2014) $ -// $Rev: 11180 $ +// @version: IWD_15wk38 +// $Date: 2014-09-19 10:54:18 +0200 (Fri, 19 Sep 2014) $ +// $Rev: 12255 $ /******************************************************************************/ module LibSip_MessageBodyTypes { - import from LibSip_SDPTypes all; import from LibSip_SimpleMsgSummaryTypes all; type charstring XmlBody; diff --git a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SDPTypes.ttcn b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SDPTypes.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SDPTypes.ttcn rename to LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SDPTypes.ttcn index a69769a..6e1f691 100644 --- a/LTE_A_IWD_14wk37/Common/IMS_LibSip/LibSip_SDPTypes.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SDPTypes.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ /** * @author STF 346, STF366, STF368, STF369, STF450, STF471 - * @version $Id: LibSip_SDPTypes.ttcn 620 2014-07-10 07:26:06Z nikolajev $ + * @version $Id: LibSip_SDPTypes.ttcn 636 2014-09-18 11:44:10Z rennoch $ * @desc This module defines message, attribute, structured and simple * SDP types as well constants used by LipSip constructs.
* Note that any changes made to the definitions in this module @@ -18,12 +18,9 @@ * module regarding their modifications or additions * This module is part of LibSipV3. * @remark Adding of new attributes types is ok; Adding of new optional attributes in @see SDP_attribute type is ok; Existing attribute types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org - * @remark Changes done by MCC160: - * - import statements changed to avoid circular imports: import of LibSip_SIPTypesAndValues replaced by LibSip_Common */ module LibSip_SDPTypes { - //import from LibSip_SIPTypesAndValues all; MCC160: causes circuler imports - import from LibSip_Common all; // MCC160: to avoid circuler imports + import from LibSip_Common all; group Constants { group SimpleConstants { // SDP net_type @@ -174,53 +171,57 @@ module LibSip_SDPTypes { charstring attr_value optional } - type record SDP_attribute_maxptime { + type record SDP_attribute_maxptime { charstring attr_value } - type record SDP_attribute_tcap { + type record SDP_attribute_tcap { integer trpr_cap_num, Charstring_List proto_list } - type record SDP_attribute_pcfg { + type record SDP_attribute_pcfg { integer config_number, Charstring_List pot_cfg_list optional } - type record SDP_attribute_acfg { + type record SDP_attribute_acfg { integer config_number, Charstring_List sel_cfg_list optional } - type record SDP_attribute_ecn_capable_rtp { + type record SDP_attribute_ecn_capable_rtp { Charstring_List init_list, Charstring_List parm_list optional } - type record SDP_attribute_rtcp_fb { + type record SDP_attribute_rtcp_fb { charstring rtcp_fb_pt, charstring rtcp_fb_val } - type record SDP_attribute_rtcp_xr { + type record SDP_attribute_rtcp_xr { Charstring_List xr_format_list optional } - type record SDP_attribute_rtcp_rsize { + type record SDP_attribute_rtcp_rsize { } - type record SDP_attribute_3ge2ae { + type record SDP_attribute_3ge2ae { charstring indicator } - type record SDP_attribute_crypto { + type record SDP_attribute_crypto { charstring tag, charstring crypto_suite, charstring key_params, Charstring_List session_params optional } + type record SDP_attribute_content { + Charstring_List content_params + } + type union SDP_attribute { SDP_attribute_cat cat, SDP_attribute_keywds keywds, @@ -254,6 +255,7 @@ module LibSip_SDPTypes { SDP_attribute_rtcp_rsize rtcp_rsize, SDP_attribute_3ge2ae e2ae, SDP_attribute_crypto crypto, + SDP_attribute_content content, //* unknown has to be the last else encoding/decoding won't work! SDP_attribute_unknown unknown } diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn similarity index 93% rename from IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn rename to LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn index f7f5b06..7351179 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SIPTypesAndValues.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ /** - * @author STF 346, STF366, STF368, STF369, STF450, STF471 - * @version $Id: LibSip_SIPTypesAndValues.ttcn 623 2014-08-18 12:22:28Z rennoch $ + * @author STF 346, STF366, STF368, STF369, STF450, STF471, STF160 + * @version $Id: LibSip_SIPTypesAndValues.ttcn 636 2014-09-18 11:44:10Z rennoch $ * @desc This module defines message, header, structured and simple SIP * types as well constants used by LipSip constructs.
* Note that any changes made to the definitions in this module @@ -19,22 +19,10 @@ * This module is part of LibSipV3. * @remark Adding of new message and header types is ok; Adding of new optional header fields in * @see MessageHeader type is ok but should be done at same time as dummy template updates; Existing message or header types shall not be changed or removed - change requests shall be made to http://t-ort.etsi.org - * @remark Changes done by MCC160: - * - import statements changed to avoid circular imports - * - import of LibSip_Common - * - types of LibSip_Common are commented out (Charstring_List, GenValue, GenericParam, SemicolonParam_List, AmpersandParam_List, CommaParam_List) - * - import statements changed to avoid dependency of PIXITs - * - import of LibSip_PIXITS commented out - * - c_mimeMultipart commented out - * - definition of DisplayName added - * - NameAddr changed to use DisplayName instead charstring (acc. to R5w140111) - * - featureCaps restored in MessageHeader - * - encoding rule "SIPCodec" added to types Request, *_Request, RequestUnion, Response (note: how to deal with this in the future is FFS) */ module LibSip_SIPTypesAndValues { import from LibSip_MessageBodyTypes all; - //import from LibSip_PIXITS all; MCC160: type definitions shall not import PIXITs - import from LibSip_Common all; // MCC160: to avoid circuler imports + import from LibSip_Common all; group Constants { group SimpleConstants { @@ -95,9 +83,6 @@ module LibSip_SIPTypesAndValues { // XML name resource-list const charstring c_xmlresourcelistApplication := "application/resource-lists+xml"; -/* // MIME name application */ -/* const charstring c_mimeMultipart := "multipart/mixed;boundary=""" & PX_SIP_MIME_BOUNDARY & """"; */ - // IMS 3GPP name application const charstring c_ims3gppApplication := "application/3gpp-ims+xml"; @@ -125,8 +110,7 @@ module LibSip_SIPTypesAndValues { // text content of 1300 bytes for messages with message body const charstring c_longMessageContent_1300Bytes := "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & - "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & oct2char('0D'O) & oct2char('0A'O); - // CRLF + "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" & oct2char('0D'O) & oct2char('0A'O); // CRLF // Default SIP port number : 5060 const integer c_defaultSipPort := 5060; @@ -169,8 +153,7 @@ module LibSip_SIPTypesAndValues { const PrivacyValue c_privacy_session := "session"; // - const charstring c_AT := "@"; - // MRO + const charstring c_AT := "@"; // MRO const charstring c_SP := oct2char('20'O); const charstring c_SLASH := oct2char('2F'O); const charstring c_LT := oct2char('3C'O); @@ -291,8 +274,7 @@ module LibSip_SIPTypesAndValues { headers := omit }; - const To c_empty_To := { - // value of To header + const To c_empty_To := { // value of To header fieldName := TO_E, addressField := { nameAddr := { @@ -538,7 +520,10 @@ module LibSip_SIPTypesAndValues { SESSION_ID_E, SIP_ETAG_E, SIP_IF_MATCH_E, - FEATURE_CAPS_E + FEATURE_CAPS_E, + // 6086 + RECV_INFO_E, + INFO_PACKAGE_E } // [7.1 ] @@ -567,35 +552,10 @@ module LibSip_SIPTypesAndValues { UNKNOWN_METHOD_E } -/* type union GenValue { */ -/* charstring tokenOrHost, */ -/* charstring quotedString */ -/* } */ - -/* // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31, */ -/* // 20.33, 20.34, 20.39, 20.42, 20.44 ] */ -/* type record GenericParam { */ -/* charstring id, */ -/* GenValue paramValue optional */ -/* } */ - -/* // [? ] */ -/* type set of GenericParam SemicolonParam_List; */ - -/* // [? ] */ -/* type set of GenericParam AmpersandParam_List; */ - -/* // [? ] */ -/* type set of GenericParam CommaParam_List; */ - -/* type set length (1..infinity) of charstring Charstring_List; */ - // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43 ] type record HostPort { - charstring host optional, - // hostname, IPv4 or IPv6 - integer portField - optional // represented as an integer + charstring host optional, // hostname, IPv4 or IPv6 + integer portField optional // represented as an integer } // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ] @@ -618,41 +578,30 @@ module LibSip_SIPTypesAndValues { * @member urlParameters Contains either SIP or TEL URL parameters, separated by semicolons, e.g. transport=tcp or user=phone * @member headers Additional information added after the parameters, e.g. priority=urgent */ - type record SipUriComponents { - // sip-uri acc. to RFC 3261 cl. 19.1 + type record SipUriComponents { // sip-uri acc. to RFC 3261 cl. 19.1 UserInfo userInfo optional, HostPort hostPort } - type record TelUriComponents { - // tel-uri acc. to RFC 3966 + type record TelUriComponents { // tel-uri acc. to RFC 3966 charstring subscriber } - type record UrnUriComponents { - // urn-uri acc. to RFC 2141 - charstring namespaceId, - // e.g. "service" as acc. to RFC 5031 - charstring - namespaceSpecificString // e.g. "sos" + type record UrnUriComponents { // urn-uri acc. to RFC 2141 + charstring namespaceId, // e.g. "service" as acc. to RFC 5031 + charstring namespaceSpecificString // e.g. "sos" } type union UriComponents { - SipUriComponents sip, - // scheme: "sip" or sips" - TelUriComponents tel, - // scheme: "tel" - UrnUriComponents urn, - // scheme: "urn" - charstring - other // scheme: none of the above schemes + SipUriComponents sip, // scheme: "sip" or sips" + TelUriComponents tel, // scheme: "tel" + UrnUriComponents urn, // scheme: "urn" + charstring other // scheme: none of the above schemes } type record SipUrl { - charstring scheme, - // e.g "sip" or "tel" - UriComponents components, - // corresponding to the scheme + charstring scheme, // e.g "sip" or "tel" + UriComponents components, // corresponding to the scheme SemicolonParam_List urlParameters optional, AmpersandParam_List headers optional } @@ -668,8 +617,7 @@ module LibSip_SIPTypesAndValues { // [20.4 ] type record AlertInfoBody { - charstring url, - // any URI + charstring url, // any URI SemicolonParam_List genericParams optional } @@ -684,8 +632,7 @@ module LibSip_SIPTypesAndValues { // [20.9 ] type record CallInfoBody { - charstring url, - // any URI + charstring url, // any URI SemicolonParam_List infoParams optional } @@ -699,24 +646,22 @@ module LibSip_SIPTypesAndValues { } // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ] - type union DisplayName // MCC160: missing type + type union DisplayName { charstring token, charstring quotedString } - + // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39 ] type record NameAddr { - DisplayName displayName optional, // MCC160: type corected -/* charstring displayName optional, */ + DisplayName displayName optional, SipUrl addrSpec } // [20.10, 20.20, 20.31, 20.39 ] type union Addr_Union { NameAddr nameAddr, - SipUrl - addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field + SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field } // [20.10 ] @@ -726,8 +671,7 @@ module LibSip_SIPTypesAndValues { } // [20.10 ] - type set of ContactAddress ContactAddress_List; - // 1 or more elements + type set of ContactAddress ContactAddress_List; // 1 or more elements // [20.10 ] type union ContactBody { charstring wildcard, @@ -750,12 +694,10 @@ module LibSip_SIPTypesAndValues { type record of Credentials CredentialsList; // [20.19, 20.23, 20.33 ] - type charstring DeltaSec; - // an external operation can handle this field + type charstring DeltaSec; // an external operation can handle this field // [20.18 ] type record ErrorInfoBody { - charstring uri, - // any URI + charstring uri, // any URI SemicolonParam_List genericParams optional } @@ -780,14 +722,12 @@ module LibSip_SIPTypesAndValues { // [20.5 ] type set of charstring Method_List; - // [20.29, 20.32, 20.37, 20.40 ] type charstring OptionTag; // [20.29, 20.32, 20.37, 20.40 ] type set of OptionTag OptionTag_List; - // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2 ] type record OtherAuth { charstring authScheme, @@ -823,10 +763,8 @@ module LibSip_SIPTypesAndValues { // [20.38 ] type record TimeValue { - integer majorDigit, - // represented as an integer - integer minorDigit - optional // represented as an integer + integer majorDigit, // represented as an integer + integer minorDigit optional // represented as an integer } // [20.42 ] @@ -847,8 +785,7 @@ module LibSip_SIPTypesAndValues { // [20.43 ] type record WarningValue { - integer warnCode, - // represented as an integer + integer warnCode, // represented as an integer WarnAgent warnAgent, charstring warnText } @@ -922,8 +859,7 @@ module LibSip_SIPTypesAndValues { // [20.7 RFC2617 3.2.2 ] type record Authorization { FieldName fieldName (AUTHORIZATION_E) , - CredentialsList - body // changed from Credentials to allow multiple Authorization headers + CredentialsList body // changed from Credentials to allow multiple Authorization headers } // [20.8 ] @@ -966,8 +902,7 @@ module LibSip_SIPTypesAndValues { // [20.14 ] type record ContentLength { FieldName fieldName (CONTENT_LENGTH_E) , - integer - len // this field is represented as an integer + integer len // this field is represented as an integer } // [20.15 ] @@ -979,8 +914,7 @@ module LibSip_SIPTypesAndValues { // [20.16 ] type record CSeq { FieldName fieldName (CSEQ_E) , - integer seqNumber, - // this field is represented as an integer + integer seqNumber, // this field is represented as an integer charstring method } @@ -1024,8 +958,7 @@ module LibSip_SIPTypesAndValues { // [20.22 ] type record MaxForwards { FieldName fieldName (MAX_FORWARDS_E) , - integer - forwards // this field is represented as an integer + integer forwards // this field is represented as an integer } // [20.23 ] @@ -1037,10 +970,8 @@ module LibSip_SIPTypesAndValues { // [20.24 RFC2616 19.4.1 ] type record MimeVersion { FieldName fieldName (MIME_VERSION_E) , - integer majorNumber, - // this field is represented as an integer - integer - minorNumber // this field is represented as an integer + integer majorNumber, // this field is represented as an integer + integer minorNumber // this field is represented as an integer } // [20.25 ] @@ -1080,6 +1011,26 @@ module LibSip_SIPTypesAndValues { RouteBody_List routeBody } + type set of InfoPackage_Type InfoPackage_List; + + type record InfoPackage_Type { + charstring infoPackageName, + SemicolonParam_List infoPackageParams optional + + } + + //[6086] + type record RecvInfo { + FieldName fieldName(RECV_INFO_E), + InfoPackage_List infoPackageList + } + + //[6086] + type record InfoPackage { + FieldName fieldName(INFO_PACKAGE_E), + InfoPackage_Type infoPackageType + } + // [20.31 ] type record ReplyTo { FieldName fieldName (REPLY_TO_E) , @@ -1230,8 +1181,7 @@ module LibSip_SIPTypesAndValues { PMediaAuthorization_List pMediaAuthorizations } - type charstring PMediaAuthValue; - // HEXDIG "0"-"9", "A"-"F" + type charstring PMediaAuthValue; // HEXDIG "0"-"9", "A"-"F" type record of PMediaAuthValue PMediaAuthorization_List; @@ -1607,6 +1557,7 @@ module LibSip_SIPTypesAndValues { // @sic R5-133151 update of header fields sic@ HistoryInfo historyInfo optional, // 4244 + InfoPackage infoPackage optional, //6086 InReplyTo inReplyTo optional, // only in requests MaxForwards maxForwards optional, @@ -1659,6 +1610,7 @@ module LibSip_SIPTypesAndValues { Reason reason optional, // 3326 RecordRoute recordRoute optional, + RecvInfo recvInfo optional, //6086 RequestDisposition requestDisposition optional, // 3841 ReferredBy referredBy optional, @@ -1930,7 +1882,8 @@ module LibSip_SIPTypesAndValues { PUBLISH_Request Publish, UPDATE_Request Update, REFER_Request Refer, - MESSAGE_Request Message + MESSAGE_Request Message, + INFO_Request Info// [2976 ] } with { encode "SIPCodec"} } // end group RequestTypes diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn similarity index 94% rename from IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn rename to LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn index c874318..c037246 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn +++ b/LTE_A_IWD_15wk38/Common/IMS_LibSip/LibSip_SimpleMsgSummaryTypes.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ /** diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/AlternativeService.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/AlternativeService.xsd similarity index 100% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/AlternativeService.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/AlternativeService.xsd diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/RFC3680_reginfo.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/RFC3680_reginfo.xsd similarity index 100% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/RFC3680_reginfo.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/RFC3680_reginfo.xsd diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/RFC3863_pdif.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/RFC3863_pdif.xsd similarity index 100% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/RFC3863_pdif.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/RFC3863_pdif.xsd diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd similarity index 100% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10.xsd diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd similarity index 100% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/RFC4119_pdif_geopriv10_basicPolicy.xsd diff --git a/LTE_A_IWD_14wk37/Common/IMS_XSD/RFC5628_gruuinfo.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/RFC5628_gruuinfo.xsd similarity index 100% rename from LTE_A_IWD_14wk37/Common/IMS_XSD/RFC5628_gruuinfo.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/RFC5628_gruuinfo.xsd diff --git a/LTE_A_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd new file mode 100644 index 0000000..e70917b --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IMS_XSD/SRVCC.xsd @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/xml.xsd b/LTE_A_IWD_15wk38/Common/IMS_XSD/xml.xsd similarity index 95% rename from IMS_PART4_IWD_14wk37/Common/IMS_XSD/xml.xsd rename to LTE_A_IWD_15wk38/Common/IMS_XSD/xml.xsd index 3e391d7..5f9b416 100644 --- a/IMS_PART4_IWD_14wk37/Common/IMS_XSD/xml.xsd +++ b/LTE_A_IWD_15wk38/Common/IMS_XSD/xml.xsd @@ -1,5 +1,5 @@ - + diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/DHCPv4_Common.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/DHCPv4_Common.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/IP_PTC/DHCPv4_Common.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/DHCPv4_Common.ttcn index f4e35df..8775513 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/DHCPv4_Common.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/DHCPv4_Common.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ // $Rev: 9858 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/DHCPv4_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/DHCPv4_TypeDefs.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/IP_PTC/DHCPv4_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/DHCPv4_TypeDefs.ttcn index 1831b57..3378f3f 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/DHCPv4_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/DHCPv4_TypeDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ // $Rev: 8395 $ /******************************************************************************/ diff --git a/LTE_A_IWD_15wk38/Common/IP_PTC/DNS_Functions.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/DNS_Functions.ttcn new file mode 100644 index 0000000..7f5b6bf --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/DNS_Functions.ttcn @@ -0,0 +1,293 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-02-20 21:45:07 +0100 (Fri, 20 Feb 2015) $ +// $Rev: 13000 $ +/******************************************************************************/ + +module DNS_Functions { + import from CommonDefs all; + import from CommonIP all; + import from DNS_TypeDefs all; + + type record DNS_AddressResolution_Type { /* entries of internal table for address resolution: + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + charstring DomainNamePattern, + charstring IPv4Address, + charstring IPv6Address + }; + type record of DNS_AddressResolution_Type DNS_AddressResolutionTable_Type; /* table for address resolution + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + template (value) DNS_AddressResolution_Type cs_DNS_AddressResolution(charstring p_DomainNamePattern, + charstring p_IPv4Address, + charstring p_IPv6Address) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + DomainNamePattern := p_DomainNamePattern, + IPv4Address := p_IPv4Address, + IPv6Address := p_IPv6Address + }; + + /* + * @desc to build up address resolution table + * NOTE: currently there is just one entry to match any domain name + * @param p_PdnIndex + * @return DNS_AddressResolutionTable_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_DNS_AddressResolutionTable(PDN_Index_Type p_PdnIndex) return DNS_AddressResolutionTable_Type + { + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); + var template (value) DNS_AddressResolutionTable_Type v_DNS_AddressResolutionTable := { + cs_DNS_AddressResolution("*", v_PDN_AddressInfo.XCAP_ServerAddressIPv4, v_PDN_AddressInfo.XCAP_ServerAddressIPv6) + }; + return valueof(v_DNS_AddressResolutionTable); + } + + /* + * @desc get entry from the address resolution table matching the given domain name; + * return either IPv4 or IPv6 address depending on the qtype if entry is found or "" else + * @param p_AddressResolutionTable + * @param p_DomainName + * @param p_QType + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_DNS_ServerGetIpAddress(DNS_AddressResolutionTable_Type p_AddressResolutionTable, + charstring p_DomainName, + O2_Type p_QType) return charstring + { + var integer i; + var charstring v_Pattern; + var charstring v_MatchingDomainName; + var charstring v_IPAddr := ""; + + for (i := 0; i < lengthof(p_AddressResolutionTable); i := i + 1) { + v_Pattern := "(" & p_AddressResolutionTable[i].DomainNamePattern & ")"; + v_MatchingDomainName := regexp(p_DomainName, v_Pattern, 0); + if (lengthof(v_MatchingDomainName) > 0) { + select (p_QType) { + case (tsc_DNSTYPE_A) { v_IPAddr := p_AddressResolutionTable[i].IPv4Address; } + case (tsc_DNSTYPE_AAAA) { v_IPAddr := p_AddressResolutionTable[i].IPv6Address; } /* @sic R5s150085 change 1: IPv6 address rather than IPv4 sic@ */ + } + break; + } + } + return v_IPAddr; + } + + //---------------------------------------------------------------------------- + /* + * @desc decode domain name being encoded acc. RFC 1035 cl. 4.1.2: + * "a domain name represented as a sequence of labels, where each label consists of a length octet followed by that number of octets. + * The domain name terminates with the zero length octet for the null label of the root..." + * @param p_OctetString + * @return charstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_DomainName_Decode(octetstring p_OctetString) return charstring + { + var CharStringList_Type v_LableList := {} + var integer i := 0; + var integer k := 0; + var integer v_StringLength := lengthof(p_OctetString); + var integer v_LableLength; + var octetstring v_EncodedLable; + + while (true) { + v_LableLength := oct2int(p_OctetString[i]); + i := i + 1; + if ((v_LableLength > 0) and (i + v_LableLength < v_StringLength)) { + v_EncodedLable := substr(p_OctetString, i, v_LableLength); + i := i + v_LableLength; + v_LableList[k] := oct2char(v_EncodedLable); + k := k + 1; + } else { + break; + } + } + return f_StringJoin(v_LableList, "."); + } + + //---------------------------------------------------------------------------- + + template DNS_Header cr_DNS_Query_Header := + { /* RFC 1035 clause 4.1.1 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + id := ?, + qr := '0'B, + opcode := tsc_DNSOPCODE_QUERY, + aa := ?, + tc := '0'B, + rd := ?, + ra := ?, + z := '000'B, + rcode := ?, + qdcount := 1, + ancount := 0, + nscount := 0, + arcount := 0 + }; + + template DNS_Question cr_DNS_Question(template (present) O2_Type p_QType := ?) := + { /* RFC 1035 clause 4.1.2 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + qname := ?, + qtype := p_QType, + qclass := tsc_DNSCLASS_IN + }; + + template DNSMessage cr_DNS_Query := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + dnsHeader := cr_DNS_Query_Header, + questions := ?, + answer := omit, + authority := omit, + additional := omit + }; + + //---------------------------------------------------------------------------- + + template (value) DNS_Header cs_DNS_Response_Header(DNS_Header p_DNS_Query_Header, + integer p_Ancount) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + id := p_DNS_Query_Header.id, + qr := '1'B, + opcode := p_DNS_Query_Header.opcode, // RFC 1035 / 4.1.1 + aa := '1'B, + tc := '0'B, + rd := '0'B, + ra := '0'B, + z := '000'B, + rcode := tsc_DNSRCODE_NoError, + qdcount := p_DNS_Query_Header.qdcount, + ancount := p_Ancount, + nscount := 0, + arcount := 0 + }; + + template (value) DNS_RDATAu cs_DNS_RDATAu_A(O4_Type p_IPv4Addr) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + a := { + ipv4addr := p_IPv4Addr + } + }; + + template (value) DNS_RDATAu cs_DNS_RDATAu_AAAA(O16_Type p_IPv6Addr) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + aaaa := { + ipv6addr := p_IPv6Addr + } + }; + + template (value) DNS_RR cs_DNS_RR(octetstring p_Name, + O2_Type p_RRType, + UInt16_Type p_DataLength, + template (value) DNS_RDATAu p_RData) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + name := p_Name, + rrtype := p_RRType, + class := tsc_DNSCLASS_IN, + ttl := 86400, // one day + rdlength := p_DataLength, + rdata := p_RData + }; + + template (value) DNSMessage cs_DNS_Reponse(DNSMessage p_DNS_Query, + template (omit) DNS_RRs p_DNS_RRs) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + dnsHeader := cs_DNS_Response_Header(p_DNS_Query.dnsHeader, lengthof(p_DNS_RRs)), + questions := p_DNS_Query.questions, + answer := p_DNS_RRs, + authority := omit, + additional := omit + }; + + //---------------------------------------------------------------------------- + /* + * @desc generate answer(s) to a single question; returns {} when the question is not supported + * @param p_DNS_Question + * @param p_AddressResolutionTable + * @return template (value) DNS_RRs + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_DNS_Answer(DNS_Question p_DNS_Question, + DNS_AddressResolutionTable_Type p_AddressResolutionTable) return template (value) DNS_RRs + { + var template (value) DNS_RRs v_DNS_RRs := {}; + var UInt16_Type v_DataLength; + var template (value) DNS_RDATAu v_RData; + var charstring v_DomainName := fl_DomainName_Decode(p_DNS_Question.qname); + var O2_Type v_QType := p_DNS_Question.qtype; + var charstring v_IpAddress; + + select (v_QType) { + case (tsc_DNSTYPE_A, tsc_DNSTYPE_AAAA) { + v_IpAddress := fl_DNS_ServerGetIpAddress(p_AddressResolutionTable, v_DomainName, v_QType); + if (v_QType == tsc_DNSTYPE_A) { /* @sic R5s150085 change 2 sic@ */ + v_DataLength := 4; + v_RData := cs_DNS_RDATAu_A(f_Convert_IPv4Addr2OctString(v_IpAddress)); + } else { + v_DataLength := 16; + v_RData := cs_DNS_RDATAu_AAAA(f_Convert_IPv6Addr2OctString(v_IpAddress)); + } + v_DNS_RRs := { cs_DNS_RR(p_DNS_Question.qname, v_QType, v_DataLength, v_RData) }; + } + case else { + f_ErrorLog(__FILE__, __LINE__, "unsupported DNS question (skipped)"); + } + } + return v_DNS_RRs; + } + + //---------------------------------------------------------------------------- + /* + * @desc function representing the DNS server: + * returns encoded DNS response if the given query is supported or ''O else + * @param p_Request + * @param p_PdnIndex + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_DNS_GetEncodedResponse(octetstring p_Request, + PDN_Index_Type p_PdnIndex) return octetstring + { + var DNS_AddressResolutionTable_Type v_DNS_AddressResolutionTable := f_DNS_AddressResolutionTable(p_PdnIndex); + var bitstring v_Bitstring := oct2bit(p_Request); + var octetstring v_Response := ''O; + var DNSMessage v_DNSQuery; + var DNS_Question v_DNS_Question; + var template (value) DNSMessage v_DNS_Response; + var template (value) DNS_RRs v_DNS_RRs := {} + + if (decvalue(v_Bitstring, v_DNSQuery) != 0) { + f_ErrorLog(__FILE__, __LINE__, "Cannot decode DNS query (skipped)"); + return v_Response; + } + if (not match(v_DNSQuery, cr_DNS_Query)) { + f_ErrorLog(__FILE__, __LINE__, "Invalid/unexpected DNS query"); + return v_Response; + } + if (v_DNSQuery.dnsHeader.qdcount > 1) { + f_ErrorLog(__FILE__, __LINE__, "multiple DNS questions not supported yet in the same query"); + return v_Response; + } + v_DNS_Question := v_DNSQuery.questions[0]; + if (not match(v_DNS_Question, cr_DNS_Question)) { + f_ErrorLog(__FILE__, __LINE__, "Invalid/unexpected DNS question"); + return v_Response; + } + + v_DNS_RRs := fl_DNS_Answer(v_DNS_Question, v_DNS_AddressResolutionTable); + if (lengthof(v_DNS_RRs) > 0) { + v_DNS_Response := cs_DNS_Reponse(v_DNSQuery, v_DNS_RRs); + v_Response := bit2oct(encvalue(v_DNS_Response)); + } + return v_Response; + } + +} diff --git a/LTE_A_IWD_15wk38/Common/IP_PTC/DNS_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/DNS_TypeDefs.ttcn new file mode 100644 index 0000000..5d60db7 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/DNS_TypeDefs.ttcn @@ -0,0 +1,141 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2014-12-01 15:13:04 +0100 (Mon, 01 Dec 2014) $ +// $Rev: 12662 $ +/******************************************************************************/ + +module DNS_TypeDefs { + + import from CommonDefs all; + + const B4_Type tsc_DNSOPCODE_QUERY := '0000'B; + const B4_Type tsc_DNSOPCODE_IQUERY := '0001'B; + const B4_Type tsc_DNSOPCODE_STATUS := '0010'B; + + + const B4_Type tsc_DNSRCODE_NoError := '0000'B; + const B4_Type tsc_DNSRCODE_FormatError := '0001'B; + const B4_Type tsc_DNSRCODE_ServerFailure := '0010'B; + const B4_Type tsc_DNSRCODE_NameError := '0011'B; + const B4_Type tsc_DNSRCODE_NotImplemented := '0100'B; + const B4_Type tsc_DNSRCODE_Refused := '0101'B; + + + const O2_Type tsc_DNSTYPE_A := '0001'O; + const O2_Type tsc_DNSTYPE_NS := '0002'O; + const O2_Type tsc_DNSTYPE_MD := '0003'O; + const O2_Type tsc_DNSTYPE_MF := '0004'O; + const O2_Type tsc_DNSTYPE_CNAME := '0005'O; + const O2_Type tsc_DNSTYPE_SOA := '0006'O; + const O2_Type tsc_DNSTYPE_MB := '0007'O; + const O2_Type tsc_DNSTYPE_MG := '0008'O; + const O2_Type tsc_DNSTYPE_MR := '0009'O; + const O2_Type tsc_DNSTYPE_NULL := '000A'O; + const O2_Type tsc_DNSTYPE_WKS := '000B'O; + const O2_Type tsc_DNSTYPE_PTR := '000C'O; + const O2_Type tsc_DNSTYPE_HINFO := '000D'O; + const O2_Type tsc_DNSTYPE_MINFO := '000E'O; + const O2_Type tsc_DNSTYPE_MX := '000F'O; + const O2_Type tsc_DNSTYPE_TXT := '0010'O; + + const O2_Type tsc_DNSTYPE_AAAA := '001C'O; // IPv6 address, RFC 3596 + const O2_Type tsc_DNSTYPE_SRV := '0021'O; // Server selection, RFC 2782 + const O2_Type tsc_DNSTYPE_NAPTR := '0023'O; // Naming Authority Pointer, RFC 3403 + + const O2_Type tsc_DNSTYPE_AXFR := '00FC'O; // RFC 1035 RFC 3.2.3 + const O2_Type tsc_DNSTYPE_MAILB := '00FD'O; + const O2_Type tsc_DNSTYPE_MAILA := '00FE'O; + const O2_Type tsc_DNSTYPE_ALL := '00FF'O; + + const O2_Type tsc_DNSCLASS_IN := '0001'O; + + type record DNSMessage { // RFC 1035 clause 4 + DNS_Header dnsHeader, + DNS_Questions questions optional, + DNS_RRs answer optional, + DNS_RRs authority optional, + DNS_RRs additional optional + }; + + type record DNS_Header { // RFC 1035 clause 4.1.1 + O2_Type id, + B1_Type qr, // 0 message is a query, 1 message is a response + B4_Type opcode, // 0 QUERY, 1 IQUERY, 2 STATUS, 3-15 reserved + B1_Type aa, // Authoritative Answer + B1_Type tc, // Truncation + B1_Type rd, // Recursion desired + B1_Type ra, // Recursion available + B3_Type z, // reserved, must be 0 in all queries and responses + B4_Type rcode, // Response code + UInt16_Type qdcount, // number of entries in the question section + UInt16_Type ancount, // number of RRs in the answer section + UInt16_Type nscount, // number of RRs in the auth. records section + UInt16_Type arcount // number of RRs in the additional records section + }; + + type record of DNS_Question DNS_Questions; + + type record DNS_Question { // RFC 1035 clause 4.1.2 + octetstring qname, + O2_Type qtype, + O2_Type qclass + }; + + type record of DNS_RR DNS_RRs; + + type record DNS_RR { // RFC 1035 clause 4.1.3 + octetstring name, + O2_Type rrtype, + O2_Type class, + UInt32_Type ttl, + UInt16_Type rdlength, + DNS_RDATAu rdata // union of different types + }; + + + type union DNS_RDATAu { + DNS_A_RR a, // RFC 1035 clause 3.4.1, A 32 bit Internet Address +/* DNS_PTR_RR ptr, // RFC 1035 clause 3.3.12 */ +/* DNS_NAPTR_RR naptr, // RFC 3403 clause 4.1 */ + DNS_AAAA_RR aaaa // RFC 3596 +/* DNS_SRV_RR srv // RFC 2782 */ + }; + +/* type record DNS_PTR_RR { // RFC 1035 clause 3.3.12 */ +/* charstring ptrdname */ +/* }; */ + +/* type record DNS_NAPTR_RR { // RFC 3403 clause 4.1 */ +/* UInt16_Type order, */ +/* UInt16_Type preference, */ +/* charstring flags optional, */ +/* charstring services optional, */ +/* charstring dnrr_regexp optional, */ +/* charstring replacement optional */ +/* }; */ + + type record DNS_AAAA_RR { // RFC 3596 clause 2.2 + O16_Type ipv6addr + }; + + type record DNS_A_RR { // RFC 1035 clause 3.4.1, A 32 bit Internet Address + O4_Type ipv4addr + }; + +/* type record DNS_SRV_RR { // RFC 2782 (but where exactly is the format specification?) */ +/* UInt16_Type priority, */ +/* UInt16_Type weight, */ +/* UInt16_Type srvport, */ +/* charstring target */ +/* }; */ + +} with {encode "DNS-Codec"} + + + + diff --git a/IMS_PART4_IWD_14wk37/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn similarity index 63% rename from IMS_PART4_IWD_14wk37/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn index 95bca81..c7a868d 100644 --- a/IMS_PART4_IWD_14wk37/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/HTTP_ASP_TypeDefs.ttcn @@ -2,21 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-17 14:36:46 +0200 (Tue, 17 Jun 2014) $ -// $Rev: 11745 $ +// @version: IWD_15wk38 +// $Date: 2015-06-04 19:23:42 +0200 (Thu, 04 Jun 2015) $ +// $Rev: 13657 $ /******************************************************************************/ -/** - * Note: 'Thin' Http type defs describing the structures relevant - * for the supplementary services test cases 34.229-1 section 15. - */ - module HTTP_ASP_TypeDefs { import from CommonDefs all; - import from IP_ASP_TypeDefs all; // TLSInfo_Type + import from IP_ASP_TypeDefs all; import from LibSip_SIPTypesAndValues all; // NOTE: the same header definitions are used for HTTP as for SIP (Authorization, ContentType, WwwAuthenticate, AuthenticationInfo, Expires) group HTTP_ASP_Definitions { @@ -24,25 +19,18 @@ module HTTP_ASP_TypeDefs { //---------------------------------------------------------------------------- // HTTP Control - type record HttpRoutingInfo_Type { /* Routing info to distinguish HTTP data for XCAP server and BSF */ - charstring serverAddr, /* IP address of simulated server */ - integer serverPort /* Port number of simulated server */ + type record HttpServerInfo_Type { + IP_AddrInfo_Type serverAddr, /* IP address of simulated server */ + PortNumber_Type serverPort, /* Port number of simulated server */ + IP_DrbInfo_Type drbInfo, /* DRB info as used by the IP PTC (LTE model, see TS 36.523-3 [30]) */ + TLSInfo_Type tlsInfo optional /* Description of the TLS connection to be used */ }; - type enumerated HttpAuthenticationMechanism_Type { - noAuthentication, /* no authentication (NOTE: In general "no authentication" is not applicable to conformance testing) */ - httpDigestAuthentication, /* HTTP digest authentication according to 24.623[36] clause 5.2.3.2 and RFC 2617 [37] */ - gaaAuthentication /* GAA based authentication according to 33.222 [35] and 24.109 [33] */ - }; - + type record length (1 .. infinity) of HttpServerInfo_Type HttpServerList_Type; type record HTTP_CTRL_REQ { /* ASP type to configure the http layer; when any of the optional fields is omitted the previous configuration of this field is kept */ - HttpAuthenticationMechanism_Type authenticationMechanism optional, /* Authentication mechanism */ - TLSInfo_Type tlsInfo optional, /* Description of the TLS connection to be used */ - HttpRoutingInfo_Type xcapServer optional, /* IP address and port of simulated XCAP server */ - HttpRoutingInfo_Type bsfServer optional, /* IP address and port of simulated BSF server */ - IP_DrbInfo_Type drbInfo optional /* DRB info as used by the IP PTC (LTE model, see TS 36.523-3 [30]) */ + HttpServerList_Type httpServerList optional /* IP address and port of simulated HTTP servers */ }; type record HTTP_CTRL_CNF { /* ASP type to confirm HTTP_CTRL_REQ */ @@ -54,12 +42,14 @@ module HTTP_ASP_TypeDefs { type record HTTP_DATA_IND { /* ASP type for sending a message from the http layer to TTCN; it transports relevant information of a http Request from the UE to the Tester */ - HttpRoutingInfo_Type routingInfo, /* to distinguish BSF and XCAP server */ + IP_Connection_Type routingInfo, /* TCP connection from which the request has been received; + => response shall use the same */ HttpRequest_Type httpRequest }; type record HttpRequest_Type { HttpRequestLine_Type requestLine, /* RFC 2616 clause 5.1 */ + UserAgent userAgent optional, /* User Agent according to RFC 2616 [27] clause 14.43 */ Authorization authorization optional, /* Authorization in RFC 2616 [27] clause 14.8 (optional; NOTE: Same type definition as for SIP type definitions) */ ContentType contentType optional, /* Content-Type in RFC 2616 [27] clause 14.17 (optional, NOTE: Same type definition as for SIP type definitions) */ charstring x3GPPIntendedIdentity optional, /* 3GPP TS 24.109 [33] clause G.2 */ @@ -68,16 +58,20 @@ module HTTP_ASP_TypeDefs { type record HttpResponse_Type { HttpStatusLine_Type statusLine, /* Status-Line in RFC 2616 [27] clause 6.1 */ + Date date optional, /* Date according to RFC 2616 [27] clause 14.18 */ + SIP_ETag eTag optional, /* ETag according to RFC 2616 [27] clause 14.19 */ + Server server optional, /* Server according to RFC 2616 [27] clause 14.38 */ WwwAuthenticate wwwauthenticate optional, /* WWW-Authenticate in RFC 2616 [27] clause 14.47 (NOTE: Same type definition as for SIP type definitions) */ AuthenticationInfo authenticationInfo optional, /* Authentication-Info in RFC 2617 [37] clause 3.2.3 (NOTE: Same type definition as for SIP type definitions) */ ContentType contentType optional, /* Content-Type in RFC 2616 [27] clause 14.17 (NOTE: Same type definition as for SIP type definitions) */ + ContentLength contentLength optional, /* Content-Length in RFC 2616 [27] clause 14.13 (NOTE: Same type definition as for SIP type definitions) */ Expires expires optional, /* Expires in RFC 2616 [27] clause 14.21 (NOTE: Same type definition as for SIP type definitions) */ charstring messageBody optional /* MTSI XCAP Message (XML document or XML fragment) */ }; type record HTTP_DATA_REQ { /* ASP type for sending messages from TTCN to the http layer; it transports information needed by the http layer to generate a http Response to the UE */ - HttpRoutingInfo_Type routingInfo, /* to distinguish BSF and XCAP server */ + IP_Connection_Type routingInfo, /* TCP connection to be used in DL: shall be the same as for corresponding request */ HttpResponse_Type httpResponse }; @@ -96,24 +90,8 @@ module HTTP_ASP_TypeDefs { } with { encode "HttpCodec" } //============================================================================ - // Common templates: - template (present) HttpRoutingInfo_Type cr_HttpRoutingInfo(template (present) charstring p_ServerAddr := ?, - template (present) integer p_ServerPort := ?) := - { /* @status APPROVED (IMS) */ - serverAddr := p_ServerAddr, - serverPort := p_ServerPort - }; - - template (value) HttpRoutingInfo_Type cs_HttpRoutingInfo(charstring p_ServerAddr, - integer p_ServerPort) := - { /* @status APPROVED (IMS) */ - serverAddr := p_ServerAddr, - serverPort := p_ServerPort - }; - - //============================================================================ - // Port definitions + group HTTP_Port_Definitions { type port HTTP_CTRL_PORT message { @@ -139,4 +117,6 @@ module HTTP_ASP_TypeDefs { in HTTP_DATA_REQ; }; + } // group HTTP_Port_Definitions + } diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/ICMPv6_Functions.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/ICMPv6_Functions.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/IP_PTC/ICMPv6_Functions.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/ICMPv6_Functions.ttcn index cc519eb..f9bb426 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/ICMPv6_Functions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/ICMPv6_Functions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ -// $Rev: 9858 $ +// @version: IWD_15wk38 +// $Date: 2014-12-01 14:59:46 +0100 (Mon, 01 Dec 2014) $ +// $Rev: 12660 $ /******************************************************************************/ module ICMPv6_Functions { @@ -22,7 +22,7 @@ module ICMPv6_Functions { checksum := '0000'O, // to be replaced before sending curHopLimit := 64, managedConfigFlag := '0'B, // Not managed, i.e. stateless autoconfiguration - otherConfigFlag := '0'B, // FFS DHCPv6 not available + otherConfigFlag := '0'B, // DHCPv6 not available reserved := '000000'B, routerLifetime := oct2int('FFFF'O), // largest posible value reachableTime := 0, // unspecified @@ -93,7 +93,7 @@ module ICMPv6_Functions { v_Response := cs_RouterAdvertisement(p_ClientIpAddress); // Return Router Advertisement } else if (ischosen(v_Request.nbrSolMsg)) { // Handle Neighbor Solicitation (for Duplicate Address Detection) - return ''O; // FFS Message is ignored + return ''O; // Message is ignored } if (isvalue(v_Response)) { diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/ICMPv6_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/ICMPv6_TypeDefs.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/IP_PTC/ICMPv6_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/ICMPv6_TypeDefs.ttcn index 44dfab4..7df701c 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/ICMPv6_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/ICMPv6_TypeDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ // $Rev: 8395 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_ASP_Common.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_ASP_Common.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_ASP_Common.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_ASP_Common.ttcn index 1a09306..72aeda3 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_ASP_Common.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_ASP_Common.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-08-25 20:30:56 +0200 (Sun, 25 Aug 2013) $ // $Rev: 9371 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_ASP_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_ASP_TypeDefs.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_ASP_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_ASP_TypeDefs.ttcn index 00288be..6b61403 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_ASP_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_ASP_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-26 19:34:53 +0200 (Mon, 26 May 2014) $ -// $Rev: 11335 $ +// @version: IWD_15wk38 +// $Date: 2015-09-09 14:11:58 +0200 (Wed, 09 Sep 2015) $ +// $Rev: 14251 $ /******************************************************************************/ module IP_ASP_TypeDefs { @@ -61,6 +61,8 @@ module IP_ASP_TypeDefs { IP_AddrInfo_Type IpAddr optional, /* IP address */ PortNumber_Type Port optional /* port number */ }; + + type record of IP_Socket_Type IP_SocketList_Type; type enumerated InternetProtocol_Type { udp, @@ -135,35 +137,42 @@ module IP_ASP_TypeDefs { * => for L2 testing in general (and apart from the preamble) there is no need to use/configure the IP_PTC; the configuration of the RAT specific U-plane stacks is not affected */ + type enumerated IP_DataMode_Type { + discard, + loopbackRTP, + loopbackRTCP + }; + type record IP_RoutingInfo_Type { - IP_Connection_Type IpInfo, /* IP connection tuple: protocol, local socket, remote socket - * depending on the role the SS plays the following information may be provided - * (informative; even less information can be sufficient): - * 1. TCP/UDP server - * - local IP addr -- provided - * - local port -- provided - * - remote IP addr -- omit - * - remote port -- omit - * 2. TCP/UDP client - * - local IP addr -- provided - * (to inform SS about the local IP addr for this service) - * - local port -- omit; - * for UDP a well-defined port may be defined - * (protocol dependent, e.g. DHCP) - * - remote IP addr -- provided - * - remote port -- provided - * 3. ICMP (in general ICMP may be mapped only to a single DRB) - * - local IP addr -- provided - * (to inform SS about the local IP addr for this service) - * - local port -- n/a (shall be set to omit) - * - remote IP addr -- omit - * - remote port -- n/a (shall be set to omit) - * - * NOTE: - * In case of broadcasts in UL the broadcast address shall match any local IP address; - * in DL for broadcast services typically no remote IP address is specified in the routing table - */ - IP_DrbInfo_Type DRB + IP_Connection_Type IpInfo, /* IP connection tuple: protocol, local socket, remote socket + * depending on the role the SS plays the following information may be provided + * (informative; even less information can be sufficient): + * 1. TCP/UDP server + * - local IP addr -- provided + * - local port -- provided + * - remote IP addr -- omit + * - remote port -- omit + * 2. TCP/UDP client + * - local IP addr -- provided + * (to inform SS about the local IP addr for this service) + * - local port -- omit; + * for UDP a well-defined port may be defined + * (protocol dependent, e.g. DHCP) + * - remote IP addr -- provided + * - remote port -- provided + * 3. ICMP (in general ICMP may be mapped only to a single DRB) + * - local IP addr -- provided + * (to inform SS about the local IP addr for this service) + * - local port -- n/a (shall be set to omit) + * - remote IP addr -- omit + * - remote port -- n/a (shall be set to omit) + * + * NOTE: + * In case of broadcasts in UL the broadcast address shall match any local IP address; + * in DL for broadcast services typically no remote IP address is specified in the routing table + */ + IP_DrbInfo_Type DRB, + IP_DataMode_Type DataMode optional /* present when IP packets matching this entry shall be discarded or be looped back to the UE as defined for RTP or RTCP */ }; type record of IP_RoutingInfo_Type IP_RoutingTable_Type; /* NOTE: configurations of DRBs within the same cell shall be mutual exclusive */ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Component.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Component.ttcn similarity index 52% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Component.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Component.ttcn index 1015873..97f8cb3 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Component.ttcn @@ -2,20 +2,30 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-26 19:34:53 +0200 (Mon, 26 May 2014) $ -// $Rev: 11335 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IP_PTC_Component { import from CommonDefs all; + import from CommonIP all; import from IP_ASP_TypeDefs all; import from HTTP_ASP_TypeDefs all; import from IMS_ASP_TypeDefs all; import from IP_PTC_CtrlMsgs all; + //---------------------------------------------------------------------------- + // PDN info: Mapping of DRBs to PDNs + + type record PDN_MappingInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + IP_DrbInfo_Type DefaultDrb optional /* omit => no IP handling for the respective PDN */ + }; + + type record of PDN_MappingInfo_Type PDN_MappingTable_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + //---------------------------------------------------------------------------- // Address servers @@ -24,47 +34,57 @@ module IP_PTC_Component { global address in case of IPv6 */ charstring ClientAddr optional, /* IP address to be assigned to the UE via DHCP or ICMPv6; global address in case of IPv6 */ - IP_DrbInfo_Type DrbInfo optional /* omit as long as a server is not started; - NOTE: the cell is "Any" i.e. it does not matter in terms of the server */ + PDN_Index_Type PdnIndex optional /* omit as long as a server is not started; + @sic R5-145754 sic@ */ }; type record length(tsc_NoOfPDNs) of AddrServerInfo_Type IP_AddrServerArray_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - type record PDN_IP_AddrServer_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + type record PDN_IP_AddrServer_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ IP_AddrServerArray_Type DHCP, /* NOTE: this information is needed for assignment of the IP address only */ - IP_AddrServerArray_Type ICMPv6 /* NOTE: this information is needed for assignment of the IP address only; + IP_AddrServerArray_Type ICMPv6, /* NOTE: this information is needed for assignment of the IP address only; * due to the privacy option the UE may use a different IPv6 address after stateless address autoconfiguration * (see TS 23.401 cl. 5.3.1.2.2) */ - //IP_AddrServerArray_Type DNS_Udp, + IP_AddrServerArray_Type DNS_UdpIPv4, /* @sic R5-145754 sic@ */ + IP_AddrServerArray_Type DNS_UdpIPv6 /* @sic R5-145754 sic@ */ //IP_AddrServerArray_Type DNS_Tcp }; //---------------------------------------------------------------------------- - // IMS server + // security context - type record IMS_TCP_Connections_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - IP_Connection_Type Unprotected_pc_us optional, /* unprotected TCP connection established by the SS (i.e. SS is client, UE is server) - (GIBA only) */ - IP_Connection_Type Unprotected_uc_ps optional, /* unprotected TCP connection established by the UE (i.e. UE is client, SS is server) */ - IP_Connection_Type Protected_pc_us optional, /* protected TCP connection established by the SS (i.e. SS is client, UE is server) */ - IP_Connection_Type Protected_uc_ps optional /* protected TCP connection established by the UE (i.e. UE is client, SS is server) */ + type union IMS_SecurityContextInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + IMS_SecurityInfo_Type Protected, + IMS_UnprotectedPorts_Type Unprotected }; - type record IMS_Server_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - IMS_UnprotectedPorts_Type UnprotectedPorts, /* Port_us, Port_ps */ - IMS_ProtectedPorts_Type PrevProtectedPorts optional, /* in case of re-authentication the previous ("old") ports need to be used for sending out the 401 response - even though to avoid race conditions the new SA shall be configured already @sic R5s131040 sic@ */ - IMS_TCP_Connections_Type TcpConnections, - IP_AddrInfo_Type IPv4Addr optional, /* the server's IPv4 address, omit as long as the server is not started */ - IP_AddrInfo_Type IPv6Addr optional, /* the server's IPv6 address, omit as long as the server is not started */ - IPsec_SecurityKeys_Type SecurityKeys optional, /* security keys to be applied for security associations */ - IMS_RegistrationInfo_Type RegistrationInfo optional, /* if present => UE has at least started the registration and in case of non-GIBA IPsec and UDP server for protected signalling are started */ - IP_DrbInfo_Type DrbInfo optional /* omit as long as the server is not started; - * NOTE: the cell is "Any" i.e. it does not matter in terms of the server; - * nevertheless the cell shall not be changed in between start of the IMS server - * and establishement of the protected servers and connections */ + type record IMS_SecurityContext_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + IMS_SecurityContextInfo_Type SecurityInfo, + IP_Connection_Type TcpClient optional, + IP_Connection_Type TcpServer optional }; + type record IMS_RegistrationAddress_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + IP_AddrInfo_Type NW, + IP_AddrInfo_Type UE + }; + + //---------------------------------------------------------------------------- + // IMS server + + type record IMS_Server_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + IMS_SecurityContext_Type UnprotectedContext, + IMS_SecurityContext_Type ProtectedContext1 optional, + IMS_SecurityContext_Type ProtectedContext2 optional, + IP_AddrInfo_Type IPv4Addr optional, /* the server's IPv4 address, omit as long as the server is not started */ + IP_AddrInfo_Type IPv6Addr optional, /* the server's IPv6 address, omit as long as the server is not started */ + IPsec_SecurityKeys_Type SecurityKeys optional, /* security keys to be applied for security associations */ + IMS_RegistrationAddress_Type RegistrationAddress optional, /* if present => UE has at least started the registration and in case of non-GIBA + IPsec and UDP server for protected signalling are started */ + PDN_Index_Type PdnIndex optional /* omit as long as the server is not started + @sic R5s150648 Change 2.2: DrbInfo replaced by PdnIndex sic@ */ + }; + type record length(tsc_NoOfPDNs) of IMS_Server_Type IMS_ServerArray_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ type record IP_PTC_IMS_Info_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ IMS_ServerArray_Type Server @@ -76,6 +96,7 @@ module IP_PTC_Component { var IP_RoutingTable_Type vc_IP_PTC_DRB_RoutingTable; var PDN_IP_AddrServer_Type vc_IP_PTC_PDN_AddrServer; var IP_PTC_IMS_Info_Type vc_IP_PTC_IMS_Info; + var PDN_MappingTable_Type vc_IP_PTC_PDN_MappingTable; /* @sic R5s150648 Change 2.1 sic@ */ // ports connected to IMS: port IP_IMS_CTRL_PORT IMS_CTRL[tsc_NoOfPDNs]; @@ -103,6 +124,34 @@ module IP_PTC_Component { port IP_SOCKET_PORT IP_SOCK; }; + //---------------------------------------------------------------------------- + // Common functions + + /* + * @desc set DrbInfo for given PDN + * @param p_PdnIndex + * @param p_DrbInfo + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_IP_PTC_PDN_SetDrbInfoForDefaultDrb(PDN_Index_Type p_PdnIndex, + IP_DrbInfo_Type p_DrbInfo) runs on IP_PTC + { + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); + vc_IP_PTC_PDN_MappingTable[v_Index].DefaultDrb := p_DrbInfo; + } + + /* + * @desc get DrbInfo for given PDN + * @param p_PdnIndex + * @return IP_DrbInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(PDN_Index_Type p_PdnIndex) runs on IP_PTC return IP_DrbInfo_Type + { + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); + return vc_IP_PTC_PDN_MappingTable[v_Index].DefaultDrb; + } + //---------------------------------------------------------------------------- /* * @desc Create IP PTC and map system ports diff --git a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn similarity index 59% rename from IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn index 97efa7f..74a8357 100644 --- a/IMS_PART4_IWD_14wk37/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_CtrlMsgs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ @@ -30,6 +30,10 @@ module IP_PTC_CtrlMsgs { PDN_Index_Type PdnId }; + type record IP_ChangeDrbInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + PDN_Index_Type PdnId, + IP_DrbInfo_Type DrbInfo + }; type record IP_SendRouterAdvertisement_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ PDN_Index_Type PdnId @@ -41,9 +45,11 @@ module IP_PTC_CtrlMsgs { IP_Start_Type StartIP, IP_Stop_Type StopIP, /* @sic R5s131000: Null_Type replaced by IP_Stop_Type sic@ */ Null_Type GeranCnf, /* e.g. to confirm GeranTrigger */ - IP_DrbInfo_Type ChangeCell, /* @sic R5-125676: enhancement for IRAT sic@ */ + IP_ChangeDrbInfo_Type ChangeDrbInfo, /* @sic R5s150648 Change 5.1 sic@ */ + EUTRA_CellId_Type ChangeEutraCell, /* @sic R5s150648 Change 5.1 sic@ */ IP_SendRouterAdvertisement_Type SendRouterAdvertisement, - IP_RoutingInfo_Type Routing /* @sic R5s130681 change 3: handling of RTP data sic@ */ + IP_RoutingInfo_Type ExplicitRouting, /* @sic R5s130681 change 3: handling of RTP data sic@ */ + Null_Type ChangeToRawmode /* @sic R5s150074 - Additional change sic@ */ }; type record IP_GeranTrigger_Type { @@ -83,40 +89,34 @@ module IP_PTC_CtrlMsgs { } }; - template (value) IP_Stop_Type cs_IP_StopAll := {All := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - template (value) IP_Stop_Type cs_IP_StopPDN(PDN_Index_Type p_PdnId) := {PdnId := p_PdnId}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_IRAT, POS) */ + template (value) IP_ConfigReq_Type cs_IP_ChangeToRawmode := {ChangeToRawmode := true}; /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ + + template (value) IP_Stop_Type cs_IP_StopAll := {All := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) IP_Stop_Type cs_IP_StopPDN(PDN_Index_Type p_PdnId) := {PdnId := p_PdnId}; /* @status APPROVED (IMS, LTE_A, IMS_IRAT, LTE, LTE_IRAT, POS) */ template (value) IP_ConfigReq_Type cs_IP_StopReq(template (value) IP_Stop_Type p_IP_Stop) := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s131000: new parameter p_IP_Stop sic@ */ StopIP := p_IP_Stop }; template (value) IP_ConfigReq_Type cs_IP_GeranCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ GeranCnf := true }; - template (value) IP_ConfigReq_Type cs_IP_ChangeEutraCellReq(EUTRA_CellId_Type p_EutraCellId, - template (omit) IP_DrbId_Type p_DrbId := omit) := + template (value) IP_ConfigReq_Type cs_IP_ChangeEutraCellReq(EUTRA_CellId_Type p_EutraCellId) := { /* @sic R5-125676: new parameter p_DrbId sic@ */ /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ - ChangeCell := { - Eutra := { - CellId := p_EutraCellId, - DrbId := p_DrbId - } - } + ChangeEutraCell := p_EutraCellId /* @sic R5s150648 Change 5.2 sic@ */ }; - template (value) IP_ConfigReq_Type cs_IP_ChangeUtranCellReq(integer p_UtranCellId, - IP_DrbId_Type p_DrbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ - ChangeCell := { - Utran := { - CellId := p_UtranCellId, - DrbId := p_DrbId - } + template (value) IP_ConfigReq_Type cs_IP_ChangeDrbInfoReq(PDN_Index_Type p_PdnId, + template (value) IP_DrbInfo_Type p_DrbInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + ChangeDrbInfo := { + PdnId := p_PdnId, + DrbInfo := p_DrbInfo } }; @@ -127,21 +127,25 @@ module IP_PTC_CtrlMsgs { } }; - template (value) IP_ConfigReq_Type cs_IP_ConfigureRoutingReq(InternetProtocol_Type p_Protocol, - PortNumber_Type p_MediaPort, - template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, - template (value) IP_DrbInfo_Type p_DrbInfo) := - { /* NOTE: p_IpAddrRemoteUE the IP address of the simulated remote UE (i.e. a 'local' address in terms of the routing table) */ - Routing := { + template (value) IP_ConfigReq_Type cs_IP_ConfigureDiscardDataLoopbackDataReq(InternetProtocol_Type p_Protocol, + PortNumber_Type p_MediaPort, + template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, + template (value) IP_DrbInfo_Type p_DrbInfo, + IP_DataMode_Type p_DataMode) := + { /* NOTE: p_IpAddrRemoteUE the IP address of the simulated remote UE (i.e. a 'local' (SS) address in terms of the routing table) */ + /* @sic R5-153746: p_DataMode (discard, loopbackRTP, loopbackRTCP) sic@ */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) */ + ExplicitRouting := { IpInfo := cs_IP_ConnectionId(p_Protocol, cs_IP_Socket(p_IpAddrRemoteUE, p_MediaPort)), - DRB := p_DrbInfo + DRB := p_DrbInfo, + DataMode := p_DataMode // @sic R5-150356, R5w150008; R5-153746 sic@ } }; template (present) IP_Indication_Type cr_IP_CommonCnf := {Cnf := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ template (present) IP_Indication_Type cr_IP_GeranTrigger := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ GeranTrigger := { Geran := ? } @@ -175,7 +179,7 @@ module IP_PTC_CtrlMsgs { template (value) IP_DrbInfo_Type cs_DrbInfo_UTRAN(UTRAN_CellId_Type p_CellId, IP_DrbId_Type p_DrbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ Utran := { CellId := f_UtranCellId2Int(p_CellId), DrbId := p_DrbId @@ -184,7 +188,7 @@ module IP_PTC_CtrlMsgs { template (value) IP_DrbInfo_Type cs_DrbInfo_GERAN(integer p_CellId, IP_DrbId_Type p_DrbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ Geran := { CellId := p_CellId, DrbId := p_DrbId @@ -214,7 +218,7 @@ module IP_PTC_CtrlMsgs { * @desc RAT independent function to stop all DHCP and ICMPv6 servers * @param p_Port * @param p_IP_Stop (default value: cs_IP_StopAll) - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_IP_Handling_Stop(IP_RAT_CTRL_PORT p_Port, template (value) IP_Stop_Type p_IP_Stop := cs_IP_StopAll) @@ -224,21 +228,63 @@ module IP_PTC_CtrlMsgs { p_Port.receive(cr_IP_CommonCnf); } + /* + * @desc to remove all entries in the routing table + * NOTE: this has no impact on any existing sockets + * @param p_Port + * @status APPROVED (LTE, LTE_A, LTE_IRAT) + */ + function f_IP_Routing_ChangeToRawmode(IP_RAT_CTRL_PORT p_Port) + { + p_Port.send(cs_IP_ChangeToRawmode); + p_Port.receive(cr_IP_CommonCnf); + } + /* * @desc Function to change the EUTRA cell for all entries of the routing table * @param p_Port * @param p_EutraCellId .. new cell - * @param p_DrbId (default value: omit) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ function f_IP_ChangeEutraCell(IP_RAT_CTRL_PORT p_Port, - EUTRA_CellId_Type p_EutraCellId, - template (omit) IP_DrbId_Type p_DrbId := omit) + EUTRA_CellId_Type p_EutraCellId) { /* @sic R5-125676: new parameter p_DrbId sic@ */ - p_Port.send(cs_IP_ChangeEutraCellReq(p_EutraCellId, p_DrbId)); + /* @sic R5s150648 Change 5.3: p_DrbId removed sic@ */ + p_Port.send(cs_IP_ChangeEutraCellReq(p_EutraCellId)); p_Port.receive(cr_IP_CommonCnf); } + /* + * @desc change DRB mapping for given PDN + * @param p_Port + * @param p_DrbInfo + * @param p_PdnIndex (default value: PDN_1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IP_ChangeDrbMapping(IP_RAT_CTRL_PORT p_Port, + template (value) IP_DrbInfo_Type p_DrbInfo, + PDN_Index_Type p_PdnIndex := PDN_1) + { + p_Port.send(cs_IP_ChangeDrbInfoReq(p_PdnIndex, p_DrbInfo)); + p_Port.receive(cr_IP_CommonCnf); + } + + /* + * @desc EUTRA: change DRB mapping for given PDN + * @param p_Port + * @param p_EutraCellId + * @param p_DrbId + * @param p_PdnIndex (default value: PDN_1) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_IP_ChangeDrbMappingEUTRA(IP_RAT_CTRL_PORT p_Port, + EUTRA_CellId_Type p_EutraCellId, + IP_DrbId_Type p_DrbId, + PDN_Index_Type p_PdnIndex := PDN_1) + { /* @sic R5s150648 Change 5.3 sic@ */ + f_IP_ChangeDrbMapping(p_Port, cs_DrbInfo_EUTRA(p_EutraCellId, p_DrbId), p_PdnIndex); + } + /* * @desc Function to change the UTRAN cell for all entries of the routing table * @param p_Port @@ -246,12 +292,24 @@ module IP_PTC_CtrlMsgs { * @param p_DrbId * @status APPROVED (LTE_A, LTE_IRAT) */ - function f_IP_ChangeUtranCell(IP_RAT_CTRL_PORT p_Port, - integer p_UtranCellId, - IP_DrbId_Type p_DrbId) + function f_IP_ChangeDrbMappingUTRAN(IP_RAT_CTRL_PORT p_Port, + UTRAN_CellId_Type p_UtranCellId, + IP_DrbId_Type p_DrbId) + { /* @sic R5s150648 Change 5.3 sic@ */ + f_IP_ChangeDrbMapping(p_Port, cs_DrbInfo_UTRAN(p_UtranCellId, p_DrbId)); + } + + /* + * @desc Function to change the GERAN cell for all entries of the routing table + * @param p_Port + * @param p_GeranCellId + * @param p_DrbId + */ + function f_IP_ChangeDrbMappingGERAN(IP_RAT_CTRL_PORT p_Port, + integer p_GeranCellId, + IP_DrbId_Type p_DrbId) { - p_Port.send(cs_IP_ChangeUtranCellReq(p_UtranCellId, p_DrbId)); - p_Port.receive(cr_IP_CommonCnf); + f_IP_ChangeDrbMapping(p_Port, cs_DrbInfo_GERAN(p_GeranCellId, p_DrbId)); } /* @@ -267,13 +325,24 @@ module IP_PTC_CtrlMsgs { p_Port.receive(cr_IP_CommonCnf); } - function f_IP_ConfigureRTP_EUTRA(IP_RAT_CTRL_PORT p_Port, - PortNumber_Type p_MediaPort, - template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, - EUTRA_CellId_Type p_EutraCellId, - IP_DrbId_Type p_DrbId) - { /* configure routing of e.g. RTP data on media port */ - p_Port.send(cs_IP_ConfigureRoutingReq(udp, p_MediaPort, p_IpAddrRemoteUE, cs_DrbInfo_EUTRA(p_EutraCellId, p_DrbId))); + /* + * @desc configure routing of e.g. RTP data on media port + * @param p_Port + * @param p_MediaPort + * @param p_IpAddrRemoteUE + * @param p_EutraCellId + * @param p_DrbId + * @param p_DataMode + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT) + */ + function f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP_RAT_CTRL_PORT p_Port, + PortNumber_Type p_MediaPort, + template (omit) IP_AddrInfo_Type p_IpAddrRemoteUE, + EUTRA_CellId_Type p_EutraCellId, + IP_DrbId_Type p_DrbId, + IP_DataMode_Type p_DataMode) + { /* @sic R5-153746: p_DataMode (discard, loopbackRTP, loopbackRTCP) sic@ */ + p_Port.send(cs_IP_ConfigureDiscardDataLoopbackDataReq(udp, p_MediaPort, p_IpAddrRemoteUE, cs_DrbInfo_EUTRA(p_EutraCellId, p_DrbId), p_DataMode)); p_Port.receive(cr_IP_CommonCnf); } diff --git a/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn new file mode 100644 index 0000000..be88647 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_HTTP_Handler.ttcn @@ -0,0 +1,158 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ +/******************************************************************************/ + +module IP_PTC_HTTP_Handler { + import from CommonDefs all; + import from IP_ASP_TypeDefs all; + import from IP_PTC_Templates all; + import from IP_PTC_Component all; + import from TCP_Functions all; + import from HTTP_ASP_TypeDefs all; + + //---------------------------------------------------------------------------- + // local type definitions: + + type record of IP_Connection_Type IP_ConnectionList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + type record HTTP_Info_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + IP_SocketList_Type ServerList optional, + IP_ConnectionList_Type ConnectionList + }; + + template (value) HTTP_Info_Type cs_HTTP_Info_Init(template (omit) IP_SocketList_Type p_ServerList) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + ServerList := p_ServerList, + ConnectionList := {} + }; + + /* + * @desc Initialise HTTP servers + * @param p_ServerList (default value: omit) + * @return HTTP_Info_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_HTTP_Info_Init(template (omit) IP_SocketList_Type p_ServerList := omit) return HTTP_Info_Type + { + return valueof(cs_HTTP_Info_Init(p_ServerList)); + } + + //---------------------------------------------------------------------------- + // templates for HTTP_ASP_TypeDefs + + template (present) HTTP_CTRL_REQ cr_HttpCtlReq := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (present) HTTP_DATA_REQ cr_DataReq := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + template (value) HTTP_CTRL_CNF cs_HTTP_CTRL_CNF(template (omit) charstring p_ErrorInfo := omit) := { errorInfo := p_ErrorInfo }; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + + template (value) HTTP_DATA_IND cs_HTTP_DATA_IND(IP_Connection_Type p_Connection, + HttpRequest_Type p_HttpRequest) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + routingInfo := p_Connection, + httpRequest := p_HttpRequest + }; + + //---------------------------------------------------------------------------- + /* + * @desc handling of HTTP data at IP PTC + * @param p_HttpInfo (by reference) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + altstep a_IP_HTTP_Handler(inout HTTP_Info_Type p_HttpInfo) runs on IP_PTC + { // @sic R5s150148: list of HTTP servers to cope with IPv4/IPv6 and to be prepared for HTTPS sic@ + var HTTP_CTRL_REQ v_HTTP_CTRL_REQ; + var HTTP_DATA_REQ v_HTTP_DATA_REQ; + var IP_SOCKET_IND v_IP_SOCKET_IND; + var template (value) IP_SocketList_Type v_ServerList := {}; + var HttpServerInfo_Type v_HttpServerInfo; + var IP_AddrInfo_Type v_ServerAddr; + var PortNumber_Type v_PortNumber; + var template (omit) IP_Connection_Type v_XcapConnectionByRef; + var IP_Connection_Type v_Connection; + var IP_ConnectionList_Type v_ConnectionList; + var HttpRequest_Type v_HttpRequest; + var HttpResponse_Type v_HttpResponse; + var TCP_Data_Type v_Data; + var bitstring v_Bitstring; + var integer i; + var integer k; + + var boolean v_HttpServerIsStarted := ispresent(p_HttpInfo.ServerList); + var boolean v_HttpServerIsConnected := lengthof(p_HttpInfo.ConnectionList) > 0; + + + [] HTTPCTRL.receive(cr_HttpCtlReq) -> value v_HTTP_CTRL_REQ + { /* @sic R5-151795: sic@ + * - BSF and XCAP server both are HTTP servers (they may even share the same HTTP server when IP address and port are the same); + * - in general there is always an IPv4 and an IPv6 server; + * - there seems to be no need to start/stop HTTP servers dynamically + * (i.e. HTTP servers shall be started in one go at the beginning of a test case and kept until the end of the test case) + * - there is no need to take into consideration any authenticationMechanism */ + + if (ispresent(v_HTTP_CTRL_REQ.httpServerList)) { + if (v_HttpServerIsStarted) { + FatalError(__FILE__, __LINE__, "HTTP handling is started already"); + } else { + for (i := 0; i < lengthof(v_HTTP_CTRL_REQ.httpServerList); i := i + 1) { + v_HttpServerInfo := v_HTTP_CTRL_REQ.httpServerList[i]; + v_ServerAddr := v_HttpServerInfo.serverAddr; + v_PortNumber := v_HttpServerInfo.serverPort; + f_TcpServer_Start(v_ServerAddr, v_PortNumber, v_HttpServerInfo.drbInfo, http, v_HttpServerInfo.tlsInfo); + v_ServerList[i] := cs_IP_Socket(v_ServerAddr, v_PortNumber); + } + p_HttpInfo := f_HTTP_Info_Init(v_ServerList); + } + } + HTTPCTRL.send(cs_HTTP_CTRL_CNF); + } + + [v_HttpServerIsStarted] a_TcpServer_AcceptConnection(v_XcapConnectionByRef, (all from p_HttpInfo.ServerList)) + { + i := lengthof(p_HttpInfo.ConnectionList); + p_HttpInfo.ConnectionList[i] := valueof(v_XcapConnectionByRef); // a_TcpServer_AcceptConnection 'returns' a valid connection i.e. v_ServerConnectionByRef will never be omit + } + + [v_HttpServerIsConnected] IP_SOCK.receive(cr_TCP_CLOSE_IND((all from p_HttpInfo.ConnectionList))) -> value v_IP_SOCKET_IND { + /* routing table does not need to be modified as the server is still running */ + /* remove connection from list of HTTP server connections: */ + v_Connection := v_IP_SOCKET_IND.CTRL.ConnectionId; + v_ConnectionList := {}; + k := 0; + for (i := 0; i < lengthof(p_HttpInfo.ConnectionList); i := i + 1) { + if (v_Connection != p_HttpInfo.ConnectionList[i]) { + v_ConnectionList[k] := p_HttpInfo.ConnectionList[i]; + k := k + 1; + } + } + p_HttpInfo.ConnectionList := v_ConnectionList; + } + + [v_HttpServerIsConnected] HTTPDATA.receive(cr_DataReq) -> value v_HTTP_DATA_REQ + { + v_HttpResponse := v_HTTP_DATA_REQ.httpResponse; + v_Bitstring := encvalue(v_HttpResponse); + v_Data := bit2oct(v_Bitstring); + IP_SOCK.send(cs_TCP_DATA_REQ(v_HTTP_DATA_REQ.routingInfo, v_Data)); + } + + [v_HttpServerIsConnected] IP_SOCK.receive(cr_TCP_DATA_IND((all from p_HttpInfo.ConnectionList))) -> value v_IP_SOCKET_IND + { + v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; + v_Bitstring := oct2bit(v_Data); + if (decvalue(v_Bitstring, v_HttpRequest) != 0) { + FatalError(__FILE__, __LINE__, "HTTP Request cannot be decoded"); + } else { + HTTPDATA.send(cs_HTTP_DATA_IND(v_IP_SOCKET_IND.DATA.ConnectionId, v_HttpRequest)); + } + } + } + +} diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn similarity index 50% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn index 95e19ed..9eea9e5 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_IMS_Handler.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 16:20:42 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12209 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:40:16 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14433 $ /******************************************************************************/ module IP_PTC_IMS_Handler { @@ -50,339 +50,501 @@ module IP_PTC_IMS_Handler { template (present) IPSEC_CONFIG_CNF car_IPSEC_CONFIG_CNF := {Confirm := true}; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ //**************************************************************************** - // IPsec - //**************************************************************************** + + template (value) IMS_SecurityContextInfo_Type cs_IMS_SecurityContextInfo_Unprotected := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + Unprotected := { + Port_us := tsc_IMS_PortNumber_5060, + Port_ps := tsc_IMS_PortNumber_5060 + } + }; + + template (value) IMS_SecurityContextInfo_Type cs_IMS_SecurityContextInfo_Protected(IMS_SecurityInfo_Type p_SecurityInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + Protected := p_SecurityInfo + }; + + template (value) IMS_SecurityContext_Type cs_IMS_SecurityContext(template (value) IMS_SecurityContextInfo_Type p_SecurityContextInfo) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + SecurityInfo := p_SecurityContextInfo, + TcpClient := omit, + TcpServer := omit + }; + + //---------------------------------------------------------------------------- /* - * @desc Configure IPsec - * @param p_NW_Address - * @param p_UE_Address - * @param p_SecurityInfo - * @param p_SecurityKeys + * @desc Check whether IMS server is started + * @param p_ImsServer + * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_IPsec_Configure(IP_AddrInfo_Type p_NW_Address, - IP_AddrInfo_Type p_UE_Address, - IMS_SecurityInfo_Type p_SecurityInfo, - IPsec_SecurityKeys_Type p_SecurityKeys) runs on IP_PTC + function f_ImsServer_IsStarted(IMS_Server_Type p_ImsServer) return boolean { - var IPsec_IntegrityAlgorithm_Type v_IntegrityAlgorithm := p_SecurityInfo.IntegrityAlgorithm; - var IPsec_CipheringAlgorithm_Type v_CipheringAlgorithm := p_SecurityInfo.CipheringAlgorithm; - var template (value) IPsec_SecurityAssociationList_Type v_SA_List := f_IPsec_SA_List(p_NW_Address, p_UE_Address, p_SecurityInfo, v_IntegrityAlgorithm, v_CipheringAlgorithm); + return isvalue(p_ImsServer.PdnIndex); /* @sic R5s150648 Change 3 sic@ */ + } - IPSEC_CTRL.send(cas_IPSEC_Config_REQ(v_SA_List, p_SecurityKeys)); - IPSEC_CTRL.receive(car_IPSEC_CONFIG_CNF); + /* + * @desc Check whether there has been already an initial IMS message sent by the UE + * (=> the UE's IP address is know, i.e. whether it is IPv4 or IPv6 and in case of IPv6 privacy the IP address is the final one) + * @param p_ImsServer + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_ImsServer_UeIsRegistered(IMS_Server_Type p_ImsServer) return boolean + { + return isvalue(p_ImsServer.RegistrationAddress); } /* - * @desc configure SS to release IPsec - * @param p_NW_Address - * @param p_UE_Address - * @param p_SecurityInfo + * @desc return template for IMS server address: + * - if the UE is not registerred yet: IPv4 or IPv6 address + * - if the UE is registerred: IP address as used for registration + * @param p_ImsServer + * @return template (present) IP_AddrInfo_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_IPsec_Release(IP_AddrInfo_Type p_NW_Address, - IP_AddrInfo_Type p_UE_Address, - IMS_SecurityInfo_Type p_SecurityInfo) runs on IP_PTC + function fl_IMS_Server_GetServerAddr(IMS_Server_Type p_ImsServer) return template (present) IP_AddrInfo_Type { - var template (value) IPsec_SecurityAssociationList_Type v_SA_List := f_IPsec_SA_List(p_NW_Address, p_UE_Address, p_SecurityInfo); + var template (present) IP_AddrInfo_Type v_ServerAddr := ?; - IPSEC_CTRL.send(cas_IPSEC_Release_REQ(v_SA_List)); - IPSEC_CTRL.receive(car_IPSEC_CONFIG_CNF); + if (f_ImsServer_IsStarted(p_ImsServer)) { + if (fl_ImsServer_UeIsRegistered(p_ImsServer)) { + v_ServerAddr := p_ImsServer.RegistrationAddress.NW; + } else { + v_ServerAddr := (p_ImsServer.IPv4Addr, p_ImsServer.IPv6Addr); + } + } + return v_ServerAddr; } - //**************************************************************************** - // Start/Stop IMS Security - //**************************************************************************** /* - * @desc Check whether there has been already an initial IMS message sent by the UE - * (=> the UE's IP address is know, i.e. whether it is IPv4 or IPv6 and in case of IPv6 privacy the IP address is the final one) + * @desc return respective security context (or omit if the context is not configured) * @param p_ImsServer - * @return boolean + * @param p_SecurityContextEnum + * @return template (omit) IMS_SecurityContext_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_ImsServer_UeIsRegistered(IMS_Server_Type p_ImsServer) return boolean + function fl_IMS_Server_GetSecurityContext(IMS_Server_Type p_ImsServer, + IMS_SecurityContextEnum_Type p_SecurityContextEnum) return template (omit) IMS_SecurityContext_Type { - return isvalue(p_ImsServer.RegistrationInfo); + select (p_SecurityContextEnum) { + case (unprotected) { return p_ImsServer.UnprotectedContext; } + case (protectedContext1) { return p_ImsServer.ProtectedContext1; } + case (protectedContext2) { return p_ImsServer.ProtectedContext2; } + } + return omit; } /* - * @desc Check whether IPsec is started - * @param p_ImsServer - * @return boolean + * @desc update given security context + * @param p_ImsServer (by reference) + * @param p_SecurityContextEnum + * @param p_SecurityContext * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_ImsServer_SecurityIsEstablished(IMS_Server_Type p_ImsServer) return boolean + function fl_IMS_Server_SetSecurityContext(inout IMS_Server_Type p_ImsServer, + IMS_SecurityContextEnum_Type p_SecurityContextEnum, + template (omit) IMS_SecurityContext_Type p_SecurityContext) { - return isvalue(p_ImsServer.RegistrationInfo.SecurityInfo); + var IMS_SecurityContext_Type v_SecurityContext; + + if (isvalue(p_SecurityContext)) { + v_SecurityContext := valueof(p_SecurityContext); + select (p_SecurityContextEnum) { + case (unprotected) { p_ImsServer.UnprotectedContext := v_SecurityContext; } + case (protectedContext1) { p_ImsServer.ProtectedContext1 := v_SecurityContext; } + case (protectedContext2) { p_ImsServer.ProtectedContext2 := v_SecurityContext; } + } + } } /* - * @desc Check whether IMS server is started + * @desc return true if given security context is started * @param p_ImsServer + * @param p_SecurityContextEnum * @return boolean * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function f_ImsServer_IsStarted(IMS_Server_Type p_ImsServer) return boolean + function fl_IMS_Server_SecurityContext_IsStarted(IMS_Server_Type p_ImsServer, + IMS_SecurityContextEnum_Type p_SecurityContextEnum) return boolean { - return isvalue(p_ImsServer.DrbInfo); + return isvalue(fl_IMS_Server_GetSecurityContext(p_ImsServer, p_SecurityContextEnum)); } /* - * @desc Stop/Release IPsec - * @param p_ImsServer + * @desc Close all TCP connections of the given security context + * @param p_ImsServer (by reference) + * @param p_SecurityContextEnum + * @param p_WaitForCNF (default value: true) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_ImsServer_SecurityStop(inout IMS_Server_Type p_ImsServer) runs on IP_PTC + function fl_IMS_Server_SecurityContextCloseTCP(inout IMS_Server_Type p_ImsServer, + IMS_SecurityContextEnum_Type p_SecurityContextEnum, + boolean p_WaitForCNF := true) runs on IP_PTC { + var template (omit) IMS_SecurityContext_Type v_SecurityContext := fl_IMS_Server_GetSecurityContext(p_ImsServer, p_SecurityContextEnum); + var IMS_SecurityContext_Type v_SecurityContextValue; + + if (isvalue(v_SecurityContext)) { + v_SecurityContextValue := valueof(v_SecurityContext); + f_TcpClient_CloseConnection(v_SecurityContextValue.TcpClient, p_WaitForCNF); + f_TcpServer_CloseConnection(v_SecurityContextValue.TcpServer, p_WaitForCNF); + v_SecurityContext.TcpClient := omit; + v_SecurityContext.TcpServer := omit; + fl_IMS_Server_SetSecurityContext(p_ImsServer, p_SecurityContextEnum, v_SecurityContext); // @sic R5s150340: v_SecurityContext instead of v_SecurityContextValue, as v_SecurityContext has been changed sic@ + } + } + + + /* + * @desc handle closing of TCP connection (closed by the UE) + * @param p_ImsServer (by reference) + * @param p_SecurityContextEnum + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + altstep a_IMS_Server_SecurityContextCloseTCP(inout IMS_Server_Type p_ImsServer, + IMS_SecurityContextEnum_Type p_SecurityContextEnum) runs on IP_PTC + { + var template (omit) IMS_SecurityContext_Type v_SecurityContext := fl_IMS_Server_GetSecurityContext(p_ImsServer, p_SecurityContextEnum); + var boolean v_ClientIsConnected := isvalue(v_SecurityContext.TcpClient); + var boolean v_ServerIsConnected := isvalue(v_SecurityContext.TcpServer); + + [v_ClientIsConnected] a_TcpServer_CloseConnection(valueof(v_SecurityContext.TcpClient)) + { + v_SecurityContext.TcpClient := omit; + fl_IMS_Server_SetSecurityContext(p_ImsServer, p_SecurityContextEnum, v_SecurityContext); + } + [v_ServerIsConnected] a_TcpServer_CloseConnection(valueof(v_SecurityContext.TcpServer)) + { + v_SecurityContext.TcpServer := omit; + fl_IMS_Server_SetSecurityContext(p_ImsServer, p_SecurityContextEnum, v_SecurityContext); + } + } + + /* + * @desc to accept TCP connections + * @param p_ImsServer (by reference) + * @param p_SecurityContextEnum + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + altstep a_IMS_Server_SecurityContextAcceptTCP(inout IMS_Server_Type p_ImsServer, + IMS_SecurityContextEnum_Type p_SecurityContextEnum) runs on IP_PTC + { /* @sic R5-145732: support of 2nd security context sic@ */ + var template (present) IP_AddrInfo_Type v_ServerAddr := fl_IMS_Server_GetServerAddr(p_ImsServer); + var template (omit) IMS_SecurityContext_Type v_SecurityContext := fl_IMS_Server_GetSecurityContext(p_ImsServer, p_SecurityContextEnum); + var template (present) IMS_LocalRemotePort_Type v_LocalRemotePort := fl_IP_IMS_GetPortsRX(v_SecurityContext); + var boolean v_TcpServerIsStarted := isvalue(v_SecurityContext); + var template (omit) IP_Connection_Type v_NewConnectionByRef; + var IMS_SecurityContext_Type v_SecurityContextValue; + var IP_Connection_Type v_NewConnection; + + [v_TcpServerIsStarted] a_TcpServer_AcceptConnection(v_NewConnectionByRef, + cr_IP_Socket(v_ServerAddr, v_LocalRemotePort.Local), + cr_IP_Socket(?, v_LocalRemotePort.Remote)) /* remote port is ? for unprotected connection; + for protected connection the remote port is needed to distinguish the context */ + { + if (isvalue(v_NewConnectionByRef)) { /* @sic R5s140647 change 2: sic@ + connection may be closed and a_TcpServer_AcceptConnection called due to TCP_CLOSE_CNF + => v_UnprotectedConnectionByRef may be omit already before entrance of a_TcpServer_AcceptConnection and therefore is still omit afterwards */ + v_NewConnection := valueof(v_NewConnectionByRef); + v_SecurityContextValue := valueof(v_SecurityContext); + if (isvalue(v_SecurityContextValue.TcpServer)) { + if (v_SecurityContextValue.TcpServer != v_NewConnection) { + FatalError(__FILE__, __LINE__, "Cannot accept further TCP connection"); + } else { + f_ErrorLog(__FILE__, __LINE__, "Accept for existing connection -> ignored"); + } + } else { + v_SecurityContextValue.TcpServer := v_NewConnection; + fl_IMS_Server_SetSecurityContext(p_ImsServer, p_SecurityContextEnum, v_SecurityContextValue); + } + } + } + } + + /* + * @desc configure IPsec and start servers for secure signalling + * @param p_ImsServer (by reference) + * @param p_RegistrationInfo + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_IMS_Server_AddSecurityContext(inout IMS_Server_Type p_ImsServer, + IMS_RegistrationInfo_Type p_RegistrationInfo) runs on IP_PTC + { /* @sic R5-145732: support of 2nd security context sic@ */ + var IP_AddrInfo_Type v_LocalIpAddr := p_RegistrationInfo.NW_Address; + var IP_AddrInfo_Type v_RemoteIpAddr := p_RegistrationInfo.UE_Address; + var IMS_SecurityInfo_Type v_SecurityInfo := p_RegistrationInfo.SecurityInfo; + var IMS_ProtectedPorts_Type v_ProtectedPorts := v_SecurityInfo.ProtectedPorts; + var PortNumber_Type v_LocalPortServer := v_ProtectedPorts.Port_ps; + var PortNumber_Type v_LocalPortClient := v_ProtectedPorts.Port_pc; + var IMS_SecurityContext_Type v_SecurityContext := valueof(cs_IMS_SecurityContext(cs_IMS_SecurityContextInfo_Protected(v_SecurityInfo))); + var IP_DrbInfo_Type v_DrbInfo := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(p_ImsServer.PdnIndex); /* @sic R5s150648 Change 3 sic@ */ + var boolean v_IsSecondContext := false; + + if (fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext1)) { + if (fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext2)) { + FatalError(__FILE__, __LINE__, "Not more than two security contexts supported at the same time"); + } + if (v_LocalPortServer != p_ImsServer.ProtectedContext1.SecurityInfo.Protected.ProtectedPorts.Port_ps) { + FatalError(__FILE__, __LINE__, "re-configuration of TCP/UDP server not supported"); + /* NOTE: if the server port changes during re-authentication we would need to have 2 TCP and 2 UDP servers in parallel until re-authentication has finished */ + } + if (v_LocalPortClient == p_ImsServer.ProtectedContext1.SecurityInfo.Protected.ProtectedPorts.Port_pc) { + FatalError(__FILE__, __LINE__, "re-authentication: client port of new security context shall differ from the old one"); /* in general a new port shall be assigned at the IMS PTC by means of f_IMS_PTC_Security_Init */ + } + p_ImsServer.ProtectedContext2 := v_SecurityContext; + v_IsSecondContext := true; + } else { + p_ImsServer.ProtectedContext1 := v_SecurityContext; + } + + // get SPIs for the network side: + // v_SecurityInfo.SPIs := f_SPIs_SetNetworkValues(v_SPIs); // @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: SPIs are set at the IMS PTC now sic@ */ + + fl_IPsec_Configure(v_LocalIpAddr, v_RemoteIpAddr, v_SecurityInfo, p_ImsServer.SecurityKeys); + + if (not v_IsSecondContext) { /* servers need to be started only for the first context */ + f_UdpServer_Start(v_LocalIpAddr, v_LocalPortServer, v_DrbInfo); + f_TcpServer_Start(v_LocalIpAddr, v_LocalPortServer, v_DrbInfo); + } + + f_UdpClient_Start(v_LocalIpAddr, v_LocalPortClient, v_DrbInfo); /* @sic R5s130113 change 4 sic@ */ + } + + /* + * @desc Stop/Release IPsec: if there is more than one context release the older one + * @param p_ImsServer (by reference) + * @param p_WaitForCNF (default value: true) + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_IMS_Server_RemoveSecurityContext(inout IMS_Server_Type p_ImsServer, + boolean p_WaitForCNF := true) runs on IP_PTC + { /* @sic R5s141154: new parameter p_WaitForCNF sic@ */ + /* @sic R5-145732: support of 2nd security context sic@ */ var IP_AddrInfo_Type v_NW_Address; var IP_AddrInfo_Type v_UE_Address; var IMS_SecurityInfo_Type v_SecurityInfo; var PortNumber_Type v_LocalPortServer; var PortNumber_Type v_LocalPortClient; - - if (fl_ImsServer_SecurityIsEstablished(p_ImsServer)) { - - v_NW_Address := p_ImsServer.RegistrationInfo.NW_Address; - v_UE_Address := p_ImsServer.RegistrationInfo.UE_Address; - v_SecurityInfo := p_ImsServer.RegistrationInfo.SecurityInfo; + + if (fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext1)) { + + v_NW_Address := p_ImsServer.RegistrationAddress.NW; + v_UE_Address := p_ImsServer.RegistrationAddress.UE; + v_SecurityInfo := p_ImsServer.ProtectedContext1.SecurityInfo.Protected; v_LocalPortServer := v_SecurityInfo.ProtectedPorts.Port_ps; v_LocalPortClient := v_SecurityInfo.ProtectedPorts.Port_pc; - - // stop UDP client and server + + // stop UDP client f_UdpClient_Stop(v_NW_Address, v_LocalPortClient); - f_UdpServer_Stop(v_NW_Address, v_LocalPortServer); - // stop TCP server - f_TcpClient_CloseConnection(p_ImsServer.TcpConnections.Protected_pc_us); - f_TcpServer_CloseConnection(p_ImsServer.TcpConnections.Protected_uc_ps); - p_ImsServer.TcpConnections.Protected_pc_us := omit; - p_ImsServer.TcpConnections.Protected_uc_ps := omit; - f_TcpServer_Stop(v_NW_Address, v_LocalPortServer); + // Close TCP connection + fl_IMS_Server_SecurityContextCloseTCP(p_ImsServer, protectedContext1, p_WaitForCNF); + if (not fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext2)) { // if there is no other security context ... + // ... stop TCP and UDP server + f_UdpServer_Stop(v_NW_Address, v_LocalPortServer); + f_TcpServer_Stop(v_NW_Address, v_LocalPortServer, p_WaitForCNF); + p_ImsServer.ProtectedContext1 := omit; + } + else { + p_ImsServer.ProtectedContext1 := p_ImsServer.ProtectedContext2; + p_ImsServer.ProtectedContext2 := omit; + } // Release security association fl_IPsec_Release(v_NW_Address, v_UE_Address, v_SecurityInfo); } } - + + //**************************************************************************** + // IPsec + //**************************************************************************** /* - * @desc start another security association - * @param p_ImsServer - * @param p_RegistrationInfo + * @desc Configure IPsec + * @param p_NW_Address + * @param p_UE_Address + * @param p_SecurityInfo + * @param p_SecurityKeys * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_ImsServer_SecurityStartAdditional(IMS_Server_Type p_ImsServer, - IMS_RegistrationInfo_Type p_RegistrationInfo) runs on IP_PTC + function fl_IPsec_Configure(IP_AddrInfo_Type p_NW_Address, + IP_AddrInfo_Type p_UE_Address, + IMS_SecurityInfo_Type p_SecurityInfo, + IPsec_SecurityKeys_Type p_SecurityKeys) runs on IP_PTC { - var IP_AddrInfo_Type v_LocalIpAddr := p_ImsServer.RegistrationInfo.NW_Address; - var IP_AddrInfo_Type v_RemoteIpAddr := p_ImsServer.RegistrationInfo.UE_Address; - var IMS_SecurityInfo_Type v_SecurityInfo := p_ImsServer.RegistrationInfo.SecurityInfo; - var PortNumber_Type v_LocalPortServer := v_SecurityInfo.ProtectedPorts.Port_ps; - var PortNumber_Type v_LocalPortClient := v_SecurityInfo.ProtectedPorts.Port_pc; - var IMS_SecurityInfo_Type v_NewSecurityInfo := p_RegistrationInfo.SecurityInfo; - var PortNumber_Type v_NewLocalPortServer := v_NewSecurityInfo.ProtectedPorts.Port_ps; - var PortNumber_Type v_NewLocalPortClient := v_NewSecurityInfo.ProtectedPorts.Port_pc; - - if (v_LocalPortServer != v_NewLocalPortServer) { - FatalError(__FILE__, __LINE__, "re-configuration of TCP/UDP server not supported"); - /* NOTE: if the server port changes during re-authentication we would need to have 2 TCP and 2 UDP servers in parallel until re-authentication has finished */ - } - else if (v_LocalPortClient != v_NewLocalPortClient) { - /* @sic R5s140303: sic@ - for UDP the client port (port_pc) is used for sending RSPs as well as REQ => any RSP (e.g. 401 as in step 4 of test case 11.2)is sent over port_pc - and the old client needs to kept as long as the old security context may be used => stopping the old UDP client is moved to release of the old security context */ - f_UdpClient_Start(v_LocalIpAddr, v_NewLocalPortClient, p_ImsServer.DrbInfo); - - fl_IPsec_Configure(v_LocalIpAddr, v_RemoteIpAddr, v_NewSecurityInfo, p_ImsServer.SecurityKeys); // we add new security associations but keep the old ones until the re-authentication has finished */ - } + var IPsec_IntegrityAlgorithm_Type v_IntegrityAlgorithm := p_SecurityInfo.IntegrityAlgorithm; + var IPsec_CipheringAlgorithm_Type v_CipheringAlgorithm := p_SecurityInfo.CipheringAlgorithm; + var template (value) IPsec_SecurityAssociationList_Type v_SA_List := f_IPsec_SA_List(p_NW_Address, p_UE_Address, p_SecurityInfo, v_IntegrityAlgorithm, v_CipheringAlgorithm); + + IPSEC_CTRL.send(cas_IPSEC_Config_REQ(v_SA_List, p_SecurityKeys)); + IPSEC_CTRL.receive(car_IPSEC_CONFIG_CNF); } /* - * @desc configure IPsec and start servers for secure signalling - * @param p_RegistrationInfo - * @param p_SecurityKeys - * @param p_DrbInfo - * @return IMS_SecurityInfo_Type + * @desc configure SS to release IPsec + * @param p_NW_Address + * @param p_UE_Address + * @param p_SecurityInfo * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_ImsServer_SecurityStart(IMS_RegistrationInfo_Type p_RegistrationInfo, - IPsec_SecurityKeys_Type p_SecurityKeys, - IP_DrbInfo_Type p_DrbInfo) runs on IP_PTC - { /* @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: SPIs for re-authentication sic@ */ - var IP_AddrInfo_Type v_LocalIpAddr := p_RegistrationInfo.NW_Address; - var IP_AddrInfo_Type v_RemoteIpAddr := p_RegistrationInfo.UE_Address; - var IMS_SecurityInfo_Type v_SecurityInfo := p_RegistrationInfo.SecurityInfo; - var PortNumber_Type v_LocalPortServer := v_SecurityInfo.ProtectedPorts.Port_ps; - var PortNumber_Type v_LocalPortClient := v_SecurityInfo.ProtectedPorts.Port_pc; - - // get SPIs for the network side: - // v_SecurityInfo.SPIs := f_SPIs_SetNetworkValues(v_SPIs); // @sic R5s130266 change 1.3, 4, 5 - MCC160 Implementation: SPIs are set at the IMS PTC now sic@ */ - - fl_IPsec_Configure(v_LocalIpAddr, v_RemoteIpAddr, v_SecurityInfo, p_SecurityKeys); + function fl_IPsec_Release(IP_AddrInfo_Type p_NW_Address, + IP_AddrInfo_Type p_UE_Address, + IMS_SecurityInfo_Type p_SecurityInfo) runs on IP_PTC + { + var template (value) IPsec_SecurityAssociationList_Type v_SA_List := f_IPsec_SA_List(p_NW_Address, p_UE_Address, p_SecurityInfo); - f_UdpServer_Start(v_LocalIpAddr, v_LocalPortServer, p_DrbInfo); - f_UdpClient_Start(v_LocalIpAddr, v_LocalPortClient, p_DrbInfo); /* @sic R5s130113 change 4 sic@ */ - f_TcpServer_Start(v_LocalIpAddr, v_LocalPortServer, p_DrbInfo); + IPSEC_CTRL.send(cas_IPSEC_Release_REQ(v_SA_List)); + IPSEC_CTRL.receive(car_IPSEC_CONFIG_CNF); } //**************************************************************************** // Start/Stop IMS Server //**************************************************************************** - template (value) IMS_TCP_Connections_Type cs_IMS_TCP_Connections_Init := - { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - Unprotected_pc_us := omit, - Unprotected_uc_ps := omit, - Protected_pc_us := omit, - Protected_uc_ps := omit - }; - template (value) IMS_Server_Type cs_IMS_Server_Init := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - UnprotectedPorts := { - Port_us := tsc_IMS_PortNumber_5060, - Port_ps := tsc_IMS_PortNumber_5060 - }, - PrevProtectedPorts := omit, - TcpConnections := cs_IMS_TCP_Connections_Init, + UnprotectedContext := cs_IMS_SecurityContext(cs_IMS_SecurityContextInfo_Unprotected), /* @sic R5-145732: support of 2nd security context sic@ */ + ProtectedContext1 := omit, /* @sic R5-145732: support of 2nd security context sic@ */ + ProtectedContext2 := omit, /* @sic R5-145732: support of 2nd security context sic@ */ IPv4Addr := omit, IPv6Addr := omit, SecurityKeys := omit, - RegistrationInfo := omit, - DrbInfo := omit + RegistrationAddress := omit, /* @sic R5-145732: support of 2nd security context sic@ */ + PdnIndex := omit /* @sic R5s150648 Change 3 sic@ */ }; - /* - * @desc Stop IMS server and the related TCP/UDP servers - * @param p_ImsServer - * @return IMS_Server_Type - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_IP_IMS_Stop(IMS_Server_Type p_ImsServer) runs on IP_PTC return IMS_Server_Type - { - var IMS_Server_Type v_ImsServer := p_ImsServer; - - if (f_ImsServer_IsStarted(v_ImsServer)) { - - fl_ImsServer_SecurityStop(v_ImsServer); - - f_UdpServer_Stop(v_ImsServer.IPv4Addr, tsc_IMS_PortNumber_5060); - f_UdpServer_Stop(v_ImsServer.IPv6Addr, tsc_IMS_PortNumber_5060); - - f_TcpClient_CloseConnection(p_ImsServer.TcpConnections.Unprotected_pc_us); - f_TcpServer_CloseConnection(p_ImsServer.TcpConnections.Unprotected_uc_ps); - - f_TcpServer_Stop(v_ImsServer.IPv4Addr, tsc_IMS_PortNumber_5060); - f_TcpServer_Stop(v_ImsServer.IPv6Addr, tsc_IMS_PortNumber_5060); - - v_ImsServer := valueof(cs_IMS_Server_Init); - } - return v_ImsServer; - } - /* * @desc start IMS server * @param p_ImsServer * @param p_P_CSCF_IPv4Address * @param p_P_CSCF_IPv6Address - * @param p_DrbInfo + * @param p_PdnIndex * @return IMS_Server_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_IP_IMS_Start(IMS_Server_Type p_ImsServer, charstring p_P_CSCF_IPv4Address, charstring p_P_CSCF_IPv6Address, - IP_DrbInfo_Type p_DrbInfo) runs on IP_PTC return IMS_Server_Type - { + PDN_Index_Type p_PdnIndex) runs on IP_PTC return IMS_Server_Type + { /* @sic R5s150648 Change 3: p_DrbInfo replaced by p_PdnIndex sic@ */ var IMS_Server_Type v_ImsServer := p_ImsServer; - var PortNumber_Type v_PortNumber := v_ImsServer.UnprotectedPorts.Port_ps; - + var PortNumber_Type v_PortNumber := v_ImsServer.UnprotectedContext.SecurityInfo.Unprotected.Port_ps; + var IP_DrbInfo_Type v_DrbInfo := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(p_PdnIndex); /* @sic R5s150648 Change 3 sic@ */ + v_ImsServer.IPv4Addr := valueof(cs_IPv4Addr(p_P_CSCF_IPv4Address)); v_ImsServer.IPv6Addr := valueof(cs_IPv6Addr(p_P_CSCF_IPv6Address)); - v_ImsServer.DrbInfo := p_DrbInfo; + v_ImsServer.PdnIndex := p_PdnIndex; /* @sic R5s150648 Change 3 sic@ */ /* Start UDP servers for the given PDN; * Note: if there is already a UDP server using the same IP address and port, f_UdpServer_Start will cause an error raised by the SS; * => it is implicitly checked that different PDNs have different addresses as requested by 36.523-3 cl. 4.2.4.6 */ - f_UdpServer_Start(v_ImsServer.IPv4Addr, v_PortNumber, p_DrbInfo); - f_UdpServer_Start(v_ImsServer.IPv6Addr, v_PortNumber, p_DrbInfo); + f_UdpServer_Start(v_ImsServer.IPv4Addr, v_PortNumber, v_DrbInfo); + f_UdpServer_Start(v_ImsServer.IPv6Addr, v_PortNumber, v_DrbInfo); /* Start TCP servers for the given PDN */ - f_TcpServer_Start(v_ImsServer.IPv4Addr, v_PortNumber, p_DrbInfo); - f_TcpServer_Start(v_ImsServer.IPv6Addr, v_PortNumber, p_DrbInfo); + f_TcpServer_Start(v_ImsServer.IPv4Addr, v_PortNumber, v_DrbInfo); + f_TcpServer_Start(v_ImsServer.IPv6Addr, v_PortNumber, v_DrbInfo); return v_ImsServer; } /* - * @desc Close TCP connections - * @param p_TcpConnections + * @desc Stop IMS server and the related TCP/UDP servers + * @param p_ImsServer + * @return IMS_Server_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function f_IP_IMS_CloseTCP(IMS_TCP_Connections_Type p_TcpConnections) runs on IP_PTC + function f_IP_IMS_Stop(IMS_Server_Type p_ImsServer) runs on IP_PTC return IMS_Server_Type { - f_TcpClient_CloseConnection(p_TcpConnections.Unprotected_pc_us); - f_TcpServer_CloseConnection(p_TcpConnections.Unprotected_uc_ps); - f_TcpClient_CloseConnection(p_TcpConnections.Protected_pc_us); - f_TcpServer_CloseConnection(p_TcpConnections.Protected_uc_ps); + var IMS_Server_Type v_ImsServer := p_ImsServer; + + if (f_ImsServer_IsStarted(v_ImsServer)) { + + fl_IMS_Server_RemoveSecurityContext(p_ImsServer); // @sic R5-145732: release 1st security context sic@ + fl_IMS_Server_RemoveSecurityContext(p_ImsServer); // @sic R5-145732: release 2nd security context (if any: by the first call of fl_IMS_Server_RemoveSecurityContext the 2nd context gets the 1st one) sic@ + + f_UdpServer_Stop(v_ImsServer.IPv4Addr, tsc_IMS_PortNumber_5060); + f_UdpServer_Stop(v_ImsServer.IPv6Addr, tsc_IMS_PortNumber_5060); + + fl_IMS_Server_SecurityContextCloseTCP(p_ImsServer, unprotected); + + f_TcpServer_Stop(v_ImsServer.IPv4Addr, tsc_IMS_PortNumber_5060); + f_TcpServer_Stop(v_ImsServer.IPv6Addr, tsc_IMS_PortNumber_5060); + + v_ImsServer := valueof(cs_IMS_Server_Init); + } + return v_ImsServer; } //============================================================================ - // Access functions - /* * @desc Function to get the pair of ports for messages sent in DL (TX); - * @param p_ImsServer - * @param p_ProtectedUnprotected + * @param p_SecurityContext * @param p_Protocol * @param p_RequestResponse * @return IMS_LocalRemotePort_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_IP_IMS_GetPortTX(IMS_Server_Type p_ImsServer, - IMS_ProtectedUnprotected_Type p_ProtectedUnprotected, // protected or unprotected - InternetProtocol_Type p_Protocol, // udp or tcp - IMS_RequestResponse_Type p_RequestResponse) // request or response + function fl_IP_IMS_GetPortsTX(IMS_SecurityContext_Type p_SecurityContext, + InternetProtocol_Type p_Protocol, // udp or tcp + IMS_RequestResponse_Type p_RequestResponse) // request or response return IMS_LocalRemotePort_Type - { /* NOTE1: even when security is started it shall be possible to send e.g. the RegisterResponse on an unprotected port - * => we need to have p_ProtectedUnprotected and cannot just use fl_ImsServer_SecurityIsEstablished * - * NOTE2: function returns a value even for the unprotected local tcp port when the SS is client (GIBA only); - * this port shall be ignored and instead an ephemeral port shall be assigned by the system */ - + { /* NOTE: function returns a value even for the unprotected local tcp port when the SS is client (GIBA only); + * this port shall be ignored and instead an ephemeral port shall be assigned by the system */ + /* @sic R5-145732: support of 2nd security context sic@ */ + var IMS_ProtectedPorts_Type v_ProtectedPorts; var IMS_LocalRemotePort_Type v_LocalRemotePort; - select (p_ProtectedUnprotected) { - case (protected) { - if (not fl_ImsServer_SecurityIsEstablished(p_ImsServer)) { - FatalError(__FILE__, __LINE__, "no security established"); - } - if (ispresent(p_ImsServer.PrevProtectedPorts)) { /* re-authentication: use old ports for 401 response @sic R5s131040 sic@ */ - v_ProtectedPorts := p_ImsServer.PrevProtectedPorts; - } else { - v_ProtectedPorts := p_ImsServer.RegistrationInfo.SecurityInfo.ProtectedPorts; + if (ischosen(p_SecurityContext.SecurityInfo.Unprotected)) { + v_LocalRemotePort.Local := p_SecurityContext.SecurityInfo.Unprotected.Port_ps; + v_LocalRemotePort.Remote := p_SecurityContext.SecurityInfo.Unprotected.Port_us; + } + else { + v_ProtectedPorts := p_SecurityContext.SecurityInfo.Protected.ProtectedPorts; + select (p_Protocol) { + case (udp) { + v_LocalRemotePort.Local := v_ProtectedPorts.Port_pc; + v_LocalRemotePort.Remote := v_ProtectedPorts.Port_us; } - select (p_Protocol) { - case (udp) { - v_LocalRemotePort.Local := v_ProtectedPorts.Port_pc; - v_LocalRemotePort.Remote := v_ProtectedPorts.Port_us; - } - case (tcp) { - select (p_RequestResponse) { - case (request) { - v_LocalRemotePort.Local := v_ProtectedPorts.Port_pc; - v_LocalRemotePort.Remote := v_ProtectedPorts.Port_us; - } - case (response) { - v_LocalRemotePort.Local := v_ProtectedPorts.Port_ps; - v_LocalRemotePort.Remote := v_ProtectedPorts.Port_uc; - } + case (tcp) { + select (p_RequestResponse) { + case (request) { + v_LocalRemotePort.Local := v_ProtectedPorts.Port_pc; + v_LocalRemotePort.Remote := v_ProtectedPorts.Port_us; + } + case (response) { + v_LocalRemotePort.Local := v_ProtectedPorts.Port_ps; + v_LocalRemotePort.Remote := v_ProtectedPorts.Port_uc; } } } } - case (unprotected) { - v_LocalRemotePort.Local := p_ImsServer.UnprotectedPorts.Port_ps; - v_LocalRemotePort.Remote := p_ImsServer.UnprotectedPorts.Port_us; + } + return v_LocalRemotePort; + } + + /* + * @desc return port numbers needed to receive UDP data in UL and to accept TCP connections + * applicable to receive UDP data (sent from Port_uc to Port_ps) and to accept TCP connections; + * in case of unprotected connections Port_uc can be any port whereas in case of protected connections Port_uc shall be acc. to the given security context + * @param p_SecurityContext + * @return template (present) IMS_LocalRemotePort_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_IP_IMS_GetPortsRX(template (omit) IMS_SecurityContext_Type p_SecurityContext) + return template (present) IMS_LocalRemotePort_Type + { /* @sic R5-145732: support of 2nd security context sic@ */ + var IMS_SecurityContext_Type v_SecurityContext; + var template (present) IMS_LocalRemotePort_Type v_LocalRemotePort := {?, ?}; // dummy only + + if (isvalue(p_SecurityContext)) { + v_SecurityContext := valueof(p_SecurityContext); + if (ischosen(v_SecurityContext.SecurityInfo.Unprotected)) { + v_LocalRemotePort.Local := v_SecurityContext.SecurityInfo.Unprotected.Port_ps; + } else { + v_LocalRemotePort.Local := v_SecurityContext.SecurityInfo.Protected.ProtectedPorts.Port_ps; + v_LocalRemotePort.Remote := v_SecurityContext.SecurityInfo.Protected.ProtectedPorts.Port_uc; } } return v_LocalRemotePort; @@ -491,104 +653,90 @@ module IP_PTC_IMS_Handler { } } + //**************************************************************************** /* - * @desc handling of UL IMS messages via UDP + * @desc handling of UL IMS messages via TCP for protected and unprotected security context * @param p_ImsServer * @param p_PdnIndex - * @param p_IpAddr - * @param p_PortNumber - * @param p_ProtectedUnprotected + * @param p_SecurityContextEnum * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - altstep a_IP_IMS_UL_ReceiveDataUDP(IMS_Server_Type p_ImsServer, + altstep a_IP_IMS_Server_ReceiveTCP(IMS_Server_Type p_ImsServer, integer p_PdnIndex, - template (present) IP_AddrInfo_Type p_IpAddr, - template (present) PortNumber_Type p_PortNumber, - IMS_ProtectedUnprotected_Type p_ProtectedUnprotected) runs on IP_PTC - { /* receive data from the UE */ - var IP_SOCKET_IND v_IP_SOCKET_IND; - var Datagram_Content_Type v_Data; + IMS_SecurityContextEnum_Type p_SecurityContextEnum) runs on IP_PTC + { /* @sic R5-145732: support of 2nd security context sic@ */ + var template (omit) IMS_SecurityContext_Type v_SecurityContext := fl_IMS_Server_GetSecurityContext(p_ImsServer, p_SecurityContextEnum); + var boolean v_ClientIsConnected := isvalue(v_SecurityContext.TcpClient); + var boolean v_ServerIsConnected := isvalue(v_SecurityContext.TcpServer); var template (omit) IP_AddrInfo_Type v_NW_Address := omit; var template (omit) IP_AddrInfo_Type v_UE_Address := omit; + var IP_SOCKET_IND v_IP_SOCKET_IND; var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - var IMS_RequestResponse_Type v_RequestResponse; + var Datagram_Content_Type v_Data; - // receive UDP data - [] IP_SOCK.receive(cr_UDP_DATA_IND(cr_IP_Socket(p_IpAddr, p_PortNumber))) + [v_ClientIsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(valueof(v_SecurityContext.TcpClient))) + -> value v_IP_SOCKET_IND + { + v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; + v_RoutingInfo := cs_IMS_RoutingInfo(tcp, p_SecurityContextEnum); + fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, response, v_RoutingInfo, v_Data); + } + [v_ServerIsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(valueof(v_SecurityContext.TcpServer))) -> value v_IP_SOCKET_IND { - v_Data := v_IP_SOCKET_IND.DATA.Ind.UDP.RecvFrom.Buffer; if (not fl_ImsServer_UeIsRegistered(p_ImsServer)) { /* initial access: => IMS PTC gets handed over the UE's and the NW's IP address (=> IPv4 or IPv6) */ v_NW_Address := v_IP_SOCKET_IND.DATA.ConnectionId.Local.IpAddr; // may be IPv4 or IPv6 v_UE_Address := v_IP_SOCKET_IND.DATA.ConnectionId.Remote.IpAddr; // may be IPv4 or IPv6 - v_RequestResponse := request; // intial access is only applicable for requests from the UE } - else { - v_RequestResponse := fl_IP_IMS_UL_ResponseOrRequest(v_Data); /* for UDP Requests and Responses are sent by the UE from Port_uc to Port_ps, - * i.e. there is not data for Port_us to Port_pc and therefore Requests and Responses - * cannot be distinguished by the port on which they have been received */ - } - v_RoutingInfo := cs_IMS_RoutingInfo(udp, p_ProtectedUnprotected, v_UE_Address, v_NW_Address); - fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, v_RequestResponse, v_RoutingInfo, v_Data); + v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; + v_RoutingInfo := cs_IMS_RoutingInfo(tcp, p_SecurityContextEnum, v_UE_Address, v_NW_Address); + fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, request, v_RoutingInfo, v_Data); /* @sic R5s141322 change 1 sic@ */ } } /* - * @desc receive TCP message + * @desc handling of UL IMS messages via UDP for protected and unprotected security context * @param p_ImsServer * @param p_PdnIndex - * @param p_TCP_Connections + * @param p_SecurityContextEnum * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - altstep a_IP_IMS_UL_ReceiveDataTCP(IMS_Server_Type p_ImsServer, + altstep a_IP_IMS_Server_ReceiveUDP(IMS_Server_Type p_ImsServer, integer p_PdnIndex, - IMS_TCP_Connections_Type p_TCP_Connections) runs on IP_PTC - { - var IP_SOCKET_IND v_IP_SOCKET_IND; - var Datagram_Content_Type v_Data; + IMS_SecurityContextEnum_Type p_SecurityContextEnum) runs on IP_PTC + { /* @sic R5-145732: support of 2nd security context sic@ */ + var template (present) IP_AddrInfo_Type v_ServerAddr := fl_IMS_Server_GetServerAddr(p_ImsServer); + var template (omit) IMS_SecurityContext_Type v_SecurityContext := fl_IMS_Server_GetSecurityContext(p_ImsServer, p_SecurityContextEnum); + var template (present) IMS_LocalRemotePort_Type v_LocalRemotePort := fl_IP_IMS_GetPortsRX(v_SecurityContext); + var boolean v_UdpServerIsStarted := isvalue(v_SecurityContext); var template (omit) IP_AddrInfo_Type v_NW_Address := omit; var template (omit) IP_AddrInfo_Type v_UE_Address := omit; + var IP_SOCKET_IND v_IP_SOCKET_IND; var template (value) IMS_RoutingInfo_Type v_RoutingInfo; - var boolean v_Unprotected_uc_ps_IsConnected := isvalue(p_TCP_Connections.Unprotected_uc_ps); - var boolean v_Unprotected_pc_us_IsConnected := isvalue(p_TCP_Connections.Unprotected_pc_us); - var boolean v_Protected_uc_ps_IsConnected := isvalue(p_TCP_Connections.Protected_uc_ps); - var boolean v_Protected_pc_us_IsConnected := isvalue(p_TCP_Connections.Protected_pc_us); - - // receive TCP data - [v_Unprotected_uc_ps_IsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(p_TCP_Connections.Unprotected_uc_ps)) - -> value v_IP_SOCKET_IND - { // request at the SS' unprotected server (typically initial REGISTER) - v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; + var Datagram_Content_Type v_Data; + var IMS_RequestResponse_Type v_RequestResponse; + // receive UDP data + [v_UdpServerIsStarted] IP_SOCK.receive(cr_UDP_DATA_IND(cr_IP_Socket(v_ServerAddr, v_LocalRemotePort.Local), + cr_IP_Socket(?, v_LocalRemotePort.Remote))) /* remote port is ? for unprotected connection; + for protected connection the remote port is needed to distinguish the context */ + -> value v_IP_SOCKET_IND + { + v_Data := v_IP_SOCKET_IND.DATA.Ind.UDP.RecvFrom.Buffer; if (not fl_ImsServer_UeIsRegistered(p_ImsServer)) { /* initial access: => IMS PTC gets handed over the UE's and the NW's IP address (=> IPv4 or IPv6) */ v_NW_Address := v_IP_SOCKET_IND.DATA.ConnectionId.Local.IpAddr; // may be IPv4 or IPv6 v_UE_Address := v_IP_SOCKET_IND.DATA.ConnectionId.Remote.IpAddr; // may be IPv4 or IPv6 + v_RequestResponse := request; // intial access is only applicable for requests from the UE } - v_RoutingInfo := cs_IMS_RoutingInfo(tcp, unprotected, v_UE_Address, v_NW_Address); - fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, request, v_RoutingInfo, v_Data); - } - [v_Unprotected_pc_us_IsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(p_TCP_Connections.Unprotected_pc_us)) - -> value v_IP_SOCKET_IND - { // response the SS' unprotected client (NOTE: there is an unprotected client in case of GIBA only) - v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; - v_RoutingInfo := cs_IMS_RoutingInfo(tcp, unprotected); - fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, response, v_RoutingInfo, v_Data); - } - [v_Protected_uc_ps_IsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(p_TCP_Connections.Protected_uc_ps)) - -> value v_IP_SOCKET_IND - { // request at the SS' protected server - v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; - v_RoutingInfo := cs_IMS_RoutingInfo(tcp, protected); - fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, request, v_RoutingInfo, v_Data); - } - [v_Protected_pc_us_IsConnected] IP_SOCK.receive(cr_TCP_DATA_IND(p_TCP_Connections.Protected_pc_us)) - -> value v_IP_SOCKET_IND - { // response the SS' protected client - v_Data := v_IP_SOCKET_IND.DATA.Ind.TCP.Recv; - v_RoutingInfo := cs_IMS_RoutingInfo(tcp, protected); - fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, response, v_RoutingInfo, v_Data); + else { + v_RequestResponse := fl_IP_IMS_UL_ResponseOrRequest(v_Data); /* for UDP Requests and Responses are sent by the UE from Port_uc to Port_ps, + * i.e. there is not data for Port_us to Port_pc and therefore Requests and Responses + * cannot be distinguished by the port on which they have been received */ + } + v_RoutingInfo := cs_IMS_RoutingInfo(udp, p_SecurityContextEnum, v_UE_Address, v_NW_Address); + fl_IP_IMS_UL_DecodeAndSend(p_PdnIndex, v_RequestResponse, v_RoutingInfo, v_Data); } } @@ -600,30 +748,20 @@ module IP_PTC_IMS_Handler { */ altstep a_IP_IMS_UL_Handler(IMS_Server_Type p_ImsServer, integer p_PdnIndex) runs on IP_PTC - { + { /* @sic R5-145732: support of 2nd security context sic@ */ + /* NOTE: for UDP Requests and Responses both are sent by the UE from Port_uc to Port_ps, i.e. we don't need to listen at the port Port_pc */ + var boolean v_ImsServer_IsStarted := f_ImsServer_IsStarted(p_ImsServer); - var boolean v_SecurityIsEstablished := v_ImsServer_IsStarted and fl_ImsServer_SecurityIsEstablished(p_ImsServer); + var boolean v_SecurityContext1_IsStarted := v_ImsServer_IsStarted and fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext1); + var boolean v_SecurityContext2_IsStarted := v_ImsServer_IsStarted and fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext2); - [v_SecurityIsEstablished] /* receive protected IMS message; - * NOTE: for UDP Requests and Responses both are sent by the UE from Port_uc to Port_ps, - * i.e. we don't need to listen at the port Port_pc */ - a_IP_IMS_UL_ReceiveDataUDP(p_ImsServer, - p_PdnIndex, - p_ImsServer.RegistrationInfo.NW_Address, - p_ImsServer.RegistrationInfo.SecurityInfo.ProtectedPorts.Port_ps, - protected); - - [v_ImsServer_IsStarted] - a_IP_IMS_UL_ReceiveDataUDP(p_ImsServer, - p_PdnIndex, - (p_ImsServer.IPv4Addr, p_ImsServer.IPv6Addr), - tsc_IMS_PortNumber_5060, - unprotected); - - [v_ImsServer_IsStarted] - a_IP_IMS_UL_ReceiveDataTCP(p_ImsServer, - p_PdnIndex, - p_ImsServer.TcpConnections); + [v_ImsServer_IsStarted] a_IP_IMS_Server_ReceiveUDP(p_ImsServer, p_PdnIndex, unprotected); + [v_SecurityContext1_IsStarted] a_IP_IMS_Server_ReceiveUDP(p_ImsServer, p_PdnIndex, protectedContext1); + [v_SecurityContext2_IsStarted] a_IP_IMS_Server_ReceiveUDP(p_ImsServer, p_PdnIndex, protectedContext2); + + [v_ImsServer_IsStarted] a_IP_IMS_Server_ReceiveTCP(p_ImsServer, p_PdnIndex, unprotected); + [v_SecurityContext1_IsStarted] a_IP_IMS_Server_ReceiveTCP(p_ImsServer, p_PdnIndex, protectedContext1); + [v_SecurityContext2_IsStarted] a_IP_IMS_Server_ReceiveTCP(p_ImsServer, p_PdnIndex, protectedContext2); } //**************************************************************************** @@ -644,13 +782,14 @@ module IP_PTC_IMS_Handler { * @param p_Data * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_IP_IMS_DL_Send(inout IMS_Server_Type p_ImsServer, - IMS_RoutingInfo_Type p_RoutingInfo, - IMS_RequestResponse_Type p_RequestResponse, - bitstring p_Data) runs on IP_PTC - { + function fl_IP_IMS_Server_SendDL(inout IMS_Server_Type p_ImsServer, + IMS_RoutingInfo_Type p_RoutingInfo, + IMS_RequestResponse_Type p_RequestResponse, + bitstring p_Data) runs on IP_PTC + { /* @sic R5-145732: support of 2nd security context sic@ */ var InternetProtocol_Type v_Protocol := p_RoutingInfo.Protocol; - var IMS_ProtectedUnprotected_Type v_ProtectedUnprotected; + var IMS_SecurityContextEnum_Type v_SecurityContextEnum; + var IMS_SecurityContext_Type v_SecurityContext; var IMS_LocalRemotePort_Type v_LocalRemotePort; var template (omit) PortNumber_Type v_LocalPort; var PortNumber_Type v_RemotePort; @@ -661,23 +800,31 @@ module IP_PTC_IMS_Handler { var template (omit) IP_Connection_Type v_TCP_Connection := omit; var IP_Connection_Type v_NewTcpConnectionByRef; var Datagram_Content_Type v_Data := bit2oct(p_Data); - var boolean v_SecurityIsEstablished := fl_ImsServer_SecurityIsEstablished(p_ImsServer); var boolean v_IsUnprotected; + var IP_DrbInfo_Type v_DrbInfo; if (isvalue(p_RoutingInfo.Security)) { /* Security may be omitted by the IMS PTC when the IMS message shall be sent protected or unprotected based on whether security is configured or not; in case of the initial REGISTER response security is already configured but the reponse needs to be sent unprotected (as the UE has not fully configured security yet) => at least in this case the IMS PTC shall set the "Security" field of the RoutingInfo */ - v_ProtectedUnprotected := p_RoutingInfo.Security; - if ((v_ProtectedUnprotected == protected) and not v_SecurityIsEstablished) { - FatalError(__FILE__, __LINE__, "IMS security not established"); - } - } else if (v_SecurityIsEstablished) { - v_ProtectedUnprotected := protected; + v_SecurityContextEnum := p_RoutingInfo.Security; } else { - v_ProtectedUnprotected := unprotected; + if (fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext2)) { /* the latest security context is preferred */ + v_SecurityContextEnum := protectedContext2; + } else if (fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext1)) { + v_SecurityContextEnum := protectedContext1; + } else { + v_SecurityContextEnum := unprotected; + } + } + + if (not fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, v_SecurityContextEnum)) { + FatalError(__FILE__, __LINE__, "IMS security not established"); } - v_LocalRemotePort := fl_IP_IMS_GetPortTX(p_ImsServer, v_ProtectedUnprotected, v_Protocol, p_RequestResponse); + v_SecurityContext := valueof(fl_IMS_Server_GetSecurityContext(p_ImsServer, v_SecurityContextEnum)); + v_IsUnprotected := (v_SecurityContextEnum == unprotected); + + v_LocalRemotePort := fl_IP_IMS_GetPortsTX(v_SecurityContext, v_Protocol, p_RequestResponse); v_LocalPort := v_LocalRemotePort.Local; v_RemotePort := v_LocalRemotePort.Remote; @@ -685,8 +832,8 @@ module IP_PTC_IMS_Handler { v_NW_Address := p_RoutingInfo.NW_Address; v_UE_Address := p_RoutingInfo.UE_Address; } else if (fl_ImsServer_UeIsRegistered(p_ImsServer)) { - v_NW_Address := p_ImsServer.RegistrationInfo.NW_Address; - v_UE_Address := p_ImsServer.RegistrationInfo.UE_Address; + v_NW_Address := p_ImsServer.RegistrationAddress.NW; + v_UE_Address := p_ImsServer.RegistrationAddress.UE; } else { FatalError(__FILE__, __LINE__, "missing IP addresses"); } @@ -700,41 +847,23 @@ module IP_PTC_IMS_Handler { case (tcp) { select (p_RequestResponse) { case (response) { - select (v_ProtectedUnprotected) { - case (unprotected) { - v_TCP_Connection := p_ImsServer.TcpConnections.Unprotected_uc_ps; - } - case (protected) { - v_TCP_Connection := p_ImsServer.TcpConnections.Protected_uc_ps; - } - } + v_TCP_Connection := v_SecurityContext.TcpServer; } case (request) { - select (v_ProtectedUnprotected) { - case (unprotected) { - v_TCP_Connection := p_ImsServer.TcpConnections.Unprotected_pc_us; - v_IsUnprotected := true; - } - case (protected) { - v_TCP_Connection := p_ImsServer.TcpConnections.Protected_pc_us; - v_IsUnprotected := false; - } - } + v_TCP_Connection := v_SecurityContext.TcpClient; if (not isvalue(v_TCP_Connection)) { if (v_IsUnprotected) { v_LocalPort := omit; // in case of an unprotected TCP connection to UE there is no need to specify any specific local port but we can use an ephemeral port instead } v_NewTcpConnectionByRef := f_TcpClient_ConnectReq(cs_IP_Socket(v_NW_Address, v_LocalPort), cs_IP_Socket(v_UE_Address, v_RemotePort), ims); + v_DrbInfo := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(p_ImsServer.PdnIndex); /* @sic R5s150648 Change 3 sic@ */ alt { [] a_IP_IMS_TCP_ConnectionControl(p_ImsServer) { /* @sic R5s140713 - MCC160 implementation sic@ */ repeat; } - [] a_TcpClient_ConnectCnf(v_NewTcpConnectionByRef, p_ImsServer.DrbInfo) { - if (v_IsUnprotected) { - p_ImsServer.TcpConnections.Unprotected_pc_us := v_NewTcpConnectionByRef; - } else { - p_ImsServer.TcpConnections.Protected_pc_us := v_NewTcpConnectionByRef; - } + [] a_TcpClient_ConnectCnf(v_NewTcpConnectionByRef, v_DrbInfo) { + v_SecurityContext.TcpClient := v_NewTcpConnectionByRef; + fl_IMS_Server_SetSecurityContext(p_ImsServer, v_SecurityContextEnum, v_SecurityContext); // @sic R5s141322 change 2 sic@ v_TCP_Connection := v_NewTcpConnectionByRef; } } @@ -743,9 +872,12 @@ module IP_PTC_IMS_Handler { } if (not isvalue(v_TCP_Connection)) { - FatalError(__FILE__, __LINE__, "no valid TCP connection"); + /* @sic R5s150270 change 2: just skip the data sic@ + there can be a race condion when the UE does not wait for any 200 OK but immediately closes the TCP connection with the server + => when TTCN wants to send the 200 OK the connection is gone already */ + } else { + IP_SOCK.send(cs_TCP_DATA_REQ(valueof(v_TCP_Connection), v_Data)); } - IP_SOCK.send(cs_TCP_DATA_REQ(valueof(v_TCP_Connection), v_Data)); } case else { FatalError(__FILE__, __LINE__, "invalid protocol"); @@ -770,12 +902,12 @@ module IP_PTC_IMS_Handler { [] IMS_Server[p_PdnIndex].receive(cr_IMS_DATA_RSP_Any) -> value v_IMS_DATA_RSP { v_Data := encvalue(v_IMS_DATA_RSP.Response); - fl_IP_IMS_DL_Send(p_ImsServer, v_IMS_DATA_RSP.RoutingInfo, response, v_Data); + fl_IP_IMS_Server_SendDL(p_ImsServer, v_IMS_DATA_RSP.RoutingInfo, response, v_Data); } [] IMS_Client[p_PdnIndex].receive(cr_IMS_DATA_REQ_Any) -> value v_IMS_DATA_REQ { v_Data := encvalue(v_IMS_DATA_REQ.Request); - fl_IP_IMS_DL_Send(p_ImsServer, v_IMS_DATA_REQ.RoutingInfo, request, v_Data); + fl_IP_IMS_Server_SendDL(p_ImsServer, v_IMS_DATA_REQ.RoutingInfo, request, v_Data); } } @@ -794,8 +926,8 @@ module IP_PTC_IMS_Handler { /* @sic R5s130900 - MCC160 implementation for re-authentication sic@ */ var IMS_CONFIG_REQ v_IMS_CONFIG_REQ; var IMS_PortsAndSecurityConfigReq_Type v_PortsAndSecurityConfig; - var IMS_RegistrationInfo_Type v_RegistrationInfo; - var IMS_SecurityInfo_Type v_SecurityInfo; + var template (omit) IMS_RegistrationInfo_Type v_RegistrationInfo; + var boolean v_WaitForCNF; [] p_Port.receive(car_IMS_InstallKey_REQ) -> value v_IMS_CONFIG_REQ { @@ -807,56 +939,46 @@ module IP_PTC_IMS_Handler { { v_PortsAndSecurityConfig := v_IMS_CONFIG_REQ.PortsAndSecurityConfig; v_RegistrationInfo := v_PortsAndSecurityConfig.RegistrationInfo; + if (not isvalue(p_ImsServer.RegistrationAddress) and isvalue (v_RegistrationInfo)) { /* @sic R5s150268 change 4 sic@ */ + p_ImsServer.RegistrationAddress.NW := valueof(v_RegistrationInfo.NW_Address); + p_ImsServer.RegistrationAddress.UE := valueof(v_RegistrationInfo.UE_Address); + } if (isvalue(v_PortsAndSecurityConfig.UnprotectedPort_us)) { - p_ImsServer.UnprotectedPorts.Port_us := v_PortsAndSecurityConfig.UnprotectedPort_us; // set UE's port number as requested by the UE + p_ImsServer.UnprotectedContext.SecurityInfo.Unprotected.Port_us := v_PortsAndSecurityConfig.UnprotectedPort_us; /* set UE's port number as requested by the UE */ } else { - p_ImsServer.UnprotectedPorts.Port_us := tsc_IMS_PortNumber_5060; // restore port number e.g. if it has been set to other value in previous session + p_ImsServer.UnprotectedContext.SecurityInfo.Unprotected.Port_us := tsc_IMS_PortNumber_5060; /* restore port number e.g. if it has been set to other value in previous session */ } - if (isvalue(v_RegistrationInfo.SecurityInfo)) { /* non-GIBA - @sic R5s120858 change 6..8 - MCC160 implementation sic@ */ + if (isvalue(v_RegistrationInfo.SecurityInfo)) { /* non-GIBA @sic R5s120858 change 6..8 - MCC160 implementation sic@ */ if (not isvalue(p_ImsServer.SecurityKeys)) { FatalError(__FILE__, __LINE__, "security keys missing"); } - if (fl_ImsServer_SecurityIsEstablished(p_ImsServer)) { /* => re-authentication */ - fl_ImsServer_SecurityStartAdditional(p_ImsServer, v_RegistrationInfo); /* @sic R5s130900 sic@ */ - p_ImsServer.PrevProtectedPorts := p_ImsServer.RegistrationInfo.SecurityInfo.ProtectedPorts; /* @sic R5s131040 sic@ */ - } - else { - fl_ImsServer_SecurityStart(v_RegistrationInfo, p_ImsServer.SecurityKeys, p_ImsServer.DrbInfo); - } + fl_IMS_Server_AddSecurityContext(p_ImsServer, valueof(v_RegistrationInfo)); /* @sic R5-145732: support of 2nd security context sic@ */ } else { - fl_ImsServer_SecurityStop(p_ImsServer); + fl_IMS_Server_RemoveSecurityContext(p_ImsServer); } - p_ImsServer.RegistrationInfo := v_RegistrationInfo; - p_Port.send(cas_IMS_PortsAndSecurityConfig_CNF); } [] p_Port.receive(car_IMS_SecurityRelease_REQ) -> value v_IMS_CONFIG_REQ { - v_SecurityInfo := v_IMS_CONFIG_REQ.SecurityRelease; - // Release security association - fl_IPsec_Release(p_ImsServer.RegistrationInfo.NW_Address, - p_ImsServer.RegistrationInfo.UE_Address, - v_SecurityInfo); - /* @sic R5s140303 - Additional change: UDP client (port_pc) needs to be release here as it cannot be released in fl_ImsServer_SecurityStartAdditional sic@ */ - f_UdpClient_Stop(p_ImsServer.RegistrationInfo.NW_Address, v_SecurityInfo.ProtectedPorts.Port_pc); - + v_WaitForCNF := false; + fl_IMS_Server_RemoveSecurityContext(p_ImsServer, v_WaitForCNF); /* @sic R5-145732: support of 2nd security context sic@ */ p_Port.send(cas_IMS_SecurityRelease_CNF); - p_ImsServer.PrevProtectedPorts := omit; /* @sic R5s131040 sic@ */ } [] p_Port.receive(car_IMS_RegInfoRelease_REQ) -> value v_IMS_CONFIG_REQ /* @sic R5s140123 change 8 sic@ */ { - fl_ImsServer_SecurityStop(p_ImsServer); - p_ImsServer.RegistrationInfo := omit; + v_WaitForCNF := false; + fl_IMS_Server_RemoveSecurityContext(p_ImsServer, v_WaitForCNF); /* @sic R5s141154 sic@ */ + p_ImsServer.RegistrationAddress := omit; p_Port.send(cas_IMS_RegInfoRelease_CNF); } [] p_Port.receive(car_IMS_CloseTCP_REQ) -> value v_IMS_CONFIG_REQ /* @sic R5s130988 change 1 - MCC160 implementation sic@ */ { - f_IP_IMS_CloseTCP(p_ImsServer.TcpConnections); - p_ImsServer.TcpConnections := valueof(cs_IMS_TCP_Connections_Init); + fl_IMS_Server_SecurityContextCloseTCP(p_ImsServer, unprotected); + fl_IMS_Server_SecurityContextCloseTCP(p_ImsServer, protectedContext1); + fl_IMS_Server_SecurityContextCloseTCP(p_ImsServer, protectedContext2); p_Port.send(cas_IMS_CloseTCP_CNF); } } @@ -870,48 +992,18 @@ module IP_PTC_IMS_Handler { * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ altstep a_IP_IMS_TCP_ConnectionControl(inout IMS_Server_Type p_ImsServer) runs on IP_PTC - { - var IMS_TCP_Connections_Type v_TCP_Connections := p_ImsServer.TcpConnections; - var template (omit) IP_Connection_Type v_UnprotectedConnectionByRef := v_TCP_Connections.Unprotected_uc_ps; - var template (omit) IP_Connection_Type v_ProtectedConnectionByRef := v_TCP_Connections.Protected_uc_ps; - var boolean v_Unprotected_uc_ps_IsConnected := isvalue(v_TCP_Connections.Unprotected_uc_ps); - var boolean v_Unprotected_pc_us_IsConnected := isvalue(v_TCP_Connections.Unprotected_pc_us); - var boolean v_Protected_uc_ps_IsConnected := isvalue(v_TCP_Connections.Protected_uc_ps); - var boolean v_Protected_pc_us_IsConnected := isvalue(v_TCP_Connections.Protected_pc_us); - var boolean v_ImsServerIsStarted := f_ImsServer_IsStarted(p_ImsServer); - var boolean v_SecurityIsStarted := v_ImsServerIsStarted and fl_ImsServer_SecurityIsEstablished(p_ImsServer); - var template (present) IP_AddrInfo_Type v_ServerAddrIPv4orIPv6 := (p_ImsServer.IPv4Addr, p_ImsServer.IPv6Addr); // IPv4 or IPv6 address - - [v_ImsServerIsStarted] a_TcpServer_AcceptConnection(v_UnprotectedConnectionByRef, v_ServerAddrIPv4orIPv6, p_ImsServer.UnprotectedPorts.Port_ps) - { - if (isvalue(v_UnprotectedConnectionByRef)) { /* @sic R5s140647 change 2: sic@ - connection may be closed and a_TcpServer_AcceptConnection called due to TCP_CLOSE_CNF - => v_UnprotectedConnectionByRef may be omit already before entrance of a_TcpServer_AcceptConnection and therefore is still omit afterwards */ - p_ImsServer.TcpConnections.Unprotected_uc_ps := valueof(v_UnprotectedConnectionByRef); - } - } - [v_SecurityIsStarted] a_TcpServer_AcceptConnection(v_ProtectedConnectionByRef, p_ImsServer.RegistrationInfo.NW_Address, p_ImsServer.RegistrationInfo.SecurityInfo.ProtectedPorts.Port_ps) - { - if (isvalue(v_ProtectedConnectionByRef)) { /* @sic R5s140647 change 2 - additional change sic@ */ - p_ImsServer.TcpConnections.Protected_uc_ps := valueof(v_ProtectedConnectionByRef); - } - } - [v_Unprotected_uc_ps_IsConnected] a_TcpServer_CloseConnection(v_TCP_Connections.Unprotected_uc_ps) - { // unprotected connection from UE to SS - p_ImsServer.TcpConnections.Unprotected_uc_ps := omit; - } - [v_Unprotected_pc_us_IsConnected] a_TcpServer_CloseConnection(v_TCP_Connections.Unprotected_pc_us) - { // unprotected connection from SS to UE - p_ImsServer.TcpConnections.Unprotected_pc_us := omit; - } - [v_Protected_uc_ps_IsConnected] a_TcpServer_CloseConnection(v_TCP_Connections.Protected_uc_ps) - { // protected connection from UE to SS - p_ImsServer.TcpConnections.Protected_uc_ps := omit; - } - [v_Protected_pc_us_IsConnected] a_TcpServer_CloseConnection(v_TCP_Connections.Protected_pc_us) - { // protected connection from SS to UE - p_ImsServer.TcpConnections.Protected_pc_us := omit; - } + { /* @sic R5-145732: support of 2nd security context sic@ */ + var boolean v_ImsServer_IsStarted := f_ImsServer_IsStarted(p_ImsServer); + var boolean v_SecurityContext1_IsStarted := v_ImsServer_IsStarted and fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext1); + var boolean v_SecurityContext2_IsStarted := v_ImsServer_IsStarted and fl_IMS_Server_SecurityContext_IsStarted(p_ImsServer, protectedContext2); + + [v_ImsServer_IsStarted] a_IMS_Server_SecurityContextAcceptTCP(p_ImsServer, unprotected); + [v_SecurityContext1_IsStarted] a_IMS_Server_SecurityContextAcceptTCP(p_ImsServer, protectedContext1); + [v_SecurityContext2_IsStarted] a_IMS_Server_SecurityContextAcceptTCP(p_ImsServer, protectedContext2); + + [v_ImsServer_IsStarted] a_IMS_Server_SecurityContextCloseTCP(p_ImsServer, unprotected); + [v_SecurityContext1_IsStarted] a_IMS_Server_SecurityContextCloseTCP(p_ImsServer, protectedContext1); + [v_SecurityContext2_IsStarted] a_IMS_Server_SecurityContextCloseTCP(p_ImsServer, protectedContext2); } //============================================================================ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn index 03545f1..9c71bf2 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_IMS_Templates.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-04-18 12:41:08 +0200 (Fri, 18 Apr 2014) $ // $Rev: 11199 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Main.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Main.ttcn similarity index 73% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Main.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Main.ttcn index 69c1193..e9a2391 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Main.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Main.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:44:18 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12148 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module IP_PTC_Main { @@ -19,6 +19,7 @@ module IP_PTC_Main { import from IP_PTC_Routing all; import from DHCPv4_Common all; import from ICMPv6_Functions all; + import from DNS_Functions all; import from IP_PTC_IMS_Handler all; import from IP_PTC_HTTP_Handler all; import from UDP_Functions all; @@ -29,6 +30,8 @@ module IP_PTC_Main { // IP PTC: Additional definitions //---------------------------------------------------------------------------- + const PortNumber_Type tsc_PortNumber_DNS_Server := 53; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + const PortNumber_Type tsc_PortNumber_DHCP_Server := 67; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ const PortNumber_Type tsc_PortNumber_DHCP_Client := 68; @@ -42,28 +45,25 @@ module IP_PTC_Main { const O2_Type tsc_MulticastPrefix_FF02 := 'FF02'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - /* - * @desc return index of the IP address or IMS server corresponding to the given PdnIndex - * @param p_PdnIndex - * @return integer + * @desc get AddrServerInfo for given IP address + * @param p_AddrServerArray + * @param p_ServerAddrInfo + * @return template (omit) AddrServerInfo_Type * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_IP_ServerIndex(PDN_Index_Type p_PdnIndex) return integer - { /* PDN_2a to support change of the IP address for IMS test case 19.5.1 */ - var integer v_Index; - select (p_PdnIndex) { - case (PDN_1) { - v_Index := 0; - } - case (PDN_2, PDN_2a, PDN_Internet) { - v_Index := 1; - } - case else { - FatalError(__FILE__, __LINE__, "Invalid PDN index"); + function fl_IP_AddrServer_Get(IP_AddrServerArray_Type p_AddrServerArray, + IP_AddrInfo_Type p_ServerAddrInfo) return template (omit) AddrServerInfo_Type + { /* @sic R5-145754: new generic function sic@ */ + var integer i; + + for (i:=0; i < lengthof(p_AddrServerArray); i := i + 1) { + if (f_IMS_IpAddrMatch(p_ServerAddrInfo, p_AddrServerArray[i].ServerAddr)) { + return p_AddrServerArray[i]; } } - return v_Index; + FatalError(__FILE__, __LINE__, "No address server found matching given server address"); + return omit; } /* @@ -74,17 +74,15 @@ module IP_PTC_Main { * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function fl_IP_AddrServer_GetDrbInfo(IP_AddrServerArray_Type p_AddrServerArray, - IP_AddrInfo_Type p_ServerAddrInfo) return template (omit) IP_DrbInfo_Type + IP_AddrInfo_Type p_ServerAddrInfo) runs on IP_PTC return template (omit) IP_DrbInfo_Type { - var integer i; + var template (omit) AddrServerInfo_Type v_AddrServerInfo := fl_IP_AddrServer_Get(p_AddrServerArray, p_ServerAddrInfo); + var template (omit) IP_DrbInfo_Type v_IP_DrbInfo := omit; - for (i:=0; i < lengthof(p_AddrServerArray); i := i + 1) { - if (f_IMS_IpAddrMatch(p_ServerAddrInfo, p_AddrServerArray[i].ServerAddr)) { - return p_AddrServerArray[i].DrbInfo; - } + if (isvalue(v_AddrServerInfo.PdnIndex)) { + v_IP_DrbInfo := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(valueof(v_AddrServerInfo.PdnIndex)); /* @sic R5s150648 Change 4 sic@ */ } - FatalError(__FILE__, __LINE__, "No address server found matching given server address"); - return omit; + return v_IP_DrbInfo; } /* @@ -158,13 +156,15 @@ module IP_PTC_Main { template (value) AddrServerInfo_Type cs_IP_AddrServer_Init(template (omit) charstring p_ServerAddr := omit, template (omit) charstring p_ClientAddr := omit, - template (omit) IP_DrbInfo_Type p_DrbInfo := omit) := + template (omit) PDN_Index_Type p_PdnIndex := omit) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ ServerAddr := p_ServerAddr, ClientAddr := p_ClientAddr, - DrbInfo := p_DrbInfo + PdnIndex := p_PdnIndex /* @sic R5-145754 sic@ */ }; + + /* * @desc initialisation of the IP PTC and all servers * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) @@ -176,9 +176,12 @@ module IP_PTC_Main { vc_IP_PTC_DRB_RoutingTable := {}; for (i:=0; i < tsc_NoOfPDNs; i:=i+1) { - vc_IP_PTC_PDN_AddrServer.DHCP[i] := valueof(cs_IP_AddrServer_Init); - vc_IP_PTC_PDN_AddrServer.ICMPv6[i] := valueof(cs_IP_AddrServer_Init); - vc_IP_PTC_IMS_Info.Server[i] := valueof(cs_IMS_Server_Init); + vc_IP_PTC_PDN_AddrServer.DHCP[i] := valueof(cs_IP_AddrServer_Init); + vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv4[i] := valueof(cs_IP_AddrServer_Init); + vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv6[i] := valueof(cs_IP_AddrServer_Init); + vc_IP_PTC_PDN_AddrServer.ICMPv6[i] := valueof(cs_IP_AddrServer_Init); + vc_IP_PTC_IMS_Info.Server[i] := valueof(cs_IMS_Server_Init); + vc_IP_PTC_PDN_MappingTable[i].DefaultDrb := omit; /* @sic R5s150648 Change 2.1 sic@ */ } } @@ -191,7 +194,7 @@ module IP_PTC_Main { */ function fl_IP_AddrServer_IsRunning(AddrServerInfo_Type p_ServerInfo) return boolean { - return isvalue(p_ServerInfo.DrbInfo); + return isvalue(p_ServerInfo.PdnIndex); /* @sic R5s150648 Change 4 sic@ */ } /* @@ -202,9 +205,9 @@ module IP_PTC_Main { * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function fl_IP_AddrServer_Find(IP_AddrServerArray_Type p_ServerArray, - template (omit) IP_DrbInfo_Type p_DrbInfo) return integer + template (omit) IP_DrbInfo_Type p_DrbInfo) runs on IP_PTC return integer { - var IP_DrbInfo_Type v_DrbInfoServer; + var IP_DrbInfo_Type v_DrbInfoPdn; var IP_DrbInfo_Type v_DrbInfo; var integer i; @@ -212,22 +215,10 @@ module IP_PTC_Main { v_DrbInfo := valueof(p_DrbInfo); for (i:=0; i < lengthof(p_ServerArray); i:=i+1) { - v_DrbInfoServer := p_ServerArray[i].DrbInfo; - if (isvalue(v_DrbInfoServer)) { - if (ischosen(v_DrbInfo.Eutra) and ischosen(v_DrbInfoServer.Eutra)) { - if (v_DrbInfo.Eutra.DrbId == v_DrbInfoServer.Eutra.DrbId) { - return i; - } - } - else if (ischosen(v_DrbInfo.Utran) and ischosen(v_DrbInfoServer.Utran)) { - if (v_DrbInfo.Utran.DrbId == v_DrbInfoServer.Utran.DrbId) { - return i; - } - } - else if (ischosen(v_DrbInfo.Geran) and ischosen(v_DrbInfoServer.Geran)) { - if (v_DrbInfo.Geran.DrbId == v_DrbInfoServer.Geran.DrbId) { - return i; - } + if (fl_IP_AddrServer_IsRunning(p_ServerArray[i])) { + v_DrbInfoPdn := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(p_ServerArray[i].PdnIndex); + if (f_IP_DrbInfo_DrbIdMatch(v_DrbInfoPdn, v_DrbInfo)) { /* @sic R5s150648 Change 4 sic@ */ + return i; } } } @@ -237,6 +228,47 @@ module IP_PTC_Main { } //---------------------------------------------------------------------------- + /* + * @desc stop UDP server for DHCP or DNS + * @param p_UdpServer + * @param p_ServerPort + * @return AddrServerInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_IP_UdpServer_Stop(AddrServerInfo_Type p_UdpServer, + integer p_ServerPort) runs on IP_PTC return AddrServerInfo_Type + { + var charstring v_ServerAddr := p_UdpServer.ServerAddr; + var template (value) IP_AddrInfo_Type v_IP_AddrInfo := f_Char2IpAddress(v_ServerAddr); /* @sic R5s141324: IPv4 or IPv6 address sic@ */ + + if (fl_IP_AddrServer_IsRunning(p_UdpServer)) { + f_UdpServer_Stop(v_IP_AddrInfo, p_ServerPort); + } + return valueof(cs_IP_AddrServer_Init); + } + + /* + * @desc start UDP server for DHCP or DNS + * @param p_ServerAddr + * @param p_ClientAddr + * @param p_ServerPort + * @param p_DrbInfo + * @param p_PdnIndex + * @return AddrServerInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function fl_IP_UdpServer_Start(charstring p_ServerAddr, + template (omit) charstring p_ClientAddr, + integer p_ServerPort, + IP_DrbInfo_Type p_DrbInfo, + PDN_Index_Type p_PdnIndex) runs on IP_PTC return AddrServerInfo_Type + { + var template (value) IP_AddrInfo_Type v_IP_AddrInfo := f_Char2IpAddress(p_ServerAddr); /* @sic R5s141324: IPv4 or IPv6 address sic@ */ + + f_UdpServer_Start(v_IP_AddrInfo, p_ServerPort, p_DrbInfo); + return valueof(cs_IP_AddrServer_Init(p_ServerAddr, p_ClientAddr, p_PdnIndex)); + } + /* * @desc stop servers (ICMPv6 or DHCP) for a given PDN * @param p_Index @@ -247,13 +279,10 @@ module IP_PTC_Main { var charstring v_ServerAddr; - if (fl_IP_AddrServer_IsRunning(vc_IP_PTC_PDN_AddrServer.DHCP[p_Index])) { - - v_ServerAddr := vc_IP_PTC_PDN_AddrServer.DHCP[p_Index].ServerAddr; - f_UdpServer_Stop(cs_IPv4Addr(v_ServerAddr), tsc_PortNumber_DHCP_Server); + vc_IP_PTC_PDN_AddrServer.DHCP[p_Index] := fl_IP_UdpServer_Stop(vc_IP_PTC_PDN_AddrServer.DHCP[p_Index], tsc_PortNumber_DHCP_Server); // @sic R5-145754 sic@ + vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv4[p_Index] := fl_IP_UdpServer_Stop(vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv4[p_Index], tsc_PortNumber_DNS_Server); // @sic R5-145754 sic@ + vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv6[p_Index] := fl_IP_UdpServer_Stop(vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv6[p_Index], tsc_PortNumber_DNS_Server); // @sic R5-145754 sic@ - vc_IP_PTC_PDN_AddrServer.DHCP[p_Index] := valueof(cs_IP_AddrServer_Init); - } if (fl_IP_AddrServer_IsRunning(vc_IP_PTC_PDN_AddrServer.ICMPv6[p_Index])) { v_ServerAddr := vc_IP_PTC_PDN_AddrServer.ICMPv6[p_Index].ServerAddr; @@ -281,16 +310,19 @@ module IP_PTC_Main { var charstring v_ServerIpAddrv6 := v_PDN_AddressInfo.ICMPv6_ServerAddress; var charstring v_ClientIpAddrv4 := v_PDN_AddressInfo.UE_IPAddressIPv4; var charstring v_ClientIpAddrv6 := v_PDN_AddressInfo.UE_IPAddressIPv6; - var integer v_Index := fl_IP_ServerIndex(p_PdnIndex); + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); fl_IP_AddrServers_Stop(v_Index); // stop sever if any running // DHCP - vc_IP_PTC_PDN_AddrServer.DHCP[v_Index] := valueof(cs_IP_AddrServer_Init(v_ServerIpAddrv4, v_ClientIpAddrv4, p_DrbInfo)); - f_UdpServer_Start(cs_IPv4Addr(v_ServerIpAddrv4), tsc_PortNumber_DHCP_Server, p_DrbInfo); + vc_IP_PTC_PDN_AddrServer.DHCP[v_Index] := fl_IP_UdpServer_Start(v_ServerIpAddrv4, v_ClientIpAddrv4, tsc_PortNumber_DHCP_Server, p_DrbInfo, p_PdnIndex); // @sic R5-145754 sic@ + + // DNS + vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv4[v_Index] := fl_IP_UdpServer_Start(v_ServerIpAddrv4, omit, tsc_PortNumber_DNS_Server, p_DrbInfo, p_PdnIndex); // @sic R5-145754 sic@ + vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv6[v_Index] := fl_IP_UdpServer_Start(v_ServerIpAddrv6, omit, tsc_PortNumber_DNS_Server, p_DrbInfo, p_PdnIndex); // @sic R5-145754 sic@ // ICMPv6 - vc_IP_PTC_PDN_AddrServer.ICMPv6[v_Index] := valueof(cs_IP_AddrServer_Init(v_ServerIpAddrv6, v_ClientIpAddrv6, p_DrbInfo)); + vc_IP_PTC_PDN_AddrServer.ICMPv6[v_Index] := valueof(cs_IP_AddrServer_Init(v_ServerIpAddrv6, v_ClientIpAddrv6, p_PdnIndex)); fl_Icmpv6Server_Start(cs_IPv6Addr(v_ServerIpAddrv6), p_DrbInfo); fl_Icmpv6Server_Start(cs_IPv6Addr(fl_IPv6AddrGetLinkLocalAddr(v_ServerIpAddrv6)), p_DrbInfo); @@ -300,11 +332,9 @@ module IP_PTC_Main { /* * @desc Wrapper to start IMS * @param p_PdnIndex - * @param p_DrbInfo * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function fl_IP_ImsServer_Start(PDN_Index_Type p_PdnIndex, - IP_DrbInfo_Type p_DrbInfo) runs on IP_PTC + function fl_IP_ImsServer_Start(PDN_Index_Type p_PdnIndex) runs on IP_PTC { /* Multiple PDNs * In case of multiple PDNs (e.g. for emergency calls) there can be * 1) multiple P-CSCFs i.e. one for each PDN; this is typically the case for roaming scenarios when the normal IMS registration is done at the P-CSCF in th home PLMN @@ -319,16 +349,17 @@ module IP_PTC_Main { * (Note: if the P-CSCF would have only one IP address for two PDNs in DL the routing can only be determined based on the destination address * i.e. the UE's addresses need to be considered when starting the UDP server - what is weird from socket programming point of view) */ /* @sic R5s130362 - MCC160 Implementation: tsc_PDN_AddressInfo sic@ */ - var integer v_IndexVal := fl_IP_ServerIndex(p_PdnIndex); + /* @sic R5s150648 Change 3: p_DrbInfo removed sic@ */ + var integer v_IndexVal := f_PDN_PdnIndex2Integer(p_PdnIndex); var IMS_Server_Type v_ImsServer := vc_IP_PTC_IMS_Info.Server[v_IndexVal]; var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); - f_IP_IMS_Stop(v_ImsServer); // @sic R5s120065 MCC160 Implementation sic@ + v_ImsServer := f_IP_IMS_Stop(v_ImsServer); // @sic R5s120065 MCC160 Implementation; R5s150118 sic@ vc_IP_PTC_IMS_Info.Server[v_IndexVal] := f_IP_IMS_Start(v_ImsServer, v_PDN_AddressInfo.PCSCF_IPAddressIPv4, v_PDN_AddressInfo.PCSCF_IPAddressIPv6, - p_DrbInfo); + p_PdnIndex); } //**************************************************************************** @@ -452,23 +483,46 @@ module IP_PTC_Main { } //---------------------------------------------------------------------------- + /* + * @desc DNS server + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + altstep a_DNS_Handler() runs on IP_PTC + { /* NOTE: handling of DNS is supported for UDP only */ + /* @sic R5-145754: support of DNS sic@ */ + var IP_SOCKET_IND v_IP_SOCKET_IND; + var IP_Socket_Type v_RemoteSocket; + var IP_Socket_Type v_LocalSocket; + var Datagram_UL_Type v_Datagram; + var octetstring v_RespData; + var IP_AddrServerArray_Type v_IP_AddrServerArray; + var AddrServerInfo_Type v_AddrServerInfo; + var IP_DrbInfo_Type v_DrbInfo; + var PDN_Index_Type v_PdnIndex; + [] IP_SOCK.receive(cr_UDP_DATA_IND(cr_IP_Socket(?, tsc_PortNumber_DNS_Server))) + -> value v_IP_SOCKET_IND + { + v_RemoteSocket := v_IP_SOCKET_IND.DATA.ConnectionId.Remote; + v_LocalSocket := v_IP_SOCKET_IND.DATA.ConnectionId.Local; + v_Datagram := v_IP_SOCKET_IND.DATA.Ind.UDP.RecvFrom; + + if (ischosen(v_LocalSocket.IpAddr.V6)) { + v_IP_AddrServerArray := vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv6; + } else { + v_IP_AddrServerArray := vc_IP_PTC_PDN_AddrServer.DNS_UdpIPv4; + } + v_AddrServerInfo := valueof(fl_IP_AddrServer_Get(v_IP_AddrServerArray, v_LocalSocket.IpAddr)); + v_DrbInfo := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(v_AddrServerInfo.PdnIndex); /* @sic R5s150648 Change 4 sic@ */ + v_PdnIndex := v_AddrServerInfo.PdnIndex; -/* altstep a_DHCPv6_Handler() runs on IP_PTC */ -/* { */ - - - -/* } */ - -/* altstep a_DNS_Handler() runs on IP_PTC */ -/* { */ - - - -/* } */ - - + v_RespData := f_DNS_GetEncodedResponse(v_Datagram.Buffer, v_PdnIndex); + if (lengthof(v_RespData) > 0) { + fl_IP_AddrServer_SendTriggerToGeran(v_DrbInfo); // @sic R5-133612: trigger to GERAN sic@ + IP_SOCK.send(cs_UDP_DATA_REQ(v_LocalSocket, v_RemoteSocket, v_RespData)); + } + } + } //---------------------------------------------------------------------------- /* @@ -578,25 +632,25 @@ module IP_PTC_Main { var charstring v_LinkLocalAddr; var charstring v_MulticastAddr := "FF02::1"; var octetstring v_Data; - var integer v_Index := fl_IP_ServerIndex(p_PdnIndex); - var AddrServerInfo_Type v_AddrServerInfo := vc_IP_PTC_PDN_AddrServer.ICMPv6[v_Index]; + var integer v_Index := f_PDN_PdnIndex2Integer(p_PdnIndex); + var IP_DrbInfo_Type v_DrbInfo; + var AddrServerInfo_Type v_AddrServerInfo; if (fl_IP_AddrServer_IsRunning(vc_IP_PTC_PDN_AddrServer.ICMPv6[v_Index])) { - v_ServerIpAddr := vc_IP_PTC_PDN_AddrServer.ICMPv6[v_Index].ServerAddr; + v_AddrServerInfo := vc_IP_PTC_PDN_AddrServer.ICMPv6[v_Index]; + v_ServerIpAddr := v_AddrServerInfo.ServerAddr; + v_DrbInfo := f_IP_PTC_PDN_GetDrbInfoForDefaultDrb(v_AddrServerInfo.PdnIndex); v_LinkLocalAddr := fl_IPv6AddrGetLinkLocalAddr(v_ServerIpAddr); v_Data := f_ICMPv6_GetRouterAdvertisement(v_ServerIpAddr); v_RemoteSocket := cs_IP_Socket(cs_IPv6Addr(v_MulticastAddr), omit); v_LocalSocket := cs_IP_Socket(cs_IPv6Addr(v_LinkLocalAddr), omit); v_Data := fl_ICMPv6_UpdateCRCChecksum(v_LinkLocalAddr, v_MulticastAddr, v_Data); - fl_IP_AddrServer_SendTriggerToGeran(v_AddrServerInfo.DrbInfo); // @sic R5-133612: trigger to GERAN sic@ + fl_IP_AddrServer_SendTriggerToGeran(v_DrbInfo); // @sic R5-133612: trigger to GERAN sic@ IP_SOCK.send(cs_ICMPv6_DATA_REQ(v_LocalSocket, v_RemoteSocket, v_Data)); } } - //---------------------------------------------------------------------------- - // Common: - /* * @desc reset all information for the given PDN * @param p_Index @@ -606,6 +660,7 @@ module IP_PTC_Main { { fl_IP_AddrServers_Stop(p_Index); vc_IP_PTC_IMS_Info.Server[p_Index] := f_IP_IMS_Stop(vc_IP_PTC_IMS_Info.Server[p_Index]); + vc_IP_PTC_PDN_MappingTable[p_Index].DefaultDrb := omit; /* @sic R5s150648 Change 6 sic@ */ } /* @@ -618,6 +673,8 @@ module IP_PTC_Main { var IP_ConfigReq_Type v_IP_ConfigReq; var PDN_Index_Type v_PdnIndex; var IP_DrbInfo_Type v_DrbInfo; + var IP_DrbInfo_Type v_CurrentDrbInfo; + var EUTRA_CellId_Type v_EutraCellId; var integer i; [] p_CtrlPort.receive(cr_IP_CtrlAnyReq) -> value v_IP_ConfigReq { @@ -625,30 +682,52 @@ module IP_PTC_Main { v_PdnIndex := v_IP_ConfigReq.StartIP.PdnId; v_DrbInfo := v_IP_ConfigReq.StartIP.DrbInfo; + f_IP_PTC_PDN_SetDrbInfoForDefaultDrb(v_PdnIndex, v_DrbInfo); fl_IP_AddrServers_Start(v_PdnIndex, v_DrbInfo); - fl_IP_ImsServer_Start(v_PdnIndex, v_DrbInfo); - + fl_IP_ImsServer_Start(v_PdnIndex); + } else if (ischosen(v_IP_ConfigReq.StopIP)) { if (ischosen(v_IP_ConfigReq.StopIP.PdnId)) { /* @sic R5s131000: stop particular PDN sic@ */ - i := fl_IP_ServerIndex(v_IP_ConfigReq.StopIP.PdnId); + i := f_PDN_PdnIndex2Integer(v_IP_ConfigReq.StopIP.PdnId); fl_StopPDN(i); } else { for (i:=0; i DrbInfo gets changed to p_DrbInfoNew; + * returns true when at least one entry has been changed + * @param p_RoutingTable (by reference) + * @param p_DrbInfoOld + * @param p_DrbInfoNew + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_RoutingTable_ChangeDrbInfo(inout IP_RoutingTable_Type p_RoutingTable, + IP_DrbInfo_Type p_DrbInfoOld, + IP_DrbInfo_Type p_DrbInfoNew) return boolean + { var boolean v_TableIsChanged := false; var integer i; - - for (i := 0; i < v_TableSize; i := i+1) { - if (ischosen(p_IP_DrbInfo.Eutra)) { - if (ischosen(p_RoutingTable[i].DRB.Eutra) and (p_RoutingTable[i].DRB.Eutra.CellId == p_IP_DrbInfo.Eutra.CellId)) { // @sic R5-125676 sic@ @sic R5s130038 sic@ - continue; - } - p_RoutingTable[i].DRB.Eutra.CellId := p_IP_DrbInfo.Eutra.CellId; - if (isvalue(p_IP_DrbInfo.Eutra.DrbId)) { - p_RoutingTable[i].DRB.Eutra.DrbId := p_IP_DrbInfo.Eutra.DrbId; - } - v_TableIsChanged := true; - } - else if (ischosen(p_IP_DrbInfo.Utran)) { - if (ischosen(p_RoutingTable[i].DRB.Utran) and (p_RoutingTable[i].DRB.Utran.CellId == p_IP_DrbInfo.Utran.CellId)) { // @sic R5s130038 sic@ - continue; - } - p_RoutingTable[i].DRB.Utran.CellId := p_IP_DrbInfo.Utran.CellId; - p_RoutingTable[i].DRB.Utran.DrbId := p_IP_DrbInfo.Utran.DrbId; + + for (i := 0; i < lengthof(p_RoutingTable); i := i+1) { + if (f_IP_DrbInfo_DrbIdMatch(p_RoutingTable[i].DRB, p_DrbInfoOld)) { + p_RoutingTable[i].DRB := p_DrbInfoNew; v_TableIsChanged := true; } - else { - FatalError(__FILE__, __LINE__, ""); + } + return v_TableIsChanged; + } + + /* + * @desc for given DrbInfo: if the DrbInfo refers to EUTRA the cellId gets modified; + * returns true when p_DrbInfo has been changed + * @param p_DrbInfo (by reference) + * @param p_EutraCellId + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_IP_DrbInfo_ChangeEutraCell(inout IP_DrbInfo_Type p_DrbInfo, + EUTRA_CellId_Type p_EutraCellId) return boolean + { + var boolean v_IsChanged := false; + + if (ischosen(p_DrbInfo.Eutra)) { + if (p_DrbInfo.Eutra.CellId != p_EutraCellId) { + p_DrbInfo.Eutra.CellId := p_EutraCellId; + v_IsChanged := true; } } + return v_IsChanged; + } + + /* + * @desc for all entries: modify cellId if DrbInfo refers to EUTRA; + * returns true when at least one entry has been changed + * @param p_RoutingTable (by reference) + * @param p_EutraCellId + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_RoutingTable_ChangeEutraCell(inout IP_RoutingTable_Type p_RoutingTable, + EUTRA_CellId_Type p_EutraCellId) return boolean + { + var boolean v_TableIsChanged := false; + var boolean v_EntryIsChanged; + var integer i; + + for (i := 0; i < lengthof(p_RoutingTable); i := i+1) { + v_EntryIsChanged := f_IP_DrbInfo_ChangeEutraCell(p_RoutingTable[i].DRB, p_EutraCellId); // @sic R5s150648 MCC160Comments sic@ + v_TableIsChanged := v_TableIsChanged or v_EntryIsChanged; + } return v_TableIsChanged; } @@ -266,12 +331,15 @@ module IP_PTC_Routing { * @desc add entry to routing table and configure SS * @param p_IpInfo * @param p_DrbInfo + * @param p_DataMode (default value: omit) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_IP_PTC_RoutingTable_AddEntry(template (value) IP_Connection_Type p_IpInfo, - IP_DrbInfo_Type p_DrbInfo) runs on IP_PTC - { - vc_IP_PTC_DRB_RoutingTable := fl_RoutingTable_AddEntry(vc_IP_PTC_DRB_RoutingTable, p_IpInfo, p_DrbInfo); + IP_DrbInfo_Type p_DrbInfo, + template (omit) IP_DataMode_Type p_DataMode := omit) runs on IP_PTC + { /* @sic R5-150356, R5w150008: p_Discard sic@ */ + /* @sic R5-153746: "Null_Type p_Discard" changed to "IP_DataMode_Type p_DataMode" sic@ */ + vc_IP_PTC_DRB_RoutingTable := fl_RoutingTable_AddEntry(vc_IP_PTC_DRB_RoutingTable, p_IpInfo, p_DrbInfo, p_DataMode); f_IP_PTC_SendRoutingTable(vc_IP_PTC_DRB_RoutingTable); } diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Templates.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Templates.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Templates.ttcn index 621311d..debab26 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/IP_PTC_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/IP_PTC_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-28 15:21:40 +0200 (Thu, 28 Aug 2014) $ -// $Rev: 11943 $ +// @version: IWD_15wk38 +// $Date: 2014-11-23 16:30:47 +0100 (Sun, 23 Nov 2014) $ +// $Rev: 12502 $ /******************************************************************************/ module IP_PTC_Templates { @@ -321,11 +321,12 @@ module IP_PTC_Templates { } }; - template (present) IP_SOCKET_IND cr_UDP_DATA_IND(template IP_Socket_Type p_LocalSocket) := + template (present) IP_SOCKET_IND cr_UDP_DATA_IND(template IP_Socket_Type p_LocalSocket, + template IP_Socket_Type p_RemoteSocket := cr_IP_Socket_Any) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5-113734 change 8 sic@ */ DATA := { - ConnectionId := cr_UDP_ConnectionId(p_LocalSocket, cr_IP_Socket_Any), + ConnectionId := cr_UDP_ConnectionId(p_LocalSocket, p_RemoteSocket), Ind := { UDP := { RecvFrom := ? @@ -399,10 +400,11 @@ module IP_PTC_Templates { } }; - template (present) IP_SOCKET_IND cr_TCP_ACCEPT_IND(template IP_Socket_Type p_LocalSocket) := + template (present) IP_SOCKET_IND cr_TCP_ACCEPT_IND(template IP_Socket_Type p_LocalSocket, + template IP_Socket_Type p_RemoteSocket := cr_IP_Socket_Any) := { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ CTRL := { - ConnectionId := cr_TCP_ConnectionId(p_LocalSocket, cr_IP_Socket_Any), + ConnectionId := cr_TCP_ConnectionId(p_LocalSocket, p_RemoteSocket), Ind := { TCP := { Accept := true diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/TCP_Functions.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/TCP_Functions.ttcn similarity index 82% rename from LTE_A_IWD_14wk37/Common/IP_PTC/TCP_Functions.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/TCP_Functions.ttcn index d24c053..af0f2d5 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/TCP_Functions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/TCP_Functions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-04-08 16:13:27 +0200 (Wed, 08 Apr 2015) $ +// $Rev: 13348 $ /******************************************************************************/ module TCP_Functions { @@ -22,7 +22,7 @@ module TCP_Functions { * p_RemoteSocket shall be omit if (and only if) the server shall be stopped; * otherwise p_LocalSocket and p_RemoteSocket shall refer to the TCP connection to be released * @param p_IP_Connection - * @param p_WaitForCNF + * @param p_WaitForCNF (default value: true) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function fl_TCP_Close(template (value) IP_Connection_Type p_IP_Connection, @@ -30,7 +30,10 @@ module TCP_Functions { { IP_SOCK.send(cs_TCP_CLOSE_REQ(p_IP_Connection)); if (p_WaitForCNF) { - IP_SOCK.receive(cr_TCP_CLOSE_CNF(p_IP_Connection)); + alt { + [] IP_SOCK.receive(cr_TCP_CLOSE_CNF(p_IP_Connection)) { } + [] IP_SOCK.receive(cr_TCP_CLOSE_IND(p_IP_Connection)) { repeat; } // @sic R5s150270 change 1 sic@ + } } } @@ -66,15 +69,18 @@ module TCP_Functions { * @desc stop a TCP server * @param p_LocalIpAddr * @param p_LocalPort + * @param p_WaitForCNF (default value: true) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_TcpServer_Stop(template (value) IP_AddrInfo_Type p_LocalIpAddr, - template (value) PortNumber_Type p_LocalPort) runs on IP_PTC - { // NOTE: stoping the server causes all connections to this server to be closed too + template (value) PortNumber_Type p_LocalPort, + boolean p_WaitForCNF := true) runs on IP_PTC + { /* NOTE: stoping the server causes all connections to this server to be closed too */ + /* @sic R5s141154: new parameter p_WaitForCNF sic@ */ var template (value) IP_Connection_Type v_IP_Connection := cs_TCP_ConnectionId(cs_IP_Socket(p_LocalIpAddr, p_LocalPort), omit); // Close TCP socket - fl_TCP_Close(v_IP_Connection); + fl_TCP_Close(v_IP_Connection, p_WaitForCNF); // Modify routing table f_IP_PTC_RoutingTable_RemoveEntry(v_IP_Connection); @@ -107,27 +113,25 @@ module TCP_Functions { * @desc deal with the UE connecting to the TCP server; * p_IP_Connection returns the new connection * @param p_IP_Connection (by reference) - * @param p_ServerAddrIPv4orIPv6 - * @param p_PortNumber + * @param p_ServerSocket + * @param p_RemoteSocket (default value: cr_IP_Socket_Any) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - altstep a_TcpServer_AcceptConnection(inout template (omit) IP_Connection_Type p_IP_Connection, - template (present) IP_AddrInfo_Type p_ServerAddrIPv4orIPv6, - PortNumber_Type p_PortNumber) runs on IP_PTC + altstep a_TcpServer_AcceptConnection(out template (omit) IP_Connection_Type p_IP_Connection, + template (present) IP_Socket_Type p_ServerSocket, + template (present) IP_Socket_Type p_RemoteSocket := cr_IP_Socket_Any) runs on IP_PTC { /* @sic R5s140172: when there is already a connection which needs to be released, the confirmation may come even after date on the new connection sic@ */ + /* @sic R5-145732: parameters p_ServerSocket and p_RemoteSocket for support of 2nd security context sic@ */ var IP_SOCKET_IND v_IP_SOCKET_IND; - var template (present) IP_Socket_Type v_LocalSocket := cr_IP_Socket(p_ServerAddrIPv4orIPv6, p_PortNumber); - var boolean v_WaitForCNF := false; /* @sic R5s140172 sic@ */ - [] IP_SOCK.receive(cr_TCP_ACCEPT_IND(v_LocalSocket)) -> value v_IP_SOCKET_IND { - - f_TcpServer_CloseConnection(p_IP_Connection, v_WaitForCNF); // if there is already a connection => close the old connection - + [] IP_SOCK.receive(cr_TCP_ACCEPT_IND(p_ServerSocket, p_RemoteSocket)) -> value v_IP_SOCKET_IND { + /* @sic R5-145732: new connection is checked and handled by the caller sic@ */ p_IP_Connection := v_IP_SOCKET_IND.CTRL.ConnectionId; /* the routing table does not need to be changed as there is an entry for the TCP server already and there is no need to change it just because of the remote address */ } [] IP_SOCK.receive(cr_TCP_CLOSE_CNF(cr_TCP_ConnectionId(?, ?))) { /* @sic R5s140172: Accept any confirmation sic@ NOTE: to check that the CNF refers to the correct connection we would need to store it globally => this seems not to be necessary/useful in this case */ + p_IP_Connection := omit; } } @@ -210,16 +214,18 @@ module TCP_Functions { /* * @desc close TCP connection to the UE's server * @param p_IP_Connection + * @param p_WaitForCNF (default value: true) * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ - function f_TcpClient_CloseConnection(template (omit) IP_Connection_Type p_IP_Connection) runs on IP_PTC - { + function f_TcpClient_CloseConnection(template (omit) IP_Connection_Type p_IP_Connection, + boolean p_WaitForCNF := true) runs on IP_PTC + { /* @sic R5s141154: new parameter p_WaitForCNF sic@ */ var IP_Connection_Type v_IP_Connection; if (isvalue(p_IP_Connection)) { v_IP_Connection := valueof(p_IP_Connection); - fl_TCP_Close(v_IP_Connection); + fl_TCP_Close(v_IP_Connection, p_WaitForCNF); // Modify routing table f_IP_PTC_RoutingTable_RemoveEntry(v_IP_Connection); diff --git a/LTE_A_IWD_14wk37/Common/IP_PTC/UDP_Functions.ttcn b/LTE_A_IWD_15wk38/Common/IP_PTC/UDP_Functions.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/Common/IP_PTC/UDP_Functions.ttcn rename to LTE_A_IWD_15wk38/Common/IP_PTC/UDP_Functions.ttcn index 6ff835e..c44cd52 100644 --- a/LTE_A_IWD_14wk37/Common/IP_PTC/UDP_Functions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IP_PTC/UDP_Functions.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ // $Rev: 9858 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IRAT/EUTRA_CapabilityFunctions.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/EUTRA_CapabilityFunctions.ttcn similarity index 61% rename from LTE_A_IWD_14wk37/Common/IRAT/EUTRA_CapabilityFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/EUTRA_CapabilityFunctions.ttcn index 7611a94..615cc7a 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/EUTRA_CapabilityFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/EUTRA_CapabilityFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module EUTRA_CapabilityFunctions { @@ -30,22 +30,23 @@ module EUTRA_CapabilityFunctions { template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_HOToEUTRA(template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, // @sic R5-1236630 sic@ SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5-1236630 sic@ - SR_ConfigIndex_Type p_SR_ConfigIndex) := // @sic R5-1236630 sic@ + SR_ConfigIndex_Type p_SR_ConfigIndex, // @sic R5-1236630 sic@ + template (value) DRB_ToAddModList p_DRB_ToAddModList := { cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1) }) := // @sic R5-152145 sic@ /* Values according to 36.508 cl. 4.6.3 Table 4.6.3-18 (using condition n=1 & m=0) */ /* @status APPROVED (LTE_A, LTE_IRAT) */ cs_RadioResourceConfigDedicated_SrbDrbConfig( { cs_508_SRB1_ToAddMod_DEFAULT, cs_508_SRB2_ToAddMod_DEFAULT }, - { cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1) }, + p_DRB_ToAddModList, // @sic R5-152145 sic@ cs_508_MAC_MainConfig_Explicit_RBC_DrxL, cs_508_PhysicalConfigDedicated_Default_HO(p_PUCCH_ConfigDedicated, p_CQI_ReportingPeriodic, - p_SR_PUCCH_ResourceIndex, cs_PhysicalConfigDedicated_AntennaInfo_Def, + p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex)); // @sic R5-123630 sic@ template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_FullConfig (template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, - SR_ConfigIndex_Type p_SR_ConfigIndex ):= + SR_ConfigIndex_Type p_SR_ConfigIndex):= /* Values according to 36.523-1 Table 13.4.1.5.3.3-7 */ /* @status APPROVED (LTE) */ /* @sic R5s140225 sic@ */ @@ -54,8 +55,8 @@ module EUTRA_CapabilityFunctions { cs_508_MAC_MainConfig_Explicit_RBC_DrxL, cs_508_PhysicalConfigDedicated_Default_HO(p_PUCCH_ConfigDedicated, p_CQI_ReportingPeriodic, - p_SR_PUCCH_ResourceIndex, cs_PhysicalConfigDedicated_AntennaInfo_Def, + p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex)); // @sic R5s140225 R5s140348 sic@ template (value) MobilityControlInfo cs_MobilityControlInfo_HO_InterRAT(PhysCellId p_PhysCellId, @@ -88,8 +89,11 @@ module EUTRA_CapabilityFunctions { template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, // @sic R5-123630 sic@ SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5-123630 sic@ SR_ConfigIndex_Type p_SR_ConfigIndex, // @sic R5-123630 sic@ - N_RB_CQI_Type p_N_RB_CQI) := // @sic R5-123712 sic@ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + N_RB_CQI_Type p_N_RB_CQI, // @sic R5-123712 sic@ + template (value) DRB_ToAddModList p_DRB_ToAddModList := { cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1) }, // @sic R5-152145 sic@ + B3_Type p_NasKsi := '000'B) := + + /* @status APPROVED (LTE_A, LTE_IRAT) */ cs_RRCConnectionReconfiguration_Common (p_RRC_TI, omit, cs_MobilityControlInfo_HO_InterRAT(p_CellId, @@ -104,12 +108,13 @@ module EUTRA_CapabilityFunctions { cs_AntennaInfoCommon_1Port, cs_508_PUCCH_ConfigCommon_Default(p_N_RB_CQI), tsc_P_b_1Tx)), // @sic R5s120490 sic@ - cs_508_RadioResourceConfigDedicated_HOToEUTRA (p_CQI_ReportingPeriodic, p_PUCCH_ConfigDedicated, p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex), - cs_SecurityConfigHO_InterRAT); + cs_508_RadioResourceConfigDedicated_HOToEUTRA (p_CQI_ReportingPeriodic, p_PUCCH_ConfigDedicated, p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex, p_DRB_ToAddModList), + cs_SecurityConfigHO_InterRAT (-, -, -, -, p_NasKsi)); // @sic R5150704 sic@ - template (present) UE_EUTRA_Capability cr_UE_EUTRA_Capability(AccessStratumRelease p_AccessStratumRelease) := + template (present) UE_EUTRA_Capability cr_UE_EUTRA_Capability := { /* @status APPROVED (UTRAN) */ - accessStratumRelease := p_AccessStratumRelease, + + accessStratumRelease := ?, //@sic R5s140912 sic@ ue_Category := ?, pdcp_Parameters := { supportedROHC_Profiles := ?, @@ -145,14 +150,23 @@ module EUTRA_CapabilityFunctions { /* * @desc To encode the Handover to EUTRA command. * @param p_EUTRASysInfo + * @param p_N number of AM bearers (default = 1) + * @param p_NasKsi (default value: '000'B) * @return octetstring * @status APPROVED (LTE_A,LTE_IRAT) */ - function f_Encode_RRCConnectionReconfiguration_HOToEUTRA (CoOrd_EUTRASysInfo_Type p_EUTRASysInfo) return octetstring + function f_Encode_RRCConnectionReconfiguration_HOToEUTRA(CoOrd_EUTRASysInfo_Type p_EUTRASysInfo, + integer p_N := 1, + B3_Type p_NasKsi := '000'B) return octetstring { var bitstring v_Bitstring; var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(f_ConvertIntegerToDL_Bandwidth(p_EUTRASysInfo.DL_Bandwidth), f_ConvertIntegerToUL_Bandwidth(p_EUTRASysInfo.HO.UL_Bandwidth)); + var template (value) DRB_ToAddModList v_DRB_ToAddModList := { cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1) } + + if (p_N == 2) { // @sic R5-152145 sic@ + v_DRB_ToAddModList := { cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1), cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB2) } + } if (px_ePrimaryFrequencyBand < 33) { // Bands below 33 are reserved for FDD v_Bitstring := encvalue(cs_RRCConnectionReconfiguration_HandoverToEUTRA (p_EUTRASysInfo.Arfcn, @@ -169,7 +183,9 @@ module EUTRA_CapabilityFunctions { cs_508_PUCCH_ConfigDedicated_Default_FDD, // @sic R5-123630 sic@ v_ChannelBandwidthDependency.sr_PUCCH_ResourceIndex, // @sic R5-123630 sic@ 30, // @sic R5-123630 sic@ - v_ChannelBandwidthDependency.N_RB_CQI)); // @sic R5-123712 sic@ + v_ChannelBandwidthDependency.N_RB_CQI, // @sic R5-123712 sic@ + v_DRB_ToAddModList, // @sic R5-152145 sic@ + p_NasKsi)); // @sic R5s150704 sic@ } else { v_Bitstring := encvalue(cs_RRCConnectionReconfiguration_HandoverToEUTRA (p_EUTRASysInfo.Arfcn, f_ConvertIntegerToDL_Bandwidth(p_EUTRASysInfo.DL_Bandwidth), @@ -185,7 +201,9 @@ module EUTRA_CapabilityFunctions { cds_508_PUCCH_ConfigDedicated_Default_TDD, // @sic R5-123630 sic@ v_ChannelBandwidthDependency.sr_PUCCH_ResourceIndex, // @sic R5-123630 sic@ 27, // @sic R5-123630 sic@ - v_ChannelBandwidthDependency.N_RB_CQI)); // @sic R5-123712 sic@ + v_ChannelBandwidthDependency.N_RB_CQI, // @sic R5-123712 sic@ + v_DRB_ToAddModList, // @sic R5-152145 sic@ + p_NasKsi)); // @sic R5s150704 sic@ } return bit2oct(f_OctetAlignedBitString(v_Bitstring)); // NOTE: bit2oct would add additional bits at the beginning (MSB) whereas here it has be added at the end (LSB) @@ -206,7 +224,7 @@ module EUTRA_CapabilityFunctions { * @desc function to convert boolean parameter ISHRPD to enumerated type CDMA2000_Type * @param p_IsHRPD * @return CDMA2000_Type - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_ConvertFromBoolToCDMA2000_Type (boolean p_IsHRPD) return CDMA2000_Type { @@ -233,49 +251,7 @@ module EUTRA_CapabilityFunctions { } return v_Ue_Eutra_Capability; } - /* - * @desc convert the PICS parameters pc_FeatrGrp_X from single booleans to a bitstring of size 32. - * Size 32 is chosen because the signaled element featureGroupIndicators in UE-EUTRA-Capability is of size 32. - * @return B32_Type - * @status APPROVED (LTE, UTRAN) - */ - function f_DeriveFeatrGrpCapFromPics () return B32_Type - { - var B32_Type v_FeatureGroupIndicators := f_ConvertBoolToBit(pc_FeatrGrp_1) & - f_ConvertBoolToBit(pc_FeatrGrp_2) & - f_ConvertBoolToBit(pc_FeatrGrp_3) & - f_ConvertBoolToBit(pc_FeatrGrp_4) & - f_ConvertBoolToBit(pc_FeatrGrp_5) & - f_ConvertBoolToBit(pc_FeatrGrp_6) & - f_ConvertBoolToBit(pc_FeatrGrp_7) & - f_ConvertBoolToBit(pc_FeatrGrp_8) & - f_ConvertBoolToBit(pc_FeatrGrp_9) & - f_ConvertBoolToBit(pc_FeatrGrp_10) & - f_ConvertBoolToBit(pc_FeatrGrp_11) & - f_ConvertBoolToBit(pc_FeatrGrp_12) & - f_ConvertBoolToBit(pc_FeatrGrp_13) & - f_ConvertBoolToBit(pc_FeatrGrp_14) & - f_ConvertBoolToBit(pc_FeatrGrp_15) & - f_ConvertBoolToBit(pc_FeatrGrp_16) & - f_ConvertBoolToBit(pc_FeatrGrp_17) & - f_ConvertBoolToBit(pc_FeatrGrp_18) & - f_ConvertBoolToBit(pc_FeatrGrp_19) & - f_ConvertBoolToBit(pc_FeatrGrp_20) & - f_ConvertBoolToBit(pc_FeatrGrp_21) & - f_ConvertBoolToBit(pc_FeatrGrp_22) & - f_ConvertBoolToBit(pc_FeatrGrp_23) & - f_ConvertBoolToBit(pc_FeatrGrp_24) & - f_ConvertBoolToBit(pc_FeatrGrp_25) & - f_ConvertBoolToBit(pc_FeatrGrp_26) & - f_ConvertBoolToBit(pc_FeatrGrp_27) & // @sic R5-103621 sic@ - f_ConvertBoolToBit(pc_FeatrGrp_28) & // @sic R5-113674 sic@ - f_ConvertBoolToBit(pc_FeatrGrp_29) & // @sic R5-113674 sic@ - f_ConvertBoolToBit(pc_FeatrGrp_30) & // @sic R5-120748 sic@ - f_ConvertBoolToBit(pc_FeatrGrp_31) & // @sic R5s130237 sic@ - '0'B; - return v_FeatureGroupIndicators; - } - + /* * @desc Function to check the supported EUTRA bands * relates PICS settings to reported bands @@ -283,48 +259,43 @@ module EUTRA_CapabilityFunctions { * @param p_ReceivedCapabilityMsg * @status APPROVED (LTE, UTRAN) */ - function f_CheckUE_SupportedEUTRA_Bands(UE_EUTRA_Capability p_ReceivedCapabilityMsg) + function f_CheckUE_SupportedEUTRA_Bands(UE_EUTRA_Capability p_ReceivedCapabilityMsg) { //@sic R5s140566 sic@ var UE_EUTRA_Capability v_ReceivedCapabilityMsg; var integer i; - var integer v_BandEUTRA; - var integer v_BitStringIndex; var bitstring v_SuppEutraBandsAccToPICS := f_DeriveSuppEutraBandsFromPics(); - var bitstring v_SuppEutraBandsReported := int2bit(0, lengthof(v_SuppEutraBandsAccToPICS)); + var integer v_NumEutraBandsReported; + var bitstring v_SuppEutraBandsAccToPICS_Chunk; v_ReceivedCapabilityMsg := p_ReceivedCapabilityMsg; + v_NumEutraBandsReported := lengthof(v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA); - // Check that number of supported EUTRA bands match the set PICS parameters (pc_eBanda_Supp) - if (lengthof(v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA) != f_GetNrOfSuppEutraBands(v_SuppEutraBandsAccToPICS)) { - f_SetVerdict(fail, __FILE__, __LINE__, "Mismatch between the number of bands acc. to PICS setting and the number of bands reported by the UE"); // @sic R5-133612 sic@ - } - + // It is no longer checked that number of supported EUTRA bands match the set PICS parameters (pc_eBanda_Supp) + // There may be more bands reported than there are PICS defined for bands + // Check that any value B such that pc_eBandB_Supp is TRUE and different from all eutra-Band[k] where k = 1 to a - 1 // Go through the received supportedBandListEUTRA and match against the supported bands according to the PICS - for (i := 0; i < lengthof(v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA); i := i + 1) { - - v_BandEUTRA := v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[i].bandEUTRA; - v_BitStringIndex := v_BandEUTRA - 1; - - if (not f_Bitstring_BitIsSet(v_SuppEutraBandsAccToPICS, v_BitStringIndex)) { - f_SetVerdict(fail, __FILE__, __LINE__, "PICS does not match reported capability for band nr. " & int2str(v_BandEUTRA)); // @sic R5-133612 sic@ - - } else { - if (f_Bitstring_BitIsSet(v_SuppEutraBandsReported, v_BitStringIndex)) { - f_SetVerdict(fail, __FILE__, __LINE__, "support of band nr. " & int2str(v_BandEUTRA) & " is reported more than once"); // @sic R5-133612 sic@ - } - v_SuppEutraBandsReported[v_BitStringIndex] := '1'B; - } - // NOTE: number of bands reported by the UE and number of bands acc. to PICS setting are equal AND none of the bands is reported twice by the UE - // => bands reported by the UE are the same as acc. to PICS setting (i.e. we don't need to check explicitly the PICS against the bands being reported) - } - + // Check only the bands for which there are PICS; do not check other bands which may or may not be reported. + // Done for all sets of continuous PICS. + v_SuppEutraBandsAccToPICS_Chunk := substr(v_SuppEutraBandsAccToPICS, 0, 14); // bands 1 - 14 + f_CheckUE_SupportedEUTRA_Bands_Chunk (v_ReceivedCapabilityMsg, v_SuppEutraBandsAccToPICS_Chunk, 0, 14); // @sic R5s150278 change 2 sic@ + + // after appearance of band 32 the previous gap disappears + v_SuppEutraBandsAccToPICS_Chunk := substr(v_SuppEutraBandsAccToPICS, 16, 27); // bands 17 - 43 + f_CheckUE_SupportedEUTRA_Bands_Chunk (v_ReceivedCapabilityMsg, v_SuppEutraBandsAccToPICS_Chunk, 16, 27); // @sic R5-151966 sic@ +/* + v_SuppEutraBandsAccToPICS_Chunk := substr(v_SuppEutraBandsAccToPICS, 16, 15); // bands 17 - 31 + f_CheckUE_SupportedEUTRA_Bands_Chunk (v_ReceivedCapabilityMsg, v_SuppEutraBandsAccToPICS_Chunk, 16, 15); // @sic R5s150278 change 2 sic@ + + v_SuppEutraBandsAccToPICS_Chunk := substr(v_SuppEutraBandsAccToPICS, 32, 11); // bands 33 - 43 + f_CheckUE_SupportedEUTRA_Bands_Chunk (v_ReceivedCapabilityMsg, v_SuppEutraBandsAccToPICS_Chunk, 32, 11); // @sic R5s150278 change 2 sic@ +*/ // interFreqEUTRA-BandList SEQUENCE (SIZE (1..maxBands)) OF SEQUENCE { //* same number of entries like in supportedEUTRA-BandList //* Match number of entries in interFreqEUTRA-BandList with number of entries in supportedEUTRA-BandList for (i := 0; i < lengthof(v_ReceivedCapabilityMsg.measParameters.bandListEUTRA); i := i + 1) { - if (lengthof(v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA) != lengthof(v_ReceivedCapabilityMsg.measParameters.bandListEUTRA[i].interFreqBandList)) { + if ((v_NumEutraBandsReported) != lengthof(v_ReceivedCapabilityMsg.measParameters.bandListEUTRA[i].interFreqBandList)) { f_SetVerdict(fail, __FILE__, __LINE__, "Number of interFreqEUTRA-BandList does not match nr. of supportedEUTRA-BandList"); // @sic R5-133612 sic@ } } @@ -407,7 +378,7 @@ module EUTRA_CapabilityFunctions { // ul-AntennaSelectionSupported Checked it is present // ue-SpecificRefSigsSupported Checked it is present // featureGroupIndicators To be checked against ICS statements pcFeatGrp_1 to pcFeatGrp_27, other bits shall be set to 0. - if (not(match(v_UE_EUTRA_Capability, cr_UE_EUTRA_Capability(v_Release)))) { + if (not(match(v_UE_EUTRA_Capability, cr_UE_EUTRA_Capability))) { //@sic R5s140912 sic@ f_SetVerdict(fail, __FILE__, __LINE__, "featureGroupIndicators not matching the received statement. "); } @@ -447,4 +418,230 @@ module EUTRA_CapabilityFunctions { } return v_ReleaseInteger; } + + //---------------------------------------------------------------------------- + /* + * @desc To covert and return the E-UTRA FDD_TDD mode from PIXIT to be used in UTRAN modules + * @return EUTRA_FDD_TDD_Mode_Type + * @status APPROVED (LTE, LTE_IRAT) + */ + function f_EUTRA_ConvertEutraFDDTDD_FromPIXIT() return EUTRA_FDD_TDD_Mode_Type + { + if (px_ePrimaryFrequencyBand < 33) { // Bands below 33 are reserved for FDD + return FDD; + } else { // Bands above 33 are reserved for TDD + return TDD; + } + } + + /* + * @desc convert the PICS parameters pc_FeatrGrp_X from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE, UTRAN) + */ + function f_DeriveFeatrGrpCapFromPics () return B32_Type + { // @sic R5s150398 sic@ + var B32_Type v_FeatureGroupIndicators; + var B32_Type v_FeatureGroupIndicators_FDD; + var B32_Type v_FeatureGroupIndicators_TDD; + + if (pc_eFDD and pc_eTDD) { + v_FeatureGroupIndicators_FDD := fl_DeriveFeatrGrpCapFromPics_r9_FDD (); + v_FeatureGroupIndicators_TDD := fl_DeriveFeatrGrpCapFromPics_r9_TDD (); + v_FeatureGroupIndicators:= v_FeatureGroupIndicators_FDD and4b v_FeatureGroupIndicators_TDD; + } + else{ + if (pc_eFDD) { // FDD only + v_FeatureGroupIndicators := fl_DeriveFeatrGrpCapFromPics_r9_FDD (); + } + else if (pc_eTDD) { // TDD only + v_FeatureGroupIndicators := fl_DeriveFeatrGrpCapFromPics_r9_TDD (); + } + } + return v_FeatureGroupIndicators; + } // f_DeriveFeatrGrpCapFromPics + + /* + * @desc convert the PICS parameters additional pc_FeatrGrp_X additional from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element additional featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE) + */ + function f_DeriveFeatrGrpCapFromPics_r9Add () return B32_Type + { // @sic R5s150398 sic@ + var B32_Type v_FeatureGroupIndicators; + var B32_Type v_FeatureGroupIndicators_FDD; + var B32_Type v_FeatureGroupIndicators_TDD; + + if (pc_eFDD and pc_eTDD) { + v_FeatureGroupIndicators_FDD := fl_DeriveFeatrGrpCapFromPics_r9Add_FDD (); + v_FeatureGroupIndicators_TDD := fl_DeriveFeatrGrpCapFromPics_r9Add_TDD (); + v_FeatureGroupIndicators:= v_FeatureGroupIndicators_FDD and4b v_FeatureGroupIndicators_TDD; + } + else { + if (pc_eFDD) { // FDD only + v_FeatureGroupIndicators := fl_DeriveFeatrGrpCapFromPics_r9Add_FDD (); + } + else if (pc_eTDD) { // TDD only + v_FeatureGroupIndicators := fl_DeriveFeatrGrpCapFromPics_r9Add_TDD (); + } + } + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r9Add () + + /* + * @desc convert the PICS parameters pc_FeatrGrp_X from single booleans to a bitstring of size 32. + * Size 32 is chosen because the signaled element FDD featureGroupIndicators in UE-EUTRA-Capability is of size 32. + * @return B32_Type + * @status APPROVED (LTE) + */ + function f_DeriveFeatrGrpCapFromPics_r10 () return B32_Type + { // @sic R5s150398 sic@ + var B32_Type v_FeatureGroupIndicators; + var B32_Type v_FeatureGroupIndicators_FDD; + var B32_Type v_FeatureGroupIndicators_TDD; + + if (pc_eFDD and pc_eTDD) { + v_FeatureGroupIndicators_FDD := fl_DeriveFeatrGrpCapFromPics_r10_FDD (); + v_FeatureGroupIndicators_TDD := fl_DeriveFeatrGrpCapFromPics_r10_TDD (); + v_FeatureGroupIndicators:= v_FeatureGroupIndicators_FDD and4b v_FeatureGroupIndicators_TDD; + } + else { + if (pc_eFDD) { // FDD only + v_FeatureGroupIndicators := fl_DeriveFeatrGrpCapFromPics_r10_FDD (); + } + else if (pc_eTDD) { // TDD only + v_FeatureGroupIndicators := fl_DeriveFeatrGrpCapFromPics_r10_TDD (); + } + } + return v_FeatureGroupIndicators; + } // fl_DeriveFeatrGrpCapFromPics_r10 + + /* + * @desc Function returns the number of supported interRat bands listed in all IEs in interRAT_Parameters. + * @sic R5s100302 Change 7 : Creation of new function for counting the number of supported interRat bands sic@ + * @param p_UECaps + * @return integer + * @status APPROVED (LTE, UTRAN) + */ + function f_Count_Supported_interRAT_Bands(UE_EUTRA_Capability p_UECaps) return integer + { + var integer v_NrOfSuppIratBands := 0; + + if (ispresent (p_UECaps.interRAT_Parameters.utraFDD)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraFDD.supportedBandListUTRA_FDD); + }; + if (ispresent (p_UECaps.interRAT_Parameters.utraTDD128)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraTDD128.supportedBandListUTRA_TDD128); + }; + if (ispresent (p_UECaps.interRAT_Parameters.utraTDD384)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraTDD384.supportedBandListUTRA_TDD384); + }; + if (ispresent (p_UECaps.interRAT_Parameters.utraTDD768)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.utraTDD768.supportedBandListUTRA_TDD768); + }; + if (ispresent (p_UECaps.interRAT_Parameters.geran)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.geran.supportedBandListGERAN); + } + if (ispresent (p_UECaps.interRAT_Parameters.cdma2000_HRPD)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.cdma2000_HRPD.supportedBandListHRPD); + } + if (ispresent (p_UECaps.interRAT_Parameters.cdma2000_1xRTT)){ + v_NrOfSuppIratBands := v_NrOfSuppIratBands + lengthof(p_UECaps.interRAT_Parameters.cdma2000_1xRTT.supportedBandList1XRTT); + } + + return v_NrOfSuppIratBands; + } // f_Count_Supported_interRAT_Bands + + /* + * @desc Check that any value B such that pc_eBandB_Supp is TRUE and different from all eutra-Band[k] where k = 1 to a - 1 + Go through the received supportedBandListEUTRA and match against the supported bands according to the PICS + Check only the bands for which there are PICS; do not check other bands which may or may not be reported + Done for one set of continuous PICS, specified by offset and length. + * @param p_ReceivedCapabilityMsg + * @param p_DerivedChunk + * @param p_OffsetPICS + * @param p_LengthPICS + * @status APPROVED (LTE, UTRAN) + */ + function f_CheckUE_SupportedEUTRA_Bands_Chunk(UE_EUTRA_Capability p_ReceivedCapabilityMsg, + bitstring p_DerivedChunk, + integer p_OffsetPICS, + integer p_LengthPICS) // @sic R5s150278 change 3 sic@ + { + var UE_EUTRA_Capability v_ReceivedCapabilityMsg := p_ReceivedCapabilityMsg; + var bitstring v_DerivedChunk := p_DerivedChunk; + var integer v_OffsetPICS := p_OffsetPICS; + var integer v_LengthPICS := p_LengthPICS; + var integer i,j; + var integer v_BandEUTRA; + var integer v_BitStringIndex; + var bitstring v_SuppEutraBandsReported := int2bit(0, 64); // 1... maxbands + var integer v_MaxBandsReported := lengthof(v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA); + + // It is no longer checked that number of supported EUTRA bands match the set PICS parameters (pc_eBanda_Supp) + // There may be more bands reported than there are PICS defined for bands + + // Check that any value B such that pc_eBandB_Supp is TRUE and different from all eutra-Band[k] where k = 1 to a - 1 + // Go through the received supportedBandListEUTRA and match against the supported bands according to the PICS + for (i := 0; i < v_LengthPICS; i := i + 1) { + + //It is assumed that UE reports the bands in any order => compare against the complete list + + if (v_DerivedChunk [i] == '1'B) { // PICS for band i in chunk + 1 is set + for (j := 0; j < v_MaxBandsReported; j := j + 1) { // check against all reported bands + v_BandEUTRA := v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[j].bandEUTRA; + v_BitStringIndex := v_BandEUTRA - 1; + if ( (i + v_OffsetPICS) == v_BitStringIndex) { + if (v_SuppEutraBandsReported[v_BitStringIndex] == '1'B) { + f_SetVerdict(fail, __FILE__, __LINE__, "support of band nr. " & int2str(v_BandEUTRA) & " is reported more than once"); // error: duplicate found + } else { + v_SuppEutraBandsReported[v_BitStringIndex] := '1'B; + }; + } + else {// do nothing + } + } + if (v_SuppEutraBandsReported[i + v_OffsetPICS] != '1'B) { // PICS set, but expected band was not in the list + f_SetVerdict(fail, __FILE__, __LINE__, "expected (per PICS) band nr. " & int2str(i + v_OffsetPICS + 1) & " is not reported"); // error: PICS set, but expected band not reported + } + } + else { // PICS is not set => non support + for (j := 0; j < v_MaxBandsReported; j := j + 1) { // check against all reported bands + v_BandEUTRA := v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[j].bandEUTRA; + v_BitStringIndex := v_BandEUTRA - 1; + if ( (i + v_OffsetPICS) == v_BitStringIndex) { + f_SetVerdict(fail, __FILE__, __LINE__, "PICS does not match reported capability for band nr. " & int2str(v_BandEUTRA)); // PICS mismatch + } + else { // do nothing + } + } + } + // NOTE: number of bands reported by the UE and number of bands acc. to PICS setting may not be equal. None of the bands is reported twice by the UE. + } + } // f_CheckUE_SupportedEUTRA_Bands_Chunk + + /* + * @desc Check that a given E-UTRA Band is supported by UE - Check done against the PICS + * @param p_Band + * @return boolean + * @status APPROVED (UTRAN) + */ + function f_EUTRA_CheckSupportedEUTRA_Band(integer p_Band) return boolean + { + var bitstring v_EutraBandIsSuportedPerPICS := f_DeriveSuppEutraBandsFromPics(); + var boolean v_EutraBandIsSuported := true; + + //Check the band support against the PICS + if (lengthof(v_EutraBandIsSuportedPerPICS) >= p_Band) { + if (v_EutraBandIsSuportedPerPICS[p_Band-1]=='0'B) { + v_EutraBandIsSuported := false; // Early UE may support bands 15 or 16, but we find 0 + } + } else { + v_EutraBandIsSuported := false; // to catch non-handled bands + } + return v_EutraBandIsSuported; + } + } diff --git a/LTE_A_IWD_14wk37/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn index c7c2ded..9110e09 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/GERAN_CapabilityFunctions_IRAT.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-05-24 23:07:55 +0200 (Sat, 24 May 2014) $ -// $Rev: 11321 $ +// @version: IWD_15wk38 +// $Date: 2014-10-12 22:04:43 +0200 (Sun, 12 Oct 2014) $ +// $Rev: 12326 $ /******************************************************************************/ module GERAN_CapabilityFunctions_IRAT { @@ -78,7 +78,7 @@ module GERAN_CapabilityFunctions_IRAT { * @desc Function used for converting an integer input value to a B3_Type value to use in SI2quater * @param p_EUTRA_DL_Bandwidth * @return B3_Type - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ function f_GERAN_ConvertIntegerToEUTRA_MeasurementBandwidth(integer p_EUTRA_DL_Bandwidth) return B3_Type { diff --git a/LTE_A_IWD_14wk37/Common/IRAT/GERAN_SRVCC.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/GERAN_SRVCC.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/IRAT/GERAN_SRVCC.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/GERAN_SRVCC.ttcn index b05ee28..90eb512 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/GERAN_SRVCC.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/GERAN_SRVCC.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-04 15:12:03 +0200 (Thu, 04 Sep 2014) $ -// $Rev: 12027 $ +// @version: IWD_15wk38 +// $Date: 2015-04-27 14:25:29 +0200 (Mon, 27 Apr 2015) $ +// $Rev: 13515 $ /******************************************************************************/ module GERAN_SRVCC { @@ -42,7 +42,7 @@ module GERAN_SRVCC { template (omit) CipherModeSetting p_CipherModeSetting := omit) := { /* @status APPROVED (LTE_A, LTE_IRAT) */ skipIndicator := tsc_SkipIndicator, //BITSTRING [4] - rrProtocolDiscriminator := tsc_PD_RR, //BITSTRING [4] + rRProtocolDiscriminator := tsc_PD_RR, //BITSTRING [4] msgType := oct2bit ('2B'O), //BITSTRING [8] cellDescr := cs_G_CellDescr(p_NCC,p_BCC, p_ARFCN ), //M OCTETSTRING [2] ch1Descr_at := cs_ChannelDescr_FH_NonHopping ( p_Cht_Schn, p_TN, p_TSC, p_TCH_ARFCN), //description of the 1st channel, after time M OCTETSTRING [3] @@ -80,7 +80,9 @@ module GERAN_SRVCC { dynaARFCN_Mapping := omit, //dynamic ARFCN mapping O TLV [6..34] vGCSCipherParams := omit, // VGCS Ciphering Parameters O TLV [3-15] dedServiceInfo := omit, // Dedicated Service Info O TV 2 - plmnIndex := omit // PLMN Index O TV 1 IEI = A @sic R5s130195 Baseline Moving sic@ + plmnIndex := omit, // PLMN Index O TV 1 IEI = A @sic R5s130195 Baseline Moving sic@ + xtdedTSC_BeforeTime := omit, // extended TSC Set before time O TV [2] @sic R5s150329 Baseline Moving sic@ + xtdedTSC_AfterTime := omit // extended TSC Set after time O TV [2] @sic R5s150329 Baseline Moving sic@ }; template (value) ChannelDescr cs_ChannelDescr_FH_NonHopping(B5_Type p_Cht_Schn, diff --git a/LTE_A_IWD_14wk37/Common/IRAT/NAS_24008Templates_AccessCap.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/NAS_24008Templates_AccessCap.ttcn similarity index 50% rename from LTE_A_IWD_14wk37/Common/IRAT/NAS_24008Templates_AccessCap.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/NAS_24008Templates_AccessCap.ttcn index b62f9e7..4f5a204 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/NAS_24008Templates_AccessCap.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/NAS_24008Templates_AccessCap.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ +// @version: IWD_15wk38 +// $Date: 2015-04-27 04:04:14 +0200 (Mon, 27 Apr 2015) $ +// $Rev: 13508 $ /******************************************************************************/ module NAS_24008Templates_AccessCap { @@ -15,7 +15,7 @@ module NAS_24008Templates_AccessCap { //---------------------------------------------------------------------------- template (present) MultiSlotCap cr_MultiSlotCapAny := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ mask1 := ?, hSCSDClass := *, // not present if mask1 = 0 mask2 := ?, @@ -39,7 +39,7 @@ module NAS_24008Templates_AccessCap { //---------------------------------------------------------------------------- template (present) SingleAccessCap cr_SingleAccessCapAny := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ accLength := ?, rfPwrCap := ?, mask1 := ?, @@ -71,9 +71,7 @@ module NAS_24008Templates_AccessCap { modulationBasedMultiSlot := ?, mask5 := ?, highMultislotCap := *, // not present if mask5 = 0 - mask6 := ?, - gERANIuModeCapLength := *, // not present if mask6 = 0 - fLOIuCap := *, // not present if mask6 = 0 + spare := ?, // @sic R5s150329 Baseline Moving sic@ gmskMultislotPwrProfile := ?, psk8MultislotPwrProfile := ?, multiTBFCap := ?, @@ -112,13 +110,102 @@ module NAS_24008Templates_AccessCap { fastDLFreqSwitchingCap := *, // @sic R5s120178 Baseline Moving sic@ tighterCap := *, // @sic R5s120178 Baseline Moving sic@, fanrCap := *, // @sic R5s130195 Baseline Moving sic@ - ipaCap := * // @sic R5s130195 Baseline Moving sic@ + ipaCap := *, // @sic R5s130195 Baseline Moving sic@ + geranNwkSharing := *, // @sic R5s150329 Baseline Moving sic@ + eutraWidebandRSRQMeas := *, // @sic R5s150329 Baseline Moving sic@ + utraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + eutraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + mask11 := *, // @sic R5s150329 Baseline Moving sic@ + dlmcCap := *, // @sic R5s150329 Baseline Moving sic@ + xtdTSCSetCap := * // @sic R5s150329 Baseline Moving sic@ + }; + + template SingleAccessCap cr_SingleAccessCap_r99 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ + accLength := ?, + rfPwrCap := ?, + mask1 := ?, + a5_1 := *, // not present if mask1 = 0 + a5_2 := *, // not present if mask1 = 0 + a5_3 := *, // not present if mask1 = 0 + a5_4 := *, // not present if mask1 = 0 + a5_5 := *, // not present if mask1 = 0 + a5_6 := *, // not present if mask1 = 0 + a5_7 := *, // not present if mask1 = 0 + esInd := ?, + pS := ?, + vGCS := ?, + vBS := ?, + mask2 := ?, + multiSlotCap := cr_MultiSlotCapAny ifpresent, // not present if mask2 = 0 + mask3 := ?, + psk8PwrCap := *, // not present if mask3 = 0 + compactIFMeas := ?, + revLev := ?, + fddRATCap := ?, + tdd384RATCap := ?, + cdma2000RATCap := ?, + tdd128RATCap := *, + gERANFeatPkge1 := *, + mask4 := *, + extDTMGPRSMultiSlotClass := *, // not present if mask4 = 0 + extDTMEGPRSMultiSlotClass := *, // not present if mask4 = 0 + modulationBasedMultiSlot := *, + mask5 := *, + highMultislotCap := *, // not present if mask5 = 0 + spare := *, // @sic R5s150329 Baseline Moving sic@ + gmskMultislotPwrProfile := *, + psk8MultislotPwrProfile := *, + multiTBFCap := *, + dlAdvRxPerformance := *, + extRLCMACCtrlCap := *, + dTMEnhCap := *, + mask7 := *, + dTMGPRSHighClass := *, // not present if mask7 = 0 + mask8 := *, // not present if mask7 = 0 + dTMEGPRSHighClass := *, // not present if mask7 or mask8 = 0 + pSHOCap := *, + dTMHOCap := *, + mask9 := *, + multislotCapDlDualCarrier := *, // not present if mask9 = 0 + dlDualCarrierDTMCap := *, // not present if mask9 = 0 + flexTimeslotAssign := *, + gANPSHOCap := *, + rLCNonPersistentMode := *, + reducedLatencyCap := *, + ulEGPRS2 := *, + dlEGPRS2 := *, + eutraFDD := *, + eutraTDD := *, + geran2EutraSupport := *, // @sic R5s100135 sic@ + priorityBasedReselection := *, + mask10 := *, // @sic R5s110176 Baseline Moving, R5s110242 sic@ + altEFTAMultislotClass := *, // not present if mask10 = 0 @sic R5s110176 Baseline Moving sic@ + eftaMultislotCapRedforDDC := *, // not present if mask10 = 0 @sic R5s110176 Baseline Moving sic@ + upperLayerPDUStartCapforRLCUMInd := *, // @sic R5s110176 Baseline Moving sic@ + emstCap := *, // @sic R5s110176 Baseline Moving sic@ + mttiCap := *, // @sic R5s110176 Baseline Moving sic@ + utraCSGCellsReporting := *, // @sic R5s110176 Baseline Moving sic@ + eutraCSGCellsReporting := *, // @sic R5s110176 Baseline Moving sic@ + dtrCap := *, // @sic R5s120178 Baseline Moving sic@ + emsrCap := *, // @sic R5s120178 Baseline Moving sic@ + fastDLFreqSwitchingCap := *, // @sic R5s120178 Baseline Moving sic@ + tighterCap := *, // @sic R5s120178 Baseline Moving sic@, + fanrCap := *, // @sic R5s130195 Baseline Moving sic@ + ipaCap := *, // @sic R5s130195 Baseline Moving sic@ + geranNwkSharing := *, // @sic R5s150329 Baseline Moving sic@ + eutraWidebandRSRQMeas := *, // @sic R5s150329 Baseline Moving sic@ + utraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + eutraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + mask11 := *, // @sic R5s150329 Baseline Moving sic@ + dlmcCap := *, // @sic R5s150329 Baseline Moving sic@ + xtdTSCSetCap := * // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- template (present) MS_RadioAccessCapList cr_MSRadioAccessCapList(template (present) MS_RadioAccessCap p_MS_RadioAccessCap) := - { /* @status APPROVED (LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ raCapability := p_MS_RadioAccessCap, repeatCap := ? // this structure repeats itself, so need to indicate whether to go round again @sic R5s100135 sic@ }; diff --git a/LTE_A_IWD_14wk37/Common/IRAT/NAS_24008Templates_IRAT.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/NAS_24008Templates_IRAT.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/Common/IRAT/NAS_24008Templates_IRAT.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/NAS_24008Templates_IRAT.ttcn index e575427..ed21378 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/NAS_24008Templates_IRAT.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/NAS_24008Templates_IRAT.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module NAS_24008Templates_IRAT { @@ -17,44 +17,48 @@ module NAS_24008Templates_IRAT { import from UTRAN_Parameters all; import from Parameters all; import from NAS_24008Templates_AccessCap all; + import from CommonIP all; // ============================================================================= // Constants // ----------------------------------------------------------------------------- + const ProtocolDiscriminator tsc_PD_CC := '0011'B; /* 24.007 cl. 11.2.3.1.1: call control; call related SS messages + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const ProtocolDiscriminator tsc_GMM_PD := '1000'B; /* GMM protocol discriminator 3GPP 24.008 clause 10.4 - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const ProtocolDiscriminator tsc_SMPD := '1010'B; /* SM protocol discriminator - @status APPROVED (LTE_IRAT, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ const B4_Type tsc_PDP_TypeOrg := '0001'B; /* Default value IETF allocated address - @status APPROVED (LTE_IRAT, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ const PDP_TypeNo tsc_PDP_TypeNoIPv4 := '21'O; /* Indicates IP v4. - @status APPROVED (LTE_IRAT, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ const PDP_TypeNo tsc_PDP_TypeNoIPv6 := '57'O; /* Indicates IP v6. - @status APPROVED (LTE_IRAT, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ const PDP_TypeNo tsc_PDP_TypeNoIPv4v6 := '8D'O; /* Indicates IP v4 and v6. - @status APPROVED (LTE_IRAT, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ const B3_Type tsc_I_AttachTypeCombined := '011'B; /* For UTRAN/GERAN only - @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B3_Type tsc_I_AttachTypeGPRSAtt := '001'B; /* For UTRAN/GERAN only - @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B3_Type tsc_I_UpdateTypeCombined := '001'B; /* For UTRAN/GERAN only - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B3_Type tsc_I_UpdateTypeCombinedWithIMSI := '010'B; /* For UTRAN/GERAN only - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B3_Type tsc_I_UpdateTypeRAOnly := '000'B; /* For UTRAN/GERAN only - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - const B3_Type tsc_I_UpdateTypePeriodic := '011'B; /* For UTRAN/GERAN only - @status APPROVED (LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B3_Type tsc_I_UpdateTypePeriodic := '011'B; /* For UTRAN/GERAN only + @status APPROVED (LTE_IRAT, UTRAN) */ const RejCau tsc_ServiceOptionNotSupported := '20'O; /* reject cause: Service option not supported (24.008 cl. 10.5.3.6) - @status APPROVED (LTE_A, LTE_IRAT, POS) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ const B2_Type tsc_NMO_I := '00'B; /* Network Mode of Operation I (3GPP 24.008 / 10.5.1.12.3) - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B2_Type tsc_NMO_II := '01'B; /* Network Mode of Operation II (3GPP 24.008 / 10.5.1.12.3) - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const B2_Type tsc_NMO_II_ExtendedNMO_I := '11'B; /* Network Mode of Operation II (3GPP 24.008 / 10.5.1.12.3) - @status (APPROVED (UTRAN)) */ + @status APPROVED (UTRAN) */ const octetstring tsc_RAC_2 := '02'O; /* Routing Area Code, 1 octet, 3GPP 24.008 clause 10.5.1.12.3 @status APPROVED (LTE_IRAT) */ @@ -62,13 +66,245 @@ module NAS_24008Templates_IRAT { const CauseValue tsc_SM_CauseValue_RegularDeactivation := '24'O; /* Regular deactivation according to 24.008 cl. 10.5.6.6 @status APPROVED (UTRAN) */ - const B1_Type tsc_FOP_NoFollowOnProceed := '1'B; /* @status APPROVED (LTE_IRAT, SSNITZ, POS, UTRAN) */ - const B1_Type tsc_FOP_FollowOnProceed := '0'B; /* @status APPROVED (SSNITZ, UTRAN) */ + const B1_Type tsc_FOP_NoFollowOnProceed := '1'B; /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B1_Type tsc_FOP_FollowOnProceed := '0'B; /* @status APPROVED (IMS, SSNITZ, UTRAN) */ + + const CMServType tsc_MOCallOrPacketModeConn := '0001'B; /* CM Service Type: Mobile originating call establishment or packet mode connection establishment. See 24.008, 10.5.3.3 + @status APPROVED (LTE_IRAT, SSNITZ, UTRAN) */ + const O4_Type tsc_IPv4Mask := 'FFFFFFFF'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, UTRAN) */ + const O16_Type tsc_IPv6Mask := 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'O; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, UTRAN) */ + + //---------------------------------------------------------------------------- + template (value) PacketFilterComponent cs_PktFilterCompIPv4RemoteAddress(charstring p_RemoteAddress, + O4_Type p_Mask := tsc_IPv4Mask) := + { // 9 octets + /* @status APPROVED (UTRAN) */ + /* @sic R5s110604: optional parameters sic@ */ + id := '10'O, // IPv4 remote address + packetFilterComponentValue := { + ipv4RemoteAddress := f_Convert_IPv4Addr2OctString(p_RemoteAddress) & p_Mask // @sic R5s100189, R5-113734 sic@ + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompIPv6RemoteAddress(charstring p_RemoteAddress, + O16_Type p_Mask := tsc_IPv6Mask) := + { // 33 octets + /* @status APPROVED (UTRAN) */ + id := '20'O, // IPv6 remote address + packetFilterComponentValue := { + ipv6RemoteAddress := f_Convert_IPv6Addr2OctString(p_RemoteAddress) & p_Mask // @sic R5s100189, R5-113734 sic@ + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompProtocolIdNextHeader(O1_Type p_ProtocolIdNextHeader) := + { // 2 octets + /* @status APPROVED (UTRAN) */ + id := '30'O, // Protocol Identifier / Next header type + packetFilterComponentValue := { + protocolIdNextHeader := p_ProtocolIdNextHeader + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompProtocolIdNextHeaderUDP := cs_PktFilterCompProtocolIdNextHeader('11'O); /* @status APPROVED (UTRAN) */ + template (value) PacketFilterComponent cs_PktFilterCompProtocolIdNextHeaderIPSec := cs_PktFilterCompProtocolIdNextHeader('32'O); /* @status APPROVED (UTRAN) */ + + template (value) PacketFilterComponent cs_PktFilterCompSingleLocalPort(UInt16_Type p_PortNumber) := + { // 3 octets + /* @status APPROVED (UTRAN) */ + id := '40'O, // Single local port + packetFilterComponentValue := { + singleLocalPort := int2oct(p_PortNumber, 2) + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompLocalPortRange(UInt16_Type p_PortLow, + UInt16_Type p_PortHigh) := + { // 3 octets + /* @status APPROVED (UTRAN) */ + id := '41'O, // Local port range + packetFilterComponentValue := { + localPortRange := int2oct(p_PortLow, 2) & int2oct(p_PortHigh, 2) + } + }; + template (value) PacketFilterComponent cs_PktFilterCompSingleRemotePort(UInt16_Type p_PortNumber) := + { /* @status APPROVED (UTRAN) */ + id := '50'O, // Single remote port + packetFilterComponentValue := { + singleRemotePort := int2oct(p_PortNumber, 2) + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompRemotePortRange(UInt16_Type p_PortLow, + UInt16_Type p_PortHigh) := + { // 3 octets + /* @status APPROVED (UTRAN) */ + id := '51'O, // Remote port range + packetFilterComponentValue := { + remotePortRange := int2oct(p_PortLow, 2) & int2oct(p_PortHigh, 2) + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompTOSTrafficClass(O2_Type p_TOSTrafficClass) := + { // 3 octets + /* @status APPROVED (UTRAN) */ + id := '70'O, // Type of service / Traffic class type + packetFilterComponentValue := { + typeOfServiceTrafficClass := p_TOSTrafficClass + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompIPSecSPI(O4_Type p_IPSecSPI) := + { // 5 octets + /* @status APPROVED (UTRAN) */ + id := '60'O, // Security parameter index type + packetFilterComponentValue := { + securityParameterIndex := p_IPSecSPI + } + }; + + template (value) PacketFilterComponent cs_PktFilterCompFlowLabel(O3_Type p_FlowLabel) := + { // 4 octets + /* @status APPROVED (UTRAN) */ + id := '80'O, // Flow label type + packetFilterComponentValue := { + flowLabel := p_FlowLabel + } + }; + + /* + * @desc Calculate Packet Filters applied in test case 10.9.1 of 36.523-1 + * @param p_PacketFilterByRef (by reference) + * @param p_PacketFilterLengthByRef (by reference) + * @param p_IpTypeIsIPv4 + * @param p_PacketFilterID + * @status APPROVED (UTRAN) + */ + function f_Get_PacketFilter_10_9_1(out template (value) PacketFilter p_PacketFilterByRef, + out integer p_PacketFilterLengthByRef, + boolean p_IpTypeIsIPv4, + integer p_PacketFilterID) + { + var charstring v_IPv4RemoteAddress := "172.168.8.0"; // @sic R5s110776 sic@ + var O4_Type v_IPv4SubnetMask := 'FFFFFF00'O; + var charstring v_IPv6RemoteAddress := "2001:0ba0::"; // @sic R5s110776 sic@ + var O16_Type v_IPv6SubnetMask := 'FFFFFFFF000000000000000000000000'O; // @sic R5s110776 sic@ + + var integer v_FilterCount := 0; + var template (value) PacketFilter v_Filter; + + select (p_PacketFilterID) { // @sic R5-110779 sic@ + case (1) { + // UL only filter, ID=1 + v_Filter.spare := '00'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.direction := '10'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.iei := '1'H; // @sic R5s130195 Baseline Moving sic@ + v_Filter.precedence := int2bit(6, 8); + v_Filter.contents[0] := cs_PktFilterCompProtocolIdNextHeaderUDP; + v_FilterCount := v_FilterCount + 2; + if (p_IpTypeIsIPv4) { + v_Filter.contents[1] := cs_PktFilterCompIPv4RemoteAddress(v_IPv4RemoteAddress, v_IPv4SubnetMask); + v_FilterCount := v_FilterCount + 9; + } + else { // IPv6 + v_Filter.contents[1] := cs_PktFilterCompIPv6RemoteAddress(v_IPv6RemoteAddress, v_IPv6SubnetMask); + v_FilterCount := v_FilterCount + 33; + } + v_Filter.contents[2] := cs_PktFilterCompSingleLocalPort(60001); + v_FilterCount := v_FilterCount + 3; + v_Filter.contents[3] := cs_PktFilterCompRemotePortRange(60350, 60450); + v_FilterCount := v_FilterCount + 5; + v_Filter.contents[4] := cs_PktFilterCompTOSTrafficClass('A8FC'O); + v_FilterCount := v_FilterCount + 3; + } + case (2) { + v_Filter.spare := '00'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.direction := '10'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.iei := '2'H; // @sic R5s130195 Baseline Moving sic@ + v_Filter.precedence := int2bit(7, 8); + v_Filter.contents[0] := cs_PktFilterCompProtocolIdNextHeaderUDP; + v_FilterCount := v_FilterCount + 2; + if (p_IpTypeIsIPv4) { + v_Filter.contents[1] := cs_PktFilterCompIPv4RemoteAddress(v_IPv4RemoteAddress, v_IPv4SubnetMask); + v_FilterCount := v_FilterCount + 9; + } + else { // IPv6 + v_Filter.contents[1] := cs_PktFilterCompIPv6RemoteAddress(v_IPv6RemoteAddress, v_IPv6SubnetMask); + v_FilterCount := v_FilterCount + 33; + } + v_Filter.contents[2] := cs_PktFilterCompLocalPortRange(60000, 60100); + v_FilterCount := v_FilterCount + 5; + v_Filter.contents[3] := cs_PktFilterCompSingleRemotePort(60350); + v_FilterCount := v_FilterCount + 3; + v_Filter.contents[4] := cs_PktFilterCompTOSTrafficClass('A8FC'O); + v_FilterCount := v_FilterCount + 3; + } + case (3) { + v_Filter.spare := '00'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.direction := '10'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.iei := '3'H; // @sic R5s130195 Baseline Moving sic@ + v_Filter.precedence := int2bit(5, 8); + v_Filter.contents[0] := cs_PktFilterCompProtocolIdNextHeaderIPSec; + v_FilterCount := v_FilterCount + 2; + if (p_IpTypeIsIPv4) { + v_Filter.contents[1] := cs_PktFilterCompIPv4RemoteAddress(v_IPv4RemoteAddress, v_IPv4SubnetMask); + v_FilterCount := v_FilterCount + 9; + } + else { // IPv6 + v_Filter.contents[1] := cs_PktFilterCompIPv6RemoteAddress(v_IPv6RemoteAddress, v_IPv6SubnetMask); + v_FilterCount := v_FilterCount + 33; + } + v_Filter.contents[2] := cs_PktFilterCompIPSecSPI('0F80F000'O); // @sic R5s110778 sic@ + v_FilterCount := v_FilterCount + 5; + v_Filter.contents[3] := cs_PktFilterCompTOSTrafficClass('A0FC'O); + v_FilterCount := v_FilterCount + 3; + } + case (4) { + v_Filter.spare := '00'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.direction := '10'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.iei := '4'H; // @sic R5s130195 Baseline Moving sic@ + v_Filter.precedence := int2bit(2, 8); + if (p_IpTypeIsIPv4) { + v_Filter.contents[0] := cs_PktFilterCompIPv4RemoteAddress(v_IPv4RemoteAddress, v_IPv4SubnetMask); + v_FilterCount := v_FilterCount + 9; + } + else { // IPv6 + v_Filter.contents[0] := cs_PktFilterCompIPv6RemoteAddress(v_IPv6RemoteAddress, v_IPv6SubnetMask); + v_FilterCount := v_FilterCount + 33; + } + v_Filter.contents[1] := cs_PktFilterCompTOSTrafficClass('B0FC'O); + v_FilterCount := v_FilterCount + 3; + v_Filter.contents[2] := cs_PktFilterCompFlowLabel('000005'O); + v_FilterCount := v_FilterCount + 4; + } + case (5) { + v_Filter.spare := '00'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.direction := '10'B; // @sic R5s130195 Baseline Moving sic@ + v_Filter.iei := '5'H; // @sic R5s130195 Baseline Moving sic@ + v_Filter.precedence := int2bit(255, 8); + if (p_IpTypeIsIPv4) { + v_Filter.contents[0] := cs_PktFilterCompIPv4RemoteAddress(v_IPv4RemoteAddress, v_IPv4SubnetMask); + v_FilterCount := v_FilterCount + 9; + } + else { // IPv6 + v_Filter.contents[0] := cs_PktFilterCompIPv6RemoteAddress(v_IPv6RemoteAddress, v_IPv6SubnetMask); + v_FilterCount := v_FilterCount + 33; + } + } + case else { + // out of supported range + FatalError(__FILE__, __LINE__, "unsupported packet filter id"); + } + } + v_Filter.iel := int2oct(v_FilterCount, 1); + + p_PacketFilterByRef := v_Filter; + p_PacketFilterLengthByRef := v_FilterCount + 3; + } //---------------------------------------------------------------------------- template (value) AC_ReferenceNumber cs_AC_RefNum3 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ aCValue := '0011'B }; @@ -77,7 +313,7 @@ module NAS_24008Templates_IRAT { template (present) AttachType cr_AttachType (template (present) B1_Type p_FOR, template (present) B3_Type p_AttType) := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ forValue := p_FOR, // Follow-on request attachType := p_AttType // Type of attach }; @@ -87,7 +323,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) AuthRspExt cr_AuthCiphRspExtAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '29'O, // IEI is 0x29 (see 24.008 / 9.4.10) iel := ?, rES := ? @@ -96,7 +332,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) AuthRsp cr_AuthRspAny (template (omit) IEI8_Type p_IEI := '22'O) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, // '00100010'B (22 hex) rES := ? // Authentication Parameter RES }; @@ -104,7 +340,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) AuthRspExt cr_AuthRspExtAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '21'O, // '00100001'B iel := ?, rES := ? @@ -113,7 +349,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) CiphAlgorithm cs_CiphAlgorithm(template (value) B3_Type p_Alg) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ spare1 := '0'B, algorithm := p_Alg }; @@ -121,7 +357,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) ForceToStandby cs_ForceToStandby(B3_Type p_Val := '000'B) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ spare := '0'B, forceToStandbyValue := p_Val }; @@ -130,7 +366,7 @@ module NAS_24008Templates_IRAT { template (value) AttachResult cs_GMM_AttachResult(B3_Type p_Result, B1_Type p_FOP := tsc_FOP_NoFollowOnProceed) := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fOP := p_FOP, result := p_Result }; @@ -139,12 +375,12 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- - template (value) CiphKeySeqNum cs_GMM_KeySeq(KeySeq p_Key) := cs_CiphKeySeqNum('8'H, p_Key); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) CiphKeySeqNum cs_GMM_KeySeq(KeySeq p_Key) := cs_CiphKeySeqNum('8'H, p_Key); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //---------------------------------------------------------------------------- template (present) GPRS_Timer cr_GPRS_TimerAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '17'O, // 00010111'B (17 hex) unit := ?, // Unit timerValue := ? // Timer value @@ -154,7 +390,7 @@ module NAS_24008Templates_IRAT { template (value) GMM_Cause cs_GMM_Cause (B8_Type p_RejectCause) := { // @sic R5s110718 sic@ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (LTE_IRAT, UTRAN) */ iei := omit, gmmCauseValue := p_RejectCause }; @@ -163,7 +399,7 @@ module NAS_24008Templates_IRAT { template (present) UpdateType cr_GMM_UpdateType(template (present) B1_Type p_For := ?, template (present) B3_Type p_Type := (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)) := // @sic R5s110081, R5-125545 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ followOnReq := p_For, updateValue := p_Type }; @@ -171,7 +407,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) LocUpdType cr_LocUpdTypeNormal (template (present) B1_Type p_FOR := ?) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ fOR := p_FOR, spare1 := '0'B, lUT := '00'B @@ -179,20 +415,20 @@ module NAS_24008Templates_IRAT { template (present) LocUpdType cdr_LocUpdTypeIMSI (template (present) B1_Type p_FOR := ?) modifies cr_LocUpdTypeNormal := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ lUT := '10'B }; template (present) LocUpdType cdr_LocUpdTypePeriodic (template (present) B1_Type p_FOR := ?) modifies cr_LocUpdTypeNormal := - { + { /* @status APPROVED (UTRAN) */ lUT := '01'B }; //---------------------------------------------------------------------------- template (present) MS_Clsmk1 cr_MS_Clsmk1_Any := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ spare1 := '0'B, revLvl := ?, eSIND := ?, @@ -201,7 +437,7 @@ module NAS_24008Templates_IRAT { }; template (present) MS_Clsmk1 cr_MS_Clsmk1_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ spare1 := '0'B, revLvl := px_MS_ClsmkRevLvl, eSIND := px_MS_ClsmkESIND, @@ -211,10 +447,10 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- - template (present) RoutingAreaId cr_RAI(template (omit) IEI8_Type p_IEI, + template (present) RoutingAreaId cr_RAI(template (omit) IEI8_Type p_IEI := omit, template (present) LocAreaId p_Lai := ?, template (present) octetstring p_Rac := ?) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, lai := p_Lai, rac := p_Rac @@ -223,7 +459,7 @@ module NAS_24008Templates_IRAT { template (value) RoutingAreaId cs_RAI(template (omit) IEI8_Type p_IEI, template (value) LocAreaId p_Lai, octetstring p_Rac) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, lai := p_Lai, rac := p_Rac @@ -232,7 +468,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) ServiceType cr_ServiceType(template (present) B3_Type p_Type) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ spare1 := '0'B, serviceType := p_Type }; @@ -240,7 +476,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) IMEISV_Request cs_IMEISV_Request(B3_Type p_Value) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := omit, spare := '0'B, requestValue := p_Value @@ -248,9 +484,10 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- - template (present) Cau cr_CauAny(template (present) B7_Type p_CauValue := ?) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - iei := '08'O, + template (present) Cau cr_CauAny(template IEI8_Type p_IEI := '08'O, + template (present) B7_Type p_CauValue := ?) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, // @sic R5s-140882 sic@ iel := ?, extBit3 := ?, codingStd := ?, @@ -284,7 +521,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) MBMS_ContextStatus cr_MBMS_ContextStatusAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ iei := '35'O, // '00110101'B (35 hex) iel := ?, nSAPI := ? // NSAPI(x), for x = 128 to 255 @@ -302,7 +539,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) PDP_ContextStatus cr_PDP_ContextStatusAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '32'O, // '00110010'B iel := ?, nSAPI := ? @@ -311,16 +548,25 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) PDP_ContextStatus cs_PDP_ContextStatusInactive := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) */ iei := '32'O, // '00110010'B iel := '02'O, nSAPI := '0000000000000000'B //inactive PDP context }; - + + //---------------------------------------------------------------------------- + + template (value) PDP_ContextStatus cs_PDP_ContextStatusNSAPI5 := + { /* @status APPROVED (LTE_A, LTE_IRAT) */ + //@sic R5-150398 sic@ + iei := '32'O, // '00110010'B + iel := '02'O, + nSAPI := '0010000000000000'B //inactive PDP context except for NSAPI 5 + }; //---------------------------------------------------------------------------- template (present) PS_LCS_Capability cr_PS_LCS_CapabilityAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '33'O, // '00110011'B (33 hex) iel := '01'O, spare := '00'B, @@ -333,7 +579,7 @@ module NAS_24008Templates_IRAT { }; template (present) PktDataProtoAddr cr_PDP_AddressAny := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ iei := omit, iel := '02'O, spare := '0000'B, @@ -347,7 +593,7 @@ module NAS_24008Templates_IRAT { template (value) PktDataProtoAddr cs_PktDataProtoAddrMT(template (value) Type4Length_Type p_Len, template (value) PDP_TypeNo p_PDP_TypeNo, template (omit) AddressInfo p_Addr) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ iei := '2B'O, // @sic R5s110315 sic@ iel := p_Len, spare := '0000'B, @@ -478,7 +724,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) QualityOfService cr_QualityOfService_Any := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ iei := omit, iel := ?, spare1 := ?, @@ -518,7 +764,7 @@ module NAS_24008Templates_IRAT { template (value) QualityOfService cs_QoS_InteractiveOrBackgroundMT(template (value) B3_Type p_DlyClass, template (value) B3_Type p_TrafficClass) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ iei := omit, iel := '0C'O, // @sic R5s110315 sic@ spare1 := '00'B, @@ -557,7 +803,7 @@ module NAS_24008Templates_IRAT { template (value) QualityOfService cs_QoS_InteractiveOrBackgroundMT_32kbps(template (value) B3_Type p_DlyClass, template (value) B3_Type p_TrafficClass) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT) */ iei := omit, iel := '0C'O, // @sic R5s110315 sic@ spare1 := '00'B, @@ -601,7 +847,7 @@ module NAS_24008Templates_IRAT { template (value) B8_Type p_BitRateDL, template (omit) B8_Type p_BitRateExt) modifies cs_QoS_InteractiveOrBackgroundMT := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ iel := '0E'O, // @sic R5s110315 sic@ peakThroughput := p_PeakThroughput, maxSduSize := p_MaxSduSize, @@ -614,31 +860,44 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) TI cr_TI_Any(template (present) B1_Type p_Flag := ?) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tiFlag := p_Flag, // from network to MS tiVal := ? }; - template (present) TI cr_TI_MO := cr_TI_Any('0'B); /* @status APPROVED (LTE_IRAT, SSNITZ) */ + template (present) TI cr_TI_MO := cr_TI_Any('0'B); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (present) TI cr_TI_MT := cr_TI_Any('1'B); //---------------------------------------------------------------------------- template (value) TI cs_TI_Common(B1_Type p_Flag, B3_Type p_Value := '000'B) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tiFlag := p_Flag, tiVal := p_Value }; - template (value) TI cs_TI_MT(B3_Type p_Value := '000'B) := cs_TI_Common('0'B, p_Value); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ) */ - template (value) TI cs_TI_MO(B3_Type p_Value := '000'B) := cs_TI_Common('1'B, p_Value); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - + template (value) TI cs_TI_MT(B3_Type p_Value := '000'B) := cs_TI_Common('0'B, p_Value); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + template (value) TI cs_TI_MO(B3_Type p_Value := '000'B) := cs_TI_Common('1'B, p_Value); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + /* + * @desc wrapper for valueof + * @param p_TI + * @return TI + * @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ) + */ function f_NAS_TI_Init(template (value) TI p_TI) return TI { return valueof(p_TI); } + /* + * @desc Initialise TI + * @param p_TI + * @param p_Flag + * @return TI + * @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ) + */ function f_NAS_TI_InitAndSetFlag(template (value) TI p_TI, B1_Type p_Flag) return TI { @@ -661,12 +920,12 @@ module NAS_24008Templates_IRAT { template (value) UpdateResult cs_GMM_UpdateResult(B3_Type p_Result, B1_Type p_FOP := '1'B) := // @sic R5-142397, R5-144667 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fOP := p_FOP, ttcn_value := p_Result }; - template (value) UpdateResult cs_GMM_UpdateResultRA_Updated := cs_GMM_UpdateResult('000'B); // RA updated + template (value) UpdateResult cs_GMM_UpdateResultRA_Updated := cs_GMM_UpdateResult('000'B); // RA updated @status APPROVED (UTRAN) template (value) UpdateResult cs_GMM_UpdateResultCombRA_LA := cs_GMM_UpdateResult('001'B); // Combined RA/LA updated //---------------------------------------------------------------------------- @@ -682,7 +941,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) PriorityLvl cr_PriorityLvlAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '8'H, spare1 := '0'B, callPrio := ? @@ -699,7 +958,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) RepeatInd cr_RepeatInd(template (present) B4_Type p_RepeatInd := ?) := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := 'D'H, repeatInd := p_RepeatInd }; @@ -710,7 +969,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) Bcap3aEtc cr_Bcap3aEtcAny := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ extBit := ?, coding := ?, spare2 := ?, @@ -721,7 +980,7 @@ module NAS_24008Templates_IRAT { template (present) Bcap cr_BcapAnyMO := { /* Any bearer capability for direction n <- ue */ - /* @status APPROVED (LTE_IRAT, SSNITZ) */ + /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '04'O, iel := ?, extBit3 := ?, @@ -1164,7 +1423,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) Bcap cr_BcapSpeechMO := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '04'O, iel := ?, extBit3 := ?, // extension bit @@ -1789,7 +2048,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) CC_Capabilities cr_CC_CapabilitiesAny := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '15'O, iel := '02'O, maxNumBearer := ?, @@ -1803,18 +2062,18 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- - template (present) CDPN cr_CDPN_Any := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + template (present) CDPN cr_CDPN(template octetstring p_Number := *) := + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '5E'O, // information element identifier iel := ?, // length typeOfNumPlan := cr_TypeOfNumPlanAny, // type of number and numbering plan identification - digits := * // BCD numbers + digits := p_Number // BCD numbers }; //---------------------------------------------------------------------------- template (present) CDPS cr_CDPS_Any := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '6D'O, iel := ?, subadrs := cr_SubadrsAny @@ -1823,7 +2082,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) CGPS cr_CGPS_Any := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '5D'O, // information element identifier iel := ?, // length subadrs := cr_SubadrsAny // Subaddress @@ -1833,7 +2092,7 @@ module NAS_24008Templates_IRAT { template (present) ConnectedSubAdrs cr_ConnectedSubAdrs_Any := { /* TS 24.008 cl. 10.5.4.14 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '4D'O, iel := ?, // length subadrs := cr_SubadrsAny // Subaddress @@ -1843,19 +2102,19 @@ module NAS_24008Templates_IRAT { template (present) FacilityIE cr_Facility_Any(IEI8_Type p_IEI := '1C'O) := { /* TS 24.008 cl. 10.5.4.15 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := p_IEI, // information element identifier '00011100'B iel := ?, // length components := ? // Component }; - template (present) FacilityIE cr_FacilityAdvRecall := cr_Facility_Any('1D'O); /* @status APPROVED (LTE_IRAT, SSNITZ) */ - template (present) FacilityIE cr_FacilityRecallAlign := cr_Facility_Any('1B'O); /* @status APPROVED (LTE_IRAT, SSNITZ) */ + template (present) FacilityIE cr_FacilityAdvRecall := cr_Facility_Any('1D'O); /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + template (present) FacilityIE cr_FacilityRecallAlign := cr_Facility_Any('1B'O); /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ //---------------------------------------------------------------------------- template (present) HLC cr_HLC_Any := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '7D'O, // information element identifier iel := ?, extBit3 := *, @@ -1871,7 +2130,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) LLC cr_LLC_Any := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ iei := '7C'O, iel := ?, extBit3 := *, @@ -2290,7 +2549,7 @@ module NAS_24008Templates_IRAT { template (present) LLC_SAPI cr_LLC_SAPI := { /* LLC SAPI value assigned as SAPI 11 in order to ensure that there are no problems at the time of handover from UMTS to GSM */ - /* @status APPROVED (LTE_IRAT, UTRAN) */ + /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ iei := omit, spare := '0000'B, llcSapiValue := ('0000'B, '0011'B, '0101'B, '1001'B, '1011'B) @@ -2299,11 +2558,11 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) LLC_SAPI cs_LLC_SAPI_UMTS := cs_LLC_SAPI(-, '0000'B); /* The value of LLC SAPI for an UE supporting ONLY UMTS; - @status APPROVED (LTE_IRAT, UTRAN) */ + @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ template (present) LocAreaId2 cr_LocAreaId2_Any := { /* @sic R5s110178 Baseline Moving sic@*/ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '14'O, iel := ?, plmn := ?, // MCC + MNC 3 digits each @@ -2313,7 +2572,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) MS_RadioAccessCap_LV cr_MS_RadioAccessCapLVAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iel := ?, valuePart := cr_MS_RadioAccessCapVAny // @sic R5s110176 Baseline Moving sic@ }; @@ -2322,7 +2581,7 @@ module NAS_24008Templates_IRAT { template (present) MS_RadioAccessCap_V cr_MS_RadioAccessCapVAny := { /* The 1st instance must be single access type, but after that everything is optional */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ listofValues := ( {cr_MSRadioAccessCapListSingle, *}, {cr_MSRadioAccessCapListSingle, cr_MSRadioAccessCapListSingle, *}, {cr_MSRadioAccessCapListSingle, cr_MSRadioAccessCapListSingle, cr_MSRadioAccessCapListAny, *}, @@ -2332,14 +2591,14 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- - template (present) MS_RadioAccessCapList cr_MSRadioAccessCapListAny := cr_MSRadioAccessCapList(cr_MSRadioAccessCapAny); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) MS_RadioAccessCapList cr_MSRadioAccessCapListSingle := cr_MSRadioAccessCapList(cr_MSRadioAccessCapSingle); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) MS_RadioAccessCapList cr_MSRadioAccessCapListAny := cr_MSRadioAccessCapList(cr_MSRadioAccessCapAny); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) MS_RadioAccessCapList cr_MSRadioAccessCapListSingle := cr_MSRadioAccessCapList(cr_MSRadioAccessCapSingle); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (present) MS_RadioAccessCapList cr_MSRadioAccessCapListNotSupportEUTRA := cr_MSRadioAccessCapList(cr_MSRadioAccessCapNotSupportEUTRA); /* @status APPROVED (LTE_IRAT) */ //---------------------------------------------------------------------------- template (present) MS_RadioAccessCap cr_MSRadioAccessCapAny(template (present) SingleAccessCap p_SingleAccessCap := cr_SingleAccessCapAny) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ accessTechType := ?, singleAccess := p_SingleAccessCap ifpresent, // only present if accessTechType != 1111 @sic R5s130477 sic@ addLength := *, // only present if accessTechType = 1111 @@ -2350,7 +2609,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) MS_RadioAccessCap cr_MSRadioAccessCapSingle(template (present) SingleAccessCap p_SingleAccessCap := cr_SingleAccessCapAny) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ accessTechType := complement('1111'B), singleAccess := p_SingleAccessCap, // only present if accessTechType != 1111 addLength := omit, // only present if accessTechType = 1111 @@ -2393,12 +2652,12 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) AddMS_RadioAccessCapList cr_AddMS_RadioAccessCapListAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cr_AddMS_RadioAccessCapAny }; template (present) AddMS_RadioAccessCap cr_AddMS_RadioAccessCapAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ prefix := '1'B, addTechType := ?, // not present if prefix = 0 powerClassGMSK := ?, // not present if prefix = 0 @@ -2417,7 +2676,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) NSAPI cr_NSAPI := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ spare := '0000'B, nSAPI_Value := ('0101'B, '0110'B, '0111'B, '1000'B, '1001'B, '1010'B, '1011'B, '1100'B, '1101'B, '1110'B, '1111'B) }; @@ -2437,7 +2696,7 @@ module NAS_24008Templates_IRAT { template (present) PTMSI_Type cr_PTMSI_Type_Any := { /* @sic R5s110178 Baseline Moving sic@*/ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := 'E'H, spare := tsc_Spare3, ptmsiType := ? @@ -2463,7 +2722,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) RequestType cr_RequestType_Any := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ iei := 'A'H, spare := '0'B, requestTypeValue := ? @@ -2472,7 +2731,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) RoutingAreaId2 cr_RoutingAreaId2 (template (present) O6_Type p_RAU2 := ?) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '1B'O, iel := '06'O, // length routingAreaId2 := p_RAU2 @@ -2481,7 +2740,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) SS_VersionInd cr_SS_VersionIndAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '7F'O, iel := ?, sS_VersionInfo := ? @@ -2497,7 +2756,7 @@ module NAS_24008Templates_IRAT { template (present) ServCategory cr_ServCategoryAny := { /* 3GPP 24.008 / 10.5.4.33 */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_IRAT, POS, UTRAN) */ iei := '2E'O, // '00101110'B (2E hex) iel := '01'O, // '01'O emergServCat := cr_EmergServCatAny // Emergency Service Category @@ -2518,7 +2777,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) StreamId cr_StreamIdAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '2D'O, iel := ?, streamIndValue := ? @@ -2547,7 +2806,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) TypeOfNumPlan cr_TypeOfNumPlanAny := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ extBit := ?, // extension bit typeOfNum := ?, // Type of number numbPlanId := ? // Numbering plan id. @@ -2558,7 +2817,7 @@ module NAS_24008Templates_IRAT { template (present) UserUser cr_UserUserAny := { /* In SETUP, ALERTING, CONNECT, DISCONNECT, RELEASE and RELEASE COMPLETE messages the userUserInfo length is of 0 - 32 bytes. * In USER INFORMATION messages the userUserInfo length is of 1 - 128. */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ iei := '7E'O, // information element identifier iel := ?, // length userUserProtocolDiscr := ?, // user-user protocol discriminator @@ -2567,20 +2826,30 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- - template (value) Cau cs_CauNormCallClear := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - iei := omit, + const B2_Type tsc_CodingStd_GSM := '11'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B2_Type tsc_CodingStd_ITUT := '00'B; /* @status APPROVED (POS) */ + const B4_Type tsc_Location_User := '0000'B; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B4_Type tsc_Location_PLMN := '0010'B; /* @status APPROVED (SSNITZ, UTRAN) */ + + template (value) Cau cs_Cau_Common(template (omit) IEI8_Type p_IEI := '08'O, + B2_Type p_CodingStd, + B4_Type p_Location, + B7_Type p_CauValue) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, iel := '02'O, extBit3 := '1'B, // no extension - codingStd := '11'B, // coding standard - GSM + codingStd := p_CodingStd, // coding standard: GSM or ITU-T spare1 := '0'B, // bit - location := '0000'B, // location - user + location := p_Location, // location: user or public network serving the local user extBit3a := omit, recommend := omit, extBit4 := '1'B, // no extension - cauValue := int2bit(16, 7), // Normal call clearing + cauValue := p_CauValue, diagnostic := omit }; + + template (value) Cau cs_CauNormCallClear := cs_Cau_Common(omit, tsc_CodingStd_GSM, tsc_Location_User, int2bit(16, 7)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //---------------------------------------------------------------------------- @@ -2594,7 +2863,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) UplinkDataStatus cr_UplinkDataStatusAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ iei := '36'O, iel := ?, nsapiUplinkStatus := ? @@ -2603,7 +2872,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) AUTHENTICATIONFAILURE cr_AuthFailAny_Common := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '??011100'B, @@ -2616,7 +2885,7 @@ module NAS_24008Templates_IRAT { template (value) AUTHENTICATIONREQUEST cs_AuthReq_Common(template (value) KeySeq p_KeySeq, template (value) MM_RAND p_RAND, template (value) AUTN p_AUTN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '00010010'B, @@ -2629,7 +2898,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) AUTHENTICATIONRESPONSE cr_AuthResponse_Common(template AuthRspExt p_AuthRspExt := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '??010100'B, @@ -2642,7 +2911,7 @@ module NAS_24008Templates_IRAT { template (present) IMSIDETACHINDICATION cr_IMSI_DetachInd_Common(template (present) MS_Clsmk1 p_MS_Clsmk1 := cr_MS_Clsmk1_Def, template (present) MobileIdentity p_MobileIdentity := cr_MobileIdTMSI_lv (px_TMSI_Def)) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '??000001'B, @@ -2655,8 +2924,10 @@ module NAS_24008Templates_IRAT { template (value) LOCATIONUPDATINGACCEPT cs_LocUpdAcp_Common(octetstring p_PLMN, octetstring p_LAC, template (omit) MobileIdentity p_MobileId, // @sic R5-112706 sic@ - template (omit) PLMN_List p_EPLMN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (omit) PLMN_List p_EPLMN, + template (omit) GPRS_Timer3 p_GPRS_Timer3 := omit //@sic R5s150676 change 4.6 sic@ + ) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '00000010'B, @@ -2666,7 +2937,7 @@ module NAS_24008Templates_IRAT { cTSPerm := omit, equivalentPLMN := p_EPLMN, emergNumList := omit, - perMST3212 := omit /* cl. 10.5.7.4a O TLV 3 IEI=0x35 @sic R5s120178 Baseline Moving sic@*/ + perMST3212 := p_GPRS_Timer3 /* cl. 10.5.7.4a O TLV 3 IEI=0x35 @sic R5s120178 Baseline Moving sic@*/ }; //---------------------------------------------------------------------------- @@ -2685,7 +2956,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) TMSIREALLOCATIONCOMPLETE cr_TMSI_ReallocCmpl_Common := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, // Skip Indicator mMProtocolDiscriminator := '0101'B, // MM Protocol Discriminator msgType := '??011011'B // Message Type @@ -2695,9 +2966,9 @@ module NAS_24008Templates_IRAT { template (present) CMSERVICEREQUEST cr_CM_ServReq(template (present) KeySeq p_KeySeq, template (present) CMServType p_CMServType := ?, - template (present) MobileIdentity p_MobileIdentity := cr_MobileIdAny(omit), + template (present) MobileIdentity p_MobileIdentity := cr_MobileIdAny, template PriorityLvl p_PriorityLevel := cr_PriorityLvlAny ifpresent) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '??100100'B, @@ -2712,9 +2983,9 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) ESETUP cr_ESetup(template (present) Bcap p_Bcap) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT, POS, UTRAN) */ ti := cr_TI_MO, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??001110'B, bcap := p_Bcap ifpresent, streamId := cr_StreamIdAny ifpresent, @@ -2725,7 +2996,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) CMSERVICEREJECT cs_CM_ServRej(template (value) RejCau p_RejCau) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '00100010'B, @@ -2739,9 +3010,11 @@ module NAS_24008Templates_IRAT { template (present) LocUpdType p_Type := ?, // @sic R5-112114 sic@ template (present) LocAreaId p_LocAreaId := cr_LAI_Any_v, template (present) MS_Clsmk1 p_MSClsmk1 := cr_MS_Clsmk1_Any, - template (present) MobileIdentity p_MobileId := cr_MobileIdAny(omit), - template MS_Clsmk2 p_MSClsmk2 := cr_MS_Clsmk2_Any_tlv('33'O)) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) MobileIdentity p_MobileId := cr_MobileIdAny, + template MS_Clsmk2 p_MSClsmk2 := cr_MS_Clsmk2_Any_tlv('33'O), + template DeviceProperties p_DeviceProperties := cr_DeviceProperties ('D'H) ifpresent, + template MS_NetworkFeatureSupport p_MS_NetworkFeatureSupport := cr_MS_NetworkFeatureSupport('E'H) ifpresent) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, msgType := '??001000'B, @@ -2752,8 +3025,8 @@ module NAS_24008Templates_IRAT { mobileId := p_MobileId, mSClsmk2 := p_MSClsmk2, addUpdateParams := cr_AddUpdateParams_Any ifpresent, // @sic R5s110176 Baseline Moving sic@ - deviceProperties := cr_DeviceProperties('D'H) ifpresent, /* cl. 10.5.7.8 O TV 1 IEI=0xD- @sic R5s120178 Baseline Moving sic@*/ - msNetworkFeatureSupport := cr_MS_NetworkFeatureSupport('E'H) ifpresent /* cl. 10.5.1.15 O TV 1 IEI=0xE- @sic R5s120178 Baseline Moving sic@*/ + deviceProperties := p_DeviceProperties, /* cl. 10.5.7.8 O TV 1 IEI=0xD- @sic R5s120178 Baseline Moving sic@ @sic R5s150674 additional changes: p_DeviceProperties sic@ */ + msNetworkFeatureSupport := p_MS_NetworkFeatureSupport /* cl. 10.5.1.15 O TV 1 IEI=0xE- @sic R5s120178 Baseline Moving sic@ @sic R5s150674 additional changes: p_MS_NetworkFeatureSupport sic@*/ }; //---------------------------------------------------------------------------- @@ -2767,13 +3040,14 @@ module NAS_24008Templates_IRAT { tearDwnInd := cr_TearDwnInd ifpresent, protocolConfOpts := cr_ProtocolConfigOptionsAny ifpresent, mBMS_ProtocolConfOpts := cr_MBMS_ProtoCfgOptAny ifpresent, - t3396Value := * // @sic R5s130195 Baseline Moving sic@ + t3396Value := *, // @sic R5s130195 Baseline Moving sic@ + wlanOffloadInd := * // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- template (present) ATTACHCOMPLETE cr_AttachComplete_Common := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00000011'B, @@ -2801,7 +3075,7 @@ module NAS_24008Templates_IRAT { template AdditionalUpdateType p_AddUpdType := cr_AdditionalUpdateTypeAny ifpresent, template NwkResourceId p_TmsiBasedNRIContainer := cr_NwkResourceIdAny ifpresent, template (present) MS_NetworkCap p_MS_NetworkCap := cdr_MS_NetworkCapAss_lv) := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00000001'B, @@ -2828,14 +3102,16 @@ module NAS_24008Templates_IRAT { msNetworkFeatureSupport := cr_MS_NetworkFeatureSupport('C'H) ifpresent, /* cl. 10.5.1.15 O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ oldLAI := cr_LocAreaId2_Any ifpresent, /* cl. 10.5.5.30 O TLV 7 IEI=0x14 @sic R5s120178 Baseline Moving sic@*/ addUpdType := p_AddUpdType, // @sic R5s130195 Baseline Moving sic@ - tmsiBasedNRIContainer := p_TmsiBasedNRIContainer // @sic R5s130195 Baseline Moving sic@ + tmsiBasedNRIContainer := p_TmsiBasedNRIContainer, // @sic R5s130195 Baseline Moving sic@ + t3324Value := cr_GPRS_Timer2_3('6A'O) ifpresent, // @sic R5s150329 Baseline Moving sic@ + t3312ExtdValue := cr_GPRS_Timer2_3('39'O) ifpresent // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- template (present) AUTHENTICATIONANDCIPHERINGRESPONSE cr_AuthAndCiphRsp_Common(template AuthRsp p_AuthRsp, template AuthRspExt p_AuthRspExt) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00010011'B, @@ -2852,7 +3128,7 @@ module NAS_24008Templates_IRAT { template StreamId p_StreamId) := { /* @status APPROVED (LTE_IRAT, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??001000'B, repeatInd := cr_RepeatInd ifpresent, bcap1 := cr_BcapAnyMO ifpresent, @@ -2866,18 +3142,18 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) CONNECTACKNOWLEDGE cr_ConnAck_Common(template TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??001111'B }; //---------------------------------------------------------------------------- template (present) CONNECTul cr_Connect_Common(template TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??000111'B, facility := cr_Facility_Any ifpresent, connectedSubAdrs := cr_ConnectedSubAdrs_Any ifpresent, @@ -2891,7 +3167,7 @@ module NAS_24008Templates_IRAT { template (present) DETACHREQUESTMO cr_DetachReq_Common(template DetachType p_Type, template MobileIdentity p_Ptmsi, template PTMSI_Signature p_Signature := cr_PTMSI_Signature2Any ifpresent) := // @sic R5s110112 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00000101'B, @@ -2911,7 +3187,7 @@ module NAS_24008Templates_IRAT { template (omit) ProtocolConfigOptions p_PCO, template (omit) PacketFlowIdentifier p_PFI) := { /* 24.008, 9.5.2 */ - /* @status APPROVED (LTE_IRAT, UTRAN) */ + /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ ti := p_TI, // This will be overwritten in the test case with the received ti sM_ProtocolDiscriminator := tsc_SMPD, // PD for SM msgType := '01000010'B, // Msg type for PDP Context Accept @@ -2923,15 +3199,16 @@ module NAS_24008Templates_IRAT { protocolConfOpts := p_PCO, // UTRAN = omit, pktFlowID := p_PFI, // UTRAN = cs_PktFlowId, smCause := omit, - connectivityType := omit /* cl. 10.5.6.19 O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + connectivityType := omit, /* cl. 10.5.6.19 O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + wlanOffloadInd := omit // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- template (value) ALERTINGdl cs_Alert_Common(template (value) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00000001'B, facility := omit, progInd := omit, @@ -2949,7 +3226,7 @@ module NAS_24008Templates_IRAT { template (omit) GMM_Cause p_GmmCause:= omit, //@sic R5-140946 sic@ template (omit) AddNtwFeatureSupport p_AddNwFeatSupport := omit,//@sic R5-140946 sic@ template (omit) GPRS_Timer2 p_T3302Value:= omit) := //@sic R5-140946 sic@ - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00000010'B, @@ -2973,13 +3250,14 @@ module NAS_24008Templates_IRAT { t3319Value := omit, t3323Value := omit, t3312ExtdValue := omit, /* cl. 10.5.7.4a O TLV 3 IEI=0x39 @sic R5s120178 Baseline Moving sic@*/ - addNtwFeatureSupport := p_AddNwFeatSupport // @sic R5s130195 Baseline Moving sic@, @sic R5-140946 sic@ + addNtwFeatureSupport := p_AddNwFeatSupport, // @sic R5s130195 Baseline Moving sic@, @sic R5-140946 sic@ + t3324Value := omit // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- template (value) ATTACHREJECT cs_AttachRej_Common(RejCau p_Cause) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00000100'B, @@ -2994,7 +3272,7 @@ module NAS_24008Templates_IRAT { template (value) CiphKeySeqNum p_CiphKeySeqNum, template (value) GPRS_CipherAlg p_CipherAlg, template (value) AUTN p_Autn) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00010010'B, @@ -3010,9 +3288,9 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) CALLPROCEEDING cs_CallProc_Common( template (value) TI p_TI) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00000010'B, repeatInd := omit, bcap1 := omit, @@ -3026,18 +3304,18 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (value) CONNECTACKNOWLEDGE cs_ConnAck_Common(template (value) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00001111'B }; //---------------------------------------------------------------------------- template (value) CONNECTdl cs_Connect_Common(template (value) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00000111'B, facility := omit, progInd := omit, @@ -3048,14 +3326,20 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- + template (value) Signal cs_Signal(B8_Type p_Value := '00000000'B) := // Value = dial tone on + { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + iei := '34'O, + signalValue := p_Value + }; + template (value) SETUPdl cs_SetupMT_Common(template (value) Bcap p_Bcap, template (value) TI p_TI := cs_TI_MT, template (omit) FacilityIE p_Facility := omit, - template (omit) Signal p_Signal := omit, + template (omit) Signal p_Signal := cs_Signal, // @sic R5s150422 sic@ template (omit) CGPN p_CGPN := omit) := { /* @status APPROVED (LTE_IRAT, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00000101'B, repeatInd := omit, bcap1 := p_Bcap, @@ -3090,7 +3374,7 @@ module NAS_24008Templates_IRAT { RepeatInd p_RepeatInd) := { ti := cs_TI_MT, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00000101'B, repeatInd := p_RepeatInd, // Bcap repeat indicator for alternate (circular selection) bcap1 := p_Bcap1, @@ -3123,7 +3407,7 @@ module NAS_24008Templates_IRAT { template (present) PAGINGRESPONSE cr_PagRsp_Common(template (present) KeySeq p_KeySeq, template (present) MobileIdentity p_MobileId, template AddUpdateParams p_AddUpdateParams := cr_AddUpdateParams_Any ifpresent) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ skipIndicator := '0000'B, rRProtocolDiscriminator := '0110'B, msgType := '??100111'B, @@ -3158,7 +3442,7 @@ module NAS_24008Templates_IRAT { template PTMSI_Type p_PTMSI_Type := cr_PTMSI_Type_Any ifpresent, template AdditionalUpdateType p_AddUpdType := cr_AdditionalUpdateTypeAny ifpresent, template NwkResourceId p_TmsiBasedNRIContainer := cr_NwkResourceIdAny ifpresent) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00001000'B, @@ -3187,7 +3471,9 @@ module NAS_24008Templates_IRAT { msNetworkFeatureSupport := cr_MS_NetworkFeatureSupport('C'H) ifpresent, /* cl. 10.5.1.15 O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ oldLAI := cr_LocAreaId2_Any ifpresent, /* cl. 10.5.5.30 O TLV 7 IEI=0x14 @sic R5s120178 Baseline Moving sic@*/ addUpdType := p_AddUpdType, // @sic R5s130195 Baseline Moving sic@ - tmsiBasedNRIContainer := p_TmsiBasedNRIContainer // @sic R5s130195 Baseline Moving sic@ + tmsiBasedNRIContainer := p_TmsiBasedNRIContainer, // @sic R5s130195 Baseline Moving sic@ + t3324Value := cr_GPRS_Timer2_3('6A'O) ifpresent, // @sic R5s150329 Baseline Moving sic@ + t3312ExtdValue := cr_GPRS_Timer2_3('39'O) ifpresent // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- @@ -3198,7 +3484,7 @@ module NAS_24008Templates_IRAT { template (omit) MobileIdentity p_PTMSI, template (omit) PDP_ContextStatus p_PDP_ContextStatus, // @sic R5-133584 sic@ template (omit) RequestedMS_Info p_ReqMSInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00001001'B, @@ -3223,7 +3509,8 @@ module NAS_24008Templates_IRAT { t3319Value := omit, t3323Value := omit, t3312ExtdValue := omit, /* cl. 10.5.7.4a O TLV 3 IEI=0x39 @sic R5s120178 Baseline Moving sic@*/ - addNtwFeatureSupport := omit // @sic R5s130195 Baseline Moving sic@ + addNtwFeatureSupport := omit, // @sic R5s130195 Baseline Moving sic@ + t3324Value := omit // @sic R5s150329 Baseline Moving sic@ }; //---------------------------------------------------------------------------- @@ -3231,7 +3518,7 @@ module NAS_24008Templates_IRAT { template (value) ROUTINGAREAUPDATEREJECT cs_RAUpdReject_Common( template (value) GMM_Cause p_RejectCause, template (omit) GPRS_Timer2 p_T3346Value := omit ) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ skipIndicator := '0000'B, // Skip Indicator BITSTRING [4] gMMProtocolDiscriminator := tsc_GMM_PD, // GMM Protocol Discriminator '1000' BITSTRING [4] msgType := '00001011'B, // Message Type '0000 1011' BITSTRING [8] @@ -3245,7 +3532,7 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) ROUTING_AREA_UPDATE_COMPLETE cr_RAUpdComplete_Common(template EUTRAN_HO_Info p_EUTRAN_HO_Info := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00001010'B, @@ -3258,7 +3545,7 @@ module NAS_24008Templates_IRAT { template (present) ACTIVATEPDPCONTEXTREQUESTul cr_ActPDP_ContextReqMO_Common(template QualityOfService p_QosReq) := { /* 3GPP 24.008, 9.5.1 */ - /* @status APPROVED (LTE_IRAT, UTRAN) */ + /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ ti := cr_TI_Any, sM_ProtocolDiscriminator := tsc_SMPD, msgType := '01000001'B, @@ -3277,7 +3564,7 @@ module NAS_24008Templates_IRAT { template (present) ALERTINGul cr_Alert_Common(template TI p_TI) := { /* @status APPROVED (LTE_IRAT, SSNITZ) */ ti := p_TI, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??000001'B, facility := cr_Facility_Any ifpresent, userUser := cr_UserUserAny ifpresent, @@ -3288,7 +3575,7 @@ module NAS_24008Templates_IRAT { template (present) AUTHENTICATION_AND_CIPHERING_FAILURE cr_AuthAndCiphFailure_Common(template (present) RejCau p_Cause := ?, template AuthenticationFailureParameter p_AuthFailParam := cr_AuthFailParam_Any ifpresent) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, msgType := '00011100'B, @@ -3296,23 +3583,23 @@ module NAS_24008Templates_IRAT { authFailurePar := p_AuthFailParam }; - template (value) DISCONNECTdl cs_Disconnect_Common(template (value) TI p_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DISCONNECTdl cs_Disconnect_Common(template (value) TI p_Ti, template (omit) FacilityIE p_Facility := omit ) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ Ti := p_Ti, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '00100101'B, cau := cs_CauNormCallClear, - facility := omit, + facility := p_Facility, // @sic R5s150240 sic@ progInd := omit, userUser := omit, allowedAction := omit }; template (value) RELEASECOMPLETE cs_RelCmpl_Common(template (value) TI p_Ti, - B4_Type p_PD := '0011'B, // Call related SS + ProtocolDiscriminator p_PD := tsc_PD_CC, // Call related SS template (omit) Cau p_Cau := omit, template (omit) FacilityIE p_Facility := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ti := p_Ti, protocolDiscriminator := p_PD, msgType := '00101010'B, @@ -3323,9 +3610,9 @@ module NAS_24008Templates_IRAT { }; template (present) RELEASEul cr_Rel_Common(template TI p_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ti := p_Ti, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??101101'B, cau := cr_CauAny ifpresent, cau2 := cr_CauAny ifpresent, @@ -3337,16 +3624,16 @@ module NAS_24008Templates_IRAT { //---------------------------------------------------------------------------- template (present) SETUPul cr_SetupMO_Common := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ ti := cr_TI_MO, - cC_ProtocolDiscriminator := '0011'B, + cC_ProtocolDiscriminator := tsc_PD_CC, msgType := '??000101'B, repeatInd := cr_RepeatInd ifpresent, bcap1 := cr_BcapAnyMO, bcap2 := cr_BcapAnyMO ifpresent, facility := cr_Facility_Any ifpresent, cgps := cr_CGPS_Any ifpresent, - cdpn := cr_CDPN_Any, + cdpn := cr_CDPN, cdps := cr_CDPS_Any ifpresent, llcRepeatInd := cr_RepeatInd ifpresent, llc1 := cr_LLC_Any ifpresent, @@ -3370,7 +3657,7 @@ module NAS_24008Templates_IRAT { template (present) SETUPul cdr_SetupMO_Speech_Common(template (present) Bcap p_Bcap) modifies cr_SetupMO_Common := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ repeatInd := omit, bcap1 := p_Bcap, bcap2 := omit @@ -3398,16 +3685,18 @@ module NAS_24008Templates_IRAT { }; template (value) DEACTIVATEPDPCONTEXTREQUEST cs_DeactPdpContextReqMt(TI p_TI, - CauseValue p_CauseValue := tsc_SM_CauseValue_RegularDeactivation) := + CauseValue p_CauseValue := tsc_SM_CauseValue_RegularDeactivation, + template (omit) TearDwnInd p_TearDwnInd := cs_TearDwnInd) := { /* @status APPROVED (UTRAN) */ ti := p_TI, sM_ProtocolDiscriminator := tsc_SMPD, msgType := '01000110'B, sM_Cause := cs_SM_Cause(p_CauseValue), - tearDwnInd := cs_TearDwnInd, + tearDwnInd := p_TearDwnInd, // @sic R5s150015 sic@ protocolConfOpts := omit, mBMS_ProtocolConfOpts := omit, - t3396Value := omit // @sic R5s130195 Baseline Moving sic@ + t3396Value := omit, // @sic R5s130195 Baseline Moving sic@ + wlanOffloadInd := omit // @sic R5s150329 Baseline Moving sic@ */ }; template (value) DETACHACCEPTMO cs_DetachAcc := @@ -3419,4 +3708,52 @@ module NAS_24008Templates_IRAT { forceToStandby := cs_ForceToStandby('000'B) // Force to standby not indicated }; + template (present) STOPDTMF cr_StopDTMF(template (present) TI p_TI):= + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + ti := p_TI, + cC_ProtocolDiscriminator := tsc_PD_CC, + msgType := '??110001'B + }; + + template (present) STARTDTMF cr_StartDTMF(template (present) TI p_TI, + template (present) KeypadFacility p_KPF):= + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + ti := p_TI, + cC_ProtocolDiscriminator := tsc_PD_CC, + msgType := '??110101'B, + kpf := p_KPF + }; + + template (value) STOPDTMFACKNOWLEDGE cs_StopDTMFAck(template (value) TI p_TI):= + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + ti := p_TI, + cC_ProtocolDiscriminator := tsc_PD_CC, + msgType := '00110010'B + }; + + template (value) STARTDTMFACKNOWLEDGE cs_StartDTMFAck(template (value) TI p_TI, + KeypadFacility p_KPF) := + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + ti := p_TI, + cC_ProtocolDiscriminator := tsc_PD_CC, + msgType := '00110110'B, + kpf := p_KPF + }; + + //---------------------------------------------------------------------------- + template (present) HOLD cr_Hold(template (present) TI p_TI) := + { /* @status APPROVED (SSNITZ) */ + ti := p_TI, + cC_ProtocolDiscriminator := tsc_PD_CC, + msgType := '??011000'B + }; + + //---------------------------------------------------------------------------- + template (value) HOLDACKNOWLEDGE cs_HoldAck(template (value) TI p_TI) := + { /* @status APPROVED (SSNITZ) */ + ti := p_TI, + cC_ProtocolDiscriminator := tsc_PD_CC, + msgType := '00011001'B + }; + } diff --git a/LTE_A_IWD_14wk37/Common/IRAT/NAS_24008TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/NAS_24008TypeDefs.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/IRAT/NAS_24008TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/NAS_24008TypeDefs.ttcn index 90b023f..f0e7a06 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/NAS_24008TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/NAS_24008TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-16 17:43:09 +0200 (Wed, 16 Jul 2014) $ -// $Rev: 11833 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 16:58:12 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13504 $ /******************************************************************************/ module NAS_24008TypeDefs { @@ -832,9 +832,7 @@ type record SingleAccessCap { // 24.008, 10.5.5.12a B1_Type modulationBasedMultiSlot optional, // @sic R5s130350 sic@ B1_Type mask5 optional, // @sic R5s130350 sic@ B2_Type highMultislotCap optional, // not present if mask5 = 0 - B1_Type mask6 optional, // @sic R5s130350 sic@ - B4_Type gERANIuModeCapLength optional, // not present if mask6 = 0 - B1_Type fLOIuCap optional, // not present if mask6 = 0 + B1_Type spare optional, // @sic R5s130350, R5s150329 Baseline Moving sic@ B2_Type gmskMultislotPwrProfile optional, // @sic R5s130350 sic@ B2_Type psk8MultislotPwrProfile optional, // @sic R5s130350 sic@ B1_Type multiTBFCap optional, // @sic R5s130350 sic@ @@ -873,7 +871,14 @@ type record SingleAccessCap { // 24.008, 10.5.5.12a B1_Type fastDLFreqSwitchingCap optional, // @sic R5s120178 Baseline Moving sic@ B2_Type tighterCap optional, // @sic R5s120178 Baseline Moving sic@ B1_Type fanrCap optional, // @sic R5s130195 Baseline Moving sic@ - B1_Type ipaCap optional // @sic R5s130195 Baseline Moving sic@ + B1_Type ipaCap optional, // @sic R5s130195 Baseline Moving sic@ + B1_Type geranNwkSharing optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type eutraWidebandRSRQMeas optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type utraMultipleFreqBandInd optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type eutraMultipleFreqBandInd optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type mask11 optional, // @sic R5s150329 Baseline Moving sic@ + DLMC_Cap dlmcCap optional, // not present if mask11 = 0 @sic R5s150329 Baseline Moving sic@ + B1_Type xtdTSCSetCap optional // @sic R5s150329 Baseline Moving sic@ }; type record MultiSlotCap { @@ -906,6 +911,15 @@ type record AddMS_RadioAccessCap { B2_Type powerClass8PSK optional // not present if prefix = 0 }; +type record DLMC_Cap { + B1_Type mask, + B2_Type nonContiguousIntraBandReception optional, // not present if mask = 0 + B1_Type interBandReception optional, // not present if mask = 0 + B2_Type maxBandwidth, + B6_Type maxDLTimeslots, + B3_Type maxDLCarriers +}; + // ============================================================================= // Structured Type Definition // 24.007, clause 10.5.6.2 @@ -1201,7 +1215,8 @@ type record ATTACHACCEPT { GPRS_Timer2 t3319Value optional, // O 3 octets TLV IEI = 37 GPRS_Timer2 t3323Value optional, // O 3 octets TLV IEI = 38 GPRS_Timer3 t3312ExtdValue optional, /* cl. 10.5.7.4a O TLV 3 IEI=0x39 @sic R5s120178 Baseline Moving sic@*/ - AddNtwFeatureSupport addNtwFeatureSupport optional // O 3 octet, TLV IEI = 66 @sic R5s130195 Baseline Moving sic@ + AddNtwFeatureSupport addNtwFeatureSupport optional, // O 3 octet, TLV IEI = 66 @sic R5s130195 Baseline Moving sic@ + GPRS_Timer2 t3324Value optional /* cl. 10.5.7.4 O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1260,7 +1275,9 @@ type record ATTACHREQUEST { MS_NetworkFeatureSupport msNetworkFeatureSupport optional, /* cl. 10.5.1.15 O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ LocAreaId2 oldLAI optional, /* cl. 10.5.5.30 O TLV 7 IEI=0x14 @sic R5s120178 Baseline Moving sic@*/ AdditionalUpdateType addUpdType optional, /* 24.301 cl. 9.9.3.0B O TV 1 IEI=0xF @sic R5s130195 Baseline Moving sic@*/ - NwkResourceId tmsiBasedNRIContainer optional /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + NwkResourceId tmsiBasedNRIContainer optional, /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional, /* cl. 10.5.7.4 O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ + GPRS_Timer3 t3312ExtdValue optional /* cl. 10.5.7.4a O TLV 3 IEI=0x39 @sic R5s150329 Baseline Moving sic@*/ }; // ============================================================================= @@ -1362,7 +1379,8 @@ type record DEACTIVATEPDPCONTEXTREQUEST { TearDwnInd tearDwnInd optional, // O TV 1 octets IEI = 9- ProtocolConfigOptions protocolConfOpts optional, // O TLV 3-253 IEI = 27 MBMS_ProtoCfgOpt mBMS_ProtocolConfOpts optional, // O TLV 3-253 IEI = 35 - GPRS_Timer3 t3396Value optional /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer3 t3396Value optional, /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 10.5.6.20 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1451,7 +1469,9 @@ type record ROUTINGAREAUPDATEREQUEST { MS_NetworkFeatureSupport msNetworkFeatureSupport optional, /* cl. 10.5.1.15 O TV 1 IEI=0xC- @sic R5s120178 Baseline Moving sic@*/ LocAreaId2 oldLAI optional, /* cl. 10.5.5.30 O TLV 7 IEI=0x14 @sic R5s120178 Baseline Moving sic@*/ AdditionalUpdateType addUpdType optional, /* 24.301 cl. 9.9.3.0B O TV 1 IEI=0xF @sic R5s130195 Baseline Moving sic@*/ - NwkResourceId tmsiBasedNRIContainer optional /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + NwkResourceId tmsiBasedNRIContainer optional, /* cl. 10.5.5.31 O TLV 4 IEI=0x10 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer2 t3324Value optional, /* cl. 10.5.7.4 O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ + GPRS_Timer3 t3312ExtdValue optional /* cl. 10.5.7.4a O TLV 3 IEI=0x39 @sic R5s150329 Baseline Moving sic@*/ }; // ============================================================================= @@ -1538,7 +1558,8 @@ type record ACTIVATEPDPCONTEXTREJECT { MessageType msgType, // message type SM_Cause smCause, // V OCTETSTRING [1] ProtocolConfigOptions protocolConfOpts optional, // O TLV 3-253 IEI = 27 - GPRS_Timer3 t3396Value optional /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s130195 Baseline Moving sic@*/ + GPRS_Timer3 backOffTimerValue optional, /* cl. 10.5.7.4a O TLV 3 IEI=0x37 @sic R5s150329 Baseline Moving sic@ Was T3396 Value*/ + ReAttemptIndicator reattemptInd optional /* cl. 10.5.6.5A O TLV 3 IEI=0x6B @sic R5s150329 Baseline Moving sic@*/ }; @@ -1556,7 +1577,8 @@ type record REQUESTSECONDARYPDPCONTEXTACTIVATIONdl { QualityOfService requiredQoS, LinkedTI_lv linkedTI, TrafficFlowTemplate tft optional, - ProtocolConfigOptions protocolConfOpts optional + ProtocolConfigOptions protocolConfOpts optional, + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 10.5.6.20 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1593,7 +1615,8 @@ type record ACTIVATESECONDARYPDPCONTEXTACCEPTdl { B4_Type spare, RadioPriority radioPriority, PktFlowId pktFlowIdentifier optional, - ProtocolConfigOptions protocolConfOpts optional + ProtocolConfigOptions protocolConfOpts optional, + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 10.5.6.20 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1824,7 +1847,8 @@ type record ROUTINGAREAUPDATEACCEPT { GPRS_Timer2 t3319Value optional, // O TLV [3] IEI = 37 GPRS_Timer2 t3323Value optional, // O TLV [3] IEI = 38 GPRS_Timer3 t3312ExtdValue optional, /* cl. 10.5.7.4a O TLV 3 IEI=0x39 @sic R5s120178 Baseline Moving sic@*/ - AddNtwFeatureSupport addNtwFeatureSupport optional // O 3 octet, TLV IEI = 66 @sic R5s130195 Baseline Moving sic@ + AddNtwFeatureSupport addNtwFeatureSupport optional, // O 3 octet, TLV IEI = 66 @sic R5s130195 Baseline Moving sic@ + GPRS_Timer2 t3324Value optional /* cl. 10.5.7.4 O TLV 3 IEI=0x6A @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1928,7 +1952,8 @@ type record MODIFYPDPCONTEXTACCEPT_dl { LLC_SAPI negotiatedLLC_SAPI optional, // O TV [2] IEI = 32 RadioPriority newRadioPriority optional, // O V [1] IEI = 8 PacketFlowIdentifier pKT_FlowIdentifier optional, // O TLV [3] IEI = 34 - ProtocolConfigOptions protocolConfOpts optional // O TLV [3-253] IEI = 27 + ProtocolConfigOptions protocolConfOpts optional, // O TLV [3-253] IEI = 27 + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 10.5.6.20 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1948,7 +1973,8 @@ type record MODIFYPDPCONTEXTREQUEST_dl { PktDataProtoAddr pDP_Addr optional, // O TLV [4-20] IEI = 2B PacketFlowIdentifier pKT_FlowIdentifier optional, // O TLV [3] IEI = 34 ProtocolConfigOptions protocolConfOpts optional, // O TLV [3-253] IEI = 27 - TrafficFlowTemplate tft optional // O TLV [3-257] IEI = 36 + TrafficFlowTemplate tft optional, // O TLV [3-257] IEI = 36 + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 10.5.6.20 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -1986,7 +2012,8 @@ type record ACTIVATEPDPCONTEXTACCEPTdl { ProtocolConfigOptions protocolConfOpts optional, // O TLV [3-253] IEI = 27 PacketFlowIdentifier pktFlowID optional, // O TLV [3] IEI = 34 SM_Cause2 smCause optional, // O TLV [3] IEI = 39 - ConnectivityType connectivityType optional /* cl. 10.5.6.19 O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + ConnectivityType connectivityType optional, /* cl. 10.5.6.19 O TV 1 IEI=0xB- @sic R5s120178 Baseline Moving sic@*/ + WLANOffloadAcceptability wlanOffloadInd optional /* cl. 10.5.6.20 O TV 1 IEI=0xC @sic R5s150329 Baseline Moving sic@ */ }; // ============================================================================= @@ -2316,4 +2343,57 @@ type record RETRIEVEREJECT { Cau cause // cause M LV [3-31] }; +// ============================================================================= +// Structured Type Definition +// Keypad Facility +// 3G TS 24.008 cl. 10.5.4.17 +// ----------------------------------------------------------------------------- +type record KeypadFacility { + IEI8_Type iei, // '00101100'B + B1_Type spareBit, + B7_Type keyInfo // keypad information +}; + +// ============================================================================= +// PDU Type Definition +// START DTMF ue/ms -> ntw 3GPP TS 24.008 clause 9.3.24 +// ----------------------------------------------------------------------------- +type record STARTDTMF { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator cC_ProtocolDiscriminator, // CC protocol discriminator BITSTRING [4] + MessageType msgType, + KeypadFacility kpf // keypad facility +} + +// ============================================================================= +// PDU Type Definition +// START DTMF ACKNOWLEDGE ntw -> ue 3GPP TS 24.008 clause 9.3.25 +// ----------------------------------------------------------------------------- +type record STARTDTMFACKNOWLEDGE { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator cC_ProtocolDiscriminator, // CC protocol discriminator BITSTRING [4] + MessageType msgType, + KeypadFacility kpf // keypad facility +} + +// ============================================================================= +// PDU Type Definition +// STOP DTMF ue/ms -> ntw 3GPP TS 24.008 clause 9.3.29 +// ----------------------------------------------------------------------------- +type record STOPDTMF { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator cC_ProtocolDiscriminator, // CC protocol discriminator BITSTRING [4] + MessageType msgType +} + +// ============================================================================= +// PDU Type Definition +// STOP DTMF ACKNOWLEDGE ntw -> ue 3GPP TS 24.008 clause 9.3.30 +// ----------------------------------------------------------------------------- +type record STOPDTMFACKNOWLEDGE { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator cC_ProtocolDiscriminator, // CC protocol discriminator BITSTRING [4] + MessageType msgType +} + } with { encode "NAS Types"} diff --git a/LTE_A_IWD_14wk37/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn similarity index 79% rename from LTE_A_IWD_14wk37/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn index 543abd6..05d1735 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/UTRANGERAN_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 11:05:29 +0200 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module UTRANGERAN_CommonFunctions { @@ -17,19 +17,45 @@ module UTRANGERAN_CommonFunctions { import from NAS_24008Templates_IRAT all; import from Parameters all; import from CommonIP all; + import from IMS_CommonDefs all; //---------------------------------------------------------------------------- type enumerated UTRAN_GERAN_Type {UTRAN_GERAN, UTRAN_Only}; - type enumerated UTRAN_GERAN_ATTACH_Type {Combined, PS_Only, NotSpecified}; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type enumerated UTRAN_GERAN_ATTACH_Type {Combined, PS_Only, NotSpecified}; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + const O16_Type tsc_NonceMSC := '112233445566778899AABBCCDDEEFF00'O ; /* @status APPROVED (LTE_A, LTE_IRAT) + @sic R5s150704 Can be changed to pixit sic@ */ //---------------------------------------------------------------------------- + + /* + * @desc See TS 24.237 D.5.3.3 ATGW transfer details + * @return octetstring + * @status APPROVED (LTE_A) + */ + function f_Encode_ATGWTransferDetails () return octetstring + { + var octetstring v_ImsInfo := '00'O; + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(PDN_1); // @sic R5-151776 sic@ + + if ( pc_IPv6 ) { + v_ImsInfo := '01'O; + v_ImsInfo := v_ImsInfo & int2oct(tsc_IMS_MediaPort_M1,2); + v_ImsInfo := v_ImsInfo & f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.Remote_IPAddressIPv6); //ATGW + } else if ( pc_IPv4 ) { + v_ImsInfo := '00'O; + v_ImsInfo := v_ImsInfo & int2oct(tsc_IMS_MediaPort_M1,2); + v_ImsInfo := v_ImsInfo & f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.Remote_IPAddressIPv4); //ATGW + } + return v_ImsInfo; + } /* * @desc PktDataProtoAddr TS 24.008 clause 10.5.6.4 (TV version IEI is omit) * @param p_IPallocationViaNas * @return template (value) PktDataProtoAddr - * @status APPROVED (LTE_IRAT, UTRAN) + * @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function f_UG_GetPktDataProtoAddr (boolean p_IPallocationViaNas) return template (value) PktDataProtoAddr { /* @sic R5s130362 - MCC160 Implementation: tsc_PDN_AddressInfo sic@ */ @@ -71,7 +97,7 @@ module UTRANGERAN_CommonFunctions { * @desc Converts a PLMN ID from ASN.1 to NAS representation. * @param p_PlmnId .. PLMN ID as defined in UTRAN RRC ASN.1. * @return NAS_PlmnId .. NAS representation of the PLMN ID (O3_Type) - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_U_Asn2Nas_PlmnId(PLMN_Identity p_PlmnId) return NAS_PlmnId { // This is a copy of the EUTRAN function (f_Asn2Nas_PlmnId), but this version will use the UTRAN ASN @@ -127,7 +153,7 @@ module UTRANGERAN_CommonFunctions { * @desc to calculate timer tolerance acc. to 34.108 cl. 4.2.3 * @param p_Timer * @return float - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UG_GetTimerTolerance(float p_Timer) return float { @@ -147,7 +173,7 @@ module UTRANGERAN_CommonFunctions { * @desc to calculate lower bound of timer tolerance acc. to 34.108 cl. 4.2.3 * @param p_Timer * @return float - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, SSNITZ, UTRAN) */ function f_UG_SetTimerToleranceMin(float p_Timer) return float { @@ -163,7 +189,7 @@ module UTRANGERAN_CommonFunctions { * @desc to calculate upper bound of timer tolerance acc. to 34.108 cl. 4.2.3 * @param p_Timer * @return float - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UG_SetTimerToleranceMax(float p_Timer) return float { @@ -176,7 +202,7 @@ module UTRANGERAN_CommonFunctions { * @param p_RauReq * @param p_NewValueFor000 (default value: '000'B) * @return B3_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UG_RauReq_GetUpdateValueForRauAcc(ROUTINGAREAUPDATEREQUEST p_RauReq, B3_Type p_NewValueFor000 := '000'B) return B3_Type diff --git a/LTE_A_IWD_14wk37/Common/IRAT/UTRAN_CapabilityFunctions.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/UTRAN_CapabilityFunctions.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/IRAT/UTRAN_CapabilityFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/UTRAN_CapabilityFunctions.ttcn index 4e441bb..1eafbe1 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/UTRAN_CapabilityFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/UTRAN_CapabilityFunctions.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-05-24 23:07:55 +0200 (Sat, 24 May 2014) $ // $Rev: 11321 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn index a9f6290..7ac3a19 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/UTRAN_CapabilityFunctions_IRAT.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 23:45:59 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12082 $ +// @version: IWD_15wk38 +// $Date: 2015-08-31 12:38:14 +0200 (Mon, 31 Aug 2015) $ +// $Rev: 14128 $ /******************************************************************************/ module UTRAN_CapabilityFunctions_IRAT { @@ -299,9 +299,9 @@ module UTRAN_CapabilityFunctions_IRAT { dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_TDD, ul_DPCH_Info := cs_UL_DPCH_64k_PS_HANDOVER_TDD, //@sic R5s140152 R5-142431 sic@ ul_EDCH_Information := omit, - dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_TDD(cs_HS_SCCH_Info_TDD, cs_HS_PDSCH_Midamble_Configuration_TDD128),//FFS - check values + dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_TDD(cs_HS_SCCH_Info_TDD, cs_HS_PDSCH_Midamble_Configuration_TDD128), dl_CommonInformation := cs_DL_CommonInfo_r8_TDD, - dl_InformationPerRL_List := cs_DL_InformationPerRL_r7_TDD(p_CellParametersID, cs_DL_DPCH_InfoPerRL_SRB_TDD),//ffs - check values + dl_InformationPerRL_List := cs_DL_InformationPerRL_r7_TDD(p_CellParametersID, cs_DL_DPCH_InfoPerRL_SRB_TDD), frequencyInfo := p_FrequencyInfo, multi_frequencyInfo := omit }; @@ -860,14 +860,52 @@ module UTRAN_CapabilityFunctions_IRAT { * @desc Function to convert the UE operation mode into a charstring (to be passed to the MMI function) * @param p_OperationMode * @return charstring + * @status APPROVED (UTRAN) */ - function f_U_ConvertOperationMode (UE_OperationMode p_OperationMode) return charstring - { - if (p_OperationMode == opModeA) { - return "A"; - } else { - return "C"; + function f_U_ConvertOperationMode(UE_OperationMode p_OperationMode) return charstring + { + if (p_OperationMode == opModeA) { + return "A"; + } else { + return "C"; + } + } + + /* + * @desc Check that the given UTRAN band is supported in the PICS + * Check done against PICS only - return true if the band PICS is true + * @param p_UTRAN_BandToCheck + *@return boolean + * @status + */ + function f_UTRAN_CheckSupportedBand_PICS ( integer p_UTRAN_BandToCheck) return boolean + { + var boolean v_CheckBandPICS := false; + + select (p_UTRAN_BandToCheck) { + case(1) { if ( pc_Band1_Supp) { v_CheckBandPICS := true; } } + case(2) { if ( pc_Band2_Supp) { v_CheckBandPICS := true; } } + case(3) { if ( pc_Band3_Supp) { v_CheckBandPICS := true; } } + case(4) { if ( pc_Band4_Supp) { v_CheckBandPICS := true; } } + case(5) { if ( pc_Band5_Supp) { v_CheckBandPICS := true; } } + case(6) { if ( pc_Band6_Supp) { v_CheckBandPICS := true; } } + case(7) { if ( pc_Band7_Supp) { v_CheckBandPICS := true; } } + case(8) { if ( pc_Band8_Supp) { v_CheckBandPICS := true; } } + case(9) { if ( pc_Band9_Supp) { v_CheckBandPICS := true; } } + case(10) { if ( pc_Band10_Supp) { v_CheckBandPICS := true; } } + case(11) { if ( pc_Band11_Supp) { v_CheckBandPICS := true; } } + case(12) { if ( pc_Band12_Supp) { v_CheckBandPICS := true; } } + case(13) { if ( pc_Band13_Supp) { v_CheckBandPICS := true; } } + case(14) { if ( pc_Band14_Supp) { v_CheckBandPICS := true; } } + case(19) { if ( pc_Band19_Supp) { v_CheckBandPICS := true; } } + case(20) { if ( pc_Band20_Supp) { v_CheckBandPICS := true; } } + case(21) { if ( pc_Band21_Supp) { v_CheckBandPICS := true; } } + case(22) { if ( pc_Band22_Supp) { v_CheckBandPICS := true; } } + case(25) { if ( pc_Band25_Supp) { v_CheckBandPICS := true; } } + case(26) { if ( pc_Band26_Supp) { v_CheckBandPICS := true; } } + case(32) { if ( pc_Band32_Supp) { v_CheckBandPICS := true; } } + case else { FatalError (__FILE__, __LINE__, "invalid band"); } } - } - + return v_CheckBandPICS; + } } diff --git a/LTE_A_IWD_14wk37/Common/IRAT/UTRAN_SRVCC.ttcn b/LTE_A_IWD_15wk38/Common/IRAT/UTRAN_SRVCC.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/IRAT/UTRAN_SRVCC.ttcn rename to LTE_A_IWD_15wk38/Common/IRAT/UTRAN_SRVCC.ttcn index d6e6e79..48967c3 100644 --- a/LTE_A_IWD_14wk37/Common/IRAT/UTRAN_SRVCC.ttcn +++ b/LTE_A_IWD_15wk38/Common/IRAT/UTRAN_SRVCC.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-06-07 00:13:03 +0200 (Sat, 07 Jun 2014) $ // $Rev: 11664 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/MTC/MTC_Base.ttcn b/LTE_A_IWD_15wk38/Common/MTC/MTC_Base.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/MTC/MTC_Base.ttcn rename to LTE_A_IWD_15wk38/Common/MTC/MTC_Base.ttcn index 68331df..c3fbc2b 100644 --- a/LTE_A_IWD_14wk37/Common/MTC/MTC_Base.ttcn +++ b/LTE_A_IWD_15wk38/Common/MTC/MTC_Base.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-04 15:12:03 +0200 (Thu, 04 Sep 2014) $ -// $Rev: 12027 $ +// @version: IWD_15wk38 +// $Date: 2015-06-10 16:35:18 +0200 (Wed, 10 Jun 2015) $ +// $Rev: 13728 $ /******************************************************************************/ module MTC_Base { @@ -35,8 +35,7 @@ module MTC_Base { type record UT_Ctrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integer CoordPortIndex, /* index of the coordination port to which a confirmation shall be sent back; tsc_UT_NoCnfExpected when no confimation is expected */ - boolean UE_SwitchedOn, - boolean MultipleCnf // @sic R5s140316 sic@ + boolean UE_SwitchedOn }; //-------------------------------------------------------------------------- @@ -72,29 +71,8 @@ module MTC_Base { { f_MTC_BASE_CoordPortIndex_Set(tsc_UT_NoCnfExpected); vc_UT_Ctrl.UE_SwitchedOn := false; - vc_UT_Ctrl.MultipleCnf := false; // @sic R5s140316 sic@ } - /* - * @desc Sets the global upper tester flag MultipleCnf - * @param p_Flag - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_MTC_BASE_MultipleCnf_Set(boolean p_Flag) runs on MTC_BASE - { - vc_UT_Ctrl.MultipleCnf := p_Flag; - } - - /* - * @desc Gets the global upper tester flag MultipleCnf - * @return boolean - * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_MTC_BASE_MultipleCnf_Get() runs on MTC_BASE return boolean - { - return vc_UT_Ctrl.MultipleCnf; - } - /* * @desc set index of the coordination port from which the latest AT/MMI commond has been received to send back the confirmation * @param p_CoordPortIndex diff --git a/LTE_A_IWD_14wk37/Common/MTC/MTC_Component_LTE_IRAT.ttcn b/LTE_A_IWD_15wk38/Common/MTC/MTC_Component_LTE_IRAT.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/MTC/MTC_Component_LTE_IRAT.ttcn rename to LTE_A_IWD_15wk38/Common/MTC/MTC_Component_LTE_IRAT.ttcn index 01484df..1e08f84 100644 --- a/LTE_A_IWD_14wk37/Common/MTC/MTC_Component_LTE_IRAT.ttcn +++ b/LTE_A_IWD_15wk38/Common/MTC/MTC_Component_LTE_IRAT.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-10-19 22:32:42 +0200 (Sat, 19 Oct 2013) $ // $Rev: 9788 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/MTC/MTC_Main_LTE_IRAT.ttcn b/LTE_A_IWD_15wk38/Common/MTC/MTC_Main_LTE_IRAT.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/MTC/MTC_Main_LTE_IRAT.ttcn rename to LTE_A_IWD_15wk38/Common/MTC/MTC_Main_LTE_IRAT.ttcn index 5d01fb4..458926d 100644 --- a/LTE_A_IWD_14wk37/Common/MTC/MTC_Main_LTE_IRAT.ttcn +++ b/LTE_A_IWD_15wk38/Common/MTC/MTC_Main_LTE_IRAT.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-03 14:17:49 +0200 (Tue, 03 Jun 2014) $ -// $Rev: 11479 $ +// @version: IWD_15wk38 +// $Date: 2015-06-01 18:14:24 +0200 (Mon, 01 Jun 2015) $ +// $Rev: 13618 $ /******************************************************************************/ module MTC_Main_LTE_IRAT { @@ -92,13 +92,22 @@ module MTC_Main_LTE_IRAT { connect(v_ImsPdn1:IPCAN, p_Eutra:IMS[tsc_Index_PDN1]); connect(v_ImsPdn1:MMI, mtc:PTC_Ut[tsc_MTC_PortIndex_IMS1]); /* @sic R5-134070: generic handling of UT commands for IMS PTC as well as for the other PTCs sic@ */ - if (p_ImsPdn1 == null) { + if (p_ImsPdn1 == null) { /* => we have no test case specific IMS implementation */ v_ImsPdn1.start(f_IMS_DefaultHandler()); - } else if (p_Utran != null) { /* @sic R5-142919: sic@ - when we have test case specific IMS behaviour and there is a UTRAN PTC => we need coordination of IMS and UTRAN */ + } + if (p_Utran != null) { /* @sic R5-142919: sic@ + when we have test case specific IMS behaviour and there is a UTRAN PTC => we need coordination of IMS and UTRAN + @sic R5s150057 change 1: sic@ + to allow IMS de-registration on UTRAN at the end of test cases UTRAN shall always be connected to the IMS PTC */ connect(v_ImsPdn1:OtherIPCAN, p_Utran:IMS[tsc_Index_PDN1]); } + if (p_Geran != null) { /* @sic R5-152083: sic@ + when we have test case specific IMS behaviour and there is a GERAN PTC => we need coordination of IMS and GERAN + */ + connect(v_ImsPdn1:OtherIPCAN, p_Geran:IMS[tsc_Index_PDN1]); + } + // IMS for PDN (emergency call) if (p_ImsPdn2 != null) { // test case specific IMS handling for PDN2 connect(p_ImsPdn2:IMS_CTRL, v_IP_PTC:IMS_CTRL[tsc_Index_PDN2]); diff --git a/LTE_A_IWD_14wk37/Common/MTC/MTC_UpperTester.ttcn b/LTE_A_IWD_15wk38/Common/MTC/MTC_UpperTester.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/Common/MTC/MTC_UpperTester.ttcn rename to LTE_A_IWD_15wk38/Common/MTC/MTC_UpperTester.ttcn index 7664612..407b856 100644 --- a/LTE_A_IWD_14wk37/Common/MTC/MTC_UpperTester.ttcn +++ b/LTE_A_IWD_15wk38/Common/MTC/MTC_UpperTester.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 10:55:39 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12185 $ +// @version: IWD_15wk38 +// $Date: 2015-09-10 12:05:23 +0200 (Thu, 10 Sep 2015) $ +// $Rev: 14263 $ /******************************************************************************/ //------------------------------------------------------------------------------ //* History: @@ -50,10 +50,7 @@ module MTC_UpperTester { if (f_UT_CommandRequiresCnf(v_CnfRequired)) { // store index of coordination to be used for sending back the confirmation f_MTC_BASE_CoordPortIndex_Set(p_CoordPortIndex); - if (v_CnfRequired == MULTIPLE_CNF) { // @sic R5s140316 sic@ - f_MTC_BASE_MultipleCnf_Set (not f_MTC_BASE_MultipleCnf_Get()); - } - } + } // @sic R5-151792 sic@ select (p_UT_Req.Cmd) { case (POWER_OFF) { v_UeToBeSwitchedOn := false; @@ -89,6 +86,9 @@ module MTC_UpperTester { case (REMOVE_USIM) { v_SystemCmd := cs_MMI_REMOVE_USIM; } + case (INVITE_TO_CONFERENCE) { + v_SystemCmd := cs_MMI_INVITE_TO_CONFERENCE(v_ParamList); + } case (REQUEST_CALL) { v_SystemCmd := cs_AT_DIAL_CALL (v_ParamListVal[0].Value); } @@ -237,7 +237,13 @@ module MTC_UpperTester { v_SystemCmd := cs_AT_RELEASE_IMS_CALL (v_ParamListVal[0].Value); } case (INITIATE_VIDEO_CALL) { - v_SystemCmd := cs_AT_IMS_VIDEO_CALL (v_ParamListVal[0].Value); + v_SystemCmd := cs_AT_START_IMS_VIDEO_CALL(v_ParamListVal[0].Value, v_ParamListVal[1].Value); + } + case (IMS_CONFIGURE_VIDEO_CALL) { + v_SystemCmd := cs_AT_IMS_CONFIGURE_VIDEO_CALL; + } + case (IMS_MODIFY_CALL) { + v_SystemCmd := cs_AT_IMS_MODIFY_CALL (v_ParamListVal); } case (CLEAR_STORED_ASSISTANCE_DATA) { v_SystemCmd := cs_MMI_CLEAR_STORED_DATA; @@ -254,17 +260,30 @@ module MTC_UpperTester { case (LOCATION_INFO) { v_SystemCmd := cs_MMI_LOCATION_INFO; } - case (LOCATION_MULTIPLE) { - v_CnfRequired := NO_CNF_REQUIRED; // MULTIPLE_CNF is still set, so system will accept any number of CNFs - v_SystemCmd := cs_MMI_LOCATION_MULTIPLE; + case (CNAP_DUMMY) { //@sic R5-151792 sic@ + v_SystemCmd := cs_MMI_CNAP_DUMMY; + } + case (CCFCU_DUMMY) { // @sic R5-151792 sic@ + v_SystemCmd := cs_MMI_CCFCU_DUMMY; } - case (TIMEZONE_MULTIPLE) { - v_CnfRequired := NO_CNF_REQUIRED; // MULTIPLE_CNF is still set, so system will accept any number of CNFs - v_SystemCmd := cs_MMI_TIMEZONE_MULTIPLE; + case (CMTLR_DUMMY) { // @sic R5-151792 sic@ + v_SystemCmd := cs_MMI_CMTLR_DUMMY; + } + case (CTZE_DUMMY) { // @sic R5-151792 sic@ + v_SystemCmd := cs_MMI_CTZE_DUMMY; + } + case (CMWN_DUMMY) { // @sic R5-151792 sic@ + v_SystemCmd := cs_MMI_CMWN_DUMMY; } case (TIMEZONE_SUBSCRIBE) { v_SystemCmd := cs_AT_TIMEZONE_SUBSCRIBE (v_ParamListVal); } + case (TIMEZONE_UPDATE) { + v_SystemCmd := cs_AT_TIMEZONE_UPDATE (v_ParamListVal); + } + case (ACTIVATE_MESSAGE_WAIT_INDICATION) { + v_SystemCmd := cs_AT_ACTIVATE_MESSAGE_WAIT_INDICATION; + } case (HRPD_PDN_CONNECTION) { // @sic R5s120051 sic@ v_SystemCmd := cs_MMI_HRPD_PDN_CONNECTION; } @@ -316,9 +335,6 @@ module MTC_UpperTester { case (REFRESH) { v_SystemCmd := cs_MMI_REFRESH; } - case (REMOVE_VIDEO_CALL) { - v_SystemCmd := cs_MMI_REMOVE_VIDEO_CALL; - } case (CALL_HOLD_RELEASE) { v_SystemCmd := cs_AT_SS_CALL_HOLD("0"); } @@ -486,11 +502,11 @@ module MTC_UpperTester { if (p_ParamList[2].Name == "Password") { v_Cmd := v_Cmd & ",""" & p_ParamList[2].Value & """"; } else { // must be class - v_Cmd := v_Cmd & ",,""" & p_ParamList[2].Value & """"; + v_Cmd := v_Cmd & ",," & p_ParamList[2].Value; // @sic R5s150084 sic@ } } if (ispresent(p_ParamList[3])) { // class - v_Cmd := v_Cmd & ",""" & p_ParamList[3].Value & """"; + v_Cmd := v_Cmd & "," & p_ParamList[3].Value; // @sic R5s150084 sic@ } return v_Cmd; @@ -587,14 +603,14 @@ module MTC_UpperTester { v_Mode := "4"; } } - v_CmdString := "v_Reason,v_Mode,"; + v_CmdString := v_Reason & "," & v_Mode & ","; // @sic R5s150244 sic@ if (p_ParamList[2].Name == "Uri") { - v_CmdString := v_CmdString & "1, 0,"; + v_CmdString := v_CmdString & "1,0,"; // @sic R5s150725 sic@ } else {// number format, national number - v_CmdString := v_CmdString & "2, 145,"; + v_CmdString := v_CmdString & "2,tsc_NumberingPlan_Int,"; // @sic R5s150538 sic@ } - v_CmdString := v_CmdString & p_ParamList[2].Value; // number/Uri + v_CmdString := v_CmdString & """" & p_ParamList[2].Value & """"; // number/Uri @sic R5s150244 sic@ if (ispresent(p_ParamList[3])) { if (p_ParamList[3].Name == "Service") { // need to add only the classx parameter v_CmdString := v_CmdString & "," & p_ParamList[3].Value; @@ -654,10 +670,8 @@ module MTC_UpperTester { if (f_MTC_BASE_IsWaitingForCnf()) { v_CoordPortIndex := f_MTC_BASE_CoordPortIndex_Get(); PTC_Ut[v_CoordPortIndex].send(v_UT_Cnf); - if (not f_MTC_BASE_MultipleCnf_Get ()) { // @sic R5s140316 sic@ - f_MTC_BASE_CoordPortIndex_Set(tsc_UT_NoCnfExpected); - } - } + f_MTC_BASE_CoordPortIndex_Set(tsc_UT_NoCnfExpected); + } // @sic R5-151792 sic@ // else: just discard the CNF } } diff --git a/LTE_A_IWD_14wk37/Common/NAS/NAS_34109TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/NAS/NAS_34109TypeDefs.ttcn similarity index 98% rename from LTE_A_IWD_14wk37/Common/NAS/NAS_34109TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/NAS/NAS_34109TypeDefs.ttcn index 10d1bc5..e09177a 100644 --- a/LTE_A_IWD_14wk37/Common/NAS/NAS_34109TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/NAS/NAS_34109TypeDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-06-12 16:06:56 +0200 (Wed, 12 Jun 2013) $ // $Rev: 8958 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/NAS/NAS_AuthenticationCommon.ttcn b/LTE_A_IWD_15wk38/Common/NAS/NAS_AuthenticationCommon.ttcn similarity index 78% rename from LTE_A_IWD_14wk37/Common/NAS/NAS_AuthenticationCommon.ttcn rename to LTE_A_IWD_15wk38/Common/NAS/NAS_AuthenticationCommon.ttcn index 35f05bf..209a5c6 100644 --- a/LTE_A_IWD_14wk37/Common/NAS/NAS_AuthenticationCommon.ttcn +++ b/LTE_A_IWD_15wk38/Common/NAS/NAS_AuthenticationCommon.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-28 16:53:02 +0200 (Mon, 28 Jul 2014) $ -// $Rev: 11851 $ +// @version: IWD_15wk38 +// $Date: 2015-09-07 11:13:33 +0200 (Mon, 07 Sep 2015) $ +// $Rev: 14196 $ /******************************************************************************/ module NAS_AuthenticationCommon { @@ -19,6 +19,7 @@ module NAS_AuthenticationCommon { B128_Type AUTN, B32_128_Type XRES, B64_Type KcGSM, + B128_Type Kc128, // @sic R5s150121 sic@ B3_Type KeySeq, B128_Type CK, B128_Type IK, @@ -37,12 +38,31 @@ module NAS_AuthenticationCommon { AUTN := tsc_AuthUndefinedB128, XRES := tsc_AuthUndefinedB128, KcGSM := tsc_AuthUndefinedB32 & tsc_AuthUndefinedB32, + Kc128 := tsc_AuthUndefinedB128, // @sic R5s150121 sic@ KeySeq := '111'B, CK := tsc_AuthUndefinedB128, IK := tsc_AuthUndefinedB128, XRESLength := omit // @sic R5s120907 sic@ }; + //---------------------------------------------------------------------------- + /* + * @desc auxiliary function to increment KeySeq and deal with wrap around + * @param p_KeySeq + * @return B3_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_Authentication_IncrementKeySeq(B3_Type p_KeySeq) return B3_Type + { + var B3_Type v_KeySeq := int2bit(((bit2int(p_KeySeq)+1) mod 8), 3); //@sic R5s140298 R5s140503 sic@ + // The mod 8 is used as initial value is 7, hence results in first value of 0. + // But if in a test case authentication is performed 7th time, it becomes 7 which is an undefined value, hence the check below added to avoid it. + if (v_KeySeq == '111'B) { + v_KeySeq := '000'B; + } + return v_KeySeq; + } + //---------------------------------------------------------------------------- /* * @desc Calculation is done according to 34.108, clause 8.1.2 and 33.102, clause 6.8.1.2 @@ -101,8 +121,9 @@ module NAS_AuthenticationCommon { if (p_AuthenticationError == noError) { // ((CK1 XOR CK2) XOR (IK1 XOR IK2)) v_Auth_Params.KcGSM := (substr( v_Auth_Params.CK, 0, 64) xor4b substr( v_Auth_Params.CK, 64, 64)) xor4b (substr( v_Auth_Params.IK, 0, 64) xor4b substr( v_Auth_Params.IK, 64, 64)); - v_Auth_Params.KeySeq := int2bit(((bit2int(v_Auth_Params.KeySeq)+1) mod 7), 3); // @sic R5s140447 sic@ + v_Auth_Params.KeySeq := f_Authentication_IncrementKeySeq(v_Auth_Params.KeySeq); // @sic R5s140894 sic@ + v_Auth_Params.Kc128 := substr (fx_KeyDerivationFunction ( tsc_KDF_HMAC_SHA_256, (v_Auth_Params.CK & v_Auth_Params.IK), '32'O ), 0, 128); // @sic R5s150121, R5s150796 sic@ } - return (v_Auth_Params); + return v_Auth_Params; } } diff --git a/LTE_A_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn b/LTE_A_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn new file mode 100644 index 0000000..a3c00eb --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn @@ -0,0 +1,428 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 14:46:41 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14494 $ +/******************************************************************************/ + +module NAS_AuxiliaryDefsAndFunctions { + + import from CommonDefs all; + import from Parameters all; + import from NAS_CommonTypeDefs all; + import from NAS_CommonTemplates all; + import from CommonIP all; + + //============================================================================ + // Protocol Configuration Options (PCO) + //---------------------------------------------------------------------------- + /* + * @desc Function used to check whether the UE requests in its PCO an address allocation via NAS signalling + * If the UE does not send PCO, then address assignment shall be via DHCP. TS 36.508 table 4.7.3-6. + * @param p_Pco + * @return boolean + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_CheckPCOforIPallocationViaNas(template (omit) ProtocolConfigOptions p_Pco) return boolean + { + var ProtocolConfigOptions v_Pco; + var integer i; + + if (isvalue(p_Pco)) { + v_Pco := valueof (p_Pco); + for (i := 0; i < lengthof(v_Pco.pco); i := i + 1 ) { + if(v_Pco.pco[i].protocolID == '000B'O) { // TS 24.008 clause 10.5.6.3 // @sic R5s090322 sic@ + return false; // @sic R5s090322 sic@ + } + } + } + return true; // @sic R5s090322 sic@ + } + + //------------------------------------ + /* + * @desc Function used to check whether the UE requests a P-CSCF address or DNS server address in its PCO + * If the UE does not support IMS, or doesn't request a P-CSCF address, the function returns the default PCO, PPP + * @param p_ConfigOptionsRX + * @param p_PdnIndex (default value: PDN_1) + * @param p_IgnoreIM_CN_SubsystemSignalingFlag (default value: true) + * @return template (value) NAS_ProtocolConfigOptions_Type + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_NAS_GetProtocolConfigOptionList(NAS_ProtocolConfigOptions_Type p_ConfigOptionsRX, + PDN_Index_Type p_PdnIndex := PDN_1, + boolean p_IgnoreIM_CN_SubsystemSignalingFlag := true) return template (value) NAS_ProtocolConfigOptions_Type + { + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); + var template (value) NAS_ProtocolConfigOptions_Type v_ProtocolContainerList := {}; + var integer v_PcoCnt := 0; + var O2_Type v_ProtocolId; + var octetstring v_Contents; + var integer i; + + for (i := 0; i < lengthof(p_ConfigOptionsRX); i := i + 1) { + + v_ProtocolId := p_ConfigOptionsRX[i].protocolID; + v_Contents := ''O; + + select (v_ProtocolId) { // See 24.008 Table 10.5.154 + case ('0001'O) { // P-CSCF IPv6 address + if (pc_IMS) { + v_Contents := f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.PCSCF_IPAddressIPv6); + } + } + case ('0002'O) { // IM CN Subsystem Signalling Flag, reply with an empty container + if (not p_IgnoreIM_CN_SubsystemSignalingFlag) { + v_ProtocolContainerList[v_PcoCnt] := cs_ProtocolContainer_Common(v_ProtocolId); + v_PcoCnt := v_PcoCnt + 1; + continue; + } + } + case ('0003'O) { // DNS Server IPv6 address + v_Contents := f_Convert_IPv6Addr2OctString(v_PDN_AddressInfo.DNS_ServerAddressIPv6); + } + case ('000C'O) { // P-CSCF IPv4 address + if (pc_IMS) { + v_Contents := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.PCSCF_IPAddressIPv4); + } + } + case ('000D'O) { // DNS Server IPv4 address + v_Contents := f_Convert_IPv4Addr2OctString(v_PDN_AddressInfo.DNS_ServerAddressIPv4); + } + } + + if (lengthof(v_Contents) > 0) { + v_ProtocolContainerList[v_PcoCnt] := cs_ProtocolContainer(v_ProtocolId, v_Contents); + v_PcoCnt := v_PcoCnt + 1; + } + } + return v_ProtocolContainerList; + } + + /* + * @desc wrapper for f_GetDefaultProtocolConfigOptionList + * @param p_Pco + * @param p_PdnIndex (default value: PDN_1) + * @return template (value) ProtocolConfigOptions + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_GetDefaultProtocolConfigOptions(template (omit) ProtocolConfigOptions p_Pco, + PDN_Index_Type p_PdnIndex := PDN_1) return template (value) ProtocolConfigOptions + { /* @sic R5s130362 - MCC160 Implementation sic@ */ + /* @sic R5s141127 change 4 - MCC160 Comments: split into f_GetDefaultProtocolConfigOptions and f_GetDefaultProtocolConfigOptionList sic@ */ + var template (value) NAS_ProtocolConfigOptions_Type v_ProtocolContainerList := {}; + var ProtocolConfigOptions v_ProtocolConfigOptionsRX; + + if (isvalue(p_Pco)) { + v_ProtocolConfigOptionsRX := valueof(p_Pco); + v_ProtocolContainerList := f_NAS_GetProtocolConfigOptionList(v_ProtocolConfigOptionsRX.pco, p_PdnIndex); + } + + return f_NAS_ProtocolConfigOptionsTX(v_ProtocolContainerList); + } + + /* + * @desc Decode APN acc. to TS 23.003 cl. 9.1 and RFC 1035 cl. 4.1.2 + * @param p_APN + * @return Charstring + * @status + */ + function f_DomainName_Decode(octetstring p_APN) return charstring + { + var CharStringList_Type v_LabelList; + var integer v_Length; + var integer i; + var integer k := 0; + + for (i := 0; i < lengthof(p_APN); i := i + 1) { + v_Length := oct2int(p_APN[i]); + v_LabelList[k] := oct2char(substr(p_APN, i+1, v_Length)); + i := i + v_Length; + k := k + 1; + } + + return f_StringJoin(v_LabelList, "."); + } + + /* + * @desc Encode APN acc. to TS 23.003 cl. 9.1 and RFC 1035 cl. 4.1.2 + * @param p_LabelList + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_DomainName_EncodeLabels(CharStringList_Type p_LabelList) return octetstring + { + var octetstring v_EncodedAPN := ''O; + var octetstring v_LabelOctets; + var integer v_Length; + var integer i; + + for (i := 0; i < lengthof(p_LabelList); i := i + 1) { + v_LabelOctets := char2oct(p_LabelList[i]); + v_Length := lengthof(v_LabelOctets); + v_EncodedAPN := v_EncodedAPN & int2oct(v_Length, 1) & v_LabelOctets; + } + return v_EncodedAPN; + } + + /* + * @desc Encode APN acc. to TS 23.003 cl. 9.1 and RFC 1035 cl. 4.1.2 + * @param p_DomainName + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_DomainName_Encode(charstring p_DomainName) return octetstring + { + var CharStringList_Type v_LabelList := f_StringSplit(p_DomainName, {"."}); + return f_DomainName_EncodeLabels(v_LabelList); + } + + //============================================================================ + + //---------------------------------------------------------------------------- + /* + * @desc Convert from IMSI, IMEI or IMEISV of type hexstring to octetstring (to be used in f_Imsi2MobileIdentity, f_Imei2MobileIdentity and f_Imeisv2MobileIdentity) + * @param p_MobileId + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function fl_ImsiImei2Octetstring(hexstring p_MobileId) return octetstring + { + var integer v_Length := lengthof(p_MobileId); + var integer v_Odd := (v_Length rem 2); + var octetstring v_Other := '00'O; + var integer I; + var integer K; + + if (v_Odd == 0) { // If length is even + v_Length := v_Length + 1; + p_MobileId := p_MobileId & 'F'H; // add '1111' on to the end of the IMSI + } + + // Reverse each pair of digits + // First digit is not included as it is treated differently + K:=0; + for (I:=1; I < v_Length - 1; I:=I+2) { + v_Other[K] := hex2oct(p_MobileId[I+1] & p_MobileId[I]); + K := K + 1; + } + + return v_Other; + } + + //---------------------------------------------------------------------------- + /* + * @desc Convert from IMSI of type hexstring to NAS MobileIdentity + * @param p_IMSI + * @return template (value) MobileIdentity + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_Imsi2MobileIdentity(hexstring p_IMSI) return template (value) MobileIdentity + { + var integer v_ImsiLength := lengthof(p_IMSI); + var integer v_Odd := (v_ImsiLength rem 2); + var octetstring v_Other := fl_ImsiImei2Octetstring (p_IMSI); // @sic R5s100092 sic@ + var B4_Type v_FirstDigit := hex2bit(p_IMSI[0]); + var B1_Type v_OddEvenInd := int2bit(v_Odd, 1); + + return cds_MobileIdentityImsi_lv(v_FirstDigit, v_OddEvenInd, v_Other); + } + + //---------------------------------------------------------------------------- + /* + * @desc Convert from IMEI of type hexstring to NAS MobileIdentity + * @param p_IMEI + * @param p_NAS_IdType (default value: tsc_IdType_IMEI) + * @return template (present) MobileIdentity + * @status APPROVED (LTE, LTE_A) + */ + function f_Imei2MobileIdentity(hexstring p_IMEI, + NAS_IdType p_NAS_IdType := tsc_IdType_IMEI) return template (present) MobileIdentity // @sic R5s130758 sic@ + { + var integer v_ImeiLength := lengthof(p_IMEI); + var integer v_Odd := (v_ImeiLength rem 2); + var octetstring v_Other := fl_ImsiImei2Octetstring (p_IMEI); + var B4_Type v_FirstDigit := hex2bit(p_IMEI[0]); + var B1_Type v_OddEvenInd := int2bit(v_Odd, 1); + + return cr_MobileIdentityImei(v_FirstDigit, v_OddEvenInd, v_Other, p_NAS_IdType); // @sic R5s130758 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc Convert from IMEISV of type hexstring to NAS MobileIdentity + * @param p_IMEISV + * @return template (present) MobileIdentity + * @status APPROVED (LTE) + */ + function f_Imeisv2MobileIdentity(hexstring p_IMEISV) return template (present) MobileIdentity + { // @sic R5-131832 sic@ + var integer v_ImeiLength := lengthof(p_IMEISV); + var integer v_Odd := (v_ImeiLength rem 2); + var octetstring v_Other := fl_ImsiImei2Octetstring (p_IMEISV); + var B4_Type v_FirstDigit := hex2bit(p_IMEISV[0]); + var B1_Type v_OddEvenInd := int2bit(v_Odd, 1); + + return cr_MobileIdentityImeisv(v_FirstDigit, v_OddEvenInd, v_Other); + } + + //---------------------------------------------------------------------------- + /* + * @desc Convert from Emergency Number of type charstring to octetstring (to be used in Emergency Number List in e.g. Attach Accept) + * @param p_EmgNum + * @return octetstring + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function fl_EmgNum2Octetstring(hexstring p_EmgNum) return octetstring + { + var integer v_Length := lengthof(p_EmgNum); + var integer v_Odd := (v_Length rem 2); + var octetstring v_Result := '00'O; + var integer I; + var integer K; + + if (v_Odd == 1) { // If length is odd + v_Length := v_Length + 1; + p_EmgNum := p_EmgNum & 'F'H; // add '1111' on to the end of the Emergency Number + } + + // Reverse each pair of digits, note that v_Length is even + K:=0; + for (I:=0; I < v_Length - 1; I:=I+2) { + v_Result[K] := hex2oct(p_EmgNum[I+1] & p_EmgNum[I]); + K := K + 1; + } + + return v_Result; + } + + /* + * @desc To generate an local emergency number list + * @param p_NoOfNums - To specify how many numbers to be included in the list (max = 10) + * @param p_NumList + * @return template (value) EmergNumList + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_Build_EmergNumList(integer p_NoOfNums, + EmergencyNumList p_NumList) return template (value) EmergNumList + { + var integer i; + var template (value) EmergNumList v_EmergNum; + var octetstring v_LocalNum; + var integer v_LocalLength := 0; + var integer v_TotalLength := 0; + var B7_Type v_ServCat; + + v_EmergNum.iei := '34'O; + for (i := 0; i < p_NoOfNums; i:=i+1) { + v_LocalNum := fl_EmgNum2Octetstring (p_NumList[i]); + v_LocalLength := lengthof(v_LocalNum); + if (i/2 > 0) { + v_ServCat := ('00'B & ('00001'B << i)); + } else { + v_ServCat := ('00'B & ('00001'B << i)); + } + v_EmergNum.emergNum[i]:= cs_EmergencyLocalNumber(int2oct(v_LocalLength + 1, 1), + cs_EmergServCat(v_ServCat), + v_LocalNum); + v_TotalLength := v_TotalLength + 2 + v_LocalLength; // 1 octet for v_LocalLength + 1 for SCValue + length of number + } + v_EmergNum.iel := int2oct (v_TotalLength, 1); + return v_EmergNum; + } + + /* + * @desc Generation of a new list of local emergency numbers different from existing ones + * @param p_NoOfNums .. maximum 20 + * @param p_ExistingNums + * @return EmergencyNumList .. numbers of 3 decimal digits each + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) + */ + function f_Get_EmergencyNumList(integer p_NoOfNums, + template (omit) EmergencyNumList p_ExistingNums) return EmergencyNumList + { + var EmergencyNumList v_NewNumbers; + var integer v_Number := 115; // start as implied by LTE test case 11.2.6 @sic R5s141315 sic@ + var boolean v_NumberExists; + var hexstring v_NumberDigits; + var integer i; + + if ( p_NoOfNums > 20 ) { FatalError(__FILE__, __LINE__, "unsupported number of emg nums") }; // max 20 emg nums may be generated + + for (i:=0; i the text between the most inner quotes is returned */ + var charstring v_Expression := p_Expression; + var charstring v_Result; + var template charstring v_ExpectedString := pattern p_ExpectedString; + var boolean v_MatchResult; + var charstring v_CRLF := oct2char('0D'O) & oct2char('0A'O); + + v_Result := regexp(p_AT_Response, v_Expression, p_Group); + + v_MatchResult := match(v_Result, v_ExpectedString); + + if (v_MatchResult == true) { + f_SetVerdict(pass,__FILE__, __LINE__, p_Text); + } else { + f_ErrorLog(__FILE__, __LINE__, v_CRLF & "Value expected: " & p_ExpectedString & v_CRLF & "Value received: " & v_Result); // if anything went wrong, show it + f_SetVerdict(fail,__FILE__, __LINE__, p_Text); + } + } + +} diff --git a/LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn b/LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn new file mode 100644 index 0000000..722a493 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTemplates.ttcn @@ -0,0 +1,1041 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 14:17:18 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14392 $ +/******************************************************************************/ + +module NAS_CommonTemplates { + + import from CommonDefs all; + import from NAS_CommonTypeDefs all; + + //============================================================================== + group NAS_CommonConstants { // Constants being used for NAS_CommonTemplates + + const B1_Type tsc_Spare1 := '0'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B2_Type tsc_Spare2 := '00'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const B3_Type tsc_Spare3 := '000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B4_Type tsc_Spare4 := '0000'B; + const B5_Type tsc_Spare5 := '00000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const B6_Type tsc_Spare6 := '000000'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const B7_Type tsc_Spare7 := '0000000'B; + const B8_Type tsc_Spare8 := '00000000'B; + const SpareHalfOctet tsc_SpareHalfOctet := '0'H; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + const NAS_IdType tsc_IdType_NoId := '000'B; + const NAS_IdType tsc_IdType_IMSI := '001'B; /* suitable for identity type 24.008 cl. 10.5.3.4 and identiy type 2 24.008 cl. 10.5.5.9 + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const NAS_IdType tsc_IdType_IMEI := '010'B; /* suitable for identity type 24.008 cl. 10.5.3.4 and identiy type 2 24.008 cl. 10.5.5.9 + @status APPROVED (LTE, LTE_A) */ + const NAS_IdType tsc_IdType_IMEI_24301 := '011'B; /* suitable for identity type 24.301 cl. 9.9.3.12.1 + @status APPROVED (LTE) */ + const NAS_IdType tsc_IdType_IMEISV := '011'B; /* @sic R5s130438 sic@ suitable for identity type 24.008 cl. 10.5.3.4 and identiy type 2 24.008 cl. 10.5.5.9 + @status APPROVED (LTE) */ + const NAS_IdType tsc_IdType_TMSI := '100'B; /* suitable for identity type 24.008 cl. 10.5.3.4 and identiy type 2 24.008 cl. 10.5.5.9 + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const NAS_IdType tsc_IdType_TMGI := '101'B; + const NAS_IdType tsc_IdType_GUTI := '110'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const NAS_IdType tsc_IdType_EmergencyIMEI := '011'B; /* To be used when specifying an IMEI when using an emergency bearer @sic R5s110176 Baseline Moving sic@ */ + + const B3_Type tsc_IMEISV_NotRequested := '000'B; /* @sic R5s130438 sic@ suitable for IMEISV request type 24.008 cl. 10.5.5.10 */ + const B3_Type tsc_IMEISV_Requested := '001'B; /* @sic R5s130438 sic@ suitable for IMEISV request type 24.008 cl. 10.5.5.10 + @status APPROVED (LTE) */ + +const TmsiStatusValue tsc_NoValidTmsi := '0'B; + + const GprsTimerUnit tsc_GprsTimerUnit_2sec := '000'B; /* @status APPROVED (LTE) */ + const GprsTimerUnit tsc_GprsTimerUnit_1min := '001'B; /* @status APPROVED (LTE, LTE_A, LTE_IRAT, UTRAN) */ + const GprsTimerUnit tsc_Gprs3TimerUnit_1min := '101'B; /* @status APPROVED (IMS, LTE_A, SSNITZ, UTRAN) */ + const GprsTimerUnit tsc_GprsTimerUnit_6min := '010'B; /* @status APPROVED (LTE, LTE_IRAT) */ + const GprsTimerUnit tsc_GprsTimerUnit_deact := '111'B; /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + const O2_Type tsc_PCO_Id_DSMIPv6 := '0007'O; + const O2_Type tsc_PCO_Id_DSMIPv6_IPv4 := '0009'O; + + const B7_Type tsc_EmergServManual := '0100000'B; /* @status */ + const B7_Type tsc_EmergServAuto := '1000000'B; /* @status */ + const B7_Type tsc_EmergServPolice := '0000001'B; + const B7_Type tsc_EmergServAmbulance := '0000010'B; + const B7_Type tsc_EmergServFire := '0000100'B; + const B7_Type tsc_EmergServMarine := '0001000'B; + const B7_Type tsc_EmergServMountain:= '0010000'B; + + } // end group NAS_CommonConstants + //------------------------------------------------------------------------------ + + template (value) AccessPointName cs_AccessPointName(octetstring p_Name) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := omit, + iel := int2oct(lengthof(p_Name), 1), + nameValue := p_Name + }; + + template (present) AccessPointName cr_AccessPointName(octetstring p_Name) := + { /* @status APPROVED (IMS, LTE, LTE_A) */ + iei := '28'O, + iel := int2oct(lengthof(p_Name), 1), + nameValue := p_Name + }; + + template (present) AccessPointName cr_AccessPointName_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + iei := '28'O, + iel := ?, + nameValue := ? + }; + + template (present) AddUpdateParams cr_AddUpdateParams_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := ?, // '1100'B + spare:=?, + csmo := ?, // @sic R5s120178 Baseline Moving sic@ + csmt := ? + }; + + template (present) AdditionalUpdateType cr_AdditionalUpdateTypeAny := + { /* 24.301 cl. 9.9.3.0B */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @sic R5s100135 sic@ */ + iei := 'F'H, // currently only used as TV + spare3 := tsc_Spare3, + addUpdateTypeValue := ? + }; + + template (present) AuthenticationFailureParameter cr_AuthFailParam_Any := + { /* TLV format to be used in Authentication_Failure */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '30'O, // version 110, and value used in GMM + iel := '0E'O, + auts := ? + }; + + template (present) AuthenticationFailureParameter cdr_AuthFailParamGSM_Any modifies cr_AuthFailParam_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '22'O + }; + + template (value) RAND cs_RAND_v(B128_Type p_RAND) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := omit, + randValue := p_RAND + }; + + template (value) RAND cs_GMM_AuthRAND(B128_Type p_Rand) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '21'O, + randValue := p_Rand + }; + + template (value) AUTN cs_AUTN_lv(B128_Type p_AUTN) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := omit, + iel := '10'O, /* AUTN has length of 128 bits i.e. 16 octets */ + aUTN := p_AUTN + }; + + template (value) AUTN cs_GSM_AUTN(template (value) B128_Type p_AUTN) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '20'O, + iel := '10'O, // Length of 16 octets + aUTN := p_AUTN // value of Authentication Parameter AUTN + }; + + template (value) AUTN cs_GMM_AUTN(B128_Type p_Autn) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '28'O, + iel := '10'O, + aUTN := p_Autn + }; + + template (value) CiphKeySeqNum cs_CiphKeySeqNum(template (omit) IEI4_Type p_IEI, + template (value) KeySeq p_KeySeq) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + spare1 := '0'B, + keySeq := p_KeySeq + }; + + template (present) CiphKeySeqNum cr_CiphKeySeqNum(template (omit) IEI4_Type p_IEI, + template (present) KeySeq p_KeySeq) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + spare1 := '0'B, + keySeq := p_KeySeq + }; + + // ============================================================================= + // Structured Type Constraint + // Codec + // 3G TS 24.008 cl. 10.5.4.32 + // ----------------------------------------------------------------------------- + template (present) Codec cr_CodecAny := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + sysId := ?, // system identifcation + len := ?, // length + bitMap1to8 := ?, // codec bitmap bits 1-8 + bitMap9to16 := * // codec bitmap bits 9-16 + }; + + // ============================================================================= + // Structured Type Constraint + // Supported Codec List + // 3G TS 24.008 cl. 10.5.3.32 + // ----------------------------------------------------------------------------- + template (present) CodecList cr_CodecListAny := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '40'O, // '01000000'B (40 hex) + iel := ?, // length + codec := ({cr_CodecAny, cr_CodecAny, cr_CodecAny, *}, {cr_CodecAny, cr_CodecAny, *}, {cr_CodecAny, *}) // Codec list @sic R5s110278 sic@ + }; + + template (value) DetachType cs_DetachType(NAS_AttDetValue_Type p_TypeOfDetach):= + { /* @status APPROVED (LTE) */ + switchOff := '0'B, + typeOfDetach := p_TypeOfDetach + }; + + template (present) DetachType cr_DetachType(template (present) B1_Type p_SwitchOff, + template (present) NAS_AttDetValue_Type p_TypeOfDetach) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + switchOff := p_SwitchOff, + typeOfDetach := p_TypeOfDetach + }; + + template (present) DetachType cr_DetachTypeOnSwitchOff := cr_DetachType('1'B, ?); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (present) DeviceProperties cr_DeviceProperties(IEI4_Type p_IEI, + template (present) B1_Type p_LowPriority := ?) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + spare := tsc_Spare3, + lowPriority := p_LowPriority + }; + + template (present) DRXparameter cr_DRXparameter_Any (template (omit) IEI8_Type p_IEI) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + splitPGcycleCode := ?, // Split PG cycle code + cnDRXcoef := ?, // CN specific DRX cycle length coefficient + splitOnCCCH := ?, // Split on CCCCH + nonDRXtimer := ? // non-DRX timer + }; + + template (present) EDGE_Struct cr_EDGE_Struct_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + modulationCapability := ?, + pwrMask1 := ?, + eDGE_RF_PowerCapability1 := *, // not present if pwrMask1 = 0 + pwrMask2 := ?, + eDGE_RF_PowerCapability2 := * // not present if pwrMask2 = 0 + }; + + // ============================================================================= + // Structured Type Constraint + // Emergency Service Category + // 3GPP 24.008 / 10.5.4.33 + // ----------------------------------------------------------------------------- + template (present) EmergServCat cr_EmergServCatAny := + { /* @status APPROVED (IMS_IRAT, LTE_IRAT, POS, UTRAN) */ + spare := '0'B, + emergSCValue := ? // Emergency Service Category value + }; + + template (value) EmergServCat cs_EmergServCat(B7_Type p_EmergSCValue) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + spare := '0'B, + emergSCValue := p_EmergSCValue // Emergency Service Category value + }; + + template (value) EmergNum cs_EmergencyLocalNumber(Type4Length_Type p_Length, + template (value) EmergServCat p_EmergSCValue, + octetstring p_Number) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + len := p_Length, // length + emergServCat := p_EmergSCValue, // Emergency Service Category + digits := p_Number // BCD numbers + }; + + // ============================================================================= + // Structured Type Constraint + // ----------------------------------------------------------------------------- + template (value) GPRS_Timer cs_GprsTimer_tv(IEI8_Type p_IEI, // @sic R5s100662 sic@ + B3_Type p_Unit, + B5_Type p_Value) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := p_IEI, // '1E'O + unit := p_Unit, + timerValue := p_Value + }; + + template (value) GPRS_Timer cs_GprsTimer_v(GprsTimerUnit p_Unit, + B5_Type p_Value) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := omit, + unit := p_Unit, + timerValue := p_Value + }; + + template (value) GPRS_Timer cs_GprsTimer_v_deact := cs_GprsTimer_v(tsc_GprsTimerUnit_deact, tsc_Spare5); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (value) IdentityType cs_IdentityType(NAS_IdType p_NAS_IdType) := + { /* @status APPROVED (LTE, LTE_A) */ + spare := '0'B, + typeOfId := p_NAS_IdType + }; + + template (present) LocAreaId cr_LAI(template (omit) IEI8_Type p_IEI, + template (present) octetstring p_PLMN := ?, + template (present) octetstring p_LAC := ?) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + plmn := p_PLMN, // MCC + MNC + lac := p_LAC // location area code + }; + + template (present) LocAreaId cr_LAI_Any := cr_LAI('13'O); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (present) LocAreaId cr_LAI_Any_v := cr_LAI(omit); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) LocAreaId cs_LAI(template (omit) IEI8_Type p_IEI, + template (value) octetstring p_PLMN, + template (value) octetstring p_LAC) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + plmn := p_PLMN, // MCC + MNC + lac := p_LAC // location area code + }; + + template (value) LLC_SAPI cs_LLC_SAPI(template (omit) IEI8_Type p_IEI := omit, + B4_Type p_LlcSapiValue) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + iei := p_IEI, + spare := '0000'B, + llcSapiValue := p_LlcSapiValue + }; + + template (value) LLC_SAPI cs_LLC_SAPI_11 (template (omit) IEI8_Type p_IEI := omit) := cs_LLC_SAPI(p_IEI, '1011'B); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + template (value) LLC_SAPI cs_LLC_SAPI_03 (template (omit) IEI8_Type p_IEI := omit) := cs_LLC_SAPI(p_IEI, '0011'B); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + + template (present) MobileIdentity cr_MobileIdAny(template (omit) IEI8_Type p_IEI := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + iel := ?, + idDigit1 := ?, + oddEvenInd := ?, + typeOfId := ?, + otherDigits := ? + }; + + template (value) MobileIdentity cs_MobileIdentityGuti(template (omit) IEI8_Type p_IEI, + octetstring p_Guti) := + { + /* Reference: 24.301 cl. 9.9.3.12; + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := p_IEI, + iel := int2oct(lengthof(p_Guti) + 1, 1), // 11 octets in case of GUTI + idDigit1 := '1111'B, // in case of the GUTI + oddEvenInd := '0'B, // in case of the GUTI + typeOfId := tsc_IdType_GUTI, // 3 bits + otherDigits := p_Guti // 10 octets acc. to 24.301 + }; + + template (value) MobileIdentity cs_MobileIdentityImsi(B4_Type p_FirstDigit, + B1_Type p_OddEvenInd, + octetstring p_OtherDigits) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '17'O, + iel := int2oct(lengthof(p_OtherDigits) + 1, 1), + idDigit1 := p_FirstDigit, // 4 bits + oddEvenInd := p_OddEvenInd, // 1 bit + typeOfId := tsc_IdType_IMSI, // 3 bits + otherDigits := p_OtherDigits + }; + + template (value) MobileIdentity cds_MobileIdentityImsi_lv(B4_Type p_FirstDigit, + B1_Type p_OddEvenInd, + octetstring p_OtherDigits) + modifies cs_MobileIdentityImsi := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := omit + }; + + template (value) MobileIdentity cs_MobileIdTMSIorPTMSI(template (omit) IEI8_Type p_IEI, + O4_Type p_TmsiPtmsi) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, // for U/G this is '18'O + iel := '05'O, // TMSI consists of 4 octets + idDigit1 := '1111'B, // special coding for TMSI + oddEvenInd := '0'B, // even + typeOfId := tsc_IdType_TMSI, // TMSI / P-TMSI + otherDigits := p_TmsiPtmsi + }; + + template (value) MobileIdentity cs_MobileIdTMSI(template (omit) IEI8_Type p_IEI, // iei can be '17' (MM) or '13' (GMM) or omit + O4_Type p_Tmsi) := + /* @status APPROVED (LTE_IRAT, SSNITZ) */ + cs_MobileIdTMSIorPTMSI(p_IEI, p_Tmsi); + + template (present) MobileIdentity cr_MobileIdTMSI_lv(template (present) octetstring p_Tmsi := ?) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := omit, + iel := '05'O, // TMSI consists of 4 octets + idDigit1 := '1111'B, // special coding for TMSI + oddEvenInd := '0'B, // even + typeOfId := tsc_IdType_TMSI, // TMSI + otherDigits := p_Tmsi + }; + + template (present) MobileIdentity cdr_MobileIdTMSI_tlv(template (present) octetstring p_Tmsi := ?, + IEI8_Type p_IEI := '18'O) + modifies cr_MobileIdTMSI_lv := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI + }; + + template (present) MobileIdentity cr_MobileIdentityImei(B4_Type p_FirstDigit, + B1_Type p_OddEvenInd, + octetstring p_OtherDigits, + NAS_IdType p_NAS_IdType := tsc_IdType_IMEI) := // @sic R5s130758 sic@ + { /* @status APPROVED (LTE, LTE_A) */ + iei := omit, + iel := int2oct(lengthof(p_OtherDigits) + 1, 1), + idDigit1 := p_FirstDigit, // 4 bits + oddEvenInd := p_OddEvenInd, // 1 bit + typeOfId := p_NAS_IdType, // 3 bits // @sic R5s130758 sic@ + otherDigits := p_OtherDigits + }; + + template (present) MobileIdentity cr_MobileIdentityImeisv(B4_Type p_FirstDigit, // @sic R5-131832 sic@ + B1_Type p_OddEvenInd, + octetstring p_OtherDigits) := + { /* @status APPROVED (LTE) */ + iei := omit, + iel := int2oct(lengthof(p_OtherDigits) + 1, 1), + idDigit1 := p_FirstDigit, // 4 bits + oddEvenInd := p_OddEvenInd, // 1 bit + typeOfId := tsc_IdType_IMEISV, // 3 bits + otherDigits := p_OtherDigits + }; + + template (present) MS_Clsmk2 cr_MS_Clsmk2_Any_tlv(template (omit) IEI8_Type p_IEI := '11'O) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, // @sic R5s100662, R5s110112 sic@ + iel := '03'O, + spare1_1 := '0'B, + revLvl := ?, + eSIND := ?, + a5_1 := ?, + rFPwrCap := ?, + spare1_2 := '0'B, + pSCap := ?, + sSSI := ?, + sMCap := ?, + vBS := ?, + vGCS := ?, + fC := ?, + cM3 := ?, + spare1_3 := '0'B, + lCSVA := ?, + uCS2 := ?, + soLSA := ?, + cMSP := ?, + a5_3 := ?, + a5_2 := ? + }; + + template (present) MS_Clsmk2 cr_MS_Clsmk2_Any := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cr_MS_Clsmk2_Any_tlv (omit); + + template (present) MS_Clsmk3 cr_MSCLSMK3_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '20'O, /* 0x20 */ + iel := ?, /* OCTETSTRING [1] */ + spareBit := '0'B, // spare bit */ + multibandSupported := ?, + a5_7 := ?, /* a5/7 algorithm supported */ + a5_6 := ?, /* a5/6 algorithm supported */ + a5_5 := ?, /* a5/5 algorithm supported */ + a5_4 := ?, /* a5/4 algorithm supported */ + associatedRadioCapabilty2 := *, /* present if multibandSupported = 101 or 110 */ + spareBits1 := *, /* present if multibandSupported = 001 or 010 or 100 */ + associatedRadioCapabilty1 := *, /* present if multibandSupported = 001 or 010 or 100 or 101 or 110 */ + maskBit1 := ?, + rGSM_RadioCapability := *, /* R-GSM band associated radio capability. + not present if maskB1 = 0 */ + maskBit2 := ?, + multiSlotClass := *, /* multi slot class. + not present if multiSlotClass = 0 */ + uCS2Treatment := ?, + extMeasurementCapability := ?, /* extended measurement capability */ + maskBit3 := ?, + msMeasurementCapability := cr_MS_MeasCapability_Any ifpresent, /* MS measurement capability + // not present if maskB3 = 0 */ + maskBit4 := ?, + msPositioningMethod := *, /* MS positioning method capability + not present if maskB4 = 0 */ + maskBit5 := ?, + eDGE_MultiSlot := *, /* EDGE multi slot capability + not present if maskB5 = 0 */ + maskBit6 := ?, + psk8_Struct := cr_EDGE_Struct_Any ifpresent, /* EDGE struct + not present if maskB6 = 0 */ + maskBit7 := ?, + gSM400BandsSupported := *, /* not present if maskBIt7 = 0 */ + gSM400AssociatedRadioCapability := *, /* not present if gSM400BandsSupported = 00 or maskB7 = 0 */ + maskBit8 := ?, + gSM850AssociatedRadiioCapability := *, /* not present if maskBIt8 = 0 */ + maskBit9 := ?, + pCS1900AssociatedRadiioCapability := *, /* not present if maskBIt9 = 0 */ + uMTS_FDD_RAT_Capability := ?, + uMTS384TDD_RAT_Capability := ?, + cDMA2000_RAT_Capability := ?, + maskBit10 := ?, + dTM_GPRS_MultiSlotSubclass := *, /* not present if maskB10 = 0 */ + singleSlotDTM := *, /* not present if maskB10 = 0 */ + maskBit11 := *, /* not present if maskB10 = 0 */ + dTM_EGPRS_MultiSlorSubclass := *, /* not present if maskB10 = 0 or maskB11 = 0 */ + maskBit12 := ?, + singleBandSupport := *, /* not present if maskB12 = 0 */ + maskBit13 := *, + gSM700AssociatedRadioCapability := *, /* not present if maskB13 = 0 */ + uMTS128TDD_RAT_Capability := *, + gERANFeatPack1 := *, + mask14 := *, + extDTM_GPRS_MultiSlotSubclass := *, /* not present if maskB14 = 0 */ + etxDTM_EGPRS_MultiSlotSubclass := *, /* not present if maskB14 = 0 */ + mask15 := *, + highMultislotCap := *, /* not present if mask15 = 0 */ + spare2 := tsc_Spare1, // @sic R5s150329 Baseline Moving sic@ + gERANFeatPack2 := *, + gMSKMultislotPowerProfile := *, + pSKMultislotPowerProfile := *, + mask17 := *, /* rel 6 features */ + tGSM400BandsSupported := *, /* not present if maskB17 = 0 */ + tGSM400AssocRadioCap := *, /* not present if maskB17 = 0 */ + spare := *, // @sic R5s110176 Baseline Moving sic@ + dlAdvancedRxPerf := *, + dTMEhancCap := *, + mask19 := *, + dTMGPRSHighMultislotClass := *, /* not present if maskB19 = 0 */ + offsetReq := *, /* not present if maskB19 = 0 */ + mask20 := *, /* not present if maskB19 = 0 */ + dTMEGPRSHighMultislotClass := *, /* not present if maskB19 and maskB20 = 0 */ + rptdACCHCap := *, + mask21 := *, + gsm710AssocRadioCap := *, /* not present if maskBit21 = 0 */ + mask22 := *, + tgsm810AssocRadioCap := *, /* not present if maskBit22 = 0 */ + cipheringModeSettingCap := *, + addPositionCap := *, + eutraFDDSupport := *, /* rel 8 features */ + eutraTDDSupport := *, + eutraMeasAndReporting := *, /* @sic R5s100135 Baseline moving sic@ */ + priorityBasedReselection:= *, // @sic R5s110176 Baseline Moving sic@ + utraCSGCellsReporting := *, // @sic R5s110176 Baseline Moving sic@ + vamosLevel := *, // @sic R5s110176 Baseline Moving sic@ + tighterCap := *, // @sic R5s120178 Baseline Moving sic@ + selectCipheringDLSACCH := *, // @sic R5s120178 Baseline Moving sic@ + csPS_SRVCC_G2U := *, // @sic R5s130195 Baseline Moving sic@ + csPS_SRVCC_G2E := *, // @sic R5s130195 Baseline Moving sic@ + geranNwkSharing := *, // @sic R5s150329 Baseline Moving sic@ + eutraWidebandRSRQMeas := *, // @sic R5s150329 Baseline Moving sic@ + erBandSupport := *, // @sic R5s150329 Baseline Moving sic@ + utraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + eutraMultipleFreqBandInd := *, // @sic R5s150329 Baseline Moving sic@ + xtdTSCSetCap := *, // @sic R5s150329 Baseline Moving sic@ + spareBits2 := * + }; + + template (present) MS_Clsmk3 cdr_MSCLSMK3_EutraCheck (template (omit) IEI8_Type p_IEI) modifies cr_MSCLSMK3_Any := + { /* @status APPROVED (LTE) */ + iei := p_IEI, // @sic R5s110244, R5s140493 sic@ + iel := omit, // @sic R5s110244 sic@ + eutraFDDSupport := ?, + eutraTDDSupport := ? + }; + + template (present) MS_MeasCapability cr_MS_MeasCapability_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + sMS_VALUE := ?, + sM_VALUE := ? + }; + + template (present) MS_NetworkCap cr_MS_NetworkCap_Any := + { /* 24.301 cl. 9.9.3.18 -> 24.008 cl. 10.5.5.12; + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '31'O, /* present in case of TV; omit in case of V */ + iel := ?, /* present in case of LV or TLV; omit in case of V */ + gea1 := ?, + smCapDedicated := ?, + smCapGPRS := ?, + ucs2 := ?, + ssScreeningIndicator := ?, + soLSACap := ?, + revLevelIndicator := ?, + pfcFeatureMode := ?, + gea2 := ?, + gea3 := ?, + gea4 := ?, + gea5 := ?, + gea6 := ?, + gea7 := ?, + lcsVACap := ?, + psHOtoUTRAN_IuModeCap := ?, + psHOtoEUTRAN_S1ModeCap := ?, + emmCombinedCap := ?, // @sic R5s110176 Baseline Moving sic@ + isrSupport := ?, + srvccToGERAN_UTRANCap := ?, + epcCap := ?, + nfCap := *, // @sic R5s110176 Baseline Moving R5s110242 sic@ + gERANNtwkShareCap := *, // @sic R5s130195 Baseline Moving sic@ + spareBits := * + }; + + template (present) MS_NetworkCap cdr_MS_NetworkCapAss_lv modifies cr_MS_NetworkCap_Any := + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := omit + }; + + template (present) MS_NetworkFeatureSupport cr_MS_NetworkFeatureSupport(IEI4_Type p_IEI, + template (present) B1_Type p_ExtdPeriodicTimers := ?) := + { /* 24.301 cl. 9.9.2.0A -> 24.008 cl. 10.5.5.15 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + spare := tsc_Spare3, + extdPeriodicTimers := p_ExtdPeriodicTimers + }; + + template (present) NwkResourceId cr_NwkResourceIdAny (IEI8_Type p_IEI := '10'O) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + iel := ?, + nriContainerValue := ?, + spareBits := tsc_Spare6 // @sic R5s140778 sic@ + }; + + template (value) PacketFlowIdentifier cs_PktFlowId := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + iei := '34'O, + iel := '01'O, + spare := '0'B, + idValue := '0000000'B // Best effort + }; + + template (value) PLMN_List cs_PLMN_List(NAS_PlmnIdList_Type p_PlmnIdList) := + { /* @status APPROVED (LTE, LTE_A) */ + iei := '4A'O, + iel := int2oct(lengthof(p_PlmnIdList) * 3, 1), + plmnList := p_PlmnIdList + }; + + template (value) PLMN_List cs_PLMN_List_1PLMN(NAS_PlmnId p_Plmn1) := + /* @status APPROVED (LTE, LTE_A) */ + cs_PLMN_List({p_Plmn1}); + + template (value) PLMN_List cs_PLMN_List_2PLMNs(NAS_PlmnId p_Plmn1, + NAS_PlmnId p_Plmn2) := + /* @status APPROVED (LTE, LTE_A) */ + cs_PLMN_List({p_Plmn1, p_Plmn2}); + + template (value) PLMN_List cs_PLMN_List_3PLMNs(NAS_PlmnId p_Plmn1, + NAS_PlmnId p_Plmn2, + NAS_PlmnId p_Plmn3) := + /* @status APPROVED (LTE) */ + cs_PLMN_List({p_Plmn1, p_Plmn2, p_Plmn3}); + + template (value) PLMN_List cs_PLMN_List_4PLMNs(NAS_PlmnId p_Plmn1, + NAS_PlmnId p_Plmn2, + NAS_PlmnId p_Plmn3, + NAS_PlmnId p_Plmn4) := + /* @status APPROVED (LTE) */ + cs_PLMN_List({p_Plmn1, p_Plmn2, p_Plmn3, p_Plmn4}); + + template (value) ProtocolContainer cs_ProtocolContainer_Common(O2_Type p_ContainerId, + integer p_ContainerLength := 0, + template (omit) octetstring p_Content := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + protocolID := p_ContainerId, + protocolLength := int2oct(p_ContainerLength, 1), + content := p_Content + }; + + template (value) ProtocolContainer cs_ProtocolContainer(O2_Type p_ProtocolId, + octetstring p_Content) := + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @sic R5s141127 change 4 - MCC160 Comments: cs_ProtocolContainer_Common sic@ */ + cs_ProtocolContainer_Common(p_ProtocolId, lengthof(p_Content), p_Content); + + template (value) ProtocolConfigOptions cs_ProtocolConfigOptions_Common(Type4Length_Type p_Type4Length := '01'O, + template (omit) ProtocolConfigOptions.pco p_ProtocolContainers := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + iei := '27'O, + iel := p_Type4Length, + ext := '1'B, + spare := '0000'B, + configProtocol := '000'B, + pco := p_ProtocolContainers + }; + + template (value) ProtocolConfigOptions cs_ProtocolConfigOptions_PPP := cs_ProtocolConfigOptions_Common; /* @status APPROVED (LTE_IRAT) */ + + /* + * @desc Common function to build up ProtocolConfigOptions acc. to 24.008 cl. 10.5.6.3 + * @param p_ProtocolContainers + * @return template (value) ProtocolConfigOptions + * @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_NAS_ProtocolConfigOptionsTX(template (value) NAS_ProtocolConfigOptions_Type p_ProtocolContainers) return template (value) ProtocolConfigOptions + { + var integer v_Length := 1; // there are at least ext, spare, configProtocol + var integer i; + + for (i:=0; i < lengthof(p_ProtocolContainers); i:=i+1) { + v_Length := v_Length + oct2int(valueof(p_ProtocolContainers[i].protocolLength)) + 3; // 2 octets for protocolID and 1 octet for protocolLength + } + return cs_ProtocolConfigOptions_Common(int2oct(v_Length, 1), p_ProtocolContainers); + } + + template (value) ProtocolConfigOptions cs_ProtocolConfigOptions_OneOption(template (value) ProtocolContainer p_ProtocolContainer) := + /* @status APPROVED (UTRAN) */ + f_NAS_ProtocolConfigOptionsTX({p_ProtocolContainer}); + + template (value) ProtocolConfigOptions cs_ProtocolConfigOptions_TwoOptions(template (value) ProtocolContainer p_ProtocolContainer1, + template (value) ProtocolContainer p_ProtocolContainer2) := + f_NAS_ProtocolConfigOptionsTX({p_ProtocolContainer1, p_ProtocolContainer2}); + + + template (present) ProtocolConfigOptions cr_ProtocolConfigOptionsAny := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, UTRAN) */ + iei := '27'O, + iel := ?, + ext := '1'B, + spare := '0000'B, + configProtocol := ?, + pco := * // @sic R5s100800 sic@ + }; + + template (value) PTMSI_Signature cs_PTMSI_Signature(octetstring p_Ptmsi) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '19'O, + iel := omit, + signatureValue := p_Ptmsi + }; + + template (present) PTMSI_Signature cr_PTMSI_Signature(template (present) O3_Type p_PtmsiSig) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '19'O, + iel := omit, + signatureValue := p_PtmsiSig + }; + + template (present) PTMSI_Signature cr_PTMSI_SignatureAny := + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cr_PTMSI_Signature(?); + + template (present) PTMSI_Signature cr_PTMSI_Signature2Any := // Only used in Detach Request MO + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '19'O, + iel := '03'O, + signatureValue := ? + }; + + template (value) QualityOfService cs_QoS_Negotiated_1 := + { /* TS 34.123-3 Table 8.10.2 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := '30'O, + iel := '10'O, + spare1 := '00'B, + delayClass := '100'B, + relabilityClass := '011'B, + peakThroughput := '0100'B, + spare2 := '0'B, + precedenceClass := '011'B, + spare3 := '000'B, + meanThroughput := '11111'B, + trafficClass := '100'B, + deliveryOrder := '10'B, + deliveryErrorSDU := '010'B, + maxSduSize := '00100000'B, + maxBitRateUL := '01000000'B, + maxBitRateDL := '01000000'B, + residualBER := '0111'B, + sduErrorRatio := '0100'B, + transferDelay := '000000'B, + trafficHandlingPrio := '00'B, + guaranteedBitRateUL := '00010000'B, + guaranteedBitRateDL := '00010000'B, + spare4 := '000'B, + signallingInd := '0'B, + sourceStatisticsDescriptor := '0000'B, + maxBitRateDL_Ext := '00000000'B, + guaranteedBitRateDL_Ext := '00000000'B, + maxBitRateUL_Ext := '00000000'B, + guaranteedBitRateUL_Ext := '00000000'B, + maxBitRateDL_Ext2 := omit, // @sic R5s1300195 Baseline Moving sic@ + guaranteedBitRateDL_Ext2 := omit, // @sic R5s1300195 Baseline Moving sic@ + maxBitRateUL_Ext2 := omit, // @sic R5s1300195 Baseline Moving sic@ + guaranteedBitRateUL_Ext2 := omit // @sic R5s1300195 Baseline Moving sic@ + }; + + template (value) QualityOfService cds_QoS_Negotiated_2 modifies cs_QoS_Negotiated_1 := + { /* TS 34.123-3 Table 8.10.2 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + maxSduSize := '10010110'B, + maxBitRateUL := '01001000'B, + maxBitRateDL := '01001000'B, + residualBER := '0100'B, + sduErrorRatio := '0011'B + }; + + template (value) QualityOfService cds_QoS_Negotiated_3 modifies cs_QoS_Negotiated_1 := + { /* TS 34.123-3 Table 8.10.2 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + trafficClass := '001'B, + deliveryErrorSDU := '011'B, + maxSduSize := '10001100'B, + maxBitRateUL := '01101110'B, //432 kbps + maxBitRateDL := '01101110'B, //432 kbps + sduErrorRatio := '0010'B, + transferDelay := '001101'B, + guaranteedBitRateUL := '00000000'B, + guaranteedBitRateDL := '00000000'B + }; + + template (value) QualityOfService cds_QoS_Negotiated_4 (template (omit) IEI8_Type p_IEI := '30'O) modifies cs_QoS_PDP2 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + relabilityClass := '101'B, + trafficClass := '001'B, + deliveryOrder := '10'B, // @sic R5-133509 sic@ + maxSduSize := '00001111'B, + maxBitRateUL := '01101000'B, + maxBitRateDL := '01101000'B, + residualBER := '0001'B, + sduErrorRatio := '0001'B, + transferDelay := '001000'B, + sourceStatisticsDescriptor := '0001'B + }; + + template (value) QualityOfService cs_QoS_PDP2 (template (omit) IEI8_Type p_IEI := '30'O) := + { /* TS 51.010-1 Table 40.5 */ + // @sic R5s120218 sic@ + /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + iei := p_IEI, + iel := '10'O, + spare1 := '00'B, + delayClass := '100'B, + relabilityClass := '011'B, + peakThroughput := '0101'B, + spare2 := '0'B, + precedenceClass := '010'B, + spare3 := '000'B, + meanThroughput := '10000'B, + trafficClass := '100'B, + deliveryOrder := '01'B, + deliveryErrorSDU := '011'B, + maxSduSize := '10010110'B, + maxBitRateUL := '01001000'B, + maxBitRateDL := '01001000'B, + residualBER := '0111'B, + sduErrorRatio := '0100'B, + transferDelay := '000000'B, + trafficHandlingPrio := '00'B, + guaranteedBitRateUL := '00000000'B, + guaranteedBitRateDL := '00000000'B, + spare4 := '000'B, + signallingInd := '0'B, + sourceStatisticsDescriptor := '0000'B, + maxBitRateDL_Ext := '00000000'B, + guaranteedBitRateDL_Ext := '00000000'B, + maxBitRateUL_Ext := '00000000'B, + guaranteedBitRateUL_Ext := '00000000'B, + maxBitRateDL_Ext2 := omit, // @sic R5s1300195 Baseline Moving sic@ + guaranteedBitRateDL_Ext2 := omit, // @sic R5s1300195 Baseline Moving sic@ + maxBitRateUL_Ext2 := omit, // @sic R5s1300195 Baseline Moving sic@ + guaranteedBitRateUL_Ext2 := omit // @sic R5s1300195 Baseline Moving sic@ + }; + + template (value) QualityOfService cds_QoS_PDP3 (template (omit) IEI8_Type p_IEI := '30'O) modifies cs_QoS_PDP2 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + relabilityClass := '101'B, + deliveryErrorSDU := '010'B, + residualBER := '0100'B, + sduErrorRatio := '0011'B + }; + + template (value) QualityOfService cds_QoS_Converstational (template (omit) IEI8_Type p_IEI := '30'O) modifies cs_QoS_PDP2 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + relabilityClass := '101'B, + trafficClass := '001'B, + deliveryOrder := '10'B, // @sic R5-133509 sic@ + maxSduSize := '00001111'B, // @sic R5-120632 sic@ + maxBitRateUL := '01101000'B, + maxBitRateDL := '01101000'B, + residualBER := '0001'B, + sduErrorRatio := '0001'B, + transferDelay := '001000'B + }; + + template (present) TrafficFlowTemplate cr_Tft(template IEI8_Type p_IEI := omit, + template (present) B3_Type p_Code := ?) := + { /* 24.301 cl. 9.9.4.13 -> 24.008 cl. 10.5.6.12 */ + /* @status APPROVED (LTE, UTRAN) */ + iei := p_IEI, /* present in case of TLV; omit in case of LV */ + iel := ?, + tftOperationCode := p_Code, + eBit := ?, + noOfPktFilter := complement ('0000'B), // value must be greater than 0 and <= 16 (only 4 bits) + packetFilterList := ?, + parameterList := * + }; + + template (value) TrafficFlowTemplate cs_TrafficFlowTemplate(integer p_IeLength, + template (value) TrafficFlowTemplate.packetFilterList p_PacketFilterList):= + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, UTRAN) */ + iei := omit, + iel := int2oct(p_IeLength, 1), + tftOperationCode := '001'B, // Create new TFT + eBit := '0'B, // Parameter list not included + noOfPktFilter := int2bit(lengthof(p_PacketFilterList), 4), + packetFilterList := p_PacketFilterList, + parameterList := omit + }; + + // ============================================================================= + // A value of 1 is the highest radio priority level + // ----------------------------------------------------------------------------- + + template (value) RadioPriority cs_RadioPriority (template (omit) IEI4_Type p_IEI, + B3_Type p_Val) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + spare := '0'B, + levelValue := p_Val + }; + + template (value) RadioPriority cs_RadioPriorityHigh (template (omit) IEI4_Type p_IEI) := cs_RadioPriority (p_IEI, '001'B); /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ + template (value) RadioPriority cs_RadioPriorityLow (template (omit) IEI4_Type p_IEI) := cs_RadioPriority (p_IEI, '100'B); /* @status APPROVED (LTE_IRAT) */ + + template (present) TMSI_Status cr_TMSI_Status(template (present) TmsiStatusValue p_TmsiStatus := ?) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := '9'H, + spare3 := tsc_Spare3, + flag := p_TmsiStatus + }; + + template (present) UE_NetworkCap cr_UENetworkCap_Any (template (omit) IEI8_Type p_IEI) := + { /* 24.301 cl. 9.9.3.34 + @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, /* present in case of TLV; omit in case of LV */ + iel := ?, /* present in case of LV or TLV; omit in case of V */ + eeaCap := ?, // @sic R5s100135 sic@ + eiaCap := ?, // @sic R5s100135 sic@ + ueaCap := *, // @sic R5s100135 sic@ + uiaCap := *, // @sic R5s100135 sic@ + srvcc_LPP_ProSeCap := *, // @sic R5s100135, R5s150329 Baseline Moving sic@ + proSeCap := *, // @sic R5s150329 Baseline Moving sic@ + spare := * // @sic R5s100135 sic@ + }; + + template (present) VoiceDomainPref cr_VoiceDomainPref_Any := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := ?, // 01111110'B + iel := ?, // length + spareBits := ?, + ueUsageSetting := ?, + voiceDomainPrefEUTRA := ? + }; + + template (value) GPRS_Timer2 cs_GPRS_Timer2_3_IEI(template (omit) IEI8_Type p_IEI, // @sic R5s150329 Baseline Moving sic@ + B3_Type p_Unit, + B5_Type p_Value) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + iel := '01'O, // length + unit := p_Unit, // Unit + gprsTimerValue := p_Value // Timer value + }; + + template (value) GPRS_Timer3 cs_GprsTimer3(template (omit) IEI8_Type p_IEI := '5E'O, // @sic R5s150745 sic@ + GprsTimerUnit p_Unit, + B5_Type p_Value) := cs_GPRS_Timer2_3_IEI(p_IEI, p_Unit, p_Value); /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS) */ + + template (present) GPRS_Timer2 cr_GPRS_Timer2_3(IEI8_Type p_IEI, // @sic R5s150329 Baseline Moving sic@ + template (present) B3_Type p_Unit := ?, + template (present) B5_Type p_Value := ?) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + iei := p_IEI, + iel := '01'O, // length + unit := p_Unit, // Unit + gprsTimerValue := p_Value // Timer value + }; + + template (value) TimeZoneAndTime cs_TimeZoneAndTime (O1_Type p_Year, + O1_Type p_Month, + O1_Type p_Day, + O1_Type p_Hour, + O1_Type p_Minute, + O1_Type p_Second, + O1_Type p_TimeZone):= + { /* @status APPROVED (LTE, SSNITZ) */ + iei := '47'O, // @sic R5s110439 sic@ + year := p_Year, + month := p_Month, + day := p_Day, + hour := p_Hour, + minute := p_Minute, + second := p_Second, + timeZone := p_TimeZone + }; + + template (value) TimeZone cs_TimeZone (O1_Type p_TimeZone):= + { /* @status APPROVED (LTE, SSNITZ) */ + iei := '46'O, + timeZone := p_TimeZone + }; + + template (value) NetworkName cs_NetworkName (IEI8_Type p_Iei, + charstring p_Name, + Gsm7BitPacking_Type p_Packing := SMS_Packing, // default: GSM default 7 + B1_Type p_AddCI := '0'B) := // default: do not include the CI + { /* @status APPROVED (LTE, SSNITZ) */ + iei := p_Iei, + iel := int2oct((lengthof(f_CharPacking_IA5toGsm7Bit(p_Name, p_Packing)) + 1),1), + ext := '1'B, + codingScheme := f_ConvertPackingToCodingScheme (p_Packing), + addCI := p_AddCI, + spareBitCnt := int2bit((lengthof(p_Name) mod 8), 3), // @sic R5s140651 sic@ + text := f_CharPacking_IA5toGsm7Bit(p_Name, p_Packing) + }; + + //---------------------------------------------------------------------------- + /* + * @desc Conversion of the packing type per TS 23.040 into the coding scheme parameter used in the Network Name IE + * @param p_Gsm7BitPacking_Type + * @return B3_Type + * @status APPROVED (LTE, SSNITZ) + */ + function f_ConvertPackingToCodingScheme(Gsm7BitPacking_Type p_Gsm7BitPacking_Type) return B3_Type + { + var B3_Type v_CodingScheme := '000'B; + + if (p_Gsm7BitPacking_Type == SMS_Packing) {v_CodingScheme := '000'B } else {FatalError (__FILE__, __LINE__, "Unexpected Packing for conversion to Coding Scheme")}; + //if (p_Gsm7BitPacking_Type == CBS_Packing) {v_CodingScheme := '000'B }; + //if (p_Gsm7BitPacking_Type == USSD_Packing) {v_CodingScheme := '000'B }; + + return v_CodingScheme; + } + + template (value) DaylightSavingTime cs_DaylightSavingTime_tlv (B2_Type p_DaylightSavingTime) := + { /* 24.301 cl. 9.9.3.6; */ + /* @status APPROVED (LTE, SSNITZ) */ + iei := '49'O, + iel := '01'O, // @sic R5s120508 sic@ + spare := tsc_Spare6, + val := p_DaylightSavingTime + }; + +} diff --git a/LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn new file mode 100644 index 0000000..c27d45b --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/NAS/NAS_CommonTypeDefs.ttcn @@ -0,0 +1,897 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 16:18:39 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14465 $ +/******************************************************************************/ + +module NAS_CommonTypeDefs { + /* Module containing type definitions for EPS, UTRAN and/or GERAN */ + + import from CommonDefs all; + + //**************************************************************************** + // Common Type definitions: + //---------------------------------------------------------------------------- + + //**************************************************************************** + //**************************************************************************** + + type O1_Type Octet_Type; + type hexstring HalfOctet_Type length(1); + + type HalfOctet_Type IEI4_Type; /* 4 bit info element identifier for type 1 IEs */ + type Octet_Type IEI8_Type; /* 8 bit info element identifier */ + + type O1_Type Type4Length_Type; + type O2_Type Type6Length_Type; + + type HalfOctet_Type SpareHalfOctet; + + type hexstring NAS_Mcc length(3); //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). + + type record of hexstring EmergencyNumList; + //**************************************************************************** + // NAS PROTOCOL DEFINITIONS: IEs + //---------------------------------------------------------------------------- + // General Info Elements (24.301 cl. 9) + //---------------------------------------------------------------------------- + + type B4_Type ProtocolDiscriminator; /* 24.301 cl. 9.2 and 24.007 cl. 11.2.3.1.1 */ + type B4_Type SkipIndicator; /* 24.007 cl. 11.2.3.1.2 */ + type B8_Type MessageType; /* 24.301 cl. 9.8 */ + + type B3_Type NAS_AttDetValue_Type; + type B3_Type KeySeq; /* ciphering key sequence + 3G TS 24008 cl. 10.5.1.2 */ + type O3_Type NAS_PlmnId; + + type O4_Type NAS_Tmsi; + type O4_Type NAS_P_Tmsi; + + type O2_Type NAS_Lac; + type O1_Type NAS_Rac; + + type hexstring BcdDigit_Hex length(1); + type bitstring BcdDigit_Bit length(4); + + type B3_Type NAS_IdType; + type B8_Type NAS_CauseValue_Type; + + type B1_Type TmsiStatusValue; + + type enumerated PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status @sic R5s120274 sic@ */ + type enumerated CS_PS_MODE {VOICE_CENTRIC, DATA_CENTRIC}; /* @status APPROVED */ + // This is here because it's the best place for it + const NAS_Lac tsc_LAC_Def := '0001'O ; /* Default NAS LAC, the value may need to be updated in CS combined/CS fallback test cases + @status APPROVED + @sic R5s090180 sic@ */ + + + //----------------------------------------------------------------------------- + // Defined in 24.008, but also referenced from 24.301 + //----------------------------------------------------------------------------- + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008, section 10.5.6.1 + // ----------------------------------------------------------------------------- + type record AccessPointName { /* 24.301 cl. 9.9.4.1 -> 24.008 cl. 10.5.6.1 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + octetstring nameValue length(1..100) + }; + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008, section 10.5.3.14 + // ----------------------------------------------------------------------------- + type record AddUpdateParams { + IEI4_Type iei optional, + B2_Type spare, // @sic R5s120178 Baseline Moving sic@ + B1_Type csmo, // @sic R5s120178 Baseline Moving sic@ + B1_Type csmt + }; + + type record AdditionalUpdateType { /* 24.301 cl. 9.9.3.0B @sic R5s100135 sic@ */ + IEI4_Type iei, // currently only used as TV + B3_Type spare3, + B1_Type addUpdateTypeValue + }; + + // ============================================================================= + // Structured Type Definition + // Ciphering Key Sequence Number + // 3G TS 24.008 cl. 10.5.1.2 + // ----------------------------------------------------------------------------- + type record CiphKeySeqNum { + IEI4_Type iei optional, // '1000'B + B1_Type spare1, + KeySeq keySeq + }; + + // ============================================================================= + // Structured Type Definition + // Priority Level + // 3G TS 24.008 cl. 10.5.6.19 / 24.301 9.9.4.2A + // ----------------------------------------------------------------------------- + type record ConnectivityType { + IEI4_Type iei, + B4_Type connectivityValue + }; + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008, section 10.5.5.5/ 24.301 cl. 9.9.3.7 + // ----------------------------------------------------------------------------- + type record DetachType { + // IEI is always skipped + B1_Type switchOff, + NAS_AttDetValue_Type typeOfDetach + }; + + // ============================================================================= + // Structured Type Definition + // Device Properties + // 3G TS 24.008 cl. 10.5.7.8 + // ----------------------------------------------------------------------------- + type record DeviceProperties { + IEI4_Type iei, + B3_Type spare, + B1_Type lowPriority + }; + + // ============================================================================= + // Structured Type Definition + // DRX paramter + // 3GPP 24.008 / 10.5.5.6 + // ----------------------------------------------------------------------------- + type record DRXparameter { + IEI8_Type iei optional, // '00100111'B (hex 27) + B8_Type splitPGcycleCode, // Split PG cycle code + B4_Type cnDRXcoef, // CN specific DRX cycle length coefficient + B1_Type splitOnCCCH, // Split on CCCCH + B3_Type nonDRXtimer // non-DRX timer + }; + + // ============================================================================= + // Structured Type Definition + // Emergency Service Category + // 3GPP 24.008 / 10.5.4.33 + // ----------------------------------------------------------------------------- + type record EmergServCat { + B1_Type spare, + B7_Type emergSCValue // Emergency Service Category value + }; + + type record length (1..10) of charstring EmergencyLocalNumberList; + // ============================================================================= + // Structured Type Definition + // Emergency Number + // 3G TS 24.008 cl. 10.5.3.13 + // ----------------------------------------------------------------------------- + type record EmergNum { + Type4Length_Type len, // length + EmergServCat emergServCat, // Emergency Service Category + octetstring digits length(0..10) // BCD numbers + }; + + // ============================================================================= + // Structured Type Definition + // Emergency Number List + // 3G TS 24.008 cl. 10.5.3.13 + // ----------------------------------------------------------------------------- + type record EmergNumList { + IEI8_Type iei, // '00110100'B (34 hex) @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + record length (1..10) of EmergNum emergNum // Emergency Number + }; + + // ============================================================================= + // Structured Type Definition + // GPRS timer + // 3GPP 24.008 / 10.5.7.3 + // ----------------------------------------------------------------------------- + type record GPRS_Timer { /* 24.301 cl. 9.9.3.14 -> 24.008 cl. 10.5.7.3 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + GprsTimerUnit unit, + B5_Type timerValue + }; + + type B3_Type GprsTimerUnit; + + // ============================================================================= + // Structured Type Definition + // GPRS timer 2 or GPRS timer 3 (definition is identical) + // 3GPP 24.008 / 10.5.7.4(a) + // ----------------------------------------------------------------------------- + type record GPRS_Timer2 { + IEI8_Type iei optional, // @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + GprsTimerUnit unit, // Unit + B5_Type gprsTimerValue // Timer value + }; + + type GPRS_Timer2 GPRS_Timer3; // definition is identical @sic R5s150329 Baseline Moving sic@ + + // ============================================================================= + // Structured Type Definition + // IMEISV Request + // 3GPP 24.008 / 10.5.5.10 + // ----------------------------------------------------------------------------- + type record IMEISV_Request { /* 24.301 cl. 9.9.3.16 -> 24.008 cl. 10.5.5.10 */ + IEI4_Type iei optional, /* present in case of TV; omit in case of V */ + B1_Type spare, + B3_Type requestValue + }; + + // ============================================================================= + // Structured Type Definition + // Location Area Identification Value + // 3G TS 24.008 cl. 10.5.1.3 + // ----------------------------------------------------------------------------- + type record LocAreaId { + IEI8_Type iei optional, + NAS_PlmnId plmn, // MCC + MNC 3 digits each + NAS_Lac lac // LAC + }; + + // ============================================================================= + // Structured Type Definition + // RoutingAreaId + // 3GPP 24.008 / 10.5.5.15 + // ----------------------------------------------------------------------------- + type record RoutingAreaId { /* 24.301 cl. 9.9.3.24 -> 24.008 cl. 10.5.5.15 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + LocAreaId lai, /* MCC + MNC + LAC */ + O1_Type rac /* RAC */ + }; + + // ============================================================================= + // Structured Type Definition + // 24.007, clause 10.5.6.9 + // ----------------------------------------------------------------------------- + type record LLC_SAPI { /* 24.301 cl. 9.9.4.4 -> 24.008 cl. 10.5.6.9 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + B4_Type spare, + B4_Type llcSapiValue + }; + + // ============================================================================= + // Structured Type Definition + // Mobile Identity + // 3G TS 24.008 cl. 10.5.1.4 + // Maximum number of digits is 16 (IMEISV). Filler may be used. + // ----------------------------------------------------------------------------- + type record MobileIdentity { + IEI8_Type iei optional, // '00100011'B + Type4Length_Type iel, + BcdDigit_Bit idDigit1, // 1st identitity digit + B1_Type oddEvenInd, // Odd/even indicator + NAS_IdType typeOfId, // Type of identity + octetstring otherDigits length(0..10) // Other identity digits (10 octets rather than 8 to cover Guti as well) + }; + + // ============================================================================= + // Structured Type Definition + // Mobile Station Classmark 2 + // 3G TS 24.008 cl. 10.5.1.6 + // ----------------------------------------------------------------------------- + type record MS_Clsmk2 { + IEI8_Type iei optional, + Type4Length_Type iel, // @sic R5s110420 sic@ + B1_Type spare1_1, // Spare bit + B2_Type revLvl, // Revision Level + B1_Type eSIND, // Early Sending Indication + B1_Type a5_1, // Algorithm A5/1 Support + B3_Type rFPwrCap, // RF Power Capability + B1_Type spare1_2, // Spare bit + B1_Type pSCap, // Pseudo Synchronisation Capability + B2_Type sSSI, // SS Screen Indicator + B1_Type sMCap, // Short Message Capability + B1_Type vBS, // VBS Capability + B1_Type vGCS, // VGCS Capability + B1_Type fC, // Frequency Capability + B1_Type cM3, // Classmark 3 Indicator + B1_Type spare1_3, // Spare bit + B1_Type lCSVA, // LCS VA Capability + B1_Type uCS2, // UCS2 Encoding Support + B1_Type soLSA, // SoLSA Support + B1_Type cMSP, // CM Service Prompt Support + B1_Type a5_3, // Algorithm A5/3 Support + B1_Type a5_2 // Algorithm A5/2 Support + }; + + // ============================================================================= + // Structured Type Definition + // Mobile station classmark 3 + // 3GPP TS 24.008 clause 10.5.1.7 + // The information element has 34 octets maximum length + // ----------------------------------------------------------------------------- + type record MS_Clsmk3 { + IEI8_Type iei optional, // 0x20 + Type4Length_Type iel optional, // OCTETSTRING [1] + B1_Type spareBit, // spare bit @sic R5s120178 Baseline Moving sic@ + B3_Type multibandSupported, // @sic R5s120178 Baseline Moving sic@ + B1_Type a5_7, // a5/7 algorithm supported @sic R5s120178 Baseline Moving sic@ + B1_Type a5_6, // a5/6 algorithm supported @sic R5s120178 Baseline Moving sic@ + B1_Type a5_5, // a5/5 algorithm supported @sic R5s120178 Baseline Moving sic@ + B1_Type a5_4, // a5/4 algorithm supported @sic R5s120178 Baseline Moving sic@ + B4_Type associatedRadioCapabilty2 optional, // present if multibandSupported = 101 or 110 + B4_Type spareBits1 optional, // present if multibandSupported = 001 or 010 or 100 + B4_Type associatedRadioCapabilty1 optional, // present if multibandSupported = 001 or 010 or 100 or 101 or 110 + B1_Type maskBit1 optional, + B3_Type rGSM_RadioCapability optional, // R-GSM band associated radio capability not present if maskBit1 = 0 + B1_Type maskBit2 optional, + B5_Type multiSlotClass optional, // multi slot class not present if multiSlotClass = 0 + B1_Type uCS2Treatment optional, + B1_Type extMeasurementCapability optional, // extended measurement capability + B1_Type maskBit3 optional, + MS_MeasCapability msMeasurementCapability optional, // MS measurement capability + // not present if maskBit3 = 0 + B1_Type maskBit4 optional, + B5_Type msPositioningMethod optional, // MS positioning method capability + // not present if maskBit4 = 0 + B1_Type maskBit5 optional, + B5_Type eDGE_MultiSlot optional, // EDGE multi slot capability + // not present if maskB5_Type = 0 + B1_Type maskBit6 optional, + EDGE_Struct psk8_Struct optional, // 8PSK struct + // not present if maskB6_Type = 0 + B1_Type maskBit7 optional, + B2_Type gSM400BandsSupported optional, // not present if maskBIt7 = 0 + B4_Type gSM400AssociatedRadioCapability optional, // not present if gSM400BandsSupported = 00 or maskB7_Type = 0 + B1_Type maskBit8 optional, + B4_Type gSM850AssociatedRadiioCapability optional, // not present if maskBIt8 = 0 + B1_Type maskBit9 optional, + B4_Type pCS1900AssociatedRadiioCapability optional, // not present if maskBIt9 = 0 + B1_Type uMTS_FDD_RAT_Capability optional, + B1_Type uMTS384TDD_RAT_Capability optional, + B1_Type cDMA2000_RAT_Capability optional, + B1_Type maskBit10 optional, + B2_Type dTM_GPRS_MultiSlotSubclass optional, // not present if maskBit10 = 0 + B1_Type singleSlotDTM optional, // not present if maskBit10 = 0 + B1_Type maskBit11 optional, // not present if maskBit10 = 0 + B2_Type dTM_EGPRS_MultiSlorSubclass optional, // not present if maskBit10 = 0 or maskBit11 = 0 + B1_Type maskBit12 optional, + B4_Type singleBandSupport optional, // not present if maskBit12 = 0 + B1_Type maskBit13 optional, + B4_Type gSM700AssociatedRadioCapability optional, // not present if maskBit13 = 0 + B1_Type uMTS128TDD_RAT_Capability optional, + B1_Type gERANFeatPack1 optional, + B1_Type mask14 optional, + B2_Type extDTM_GPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 + B2_Type etxDTM_EGPRS_MultiSlotSubclass optional, // not present if maskBit14 = 0 + B1_Type mask15 optional, + B2_Type highMultislotCap optional, // not present if mask15 = 0 + B1_Type spare2 optional, // value '1' indicated GERAN Iu Mode Capabilities in earlier versions @sic R5s150329 Baseline Moving sic@ + B1_Type gERANFeatPack2 optional, + B2_Type gMSKMultislotPowerProfile optional, + B2_Type pSKMultislotPowerProfile optional, + B1_Type mask17 optional, // rel 6 features + B2_Type tGSM400BandsSupported optional, // not present if maskBit17 = 0 + B4_Type tGSM400AssocRadioCap optional, // not present if maskBit17 = 0 + B1_Type spare optional, // Set to 0 @sic R5s110176 Baseline Moving sic@ + B2_Type dlAdvancedRxPerf optional, + B1_Type dTMEhancCap optional, + B1_Type mask19 optional, + B3_Type dTMGPRSHighMultislotClass optional, // not present if maskBit19 = 0 + B1_Type offsetReq optional, // not present if maskBit19 = 0 + B1_Type mask20 optional, // not present if maskBit19 = 0 + B3_Type dTMEGPRSHighMultislotClass optional, // not present if maskBit19 and maskBit20 = 0 + B1_Type rptdACCHCap optional, + B1_Type mask21 optional, + B4_Type gsm710AssocRadioCap optional, // not present if maskBit21 = 0 + B1_Type mask22 optional, + B4_Type tgsm810AssocRadioCap optional, // not present if maskBit22 = 0 + B1_Type cipheringModeSettingCap optional, + B1_Type addPositionCap optional, + B1_Type eutraFDDSupport optional, // rel 8 features + B1_Type eutraTDDSupport optional, + B1_Type eutraMeasAndReporting optional, // @sic R5s100135 sic@ + B1_Type priorityBasedReselection optional, // @sic R5s110176 Baseline Moving sic@ + B1_Type utraCSGCellsReporting optional, // @sic R5s110176 Baseline Moving sic@ + B2_Type vamosLevel optional, // @sic R5s110176 Baseline Moving sic@ + B2_Type tighterCap optional, // @sic R5s120178 Baseline Moving sic@ + B1_Type selectCipheringDLSACCH optional, // @sic R5s120178 Baseline Moving sic@ + B2_Type csPS_SRVCC_G2U optional, // @sic R5s130195 Baseline Moving sic@ + B2_Type csPS_SRVCC_G2E optional, // @sic R5s130195 Baseline Moving sic@ + B1_Type geranNwkSharing optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type eutraWidebandRSRQMeas optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type erBandSupport optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type utraMultipleFreqBandInd optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type eutraMultipleFreqBandInd optional, // @sic R5s150329 Baseline Moving sic@ + B1_Type xtdTSCSetCap optional, // @sic R5s150329 Baseline Moving sic@ + bitstring spareBits2 optional + }; + + // ============================================================================= + // Structured Type Definition + // Reference : 3GPP TS 24.008 clause 10.5.1.7 + // ----------------------------------------------------------------------------- + type record EDGE_Struct { + B1_Type modulationCapability, + B1_Type pwrMask1, + B2_Type eDGE_RF_PowerCapability1 optional, // not present if pwrMask1 = 0 + B1_Type pwrMask2, + B2_Type eDGE_RF_PowerCapability2 optional // not present if pwrMask2 = 0 + }; + + // ============================================================================= + // Structured Type Definition + // Reference : 3GPP TS 24.008 clause 10.5.1.7 + // ----------------------------------------------------------------------------- + type record MS_MeasCapability { + B4_Type sMS_VALUE, + B4_Type sM_VALUE + }; + + // ============================================================================= + // Structured Type Definition + // MS network capability + // 3GPP 24.008 / 10.5.5.12 + // ----------------------------------------------------------------------------- + type record MS_NetworkCap { /* 24.301 cl. 9.9.3.18 -> 24.008 cl. 10.5.5.12 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + Type4Length_Type iel, // @sic R5s110420 sic@ + B1_Type gea1, + B1_Type smCapDedicated, + B1_Type smCapGPRS, + B1_Type ucs2, + B2_Type ssScreeningIndicator, + B1_Type soLSACap, + B1_Type revLevelIndicator, + B1_Type pfcFeatureMode, + B1_Type gea2, + B1_Type gea3, + B1_Type gea4, + B1_Type gea5, + B1_Type gea6, + B1_Type gea7, + B1_Type lcsVACap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type psHOtoUTRAN_IuModeCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type psHOtoEUTRAN_S1ModeCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type emmCombinedCap optional, // @sic R5s110176 Baseline Moving, R5s130477 not present for r99 sic@ + B1_Type isrSupport optional, // @sic R5s130477 not present for r99 sic@ + B1_Type srvccToGERAN_UTRANCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type epcCap optional, // @sic R5s130477 not present for r99 sic@ + B1_Type nfCap optional, // @sic R5s110176 Baseline Moving, not present for Rel-8 R5s110242 sic@ + B1_Type gERANNtwkShareCap optional, // @sic R5s130195 Baseline Moving, not present for Rel-8 sic@ + bitstring spareBits length (0..43) optional + }; + + // ============================================================================= + // Structured Type Definition + // Additional Network Feature Support + // 3G TS 24.008 cl. 10.5.5.31 + // ----------------------------------------------------------------------------- + type record NwkResourceId { + IEI8_Type iei, // + Type4Length_Type iel, // + B10_Type nriContainerValue, // @sic R5s140778 sic@ + B6_Type spareBits // @sic R5s140778 sic@ + }; + + // ============================================================================= + // Structured Type Definition + // PacketFlowIdentifier + // 24.008, section 10.5.6.11 + // ----------------------------------------------------------------------------- + type record PacketFlowIdentifier { /* 24.301 cl. 9.9.4.5 -> 24.008 cl. 10.5.6.11 */ + IEI8_Type iei, // @sic R5s110420 sic@ + Type4Length_Type iel, // @sic R5s110420 sic@ + B1_Type spare, + B7_Type idValue + }; + + // ============================================================================= + // Structured Type Definition + // PLMN list + // 3G TS 24.008 cl. 10.5.1.13 + // ----------------------------------------------------------------------------- + type record PLMN_List { /* 24.301 cl. 9.9.2.4 -> 24.008 cl. 10.5.1.13 */ + IEI8_Type iei, // @sic R5s110420 sic@ + Type4Length_Type iel, // @sic R5s110420 sic@ + record length(1..15) of + NAS_PlmnId plmnList /* list of PLMNs */ + }; + + // ============================================================================= + // Structured Type Definition + // MS network feature support + // 3GPP 24.008 / 10.5.5.15 + // ----------------------------------------------------------------------------- + type record MS_NetworkFeatureSupport { /* 24.301 cl. 9.9.2.0A -> 24.008 cl. 10.5.5.15 */ + IEI4_Type iei, + B3_Type spare, + B1_Type extdPeriodicTimers + }; + + type PLMN_List.plmnList NAS_PlmnIdList_Type; + + // ============================================================================= + // Structured Type Definition + // ProtocolConfigOptions + // 3G TS 24.008 cl. 10.5.6.3 + // ----------------------------------------------------------------------------- + type record ProtocolConfigOptions { /* 24.301 cl. 9.9.4.8 -> 24.008 cl. 10.5.6.3 */ + IEI8_Type iei, // @sic R5s110420 sic@ + Type4Length_Type iel, + B1_Type ext, + B4_Type spare, + B3_Type configProtocol, + record length (0..83) of + ProtocolContainer pco optional + }; + + type record ProtocolContainer { + O2_Type protocolID, /* id is always 2 octets */ + Type4Length_Type protocolLength, + octetstring content optional + }; + + type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; + + // ============================================================================= + // Structured Type Definition + // P-TMSI signature + // 3GPP 24.008 / 10.5.5.8 + // ----------------------------------------------------------------------------- + type record PTMSI_Signature { /* 24.301 cl. 9.9.3.23 -> 24.008 cl. 10.5.5.8 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + Type4Length_Type iel optional, // only present in 24.008 version of DETACH REQUEST message + O3_Type signatureValue + }; + + // ============================================================================= + // Structured Type Definition + // 24.008, clause 10.5.6.5 + // ----------------------------------------------------------------------------- + type record QualityOfService { /* 24.301 cl. 9.9.4.9 -> 24.008 cl. 10.5.6.5 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + B2_Type spare1, + B3_Type delayClass, + B3_Type relabilityClass, + B4_Type peakThroughput, + B1_Type spare2, + B3_Type precedenceClass, + B3_Type spare3, + B5_Type meanThroughput, + B3_Type trafficClass, + B2_Type deliveryOrder, + B3_Type deliveryErrorSDU, + B8_Type maxSduSize, + B8_Type maxBitRateUL, + B8_Type maxBitRateDL, + B4_Type residualBER, + B4_Type sduErrorRatio, + B6_Type transferDelay, + B2_Type trafficHandlingPrio, + B8_Type guaranteedBitRateUL, + B8_Type guaranteedBitRateDL, + B3_Type spare4, + B1_Type signallingInd, + B4_Type sourceStatisticsDescriptor, + B8_Type maxBitRateDL_Ext optional, + B8_Type guaranteedBitRateDL_Ext optional, + B8_Type maxBitRateUL_Ext optional, + B8_Type guaranteedBitRateUL_Ext optional, + B8_Type maxBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ + B8_Type guaranteedBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ + B8_Type maxBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ + B8_Type guaranteedBitRateUL_Ext2 optional // @sic R5s1300195 Baseline Moving sic@ + }; + + // ============================================================================= + // Structured Type Definition + // Radio priority + // 3GPP 24.008 / 10.5.7.2 + // ----------------------------------------------------------------------------- + type record RadioPriority { /* 24.301 cl. 9.9.4.10 -> 24.008 cl. 10.5.7.2 */ + IEI4_Type iei optional, /* present in case of TV; omit in case of V */ + B1_Type spare, + B3_Type levelValue + }; + + // ============================================================================= + // Structured Type Definition + // Codec + // 3G TS 24.008 cl. 10.5.4.32 + // ----------------------------------------------------------------------------- + type record Codec { + O1_Type sysId, // system identifcation + Type4Length_Type len, // length + B8_Type bitMap1to8, // codec bitmap bits 1-8 + B8_Type bitMap9to16 optional // codec bitmap bits 9-16 + }; + + // ============================================================================= + // Structured Type Definition + // Supported Codec List + // 3G TS 24.008 cl. 10.5.4.32 + // ----------------------------------------------------------------------------- + type record CodecList { + IEI8_Type iei, // '01000000'B (40 hex) @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + record of Codec codec// list of codecs + }; + + // ============================================================================= + // Structured Type Definition + // TMSI status + // 3GPP 24.008 cl. 10.5.6.17 + // ----------------------------------------------------------------------------- + type record Request_Type { /* 24.301 cl. 9.9.4.11 */ + // IEI is always skipped + B1_Type spare, + B3_Type typeValue + }; + + // ============================================================================= + // Structured Type Definition + // TMSI status + // 3GPP 24.008 cl. 10.5.5.4 + // ----------------------------------------------------------------------------- + type record TMSI_Status { + IEI4_Type iei optional, + B3_Type spare3, + TmsiStatusValue flag // Flag + }; + + // ============================================================================= + // Structured Type Definition + // TrafficFlowTemplate + // 3GPP 24.008 / 10.5.6.12 + // ----------------------------------------------------------------------------- + type record TrafficFlowTemplate { /* 24.301 cl. 9.9.4.13 -> 24.008 cl. 10.5.6.12 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + B3_Type tftOperationCode, + B1_Type eBit, + B4_Type noOfPktFilter, + record of PacketFilter packetFilterList optional, + record of TftParameter parameterList optional + }; + + type record TftParameter { + IEI8_Type iei, + Type4Length_Type iel, + octetstring contents + }; + + type record PacketFilter { + B2_Type spare, // @sic R5s130195 Baseline Moving sic@ + B2_Type direction, // @sic R5s130195 Baseline Moving sic@ + IEI4_Type iei, // @sic R5s130195 Baseline Moving sic@ + B8_Type precedence optional, + Type4Length_Type iel optional, + PacketFilterContents contents optional + }; + + type record of PacketFilterComponent PacketFilterContents; + + type record PacketFilterComponent { + O1_Type id, + PacketFilterComponentValue packetFilterComponentValue + }; + + type union PacketFilterComponentValue { + O8_Type ipv4RemoteAddress, + O32_Type ipv6RemoteAddress, + O1_Type protocolIdNextHeader, + O2_Type singleLocalPort, + O4_Type localPortRange, + O2_Type singleRemotePort, + O4_Type remotePortRange, + O4_Type securityParameterIndex, + O2_Type typeOfServiceTrafficClass, + O3_Type flowLabel + }; + + type record UE_NetworkCap { // 24.301 cl. 9.9.3.34 + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ + O1_Type eeaCap, // @sic R5s100135 sic@ + O1_Type eiaCap, // @sic R5s100135 sic@ + O1_Type ueaCap optional, // @sic R5s100135 sic@ + O1_Type uiaCap optional, // @sic R5s100135 sic@ + O1_Type srvcc_LPP_ProSeCap optional, // @sic R5s150329 Baseline Moving sic@ + O1_Type proSeCap optional, // @sic R5s150329 Baseline Moving sic@ + octetstring spare optional // @sic R5s100135 sic@ + }; + + type record ReAttemptIndicator { // 24.301 cl. 9.9.4.13A, 24.008 cl. 10.5.6.5A + // The two definitions are exactly the same. + // The only difference is the meaning of the ratcValue bit + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ + B7_Type spare, + B1_Type ratcValue +}; + + // ============================================================================= + // Structured Type Definition + // Authentication Parameter AUTN + // 3G TS 24.008 cl. 10.5.3.1.1 + // ----------------------------------------------------------------------------- + type record AUTN { /* 24.301 cl. 9.9.3.2 -> 24.008 cl. 10.5.3.1.1 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, // @sic R5s110420 sic@ + B128_Type aUTN /* (as for UMTS) */ + }; + + // ============================================================================= + // Structured Type Definition + // Authentication Failure Parameter (TLV) + // 3G TS 24.008 cl. 10.5.3.2.2 + // ----------------------------------------------------------------------------- + type record AuthenticationFailureParameter { + IEI8_Type iei, // '00100010'B for MM (22 hex) + // '00110000'B for GMM (30 hex) + Type4Length_Type iel, // M 1 octet + B112_Type auts // AUTS, 14 octets + }; + + // ============================================================================= + // Structured Type Definition + // Authentication Parameter RAND (TV, 17 octets) + // 3G TS 24.008 cl. 10.5.3.1 + // ----------------------------------------------------------------------------- + type record RAND { + IEI8_Type iei optional, // '00100001'B (21 hex) + B128_Type randValue // Authentication Parameter RAND value + }; + + type record DaylightSavingTime { /* 24.301 cl. 9.9.3.5 -> 24.008 cl. 10.5.3.12 */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ + B6_Type spare, + B2_Type val + }; + + type record NetworkName { /* 24.301 cl. 9.9.3.21 -> 24.008 cl. 10.5.3.5a */ + IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ + Type4Length_Type iel, + B1_Type ext, + B3_Type codingScheme, + B1_Type addCI, + B3_Type spareBitCnt, + octetstring text + }; + + type record TimeZone { /* 24.301 cl. 9.9.3.26 -> 24.008 cl. 10.5.3.8 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + O1_Type timeZone + }; + + type record TimeZoneAndTime { /* 24.301 cl. 9.9.3.27 -> 24.008 cl. 10.5.3.9 */ + IEI8_Type iei optional, /* present in case of TV; omit in case of V */ + O1_Type year, + O1_Type month, + O1_Type day, + O1_Type hour, + O1_Type minute, + O1_Type second, + O1_Type timeZone + }; + + // ============================================================================= + // Structured Type Definition + // 3G TS 24.008 cl. 10.5.5.28 + // @sic R5s110176 Baseline Moving sic@ + // ----------------------------------------------------------------------------- + type record VoiceDomainPref { + IEI8_Type iei optional, // 01111110'B + Type4Length_Type iel optional, // length + B5_Type spareBits, + B1_Type ueUsageSetting, + B2_Type voiceDomainPrefEUTRA // @sic R5s110233 sic@ + }; + + type record IdentityType { /* 24.301 cl. 9.9.3.15 -> 24.008 cl. 10.5.3.4 */ + // IEI is always skipped + B1_Type spare, + NAS_IdType typeOfId + }; + + // ============================================================================= + // Structured Type Definition + // REGISTER + // ue->n or n->ue, 3GPPP TS 24.080, 2.4 + // ----------------------------------------------------------------------------- + type record REGISTER { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] + MessageType msgType, // message type BITSTRING [8] + FacilityIE facility_Str, // M, BER enconded ASN.1 object + SS_VersionInd sS_VersionInd optional // O for ue->n, N/A for n->ue + }; + + // ============================================================================= + // Structured Type Definition + // FACILITY + // n->ue, 3GPPP TS 24.080, 2.3 and 24.008, 10.4 + // ----------------------------------------------------------------------------- + type record FACILITY { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] + MessageType msgType, // message type BITSTRING [8], for n->ue "00111010", for ue->n "xx111010" (see 24.007) + FacilityIE facility_Str // M, BER enconded ASN.1 object + }; + + // ============================================================================= + // Structured Type Definition + // FACILITY + // ue->n 3GPPP TS 24.080, 2.3 and 24.008, 10.4 + // ----------------------------------------------------------------------------- + type record FACILITYul { + TI ti, // transaction identifier BITSTRING [4] + ProtocolDiscriminator sS_ProtocolDiscriminator, // "1011" Protocol discriminator for supplementary services BITSTRING [4] + MessageType msgType, // message type BITSTRING [8], for n->ue "00111010", for ue->n "xx111010" (see 24.007) + FacilityIE facility_Str, // M, BER enconded ASN.1 object + SS_VersionInd sS_VersionInd optional // O @sic R5s140989 sic@ + }; + // ============================================================================= + // Structured Type Definition + // Facility Information Element + // 3GPPP TS 24.080, 3.6 / 24.008, 10.5.4.15 + // ----------------------------------------------------------------------------- + type record FacilityIE { + IEI8_Type iei optional, // Facility IE identifier + Type4Length_Type iel, // length of Facility contents + octetstring components // ASN.1 definitions BER encoded + }; + + // ============================================================================= + // Structured Type Definition + // Transaction identifier + // 3G TS 24.007 cl. 11.2.3.1.3 + // ----------------------------------------------------------------------------- + type record TI { + B1_Type tiFlag, // Flag + B3_Type tiVal // TIO + }; + + // ============================================================================= + // Structured Type Definition + // SS version indicator + // 3G TS 24.008 cl. 10.5.4.24 + // 1. Usually this IE has only one octet of content. + // Exact definition see TS 24.080 + // ----------------------------------------------------------------------------- + type record SS_VersionInd { + IEI8_Type iei, // '01111111'B @sic R5s110420 sic@ + Type4Length_Type iel, // length @sic R5s110420 sic@ + O1_Type sS_VersionInfo // ss version information + }; + + // ============================================================================= + // Structured Type Definition + // RESETUEPOSITIONINGSTOREDINFORMATION + // n->ue, 3GPPP TS 34.109, 6.10/36.509 6.9 + // ----------------------------------------------------------------------------- + type record RESETUEPOSITIONINGSTOREDINFORMATION { + SkipIndicator skipIndicator, // "0000" skip indicator BITSTRING [4] + ProtocolDiscriminator protocolDiscriminator, // M, "1111" Protocol discriminator for test procedure messages BITSTRING [4] + MessageType msgType, // M, message type BITSTRING [8] + B8_Type uePositioningTech // M, BITSTRING [8] + }; + + // ============================================================================= + // Structured Type Definition + // WLANOffloadAcceptability + // 3GPPP TS 24.008 10.5.6.20 + // ----------------------------------------------------------------------------- + type record WLANOffloadAcceptability { + IEI4_Type iei, + B2_Type spare, + B1_Type utranOffload, + B1_Type eutranOffload +}; + +} with { encode "NAS Types" } diff --git a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu.ttcn b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu.ttcn rename to LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu.ttcn index e93010d..550d204 100644 --- a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu.ttcn +++ b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ // $Rev: 9858 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_AspTypes.ttcn b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_AspTypes.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_AspTypes.ttcn rename to LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_AspTypes.ttcn index 83beb2c..856f249 100644 --- a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_AspTypes.ttcn +++ b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_AspTypes.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-04-01 15:09:57 +0200 (Mon, 01 Apr 2013) $ // $Rev: 8395 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_Component.ttcn b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_Component.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_Component.ttcn rename to LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_Component.ttcn index 898fd9b..346f5e7 100644 --- a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_Component.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ // $Rev: 9858 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_Templates.ttcn b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_Templates.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_Templates.ttcn index 97c1a9f..88dde69 100644 --- a/LTE_A_IWD_14wk37/Common/NasEmulation/NasEmu_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/NasEmulation/NasEmu_Templates.ttcn @@ -2,15 +2,16 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-10-23 11:47:20 +0200 (Wed, 23 Oct 2013) $ -// $Rev: 9858 $ +// @version: IWD_15wk38 +// $Date: 2015-02-16 18:58:50 +0100 (Mon, 16 Feb 2015) $ +// $Rev: 12925 $ /******************************************************************************/ module NasEmu_Templates { import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from CommonDefs all; import from EUTRA_CommonDefs all; import from NAS_CommonTypeDefs all; import from EPS_NAS_TypeDefs all; diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn similarity index 89% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn index 1712912..7918da5 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ANR_CommonFunctions.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-07 23:45:32 +0200 (Sat, 07 Jun 2014) $ -// $Rev: 11666 $ +// @version: IWD_15wk38 +// $Date: 2015-09-08 10:44:47 +0200 (Tue, 08 Sep 2015) $ +// $Rev: 14230 $ /******************************************************************************/ module UTRAN_ANR_CommonFunctions { @@ -24,12 +24,13 @@ module UTRAN_ANR_CommonFunctions { /* * @desc Function to send UE INFORMATION REQUEST message and receive UE INFORMATION RESPONSE message for Inter-RAT ANR * and to verify if IE "Logged ANR Report Info List" is present there + * Returns true if all expected items were found, false overwise * @param p_CellId * @param p_IsGSM - boolean, if true GMS measurements should be retrieved, EUTRA otherwise * @param p_ExpectedLoggedANRReportInfoList - lists expected reported cells, it will be compared against the cells in the received list * @param p_ExpectedMatches - number of matches to be found in the received list - * @return Returns true if all expected items were found, false overwise - * @status + * @return boolean + * @status APPROVED (LTE_A) */ function f_UTRAN_RetrieveANRMeasurements_InterRat(UTRAN_CellId_Type p_CellId, boolean p_IsGSM, @@ -40,7 +41,8 @@ module UTRAN_ANR_CommonFunctions { var UTRAN_SecurityInfo_Type v_SecurityInfo; var U_RLC_AM_IND v_DataInd; var LoggedANRReportInfoList v_ReceivedLoggedANRReportInfoList; - var integer i, j; + var integer i; + var integer j; var integer v_FoundMatches := 0; v_CellId := f_UTRAN_GetCellIndentity(p_CellId); @@ -50,13 +52,12 @@ module UTRAN_ANR_CommonFunctions { U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, cds_UEInformationRequest_LoggedANRReportRequest(v_SecurityInfo.dl_IntegrityCheckInfo))); // Receive UE INFORMATION RESPONSE message and verify if IEs are set correctly - U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, tsc_RB2, cr_UEInformationResponse_LoggedANRReport_Any)) -> value v_DataInd; + U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, tsc_RB4, cr_UEInformationResponse_LoggedANRReport_Any)) -> value v_DataInd; /* @sic R5-153731 sic@ */ v_ReceivedLoggedANRReportInfoList := v_DataInd.data.aM_message.uL_DCCH_Message.message_.ul_DCCH_MessageType_ext.ueInformationResponse.loggedANRReportInfoList; for (i:= 0; i< lengthof(p_ExpectedLoggedANRReportInfoList); i:=i+1){ for (j:= 0; j< lengthof(v_ReceivedLoggedANRReportInfoList); j:=j+1){ if (match(v_ReceivedLoggedANRReportInfoList[j].servingCell, p_ExpectedLoggedANRReportInfoList[i].servingCell) and match(v_ReceivedLoggedANRReportInfoList[j].plmn_Identity, p_ExpectedLoggedANRReportInfoList[i].plmn_Identity)) { - if (p_IsGSM) { //Measured cell should be a GMS one if (match(v_ReceivedLoggedANRReportInfoList[j].loggedCellInfo.loggedGSMCellInfo.plmn_Identity, p_ExpectedLoggedANRReportInfoList[i].loggedCellInfo.loggedGSMCellInfo.plmn_Identity) and match(v_ReceivedLoggedANRReportInfoList[j].loggedCellInfo.loggedGSMCellInfo.lac, p_ExpectedLoggedANRReportInfoList[i].loggedCellInfo.loggedGSMCellInfo.lac)) { @@ -75,5 +76,4 @@ module UTRAN_ANR_CommonFunctions { } return (v_FoundMatches == p_ExpectedMatches); } - -} // end of module +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn similarity index 65% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn index ed73684..fdb277a 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ANR_MDT_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-07 23:45:32 +0200 (Sat, 07 Jun 2014) $ -// $Rev: 11666 $ +// @version: IWD_15wk38 +// $Date: 2015-09-12 11:05:29 +0200 (Sat, 12 Sep 2015) $ +// $Rev: 14310 $ /******************************************************************************/ module UTRAN_ANR_MDT_Templates { @@ -20,12 +20,21 @@ module UTRAN_ANR_MDT_Templates // TEMPLATES //========================================================================= //Configuring of IE for ANR over UTRAN testing - template (value) DL_DCCH_Message cs_LoggingMeasurementConfiguration_ANR_InterRAT(IntegrityCheckInfo p_IntegrityCheckInfo, - RRC_TransactionIdentifier p_RRC_TI, - LoggedANRConfigurationInfo_LoggingDuration_Type p_LoggingDuration := hr1, - template (omit) LoggedANRConfigurationInfo_InterRATANRforEUTRAIndicator_Type p_ANRforEUTRA_Indicator := omit, - template (omit) LoggedANRConfigurationInfo_InterRATANRforGSMIndicator_Type p_ANRforGSM_Indicator := omit):= + + template (value) IntraUTRAANR cs_IntraUTRAANR(template (value) LoggingAbsoluteThreshold p_LoggingAbsoluteThreshold, + template (omit) LoggingRelativeThreshold p_LoggingRelativeThreshold := omit) := { + loggingAbsoluteThreshold := p_LoggingAbsoluteThreshold, + loggingRelativeThreshold := p_LoggingRelativeThreshold + }; + + template (value) DL_DCCH_Message cs_LoggingMeasurementConfiguration_ANR(IntegrityCheckInfo p_IntegrityCheckInfo, + RRC_TransactionIdentifier p_RRC_TI, + LoggedANRConfigurationInfo_LoggingDuration_Type p_LoggingDuration := hr1, + template (omit) IntraUTRAANR p_IntraUTRAANR := omit, + template (omit) LoggedANRConfigurationInfo_InterRATANRforEUTRAIndicator_Type p_ANRforEUTRA_Indicator := omit, + template (omit) LoggedANRConfigurationInfo_InterRATANRforGSMIndicator_Type p_ANRforGSM_Indicator := omit):= + { /* @status APPROVED (LTE_A) */ integrityCheckInfo := p_IntegrityCheckInfo, message_ := { loggingMeasurementConfiguration := { @@ -36,7 +45,7 @@ module UTRAN_ANR_MDT_Templates loggedMeasurementsConfigurationInfo := omit, loggedANRConfigurationInfo := { loggingDuration := p_LoggingDuration, - intraUTRAANR := omit, + intraUTRAANR := p_IntraUTRAANR, interRATANRforEUTRAIndicator := p_ANRforEUTRA_Indicator, interRATANRforGSMIndicator := p_ANRforGSM_Indicator } @@ -54,7 +63,7 @@ module UTRAN_ANR_MDT_Templates B28_Type p_EUTRA_CellId, EARFCN p_EARFCN , EUTRA_PhysicalCellIdentity p_EUTRA_PhysicalCellIdentity):= - { + { /* @status APPROVED (LTE_A) */ loggedEUTRACellInfo:={ plmn_Identity := p_PLMN_Identity, trackingAreaCode := p_TrackingAreaCode, @@ -67,7 +76,7 @@ module UTRAN_ANR_MDT_Templates template (present) LoggedANRReportInfoList cr_LoggedANRReportInfo_1Entry(PLMN_Identity p_PLMN_Identity, CellIdentity p_CellIdentity, template (present) LoggedCellInfo p_LoggedCellInfo) := - { + { /* @status APPROVED (LTE_A) */ { plmn_Identity := p_PLMN_Identity, servingCell := p_CellIdentity, @@ -75,46 +84,32 @@ module UTRAN_ANR_MDT_Templates } }; - template (value) DL_DCCH_Message cds_UEInformationRequest_LoggedANRReportRequest(IntegrityCheckInfo p_IntegrityCheckInfo, - RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) - modifies cs_UEInformationRequest_LoggedMeasReportRequest:= - { - message_ := { - ueInformationRequest := { - criticalExtensions :={ - r10 := { - ueInformationRequest_r10 := - { - loggedMeasReportRequest := omit, - loggedANRReportRequest := true_ - } - } - } - } - } - }; - - template (present) UL_DCCH_Message cr_UEInformationResponse_LoggedANRReport_Any := - {/*@status */ - integrityCheckInfo := ?, + template (present) UL_DCCH_Message cr_UEInformationResponse_LoggedANRReport_Any(template (present) IntegrityCheckInfo p_IntegrityCheckInfo := ?, + template (present) RRC_TransactionIdentifier p_RRC_TI := ?, + template LoggedMeasReport p_LoggedMeasReport := omit, + template LoggedANRReportInfoList p_LoggedANRReportInfoList := ?, + template UEInformationResponse.vb50NonCriticalExtensions p_NonCriticalExtensions := omit) := + { /* @status APPROVED (LTE_A) */ + integrityCheckInfo := p_IntegrityCheckInfo, message_ := { - ul_DCCH_MessageType_ext :={ + ul_DCCH_MessageType_ext := { ueInformationResponse := { - rrc_TransactionIdentifier := ?, - loggedMeasReport := omit, - loggedANRReportInfoList := ?, - vb50NonCriticalExtensions := omit + rrc_TransactionIdentifier := p_RRC_TI, + loggedMeasReport := p_LoggedMeasReport, + loggedANRReportInfoList := p_LoggedANRReportInfoList, + vb50NonCriticalExtensions := p_NonCriticalExtensions } } } }; - + //======================================================================================================================== // UE INFORMATION REQUEST //======================================================================================================================== + template (value) DL_DCCH_Message cs_UEInformationRequest_LoggedMeasReportRequest(IntegrityCheckInfo p_IntegrityCheckInfo, RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) := - { + { /* @status APPROVED (LTE_A) */ integrityCheckInfo := p_IntegrityCheckInfo, message_ := { ueInformationRequest := { @@ -133,4 +128,22 @@ module UTRAN_ANR_MDT_Templates } }; + template (value) DL_DCCH_Message cds_UEInformationRequest_LoggedANRReportRequest(IntegrityCheckInfo p_IntegrityCheckInfo, + RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) + modifies cs_UEInformationRequest_LoggedMeasReportRequest := + { /* @status APPROVED (LTE_A) */ + message_ := { + ueInformationRequest := { + criticalExtensions := { + r10 := { + ueInformationRequest_r10 := { + loggedMeasReportRequest := omit, + loggedANRReportRequest := true_ + } + } + } + } + } + }; + } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn index e7796b9..e38e507 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 21:20:35 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12193 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module UTRAN_ASN1_ASP_RAB_Templates @@ -35,7 +35,7 @@ module UTRAN_ASN1_ASP_RAB_Templates Unit dB, Range -32dB .. +31.75dB, Step +0.25dB (25.433, 9.2.2.13Id), offset relative to P-CPICH @status APPROVED (LTE_IRAT, UTRAN) */ - const integer tsc_E_RGCH_PowerOffset := 128; /* Range and Step are FFS (25.433, 9.2.2.13Ie) + const integer tsc_E_RGCH_PowerOffset := 128; /* Range:-32 .. +31.75 dB, Step: 0.25 dB Offset relative to P-CPICH @status APPROVED (UTRAN) */ @@ -91,7 +91,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) DPCHInfo_r5OrLater_FDD cs_DPCHInfo_DL_FDD(template (value) DL_DPCHInfo_r8_FDD p_DL_DPCHInfo, template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ r8 := { ul_DPCHInfo := omit, dl_DPCHInfo := p_DL_DPCHInfo, @@ -103,7 +103,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) DPCHInfo_r5OrLater_TDD cs_DPCHInfo_DL_TDD(template (value) DL_DPCHInfo_r8_TDD p_DL_DPCHInfo, template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ r8 := { ul_DPCHInfo := omit, dl_DPCHInfo := p_DL_DPCHInfo, @@ -115,7 +115,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) DPCHInfo_r5OrLater_FDD cs_DPCHInfo_UL_FDD(template (value) UL_DPCH_Info_r7 p_UL_DPCHInfo, template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ r8 := { ul_DPCHInfo := p_UL_DPCHInfo, dl_DPCHInfo := omit, @@ -127,7 +127,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) DPCHInfo_r5OrLater_TDD cs_DPCHInfo_UL_TDD(template (value) UL_DPCH_Info_r7 p_UL_DPCHInfo, template (omit) HS_DPCCHInfo_r8 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ r8 := { ul_DPCHInfo := p_UL_DPCHInfo, dl_DPCHInfo := omit, @@ -141,7 +141,7 @@ module UTRAN_ASN1_ASP_RAB_Templates SF512_AndCodeNumber p_Sf, SecondaryScramblingCode p_SecondaryScramblingCode := tsc_DL_DPCH1_2ndScrC, DL_TxPower p_Dl_TxPower := tsc_DL_TxPower_DPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := p_DL_CommonInformation, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD(p_Sf, p_SecondaryScramblingCode) @@ -159,7 +159,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) HS_DPCCHInfo_r8 cs_HS_DPCCHInfo := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cqi_RepetitionFactor := 1, ackNackRepetitionFactor := 1, mimoStatus := false, @@ -169,7 +169,7 @@ module UTRAN_ASN1_ASP_RAB_Templates // ----------------------------------------------------------------------------- template (value) DL_DPCHInfo_r8_TDD cs_DL_DPCH_64k_PS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ dl_CommonInformation := cs_DL_CommonInfo_r8_TDD, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD @@ -178,7 +178,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) DL_DPCHInfo_r8_TDD cs_DL_DPCH_122_AMR_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ dl_CommonInformation := cs_DL_CommonInfo_r8_TDD, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_Speech_TDD @@ -187,7 +187,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) DL_DPCHInfo_r8_TDD cs_DL_DPCH_PS_and_ConvSpeech_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ dl_CommonInformation := cs_DL_CommonInfo_r8_TDD, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_r7_PS_and_ConvSpeech_TDD @@ -199,39 +199,107 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CphyUlConnectedTrCHList_Type cs_DCH_336_148_UL_Info_FDD(TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1) := // @sic R5s120070 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyUlConnectedTrCH_FDD_DCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_FDD), cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH5, cs_DCH_148_TFS_FDD) }; - template (value) CphyDlConnectedTrCHList_Type cs_DCH_336_148_DL_Info_FDD (TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1) := // @sic R5s120070 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) CphyUlConnectedTrCHList_Type cs_DCH_81_103_60_148_UL_FDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH1, cs_DCH_81_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH2, cs_DCH_103_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH3, cs_DCH_60_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH5, cs_DCH_148_TFS_FDD) + }; + + template (value) CphyUlConnectedTrCHList_Type cs_DCH_148_81_103_60_336_UL_FDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH1, cs_DCH_148_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH2, cs_DCH_81_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH3, cs_DCH_103_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH4, cs_DCH_60_TFS_FDD), + cs_CphyUlConnectedTrCH_FDD_DCH(tsc_UL_DCH5, cs_DCH_336_TFS_FDD) + }; + + template (value) CphyDlConnectedTrCHList_Type cs_DCH_336_148_DL_Info_FDD(TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1) := // @sic R5s120070 sic@ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyDlConnectedTrCH_FDD_DCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_FDD), cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD) }; template (value) CphyDlConnectedTrCHList_Type cs_DCH_148_DL_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD) }; + template (value) CphyDlConnectedTrCHList_Type cs_DCH_81_103_60_148_DL_FDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH1, cs_DCH_81_TFS_DL_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH2, cs_DCH_103_TFS_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH3, cs_DCH_60_TFS_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD) // @sic R5s110547 sic@ + }; + + template (value) CphyDlConnectedTrCHList_Type cs_DCH_148_81_103_60_336_DL_FDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH1, cs_DCH_148_TFS_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH2, cs_DCH_81_TFS_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH3, cs_DCH_103_TFS_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH4, cs_DCH_60_TFS_FDD), + cs_CphyDlConnectedTrCH_FDD_DCH(tsc_DL_DCH5, cs_DCH_336_TFS_FDD) + }; + template (value) CphyUlConnectedTrCHList_TDD_Type cs_DCH_336_148_UL_Info_TDD (TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyUlConnectedTrCH_TDD_DCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_TDD), // @sic R5s130447 sic@ cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH5, cs_DCH_148_TFS_UL_TDD) }; - + + template (value) CphyUlConnectedTrCHList_TDD_Type cs_DCH_81_103_60_148_UL_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH1, cs_DCH_81_TFS_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH2, cs_DCH_103_TFS_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH3, cs_DCH_60_TFS_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH5, cs_DCH_148_TFS_UL_TDD) + }; + + template (value) CphyUlConnectedTrCHList_TDD_Type cs_DCH_148_81_103_60_336_UL_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH1, cs_DCH_148_TFS_UL_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH2, cs_DCH_81_TFS_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH3, cs_DCH_103_TFS_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH4, cs_DCH_60_TFS_TDD), + cs_CphyUlConnectedTrCH_TDD_DCH(tsc_UL_DCH5, cs_DCH_336_TFS_TDD) + }; + template (value) CphyDlConnectedTrCHList_TDD_Type cs_DCH_148_DL_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH5, cs_DCH_148_TFS_DL_TDD) }; template (value) CphyDlConnectedTrCHList_TDD_Type cs_DCH_336_148_DL_Info_TDD (TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyDlConnectedTrCH_TDD_DCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_TDD), // @sic R5s130447 sic@ cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH5, cs_DCH_148_TFS_DL_TDD) }; + template (value) CphyDlConnectedTrCHList_TDD_Type cs_DCH_81_103_60_148_DL_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH1, cs_DCH_81_TFS_DL_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH2, cs_DCH_103_TFS_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH3, cs_DCH_60_TFS_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH5, cs_DCH_148_TFS_DL_TDD) + }; + + template (value) CphyDlConnectedTrCHList_TDD_Type cs_DCH_148_81_103_60_336_DL_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH1, cs_DCH_148_TFS_DL_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH2, cs_DCH_81_TFS_DL_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH3, cs_DCH_103_TFS_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH4, cs_DCH_60_TFS_TDD), + cs_CphyDlConnectedTrCH_TDD_DCH(tsc_DL_DCH5, cs_DCH_336_TFS_TDD) + }; + // ----------------------------------------------------------------------------- template (value) CphyTrchConfigReq cs_CphyTrchConfigReq_Common_FDD(template (value) SS_ActivationTime p_ActivationTime, @@ -243,8 +311,10 @@ module UTRAN_ASN1_ASP_RAB_Templates template (omit) E_DCHMACdFlows p_E_DCHMacdFlows := omit, template (omit) EHS_DSCH_Flows p_Ehs_DSCH_Flows := omit, template (omit) EHS_DSCH_CommonFlows p_Ehs_DSCH_CommonFlows := omit, - template (omit) EHS_DSCH_Flows_r9 p_Ehs_DSCH_Flows_r9 := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (omit) EHS_DSCH_Flows_r9 p_Ehs_DSCH_Flows_r9 := omit, + template (omit) TrCHInfo_r10OrLaterExtensionType p_TrCHInfoExtension := omit, //@sic R5-145142 sic@ + template (omit) CommonE_DCHMACdFlows p_CommonE_DCHMACdFlows := omit) := //@sic feFACH R5-150125 sic@ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := p_ActivationTime, ulconnectedTrCHList := p_UlconnectedTrCHList, ulTFCS := p_UlTfcs, @@ -254,9 +324,9 @@ module UTRAN_ASN1_ASP_RAB_Templates e_DCHMacdFlows := p_E_DCHMacdFlows, ehs_DSCH_Flows := p_Ehs_DSCH_Flows, ehs_DSCH_CommonFlows := p_Ehs_DSCH_CommonFlows, - e_DCHMacd_CommonFlows := omit, + e_DCHMacd_CommonFlows := p_CommonE_DCHMACdFlows, ehs_DSCH_Flows_r9 := p_Ehs_DSCH_Flows_r9, // @sic R5s110176 Baseline Moving sic@ - relAspTypeExtension := omit // @sic R5-130613 sic@ + relAspTypeExtension := p_TrCHInfoExtension // @sic R5-130613 sic@ }; template (value) CphyTrchConfigReq_TDD cs_CphyTrchConfigReq_Common_TDD(template (value) SS_ActivationTime p_ActivationTime, @@ -268,7 +338,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (omit) E_DCHMACdFlows_TDD p_E_DCHMacdFlows := omit, template (omit) EHS_DSCH_Flows p_Ehs_DSCH_Flows := omit, template (omit) EHS_DSCH_CommonFlows p_Ehs_DSCH_CommonFlows := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := p_ActivationTime, ulconnectedTrCHList := p_UlconnectedTrCHList, ulTFCS := p_UlTfcs, @@ -286,18 +356,18 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CphyTrchConfigReq cs_CphyTrchConfigReq_UL_TrCh_FDD(template (value) SS_ActivationTime p_ActivationTime, template (omit) CphyUlConnectedTrCHList_Type p_UlconnectedTrCHList, template (omit) TFCS p_UlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_CphyTrchConfigReq_Common_FDD(p_ActivationTime, p_UlconnectedTrCHList, p_UlTfcs); template (value) CphyTrchConfigReq cs_CphyTrchConfigReq_DL_TrCh_FDD(template (value) SS_ActivationTime p_ActivationTime, template (omit) CphyDlConnectedTrCHList_Type p_DlconnectedTrCHList, template (omit) TFCS p_DlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_CphyTrchConfigReq_Common_FDD(p_ActivationTime, omit, omit, p_DlconnectedTrCHList, p_DlTfcs); template (value) CphyTrchConfigReq cs_CphyTrchConfigReq_HS_DSCHMacdFlows_FDD(template (value) SS_ActivationTime p_ActivationTime, template (omit) HS_DSCHMACdFlows p_HsDSCHMacdFlows) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyTrchConfigReq_Common_FDD(p_ActivationTime, omit, omit, omit, omit, p_HsDSCHMacdFlows); // ----------------------------------------------------------------------------- @@ -305,18 +375,18 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CphyTrchConfigReq_TDD cs_CphyTrchConfigReq_UL_TrCh_TDD(template (value) SS_ActivationTime p_ActivationTime, template (omit) CphyUlConnectedTrCHList_TDD_Type p_UlconnectedTrCHList, template (omit) TFCS p_UlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_CphyTrchConfigReq_Common_TDD(p_ActivationTime, p_UlconnectedTrCHList, p_UlTfcs); template (value) CphyTrchConfigReq_TDD cs_CphyTrchConfigReq_DL_TrCh_TDD(template (value) SS_ActivationTime p_ActivationTime, template (omit) CphyDlConnectedTrCHList_TDD_Type p_DlconnectedTrCHList, template (omit) TFCS p_DlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_CphyTrchConfigReq_Common_TDD(p_ActivationTime, omit, omit, p_DlconnectedTrCHList, p_DlTfcs); template (value) CphyTrchConfigReq_TDD cs_CphyTrchConfigReq_HS_DSCHMacdFlows_TDD(template (value) SS_ActivationTime p_ActivationTime, template (omit) HS_DSCHMACdFlows_TDD p_HSDSCHMacdFlows) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_CphyTrchConfigReq_Common_TDD(p_ActivationTime, omit, omit, omit, omit, p_HSDSCHMacdFlows); @@ -330,7 +400,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (omit) EHS_DSCH_Flows p_Ehs_DSCH_Flows := omit, template (omit) EHS_DSCH_CommonFlows p_Ehs_DSCH_CommonFlows := omit, template (omit) EHS_DSCH_Flows_r9 p_Ehs_DSCH_Flows_r9 := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := p_UlconnectedTrCHList, ulTFCS := p_UlTfcs, dlconnectedTrCHList := p_DlconnectedTrCHList, @@ -344,16 +414,16 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) TrCHInfo cs_TrCHInfo_UL_TrCh_FDD(template (omit) UlConnectedTrCHList_Type p_UlconnectedTrCHList, template (omit) TFCS p_UlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_TrCHInfo_Common_FDD(p_UlconnectedTrCHList, p_UlTfcs, omit, omit); template (value) TrCHInfo cs_TrCHInfo_DL_TrCh_FDD(template (omit) DlConnectedTrCHList_Type p_DlconnectedTrCHList, template (omit) TFCS p_DlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_TrCHInfo_Common_FDD(omit, omit, p_DlconnectedTrCHList, p_DlTfcs); template (value) TrCHInfo cs_TrCHInfo_HS_DSCHMacdFlows_FDD(template (value) HS_DSCHMACdFlows p_HsDSCHMacdFlows) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_TrCHInfo_Common_FDD(omit, omit, omit, omit, p_HsDSCHMacdFlows); template (value) TrCHInfo cs_TrCHInfo_Common_FDD_r9(template (omit) UlConnectedTrCHList_Type p_UlconnectedTrCHList, @@ -365,68 +435,86 @@ module UTRAN_ASN1_ASP_RAB_Templates /* @status APPROVED (UTRAN) */ cs_TrCHInfo_Common_FDD(p_UlconnectedTrCHList, p_UlTfcs, p_DlconnectedTrCHList, p_DlTfcs, p_HsDSCHMacdFlows, -, -, p_Ehs_DSCH_Flows); - template (value) TrCHInfo cs_TrChInfoUL_122_AMR_FDD := cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_122_AMR_FDD, cs_TFCS_Cmpl0_1_11_12_13_23_Rx); /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (value) TrCHInfo cs_TrChInfoDL_122_AMR_FDD := cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_122_AMR_FDD, cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) TrCHInfo cs_TrChInfoUL_122_AMR_FDD := cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_122_AMR_FDD, cs_TFCS_Cmpl0_1_11_12_13_23_Rx); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + template (value) TrCHInfo cs_TrChInfoDL_122_AMR_FDD := cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_122_AMR_FDD, cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ // ----------------------------------------------------------------------------- template (value) UlConnectedTrCH_Type cs_UlConnectedTrCH(integer p_Trchid, template (value) CommonOrDedicatedTFS p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_Trchid, transportChannelInfo := p_CommonOrDedicatedTFS }; template (value) DlConnectedTrCH_Type cs_DlConnectedTrCH(integer p_Trchid, template (value) CommonOrDedicatedTFS p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_Trchid, transportChannelInfo := p_CommonOrDedicatedTFS }; template (value) UlConnectedTrCH_TDD_Type cs_UlConnectedTrCH_TDD(integer p_Trchid, template (value) CommonOrDedicatedTFS_TDD p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_Trchid, transportChannelInfo := p_CommonOrDedicatedTFS }; template (value) DlConnectedTrCH_TDD_Type cs_DlConnectedTrCH_TDD(integer p_Trchid, template (value) CommonOrDedicatedTFS_TDD p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_Trchid, transportChannelInfo := p_CommonOrDedicatedTFS }; template (value) UlConnectedTrCHList_Type cs_TrChInfoTrCHListUL_122_AMR_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_UlConnectedTrCH(tsc_UL_DCH1, cs_DCH_81_TFS_FDD), cs_UlConnectedTrCH(tsc_UL_DCH2, cs_DCH_103_TFS_FDD), cs_UlConnectedTrCH(tsc_UL_DCH3, cs_DCH_60_TFS_FDD), cs_UlConnectedTrCH(tsc_UL_DCH5, cs_DCH_148_TFS_FDD) }; + template (value) UlConnectedTrCHList_Type cs_TrChInfoTrCHListUL_148_81_103_60_336_FDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_UlConnectedTrCH(tsc_UL_DCH5, cs_DCH_148_TFS_FDD), + cs_UlConnectedTrCH(tsc_UL_DCH1, cs_DCH_81_TFS_FDD), + cs_UlConnectedTrCH(tsc_UL_DCH2, cs_DCH_103_TFS_FDD), + cs_UlConnectedTrCH(tsc_UL_DCH3, cs_DCH_60_TFS_FDD), + cs_UlConnectedTrCH(tsc_UL_DCH5, cs_DCH_336_TFS_FDD) + }; + template (value) UlConnectedTrCHList_Type cs_TrChInfoTrCHListUL_336_148_FDD(TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1) := // @sic R5s120070 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_UlConnectedTrCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_FDD), cs_UlConnectedTrCH(tsc_UL_DCH5, cs_DCH_148_TFS_FDD) }; template (value) DlConnectedTrCHList_Type cs_TrChInfoTrCHListDL_34_StandAlone_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DlConnectedTrCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD) }; template (value) DlConnectedTrCHList_Type cs_TrChInfoTrCHListDL_122_AMR_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DlConnectedTrCH(tsc_DL_DCH1, cs_DCH_81_TFS_DL_FDD), cs_DlConnectedTrCH(tsc_DL_DCH2, cs_DCH_103_TFS_FDD), cs_DlConnectedTrCH(tsc_DL_DCH3, cs_DCH_60_TFS_FDD), cs_DlConnectedTrCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD) }; + template (value) DlConnectedTrCHList_Type cs_TrChInfoTrCHListDL_148_81_103_60_336_FDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_DlConnectedTrCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD), + cs_DlConnectedTrCH(tsc_DL_DCH1, cs_DCH_81_TFS_FDD), + cs_DlConnectedTrCH(tsc_DL_DCH2, cs_DCH_103_TFS_FDD), + cs_DlConnectedTrCH(tsc_DL_DCH3, cs_DCH_60_TFS_FDD), + cs_DlConnectedTrCH(tsc_DL_DCH5, cs_DCH_336_TFS_FDD) + }; + template (value) DlConnectedTrCHList_Type cs_TrChInfoTrCHListDL_336_148_FDD(TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1) := // @sic R5s120070 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DlConnectedTrCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_FDD), cs_DlConnectedTrCH(tsc_DL_DCH5, cs_DCH_148_TFS_FDD) }; @@ -438,7 +526,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (omit) DlConnectedTrCHList_TDD_Type p_DlconnectedTrCHList_TDD, template (omit) TFCS p_DlTfcs, template (omit) HS_DSCHMACdFlows_TDD p_HsDSCHMacdFlows := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := p_UlconnectedTrCHList_TDD, ulTFCS := p_UlTfcs, dlconnectedTrCHList := p_DlconnectedTrCHList_TDD, @@ -452,55 +540,73 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) TrCHInfo_TDD cs_TrCHInfo_UL_TrCh_TDD(template (omit) UlConnectedTrCHList_TDD_Type p_UlconnectedTrCHList, template (omit) TFCS p_UlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_TrCHInfo_Common_TDD(p_UlconnectedTrCHList, p_UlTfcs, omit, omit); template (value) TrCHInfo_TDD cs_TrCHInfo_DL_TrCh_TDD(template (omit) DlConnectedTrCHList_TDD_Type p_DlconnectedTrCHList, template (omit) TFCS p_DlTfcs) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_TrCHInfo_Common_TDD(omit, omit, p_DlconnectedTrCHList, p_DlTfcs); template (value) TrCHInfo_TDD cs_TrCHInfo_HS_DSCHMacdFlows_TDD(template (value) HS_DSCHMACdFlows_TDD p_HsDSCHMacdFlows) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_TrCHInfo_Common_TDD(omit, omit, omit, omit, p_HsDSCHMacdFlows); - template (value) TrCHInfo_TDD cs_TrChInfoUL_122_AMR_TDD := cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_122_AMR_TDD, cs_TFCS_Cmpl0_1_11_12_13_23_Rx); /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (value) TrCHInfo_TDD cs_TrChInfoDL_122_AMR_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_122_AMR_TDD, cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (value) TrCHInfo_TDD cs_TrChInfoUL_336_148_TDD := cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_336_148_TDD, cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - template (value) TrCHInfo_TDD cs_TrChInfoDL_336_148_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_336_148_TDD, cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) TrCHInfo_TDD cs_TrChInfoUL_122_AMR_TDD := cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_122_AMR_TDD, cs_TFCS_Cmpl0_1_11_12_13_23_Rx); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + template (value) TrCHInfo_TDD cs_TrChInfoDL_122_AMR_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_122_AMR_TDD, cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + template (value) TrCHInfo_TDD cs_TrChInfoUL_336_148_TDD := cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_336_148_TDD, cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) TrCHInfo_TDD cs_TrChInfoDL_336_148_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_336_148_TDD, cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); // ----------------------------------------------------------------------------- template (value) UlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListUL_122_AMR_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_UlConnectedTrCH_TDD(tsc_UL_DCH1, cs_DCH_81_TFS_TDD), cs_UlConnectedTrCH_TDD(tsc_UL_DCH2, cs_DCH_103_TFS_TDD), cs_UlConnectedTrCH_TDD(tsc_UL_DCH3, cs_DCH_60_TFS_TDD), cs_UlConnectedTrCH_TDD(tsc_UL_DCH5, cs_DCH_148_TFS_UL_TDD) }; + template (value) UlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListUL_148_81_103_60_336_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_UlConnectedTrCH_TDD(tsc_UL_DCH5, cs_DCH_148_TFS_UL_TDD), + cs_UlConnectedTrCH_TDD(tsc_UL_DCH1, cs_DCH_81_TFS_TDD), + cs_UlConnectedTrCH_TDD(tsc_UL_DCH2, cs_DCH_103_TFS_TDD), + cs_UlConnectedTrCH_TDD(tsc_UL_DCH3, cs_DCH_60_TFS_TDD), + cs_UlConnectedTrCH_TDD(tsc_UL_DCH5, cs_DCH_336_TFS_TDD) + }; + template (value) UlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListUL_336_148_TDD (TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_UlConnectedTrCH_TDD(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_TDD), cs_UlConnectedTrCH_TDD(tsc_UL_DCH5, cs_DCH_148_TFS_UL_TDD) }; template (value) DlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListDL_34_StandAlone_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DlConnectedTrCH_TDD(tsc_DL_DCH5, cs_DCH_148_TFS_DL_TDD) }; template (value) DlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListDL_122_AMR_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DlConnectedTrCH_TDD(tsc_DL_DCH1, cs_DCH_81_TFS_DL_TDD), cs_DlConnectedTrCH_TDD(tsc_DL_DCH2, cs_DCH_103_TFS_TDD), cs_DlConnectedTrCH_TDD(tsc_DL_DCH3, cs_DCH_60_TFS_TDD), cs_DlConnectedTrCH_TDD(tsc_DL_DCH5, cs_DCH_148_TFS_DL_TDD) }; + template (value) DlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListDL_148_81_103_60_336_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_DlConnectedTrCH_TDD(tsc_DL_DCH5, cs_DCH_148_TFS_DL_TDD), + cs_DlConnectedTrCH_TDD(tsc_DL_DCH1, cs_DCH_81_TFS_DL_TDD), + cs_DlConnectedTrCH_TDD(tsc_DL_DCH2, cs_DCH_103_TFS_TDD), + cs_DlConnectedTrCH_TDD(tsc_DL_DCH3, cs_DCH_60_TFS_TDD), + cs_DlConnectedTrCH_TDD(tsc_DL_DCH5, cs_DCH_336_TFS_TDD) + }; + template (value) DlConnectedTrCHList_TDD_Type cs_TrChInfoTrCHListDL_336_148_TDD (TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DlConnectedTrCH_TDD(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_TDD), // @sic R5s130447 R5s130704 sic@ cs_DlConnectedTrCH_TDD(tsc_DL_DCH5, cs_DCH_148_TTI_40_TFS_TDD) }; @@ -508,7 +614,7 @@ module UTRAN_ASN1_ASP_RAB_Templates //---------------------------------------------------------------------------- template (value) SS_AddOrReconfMAC_dFlow cs_SS_AddOrReconfMAC_dFlow(template (value) SS_MAC_hs_AddReconfQueue p_SS_MAC_hs_AddReconfQueue) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ mac_hs_AddReconfQueue_List := { { mac_hs_AddReconfQueue := p_SS_MAC_hs_AddReconfQueue } }, @@ -526,7 +632,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) SS_MAC_hs_AddReconfQueue cs_SS_MAC_hs_AddReconfQueue(template (value) MAC_hs_AddReconfQueue p_MAC_hs_AddReconfQueue) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ mAChsAddReconfQueue := p_MAC_hs_AddReconfQueue, logicalChannelList := { tsc_DL_DTCH1 @@ -548,11 +654,11 @@ module UTRAN_ASN1_ASP_RAB_Templates discardTimer := omit }; - template (value) RB_LogCH_Mapping cs_RB25_LogChMapping := cs_RB_LogCH_Mapping(tsc_UL_DTCH1, tsc_DL_DTCH1); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) RB_LogCH_Mapping cs_RB25_LogChMapping := cs_RB_LogCH_Mapping(tsc_UL_DTCH1, tsc_DL_DTCH1); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ template (value) HS_DSCHMACdFlows cs_HS_DSCHMacdFlows(template (value) HARQ_Info_r7 p_HARQ_Info, template (value) SS_AddOrReconfMAC_dFlow p_SS_AddOrReconfMAC_dFlow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ harqInfo := omit, addOrReconfMACdFlow := p_SS_AddOrReconfMAC_dFlow, ackNackRepetitionFactor := 1, // @sic R5s120397 sic@ @@ -561,7 +667,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) HS_DSCHMACdFlows_TDD cs_HS_DSCHMacdFlows_TDD(template (value) HARQ_Info_r7 p_HARQ_Info, template (value) SS_AddOrReconfMAC_dFlow p_SS_AddOrReconfMAC_dFlow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ harqInfo := omit, addOrReconfMACdFlow := p_SS_AddOrReconfMAC_dFlow, harqInfo_r7 := p_HARQ_Info @@ -570,7 +676,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) RL_Setup_FDD_PhysicalChannelInfo_Type cs_DL_Cell_DCH_HS_DSCH_PS_RAB_FDD(HSDSCH_physical_layer_category p_HSDSCH_physical_layer_category, template (value) DL_HSPDSCH_Information_r8 p_DL_HSPDSCH_Information_r8, boolean p_Sttd_Indicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s120397 Additional Changes sic@ */ hS_PDSCHInfo := { r8 := { @@ -595,7 +701,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) RL_Setup_FDD_PhysicalChannelInfo_Type cs_DL_Cell_DCH_HS_DSCH_PS_RAB_r9_FDD(HSDSCH_physical_layer_category p_HSDSCH_physical_layer_category, template (value) DL_HSPDSCH_Information_r9 p_DL_HSPDSCH_Information_r9, boolean p_Sttd_Indicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s120397 Additional Changes sic@ */ hS_PDSCHInfo := { r9 := { @@ -621,7 +727,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) RL_Setup_TDD_PhysicalChannelInfo_Type cs_DL_Cell_DCH_HS_DSCH_PS_RAB_TDD(HSDSCH_physical_layer_category p_HSDSCH_physical_layer_category, template (value) DL_HSPDSCH_Information_r9 p_DL_HSPDSCH_Information_r9, boolean p_Sttd_Indicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s120397 Additional Changes sic@ */ hS_PDSCHInfo := { r9 := { @@ -653,7 +759,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) HS_PDSCH_ChannelisationCodeInfo_LCR cs_HS_PDSCHChannelisationCodeInfo_TS5 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ timeslotNumber := 5, startCode := cc16_1, stopCode := cc16_16 @@ -669,7 +775,7 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/2; CRCsize = N/A; RateMatching = 235 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tti := { tti20 := { { @@ -694,7 +800,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_60_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tfsMode := {dedicatedTransChTFS := cs_DCH_60_TFS_UE} }; @@ -708,7 +814,7 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 12; RateMatching = 200 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tti := { tti20 := { { @@ -750,7 +856,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_81_TFS_DL_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tfsMode := {dedicatedTransChTFS := cs_DCH_81_TFS_DL_UE} }; @@ -764,7 +870,7 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 12; RateMatching = 200 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tti := { tti20 := { { @@ -806,7 +912,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_81_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tfsMode := {dedicatedTransChTFS := cs_DCH_81_TFS_UE} }; @@ -820,7 +926,7 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = N/A; RateMatching = 190 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tti := { tti20 := { { @@ -845,7 +951,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_103_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tfsMode := {dedicatedTransChTFS := cs_DCH_103_TFS_UE} }; @@ -859,7 +965,7 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 16; RateMatching = 170 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti40 := { { @@ -884,12 +990,12 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_148_TFS_UL_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := {dedicatedTransChTFS := cs_DCH_148_TFS_UE_UL_Common(170)} // @sic R5s120853 R5s130345 sic@ }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_148_TFS_DL_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := {dedicatedTransChTFS := cs_DCH_148_TFS_DL_TDD_UE} }; @@ -902,7 +1008,7 @@ module UTRAN_ASN1_ASP_RAB_Templates coding = turbo; CRCsize = 16; RateMatching = 150 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -930,7 +1036,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_336_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := {dedicatedTransChTFS := cs_DCH_336_TFS_UE} }; @@ -940,7 +1046,7 @@ module UTRAN_ASN1_ASP_RAB_Templates TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1, LogicalChannelIdentity p_LogicalChannelIdentity := tsc_UL_DTCH1) := // @sic R5s120070 R5s120455 sic@ { /* @param p_RB_Identity .. tsc_RB20 for PS RAB, tsc_RB25 for HSDPA RAB */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ulconnectedTrCHList := { { trchid := p_PS_TransportChannelIdentity, @@ -970,7 +1076,7 @@ module UTRAN_ASN1_ASP_RAB_Templates TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1, LogicalChannelIdentity p_LogicalChannelIdentity := tsc_UL_DTCH1) := // @sic R5s120070 R5s120455 sic@ { /* @param p_RB_Identity .. tsc_RB20 for PS RAB, tsc_RB25 for HSDPA RAB */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ulconnectedTrCHList := { { trchid := p_PS_TransportChannelIdentity, @@ -998,7 +1104,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) TrCH_LogCHMappingList1 cs_TrLogMappingDL_4DCCH_1DTCH_PS(TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1, LogicalChannelIdentity p_LogicalChannelIdentity := tsc_DL_DTCH1) := // @sic R5s120070 R5s120455 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -1026,7 +1132,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD(TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_DL_DCH1, LogicalChannelIdentity p_LogicalChannelIdentity := tsc_DL_DTCH1) := // @sic R5s120070 R5s120455 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -1053,7 +1159,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingUL_4DCCH_3DTCH := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH1, @@ -1092,7 +1198,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingUL_4DCCH_3DTCH_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH1, @@ -1131,7 +1237,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingDL_4DCCH_3DTCH := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -1170,7 +1276,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingDL_4DCCH_3DTCH_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -1212,7 +1318,7 @@ module UTRAN_ASN1_ASP_RAB_Templates { /* Reference: 36.508 cl. 4.8.3 Table 4.8.3-1 UTRA HSDPA RB TS 34.108 subclause 6.10.2.4.5.1 Interactive or background / UL:64 DL: [max bit rate depending on UE category] / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := omit, dlconnectedMACdFlows := { @@ -1233,7 +1339,7 @@ module UTRAN_ASN1_ASP_RAB_Templates { /* Reference: 36.508 cl. 4.8.3 Table 4.8.3-1 UTRA HSDPA RB TS 34.108 subclause 6.10.2.4.5.1 Interactive or background / UL:64 DL: [max bit rate depending on UE category] / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := omit, dlconnectedMACdFlows := { @@ -1310,7 +1416,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingDL_TM3_AM1 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -1355,7 +1461,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingDL_TM3_AM1_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -1400,7 +1506,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingUL_TM3_AM1_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH1, @@ -1445,7 +1551,7 @@ module UTRAN_ASN1_ASP_RAB_Templates }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingUL_TM3_AM1 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH1, @@ -1496,7 +1602,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS p_DchTFS2, template (value) CommonOrDedicatedTFS p_DchTFS3, template (value) CommonOrDedicatedTFS p_DchTFS4) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -1534,7 +1640,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS p_DchTFS2, template (value) CommonOrDedicatedTFS p_DchTFS3, template (value) CommonOrDedicatedTFS p_DchTFS4) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { ulconnectedTrCHList := { { trchid := tsc_UL_DCH1, @@ -1572,7 +1678,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS_TDD p_DchTFS2, template (value) CommonOrDedicatedTFS_TDD p_DchTFS3, template (value) CommonOrDedicatedTFS_TDD p_DchTFS4) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -1610,7 +1716,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS_TDD p_DchTFS2, template (value) CommonOrDedicatedTFS_TDD p_DchTFS3, template (value) CommonOrDedicatedTFS_TDD p_DchTFS4) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { ulconnectedTrCHList := { { trchid := tsc_UL_DCH1, @@ -1670,7 +1776,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS p_DchTFS3, template (value) CommonOrDedicatedTFS p_DchTFS4, template (value) SS_ActivationTime p_SS_ActivationTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1709,7 +1815,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS_TDD p_DchTFS3, template (value) CommonOrDedicatedTFS_TDD p_DchTFS4, template (value) SS_ActivationTime p_SS_ActivationTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1748,7 +1854,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS p_DchTFS3, template (value) CommonOrDedicatedTFS p_DchTFS4, template (value) SS_ActivationTime p_SS_ActivationTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1787,7 +1893,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) CommonOrDedicatedTFS_TDD p_DchTFS3, template (value) CommonOrDedicatedTFS_TDD p_DchTFS4, template (value) SS_ActivationTime p_SS_ActivationTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1833,7 +1939,6 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 16; RateMatching = 155 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1874,7 +1979,6 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 16; RateMatching = 155 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1915,7 +2019,6 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 16; RateMatching = 155 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1945,6 +2048,7 @@ module UTRAN_ASN1_ASP_RAB_Templates } }; + template (value) U_CPHY_CONFIG_REQ cas_DCH4_DL_Info_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId, template (value) TrChConfigType p_Type, @@ -1956,7 +2060,6 @@ module UTRAN_ASN1_ASP_RAB_Templates coding rate = 1/3; CRCsize = 16; RateMatching = 155 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1986,11 +2089,12 @@ module UTRAN_ASN1_ASP_RAB_Templates } }; + template (value) U_CPHY_CONFIG_REQ cas_TrChCfgInfo_FDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId, template (value) TrChConfigType p_Type, template (value) CphyTrchConfigReq p_TrChConfig) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2006,7 +2110,7 @@ module UTRAN_ASN1_ASP_RAB_Templates integer p_PhyChId, template (value) TrChConfigType p_Type, template (value) CphyTrchConfigReq_TDD p_TrChConfig) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2024,7 +2128,7 @@ module UTRAN_ASN1_ASP_RAB_Templates integer p_PhyChId, template (value) RL_Setup_FDD_PhysicalChannelInfo_Type p_RL_Setup_FDD_PhysicalChannelInfo_Type, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2044,7 +2148,7 @@ module UTRAN_ASN1_ASP_RAB_Templates integer p_PhyChId, template (value) RL_Setup_TDD_PhysicalChannelInfo_Type p_RL_Setup_TDD_PhysicalChannelInfo_Type, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -2066,7 +2170,7 @@ module UTRAN_ASN1_ASP_RAB_Templates template (value) DPCHInfo_r5OrLater_FDD p_DPCHInfo_r5OrLater, template (value) SS_ActivationTime p_ActivationTime, boolean p_TrchConfigToFollow := true) := //@sic R5s110749 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlModify_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2088,7 +2192,7 @@ module UTRAN_ASN1_ASP_RAB_Templates integer p_PhyChId, template (value) DPCHInfo_r5OrLater_TDD p_DPCHInfo_r5OrLater, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlModify_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -2382,29 +2486,40 @@ module UTRAN_ASN1_ASP_RAB_Templates //============================================================================ template (value) U_CMAC_CONFIG_REQ cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD(UTRAN_CellId_Type p_CellId, - template (value) SS_ActivationTime p_ActivateNow := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) SS_ActivationTime p_ActivateNow := cs_ActivateNow, + //@sic R5-145760: Added new parameters sic@ + //Default values provided for qpsk + template (value) ModulationScheme p_ModulationScheme := qpsk, + integer p_ChannelisationCodeOffset := 1, + integer p_NoOfChannelisationCodes := 1, + integer p_TbSizeIndexOnHS_SCCH := 19, + integer p_MinimumInterTTIinterval := 3, + template (value) RedundancyVersionList p_RedundancyVersionList := { 0, 2, 5, 6, 1, 3, 7, 4 }, + template (omit) HS_DSCH_TBSizeTable p_Hs_DSCH_TBSizeTable := omit + ) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + //Default values provided for qpsk tfrc_FDD := { cellId := f_UtranCellId2Int(p_CellId), tfrcConfigMode := { explicitlyConfigured := { - modulationScheme := qpsk, - channelisationCodeOffset := 1, - noOfChannelisationCodes := 1, // @sic R5s120178 baseline moving sic@ - tbSizeIndexOnHS_SCCH := 19, - minimumInterTTIinterval := 3, - redundancyVersions := { 0, 2, 5, 6, 1, 3, 7, 4 },//According to modulation scheme + modulationScheme := p_ModulationScheme, + channelisationCodeOffset := p_ChannelisationCodeOffset, + noOfChannelisationCodes := p_NoOfChannelisationCodes, // @sic R5s120178 baseline moving sic@ + tbSizeIndexOnHS_SCCH := p_TbSizeIndexOnHS_SCCH, + minimumInterTTIinterval := p_MinimumInterTTIinterval, + redundancyVersions := p_RedundancyVersionList,//According to modulation scheme hs_PDSCH_TxPower := tsc_DL_hs_PDSCH_TxPower } }, activationTime := p_ActivateNow, ss_DTX_Info := omit, - hs_DSCH_TBSizeTable := omit + hs_DSCH_TBSizeTable := p_Hs_DSCH_TBSizeTable } }; template (value) U_CMAC_CONFIG_REQ cas_CMAC_MAChs_TFRC_ExplicitConfigReq_TDD(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ tfrc_TDD := { cellId := f_UtranCellId2Int(p_CellId), tfrcConfigMode := { @@ -2426,7 +2541,7 @@ module UTRAN_ASN1_ASP_RAB_Templates //============================================================================ template (value) SS_DL_RLC_Mode cs_SS_DL_RLC_TM_Mode(template (omit) integer p_PayLoad) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ dl_PayloadSize := p_PayLoad, dl_RLCModeInfo := { ul_TM_RLC_Mode := { @@ -2444,7 +2559,7 @@ module UTRAN_ASN1_ASP_RAB_Templates integer p_PayLoad := 320, template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode := cds_UL_AM_RLC_HSDPA, template (value) RB_LogCH_Mapping p_LogChMapping := cs_RB25_LogChMapping) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s120397 Additional Changes sic@ */ cas_RB_AM_Info_Common_FDD(p_CellId, p_RB_Id, cds_DL_AM_RLC_HSDPA, cs_SS_DL_RLC_AM_Mode(p_PayLoad, p_UL_AM_RLC_Mode), p_LogChMapping); /* @sic R5s110782 - Additional Changes sic@ */ @@ -2453,7 +2568,7 @@ module UTRAN_ASN1_ASP_RAB_Templates integer p_PayLoad := 320, template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode := cds_UL_AM_RLC_HSDPA, template (value) RB_LogCH_Mapping p_LogChMapping := cs_RB25_LogChMapping) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s120397 Additional Changes sic@ */ cas_RB_AM_Info_Common_TDD(p_CellId, p_RB_Id, cds_DL_AM_RLC_HSDPA, cs_SS_DL_RLC_AM_Mode(p_PayLoad, p_UL_AM_RLC_Mode), p_LogChMapping); diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn similarity index 77% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn index 9db3899..84fc75a 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r10.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ +// @version: IWD_15wk38 +// $Date: 2015-02-24 15:54:26 +0100 (Tue, 24 Feb 2015) $ +// $Rev: 13030 $ /******************************************************************************/ module UTRAN_ASN1_ASP_RAB_Templates_r10 { @@ -21,19 +21,14 @@ module UTRAN_ASN1_ASP_RAB_Templates_r10 { // ----------------------------------------------------------------------------- template (value) RL_Setup_FDD_PhysicalChannelInfo_Type cs_HS_PDSCHInfoExtension_FDD_r10OrLater(template (value) HS_PDSCHInfo_r10OrLaterExtensionType p_HS_PDSCHInfo_r10OrLaterExtensionType) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ hS_PDSCHInfo := { relAspTypeExtension := p_HS_PDSCHInfo_r10OrLaterExtensionType } }; - template (value) DPCHInfo_r5OrLater_FDD cs_DPCHInfo_Extension_FDD(template (value) DPCHInfo_r10OrLaterExtensionType_FDD p_DPCHInfo_r10) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - relAspTypeExtension := p_DPCHInfo_r10 // @sic R5-134957 sic@ - }; - template (value) DPCHInfo_r5OrLater_TDD cs_DPCHInfo_Extension_TDD(template (value) DPCHInfo_r10OrLaterExtensionType_TDD p_DPCHInfo_r10) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ relAspTypeExtension := p_DPCHInfo_r10 // @sic R5-134957 sic@ }; @@ -41,7 +36,7 @@ module UTRAN_ASN1_ASP_RAB_Templates_r10 { SF512_AndCodeNumber p_Sf, template (omit) SecondaryScramblingCode p_SecondaryScramblingCode := tsc_DL_DPCH1_2ndScrC, DL_TxPower p_Dl_TxPower := tsc_DL_TxPower_DPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := p_DL_CommonInformation, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD(p_Sf, p_SecondaryScramblingCode) @@ -50,7 +45,7 @@ module UTRAN_ASN1_ASP_RAB_Templates_r10 { }; template (value) HS_DPCCHInfo_r10 cs_HS_DPCCHInfo_r10 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cqi_RepetitionFactor := 1, ackNackRepetitionFactor := 1, mimoStatus := false, diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn index 6a95131..6420241 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r11.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 11:17:38 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12203 $ +// @version: IWD_15wk38 +// $Date: 2015-07-15 22:15:47 +0200 (Wed, 15 Jul 2015) $ +// $Rev: 14020 $ /******************************************************************************/ module UTRAN_ASN1_ASP_RAB_Templates_r11 { @@ -23,10 +23,10 @@ module UTRAN_ASN1_ASP_RAB_Templates_r11 { // HS-PDSCH //============================================================================================= - template (value) HS_PDSCHInfo_r10OrLaterExtensionType cs_HSPDSCH_Information_FDD_r11(HSDSCH_physical_layer_category p_HSDSCH_physical_layer_category, + template (value) HS_PDSCHInfo_r10OrLaterExtensionType cs_HSPDSCH_Information_FDD_r11(template (omit) HSDSCH_physical_layer_category p_HSDSCH_physical_layer_category, template (value) DL_HSPDSCH_Information_r11 p_DL_HSPDSCH_Information, boolean p_Sttd_Indicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { rel11_AspExt := { hSDSCHPhysicalLayerCategory := p_HSDSCH_physical_layer_category, hsdsch_physical_layer_category_ext := omit, //Since mach-ehs is not configured @@ -48,7 +48,7 @@ module UTRAN_ASN1_ASP_RAB_Templates_r11 { hs_SCCH_SttdIndicator := omit // DEFAULT FALSE @sic R5-120613 sic@ } }; - + //---------------------------------------------------------------------------- // TrCH //---------------------------------------------------------------------------- @@ -84,21 +84,21 @@ module UTRAN_ASN1_ASP_RAB_Templates_r11 { //---------------------------------------------------------------------------- template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_AM_Info_RAB_Extension_FDD_r11(template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RB_AM_Info_Common_FDD_r11(cs_DL_AM_RLC_r11, cs_SS_DL_RLC_AM_Mode(omit, cs_UL_AM_RLC, cs_SS_DL_RLC_Mode_PDU_fixedSize(p_RLC_Size))); template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_AM_Info_RAB_Extension_TDD_r11(template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RB_AM_Info_Common_TDD_r11(cs_DL_AM_RLC_r11, cs_SS_DL_RLC_AM_Mode(omit, cs_UL_AM_RLC, cs_SS_DL_RLC_Mode_PDU_fixedSize(p_RLC_Size))); template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB25_AM_Info_FDD_r11(integer p_PayLoad := 320, template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode := cds_UL_AM_RLC_HSDPA) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RB_AM_Info_Common_FDD_r11(cds_DL_AM_RLC_HSDPA_r11, cs_SS_DL_RLC_AM_Mode(p_PayLoad, p_UL_AM_RLC_Mode)); template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB25_AM_Info_TDD_r11(integer p_PayLoad := 320, template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode := cds_UL_AM_RLC_HSDPA) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RB_AM_Info_Common_TDD_r11(cds_DL_AM_RLC_HSDPA_r11, cs_SS_DL_RLC_AM_Mode(p_PayLoad, p_UL_AM_RLC_Mode)); } diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r12.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r12.ttcn new file mode 100644 index 0000000..46efa77 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_RAB_Templates_r12.ttcn @@ -0,0 +1,75 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-07-13 11:57:20 +0200 (Mon, 13 Jul 2015) $ +// $Rev: 14002 $ +/******************************************************************************/ + +module UTRAN_ASN1_ASP_RAB_Templates_r12 { + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + import from UTRAN_CommonAspDefs all; + import from UTRAN_ASN1_ASP_Templates all; + + //============================================================================================= + // HS-PDSCH + //============================================================================================= + + template (value) HS_PDSCHInfo_r10OrLaterExtensionType cs_HSPDSCH_Information_FDD_r12(template (omit) HSDSCH_physical_layer_category p_HSDSCH_physical_layer_category, + template (value) DL_HSPDSCH_Information_r12 p_DL_HSPDSCH_Information, + boolean p_Sttd_Indicator) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + rel12_AspExt := { + hSDSCHPhysicalLayerCategory := p_HSDSCH_physical_layer_category, + hsdsch_physical_layer_category_ext := omit, //Since mach-ehs is not configured + hsdsch_physical_layer_category_ext2 := omit, //Since dual cell is not configured + hsdsch_physical_layer_category_ext3 := omit, //Since dual cell + MIMO is not configured + hsdsch_physical_layer_category_ext4 := omit, //Since dual cell + MIMO is not configured + hsdsch_physical_layer_category_ext5 := omit, //Since dual cell + MIMO is not configured + hsdsch_physical_layer_category_ext6 := omit, //Since dual cell + MIMO is not configured + hsdsch_physical_layer_category_ext7 := omit, //Since dual cell + MIMO is not configured + hsdsch_physical_layer_category_ext8 := omit, //Since dual cell + MIMO is not configured + h_RNTI := tsc_H_RNTI, + dlHSPDSCHInformation := p_DL_HSPDSCH_Information, + sttd_Indicator := p_Sttd_Indicator, + hs_SCCH_TxPower := tsc_DL_hs_SCCH_TxPower, + ss_DTX_Info := omit, + hs_scch_LessInfo := omit, + mimo_Parameters := omit, + hs_DPCCHToFollow := omit, // DEFAULT TRUE + hs_SCCH_SttdIndicator := omit // DEFAULT FALSE @sic R5-120613 sic@ + } + }; + + //---------------------------------------------------------------------------- + // TrCH + //---------------------------------------------------------------------------- + template (value) TrCHInfo_r10OrLaterExtensionType cs_TrCHInfo_UL_TFCS_r12(template (value) TFCS_r12 p_UlTfcs) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + rel12_AspExt := { // Rel-12 or later + ulTFCS_r12 := p_UlTfcs + } + }; + + + template (value) TrCHInfo cs_TrCHInfoExtension_ULTFCS_r12(template (value) UlConnectedTrCHList_Type p_UlconnectedTrCHList, + template (value) TrCHInfo_r10OrLaterExtensionType p_TrchExt) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + ulconnectedTrCHList := p_UlconnectedTrCHList, + ulTFCS := omit, + dlconnectedTrCHList := omit, + dlTFCS := omit, + hsDSCHMacdFlows := omit, + ehs_DSCH_Flows := omit, + ehs_DSCH_CommonFlows := omit, + ehs_DSCH_Flows_r9 := omit, + relAspTypeExtension := p_TrchExt + }; + + //EOF module +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn index 5323909..8c5a379 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 21:20:35 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12193 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 15:18:44 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14044 $ /******************************************************************************/ module UTRAN_ASN1_ASP_Templates { @@ -17,6 +17,7 @@ module UTRAN_ASN1_ASP_Templates { import from UTRAN_CommonDefs all; import from UTRAN_CommonAspDefs all; + import from UTRAN_TypeDefs all; import from UTRAN_RRC_CommonTemplates all; //============================================================================= @@ -24,55 +25,55 @@ module UTRAN_ASN1_ASP_Templates { //----------------------------------------------------------------------------- const DL_TxPower tsc_DL_TxPower_DPCH := -5; /* down link transmit power level of DPCH used for CS RABS. - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_PowerpCCPCH_FDD := -2; /* transmission power level of primary CCPCH - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_PowerpSCH := -5; /* transmission power level of primary SCH relative to CPICH - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_PowersCCPCH1 := -2; /* transmission power level of secondary CCPCH1 relative to CPICH - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_PowersSCH := -5; /* transmission power level of secondary SCH relative to CPICH. - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_PowerFPACH := -2; /* relative transmission power level of FPACH.// Default is -5 dBm - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_DL_TxPower_DPCH_64k := -2; /* down link transmit power level of DPCH used 64 KBPS PS RAB's - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower tsc_DL_hs_SCCH_TxPower := 3; /* Channel power for HS-SCCH relative to CPICH. Default value is +3dB - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ const DL_TxPower tsc_DL_hs_PDSCH_TxPower := 7; /* Channel power for HS-PDSCH relative to CPICH. Default value is +7dB - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ const DL_TxPower_PCCPCH tsc_PowerpCCPCH_TDD := -60; /* transmission power level of primary CCPCH relative to CPICH - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const DL_TxPower_PCPICH tsc_PowerpCPICH := -60; /* transmission power level of primary CPICH. The power level is specified in terms of CPICH_Ec. - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, SSNITZ, UTRAN) */ - const DwPCH_Power tsc_DwPCH_power := 180; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const DwPCH_Power tsc_DwPCH_power := 180; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const SCCPCHSlotFormat tsc_SlotFormatsCCPCH1 := 8; /* channelization code for secondary CCPCH1 when spreading factor = 64, default value is 8 - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const AvailableSubChannelNumbers tsc_SubChNum := '111111111111'B; /* Available subchannel numbers for PRACH, this initial value is for ts_SS_CreateCellFACH (from 34.108 cl. 6.1 (SIB5)) - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //============================================================================= // COMMON TEMPLATES //----------------------------------------------------------------------------- template (value) SS_ActivationTime cs_ActivateNow := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activateNow := NULL }; template (value) SS_ActivationTime cs_ActivateCFN(template (value) ActivationTime p_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationCFN := p_ActTime }; //----------------------------------------------------------------------------- template (value) SS_DL_RLC_Mode.dl_RLC_PDU_size cs_SS_DL_RLC_Mode_PDU_fixedSize(template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fixedSize := p_RLC_Size }; @@ -87,7 +88,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) SS_DL_RLC_Mode cs_SS_DL_RLC_AM_Mode(template (omit) integer p_PayLoad, template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode, template (omit) SS_DL_RLC_Mode.dl_RLC_PDU_size p_DL_RLC_PDU_size := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_PayloadSize := p_PayLoad, dl_RLCModeInfo := { ul_AM_RLC_Mode := p_UL_AM_RLC_Mode @@ -99,13 +100,13 @@ module UTRAN_ASN1_ASP_Templates { template (value) SS_DL_RLC_Mode cs_SS_DL_RLC_Mode_FixedSize(template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode, template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SS_DL_RLC_AM_Mode(omit, p_UL_AM_RLC_Mode, cs_SS_DL_RLC_Mode_PDU_fixedSize(p_RLC_Size)); //----------------------------------------------------------------------------- template (value) RL_Information_FDD cs_RL_InfoDef_FDD(DL_TxPower p_DL_TxPower := tsc_DL_TxPower_DPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ powerOffsetOfTFCI_PO1 := tsc_DPCH_PowerOffsetTFCI, powerOffsetOfTPC_PO2 := tsc_DPCH_PowerOffsetTPC, powerOffsetOfPILOT_PO3 := tsc_DPCH_PowerOffsetPILOT, @@ -117,7 +118,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) RL_Information_TDD cs_RL_InfoDef_TDD(DL_TxPower p_DL_TxPower := tsc_DL_TxPower_DPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ powerOffsetOfTFCI_PO1 := tsc_DPCH_PowerOffsetTFCI, powerOffsetOfTPC_PO2 := tsc_DPCH_PowerOffsetTPC, powerOffsetOfPILOT_PO3 := tsc_DPCH_PowerOffsetPILOT, @@ -129,7 +130,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) DL_DPCHInfo_r8_FDD cs_DL_DPCH_SRB_StandAloneDPCH_FDD(template (omit) SecondaryScramblingCode p_SecondaryScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := cs_DL_CommonInfoDCH_SRB_FDD(tsc_DL_DPCH1_SFP_SRB, fixed, false), dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD( tsc_DL_DPCH1_ChC_SRB, p_SecondaryScramblingCode ) @@ -138,7 +139,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) DL_DPCHInfo_r8_TDD cs_DL_DPCH_SRB_StandAlone_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := cs_DL_CommonInfo_r8_TDD, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_TDD @@ -150,7 +151,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TimeSlotConfiguration_LCR cs_TimeSlotConfig_LCR_Active(TimeslotNumber_LCR_r4 p_TimeslotNumber, TimeSlotConfiguration_LCR.timeSlotDirection p_Dirction) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ timeSlotLCR := p_TimeslotNumber, timeSlotStatus := active, timeSlotDirection := p_Dirction @@ -158,7 +159,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TimeSlotConfigurationList_LCR cs_Default_TimeSlot_Config_List := { /* Default_TimeSlot_Config_List; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_TimeSlotConfig_LCR_Active(1, uplink), cs_TimeSlotConfig_LCR_Active(2, uplink), cs_TimeSlotConfig_LCR_Active(3, uplink), @@ -169,13 +170,13 @@ module UTRAN_ASN1_ASP_Templates { //----------------------------------------------------------------------------- - template (value) TrChConfigType cs_TrChConfigTypeDCH_NoSHO := { dch := normal }; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) TrChConfigType cs_TrChConfigTypeNonDCH := { nonDch := NULL }; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) TrChConfigType cs_TrChConfigTypeDCH_NoSHO := { dch := normal }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) TrChConfigType cs_TrChConfigTypeNonDCH := { nonDch := NULL }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //----------------------------------------------------------------------------- template (value) TrCHInfo cs_TrChInfoBCH1_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -214,7 +215,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo cs_TrChInfoRACH1_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -232,7 +233,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo cs_TrChInfoPCH_FACH_PS_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -258,7 +259,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo cs_TrChInfoDL_13_6_StandAlone_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -276,7 +277,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo cs_TrChInfoUL_13_6_StandAlone_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH5, @@ -294,7 +295,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo_TDD cs_TrChInfoBCH1_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -350,7 +351,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo_TDD cs_TrChInfoRACH1_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -368,7 +369,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo_TDD cs_TrChInfoPCH_FACH_PS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -412,7 +413,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo_TDD cs_TrChInfoDL_3_4_StandAlone_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, ulTFCS := omit, dlconnectedTrCHList := { @@ -448,7 +449,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCHInfo_TDD cs_TrChInfoUL_3_4_StandAlone_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH5, @@ -472,7 +473,7 @@ module UTRAN_ASN1_ASP_Templates { LogicalChannelType p_LogicalChannelType, MAC_LogicalChannelPriority p_LogicalChannelPriority, integer p_RB_Identity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ logicalChannel_Mapping := { dl_LogicalChannelMapping := { macHeaderManipulation := normalMacHeader, @@ -494,7 +495,7 @@ module UTRAN_ASN1_ASP_Templates { LogicalChannelType p_LogicalChannelType, MAC_LogicalChannelPriority p_LogicalChannelPriority, integer p_RB_Identity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ logicalChannel_Mapping := { dl_LogicalChannelMapping := { macHeaderManipulation := normalMacHeader, @@ -512,7 +513,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogicalChannelMapping cs_TrCH_LogicalChannelMapping_DL_RB25 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ logicalChannel_Mapping := { dl_LogicalChannelMapping := { macHeaderManipulation := normalMacHeader, @@ -534,7 +535,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogicalChannelMapping_TDD cs_TrCH_LogicalChannelMapping_DL_RB25_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ logicalChannel_Mapping := { dl_LogicalChannelMapping := { macHeaderManipulation := normalMacHeader, @@ -559,7 +560,7 @@ module UTRAN_ASN1_ASP_Templates { LogicalChannelIdentity p_LogicalChannelIdentity, LogicalChannelType p_LogicalChannelType, integer p_RB_Identity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ logicalChannel_Mapping := { ul_LogicalChannelMapping := { macHeaderManipulation := normalMacHeader, @@ -576,7 +577,7 @@ module UTRAN_ASN1_ASP_Templates { LogicalChannelIdentity p_LogicalChannelIdentity, LogicalChannelType p_LogicalChannelType, integer p_RB_Identity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ logicalChannel_Mapping := { ul_LogicalChannelMapping := { macHeaderManipulation := normalMacHeader, @@ -594,7 +595,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCH_LogCHMappingList1 cs_TrLogMappingPCH_FACH_CellDCH := { /* For FDD mode only. map PCCH to PCH and CCCH and BCCH(for BCCH_FACH) To be used for the Cell DCH configuration - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -618,7 +619,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingPCH_FACH_CellDCH_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -643,7 +644,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCH_LogCHMappingList1 cs_TrLogMappingPCH_FACH_PS_FDD := { /* For FDD mode only (PS). map PCCH to PCH and DCCH1, DCCH2, DCCH3, DCCH4, CCCH, BCCH(for BCCH_FACH) to FACH1, and DTCH to FACH2 - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -679,7 +680,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingPCH_FACH_PS_TDD := { /* For LCR TDD mode only (PS). map PCCH to PCH and DCCH1, DCCH2, DCCH3, DCCH4, CCCH, BCCH(for BCCH_FACH) and DTCH to FACH1 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -716,7 +717,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCH_LogCHMappingList1 cds_TrLogMappingPCH_FACH_PS_HS_FDD modifies cs_TrLogMappingPCH_FACH_PS_FDD := { /* For FDD mode only (PS). map PCCH to PCH and DCCH1, DCCH2, DCCH3, DCCH4, CCCH, BCCH(for BCCH_FACH) to FACH1, and DTCH to FACH2 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dlconnectedTrCHList := { [2] := { @@ -729,7 +730,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingRACH2 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -747,7 +748,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingRACH2_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -765,7 +766,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1 cds_TrLogMappingRACH_DTCH_HS modifies cs_TrLogMappingRACH_DTCH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -777,7 +778,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingBCH1 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -795,7 +796,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingBCH1_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -813,7 +814,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingDL_4DCCH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -834,7 +835,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingDL_4DCCH_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := omit, dlconnectedTrCHList := { { @@ -855,7 +856,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingUL_4DCCH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH5, @@ -876,7 +877,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingUL_4DCCH_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_UL_DCH5, @@ -923,7 +924,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1 cs_TrLogMappingRACH_DTCH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -946,7 +947,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) TrCH_LogCHMappingList1_TDD cs_TrLogMappingRACH_DTCH_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ulconnectedTrCHList := { { trchid := tsc_RACH1, @@ -996,50 +997,51 @@ module UTRAN_ASN1_ASP_Templates { //---------------------------------------------------------------------------- template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD(RadioFrequencyBandFDD p_RadioFrequencyBandFDD) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ frequencyBandIndicator := p_RadioFrequencyBandFDD }; template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD2(RadioFrequencyBandFDD2 p_RadioFrequencyBandFDD2) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ frequencyBandIndicator2 := p_RadioFrequencyBandFDD2 }; template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD3(RadioFrequencyBandFDD3 p_RadioFrequencyBandFDD3) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ frequencyBandIndicator3 := p_RadioFrequencyBandFDD3 }; - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_1 := cs_RadioFrequencyBandFDD(fdd2100); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_2 := cs_RadioFrequencyBandFDD(fdd1900); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_3 := cs_RadioFrequencyBandFDD(fdd1800); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_4 := cs_RadioFrequencyBandFDD(bandIV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_5 := cs_RadioFrequencyBandFDD(bandV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_6 := cs_RadioFrequencyBandFDD(bandVI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_7 := cs_RadioFrequencyBandFDD(bandVII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_8 := cs_RadioFrequencyBandFDD2(bandVIII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_9 := cs_RadioFrequencyBandFDD2(bandIX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_10 := cs_RadioFrequencyBandFDD2(bandX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_11 := cs_RadioFrequencyBandFDD2(bandXI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_12 := cs_RadioFrequencyBandFDD2(bandXII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_13 := cs_RadioFrequencyBandFDD2(bandXIII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_14 := cs_RadioFrequencyBandFDD2(bandXIV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_15 := cs_RadioFrequencyBandFDD2(bandXV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_16 := cs_RadioFrequencyBandFDD2(bandXVI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_17 := cs_RadioFrequencyBandFDD2(bandXVII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_18 := cs_RadioFrequencyBandFDD2(bandXVIII);/* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_19 := cs_RadioFrequencyBandFDD2(bandXIX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_20 := cs_RadioFrequencyBandFDD2(bandXX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_21 := cs_RadioFrequencyBandFDD2(bandXXI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_22 := cs_RadioFrequencyBandFDD2(bandXXII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_25 := cs_RadioFrequencyBandFDD3(bandXXV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_26 := cs_RadioFrequencyBandFDD3(bandXXVI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_1 := cs_RadioFrequencyBandFDD(fdd2100); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_2 := cs_RadioFrequencyBandFDD(fdd1900); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_3 := cs_RadioFrequencyBandFDD(fdd1800); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_4 := cs_RadioFrequencyBandFDD(bandIV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_5 := cs_RadioFrequencyBandFDD(bandV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_6 := cs_RadioFrequencyBandFDD(bandVI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_7 := cs_RadioFrequencyBandFDD(bandVII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_8 := cs_RadioFrequencyBandFDD2(bandVIII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_9 := cs_RadioFrequencyBandFDD2(bandIX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_10 := cs_RadioFrequencyBandFDD2(bandX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_11 := cs_RadioFrequencyBandFDD2(bandXI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_12 := cs_RadioFrequencyBandFDD2(bandXII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_13 := cs_RadioFrequencyBandFDD2(bandXIII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_14 := cs_RadioFrequencyBandFDD2(bandXIV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_15 := cs_RadioFrequencyBandFDD2(bandXV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_16 := cs_RadioFrequencyBandFDD2(bandXVI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_17 := cs_RadioFrequencyBandFDD2(bandXVII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_18 := cs_RadioFrequencyBandFDD2(bandXVIII);/* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_19 := cs_RadioFrequencyBandFDD2(bandXIX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_20 := cs_RadioFrequencyBandFDD2(bandXX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_21 := cs_RadioFrequencyBandFDD2(bandXXI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_22 := cs_RadioFrequencyBandFDD2(bandXXII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_25 := cs_RadioFrequencyBandFDD3(bandXXV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_26 := cs_RadioFrequencyBandFDD3(bandXXVI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) FrequencyBandFDD cs_RadioFrequencyBandFDD_32 := cs_RadioFrequencyBandFDD3(bandXXXII);/* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //----------------------------------------------------------------------------- template (value) CommonOrDedicatedTFS cs_DCH_148_TTI_10_TFS_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -1064,7 +1066,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) CommonOrDedicatedTFS cs_FACH_TFS_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -1085,7 +1087,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) CommonOrDedicatedTFS cs_FACH_TFS_PS_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -1105,7 +1107,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) CommonOrDedicatedTFS cs_PCH_TFS_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -1125,7 +1127,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) CommonOrDedicatedTFS cs_RACH_TFS_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -1177,27 +1179,27 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) CommonOrDedicatedTFS_TDD cs_DCH_148_TTI_40_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := {dedicatedTransChTFS := cs_DCH_148_TFS_DL_TDD_UE} }; template (value) CommonOrDedicatedTFS_TDD cs_FACH_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := { commonTransChTFS := cs_FACH_TFS_UE_TDD} }; template (value) CommonOrDedicatedTFS_TDD cs_FACH_TFS_PS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := { commonTransChTFS := cs_FACH_TFS_PS_UE_TDD } }; template (value) CommonOrDedicatedTFS_TDD cs_PCH_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := { commonTransChTFS := cs_PCH_TFS_UE_TDD} }; template (value) CommonOrDedicatedTFS_TDD cs_RACH_TFS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfsMode := { commonTransChTFS_LCR := cs_RACH_TFS_LCR } @@ -1208,7 +1210,7 @@ module UTRAN_ASN1_ASP_Templates { RRC_MessageSequenceNumber p_SN1, RRC_MessageSequenceNumber p_SN3, RRC_MessageSequenceNumber p_SN4) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { rb_Identity := tsc_RB0, rrc_MessageSequenceNumber := p_SN0 @@ -1228,7 +1230,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) IntegrityProtActivationInfoList cs_RB2_IntegrityProtActivationInfoList(RRC_MessageSequenceNumber p_RRCSN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { rb_Identity := tsc_RB2, rrc_MessageSequenceNumber := p_RRCSN @@ -1241,7 +1243,7 @@ module UTRAN_ASN1_ASP_Templates { RRC_MessageSequenceNumber p_P4, RRC_MessageSequenceNumber p_P5, IntegrityProtectionAlgorithm_r7 p_IntegrityAlg) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeCommand := { modify := { dl_IntegrityProtActivationInfo := { @@ -1262,7 +1264,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) RB_LogCH_Mapping cs_RB_LogCH_Mapping(template (omit) LogicalChannelIdentity p_LogChUL, template (omit) LogicalChannelIdentity p_LogChDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ uLlogicalChannelIdentity := p_LogChUL, dLlogicalChannelIdentity := p_LogChDL, logicalChannelType := omit, @@ -1273,7 +1275,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) UE_Info cs_UE_Info(template (omit) U_RNTI p_U_RNTI := omit, template (omit) bitstring p_CRNTI := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ u_RNTI := p_U_RNTI, c_RNTI := p_CRNTI }; @@ -1282,7 +1284,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) IndividualTimeslotInfo_LCR_r4 cs_IndividualTimeslotInfo_LCR_r4_SCCPCH := { /* TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ timeslotNumber := 0, tfci_Existence := true, midambleShiftAndBurstType := { @@ -1294,39 +1296,11 @@ module UTRAN_ASN1_ASP_Templates { additionalSS_TPC_Symbols := omit }; - //----------------------------------------------------------------------------- -/* template (value) AdditionalPRACH_TF_and_TFCS_CCCH_List cs_AddPRACH_TF_TFS_CCCH_TDD := */ -/* { // !!!!! NOT USED !!!!! */ -/* { */ -/* additionalPRACH_TF_and_TFCS_CCCH_IEs := */ -/* { */ -/* powerOffsetInformation := { */ -/* gainFactorInformation := { */ -/* signalledGainFactors := { */ -/* modeSpecificInfo := { */ -/* tdd := NULL */ -/* }, */ -/* gainFactorBetaD := 15, */ -/* referenceTFC_ID := 0 */ -/* } */ -/* }, */ -/* powerOffsetPp_m := 0 */ -/* }, */ -/* dynamicTFInformationCCCH := { */ -/* octetModeRLC_SizeInfoType2 := { */ -/* sizeType1:= 24 // Actual size = (sizeType1 * 8) + 48 */ -/* } */ -/* } */ -/* } */ -/* } */ -/* }; */ - - //----------------------------------------------------------------------------- template (value) CphyUlConnectedTrCH_Type cs_CphyUlConnectedTrCH_FDD_DCH(TransportChannelIdentity p_TransportChannelIdentity, template (value) CommonOrDedicatedTFS p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_TransportChannelIdentity, ul_TransportChannelType := dch, transportChannelInfo := p_CommonOrDedicatedTFS @@ -1334,7 +1308,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) CphyDlConnectedTrCH_Type cs_CphyDlConnectedTrCH_FDD_DCH(TransportChannelIdentity p_TransportChannelIdentity, template (value) CommonOrDedicatedTFS p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_TransportChannelIdentity, dl_TransportChannelType := dch, transportChannelInfo := p_CommonOrDedicatedTFS @@ -1342,7 +1316,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) CphyUlConnectedTrCH_TDD_Type cs_CphyUlConnectedTrCH_TDD_DCH(TransportChannelIdentity p_TransportChannelIdentity, template (value) CommonOrDedicatedTFS_TDD p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_TransportChannelIdentity, ul_TransportChannelType := dch, transportChannelInfo := p_CommonOrDedicatedTFS @@ -1350,7 +1324,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) CphyDlConnectedTrCH_TDD_Type cs_CphyDlConnectedTrCH_TDD_DCH(TransportChannelIdentity p_TransportChannelIdentity, template (value) CommonOrDedicatedTFS_TDD p_CommonOrDedicatedTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchid := p_TransportChannelIdentity, dl_TransportChannelType := dch, transportChannelInfo := p_CommonOrDedicatedTFS @@ -1362,7 +1336,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_CPHY_Cell_Release_REQ (UTRAN_CellId_Type p_CellId, RB_ConfigType p_RBConfig) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellRelease := { soft_Reset := false, cell_ID_List := {f_UtranCellId2Int(p_CellId)}, @@ -1371,7 +1345,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_CPHY_Cell_Release_CNF(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellRelease :={ soft_Reset := false, cell_ID_List := { @@ -1383,7 +1357,7 @@ module UTRAN_ASN1_ASP_Templates { //----------------------------------------------------------------------------- template (value) AICH_Info cs_AICH_Info := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ channelisationCode256 := tsc_AICH1_ChC, sttd_Indicator := false, aich_TransmissionTiming := e0 @@ -1393,7 +1367,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) AICH_Info p_AICH_Info, AICH_PowerOffset p_TxPower) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1419,7 +1393,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_PCCPCH_Info_FDD(UTRAN_CellId_Type p_CellId, DL_TxPower p_TxPower) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1441,7 +1415,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) CommonTimeslotInfo cs_CommonTimeslotInfo_PCCPCH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ secondInterleavingMode := frameRelated, tfci_Coding := omit, puncturingLimit := pl1, @@ -1450,7 +1424,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_PCCPCH_Info_TDD(UTRAN_CellId_Type p_CellId, DL_TxPower_PCCPCH p_DL_TxPower_PCCPCH ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -1486,7 +1460,7 @@ module UTRAN_ASN1_ASP_Templates { * RateMatching = 1 (this parameter is not relevant to BCH, value can be any number between 1 to hiRM) */ template (value) U_CPHY_CONFIG_REQ cas_BCH_InfoActNow_FDD(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1539,7 +1513,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) U_CPHY_CONFIG_REQ cas_BCH_InfoActNow_TDD(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1582,7 +1556,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_SfnOffset, CellTxPowerLevel p_TotalCellPower, FrequencyBandFDD p_FrequencyBandFDD) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), tcell := p_Tcell, @@ -1603,7 +1577,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_SfnOffset, CellTxPowerLevel p_TotalCellPower, DwPCHInfo p_DwPCHInfo) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cellConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), sfnOffset := p_SfnOffset, @@ -1621,14 +1595,14 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_CellCfgCnf(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellConfig := { cellId := f_UtranCellId2Int(p_CellId) } }; //----------------------------------------------------------------------------- template (present) U_CPHY_CONFIG_CNF car_CellTxPowerModifyCnf(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ txPower := { cellId := f_UtranCellId2Int(p_CellId) } @@ -1636,7 +1610,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_CellTxPowerModifyReq(UTRAN_CellId_Type p_CellId, integer p_DL_TxAttenLevel) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ txPower := { cellId := f_UtranCellId2Int(p_CellId), dLTxAttenuationLevel := p_DL_TxAttenLevel @@ -1647,7 +1621,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) DL_DPCHInfo_r8_FDD p_DL_DPCHInfo, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1677,7 +1651,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) DL_DPCHInfo_r8_TDD p_DL_DPCHInfo, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -1708,7 +1682,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) UL_DPCH_Info_r7 p_UL_DPCHInfo, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1740,7 +1714,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) UL_DPCH_Info_r7 p_UL_DPCHInfo, template (value) SS_ActivationTime p_SS_ActTime) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -1768,18 +1742,18 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_IniCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ini := {confirmation := NULL } }; template (value) U_CPHY_CONFIG_REQ cas_InitReqDef := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ini := defaultRadioEnvironment }; template (value) U_CPHY_CONFIG_REQ cas_DCH_148_TTI_10_DL_InfoActNow_FDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1837,7 +1811,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_DCH_148_TTI_40_DL_InfoActNow_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1866,7 +1840,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_DCH_148_TTI_10_UL_InfoActNow_FDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1924,7 +1898,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_DCH_148_TTI_40_UL_InfoActNow_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -1955,7 +1929,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_PCH_2_FACH_InfoActNow_FDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2000,7 +1974,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_PCH_2_FACH_InfoActNow_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2048,7 +2022,7 @@ module UTRAN_ASN1_ASP_Templates { template (omit) MimoAntennaConfigType p_MimoAntennaConfigType := omit, template (omit) boolean p_DC_SecondaryServingCell := omit, template (omit) boolean p_TrchConfigToFollow := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), @@ -2079,7 +2053,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) PICH_Info p_PICH_Info, PICH_PowerOffset p_TxPower, integer p_SCCPCH_Ass) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2105,7 +2079,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) PICH_Info_LCR_r4 p_PICH_Info, PICH_PowerOffset p_TxPower, integer p_SCCPCH_Ass) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -2137,7 +2111,7 @@ module UTRAN_ASN1_ASP_Templates { PuncturingLimit p_PuncLimit, SF_PRACH p_SF_PRACH, AvailableSubChannelNumbers p_SubChNum) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2168,7 +2142,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_PRACH_Info_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId, DL_TxPower p_FPACH_Power) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -2195,7 +2169,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_PSCH_Info_FDD(UTRAN_CellId_Type p_CellId, DL_TxPower p_TxPower) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2220,7 +2194,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_SSCH_Info_FDD(UTRAN_CellId_Type p_CellId, DL_TxPower p_TxPower) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2245,7 +2219,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_RACH_InfoActNow_FDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2278,7 +2252,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_RACH_InfoActNow_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2318,7 +2292,7 @@ module UTRAN_ASN1_ASP_Templates { SCCPCHSlotFormat p_SlotFormat, DL_TxPower p_TxPower, integer p_Timing) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2350,7 +2324,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_SCCPCH_Info_TDD(UTRAN_CellId_Type p_CellId, integer p_PhyChId, DL_TxPower p_TxPower) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, @@ -2378,7 +2352,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_RL_ModifyCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlModify := { cellId := ?, routingInfo := { @@ -2390,7 +2364,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_RL_RelReq_FDD(UTRAN_CellId_Type p_CellId, PhysicalChannelIdentity p_PhyCH, template (value) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlRelease_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2403,7 +2377,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_RL_RelReq_TDD(UTRAN_CellId_Type p_CellId, PhysicalChannelIdentity p_PhyCH, template (value) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlRelease_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2414,7 +2388,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_RL_RelCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlRelease := { cellId := ?, routingInfo := { @@ -2424,7 +2398,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_RL_SetupCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup := { cellId := ?, routingInfo := { @@ -2437,7 +2411,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) TrChConfigType p_TrChConfigType, template (value) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchRelease_FDD := { // @sic R5-113036 sic@ cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2452,7 +2426,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_PhyChId, template (value) TrChConfigType p_TrChConfigType, template (value) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchRelease_TDD := { // @sic R5-113036 sic@ cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2466,7 +2440,7 @@ module UTRAN_ASN1_ASP_Templates { //---------------------------------------------------------------------------- template (present) U_CPHY_CONFIG_CNF car_TrChCfgCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchConfig := { cellId := ?, routingInfo := { @@ -2478,7 +2452,7 @@ module UTRAN_ASN1_ASP_Templates { //---------------------------------------------------------------------------- template (present) U_CPHY_CONFIG_CNF car_PHY_RelCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ trchRelease := { cellId := ?, routingInfo := { @@ -2488,7 +2462,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_CPHY_Sync_IND (PhysicalChannelIdentity p_PhysicalChannelIdentity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sync := { cellId := ?, routingInfo := { @@ -2498,7 +2472,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPHY_CONFIG_CNF car_CPHY_Out_of_Sync_IND (PhysicalChannelIdentity p_PhysicalChannelIdentity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ outOfSync := { cellId := ?, routingInfo := { @@ -2533,7 +2507,7 @@ module UTRAN_ASN1_ASP_Templates { //========================================================================================== template (present) U_CRLC_CONFIG_CNF car_CRLC_Integrity_Failure_IND := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityFail := { cellId := ?, routingInfo := ?, @@ -2547,7 +2521,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCHInfo p_TrCHInfo, template (value) TrCH_LogCHMappingList1 p_TrCH_LogCHMapping, template (value) SS_ActivationTime p_ActivationTime ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2575,7 +2549,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCHInfo_TDD p_TrCHInfo, template (value) TrCH_LogCHMappingList1_TDD p_TrCH_LogCHMapping, //@sic R5-134957 sic@ template (value) SS_ActivationTime p_ActivationTime ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2605,7 +2579,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCH_LogCHMappingList1 p_TrCH_LogCHMapping, template (omit) boolean p_TSN_FieldExtension := omit, template (omit) CmacConfigReq_r10OrLaterExtensionType p_CmacConfigReq_r10OrLater := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2635,7 +2609,7 @@ module UTRAN_ASN1_ASP_Templates { template (omit) boolean p_TSN_FieldExtension := omit, template (omit) CmacConfigReq_r10OrLaterExtensionType p_CmacConfigReq_r10OrLater := omit) modifies cas_CMAC_CfgInfo_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { configMessage := { setup := { @@ -2651,7 +2625,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCHInfo_TDD p_TrCHInfo, template (value) TrCH_LogCHMappingList1_TDD p_TrCH_LogCHMapping // @sic R5-134957 sic@ ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2678,7 +2652,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) TrCHInfo_TDD p_TrCHInfo, template (value) TrCH_LogCHMappingList1_TDD p_TrCH_LogCHMapping) modifies cas_CMAC_CfgInfo_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { configMessage := { setup := { @@ -2706,7 +2680,7 @@ module UTRAN_ASN1_ASP_Templates { //---------------------------------------------------------------------------- template (value) U_CMAC_CONFIG_REQ cas_CMAC_MACes_Release_REQ (UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ configMACes := { cellId := f_UtranCellId2Int(p_CellId), configMessage := { @@ -2716,7 +2690,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) U_CMAC_CONFIG_REQ cas_CMAC_MACe_Release_FDD_REQ(integer p_NodeB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ configMACe_FDD := { nodeB_Id := p_NodeB_Id, configMessage := { @@ -2726,7 +2700,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (value) U_CMAC_CONFIG_REQ cas_CMAC_MACe_Release_TDD_REQ(integer p_NodeB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ configMACe_TDD := { nodeB_Id := p_NodeB_Id, configMessage := { @@ -2738,7 +2712,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CMAC_CONFIG_REQ cas_MAC_FDD_Release(UTRAN_CellId_Type p_CellId, integer p_PhyChId, template (value) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2754,7 +2728,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CMAC_CONFIG_REQ cas_MAC_TDD_Release(UTRAN_CellId_Type p_CellId, integer p_PhyChId, template (value) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2768,14 +2742,14 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CMAC_CONFIG_CNF car_CMAC_MACes_Config_CNF (UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ configMACes := { cellId := f_UtranCellId2Int(p_CellId) } }; template (present) U_CMAC_CONFIG_CNF car_CMAC_MACe_Config_CNF(template integer p_NodeB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ configMACe := { nodeB_Id := p_NodeB_Id } @@ -2789,14 +2763,14 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CMAC_CONFIG_CNF car_CMAC_MACHs_CfgCnf ( UTRAN_CellId_Type p_CellId ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ tfrc := { cellId := f_UtranCellId2Int(p_CellId) } }; template (present) U_CMAC_CONFIG_CNF car_CMAC_CfgCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config := { cellId := ?, routingInfo := { @@ -2808,7 +2782,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RLC_SuspendRB(UTRAN_CellId_Type p_CellId, integer p_RB_Id, RLC_SequenceNumber p_RLC_SeqNum) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ suspend := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2820,7 +2794,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_ResumeRB(UTRAN_CellId_Type p_CellId, integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ resume := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2831,7 +2805,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CRLC_CONFIG_CNF car_ResumeRB(UTRAN_CellId_Type p_CellId, template integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ resume := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2842,7 +2816,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CRLC_CONFIG_CNF car_SuspendRB(UTRAN_CellId_Type p_CellId, template integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ suspend := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2853,7 +2827,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CRLC_CONFIG_CNF car_CRLC_CfgCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config := { cellId := ?, routingInfo := { @@ -2868,7 +2842,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := { - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2911,7 +2885,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := { - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2959,8 +2933,8 @@ module UTRAN_ASN1_ASP_Templates { template (value) SS_DL_RLC_Mode p_SS_DL_RLC_Mode, template (value) RB_LogCH_Mapping p_LogChMapping, template (omit) SS_RLC_Info_r8OrLater.r8.useSpecialValueOfHEField p_UseSpecialValueOfHEField := omit, - template (omit) SS_ActivationTime p_ActTime := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (omit) SS_ActivationTime p_ActTime := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -2995,7 +2969,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping, template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cas_RB_AM_Info_Common_FDD(p_CellId, p_RB_Id, cds_DL_AM_RLC_SRB_r7, cs_SS_DL_RLC_Mode_FixedSize(cds_UL_AM_RLC_SRB, p_RLC_Size), p_LogChMapping); /* @sic R5s110782 - Additional Changes sic@ */ @@ -3003,7 +2977,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping, template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cas_RB_AM_Info_Common_FDD(p_CellId, p_RB_Id, cs_DL_AM_RLC_r7, cs_SS_DL_RLC_Mode_FixedSize(cs_UL_AM_RLC, p_RLC_Size), p_LogChMapping); /* @sic R5s110782 - Additional Changes sic@ */ @@ -3013,7 +2987,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) SS_DL_RLC_Mode p_SS_DL_RLC_Mode, template (value) RB_LogCH_Mapping p_LogChMapping) := { - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3048,14 +3022,14 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping, template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cas_RB_AM_Info_Common_TDD(p_CellId, p_RB_Id, cds_DL_AM_RLC_SRB_r7, cs_SS_DL_RLC_Mode_FixedSize(cds_UL_AM_RLC_SRB, p_RLC_Size), p_LogChMapping); //---------------------------------------------------------------------------- template (value) U_CRLC_CONFIG_REQ cas_CRLC_RB_RelReq_FDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3071,7 +3045,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_CRLC_RB_RelReq_TDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3090,7 +3064,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_UM_ReconfigInfo_FDD(UTRAN_CellId_Type p_CellId, // @sic R5s110278 sic@ integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3138,7 +3112,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_UM_ReconfigInfo_TDD(UTRAN_CellId_Type p_CellId, // @sic R5s110278 sic@ integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3187,7 +3161,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_UM_Info_FDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3235,7 +3209,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_UM_Info_TDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3287,7 +3261,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (omit) integer p_PayloadSize, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3330,7 +3304,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (omit) integer p_PayloadSize, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3376,7 +3350,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (omit) integer p_PayloadSize, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3424,7 +3398,7 @@ module UTRAN_ASN1_ASP_Templates { PayloadSize p_UL_Payload, template (omit) integer p_PayloadSize, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3473,7 +3447,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_UM_DL_Info_FDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3514,7 +3488,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_UM_DL_Info_TDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3559,7 +3533,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping, template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cas_RB_AM_Info_Common_TDD(p_CellId, p_RB_Id, cs_DL_AM_RLC_r7, cs_SS_DL_RLC_Mode_FixedSize(cs_UL_AM_RLC, p_RLC_Size), p_LogChMapping); //---------------------------------------------------------------------------- @@ -3613,7 +3587,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_BCCH_Info_FDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3655,7 +3629,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_RB_BCCH_Info_TDD(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) RB_LogCH_Mapping p_LogChMapping) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3702,7 +3676,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_POS, RatType p_RatType, template (omit) BCCH_ModificationTime p_Timing := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sysInfo := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := {rB_Identity := tsc_RB_BCCH}, @@ -3717,7 +3691,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CMAC_CONFIG_CNF car_SysInfoCfgCnf(UTRAN_CellId_Type p_CellId, integer p_RB_Identity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sysInfo := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := {rB_Identity := p_RB_Identity} @@ -3726,43 +3700,49 @@ module UTRAN_ASN1_ASP_Templates { //---------------------------------------------------------------------------- - template (value) RLC_TR_DATA_REQ cas_BCCH_BCH_DataReq(UTRAN_CellId_Type p_CellId, + template (value) U_RLC_TM_REQ cas_BCCH_BCH_DataReq(UTRAN_CellId_Type p_CellId, integer p_RB, template (value) BCCH_BCH_Message p_Message) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cellId := f_UtranCellId2Int(p_CellId), - routingInfo := { - rB_Identity := p_RB - }, - tM_message := { - bCCH_BCH_Message := p_Message + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + data := { //@sic R5-150124 sic@ + cellId := f_UtranCellId2Int(p_CellId), + routingInfo := { + rB_Identity := p_RB + }, + tM_message := { + bCCH_BCH_Message := p_Message + } } }; - template (value) RLC_TR_DATA_REQ cas_PagingType1(UTRAN_CellId_Type p_CellId, + template (value) U_RLC_TM_REQ cas_PagingType1(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) PCCH_Message p_Pdu) := { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cellId := f_UtranCellId2Int(p_CellId), - routingInfo := { - rB_Identity := p_RB_Id - }, - tM_message := { - pCCH_Message := p_Pdu + data := { + cellId := f_UtranCellId2Int(p_CellId), + routingInfo := { + rB_Identity := p_RB_Id + }, + tM_message := { + pCCH_Message := p_Pdu + } } }; - template (value) RLC_TR_DATA_REQ cas_SysInfoChangeInd(UTRAN_CellId_Type p_CellId, + template (value) U_RLC_TM_REQ cas_SysInfoChangeInd(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) BCCH_FACH_Message p_Pdu) := - { /* @status APPROVED (LTE_IRAT) */ - cellId := f_UtranCellId2Int(p_CellId), - routingInfo := { - rB_Identity := p_RB_Id - }, - tM_message := { - bCCH_FACH_Message := p_Pdu - } + { /* @status APPROVED (LTE_IRAT, UTRAN) */ + data := { + cellId := f_UtranCellId2Int(p_CellId), + routingInfo := { + rB_Identity := p_RB_Id + }, + tM_message := { + bCCH_FACH_Message := p_Pdu + } + } }; //---------------------------------------------------------------------------- @@ -3770,7 +3750,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_CRLC_DL_IntegrityActivateReq(UTRAN_CellId_Type p_CellId, CN_DomainIdentity p_Domain, template (value) IntegrityProtectionModeInfo_r7 p_IntegrityProtectionModeInfo) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrity := { cellId := f_UtranCellId2Int(p_CellId), cn_DomainIdentity := p_Domain, @@ -3783,7 +3763,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_CRLC_UL_IntegrityActivateReq(UTRAN_CellId_Type p_CellId, CN_DomainIdentity p_Domain, template (value) IntegrityProtActivationInfoList p_IntegrityProtActivationInfo) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrity := { cellId := f_UtranCellId2Int(p_CellId), cn_DomainIdentity := p_Domain, @@ -3794,7 +3774,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CRLC_CONFIG_CNF car_CRLC_IntegrityActivateCnf(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrity := { cellId := f_UtranCellId2Int(p_CellId) } @@ -3804,7 +3784,7 @@ module UTRAN_ASN1_ASP_Templates { CN_DomainIdentity p_CN_Domain, template (value) RB_ActivationTimeInfoList p_RB_ActivationTimeInfoList, RLC_IncMode p_IncMode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), ratType := fdd, @@ -3820,7 +3800,7 @@ module UTRAN_ASN1_ASP_Templates { CN_DomainIdentity p_CN_Domain, template (value) RB_ActivationTimeInfoList p_RB_ActivationTimeInfoList, RLC_IncMode p_IncMode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), ratType := tdd128, @@ -3838,7 +3818,7 @@ module UTRAN_ASN1_ASP_Templates { CipheringModeCommand_r7 p_CipherMode, RLC_SequenceNumber p_N, RLC_IncMode p_IncMode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), ratType := fdd, @@ -3862,7 +3842,7 @@ module UTRAN_ASN1_ASP_Templates { CipheringModeCommand_r7 p_CipherMode, RLC_SequenceNumber p_N, RLC_IncMode p_IncMode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), ratType := tdd128, @@ -3881,14 +3861,14 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CRLC_CONFIG_CNF car_CRLC_CipherActCnf(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId) } }; template (present) U_CMAC_CONFIG_CNF car_CMAC_SecurityModeCfgCnf(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ secMode := { cellId := f_UtranCellId2Int(p_CellId) } @@ -3900,7 +3880,7 @@ module UTRAN_ASN1_ASP_Templates { template (omit) B128_Type p_KC, template (omit) B128_Type p_IK, template (omit) B64_Type p_GSM_CK) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ secMode := { cellId := f_UtranCellId2Int(p_CellId), macCipheringInfo := { @@ -3914,7 +3894,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CRLC_CONFIG_CNF car_CRLC_SecurityModeCfgCnf(UTRAN_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ secMode := { cellId := f_UtranCellId2Int(p_CellId) } @@ -3926,7 +3906,7 @@ module UTRAN_ASN1_ASP_Templates { template (omit) B128_Type p_KC, template (omit) B128_Type p_IK, template (omit) B64_Type p_GSM_CK) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ secMode := { cellId := f_UtranCellId2Int(p_CellId), rlcSecurityInfo := { @@ -3941,7 +3921,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_GetRLC_SeqNum(UTRAN_CellId_Type p_CellId, integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ seqNo := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3952,7 +3932,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CRLC_CONFIG_CNF car_GetRLC_SeqNum(UTRAN_CellId_Type p_CellId, integer p_RB_Id) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ seqNo := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3967,7 +3947,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_CRLC_ContinueRLC_Ack_REQ(UTRAN_CellId_Type p_CellId, integer p_RbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ prohibit := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3979,7 +3959,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_CRLC_ProhibitRLC_Ack_REQ(UTRAN_CellId_Type p_CellId, integer p_RbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ prohibit := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -3991,7 +3971,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CRLC_CONFIG_CNF car_CRLC_ProhibitRLC_Ack_CNF(UTRAN_CellId_Type p_CellId, integer p_RbId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ prohibit := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4003,7 +3983,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_CRLC_RRC_MessageSN_REQ(UTRAN_CellId_Type p_CellId, integer p_RBId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rrcMsgSN := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4014,7 +3994,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CRLC_CONFIG_CNF car_CRLC_RRC_MessageSN_CNF(UTRAN_CellId_Type p_CellId, template integer p_RBId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rrcMsgSN := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4030,7 +4010,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CRLC_CONFIG_REQ cas_DL_CRLC_SetRRC_MSN_REQ(UTRAN_CellId_Type p_CellId, integer p_RBID, RRC_SequenceNumber p_DL_MSN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ setRRCmsgSN := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4043,7 +4023,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CRLC_CONFIG_CNF car_CRLC_SetRRC_MSN_CNF(UTRAN_CellId_Type p_CellId, integer p_RBID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ setRRCmsgSN := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4059,7 +4039,7 @@ module UTRAN_ASN1_ASP_Templates { Increment_Mode p_IncrDcr, RatType p_RatType // @sic R5s130243 sic@ ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4084,7 +4064,7 @@ module UTRAN_ASN1_ASP_Templates { Increment_Mode p_IncrDcr, RatType p_RatType // @sic R5s130243 sic@ ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4104,7 +4084,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CMAC_CONFIG_CNF car_CMAC_CipherActCnf(UTRAN_CellId_Type p_CellId, integer p_PhyChId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipher := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4117,7 +4097,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPHY_CONFIG_REQ cas_GetFrameNum(UTRAN_CellId_Type p_CellId, PhysicalChannelIdentity p_PhysicalChannelIdentity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ frameNo := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4128,7 +4108,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) U_CPHY_CONFIG_CNF car_GetFrameNum(UTRAN_CellId_Type p_CellId, PhysicalChannelIdentity p_PhysicalChannelIdentity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ frameNo := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -4138,23 +4118,25 @@ module UTRAN_ASN1_ASP_Templates { } }; - template (present) RLC_TR_DATA_IND car_RRC_ConnReq(template (present) UTRAN_CellId_Type p_CellId, + template (present) U_RLC_TM_IND car_RRC_ConnReq(template (present) UTRAN_CellId_Type p_CellId, template (present) integer p_RB_Id, template (present) UL_CCCH_Message p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cellId := f_UTRAN_TemplateCellId2Int(p_CellId), - routingInfo := { - rB_Identity := p_RB_Id - }, - tM_message := { - uL_CCCH_Message := p_Pdu + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + data := { + cellId := f_UTRAN_TemplateCellId2Int(p_CellId), + routingInfo := { + rB_Identity := p_RB_Id + }, + tM_message := { + uL_CCCH_Message := p_Pdu + } } }; template (value) RLC_UM_DATA_REQ cas_DL_CCCH_Data_Req(UTRAN_CellId_Type p_CellId, integer p_RB, template (value) DL_CCCH_Message p_DL_CCCH_Message) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellId := f_UtranCellId2Int(p_CellId), routingInfo := {rB_Identity := p_RB}, uM_message := { @@ -4165,7 +4147,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) RLC_UM_DATA_REQ cas_RRC_ConnSetup(UTRAN_CellId_Type p_CellId, integer p_RB_Id, - template (value) DL_CCCH_Message p_Pdu) := cas_DL_CCCH_Data_Req(p_CellId, p_RB_Id, p_Pdu); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DL_CCCH_Message p_Pdu) := cas_DL_CCCH_Data_Req(p_CellId, p_RB_Id, p_Pdu); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) RLC_UM_DATA_REQ cas_RRC_ConnReject(UTRAN_CellId_Type p_CellId, integer p_RB_Id, @@ -4173,12 +4155,12 @@ module UTRAN_ASN1_ASP_Templates { template (value) RLC_UM_DATA_REQ cas_RRC_ConnRelCCCH(UTRAN_CellId_Type p_CellId, integer p_RB_Id, - template (value) DL_CCCH_Message p_Pdu) := cas_DL_CCCH_Data_Req(p_CellId, p_RB_Id, p_Pdu); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DL_CCCH_Message p_Pdu) := cas_DL_CCCH_Data_Req(p_CellId, p_RB_Id, p_Pdu); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) RLC_UM_DATA_REQ cas_RRC_ConnRelDCCH(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) DL_DCCH_Message p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellId := f_UtranCellId2Int(p_CellId), routingInfo := { rB_Identity := p_RB_Id @@ -4192,7 +4174,7 @@ module UTRAN_ASN1_ASP_Templates { template (present) RLC_UM_DATA_IND car_RRC_ConnRelCmplUM(UTRAN_CellId_Type p_CellId, template (present) integer p_RB_Id, template (present) UL_DCCH_Message p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellId := f_UtranCellId2Int(p_CellId), routingInfo := { rB_Identity := p_RB_Id @@ -4217,19 +4199,6 @@ module UTRAN_ASN1_ASP_Templates { } }; - template (present) RLC_UM_DATA_IND car_RRC_SigConnRelIndUM(UTRAN_CellId_Type p_CellId, - template (present) integer p_RB_Id, - template (present) UL_DCCH_Message p_Pdu) := - { /* @status APPROVED (LTE_IRAT) */ - cellId := f_UtranCellId2Int(p_CellId), - routingInfo := { - rB_Identity := p_RB_Id - }, - integrityResult := ?, - uM_message := { - uL_DCCH_Message := p_Pdu - } - }; //---------------------------------------------------------------------------- template (value) CmacPagingConfigReq cs_MAC_PagingCfg_FDD(bitstring p_E18, @@ -4309,7 +4278,7 @@ module UTRAN_ASN1_ASP_Templates { integer p_RB_Id, RatType p_RatType, template (value) PDCP_Info_r4 p_PDCP_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s130195 PDCP sic@ */ config := { cellId := f_UtranCellId2Int(p_CellId), @@ -4328,7 +4297,7 @@ module UTRAN_ASN1_ASP_Templates { }; template (present) U_CPDCP_CONFIG_CNF car_CPDCP_CfgCnf := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s130195 PDCP sic@ */ config := { cellId := ?, @@ -4341,7 +4310,7 @@ module UTRAN_ASN1_ASP_Templates { template (value) U_CPDCP_CONFIG_REQ cas_CPDCP_RB_RelReq(UTRAN_CellId_Type p_CellId, integer p_RB_Id, RatType p_RatType) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ // @sic R5s130195 PDCP sic@ config := { cellId := f_UtranCellId2Int(p_CellId), @@ -4355,4 +4324,28 @@ module UTRAN_ASN1_ASP_Templates { } }; + //============================================================================ + // Data Templates + //============================================================================ + template (present) PDCP_DATA_IND car_PDCP_Test_Data_Ind(UTRAN_CellId_Type p_CellId, + integer p_RB_Id, + bitstring p_Data) := + { /* @status APPROVED (LTE_IRAT, UTRAN) */ + cellId := f_UtranCellId2Int(p_CellId), + rB_Id := p_RB_Id, + data := { + data := p_Data + } + }; + + template (value) PDCP_DATA_REQ cas_PDCP_Test_Data_Req(UTRAN_CellId_Type p_CellId, + integer p_RB_Id, + bitstring p_Data) := + { /* @status APPROVED (LTE_IRAT, UTRAN) */ + cellId := f_UtranCellId2Int(p_CellId), + rB_Id := p_RB_Id, + data := { + data := p_Data + } + }; } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn similarity index 76% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn index c59881e..1276b47 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r10.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 18:07:49 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12192 $ +// @version: IWD_15wk38 +// $Date: 2015-02-20 21:45:07 +0100 (Fri, 20 Feb 2015) $ +// $Rev: 13000 $ /******************************************************************************/ module UTRAN_ASN1_ASP_Templates_r10 { @@ -22,12 +22,28 @@ module UTRAN_ASN1_ASP_Templates_r10 { import from UTRAN_ASN1_ASP_Templates all; import from UTRAN_ASN1_ASP_RAB_Templates all; + //----------------------------------------------------------------------------- + // CPHY-RL + //---------------------------------------------------------------------------------------------------- + template (value) U_CPHY_CONFIG_REQ cas_108_DL_DPCH_ModifyInfo_r10(UTRAN_CellId_Type p_CellId, + integer p_PhyChId, + template (value) DPCHInfo_r10OrLaterExtensionType_FDD p_DPCHInfo_r10, + template (value) SS_ActivationTime p_ActivationTime, + boolean p_Follow := true) := + /* @status APPROVED (UTRAN) */ + cas_RL_Modify_DPCHInfo_FDD(p_CellId, p_PhyChId, cs_DPCHInfo_Extension_FDD(p_DPCHInfo_r10), p_ActivationTime, p_Follow); + + template (value) DPCHInfo_r5OrLater_FDD cs_DPCHInfo_Extension_FDD(template (value) DPCHInfo_r10OrLaterExtensionType_FDD p_DPCHInfo_r10) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + relAspTypeExtension := p_DPCHInfo_r10 // @sic R5-134957 sic@ + }; + //---------------------------------------------------------------------------- // DPCH IE //---------------------------------------------------------------------------- template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_UL_DPCHInfo_r10_Extension_FDD(template (value) UL_DPCH_Info_r7 p_UL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel10_AspExt := { ul_DPCHInfo := p_UL_DPCHInfo, dl_DPCHInfo := omit, @@ -39,7 +55,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_UL_DPCHInfo_r10_Extension_TDD(template (value) UL_DPCH_Info_r7 p_UL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel10_AspExt := { ul_DPCHInfo := p_UL_DPCHInfo, dl_DPCHInfo := omit, @@ -51,7 +67,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_DL_DPCHInfo_r10_Extension_FDD(template (value) DL_DPCHInfo_r10_FDD p_DL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel10_AspExt := { ul_DPCHInfo := omit, dl_DPCHInfo := p_DL_DPCHInfo, @@ -63,7 +79,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_DL_DPCHInfo_r10_Extension_TDD(template (value) DL_DPCHInfo_r10_TDD p_DL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel10_AspExt := { ul_DPCHInfo := omit, dl_DPCHInfo := p_DL_DPCHInfo, @@ -74,7 +90,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { }; template (value) DL_DPCHInfo_r10_FDD cs_DL_DPCH_SRB_StandAloneDPCH_FDD_r10(template (omit) SecondaryScramblingCode p_SecondaryScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := cs_DL_CommonInfoDCH_SRB_FDD_r10(tsc_DL_DPCH1_SFP_SRB, fixed, false), dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD( tsc_DL_DPCH1_ChC_SRB, p_SecondaryScramblingCode ) @@ -83,7 +99,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { }; template (value) DL_DPCHInfo_r10_TDD cs_DL_DPCH_TDD_r10(template (omit) DL_DPCH_InfoPerRL_r7 p_DL_DPCH_InfoPerRL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := cs_DL_CommonInfo_r10_TDD, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := p_DL_DPCH_InfoPerRL @@ -91,7 +107,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { rl_Information := cs_RL_InfoDef_TDD }; - template (value) DL_DPCHInfo_r10_TDD cs_DL_DPCH_SRB_StandAlone_TDD_r10 := cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_SRB_TDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DL_DPCHInfo_r10_TDD cs_DL_DPCH_SRB_StandAlone_TDD_r10 := cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_SRB_TDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //------------------------------------------------------------------------------------------------------------ // U_CPHY_CONFIG_REQ @@ -101,7 +117,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { template (value) DPCHInfo_r10OrLaterExtensionType_FDD p_DPCHInfo_r10, template (value) SS_ActivationTime p_SS_ActTime, boolean p_TrchConfigToFollow := true) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -126,7 +142,7 @@ module UTRAN_ASN1_ASP_Templates_r10 { template (value) DPCHInfo_r10OrLaterExtensionType_TDD p_DPCHInfo_r10, template (value) SS_ActivationTime p_SS_ActTime, boolean p_TrchConfigToFollow := true) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlSetup_TDD := { cellId := f_UtranCellId2Int(p_CellId), secondaryFrequency := omit, diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn index a47a364..89bd6c8 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r11.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ +// @version: IWD_15wk38 +// $Date: 2015-07-13 11:57:20 +0200 (Mon, 13 Jul 2015) $ +// $Rev: 14002 $ /******************************************************************************/ module UTRAN_ASN1_ASP_Templates_r11 { @@ -27,7 +27,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_UL_DPCHInfo_r11_Extension_FDD(template (value) UL_DPCH_Info_r11 p_UL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel11_AspExt := { ul_DPCHInfo := p_UL_DPCHInfo, dl_DPCHInfo := omit, @@ -39,7 +39,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_UL_DPCHInfo_r11_Extension_TDD(template (value) UL_DPCH_Info_r11 p_UL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel11_AspExt := { ul_DPCHInfo := p_UL_DPCHInfo, dl_DPCHInfo := omit, @@ -49,9 +49,9 @@ module UTRAN_ASN1_ASP_Templates_r11 { } }; - template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_DL_DPCHInfo_r11_Extension_TDD(template (value) DL_DPCHInfo_r11_TDD p_DL_DPCHInfo, + template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_DL_DPCHInfo_r11_Extension_FDD(template (value) DL_DPCHInfo_r11_FDD p_DL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel11_AspExt := { ul_DPCHInfo := omit, dl_DPCHInfo := p_DL_DPCHInfo, @@ -60,10 +60,10 @@ module UTRAN_ASN1_ASP_Templates_r11 { ss_DRX_Info := omit } }; - - template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_DL_DPCHInfo_r11_Extension_FDD(template (value) DL_DPCHInfo_r11_FDD p_DL_DPCHInfo, + + template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_DL_DPCHInfo_r11_Extension_TDD(template (value) DL_DPCHInfo_r11_TDD p_DL_DPCHInfo, template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel11_AspExt := { ul_DPCHInfo := omit, dl_DPCHInfo := p_DL_DPCHInfo, @@ -77,7 +77,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { SF512_AndCodeNumber p_Sf, template (omit) SecondaryScramblingCode p_SecondaryScramblingCode := tsc_DL_DPCH1_2ndScrC, DL_TxPower p_Dl_TxPower := tsc_DL_TxPower_DPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := p_DL_CommonInformation, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD(p_Sf, p_SecondaryScramblingCode) @@ -86,19 +86,19 @@ module UTRAN_ASN1_ASP_Templates_r11 { }; template (value) DL_DPCHInfo_r11_TDD cs_DL_DPCH_TDD_r11(template (value) DL_DPCH_InfoPerRL_r7 p_DL_DPCH_InfoPerRL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_CommonInformation := cs_DL_CommonInfo_r11_TDD, dl_Dpch_InfoPerRL := { dl_DPCH_InfoPerRL := p_DL_DPCH_InfoPerRL }, rl_Information := cs_RL_InfoDef_TDD }; - + template (value) DL_DPCHInfo_r11_FDD cs_DL_DPCH_SRB_StandAloneDPCH_FDD_r11(template (omit) SecondaryScramblingCode p_SecondaryScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_DPCH_FDD_r11(cs_DL_CommonInfoDCH_SRB_FDD_r11(tsc_DL_DPCH1_SFP_SRB, fixed, false), tsc_DL_DPCH1_ChC_SRB, p_SecondaryScramblingCode); - template (value) DL_DPCHInfo_r11_TDD cs_DL_DPCH_SRB_StandAlone_TDD_r11 := cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_SRB_TDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DL_DPCHInfo_r11_TDD cs_DL_DPCH_SRB_StandAlone_TDD_r11 := cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_SRB_TDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //============================================================================================= // RLC @@ -108,7 +108,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) SS_RLC_Info_r10OrLaterExtensionType p_SS_RLC_Info_r10OrLaterExtension, template (value) RB_LogCH_Mapping p_LogChMapping, template (omit) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_FDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -132,7 +132,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) SS_RLC_Info_r10OrLaterExtensionType p_SS_RLC_Info_r10OrLaterExtension, template (value) RB_LogCH_Mapping p_LogChMapping, template (omit) SS_ActivationTime p_SS_ActivationTime := cs_ActivateNow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ config_TDD := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -153,7 +153,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_AM_Info_Common_FDD_r11(template (value) DL_AM_RLC_Mode_r11 p_DL_AM_RLC_Mode, template (value) SS_DL_RLC_Mode p_SS_DL_RLC_Mode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel11_AspExt := { sS_ul_RLC_Mode := { dl_AM_RLC_Mode := p_DL_AM_RLC_Mode @@ -168,7 +168,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_AM_Info_Common_TDD_r11(template (value) DL_AM_RLC_Mode_r11 p_DL_AM_RLC_Mode, template (value) SS_DL_RLC_Mode p_SS_DL_RLC_Mode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rel11_AspExt := { sS_ul_RLC_Mode := { dl_AM_RLC_Mode := p_DL_AM_RLC_Mode @@ -183,14 +183,15 @@ module UTRAN_ASN1_ASP_Templates_r11 { template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_AM_Info_SRB_Fixed_FDD_r11(template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_RB_AM_Info_Common_FDD_r11(cds_DL_AM_RLC_SRB_r11, cs_SS_DL_RLC_AM_Mode(omit, cds_UL_AM_RLC_SRB, cs_SS_DL_RLC_Mode_PDU_fixedSize(p_RLC_Size))); template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_AM_Info_SRB_Fixed_TDD_r11(template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_RB_AM_Info_Common_TDD_r11(cds_DL_AM_RLC_SRB_r11, cs_SS_DL_RLC_AM_Mode(omit, cds_UL_AM_RLC_SRB, cs_SS_DL_RLC_Mode_PDU_fixedSize(p_RLC_Size))); template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_TM_UL_Info_FDD_r11(template (omit) integer p_PayloadSize) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ rel11_AspExt := { sS_ul_RLC_Mode := { dl_TM_RLC_Mode := { @@ -206,7 +207,7 @@ module UTRAN_ASN1_ASP_Templates_r11 { }; template (value) SS_RLC_Info_r10OrLaterExtensionType cs_RB_TM_UL_Info_TDD_r11(template (omit) integer p_PayloadSize) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ rel11_AspExt := { sS_ul_RLC_Mode := { dl_TM_RLC_Mode := { diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r12.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r12.ttcn new file mode 100644 index 0000000..bb3cf54 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASN1_ASP_Templates_r12.ttcn @@ -0,0 +1,95 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ +/******************************************************************************/ + +module UTRAN_ASN1_ASP_Templates_r12 { + + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_Templates_r12 all; + import from UTRAN_ASN1_ASP_Templates all; + + + //---------------------------------------------------------------------------- + // DPCH IE + //---------------------------------------------------------------------------- + template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_UL_DPCHInfo_r12_Extension_FDD(template (value) UL_DPCH_Info_r11 p_UL_DPCHInfo, + template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + rel12_AspExt := { + ul_DPCHInfo := p_UL_DPCHInfo, + dl_DPCHInfo := omit, + hs_DPCCHInd := p_HS_DPCCHInfo, + ss_UL_DPCCH_DRX_Info := omit, + ss_DRX_Info := omit + } + }; + + template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_UL_DPCHInfo_r12_Extension_TDD(template (value) UL_DPCH_Info_r11 p_UL_DPCHInfo, + template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + rel12_AspExt := { + ul_DPCHInfo := p_UL_DPCHInfo, + dl_DPCHInfo := omit, + hs_DPCCHInd := p_HS_DPCCHInfo, + ss_UL_DPCCH_DRX_Info := omit, + ss_DRX_Info := omit + } + }; + + template (value) DPCHInfo_r10OrLaterExtensionType_FDD cs_DL_DPCHInfo_r12_Extension_FDD(template (value) DL_DPCHInfo_r12_FDD p_DL_DPCHInfo, + template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit):= + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + rel12_AspExt := { + ul_DPCHInfo := omit, + dl_DPCHInfo := p_DL_DPCHInfo, + hs_DPCCHInd := p_HS_DPCCHInfo, + ss_UL_DPCCH_DRX_Info := omit, + ss_DRX_Info := omit + } + }; + + template (value) DPCHInfo_r10OrLaterExtensionType_TDD cs_DL_DPCHInfo_r12_Extension_TDD(template (value) DL_DPCHInfo_r12_TDD p_DL_DPCHInfo, + template (omit) HS_DPCCHInfo_r10 p_HS_DPCCHInfo := omit):= + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + rel12_AspExt := { + ul_DPCHInfo := omit, + dl_DPCHInfo := p_DL_DPCHInfo, + hs_DPCCHInd := p_HS_DPCCHInfo, + ss_UL_DPCCH_DRX_Info := omit, + ss_DRX_Info := omit + } + }; + + template (value) DL_DPCHInfo_r12_FDD cs_DL_DPCH_FDD_r12(template (value) DL_CommonInformation_r12 p_DL_CommonInformation, + SF512_AndCodeNumber p_Sf, + template (omit) SecondaryScramblingCode p_SecondaryScramblingCode := tsc_DL_DPCH1_2ndScrC, + DL_TxPower p_Dl_TxPower := tsc_DL_TxPower_DPCH) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + dl_CommonInformation := p_DL_CommonInformation, + dl_Dpch_InfoPerRL := { + dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD_r12(p_Sf, p_SecondaryScramblingCode) + }, + rl_Information := cs_RL_InfoDef_FDD(p_Dl_TxPower) + }; + + template (value) DL_DPCHInfo_r12_TDD cs_DL_DPCH_TDD_r12(template (value) DL_DPCH_InfoPerRL_r12 p_DL_DPCH_InfoPerRL_r12) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + dl_CommonInformation := cs_DL_CommonInfo_r12_TDD, + dl_Dpch_InfoPerRL := { + dl_DPCH_InfoPerRL := p_DL_DPCH_InfoPerRL_r12 + }, + rl_Information := cs_RL_InfoDef_TDD + }; + + //EOF + } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASP_Definitions.asn similarity index 91% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASP_Definitions.asn index 0d06238..7b60630 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASP_Definitions.asn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASP_Definitions.asn @@ -2355,7 +2355,14 @@ IMPORTS T-321, RLC-PDU-SizeConstraint, CS-HSPA-Information, - CellDCHMeasOccasionInfo-TDD128-r9 + CellDCHMeasOccasionInfo-TDD128-r9, + HS-DSCH-DrxCellfach-info, -- @sic R5-145647 feFACH: type to be imported not defined sic@ + HS-DSCH-DrxCellfach-SecondDrx-info, -- @sic R5-150125 feFACH sic@ + TFCS-r12, + DL-CommonInformation-r12, + DL-DPCH-InfoPerRL-r12, + DL-HSPDSCH-Information-r12, + DRX-Info-r12 FROM UTRAN-RRC-ASN1-Definitions ; @@ -2795,7 +2802,7 @@ CphyTrchConfigReq ::= SEQUENCE { ehs-DSCH-CommonFlows EHS-DSCH-CommonFlows OPTIONAL, -- Rel-7 or later e-DCHMacd-CommonFlows CommonE-DCHMACdFlows OPTIONAL, -- Rel-8 or later ehs-DSCH-Flows-r9 EHS-DSCH-Flows-r9 OPTIONAL, -- Rel-9 or later @sic R5s110175 sic@ - relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ + relAspTypeExtension TrCHInfo-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 R5-145142 sic@ } --************************************************************** @@ -3080,6 +3087,21 @@ DL-DPCHInfo-r11-FDD ::= SEQUENCE { rl-Information RL-Information-FDD } +--************************************************************** +-- +-- DL-DPCHInfo-r12-FDD +-- Applicable Rel-12 or later +-- Used only when DTCH is mapped on DL-DPCH +--************************************************************** +DL-DPCHInfo-r12-FDD ::= SEQUENCE { + dl-CommonInformation DL-CommonInformation-r12, + dl-Dpch-InfoPerRL CHOICE { + dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r12, + dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 + }, + rl-Information RL-Information-FDD +} + --************************************************************** -- -- DL-DPCHInfo-r11-TDD @@ -3095,6 +3117,21 @@ DL-DPCHInfo-r11-TDD ::= SEQUENCE { rl-Information RL-Information-TDD } +--************************************************************** +-- +-- DL-DPCHInfo-r12-TDD +-- Applicable Rel-12 or later +-- Used only when DTCH is mapped on DL-DPCH +--************************************************************** +DL-DPCHInfo-r12-TDD ::= SEQUENCE { + dl-CommonInformation DL-CommonInformation-r12, + dl-Dpch-InfoPerRL CHOICE { + dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r12, + dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7 + }, + rl-Information RL-Information-TDD +} + --************************************************************** -- -- DL-TxPower @@ -3206,7 +3243,8 @@ DPCHInfo-r5OrLater-FDD ::= CHOICE { -- -- DPCHInfo-r10OrLaterExtensionType-FDD -- Applicable Rel-10 or later --- @sic R5-130613 R5-133682 sic@ +-- rel12-AspExt is applied whenDTCH is mapped on DL-DPCH +-- @sic R5-130613 R5-133682 R5s150329 sic@ -- --************************************************************** DPCHInfo-r10OrLaterExtensionType-FDD ::= CHOICE { @@ -3223,6 +3261,13 @@ DPCHInfo-r10OrLaterExtensionType-FDD ::= CHOICE { hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, ss-DRX-Info DTX-Info OPTIONAL + }, + rel12-AspExt SEQUENCE { -- Rel-12 and later + ul-DPCHInfo UL-DPCH-Info-r11 OPTIONAL, + dl-DPCHInfo DL-DPCHInfo-r12-FDD OPTIONAL, + hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, + ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, + ss-DRX-Info DTX-Info OPTIONAL } } @@ -3269,7 +3314,8 @@ DPCHInfo-r5OrLater-TDD ::= CHOICE { -- -- DPCHInfo-r10OrLaterExtensionType-TDD -- Applicable Rel-10 or later --- @sic R5-130613 R5-133682 sic@ +-- rel12_AspExt is applied when DTCH is mapped on DL-DPCH +-- @sic R5-130613 R5-133682 R5s150329 sic@ -- --************************************************************** DPCHInfo-r10OrLaterExtensionType-TDD ::= CHOICE { @@ -3286,6 +3332,13 @@ DPCHInfo-r10OrLaterExtensionType-TDD ::= CHOICE { hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, ss-DRX-Info DTX-Info OPTIONAL + }, + rel12-AspExt SEQUENCE { -- Rel-12 and later + ul-DPCHInfo UL-DPCH-Info-r11 OPTIONAL, + dl-DPCHInfo DL-DPCHInfo-r12-TDD OPTIONAL, + hs-DPCCHInd HS-DPCCHInfo-r10 OPTIONAL, + ss-UL-DPCCH-DRX-Info SS-UL-DPCCH-DRX-Info OPTIONAL, + ss-DRX-Info DTX-Info OPTIONAL } } @@ -3435,19 +3488,6 @@ HS-DPCCHInfo-r10 ::= SEQUENCE { -- Relevant when third secondary cell is configured } ---************************************************************** --- --- HS-DSCH-DrxCellfach-info --- ---************************************************************** - -HS-DSCH-DrxCellfach-info ::= SEQUENCE { - t-321 T-321, - hs-dsch-DrxCycleFach HS-DSCH-DrxCycleFach, - hs-dsch-DrxBurstFach HS-DSCH-DrxBurstFach, - drxInterruption-hs-dsch BOOLEAN -} - --************************************************************** -- -- HS-DSCHMACdFlows @@ -3547,6 +3587,7 @@ HS-PDSCHInfo-r5OrLater-TDD ::= CHOICE { -- The IE "hsdsch-physical-layer-category-ext6" is present when multi-cell operation on 5 or 6 cells are configured. -- The IE "hsdsch-physical-layer-category-ext7" is present when multi-cell operation on 7 or 8 cells are configured. -- The IE "hsdsch-physical-layer-category-ext8" is present when MIMO with 4 transmit antenna are configured. +-- @sic R5s150329 sic@ --************************************************************** HS-PDSCHInfo-r10OrLaterExtensionType ::= CHOICE { rel10-AspExt SEQUENCE { @@ -3597,6 +3638,47 @@ HS-PDSCHInfo-r10OrLaterExtensionType ::= CHOICE { mimo-Parameters MIMO-Parameters-r9 OPTIONAL, hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE + }, + commonRel11-AspExt SEQUENCE { -- @sic R5-150125 feFACH sic@ + hsdsch-physical-layer-category-ext + HSDSCH-physical-layer-category-ext OPTIONAL, + commonOrDedicated-H-RNTI H-RNTI OPTIONAL, + bcchSpecific-H-RNTI H-RNTI, + hs-scch-SystemInfo HS-SCCH-SystemInfo, + hs-dsch-PagingSystemInformation HS-DSCH-PagingSystemInformation OPTIONAL, + sttd-Indicator BOOLEAN, + hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH + hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, + ss-HS-DSCH-DtxCellFach HS-DSCH-DrxCellfach-info OPTIONAL, + ss-HS-DSCH-DtxCellFach-SecondDtx HS-DSCH-DrxCellfach-SecondDrx-info OPTIONAL + }, + rel12-AspExt SEQUENCE { -- Rel-12 or later + hSDSCHPhysicalLayerCategory HSDSCH-physical-layer-category OPTIONAL, + hsdsch-physical-layer-category-ext + HSDSCH-physical-layer-category-ext OPTIONAL, + hsdsch-physical-layer-category-ext2 + HSDSCH-physical-layer-category-ext2 OPTIONAL, + hsdsch-physical-layer-category-ext3 + HSDSCH-physical-layer-category-ext3 OPTIONAL, + hsdsch-physical-layer-category-ext4 + HSDSCH-physical-layer-category-ext4 OPTIONAL, + hsdsch-physical-layer-category-ext5 + HSDSCH-physical-layer-category-ext5 OPTIONAL, + hsdsch-physical-layer-category-ext6 + HSDSCH-physical-layer-category-ext6 OPTIONAL, + hsdsch-physical-layer-category-ext7 + HSDSCH-physical-layer-category-ext7 OPTIONAL, + hsdsch-physical-layer-category-ext8 + HSDSCH-physical-layer-category-ext8 OPTIONAL, + h-RNTI H-RNTI, + dlHSPDSCHInformation DL-HSPDSCH-Information-r12, + sttd-Indicator BOOLEAN, + hs-SCCH-TxPower DL-TxPower, -- offset related to CPICH + ss-DTX-Info DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimo-Parameters MIMO-Parameters-r9 OPTIONAL, + hs-DPCCHToFollow BOOLEAN DEFAULT TRUE, + hs-SCCH-SttdIndicator BOOLEAN DEFAULT FALSE } } @@ -4234,11 +4316,19 @@ RB-ConfigType ::= ENUMERATED { cell-DCH-E-HS (84), cell-DCH-dlSRB-E-HS (85), cell-E-HS (86), + cell-E-HS-MAC-TM-RAB (92), cell-E-HS-StandAloneSRB (98), cell-DCH-64kPS-AM-RAB (101), cell-SecondaryDualCell-SRB (118), cell-SecondaryDualCell-RAB (119), - cell-SecondaryDualCell-NoConn (123) + cell-FACH-UL-SRB (120), --@sic R5-150125 feFACH sic@ + cell-FACH-UL-SRB-NoConn (121), --@sic R5-150125 feFACH sic@ + cell-FACH-UL-PS (122), --@sic R5-150125 feFACH sic@ + cell-SecondaryDualCell-NoConn (123), + cell-DCH-3AM-PS (131), --@sic R5s150283 sic@ + cell-FACH-UL-NoDedicated (138), --@sic R5-150125 feFACH sic@ + cell-FACH-UL-FallBack (140), --@sic R5-150125 feFACH sic@ + cell-DCH-E-HS-TM-RAB (141) --@sic R5-150124 MultiFlow sic@ } --************************************************************** @@ -4246,7 +4336,7 @@ RB-ConfigType ::= ENUMERATED { -- RB-LogCH-Mapping -- Provide mapping information between RB, logical channel and CN domain. -- When the logical channel is MTCH, the logicalChannelIdentity shall be consistent with MBMS-LogicalChIdentity in MBMS-PTM-RBInformation-N and MBMS-PTM-RBInformation-C being sent to the UE. --- +-- In rel-11 Multiflow inter-NodeB configuration RB is mapped to logical channel on two MAC-ehs entities. --************************************************************** RB-LogCH-Mapping ::= SEQUENCE { @@ -4617,7 +4707,7 @@ SS-E-AGCH-Info-FDD ::= CHOICE { e-AGCHInfo E-AGCH-Information, tti E-DCH-TTI, e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) + -- Range and Step are acc to 25.433, 9.2.2.13Id @sic R5-153075 sic@ -- Offset relative to P-CPICH e-RNTI-Primary E-RNTI OPTIONAL, e-RNTI-Secondary E-RNTI OPTIONAL, @@ -4628,7 +4718,7 @@ SS-E-AGCH-Info-FDD ::= CHOICE { e-AGCHInfo E-AGCH-Information-r8, tti E-DCH-TTI, e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) + -- Range and Step are acc to 25.433, 9.2.2.13Id @sic R5-153075 sic@ -- Offset relative to P-CPICH e-RNTI-Primary E-RNTI OPTIONAL, e-RNTI-Secondary E-RNTI OPTIONAL, @@ -4651,7 +4741,7 @@ SS-E-AGCH-Info-TDD ::= CHOICE { e-AGCH-ID-TDD INTEGER (0..255), e-AGCHInfo E-AGCH-Information-r7, e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) + -- Range and Step are acc to 25.433, 9.2.2.13Id @sic R5-153141 sic@ -- Offset relative to P-CPICH maximum-E-AGCH-Power INTEGER (-350..150), carrier-Frequency UARFCN OPTIONAL, @@ -4662,7 +4752,7 @@ SS-E-AGCH-Info-TDD ::= CHOICE { e-AGCH-ID-TDD INTEGER (0..255), e-AGCHInfo E-AGCH-Information-r8, e-AGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13If) + -- Range and Step are acc to 25.433, 9.2.2.13Id @sic R5-153141 sic@ -- Offset relative to P-CPICH maximum-E-AGCH-Power INTEGER (-350..150), carrier-Frequency UARFCN OPTIONAL, @@ -4794,7 +4884,7 @@ SS-E-HICH-Info ::= SEQUENCE { e-HICH-PowerOffset INTEGER (0..255), -- PowerOffset = -32 + offset * 0.25 -- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB - -- (25.433, 9.2.2.13Id), offset relative to P-CPICH + -- (25.433, 9.2.2.13If), offset relative to P-CPICH @sic R5-153075 sic@ sttdIndicator BOOLEAN DEFAULT FALSE, -- @sic R5-120613 sic@ relAspTypeExtension SS-E-HICH-Info-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5-134957 sic@ } @@ -4837,7 +4927,7 @@ SS-E-HICH-Info-LCR ::= SEQUENCE { e-HICH-PowerOffset INTEGER (0..255) -- PowerOffset = -32 + offset * 0.25 -- Unit dB, Range -32dB .. +31.75dB, Step +0.25dB - -- (25.433, 9.2.2.13Id), offset relative to P-CPICH + -- (25.433, 9.2.2.13If), offset relative to P-CPICH @sic R5-153141 sic@ } --************************************************************** @@ -4866,8 +4956,8 @@ SS-E-RGCH-Info ::= SEQUENCE { e-RGCHInfoCommonEDCH E-RGCH-Information-CommonEdch OPTIONAL, -- @sic R5s110175 sic@ tti E-DCH-TTI , e-RGCH-PowerOffset INTEGER (0..255), - -- Range and Step are FFS (25.433, 9.2.2.13Ie) - -- Offset relative to P-CPICH, + -- Range Range:-32 .. +31.75 dB, Step: 0.25 dB + -- Offset relative to P-CPICH ss-DTX-Info DRX-Info OPTIONAL, sttdIndicator BOOLEAN DEFAULT FALSE, -- @sic R5-120613 sic@ relAspTypeExtension SEQUENCE{} OPTIONAL -- Rel-10 or later @sic R5-130613 sic@ @@ -5335,22 +5425,26 @@ TrCHInfo-TDD ::= SEQUENCE ehs-DSCH-Flows EHS-DSCH-Flows OPTIONAL, -- Rel-7 or later ehs-DSCH-CommonFlows EHS-DSCH-CommonFlows OPTIONAL, -- Rel-7 or later ehs-DSCH-Flows-r9 EHS-DSCH-Flows-r9 OPTIONAL, -- Rel-9 or later - relAspTypeExtension SEQUENCE {} OPTIONAL -- Rel-10 or later @sic R5-130613 sic@ - + relAspTypeExtension TrCHInfo-r10OrLaterExtensionType OPTIONAL -- Rel-10 or later @sic R5-130613 R5s150329 sic@ } --************************************************************** -- -- TrCHInfo-r10OrLaterExtensionType -- Rel-11 or later --- For rel-11 MAC-ehs configuration: +-- For Rel-11 MAC-ehs configuration: -- When ulconnectedTrCHList, ulTFCS, dlconnectedTrCHList and dlTFCS are omitted and ehs-DSCH-Flows or E-HS-DSCH-Common Flows or ehs-DSCH-Flows-r11 is present this ASP configures an MAC-ehs entity. -- Only one of hsDSCHMacdFlows or ehs-DSCH-Flows or ehs-DSCH-Flows-r9 or ehs-DSCH-Flows-r11 can be present. --- +-- For Rel-12, UL DCH configuration: +-- Only one of ulTFCS in TrCHInfo and ulTFCS-r12 can be present. +-- @sic R5s150329 sic@ --************************************************************** TrCHInfo-r10OrLaterExtensionType ::= CHOICE { rel11-AspExt SEQUENCE { -- Rel-11 or later ehs-DSCH-Flows-r11 EHS-DSCH-Flows-r11 OPTIONAL + }, + rel12-AspExt SEQUENCE { -- Rel-12 or later + ulTFCS-r12 TFCS-r12 OPTIONAL } } @@ -5379,7 +5473,7 @@ TrCH-LogCHMappingList-TDD ::= SEQUENCE (SIZE (1..maxLogCHperTrCH)) OF TrCH-Logic -- maxulTrCH = maxdlTrCH = 16 -- dlconnectedMACdFlows is used for MAC-hs and dlconnectedMAC-ehsFlows for MAC-ehs configurations in dedicated. -- dlconnectedMAC-ehsCommonFlow is used for MAC-ehs in Common state. For BCCH and PCCH in common state, the mac-ehs-QueueId is omitted, no reordering is applied and the TSN and SI fields are always set to zero (according to 3GPP TS 25.321 [17], subclauses 9.1.4 and 11.6.4.4) --- dlconnectedMAC-ehsFlowsDC is used when dual cell or 4C-HSDPA is activated. +-- dlconnectedMAC-ehsFlowsDC is used when dual cell or 4C-HSDPA or Multiflow is activated. -- --************************************************************** @@ -6434,6 +6528,108 @@ CPHY-MeasurementConfig-CNF ::= SEQUENCE { cellId INTEGER(0..63) } + +--************************************************************** +-- +-- CPHY-AICH-NegAckModeSet-REQ +-- To configure SS to transmit a specific number of Negative AICH Acknowledge +-- - numNegACK defines how many access preambles are negatively acknowledged +-- - nextAICH-Mod is the AICH acknowledgement mode applied after the numNegACK negative acknowledgements have been transmitted. +-- +--************************************************************** +CPHY-AICH-NegAckModeSet-REQ ::= SEQUENCE { + cellId INTEGER(0..63), + routingInfo RoutingInfo, + ratType RatType, + numNegACK INTEGER(1..100), + nextAICH-Mode AICH-Mode +} + +--************************************************************** +-- +-- Normal operation: The AICH will operate as normal, and will acknowledge or negatively acknowledge on all UE RACH/E-DCH transmission attempts, appropriately. +-- No Acknowledge: The AICH shall not transmit acknowledge or Negative Acknowledge on all UE RACH/E-DCH transmission attempts. +-- Negative Acknowledge: The AICH shall transmit Negative Acknowledge on all UE RACH/E-DCH transmission attempts +-- +--************************************************************** +AICH-Mode ::= ENUMERATED { + normal (0), + noAck (1), + negACK (2) +} + +--************************************************************** +-- +-- CPHY-AICH-NegAckModeSet-CNF +-- To confirm setting of Negative AICH Acknowledge Mode +-- +--************************************************************** +CPHY-AICH-NegAckModeSet-CNF ::= SEQUENCE { + cellId INTEGER(0..63), + routingInfo RoutingInfo +} + + +--************************************************************** +-- +-- CPHY-PRACH-Measurement-REQ +-- To request for Start or Stop of PRACH Measurements to be done every PRACH PREAMBLE or MESSAGE received. +-- If reportSFN is set to TRUE, SS shall report in the IE PRACH-MeasurementReport the SFN value at which the event is received. +-- +--************************************************************** +CPHY-PRACH-Measurement-REQ ::= SEQUENCE { + cellId INTEGER(0..63), + routingInfo RoutingInfo, + ratType RatType, + pRACH-MeasurementInd PRACH-MeasurementInd, + reportSFN BOOLEAN DEFAULT FALSE +} + +--************************************************************** +-- +-- CPHY-PRACH-Measurement-CNF +-- To Confirm PRACH Measurement Req +-- +--************************************************************** +CPHY-PRACH-Measurement-CNF ::= SEQUENCE { + cellId INTEGER(0..63), + routingInfo RoutingInfo +} + +--************************************************************** +-- PRACH-MeasurementInd +-- 1) StartMeas: The SS shall start the sending PRACH parameters Measurement report on CPHY PCO, for each PRACH Preamble or MESSAGE received from the UE by primitive CPHY-PRACH-Measurement-Report-IND on CPHY PCO. +-- 2) StopMeas: The SS shall stop sending of PRACH parameters Measurement report on CPHY PCO, for each PRACH Preamble or MESSAGE received from the UE by primitive CPHY-PRACH-Measurement-Report-IND on CPHY PCO. +--************************************************************** +PRACH-MeasurementInd ::= ENUMERATED { + startMeas (0), + stopMeas (1) +} + +--************************************************************** +-- +-- CPHY-PRACH-Measurement-Report-IND +-- SS indicates a PRACH parameters measurement report for each PRACH Preambles or MESSAGE received from the UE +-- +--************************************************************** +CPHY-PRACH-Measurement-Report-IND ::= SEQUENCE { + cellId INTEGER(0..63), + routingInfo RoutingInfo, + ratType RatType, + measurementReport PRACH-MeasurementReport +} + +--************************************************************** +-- PRACH-MeasurementReport +-- sfn is included if reportSFN is TRUE in CPHY-PRACH-Measurement-REQ. +--************************************************************** +PRACH-MeasurementReport ::= SEQUENCE { + usedPRACH-AcessSlot INTEGER (0..14), + usedPRACH-Signature INTEGER (0..15) OPTIONAL, + sfn INTEGER (0..4095) OPTIONAL +} + + --************************************************************** -- -- CRLC-Ciphering-Activate-CNF @@ -7125,7 +7321,7 @@ CMAC-MAChs-MACehs-TFRCconfigure-FDD-REQ ::= SEQUENCE { -- -- TFRCconfigure-r10OrLaterExtensionType -- Rel-10 or later --- Extension to configure the TFRC selection in the MAC-ehs entity when 4C-HSDPA is configured. +-- Extension to configure the TFRC selection in the MAC-ehs entity when 4C-HSDPA or Multiflow is configured. -- --************************************************************** TFRCconfigure-r10OrLaterExtensionType ::= CHOICE { @@ -7163,6 +7359,36 @@ TFRCconfigure-r10OrLaterExtensionType ::= CHOICE { -- for the third secondary cell when configured -- when omitted then no data is sent on the secondary HS-DSCH cell } + }, + rel11-AspExt CHOICE { --@sic R5-145142 sic@ + sS-Configured-MF SEQUENCE { -- Rel-11 Multiflow HSDPA + nodeB-Id INTEGER(0..63), + serving-TFRC TFRC-Configured-Type OPTIONAL, + -- serving HS-DSCH cell + assistingServing-TFRC TFRC-Configured-Type OPTIONAL, + -- assisting serving HS-DSCH cell + secondary-TFRC TFRC-Configured-Type OPTIONAL, + -- secondary serving HS-DSCH cell + assistingSecondary-TFRC TFRC-Configured-Type OPTIONAL, + -- assisting secondary serving HS-DSCH cell + iniHS-PDSCH-TxPower DL-TxPower + -- default offset related + -- to p-CPICH or s-CPICH + }, + explicitlyConfigured-MF SEQUENCE { -- Rel-11 Multiflow HSDPA + nodeB-Id INTEGER(0..63), + serving-TFRC TFRC-Explicit-Type OPTIONAL, + -- when omitted then no data is sent on the serving HS-DSCH cell + assistingServing-TFRC TFRC-Explicit-Type OPTIONAL, + -- when omitted then no data is sent on the assisting serving + -- HS-DSCH cell + secondary-TFRC TFRC-Explicit-Type OPTIONAL, + -- when omitted then no data is sent on the secondary serving + -- HS-DSCH cell + assistingSecondary-TFRC TFRC-Explicit-Type OPTIONAL + -- when omitted then no data is sent on the assisting secondary + -- serving HS-DSCH cell + } } } @@ -7330,7 +7556,10 @@ U-CMAC-CONFIG-REQ ::= CHOICE { configMACiE-TFC-FDD CMAC-MACi-E-TFC-Restriction-FDD-REQ, --@sic R5w140208 sic@ configMACiE-TFC-TDD CMAC-MACi-E-TFC-Restriction-TDD-REQ, --@sic R5w140208 sic@ configHARQ-MultiFlow CMAC-MACehs-HARQAssign-MultiFlows-REQ, - configRestriction CMAC-Restriction-REQ + configRestriction CMAC-Restriction-REQ, + configMACehs-NodeB CMAC-ConfigMACehs-NodeB-REQ, -- @sic R5-145142 sic@ + mACehs-NodeB-CellMapping CMAC-MACehs-NodeB-CellMapping-REQ, -- @sic R5-145142 sic@ + mACehs-HARQAssign-NodeB CMAC-MACehs-HARQAssign-NodeB-REQ -- @sic R5-145142 sic@ } U-CMAC-CONFIG-CNF ::= CHOICE { @@ -7350,7 +7579,10 @@ U-CMAC-CONFIG-CNF ::= CHOICE { configMACi-AG-TDD CMAC-MACi-AG-TDD-CNF, -- @sic R5-144761 sic@ configMACiE-TFC CMAC-MACi-E-TFC-Restriction-CNF , configHARQ-MultiFlow CMAC-MACehs-HARQAssign-MultiFlows-CNF, - configRestriction CMAC-Restriction-CNF + configRestriction CMAC-Restriction-CNF, + configMACehs-NodeB CMAC-ConfigMACehs-NodeB-CNF, -- @sic R5-145142 sic@ + mACehs-NodeB-CellMapping CMAC-MACehs-NodeB-CellMapping-CNF, -- @sic R5-145142 sic@ + mACehs-HARQAssign-NodeB CMAC-MACehs-HARQAssign-NodeB-CNF -- @sic R5-145142 sic@ } U-CPHY-CONFIG-CNF ::= CHOICE { @@ -7370,7 +7602,10 @@ U-CPHY-CONFIG-CNF ::= CHOICE { hSDpcchCQI-MultiCellInd CPHY-HS-DPCCH-CQI-MultiCell-IND, -- @sic R5-134957 sic@ measurementConfig CPHY-MeasurementConfig-CNF, -- @sic R5-134957 sic@ hSDpcchCQI CPHY-HS-DPCCH-CQI-CNF, - hSDpcchCQI-Ind CPHY-HS-DPCCH-CQI-IND + hSDpcchCQI-Ind CPHY-HS-DPCCH-CQI-IND, + prachMeasurementReport CPHY-PRACH-Measurement-Report-IND, -- @sic R5-150125 feFACH sic@ + prachMeasurement CPHY-PRACH-Measurement-CNF, -- @sic R5-150125 feFACH sic@ + cPHY-AICH-NegAckModeSet CPHY-AICH-NegAckModeSet-CNF -- @sic R5-150125 feFACH sic@ } U-CPHY-CONFIG-REQ ::= CHOICE { @@ -7392,8 +7627,10 @@ U-CPHY-CONFIG-REQ ::= CHOICE { frameNo CPHY-Frame-Number-REQ, hSDpcchCQI-MultiCell CPHY-HS-DPCCH-CQI-MultiCell-REQ, -- @sic R5-134957 sic@ measurementConfig CPHY-MeasurementConfig-REQ, -- @sic R5-134957 sic@ - hSDpcchCQI CPHY-HS-DPCCH-CQI-REQ -} + hSDpcchCQI CPHY-HS-DPCCH-CQI-REQ, + prachMeasurement CPHY-PRACH-Measurement-REQ, -- @sic R5-150125 feFACH sic@ + cPHY-AICH-NegAckModeSet CPHY-AICH-NegAckModeSet-REQ -- @sic R5-150125 feFACH sic@ + } U-CRLC-CONFIG-CNF ::= CHOICE { config CRLC-Config-CNF, @@ -7407,7 +7644,8 @@ U-CRLC-CONFIG-CNF ::= CHOICE { resume CRLC-Resume-CNF, suspend CRLC-Suspend-CNF, prohibit CRLC-ProhibitRLC-Ack-CNF, - bindTestDataMultiFlow CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-CNF + bindTestDataMultiFlow CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-CNF, + bindTestDataMultiFlow-NodeB CRLC-BindTestDataInMultipleMACehs-PDU-NodeB-CNF -- @sic R5-150124 MF sic@ } U-CRLC-CONFIG-REQ ::= CHOICE { @@ -7422,7 +7660,8 @@ U-CRLC-CONFIG-REQ ::= CHOICE { resume CRLC-Resume-REQ, suspend CRLC-Suspend-REQ, prohibit CRLC-ProhibitRLC-Ack-REQ, - bindTestDataMultiFlow CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-REQ + bindTestDataMultiFlow CRLC-BindTestDataInMultipleMACehs-PDU-MultiFlows-REQ, + bindTestDataMultiFlow-NodeB CRLC-BindTestDataInMultipleMACehs-PDU-NodeB-REQ -- @sic R5-150124 MF sic@ } U-CPDCP-CONFIG-CNF ::= CHOICE { @@ -7819,6 +8058,112 @@ HARQAssign-MultiFlows-r10OrLaterExtensionType ::= CHOICE { } } +--************************************************************** +-- +-- CMAC-ConfigMACehs-NodeB-REQ +-- FDD rel-11 or later +-- To configure a MAC-ehs entity. +-- - setup is used for creation of the MAC-ehs entity; +-- - release the MAC-ehs entity; +-- - reconfiguration is used to modify the MAC-ehs parameters. +-- +--************************************************************** +CMAC-ConfigMACehs-NodeB-REQ ::= SEQUENCE { + nodeB-Id INTEGER(0..63), + routingInfo RoutingInfo, + ratType RatType, + activationTime SS-ActivationTime, + configMessage CHOICE { + setup CmacConfigReq-r11OrLater, + reconfigure CmacConfigReq-r11OrLater, + release NULL + } +} + +CmacConfigReq-r11OrLater ::= CHOICE { + rel11 SEQUENCE { + uE-Info UE-Info, + trCHInfo TrCHInfo, + trCH-LogCHMapping TrCH-LogCHMappingList1, + associatedPhychConfigToFollow BOOLEAN DEFAULT FALSE, + tSN-FieldExtension BOOLEAN DEFAULT FALSE + } +} + +--************************************************************** +-- +-- CMAC-ConfigMACehs-NodeB-CNF +-- Confirm a previous CMAC-ConfigMACehs-NodeB-REQ successful. +-- +--************************************************************** +CMAC-ConfigMACehs-NodeB-CNF ::= SEQUENCE { + nodeB-Id INTEGER(0..63) +} + +--************************************************************** +-- +-- CMAC-MACehs-NodeB-CellMapping-REQ +-- FDD rel-11 or later. +-- To put a set of cells under the control of a MAC-ehs entity indicated by nodeB-Id, which is configured by CMAC-ConfigMACehs-NodeB-REQ. +-- This ASP establishes the routing relation between HS-DSCH related channels in these cells with a MAC-ehs entity. +-- When a cell is mapped to the MAC-ehs entity then data can be transmitted on the HS-PDSCH of that cell. When a cell is unmapped then it is deactivated. +-- A cell is mapped to only one NodeB. +-- +--************************************************************** +CMAC-MACehs-NodeB-CellMapping-REQ ::= SEQUENCE { + nodeB-Id INTEGER(0..63), + activationTime SS-ActivationTime, --@sic R5-150124 sic@ + cellList SEQUENCE (SIZE (1..4)) OF MappingCellInfo-Type +} + +MappingCellInfo-Type ::= SEQUENCE { + cellId INTEGER(0..63), + multiflowCellConfiguration MultiflowCellConfiguration-Type OPTIONAL, + timeReferenceCell ENUMERATED { true } OPTIONAL +} + +MultiflowCellConfiguration-Type ::= ENUMERATED { serving, assistingServing, secondaryServing, assistingSecondaryServing } + + +--************************************************************** +-- +-- CMAC-MACehs-NodeB-CellMapping-CNF +-- Confirm a previous CMAC-MACehs-NodeB-CellMapping-REQ being successful. +-- +--************************************************************** +CMAC-MACehs-NodeB-CellMapping-CNF ::= SEQUENCE { + nodeB-Id INTEGER(0..63) +} + +--************************************************************** +-- +-- CMAC-MACehs-HARQAssign-NodeB-REQ +-- Applicable Rel-11 or later +-- To assign the HARQ processes for the simultaneous transmission of the MAC-ehs PDUs on the different flows in the same TTI (assisting serving and assisting secondary serving being shifted by cell timing offset). +-- After successful transmission the MAC-ehs entities return back to normal operation. In the normal operation suitable HARQ processes are selected by HARQ entities in the MAC-ehs to serve the MAC-ehs PDU without TTCN intervening. +-- +--************************************************************** +CMAC-MACehs-HARQAssign-NodeB-REQ ::= SEQUENCE { + harqFlowsPerNodeB SEQUENCE (SIZE (1..2)) OF NodeB-HarqFlowList-Type +} + +NodeB-HarqFlowList-Type ::= SEQUENCE { + nodeB-Id INTEGER(0..63), + servingFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, + assistingServingFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, + secondaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL, + assistingSecondaryFlowHarqProcessId INTEGER(0..15|31) OPTIONAL +} + +--************************************************************** +-- +-- CMAC-MACehs-HARQAssign-NodeB-CNF +-- Applicable Rel-11 or later +-- Confirm a previous CMAC-MACehs-HARQAssign-NodeB-REQ being successful. +-- +--************************************************************** +CMAC-MACehs-HARQAssign-NodeB-CNF ::= SEQUENCE {} + --************************************************************** -- -- CMAC-Restriction-REQ @@ -7904,6 +8249,47 @@ BindTestDataInMultipleMACehs-r10OrLaterExtensionType ::= CHOICE { } } +--************************************************************** +-- +-- CRLC-BindTestDataInMultipleMACehs-PDU-NodeB-CNF +-- To confirm the request of binding subsequent data sending RLC-TR/UM/AM-TestDataReq on the specified RB mapped on HS-DSCH. +-- +--************************************************************** +CRLC-BindTestDataInMultipleMACehs-PDU-NodeB-CNF ::= SEQUENCE{ + cellId INTEGER(-1..63), + routingInfo RoutingInfo, -- RB ID + result ENUMERATED{failure(0), success(1)} +} + +--************************************************************** +-- +-- CRLC-BindTestDataInMultipleMACehs-PDU-NodeB-REQ +-- To request of binding subsequent data sending RLC-TR/UM/AM-TestDataReq on the specified RB mapped on up to 4 HS-DSCH configured on one or two NodeB in simultaneous MAC-ehs PDUs. +-- On the request, the transmission of the test data is temporarily suppressed on the radio bearer till all SDUs for all flows are received by RLC layer on the Radio Bearer. After receiving all SDU's the RLC layer submits to MAC such that all of them are sent in MAC-ehs PDUs at the same timing. +-- +--************************************************************** +CRLC-BindTestDataInMultipleMACehs-PDU-NodeB-REQ ::= SEQUENCE{ + cellId INTEGER(-1..63), + routingInfo RoutingInfo, -- RB ID desired to be given + bindingNodeB SEQUENCE (SIZE (1..2)) OF NodeB-FlowList-Type +} + +--************************************************************** +-- +-- NodeB-FlowList-Type +-- +--************************************************************** +NodeB-FlowList-Type ::= SEQUENCE { + nodeB-Id INTEGER(0..63), + servingFlowNumOfSDUs INTEGER OPTIONAL, + -- Number of RLC SDU's for the serving HS-DSCH cell + assistingServingFlowNumOfSDUs INTEGER OPTIONAL, + -- Number of RLC SDU's for the assisting serving HS-DSCH cell + secondaryFlowNumOfSDUs INTEGER OPTIONAL, + -- Number of RLC SDU's for the secondary serving HS-DSCH cell + assistingSecondaryFlowNumOfSDUs INTEGER OPTIONAL + -- Number of RLC SDU's for the assisting secondary serving HS-DSCH cell +} --************************************************************** -- PDCP ASPs diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn index 5f63b0d..e81e5ab 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ASP_VirtualNoiseDefs.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-03-01 18:20:39 +0100 (Sat, 01 Mar 2014) $ // $Rev: 10766 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CellInfo.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CellInfo.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CellInfo.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CellInfo.ttcn index 4b9bafa..bf26f4c 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CellInfo.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CellInfo.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 11:08:39 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12201 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 15:18:44 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14044 $ /******************************************************************************/ module UTRAN_CellInfo { @@ -34,7 +34,7 @@ module UTRAN_CellInfo { // const float UTRAN_t_WaitMS_Value := 13.5; - type enumerated COMMON_TestConfig_Enum {utran_only, utran_geran}; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type enumerated COMMON_TestConfig_Enum {utran_only, utran_geran}; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //-------------------------------------------------------------------------- // UTRAN cell info templates @@ -94,7 +94,7 @@ module UTRAN_CellInfo { * @param p_PowerPICH * @param p_PowerAICH * @return SysInfoType5 - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_InitializeSIB5_SIB5Bis(integer p_Band, PICH_PowerOffset p_PowerPICH, @@ -145,6 +145,10 @@ module UTRAN_CellInfo { v_SIB5 := cs_SIB5_Band22(p_PowerPICH, p_PowerAICH); } case (25) { v_SIB5 := cs_SIB5_Band25(p_PowerPICH, p_PowerAICH); + } case (26) { + v_SIB5 := cs_SIB5_Band26(p_PowerPICH, p_PowerAICH); + } case (32) { //@sic R5-151965 sic@ + v_SIB5 := cs_SIB5_Band32(p_PowerPICH, p_PowerAICH); } case else { FatalError(__FILE__, __LINE__, "invalid frequency band"); @@ -157,7 +161,7 @@ module UTRAN_CellInfo { * @desc initialise SIB11 (FDD) * @param p_CellList * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_InitializeSIB11(UTRAN_CellInfoList_Type p_CellList) return UTRAN_CellInfoList_Type { @@ -225,7 +229,7 @@ module UTRAN_CellInfo { * @desc initialise SIB11 (TDD) * @param p_CellList * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_InitializeSIB11_TDD(UTRAN_CellInfoList_Type p_CellList) return UTRAN_CellInfoList_Type { @@ -294,7 +298,7 @@ module UTRAN_CellInfo { * @param p_CellList * @param p_GERANSysInfo * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_InitializeSIB11_ForGERAN(UTRAN_CellInfoList_Type p_CellList, CoOrd_GERANSysInfo_List_Type p_GERANSysInfo) return UTRAN_CellInfoList_Type @@ -314,7 +318,7 @@ module UTRAN_CellInfo { * @desc Function that converts the bit indicating the GERAN band used into the asn1 value * @param p_BandInd * @return Frequency_Band - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_GetGeranBandIndicator(B1_Type p_BandInd) return Frequency_Band { @@ -331,7 +335,7 @@ module UTRAN_CellInfo { * @param p_CellList * @param p_GERANSysInfo * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_InitializeSIB11_UG_FDD(UTRAN_CellInfoList_Type p_CellList, CoOrd_GERANSysInfo_List_Type p_GERANSysInfo) return UTRAN_CellInfoList_Type @@ -462,7 +466,7 @@ module UTRAN_CellInfo { * @param p_CellList * @param p_GERANSysInfo * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_InitializeSIB11_UG_TDD(UTRAN_CellInfoList_Type p_CellList, CoOrd_GERANSysInfo_List_Type p_GERANSysInfo) return UTRAN_CellInfoList_Type @@ -602,7 +606,7 @@ module UTRAN_CellInfo { * @param p_DRX * @param p_TestConfig * @return UTRAN_CellSysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_SystemInformation_Init_FDD(UTRAN_CellId_Type p_CellId, integer p_Band, @@ -652,8 +656,8 @@ module UTRAN_CellInfo { } else { v_CellSysInfo.SIB19 := cs_SIB19_Def(omit); // to be replaced later with proper data from co-ord msg; @sic R5s100871 sic@ } - v_CellSysInfo.SIB21 := omit; // SIB21 @sic R5-144078 sic@ - v_CellSysInfo.SIB22 := omit; // SIB21 @sic R5-144078 sic@ + v_CellSysInfo.SIB21 := omit; // SIB21 @sic R5-144708 sic@ + v_CellSysInfo.SIB22 := omit; // SIB21 @sic R5-144708 sic@ // SIB5 or SIB5bis if ((p_Band == 4) or (p_Band == 9) or (p_Band == 10)) { v_CellSysInfo.MIB.sibSb_ReferenceList[5].sibSb_Type := {sysInfoType5bis := 1}; @@ -662,7 +666,7 @@ module UTRAN_CellInfo { v_CellSysInfo.SIB5_Type := systemInformationBlockType5; } - v_CellSysInfo.config := configuration6; // Default sysinfo configuration for LTE-IRAT tc @sic R5-144078 sic@ + v_CellSysInfo.config := configuration6; // Default sysinfo configuration for LTE-IRAT tc @sic R5-144708 sic@ return valueof(v_CellSysInfo); } //---------------------------------------------------------------------------- @@ -681,7 +685,7 @@ module UTRAN_CellInfo { * @param p_CellParametersID * @param p_TestConfig * @return UTRAN_CellSysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function fl_UTRAN_SystemInformation_Init_TDD(UTRAN_CellId_Type p_CellId, PLMN_Identity p_PLMNId, @@ -727,9 +731,9 @@ module UTRAN_CellInfo { } else { v_CellSysInfo.SIB19 := cs_SIB19_Def(omit); // to be replaced later with proper data from co-ord msg; @sic R5s100871 sic@ } - v_CellSysInfo.config := configuration6; // Default sysinfo configuration for LTE-IRAT tc @sic R5-144078 sic@ - v_CellSysInfo.SIB21 := omit; // SIB21 @sic R5-144078 sic@ - v_CellSysInfo.SIB22 := omit; // SIB21 @sic R5-144078 sic@ + v_CellSysInfo.config := configuration6; // Default sysinfo configuration for LTE-IRAT tc @sic R5-144708 sic@ + v_CellSysInfo.SIB21 := omit; // SIB21 @sic R5-144708 sic@ + v_CellSysInfo.SIB22 := omit; // SIB21 @sic R5-144708 sic@ return valueof(v_CellSysInfo); } @@ -741,7 +745,7 @@ module UTRAN_CellInfo { * @desc Return the index corresponding to p_CellId * @param p_CellId * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetIndex(UTRAN_CellId_Type p_CellId) return integer { @@ -783,7 +787,7 @@ module UTRAN_CellInfo { /* * @desc Initialise all UTRAN cell info * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_CellArray_Init () return UTRAN_CellInfoList_Type { @@ -827,7 +831,7 @@ module UTRAN_CellInfo { * @desc return cell identity for the given cell * @param p_CellId * @return B28_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_GetCellIndentity(UTRAN_CellId_Type p_CellId) return B28_Type { @@ -856,7 +860,7 @@ module UTRAN_CellInfo { * @desc Function that fills fills the co-ordination message sys info structure to be sent to the other PTCs * @param p_CellInfo * @return template (value) IRAT_CoOrd_SysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_IR_SysInfoInit (UTRAN_CellInfoList_Type p_CellInfo) return template (value) IRAT_CoOrd_SysInfo_Type @@ -974,7 +978,7 @@ module UTRAN_CellInfo { * @param p_CellInfoList * @param p_EUTRAInfo * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_IR_SIB19_Init(UTRAN_CellInfoList_Type p_CellInfoList, IRAT_CoOrd_SysInfo_Type p_EUTRAInfo) @@ -1001,7 +1005,7 @@ module UTRAN_CellInfo { * @param p_CellInfoList * @param p_SysInfoList * @return UTRAN_CellInfoList_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_IR_SIB11And19_Init(UTRAN_CellInfoList_Type p_CellInfoList, IRAT_CoOrd_SysInfo_List_Type p_SysInfoList) @@ -1039,7 +1043,7 @@ module UTRAN_CellInfo { * @desc Initialise FDD Cell Info for one cell * @param p_CellId * @return UTRAN_CellInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_CellInfo_Init_FDD(UTRAN_CellId_Type p_CellId) return UTRAN_CellInfo_Type { @@ -1165,7 +1169,7 @@ module UTRAN_CellInfo { * @desc Initialise TDD Cell Info for one cell * @param p_CellId * @return UTRAN_CellInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_CellInfo_Init_TDD(UTRAN_CellId_Type p_CellId) return UTRAN_CellInfo_Type { @@ -1274,7 +1278,7 @@ module UTRAN_CellInfo { * @desc local function to initialise FrequencyBandFDD * @param p_OperationBand * @return FrequencyBandFDD - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_FrequencyBandFDD(integer p_OperationBand) return FrequencyBandFDD { @@ -1329,6 +1333,8 @@ module UTRAN_CellInfo { v_FrequencyBandFDD := cs_RadioFrequencyBandFDD_25; } else if ((p_OperationBand == 26) and (pc_Band26_Supp or not pc_UTRA)) { // @sic R5s130195 sic@ v_FrequencyBandFDD := cs_RadioFrequencyBandFDD_26; + } else if ((p_OperationBand == 32) and (pc_Band32_Supp or not pc_UTRA)) { // @sic R5-151965 sic@ + v_FrequencyBandFDD := cs_RadioFrequencyBandFDD_32; } else { FatalError(__FILE__, __LINE__, "unknown operation band"); } @@ -1339,7 +1345,7 @@ module UTRAN_CellInfo { * @desc Converts between NAS internal representation of MCC to the MCC ASN.1 type * @param p_MCC MCC as plain string of 3 decimal digits * @return MCC as ASN.1 type (defined as array of 3 integers) - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ConvertMCC_Nas2Asn(hexstring p_MCC) return MCC { // Note: there is a EUTRA variant of this function too @@ -1348,36 +1354,52 @@ module UTRAN_CellInfo { //---------------------------------------------------------------------------- /* * @desc Initialise UTRAN security + * @param p_CipheringAlgorithm_r7 (default value: omit) * @return UTRAN_SecurityInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - function f_UTRAN_SecurityInfo_Init() runs on UTRAN_PTC return UTRAN_SecurityInfo_Type + function f_UTRAN_SecurityInfo_Init(template (omit) CipheringAlgorithm_r7 p_CipheringAlgorithm_r7 := omit) runs on UTRAN_PTC return UTRAN_SecurityInfo_Type { var template (value) UTRAN_SecurityInfo_Type v_SecurityInfo; + var CipheringAlgorithm_r7 v_CipheringAlgorithm_r7; // Check that for UTRAN TDD, px_UTRAN_CipheringAlgorithm=uea0 - // @sic R5-123750 sic@ - if ((px_UTRAN_ModeUnderTest == UTRAN_TDD) and (px_UTRAN_CipheringAlgorithm != uea0)) { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "px_UTRAN_CipheringAlgorithm not set to uea0 in UTRAN TDD"); - } + // @sic R5-123750 R5-150124 sic@ + if (isvalue(p_CipheringAlgorithm_r7)){ + v_CipheringAlgorithm_r7 := valueof(p_CipheringAlgorithm_r7); + if ((px_UTRAN_ModeUnderTest == UTRAN_TDD) and (v_CipheringAlgorithm_r7 != uea0)) { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "px_UTRAN_CipheringAlgorithm not set to uea0 in UTRAN TDD"); + } else { + v_SecurityInfo.cipheringAlgorithm := v_CipheringAlgorithm_r7; + v_SecurityInfo.cipheringAlgorithm_r99 := omit; + if (v_CipheringAlgorithm_r7 == uea2) { + v_SecurityInfo.integrityProtectionAlgorithm := uia2; + } else { + v_SecurityInfo.integrityProtectionAlgorithm := uia1; + } + v_SecurityInfo.integrityProtectionAlgorithm_r99 := uia1; + } + } else { + v_SecurityInfo := f_UTRAN_Security_Get(); + } // In TDD uea0 is used: cipheringOnoff is set to false for SS // @sic R5s130116 sic@ if (px_UTRAN_ModeUnderTest == UTRAN_TDD) { - v_SecurityInfo.cipheringOnOff := false; + v_SecurityInfo.cipheringOnOff := false; } else { - v_SecurityInfo.cipheringOnOff := true; + v_SecurityInfo.cipheringOnOff := true; } - + v_SecurityInfo.cs_cipheringStarted := false; v_SecurityInfo.ps_cipheringStarted := false; v_SecurityInfo.recentSecureDomain := ps_domain; // the domain on which security was recently started, and hence the SRB are ciphered and Integrit protected with this domain. - v_SecurityInfo.dL_CipherMode := cs_CipheringModeCmdOn(uea2); + v_SecurityInfo.dL_CipherMode := cs_CipheringModeCmdOn(v_SecurityInfo.cipheringAlgorithm); v_SecurityInfo.dL_CipherMode_r99 := cs_Null_CipheringModeCommand; // @sic R5s120904 sic@ v_SecurityInfo.uL_CipherMode := omit; v_SecurityInfo.cipheringAlgorithmCapability := '0000000000000111'B; v_SecurityInfo.integrityStarted := false; - v_SecurityInfo.dL_Integrity := cs_IntegrityProtectStart(px_FRESH, uia2); - v_SecurityInfo.dL_Integrity_r99 := cs_IntegrityProtectStart_r99(px_FRESH, uia1); // @sic R5s120904 sic@ + v_SecurityInfo.dL_Integrity := cs_IntegrityProtectStart(px_FRESH, v_SecurityInfo.integrityProtectionAlgorithm); + v_SecurityInfo.dL_Integrity_r99 := cs_IntegrityProtectStart_r99(px_FRESH, v_SecurityInfo.integrityProtectionAlgorithm_r99); // @sic R5s120904 sic@ v_SecurityInfo.uL_Integrity := omit; v_SecurityInfo.dl_IntegrityCheckInfo := omit; v_SecurityInfo.integrProtAlgCap := '0000000000000110'B; //@sic R5s130137 sic@ @@ -1389,7 +1411,7 @@ module UTRAN_CellInfo { v_SecurityInfo.authKeys.AuthCS.IKey := tsc_AuthUndefinedB128; v_SecurityInfo.authKeys.AuthCS.CKeySeq := '111'B; v_SecurityInfo.authKeys.CSinOtherRAT := false; // @sic R5s110168 change 8.6 sic@ - + return valueof(v_SecurityInfo); } @@ -1400,7 +1422,7 @@ module UTRAN_CellInfo { * @desc Function that sets the Tcell of the UTRAN cell * @param p_CellId * @param p_TCell - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_SetTCell(UTRAN_CellId_Type p_CellId, integer p_TCell) runs on UTRAN_PTC @@ -1414,7 +1436,7 @@ module UTRAN_CellInfo { * @desc get info of cell with given index (p_CellId) * @param p_CellId * @return UTRAN_CellInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_Get(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_CellInfo_Type { @@ -1426,7 +1448,7 @@ module UTRAN_CellInfo { * @desc set cell info for given cell * @param p_CellId * @param p_CellInfo - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_Set(UTRAN_CellId_Type p_CellId, UTRAN_CellInfo_Type p_CellInfo) runs on UTRAN_PTC @@ -1439,7 +1461,7 @@ module UTRAN_CellInfo { * @desc Function that returns the NMO of the UTRAN cell * @param p_CellId * @return B2_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetNMO(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return B2_Type { @@ -1451,7 +1473,7 @@ module UTRAN_CellInfo { * @desc Function that sets the NMO of the UTRAN cell * @param p_CellId * @param p_NMO - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_SetNMO(UTRAN_CellId_Type p_CellId, B2_Type p_NMO) runs on UTRAN_PTC @@ -1469,7 +1491,7 @@ module UTRAN_CellInfo { * @desc get LAC of UTRAN cell * @param p_CellId * @return NAS_Lac - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetLAC(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return NAS_Lac { @@ -1481,7 +1503,7 @@ module UTRAN_CellInfo { * @desc set LAC of UTRAN cell * @param p_CellId * @param p_LAC - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, UTRAN) */ function f_UTRAN_CellInfo_SetLAC(UTRAN_CellId_Type p_CellId, NAS_Lac p_LAC) runs on UTRAN_PTC @@ -1497,7 +1519,7 @@ module UTRAN_CellInfo { * @desc get RAC of UTRAN cell * @param p_CellId * @return NAS_Rac - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetRAC(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return NAS_Rac { @@ -1509,7 +1531,7 @@ module UTRAN_CellInfo { * @desc set RAC of UTRAN cell * @param p_CellId * @param p_RAC - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_SetRAC(UTRAN_CellId_Type p_CellId, NAS_Rac p_RAC) runs on UTRAN_PTC @@ -1524,7 +1546,7 @@ module UTRAN_CellInfo { * @desc get the PLMN identity of UTRAN cell * @param p_CellId * @return PLMN_Identity - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetPLMNIdentity(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return PLMN_Identity { @@ -1536,16 +1558,19 @@ module UTRAN_CellInfo { * @desc set the PLMN identity of UTRAN cell * @param p_CellId * @param p_PLMN - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, UTRAN) */ function f_UTRAN_CellInfo_SetPLMNIdentity(UTRAN_CellId_Type p_CellId, PLMN_Identity p_PLMN) runs on UTRAN_PTC { var UTRAN_CellInfo_Type v_CellInfo := f_UTRAN_CellInfo_Get(p_CellId); - v_CellInfo.plmnId.mcc := p_PLMN.mcc; // @sic R5s140326 sic@ - if (px_FDD_OperationBand != 6) { // @sic R5s140326 sic@ - v_CellInfo.plmnId.mnc := p_PLMN.mnc; + v_CellInfo.plmnId.mnc := p_PLMN.mnc; // @sic R5s140326 R5s141164 sic@ + if (px_FDD_OperationBand == 6) { + v_CellInfo.plmnId.mcc := f_UTRAN_ConvertMCC_Nas2Asn(px_eJapanMCC_Band6); + } // @sic R5-123645 R5s141164 sic@ + else { + v_CellInfo.plmnId.mcc := p_PLMN.mcc; // @sic R5s140326 R5s141164 sic@ } f_UTRAN_CellInfo_Set(p_CellId, v_CellInfo); } @@ -1573,7 +1598,7 @@ module UTRAN_CellInfo { * @desc Function that returns the NodeB Id * @param p_CellId * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetNodeB_Id(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return integer { @@ -1585,7 +1610,7 @@ module UTRAN_CellInfo { * @desc Function that returns the C_RNTI * @param p_CellId * @return C_RNTI - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetC_RNTI(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return C_RNTI { @@ -1597,7 +1622,7 @@ module UTRAN_CellInfo { * @desc Function that returns the U_RNTI * @param p_CellId * @return U_RNTI - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetU_RNTI(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return U_RNTI { @@ -1609,7 +1634,7 @@ module UTRAN_CellInfo { * @desc Function that returns the PICH Power Offset * @param p_CellId * @return PICH_PowerOffset - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetPICH_PowerOffset(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return PICH_PowerOffset { @@ -1621,7 +1646,7 @@ module UTRAN_CellInfo { * @desc Function that returns the FDD pCCPCH power level * @param p_CellId * @return DL_TxPower - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetpCCPCH_Power_FDD(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return DL_TxPower { @@ -1633,7 +1658,7 @@ module UTRAN_CellInfo { * @desc Function that returns the TDD pCCPCH Power level * @param p_CellId * @return DL_TxPower - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetpCCPCH_Power_TDD(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return DL_TxPower { @@ -1645,7 +1670,7 @@ module UTRAN_CellInfo { * @desc Function that returns the sCCPCH1 Power Level * @param p_CellId * @return DL_TxPower - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetsCCPCH1_Power(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return DL_TxPower { @@ -1657,7 +1682,7 @@ module UTRAN_CellInfo { * @desc Function that returns the Tx Power Level * @param p_CellId * @return CellTxPowerLevel - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetCellTxPower(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return CellTxPowerLevel { @@ -1669,7 +1694,7 @@ module UTRAN_CellInfo { * @desc Function that returns the SFN Offset * @param p_CellId * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetSFNOffset(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return integer { @@ -1719,7 +1744,7 @@ module UTRAN_CellInfo { * @desc Function that returns the puncturing limit * @param p_CellId * @return PuncturingLimit - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetPuncturingLimit(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return PuncturingLimit { @@ -1731,7 +1756,7 @@ module UTRAN_CellInfo { * @desc Function that returns the SF of the PRACH * @param p_CellId * @return SF_PRACH - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetSF_PRACH(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return SF_PRACH { @@ -1743,7 +1768,7 @@ module UTRAN_CellInfo { * @desc get frequency info of UTRAN cell * @param p_CellId * @return FrequencyInfo - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetFrequencyInfo(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return FrequencyInfo { @@ -1755,7 +1780,7 @@ module UTRAN_CellInfo { * @desc get UTRAN cell being FDD or TDD * @param p_CellId * @return UTRAN_FDD_TDD_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetFDD_TDD(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_FDD_TDD_Type { @@ -1767,7 +1792,7 @@ module UTRAN_CellInfo { * @desc get UTRAN cell being 'fdd' or 'tdd' in RatType (to be used in UTRAN ASPs) * @param p_CellId * @return RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetRatType(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return RatType { @@ -1783,7 +1808,7 @@ module UTRAN_CellInfo { * @desc get the FDD UL scrambling code * @param p_CellId * @return UL_ScramblingCode - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetULScrmCode_FDD(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UL_ScramblingCode { @@ -1795,7 +1820,7 @@ module UTRAN_CellInfo { * @desc get FDD specific information of UTRAN cell * @param p_CellId * @return UTRAN_CellInfo_Type_FDD - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetFDDSpecific(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_CellInfo_Type_FDD { @@ -1807,7 +1832,7 @@ module UTRAN_CellInfo { * @desc get TDD specific information of UTRAN cell * @param p_CellId * @return UTRAN_CellInfo_Type_TDD - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetTDDSpecific(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_CellInfo_Type_TDD { @@ -1843,7 +1868,7 @@ module UTRAN_CellInfo { * @desc Function that returns the Att flag of the UTRAN Cell * @param p_CellId * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetAttFlag(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return integer { @@ -1855,7 +1880,7 @@ module UTRAN_CellInfo { * @desc Function that returns the T3212 value * @param p_CellId * @return octetstring - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT, UTRAN) */ function f_UTRAN_CellInfo_GetT3212(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return octetstring { @@ -1867,7 +1892,7 @@ module UTRAN_CellInfo { * @desc Function that returns the TDD Cell Parameters Id * @param p_CellId * @return CellParametersID - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetCellParametersID_TDD(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return CellParametersID { @@ -1879,7 +1904,7 @@ module UTRAN_CellInfo { * @desc Function that returns the FDD primary scrambling code * @param p_CellId * @return PrimaryScramblingCode - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetPriScrmCode_FDD(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return PrimaryScramblingCode { @@ -1891,7 +1916,7 @@ module UTRAN_CellInfo { * @desc Function that returns the RB config type * @param p_CellId * @return RB_ConfigType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_GetConfigType(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return RB_ConfigType { @@ -1923,7 +1948,7 @@ module UTRAN_CellInfo { * @desc Function that sets the RB config Type * @param p_CellId * @param p_CellConfig - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CellInfo_SetConfigType(UTRAN_CellId_Type p_CellId, RB_ConfigType p_CellConfig) runs on UTRAN_PTC { @@ -1938,17 +1963,27 @@ module UTRAN_CellInfo { /* * @desc get SecurityInfo from global structure * @return UTRAN_SecurityInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_Security_Get() runs on UTRAN_PTC return UTRAN_SecurityInfo_Type { return vc_UTRAN_Global.Security; } + /* + * @desc Get SecurityInfo ciphering algorithm from global structure + * @return CipheringAlgorithm_r7 + * @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) + */ + function f_UTRAN_Security_GetCipheringAlgorithm () runs on UTRAN_PTC return CipheringAlgorithm_r7 + { + return vc_UTRAN_Global.Security.cipheringAlgorithm; + } + /* * @desc set SecurityInfo in global structure * @param p_Auth_Params - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_Security_Set(UTRAN_SecurityInfo_Type p_Auth_Params) runs on UTRAN_PTC { @@ -1971,7 +2006,7 @@ module UTRAN_CellInfo { /* * @desc get MsgReceivedInDefault from global structure and reset global entry * @return RRC_DATA_IND - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_MsgInDefault_GetRAU() runs on UTRAN_PTC return RRC_DATA_IND { @@ -1983,7 +2018,7 @@ module UTRAN_CellInfo { /* * @desc Store RoutingAreaUpdateRequest in global structure * @param p_RoutingAreaUpdateRequest - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_MsgInDefault_SetRAU(RRC_DATA_IND p_RoutingAreaUpdateRequest) runs on UTRAN_PTC { @@ -1993,7 +2028,7 @@ module UTRAN_CellInfo { /* * @desc check if there is already a message stored in the global structure MsgReceivedInDefault * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_MsgInDefault_CheckRAU() runs on UTRAN_PTC return boolean { @@ -2025,7 +2060,7 @@ module UTRAN_CellInfo { * @desc get sys info for given cell * @param p_CellId * @return UTRAN_CellSysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SysInfo_Get(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_CellSysInfo_Type { @@ -2038,7 +2073,7 @@ module UTRAN_CellInfo { * @desc set sys info for given cell * @param p_CellId * @param p_SysInfo - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SysInfo_Set(UTRAN_CellId_Type p_CellId, UTRAN_CellSysInfo_Type p_SysInfo) runs on UTRAN_PTC @@ -2129,7 +2164,7 @@ module UTRAN_CellInfo { * @desc set MIB for given cell * @param p_CellId * @param p_MIB - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SysInfo_SetMIB(UTRAN_CellId_Type p_CellId, template (value) MasterInformationBlock p_MIB) runs on UTRAN_PTC @@ -2143,7 +2178,7 @@ module UTRAN_CellInfo { * @desc set SB1 for given cell * @param p_CellId * @param p_SB1 - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SysInfo_SetSB1(UTRAN_CellId_Type p_CellId, template (value) SysInfoTypeSB1 p_SB1) runs on UTRAN_PTC @@ -2167,6 +2202,20 @@ module UTRAN_CellInfo { f_UTRAN_CellInfo_Set(p_CellId, v_CellInfo); } + /* + * @desc Function that sets the SIB11 FACH measurement occasion + * @param p_CellId + * @param p_FachMeasurementOccasionInfo + * @status APPROVED (LTE_A) + */ + function f_UTRAN_SysInfo_SetSIB11_FACHMeasurementOccasionInfo(UTRAN_CellId_Type p_CellId, + template (value) FACH_MeasurementOccasionInfo p_FachMeasurementOccasionInfo) runs on UTRAN_PTC + { //@sic R5s150300 sic@ + var UTRAN_CellInfo_Type v_CellInfo := f_UTRAN_CellInfo_Get(p_CellId); + v_CellInfo.sysInfo.SIB11.fach_MeasurementOccasionInfo := valueof(p_FachMeasurementOccasionInfo); + f_UTRAN_CellInfo_Set(p_CellId, v_CellInfo); + } + /* * @desc get MIB for given UTRAN cell * @param p_CellId @@ -2315,7 +2364,7 @@ module UTRAN_CellInfo { /* * @desc get E-UTRA capabilities in the Mobile Info * @return octetstring - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_UTRAN_MobileInfo_EUTRACapability_Get() runs on UTRAN_PTC return octetstring { @@ -2325,18 +2374,38 @@ module UTRAN_CellInfo { /* * @desc Set E-UTRA capabilities in the mobile info * @param p_EUTRACapability - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_MobileInfo_EUTRACapability_Set(octetstring p_EUTRACapability) runs on UTRAN_PTC { vc_UTRAN_Global.MobileInfo.ue_EUTRA_Capability := p_EUTRACapability; } + /* + * @desc Set the IMS NSAPI value in the mobile info + * @param p_IMS_NSAPI + * @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) + */ + function f_UTRAN_MobileInfo_IMS_NSAPI_Set(B4_Type p_IMS_NSAPI) runs on UTRAN_PTC + { + vc_UTRAN_Global.MobileInfo.nSAPI_IMS_Value := p_IMS_NSAPI; + } + + /* + * @desc Get the IMS NSAPI value in the mobile info + * @return B4_Type + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_UTRAN_MobileInfo_IMS_NSAPI_Get() runs on UTRAN_PTC return B4_Type + { + return vc_UTRAN_Global.MobileInfo.nSAPI_IMS_Value; + } + //---- ConfigurationInfo Set/Get functions ---------------------------------------------- /* * @desc Set PDCP Configuration in the Configuration Info * @param p_Configured - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_PDCP_Configured_Set(boolean p_Configured) runs on UTRAN_PTC { @@ -2356,7 +2425,7 @@ module UTRAN_CellInfo { /* * @desc Get PDCP Configuration in the Configuration Info * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_PDCP_Configured_Get() runs on UTRAN_PTC return boolean { @@ -2366,7 +2435,7 @@ module UTRAN_CellInfo { /* * @desc Get PDCP Configuration in the Configuration Info * @return UTRAN_FddTddMessageClass_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ConfigurationInfo_TestCaseRelease_Get() runs on UTRAN_PTC return UTRAN_FddTddMessageClass_Type { @@ -2374,9 +2443,9 @@ module UTRAN_CellInfo { } /* - * @desc Get the UE Release in the Mobile Info - * @return AccessStratumReleaseIndicator - * @status + * @desc Get the UE Release in the Mobile Info + * @return AccessStratumReleaseIndicator + * @status APPROVED (IMS, UTRAN) */ function f_UTRAN_MobileInfo_UE_Release_Get() runs on UTRAN_PTC return AccessStratumReleaseIndicator { @@ -2386,7 +2455,7 @@ module UTRAN_CellInfo { /* * @desc Set UE Release in the mobile info * @param p_UE_Release - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_MobileInfo_UE_Release_Set(AccessStratumReleaseIndicator p_UE_Release) runs on UTRAN_PTC { @@ -2398,7 +2467,7 @@ module UTRAN_CellInfo { /* * @desc To retrieve the default test case FDD/TDD release * @return UTRAN_FddTddMessageClass_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_GetDefaultTestCaseRelease() return UTRAN_FddTddMessageClass_Type { @@ -2407,7 +2476,10 @@ module UTRAN_CellInfo { if (px_UTRAN_ModeUnderTest == UTRAN_FDD) { //FDD select (f_GetTestcaseAttrib_UtraFDD_Release(testcasename())) { - case ("FDDr11") { + case ("FDDr12") { + v_UTRAN_FddTddMessageClass := FDDr12; /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + } + case ("FDDr11") { v_UTRAN_FddTddMessageClass := FDDr11; } case ("FDDr10") { @@ -2426,6 +2498,9 @@ module UTRAN_CellInfo { } } else { //TDD select (f_GetTestcaseAttrib_UtraTDD_Release(testcasename())) { + case ("TDDr12") { + v_UTRAN_FddTddMessageClass := TDDr12; /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + } case ("TDDr11") { v_UTRAN_FddTddMessageClass := TDDr11; } @@ -2447,7 +2522,7 @@ module UTRAN_CellInfo { /* * @desc To initialise the UTRAN global variables * @param p_ConfiguredPTCs - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_Init(IRAT_ConfiguredPTCs_Type p_ConfiguredPTCs := EUTRA_UTRAN) runs on UTRAN_PTC { /* @sic R5-113805, R5-113696, R5-113734 sic@ */ @@ -2483,7 +2558,8 @@ module UTRAN_CellInfo { } } } - vc_UTRAN_Global.Security := f_UTRAN_SecurityInfo_Init(); + //The first security initialisation is done with px_UTRAN_CipheringAlgorithm @sic R5-150124 sic@ + vc_UTRAN_Global.Security := f_UTRAN_SecurityInfo_Init(px_UTRAN_CipheringAlgorithm); vc_UTRAN_Global.MsgInDefault := f_UTRAN_MsgInDefault_Init(); diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonAspDefs.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonAspDefs.ttcn new file mode 100644 index 0000000..eb7cc44 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonAspDefs.ttcn @@ -0,0 +1,34 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2014-11-29 23:00:30 +0100 (Sat, 29 Nov 2014) $ +// $Rev: 12639 $ +/******************************************************************************/ + +module UTRAN_CommonAspDefs { + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + + // embedded ASP types: + type TrCHInfo.ulconnectedTrCHList UlConnectedTrCHList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo.dlconnectedTrCHList DlConnectedTrCHList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo_TDD.ulconnectedTrCHList UlConnectedTrCHList_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo_TDD.dlconnectedTrCHList DlConnectedTrCHList_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo.ulconnectedTrCHList[-] UlConnectedTrCH_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo.dlconnectedTrCHList[-] DlConnectedTrCH_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo_TDD.ulconnectedTrCHList[-] UlConnectedTrCH_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type TrCHInfo_TDD.dlconnectedTrCHList[-] DlConnectedTrCH_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyTrchConfigReq.ulconnectedTrCHList CphyUlConnectedTrCHList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyUlConnectedTrCHList_Type[0] CphyUlConnectedTrCH_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyTrchConfigReq.dlconnectedTrCHList CphyDlConnectedTrCHList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyDlConnectedTrCHList_Type[0] CphyDlConnectedTrCH_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyTrchConfigReq_TDD.ulconnectedTrCHList CphyUlConnectedTrCHList_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyUlConnectedTrCHList_TDD_Type[0] CphyUlConnectedTrCH_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyTrchConfigReq_TDD.dlconnectedTrCHList CphyDlConnectedTrCHList_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyDlConnectedTrCHList_TDD_Type[0] CphyDlConnectedTrCH_TDD_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type CphyRlSetupReq_FDD.physicalChannelInfo RL_Setup_FDD_PhysicalChannelInfo_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + type CphyRlSetupReq_TDD.physicalChannelInfo RL_Setup_TDD_PhysicalChannelInfo_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonDefs.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonDefs.ttcn index 56491b1..7574651 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-04-27 04:04:14 +0200 (Mon, 27 Apr 2015) $ +// $Rev: 13508 $ /******************************************************************************/ module UTRAN_CommonDefs { @@ -28,12 +28,21 @@ module UTRAN_CommonDefs { type TFCS_ReconfAdd.ctfcSize.ctfc4Bit TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_List_Type; /* auxiliary type definition; @status APPROVED */ type TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_Type; /* auxiliary type definition; @status APPROVED */ + type TFCS_ReconfAdd_r12.ctfcSize.ctfc4Bit TFCS_ReconfAdd_r12_CtfcSize_Ctfc4Bit_List_Type; /* auxiliary type definition; */ + type TFCS_ReconfAdd_r12_CtfcSize_Ctfc4Bit_List_Type[0] TFCS_ReconfAdd_r12_CtfcSize_Ctfc4Bit_Type; /* auxiliary type definition; */ + type TFCS_ReconfAdd.ctfcSize.ctfc6Bit TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_List_Type; /* auxiliary type definition; @status APPROVED */ type TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type; /* auxiliary type definition; @status APPROVED */ + type TFCS_ReconfAdd_r12.ctfcSize.ctfc6Bit TFCS_ReconfAdd_r12_CtfcSize_Ctfc6Bit_List_Type; /* auxiliary type definition; */ + type TFCS_ReconfAdd_r12_CtfcSize_Ctfc6Bit_List_Type[0] TFCS_ReconfAdd_r12_CtfcSize_Ctfc6Bit_Type; /* auxiliary type definition; */ + type TFCS_ReconfAdd.ctfcSize.ctfc8Bit TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_List_Type; /* auxiliary type definition; @status (APPROVED) */ type TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_List_Type[0] TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_Type; /* auxiliary type definition; @status (APPROVED) */ + type TFCS_ReconfAdd_r12.ctfcSize.ctfc8Bit TFCS_ReconfAdd_r12_CtfcSize_Ctfc8Bit_List_Type; /* auxiliary type definition; */ + type TFCS_ReconfAdd_r12_CtfcSize_Ctfc8Bit_List_Type[0] TFCS_ReconfAdd_r12_CtfcSize_Ctfc8Bit_Type; /* auxiliary type definition; */ + type PhysicalChannelCapability_edch_r6.fdd_edch.supported.edch_PhysicalLayerCategory Edch_PhysicalLayerCat_Type; /* @status APPROVED */ type UTRA_PriorityInfoList.utra_ServingCell.priority UtraServingCellPriorityValue_Type; /* @status APPROVED */ @@ -59,25 +68,33 @@ module UTRAN_CommonDefs { type TGP_Sequence_r8.tgps_Status TGPS_Status_r8_Type; type SysInfoType19.v920NonCriticalExtensions SIB19_v920NonCriticalExtensions_Type; + type SysInfoType19.v920NonCriticalExtensions.va80NonCriticalExtensions SIB19_va80NonCriticalExtensions_Type; + type SysInfoType19.v920NonCriticalExtensions.va80NonCriticalExtensions.vb30NonCriticalExtensions SIB19_vb30NonCriticalExtensions_Type; type DL_DPCH_InfoCommon_r6.cfnHandling DL_DPCH_CfnHandling_r6_Type; - + type DL_DPCH_InfoCommon_r12.cfnHandling DL_DPCH_CfnHandling_r12_Type; + type HARQ_Info_r7.numberOfProcesses HarqNrOfProcesses_Type; type HARQ_Info_r11.numberOfProcesses HarqNrOfProcesses_r11_Type; - type enumerated UTRAN_FddTddMessageClass_Type {FDDr99, FDDr5, FDDr6, FDDr7, FDDr8, FDDr9, FDDr10, FDDr11, TDDr4, TDDr5, TDDr7, TDDr9, TDDr10, TDDr11}; // @sic R5s130195 Utran Release R5-140314: added FDDr11/TDDr11 sic@ + /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + type enumerated UTRAN_FddTddMessageClass_Type {FDDr99, FDDr5, FDDr6, FDDr7, FDDr8, FDDr9, FDDr10, FDDr11, FDDr12, TDDr4, TDDr5, TDDr7, TDDr9, TDDr10, TDDr11, TDDr12}; // @sic R5s130195 Utran Release R5-140314: added FDDr11/TDDr11 sic@ type LoggedANRConfigurationInfo.loggingDuration LoggedANRConfigurationInfo_LoggingDuration_Type; type LoggedANRConfigurationInfo.interRATANRforEUTRAIndicator LoggedANRConfigurationInfo_InterRATANRforEUTRAIndicator_Type; type LoggedANRConfigurationInfo.interRATANRforGSMIndicator LoggedANRConfigurationInfo_InterRATANRforGSMIndicator_Type; type DL_HSPDSCH_Information_r9.modeSpecificInfo.fdd.dl_64QAM_Configured DL_64QAM_Configured_Type; type DL_HSPDSCH_Information_r11.modeSpecificInfo.fdd.dl_64QAM_Configured DL_64QAM_Configured_r11_Type; + type DL_HSPDSCH_Information_r12.modeSpecificInfo.fdd.dl_64QAM_Configured DL_64QAM_Configured_r12_Type; type DL_SecondaryCellInfoFDD_r10.configurationInfo.newConfiguration.dl_64QAM_Configured DL_SecondaryCell64QAM_Configured_Type; + type DL_SecondaryCellInfoFDD_r11.configurationInfo.newConfiguration.dl_64QAM_Configured DL_SecondaryCell64QAM_Configured_r11_Type; type DL_SecondaryCellInfoFDD_r10.configurationInfo.newConfiguration.hS_SCCHChannelisationCodeInfo DL_SecondaryHsScchCodeInfo_Type; + type DL_SecondaryCellInfoFDD_r11.configurationInfo.newConfiguration.hS_SCCHChannelisationCodeInfo DL_SecondaryHsScchCodeInfo_r11_Type; type HS_SCCH_Info_r9.modeSpecificInfo.fdd.hS_SCCHChannelisationCodeInfo HsScchInfo_ChCodeInfo_Type; type SIB19_v920NonCriticalExtensions_Type.va80NonCriticalExtensions.vb30NonCriticalExtensions.sysInfoType19_vb30ext SIB19_sysInfoType19_vb30ext; type DL_InformationPerRL_r8.dl_dpchInfo DL_InformationPerRL_DpchInfo_r8; + type DL_InformationPerRL_r11.dl_dpchInfo DL_InformationPerRL_DpchInfo_r11; type EUTRA_MeasuredCells.rSRP RSRP_Type; type EUTRA_MeasuredCells.rSRQ RSRQ_Type; diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonFunctions.ttcn new file mode 100644 index 0000000..05867f6 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_CommonFunctions.ttcn @@ -0,0 +1,1069 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 12:41:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14486 $ +/******************************************************************************/ + +module UTRAN_CommonFunctions { + + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + import from UTRAN_TypeDefs all; + import from UTRAN_CellInfo all; + import from UTRAN_Component all; + import from UTRAN_TTCN_ASP_Templates all; + import from UTRAN_NAS_PDU_Templates all; + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_Templates all; + import from UTRAN_ASN1_ASP_Templates all; + import from UTRAN_ConfigurationSteps all; + import from UTRANGERAN_CommonFunctions all; + import from UTRAN_Parameters all; + import from NAS_24008TypeDefs all; + import from NAS_24008Templates_IRAT all; + import from NAS_CommonTypeDefs all; + import from NAS_CommonTemplates all; + import from NAS_AuthenticationCommon all; + import from Parameters all; + import from CommonDefs all; + import from CommonIratDefs all; + import from UpperTesterFunctions all; + import from TestcaseProperties all; + + //---------------------------------------------------------------------- + // Type definitions + //---------------------------------------------------------------------- + + type record UTRAN_CFN_Info_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + integer frameNumber, + ActivationTime actTime, + TGCFN tGCFN + }; + + + //------------------------------------------------------------------------------------------ + // MultiTI + //------------------------------------------------------------------------------------------ + type record MultiTI_Type { /* @status APPROVED (SSNITZ) */ + TI A_B optional, + TI A_C optional, + TI A_D optional, + TI A_E optional + }; + + template (value) MultiTI_Type cs_MultiTI(template (omit) TI p_TI_A_B := omit, + template (omit) TI p_TI_A_C := omit, + template (omit) TI p_TI_A_D := omit, + template (omit) TI p_TI_A_E := omit) := + { /* @status APPROVED (SSNITZ) */ + A_B := p_TI_A_B, + A_C := p_TI_A_C, + A_D := p_TI_A_D, + A_E := p_TI_A_E + }; + + /* + * @desc wrapper for valueof + * @param p_TI_A_B (default value: omit) + * @param p_TI_A_C (default value: omit) + * @param p_TI_A_D (default value: omit) + * @param p_TI_A_E (default value: omit) + * @return MultiTI_Type + * @status APPROVED (SSNITZ) + */ + function fl_MultiTI_Init(template (omit) TI p_TI_A_B := omit, + template (omit) TI p_TI_A_C := omit, + template (omit) TI p_TI_A_D := omit, + template (omit) TI p_TI_A_E := omit) return MultiTI_Type + { + return valueof(cs_MultiTI(p_TI_A_B, p_TI_A_C, p_TI_A_D, p_TI_A_E)); + } + + template (present) RRCDataIndType cr_U_AnyRAU := + { /* used in a_UTRAN_ReceiveRauRequest */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ + routingAreaUpdateRequest := ? + }; + + //------------------------------------------------------------------------------------------ + // CALCULATE ACTIVATION TIME + //------------------------------------------------------------------------------------------ + /* + * @desc To Calculate an activation time + * @param p_FrameNumber + * @return ActivationTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function fl_UTRAN_CalculateActTime(integer p_FrameNumber) return ActivationTime + { + return (256 + p_FrameNumber - (p_FrameNumber mod 8 + 8)) mod 256; + } + + /* + * @desc Calculates the TGCFN + * @param p_FrameNumber + * @param p_TtiValue .. is equal to tti/10 + * @return TGCFN + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_CalculateTGCFN(integer p_FrameNumber, + integer p_TtiValue) return TGCFN + { + return (p_FrameNumber+(256-p_TtiValue)) mod 256; + } + + /* + * @desc To calculate the activation time with the tti value corresponding to the actual SS configuration. + * The tti value passed as parameter to ts_CPHY_ActTime is equal to tti/10 (e.g. tti 40 -> 4) + * Based on 34.108 on SRB tti. + * @param p_CellId + * @return UTRAN_CFN_Info_Type + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_CalculateActTime(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_CFN_Info_Type + { + var RB_ConfigType v_Rb_ConfigType := f_UTRAN_CellInfo_GetConfigType(p_CellId); + var UTRAN_CFN_Info_Type v_CFN_Info; + var PhysicalChannelIdentity v_PhyChId; + var integer v_TtiValue; + + select (v_Rb_ConfigType) { + case (cell_DCH_Speech, + cell_DCH_64kPS_RAB_SRB, + cell_DCH_64kPS_AM_RAB, //@sic R5s140400 sic@ + cell_DCH_StandAloneSRB, + cell_DCH_HS_DSCH, + cell_DCH_E_HS, + cell_DCH_dlSRB_E_HS, + cell_Four_DTCH_PS_CS, //@sic R5s140096 sic@ + cell_DCH_2AM_PS //@sic R5s140400 sic@ + ) { + //An RRC connection is established. Use DCCH on DL DPCH1 + v_PhyChId := tsc_DL_DPCH1; + v_TtiValue := 4; + } + case (cell_DCH_StandAloneSRB_NoConn) { + //No RRC connection is established. Use CCCH configuration + v_PhyChId := tsc_S_CCPCH1; + v_TtiValue := 1; + } + case (cell_E_HS) { + v_PhyChId := tsc_F_DPCH; + v_TtiValue := 4; + } + case (cell_FACH, + cell_FACH_NoConn) { + //Cell-FACH configured - Activation time does not apply and activation time not needed for Cell-FACH + //Create a "dummy" variable to be used when calling the RB SetUp Cmpl function + //@sic R5s110210 sic@ + v_CFN_Info.frameNumber := 0; + v_CFN_Info.actTime := 0; + v_CFN_Info.tGCFN := 0; + return v_CFN_Info; + } + case else { + FatalError(__FILE__, __LINE__, "Configuration not supported"); + } + } + v_CFN_Info.frameNumber := f_UTRAN_CPHY_GetFrameNumber(p_CellId, v_PhyChId); + v_CFN_Info.actTime := fl_UTRAN_CalculateActTime(v_CFN_Info.frameNumber); + v_CFN_Info.tGCFN := f_UTRAN_CalculateTGCFN(v_CFN_Info.frameNumber, v_TtiValue); + return v_CFN_Info; + } + + //------------------------------------------------------------------------------------------ + /* + * @desc Function which sends the cell info for the UTRAN cell to the EUTRA PTC + * @param p_CellId + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) + */ + function f_UTRAN_Send_IR_SysInfoToEUTRA(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + var template (value) CoOrd_UTRANSysInfo_Type v_Cell; + var B1_Type v_Diversity := '0'B; + var B1_Type v_Tstd := '0'B; + var FrequencyInfo v_FreqInfo := f_UTRAN_CellInfo_GetFrequencyInfo(p_CellId); + var UTRAN_CellInfo_Type_FDD v_FDDInfo; + var UTRAN_CellInfo_Type_TDD v_TDDInfo; + + if (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId) == UTRAN_FDD) { + v_FDDInfo := f_UTRAN_CellInfo_GetFDDSpecific(p_CellId); + v_Cell := {FDD := cs_CoOrdUTRANSysInfo_FDD(v_FreqInfo.modeSpecificInfo.fdd.uarfcn_DL, + px_FDD_OperationBand, // @sic R5s130268: adding p_Band sic@ + v_FDDInfo.priScrmCode, + v_FDDInfo.uL_ScramblingCode, + f_U_Asn2Nas_PlmnId(f_UTRAN_CellInfo_GetPLMNIdentity(p_CellId)), + f_UTRAN_GetCellIndentity(p_CellId), + oct2bit(f_UTRAN_CellInfo_GetLAC(p_CellId)), + oct2bit(f_UTRAN_CellInfo_GetRAC(p_CellId)))}; + } + else { // TDD + v_TDDInfo := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); + if (v_TDDInfo.transmissionDiversityApplied == applied) { + v_Diversity := '1'B; + } + if (v_TDDInfo.dwPCHInfo.tstd_Indicator == applied) { + v_Tstd := '1'B; + } + v_Cell := { + TDD := cs_CoOrdUTRANSysInfo_TDD(v_FreqInfo.modeSpecificInfo.tdd.uarfcn_Nt, + v_TDDInfo.cellParametersID, + v_Diversity, + v_Tstd, + f_U_Asn2Nas_PlmnId(f_UTRAN_CellInfo_GetPLMNIdentity(p_CellId)), + f_UTRAN_GetCellIndentity(p_CellId), + oct2bit(f_UTRAN_CellInfo_GetLAC(p_CellId)), + oct2bit(f_UTRAN_CellInfo_GetRAC(p_CellId))) + }; + } + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_SysInfo(cs_CoOrdUTRAN_SysInfoSingleCell(v_Cell))); + } + + + //=========================================================================== + /* + * @desc Function to be used at handover from UTRAN to EUTRA in rSRVCC for derivation of Defined in 33.102 Annex B6 + * The structure for EUTRA_SecurityParams_Type passed as parameter shall have at least valid parameters for: + * Derivation of CK'PS || IK'PS from CKCS || IKCS + * @param p_SecurityInfo + * @return B256_Type + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_Authentication_B6(UTRAN_SecurityInfo_Type p_SecurityInfo) return B256_Type + { + const octetstring const_B6_FC :='33'O; + var octetstring v_S; + var bitstring v_Key; + + // Generation of String + v_S := const_B6_FC; + //FC = 0x33 + v_S := ( v_S & tsc_NonceMSC ); + //P0 = NONCEmsc + v_S := ( v_S & '0010'O ); + //L0 = length of NonceMSC (16 bits) + + v_Key := p_SecurityInfo.authKeys.AuthCS.CKey & p_SecurityInfo.authKeys.AuthCS.IKey; + //key = CKcs || IKcs + + return fx_KeyDerivationFunction ( tsc_KDF_HMAC_SHA_256, v_Key, v_S ); + // The result is 256 bit CS'ps || IK'ps each of 128 bits + } + + + /* + * @desc Function which sends the Authentication parameters for the UTRAN cell to another PTC + * @param p_Port + * @param p_GUTI + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_SendAuthCoOrdParameters(IRAT_CO_ORD_PORT p_Port, + template (omit) CoOrd_GUTIParam_Type p_GUTI := omit) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var Common_AuthenticationParams_Type v_AuthCS; + var B256_Type v_CkIkRSRVCC; + //@sic R5s150704 sic@ + if (v_SecurityInfo.cs_cipheringStarted) { + v_CkIkRSRVCC := f_UTRAN_Authentication_B6(v_SecurityInfo); + v_AuthCS:= v_SecurityInfo.authKeys.AuthPS; + v_AuthCS.CK := substr(v_CkIkRSRVCC, 0, 128); + v_AuthCS.IK := substr(v_CkIkRSRVCC, 128, 128); + v_AuthCS.KeySeq := v_SecurityInfo.authKeys.AuthCS.CKeySeq; + + p_Port.send(cms_IRAT_AuthInfo(v_SecurityInfo.authKeys.AuthPS , v_AuthCS, p_GUTI, v_SecurityInfo.authKeys.CSinOtherRAT)); + + } else { + p_Port.send(cms_IRAT_AuthInfo(v_SecurityInfo.authKeys.AuthPS, v_SecurityInfo.authKeys.AuthPS, p_GUTI, v_SecurityInfo.authKeys.CSinOtherRAT)); + } + } + + /* + * @desc To download a new START value In the security Record + * @param p_Domain + * @param p_StartValue + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_SS_SecurityDownloadStart(CN_DomainIdentity p_Domain, + START_Value p_StartValue) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + + if (p_Domain == cs_domain) { + v_SecurityInfo.start_CS := p_StartValue; + } else if (p_Domain == ps_domain) { + v_SecurityInfo.start_PS := p_StartValue; + } + f_UTRAN_Security_Set(v_SecurityInfo); + } + + /* + * @desc To download all security keys to CMAC (for DCH cell configurations only) and U_CRLC. + * @param p_CellId + * @param p_Domain + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_SS_DownloadSecurityKey(UTRAN_CellId_Type p_CellId, + CN_DomainIdentity p_Domain) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); + var B20_Type v_HFN := v_SecurityInfo.authKeys.HFN; + var KeyCiphering v_KC; + var IntegrityKey v_IK; + + if (p_Domain == cs_domain) { + v_KC := v_SecurityInfo.authKeys.AuthCS.CKey; + v_IK := v_SecurityInfo.authKeys.AuthCS.IKey; + v_HFN := v_SecurityInfo.start_CS; // @sic R5s110788 sic@ + } + else { + v_KC := v_SecurityInfo.authKeys.AuthPS.CK; + v_IK := v_SecurityInfo.authKeys.AuthPS.IK; + v_HFN := v_SecurityInfo.start_PS; // @sic R5s110788 sic@ + } + + select (v_CellConfig) { + case (cell_FACH_NoConn, cell_FACH, cell_FACH_NoDedicated, cell_FACH_UL_SRB, cell_FACH_UL_SRB_NoConn, cell_FACH_UL_NoDedicated ) { + // Cell FACH @sic R5-150125 feFACH sic@ + f_UTRAN_CRLC_SecurityMode_Config(p_Domain, v_HFN, v_KC, v_IK); + } + case (cell_DCH_StandAloneSRB_NoConn, + cell_DCH_StandAloneSRB, + cell_DCH_64kPS_RAB_SRB, + cell_DCH_64kPS_AM_RAB, //@sic R5s140400 sic@ + cell_DCH_HS_DSCH, // @sic R5s110683 sic@ + cell_DCH_E_HS, + cell_E_HS, + cell_DCH_dlSRB_E_HS) { + // Cell DCH; no TM RAB + f_UTRAN_CRLC_SecurityMode_Config(p_Domain, v_HFN, v_KC, v_IK); + } + case (cell_DCH_Speech, cell_Four_DTCH_PS_CS) { //@sic R5s140096 sic@ + // cell DCH with TM RAB + f_UTRAN_CRLC_SecurityMode_Config(p_Domain, v_HFN, v_KC, v_IK); + f_UTRAN_CMAC_SecurityMode_Config(p_Domain, v_HFN, v_KC); + } + } + } + + /* + * @desc Send SecurityModeCommand and receive SecurityModeComplete and configure SS according to UE configuration + * @param p_CellId + * @param p_CellConfig + * @param p_SecurityInfo + * @param p_RB_ActivationTimeInfoList + * @param p_CN_Domain + * @param p_CipherActTime + * @param p_IntegrityOnly (default value: false) - only set to true after HO when only integrity needs to be configured + * @return UTRAN_SecurityInfo_Type + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_StartSecurityUE(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_CellConfig, + UTRAN_SecurityInfo_Type p_SecurityInfo, + template (value) RB_ActivationTimeInfoList p_RB_ActivationTimeInfoList, + CN_DomainIdentity p_CN_Domain, + ActivationTime p_CipherActTime, + boolean p_IntegrityOnly := false) runs on UTRAN_PTC return UTRAN_SecurityInfo_Type + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := p_SecurityInfo; + var IntegrityProtActivationInfo v_IntegrityActInfo; + var bitstring v_UE_SystemSpecificCap := int2bit(f_InitSystemSpecificCap(),7); + var U_RLC_AM_IND v_RLC_AM_DATA_IND; + var template (omit) ActivationTime v_CipherActTime; + var template (omit) InterRAT_UE_SecurityCapList v_UE_SysSpecCap; + var template (omit) CipheringModeInfo_r7 v_CipheringModeInfo; + + // ********** Send SecurityModeCommand: + if (pc_GERAN) { + v_UE_SysSpecCap := cs_UE_SysSpecCap(v_UE_SystemSpecificCap); + } + else { // NOT pc_GERAN + v_UE_SysSpecCap := omit; + } + + if (((p_CellConfig == cell_DCH_Speech)) and (v_SecurityInfo.recentSecureDomain == cs_domain)) { + // Ciphering on TM RAB present, hence include Ciphering activation time + // Ciphering for signalling RBs 1 to 4 + v_CipherActTime := p_CipherActTime; + } else { + // Ciphering for signalling RBs 1 to 4 + v_CipherActTime := omit; + } + + if (p_IntegrityOnly == true) { // @sic R5s110382 sic@ + v_CipheringModeInfo := omit; + } + else { + v_CipheringModeInfo := cs_CipheringModeInfo_r7(v_SecurityInfo.dL_CipherMode, + p_RB_ActivationTimeInfoList, + v_CipherActTime); + } + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_108_RRC_SecModeCmd(v_SecurityInfo.dl_IntegrityCheckInfo, + cs_RRC_SecModeCmd(tsc_RRC_TI, + v_SecurityInfo.cipheringAlgorithmCapability, + v_SecurityInfo.integrProtAlgCap, + v_CipheringModeInfo, + v_SecurityInfo.dL_Integrity, + p_CN_Domain, + v_UE_SysSpecCap)))); + // ********** Receive SecurityModeComplete: + alt { + [p_IntegrityOnly] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, // @sic R5s110382 sic@ + tsc_RB2, + cr_108_RRC_SecModeCmpl(tsc_RRC_TI, omit))) -> value v_RLC_AM_DATA_IND { } + [not p_IntegrityOnly] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, + tsc_RB2, + cr_108_RRC_SecModeCmpl(tsc_RRC_TI, ?))) -> value v_RLC_AM_DATA_IND { } + [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, + tsc_RB2, + cr_108_SecModeFail(tsc_RRC_TI, ?))) { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Security Failed"); + } + } + + if (not p_IntegrityOnly) { // UL ciphering information is present + v_SecurityInfo.uL_CipherMode := v_RLC_AM_DATA_IND.data.aM_message.uL_DCCH_Message.message_.securityModeComplete.rb_UL_CiphActivationTimeInfo; + // @sic R5s130558 sic@ + f_UTRAN_ActivateCiphering_RLC_UL(f_UTRAN_CellInfo_GetFDD_TDD(p_CellId), v_SecurityInfo.recentSecureDomain, v_SecurityInfo.uL_CipherMode); + } + // integrity: + v_SecurityInfo.uL_Integrity := v_RLC_AM_DATA_IND.data.aM_message.uL_DCCH_Message.message_.securityModeComplete.ul_IntegProtActivationInfo; + v_IntegrityActInfo := v_SecurityInfo.uL_Integrity; + + f_UTRAN_CRLC_IntegrityActivate(cas_CRLC_UL_IntegrityActivateReq(utran_CellDedicated, + v_SecurityInfo.recentSecureDomain, + cs_RestRB_IntegrityProtActivationInfoList(v_IntegrityActInfo.rrc_MessageSequenceNumberList[0], + v_IntegrityActInfo.rrc_MessageSequenceNumberList[1], + v_IntegrityActInfo.rrc_MessageSequenceNumberList[3], + v_IntegrityActInfo.rrc_MessageSequenceNumberList[4]))); + return v_SecurityInfo; + } + + /* + * @desc If UE supports GSM, this step initialises tcv_UE_SystemSpecificCap based on PICS + * @return integer + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_InitSystemSpecificCap() return integer + { + var integer v_UE_SystemSpecificCap := 0; + + if (pc_GERAN) { + v_UE_SystemSpecificCap := v_UE_SystemSpecificCap + 1; //A5_1 always supported + v_UE_SystemSpecificCap := v_UE_SystemSpecificCap + 4; // A5_3 always Supported + if (pc_A5_4_CS) { // @sic R5s150121 sic@ + v_UE_SystemSpecificCap := v_UE_SystemSpecificCap + 8; + } + } + return v_UE_SystemSpecificCap; + } + + /* + * @desc To check the release indicator reported by UE in RRC CONNECTION REQUESt against the test casse release. + * @param p_ReleaseIndicator_UE + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_CheckReleaseIndicator(AccessStratumReleaseIndicator p_ReleaseIndicator_UE) runs on UTRAN_PTC + { // @sic R5-123750 sic@ + + select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ + case (FDDr7, TDDr7) { + if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6))) { + FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); + } + } + case (FDDr8) { + if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7))) { + FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); + } + } + case (FDDr9, TDDr9) { + if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8))) { + FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); + } + } + case (FDDr10, TDDr10) { // @sic R5s130195 Utran Release sic@ + if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8, rel_9))) { + FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); + } + } + case (FDDr11, TDDr11) { + if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8, rel_9, rel_10))) { + FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); + } + } + case (FDDr12, TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8, rel_9, rel_10, rel_11))) { + FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); + } + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + } + + /* + * @desc To assign the Start values in the security info + * @param p_STARTList + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_SetSecurityInfo_StartValue(STARTList p_STARTList) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var integer v_DomainCnt; + var integer I; + + v_DomainCnt := lengthof(p_STARTList); + if ((v_DomainCnt > 0) and (v_DomainCnt <= 2)) { + for (I:=0; I value v_RRC_DataInd + { + v_AuthAndCipherResp := v_RRC_DataInd.msg.authenticationAndCipheringResponse; + v_AuthRES_High := v_AuthAndCipherResp.authRsp.rES; + v_AuthRES := v_AuthRES_High & v_AuthAndCipherResp.authRspExt.rES; + // Verify that the received Authentication Response parameters match expected response: + if (v_AuthRES != substr(v_Auth_Params.XRES, 0, lengthof(v_AuthRES))) { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication Failed"); + } + //Initialis authKeys.AuthPS.XRESLength @sic R5s141127 sic@ + v_SecurityInfo.authKeys.AuthPS.XRESLength := lengthof(v_AuthRES) / 8 + } + // AUTHENTICATION AND CIPHERING RESPONSE including only one Authentication Response paramters (RES): + [] U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_AuthAndCiphRsp(cr_AuthRspAny, + omit))) + -> value v_RRC_DataInd + { + v_AuthAndCipherResp := v_RRC_DataInd.msg.authenticationAndCipheringResponse; + v_AuthRES_High := v_AuthAndCipherResp.authRsp.rES; + // Verify that the received Authentication Response parameters match expected response: + if (v_AuthRES_High != substr(v_Auth_Params.XRES, 0, lengthof(v_AuthRES_High))) { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication Failed"); + } + //Initialis authKeys.AuthPS.XRESLength @sic R5s141127 sic@ + v_SecurityInfo.authKeys.AuthPS.XRESLength := lengthof(v_AuthRES_High) / 8; + } + // AUTHENTICATION AND CIPHERING Failure, then stop execution by assigning INCONCLUSIVE verdict as this might be a USIM issue. + [] U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_AuthAndCiphFailureAny)) { + FatalError(__FILE__, __LINE__, "received AUTHENTICATION_AND_CIPHERING_FAILURE"); + } + } + f_UTRAN_Security_Set(v_SecurityInfo); + } + + /* @desc Function used to perform MM Authentication in UTRAN + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_MM_Authentication() runs on UTRAN_PTC + { + var RRC_DATA_IND v_RRC_DataInd; + var AuthRsp v_AuthRsp; + var AuthRspExt v_AuthRspExt; + var bitstring v_AuthRES; + var B32_Type v_AuthRES_High; + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var Common_AuthenticationParams_Type v_CommonAuthParams := f_AuthenticationInit(v_SecurityInfo.authKeys.AuthPS); + + // @sic R5s110318 sic@ + v_SecurityInfo.authKeys.AuthCS.CKey := v_CommonAuthParams.CK; + v_SecurityInfo.authKeys.AuthCS.IKey := v_CommonAuthParams.IK; + v_SecurityInfo.authKeys.AuthCS.CKeySeq := v_CommonAuthParams.KeySeq; + f_UTRAN_Security_Set(v_SecurityInfo); + + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, + tsc_RB3, + cs_U_AuthReq(v_SecurityInfo.authKeys.AuthCS.CKeySeq, + v_CommonAuthParams.RandValue, + cs_GSM_AUTN(v_CommonAuthParams.AUTN)))); + + alt { + //Receive Authentication Response with extension + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_AuthRspAnyExt)) -> value v_RRC_DataInd + { + v_AuthRsp := v_RRC_DataInd.msg.authenticationResponse.authRsp; + v_AuthRspExt := v_RRC_DataInd.msg.authenticationResponse.authRspExt; + + //First 32 bits of XRES correspond to AuthRsp and remaining bits correspond to AuthRspExt. + //So instead of checking the AuthRsp and AuthRspExt separately,the 2 strings are concatenated and compared against XRES. + v_AuthRES_High := v_AuthRsp.rES; + v_AuthRES := v_AuthRES_High & v_AuthRspExt.rES; + + //Bitwaise XOR of XRES and v_AuthRES should result in all zeroes which implies that the 2 bitstrings should match exactly. + if (v_AuthRES != substr(v_CommonAuthParams.XRES, 0, lengthof(v_AuthRES))) { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Received incorrect authentication parameters"); + } + } + + //Receive Authentication Response without extension + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_AuthRspAnyNoExt)) -> value v_RRC_DataInd + { + v_AuthRsp := v_RRC_DataInd.msg.authenticationResponse.authRsp; + v_AuthRES_High := v_AuthRsp.rES; + + //Bitwise XOR of XRES and v_AuthRES should result in all zeroes which implies that the 2 bitstrings should match exactly. + if (v_AuthRES_High != substr(v_CommonAuthParams.XRES, 0, lengthof(v_AuthRES_High))) { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Received incorrect authentication parameters"); + } + } + + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_AuthFailAny)) + { + f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication failure received"); + } + } + } + + /* + * @desc To be called after UTRA_Init, before the test case body for every test that doesn't start in UTRAN. + * This will wait until Preamble is finished on EUTRA and it has received the AuthParams + * These are then stored in SecurityInfo + * This will send the parameters to the EUTRA PTC + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) + */ + function f_UTRAN_InterRAT_InitialiseAuthParams() runs on UTRAN_PTC + { + f_UTRAN_InterRAT_InitialiseAuthParams_Common(EUTRA); + } + + /* + * @desc To be called after UTRA_Init, before the test case body for every test that doesn't start in UTRAN. + * This will wait until Preamble is finished on EUTRA and it has received the AuthParams + * These are then stored in SecurityInfo + * @param p_Port + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT) + */ + function f_UTRAN_InterRAT_InitialiseAuthParams_Common(IRAT_CO_ORD_PORT p_Port) runs on UTRAN_PTC + { + var IRAT_Coordination_MSG v_RxdMsg; + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var bitstring v_CipheringAlgCap := '0000000000000001'B; // default support + var bitstring v_IntAlgCap := '0000000000000010'B; // default support + + p_Port.receive(cmr_IRAT_AuthInfo) -> value v_RxdMsg; // @sic R5s120568 sic@ + + v_SecurityInfo.authKeys.AuthPS := v_RxdMsg.Authentication.AuthPS; + if (isvalue(v_RxdMsg.Authentication.StartPS)) { // @sic R5-120764 sic@ + v_SecurityInfo.start_PS := v_RxdMsg.Authentication.StartPS; + } + if (isvalue(v_RxdMsg.Authentication.StartCS)) { // @sic R5-120764 sic@ + v_SecurityInfo.start_CS := v_RxdMsg.Authentication.StartCS; + } + //@sic R5-120637 enhancements for SRVCC sic@ + if (isvalue(v_RxdMsg.Authentication.AuthCS)) { + v_SecurityInfo.authKeys.AuthCS.CKey := v_RxdMsg.Authentication.AuthCS.CK; + v_SecurityInfo.authKeys.AuthCS.IKey := v_RxdMsg.Authentication.AuthCS.IK; + v_SecurityInfo.authKeys.AuthCS.CKeySeq:= v_RxdMsg.Authentication.AuthCS.KeySeq; + } + + if (isvalue (v_RxdMsg.Authentication.UEACap)) { // @sic R5s130506 sic@ + v_CipheringAlgCap[13] := v_RxdMsg.Authentication.UEACap.Uea2; + v_CipheringAlgCap[14] := v_RxdMsg.Authentication.UEACap.Uea1; + // Now update the stored values + v_SecurityInfo.cipheringAlgorithmCapability := v_CipheringAlgCap; + } + + if (isvalue (v_RxdMsg.Authentication.UIACap)) { // @sic R5s130680, R5s130851 sic@ + v_IntAlgCap[13] := v_RxdMsg.Authentication.UIACap.Uia2; + v_IntAlgCap[14] := v_RxdMsg.Authentication.UIACap.Uia1; + // Now update the stored values + v_SecurityInfo.integrProtAlgCap := v_IntAlgCap; + } + + f_UTRAN_Security_Set(v_SecurityInfo); + } + + /* + * @desc Disconnects an active CC call. To bring UE from UTRA CS call (U5) state to UTRA connected (U2) state. + * This procedure is according to 36.523-3 cl. 10.1.3 (CC disconnect procedure) + * @param p_CellId + * @param p_TI_S (default : cs_TI_MO) @sic R5s110547, R5s110580 sic@ + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_CC_Disconnect(UTRAN_CellId_Type p_CellId, //Currently not needed but kept for any future extension + template (value) TI p_TI_S:= cs_TI_MO) runs on UTRAN_PTC + { // @sic R5s140611 sic@ + // Step 1: Transmit Downlink Direct Transfer with a Disconnect message + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_Disconnect(p_TI_S))); // @sic R5s110547 sic@ + + // Step 2: Receive Uplink Direct Transfer with a Release message + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_Rel(cr_TI_Any))); + + // Step 3: Transmit Downlink Direct Transfer with a Release Complete message + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_ReleaseComplete(p_TI_S))); // @sic R5s110547 sic@ + } + + type enumerated LOCATION_UPDATE_ACCEPT_TYPE {TMSI, IMSI, NONE}; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + /* + * @desc Function to configure ciphering for configured RBs in cell p_CellId before HO to UTRAN. @sic R5s110216 sic@ + * @param p_CellId + * @status APPROVED (LTE_IRAT) + */ + function f_UTRAN_ConfigureCipheringBeforeHO(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); + var template (value) RB_ActivationTimeInfoList v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs(0, 0, 0, 0); + var RLC_SequenceNumber v_RLC_SN_RB1, v_RLC_SN_RB2, v_RLC_SN_RB3, v_RLC_SN_RB4, v_RLC_SN_RAB; + //@sic R5s131013 sic@ + /* if (v_SecurityInfo.start_PS == '11111111111111111111'B) { + FatalError(__FILE__, __LINE__, "invalid PS Start Value"); + } */ + f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_SecurityInfo.start_PS); + + v_SecurityInfo.dL_CipherMode := valueof(cs_CipheringModeCmdOn(f_UTRAN_Security_GetCipheringAlgorithm())); // @sic R5-150124 sic@ + v_SecurityInfo.ps_cipheringStarted := true; + v_SecurityInfo.recentSecureDomain := ps_domain; + + f_UTRAN_Security_Set(v_SecurityInfo); + f_UTRAN_SS_DownloadSecurityKey(p_CellId, ps_domain); + + v_RLC_SN_RB1 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB1); + v_RLC_SN_RB2 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB2); + v_RLC_SN_RB3 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB3); + v_RLC_SN_RB4 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB4); + + // @sic R5s130558 sic@ + f_UTRAN_ActivateCiphering_RLC_DL_SS_RB_1_2_3_4(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_RLC_SN_RB1, v_RLC_SN_RB2, v_RLC_SN_RB3, v_RLC_SN_RB4); + + if (v_SecurityInfo.recentSecureDomain == ps_domain) { + select (v_CellConfig) { + case (cell_DCH_64kPS_RAB_SRB, cell_Four_DTCH_PS_CS) { + v_RLC_SN_RAB := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB20); + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs_20(0, 0, 0, 0, v_RLC_SN_RAB); + f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_CellConfig, false); //@sic R5s120113 sic@ + } + case (cell_DCH_64kPS_AM_RAB) { //@sic R5s140400 sic@ + v_RLC_SN_RAB := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB20); + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs_22(0, 0, 0, 0, v_RLC_SN_RAB); + f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_CellConfig, false); //@sic R5s120113 sic@ + } + case (cell_DCH_E_HS, cell_E_HS, cell_DCH_HS_DSCH, cell_DCH_dlSRB_E_HS) { // @sic R5s110788 sic@ + v_RLC_SN_RAB := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB25); + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs_25(0, 0, 0, 0, v_RLC_SN_RAB); + f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_CellConfig, false); //@sic R5s120113 sic@ + } + } + } + + f_UTRAN_ActivateCiphering_RLC_UL(f_UTRAN_CellInfo_GetFDD_TDD(p_CellId), v_SecurityInfo.recentSecureDomain, v_RB_ActivationTimeInfoList); + } + + /* + * @desc Function to configure integrity for configured RBs in cell p_CellId after completed HO to UTRAN. + * i.e. after TTCN has received the HANDOVER TO UTRAN COMPLETE message @sic R5s110216 sic@ + * @param p_CellId + * @param p_Domain (default value: ps_domain) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_ConfigureIntegrityAfterHO(UTRAN_CellId_Type p_CellId, + CN_DomainIdentity p_Domain := ps_domain) runs on UTRAN_PTC + { //@sic R5-120637 enhancements for integrity in CS domain sic@ + var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var template (value) RB_ActivationTimeInfoList v_RB_ActivationTimeInfoList; + var START_Value v_Start_Value; + var UTRAN_CFN_Info_Type v_CFN_Info := f_CalculateActTime(p_CellId); + var ActivationTime v_IntActTime := v_CFN_Info.actTime; // @sic R5s120831 sic@ + + if (p_Domain == cs_domain) { + v_Start_Value := v_SecurityInfo.start_CS; + } + else{ + v_Start_Value := v_SecurityInfo.start_PS; + } + //@sic R5s140335 sic@ + + f_UTRAN_SS_SecurityDownloadStart(p_Domain, v_Start_Value); + + v_SecurityInfo.recentSecureDomain := p_Domain; + v_SecurityInfo.integrityStarted := true; + if (f_UTRAN_Security_GetCipheringAlgorithm() == uea2) { // @sic R5-150124 sic@ + v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, uia2)); + } else { + v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, uia1)); + } + v_SecurityInfo.dl_IntegrityCheckInfo := valueof(cs_IntegrityCheckInfo0); + + // ActivateSecurity_DL_SS: + f_UTRAN_SetDL_RRC_MessageSN(utran_CellDedicated); + f_UTRAN_CRLC_IntegrityActivate(cas_CRLC_DL_IntegrityActivateReq(utran_CellDedicated, + v_SecurityInfo.recentSecureDomain, + v_SecurityInfo.dL_Integrity)); + f_UTRAN_CRLC_IntegrityActivate(cas_CRLC_UL_IntegrityActivateReq(utran_CellDedicated, + v_SecurityInfo.recentSecureDomain, + cs_RB2_IntegrityProtActivationInfoList(0))); + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs(0, 0, 0, 0); + v_SecurityInfo := f_UTRAN_StartSecurityUE(p_CellId, + v_CellConfig, + v_SecurityInfo, + v_RB_ActivationTimeInfoList, + v_SecurityInfo.recentSecureDomain, + v_IntActTime, + true); // @sic R5s110382, R5s150599 no longer an fl_ sic@ + f_UTRAN_Security_Set(v_SecurityInfo); + } + + //============================================================================================= + // PAGING TYPE 1 + /* + * @desc To Page the UE in the cs domain + * @param p_CellId + * @param p_PagCause + * @param p_Tmsi + * @status APPROVED (LTE_IRAT, POS, SSNITZ) + */ + function f_UTRAN_PageCS(UTRAN_CellId_Type p_CellId, + PagingCause p_PagCause, + B32_Type p_Tmsi) runs on UTRAN_PTC + { + f_UTRAN_CMAC_Pag1_Cfg(p_CellId); + U_TM.send(cas_PagingType1(p_CellId, tsc_RB_PCCH, cs_RRC_PagingType1(p_PagCause, cs_CN_PageUE_Identity_TMSI(p_Tmsi), cs_domain))); + } + + /* + * @desc To Page the UE + * @param p_CellId + * @param p_PagCause + * @param p_P_tmsi + * @status APPROVED (LTE_A, LTE_IRAT, UTRAN) + */ + function f_UTRAN_Page(UTRAN_CellId_Type p_CellId, + PagingCause p_PagCause, + B32_Type p_P_tmsi) runs on UTRAN_PTC + { + f_UTRAN_CMAC_Pag1_Cfg(p_CellId); + U_TM.send(cas_PagingType1(p_CellId, tsc_RB_PCCH, cs_RRC_PagingType1(p_PagCause, cs_CN_PageUE_Identity_P_TMSI(p_P_tmsi), ps_domain))); + } + + /* + * @desc Page for UE with IMSI + * @param p_CellId + * @param p_PagCause + * @param p_Domain + * @param p_IMSI + * @status + */ + function f_UTRAN_PageIMSI(UTRAN_CellId_Type p_CellId, + PagingCause p_PagCause, + CN_DomainIdentity p_Domain, + hexstring p_IMSI := px_IMSI_Def) runs on UTRAN_PTC + { + f_UTRAN_CMAC_Pag1_Cfg(p_CellId); + U_TM.send(cas_PagingType1(p_CellId, tsc_RB_PCCH, cs_RRC_PagingType1(p_PagCause, cs_CN_PageUE_Identity_IMSI(p_IMSI), p_Domain))); + } + + /* @desc Call A-B in state U10 with auxiliary state Call Held 34.108 cl. 7.2.3.3.1.2 + * return TI of call A-B @sic R5-150740 sic@ + * @param p_CellId + * @return TI + * @status APPROVED (SSNITZ) + */ + function f_UTRAN_CallA_B_Held_Common(UTRAN_CellId_Type p_CellId, template (present) TI p_TI_R := cs_TI_MO) runs on UTRAN_PTC return TI + { + var RRC_DATA_IND v_RRC_DataInd; + var TI v_TI_R := valueof(p_TI_R); + var TI v_TI_S; + + // Step 2 Make the UE put Call A-B on hold + f_UT_CallHold (UT); + + // Step 3 Hold + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_Hold(v_TI_R)))-> value v_RRC_DataInd; + v_TI_S := f_NAS_TI_InitAndSetFlag(v_TI_R, '1'B); + + // Step 4 Hold Acknowledge + U_Dc.send (cas_DataReq_CS(utran_CellDedicated, + tsc_RB3, + cs_U_HoldAck(v_TI_S))); + return v_TI_R; + } + + /* @desc Call A-B in state U10 with auxiliary state Call Held and Call A-C in U4 34.108 cl. 7.2.3.3.1.3 @sic R5-150740 sic@ + * @param p_CellId + * @return MultiTI_Type + * @status APPROVED (SSNITZ) + */ + function f_UTRAN_CallA_B_Held_A_C_Delivered_Common(UTRAN_CellId_Type p_CellId, template (present) TI p_TI_R := cs_TI_MO) runs on UTRAN_PTC return MultiTI_Type + { + var RRC_DATA_IND v_RRC_DataInd; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + var KeySeq v_KeySeq; + var TI v_TI_S_C; + var TI v_TI_R_B; + var TI v_TI_R_C; + var charstring v_NumberToDial := "3691215180"; // Make sure the number is different to previous numbers + + // Step 1 + v_TI_R_B := f_UTRAN_CallA_B_Held_Common (p_CellId, p_TI_R); // @sic R5-150740 sic@ + v_SecurityInfo := f_UTRAN_Security_Get(); // @sic R5s150084 sic@ + v_KeySeq := v_SecurityInfo.authKeys.AuthCS.CKeySeq; // @sic R5s150084 sic@ + + // Step 2 Make the UE attempt a call to subscriber C + f_UT_RequestCSCall (UT, v_NumberToDial); + + // Step 3 Receive CM Service Request + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_CMServReq_SS_MO(v_KeySeq))) -> value v_RRC_DataInd; // @sic R5s140882, R5-145392, R5s150599 sic@ + + // Steps 4 Send CM Service Accept + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, + tsc_RB3, + cs_U_CM_ServAcc)); + + // Step 5 SET UP + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_SetupMOCall(cr_BcapSpeechMO))) + -> value v_RRC_DataInd; + v_TI_R_C := v_RRC_DataInd.msg.setupul.ti; + v_TI_S_C := f_NAS_TI_InitAndSetFlag(v_TI_R_C, '1'B); + + // Step 6 Transmit Call Proceeding message + U_Dc.send (cas_DataReq_CS (utran_CellDedicated, + tsc_RB3, + cs_U_CallProc (v_TI_S_C))); + + // Step 7 Transmit Alerting message + U_Dc.send (cas_DataReq_CS (utran_CellDedicated, + tsc_RB3, + cs_U_Alert (v_TI_S_C))); + return fl_MultiTI_Init(v_TI_R_B, v_TI_R_C); + } + + /* @desc Call A-B in state U10 with auxiliary state Call Held and Call A-C in U10 34.108 cl. 7.2.3.3.1.4 @sic R5-150740 sic@ + * @param p_CellId + * @return MultiTI_Type + * @status APPROVED (SSNITZ) + */ + function f_UTRAN_CallA_B_Held_A_C_Active_Common(UTRAN_CellId_Type p_CellId, template (present) TI p_TI_R := cs_TI_MO) runs on UTRAN_PTC return MultiTI_Type + { + var MultiTI_Type v_MultiTI_R; + var TI v_TI_S_C; + + // Step 1 + v_MultiTI_R := f_UTRAN_CallA_B_Held_A_C_Delivered_Common (p_CellId, p_TI_R); // @sic R5-150740 sic@ + v_TI_S_C := f_NAS_TI_InitAndSetFlag(v_MultiTI_R.A_C, '1'B); + + //Step 2 Transmit Connect message + U_Dc.send (cas_DataReq_CS(utran_CellDedicated, + tsc_RB3, + cs_U_Connect(v_TI_S_C))); + + //Step 3 Receive Connect Acknowledge message + U_Dc.receive (car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_ConnAck(v_MultiTI_R.A_C))); + return v_MultiTI_R; + } + + /* + * @desc To check if DTMF messages need to be handled + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) + */ + function f_CheckDTMFHandling () runs on UTRAN_PTC + { + if (f_GetTestcaseAttrib_DTMF(testcasename()) ) { + activate (a_SS_HandleDTMF()); + } + } + + /* + * @desc To handle DTMF messages if sent during a CS call + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) + */ + altstep a_SS_HandleDTMF() runs on UTRAN_PTC + { + var RRC_DATA_IND v_RRC_DataInd; + var TI v_TI_R; + var KeypadFacility v_KPF; + + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_StartDTMF)) -> value v_RRC_DataInd + { + v_TI_R := v_RRC_DataInd.msg.startDTMF.ti; + v_KPF := v_RRC_DataInd.msg.startDTMF.kpf; + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, + tsc_RB3, + cs_U_StartDTMFAck(f_NAS_TI_InitAndSetFlag(v_TI_R, '1'B), v_KPF))); + repeat; + } + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_StopDTMF)) -> value v_RRC_DataInd + { + v_TI_R := v_RRC_DataInd.msg.stopDTMF.ti; + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, + tsc_RB3, + cs_U_StopDTMFAck(f_NAS_TI_InitAndSetFlag(v_TI_R, '1'B)))); + repeat; + } + } + +} // end of module diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_Component.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_Component.ttcn similarity index 89% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_Component.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_Component.ttcn index 4561f1e..b8146c3 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_Component.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_Component.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 11:08:39 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12201 $ +// @version: IWD_15wk38 +// $Date: 2015-02-27 19:37:03 +0100 (Fri, 27 Feb 2015) $ +// $Rev: 13103 $ /******************************************************************************/ module UTRAN_Component { @@ -29,8 +29,8 @@ module UTRAN_Component { // global types for control of the UTRAN: //---------------------------------------------------------------------------- - type enumerated SysinfoConfiguration_Type { configuration1, configuration6, configuration7, configuration9, configuration10}; /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - @sic R5-144078 sic@ */ + type enumerated SysinfoConfiguration_Type { configuration1, configuration6, configuration7, configuration8, configuration9, configuration10}; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + @sic R5-144708 sic@ */ type record RlcCtrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ TimerPoll timerPoll, // value for polling timer, this initial value is for ts_SS_CreateCellFACH. (from 34.123-1). used in RB2, RB3, RB4 @@ -105,11 +105,11 @@ module UTRAN_Component { SysInfoType16 SIB16 optional, // @sic R5s120615 sic@ SysInfoType18 SIB18, SysInfoType19 SIB19, - SysInfoType21 SIB21 optional, // @sic R5-144078 sic@ - SysInfoType22 SIB22 optional, // @sic R5-144078 sic@ + SysInfoType21 SIB21 optional, // @sic R5-144708 sic@ + SysInfoType22 SIB22 optional, // @sic R5-144708 sic@ boolean MIB_ValueTagChanged, // set to TRUE after MIBValueTag changed, set to FALSE after MIB delivered to SS. boolean SB1_ValueTagChanged, // set to TRUE after SB1ValueTag changed, set to FALSE after SB1 delivered to SS. - SysinfoConfiguration_Type config //UTRAN Sysinfo configuration as defined in 34.108 cl 6.1.0a.2 @sic R5-144078 sic@ + SysinfoConfiguration_Type config //UTRAN Sysinfo configuration as defined in 34.108 cl 6.1.0a.2 @sic R5-144708 sic@ //Field used in UTRAN34 tc only }; @@ -182,7 +182,11 @@ module UTRAN_Component { START_Value start_CS, // To hold the START value for CS Domain START_Value start_PS, // To hold the START value for PS Domain SecurityCtrl_Type authKeys, // Containing the latest authentication keys - boolean cipheringOnOff // To indicate if Ciphering needs to be enabled or not in SS @sic R5s130116 sic@ + boolean cipheringOnOff, // To indicate if Ciphering needs to be enabled or not in SS @sic R5s130116 sic@ + CipheringAlgorithm_r7 cipheringAlgorithm, // Ciphering algorithm to be used @sic R5-150124 sic@ + CipheringAlgorithm cipheringAlgorithm_r99 optional, // Rel-99 Ciphering algorithm to be used @sic R5-150124 sic@ + IntegrityProtectionAlgorithm_r7 integrityProtectionAlgorithm, //Intergity algorithm to be applied @sic R5-150124 sic@ + IntegrityProtectionAlgorithm integrityProtectionAlgorithm_r99 optional //Rel-99 Intergity algorithm to be applied @sic R5-150124 sic@ }; //============================================================================ @@ -200,19 +204,20 @@ module UTRAN_Component { type record UTRAN_MobileInfo_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ octetstring ue_EUTRA_Capability optional, // UE-EUTRA-Capability UE_OperationMode ue_OperationMode optional, // UE UTRAN Operation mode A or C - Used in UTRAN34 test cases - AccessStratumReleaseIndicator ue_Release optional // UE release + AccessStratumReleaseIndicator ue_Release optional, // UE release + B4_Type nSAPI_IMS_Value optional // requested NSAPI received from the UE for IMS registration @sic R5s141127 sic@ }; //============================================================================ - type enumerated UTRAN_Default_Enum_Type {StandardDefault}; /* refers to common default alt_UTRAN_Standard_Default; @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type enumerated UTRAN_Default_Enum_Type {StandardDefault}; /* refers to common default alt_UTRAN_Standard_Default; @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ type record UTRAN_DefaultCtrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ boolean U_TM_Blocked, boolean U_Dc_Blocked }; - type record UTRAN_Ctrl_Type { /* @status APPROVED (LTE_A, IMS_IRAT, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type record UTRAN_Ctrl_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ default Default, /* default behaviour being activated on UTRAN */ UTRAN_DefaultCtrl_Type DefaultCtrl, /* to control temporary blocking of ports */ boolean TestBody /* true: => fail may be assigend @@ -224,7 +229,7 @@ module UTRAN_Component { UTRAN_FddTddMessageClass_Type TestCaseRelease // @sic R5s130195 Utran release sic@ }; - type record UTRAN_Global_Type { /* @status APPROVED (LTE_A, IMS_IRAT, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type record UTRAN_Global_Type { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ UTRAN_Ctrl_Type Ctrl, UTRAN_SecurityInfo_Type Security, UTRAN_CellInfoList_Type CellArray, @@ -233,7 +238,7 @@ module UTRAN_Component { UTRAN_ConfigurationInfo_Type ConfigurationInfo //@sic R5s130195 sic@ }; - type component UTRAN_PTC { /* @status APPROVED (LTE_A, IMS_IRAT, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type component UTRAN_PTC { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ var UTRAN_Global_Type vc_UTRAN_Global; port UTRAN_AM_PORT U_AM; @@ -273,7 +278,7 @@ module UTRAN_Component { /* * @desc Map UTRAN's system ports * @param p_Utran - * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_PTC_Map(UTRAN_PTC p_Utran) { @@ -294,17 +299,17 @@ module UTRAN_Component { //============================================================================ // standard default behaviour: - template (present) U_RLC_AM_IND cr_U_RLC_AM_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) RLC_TR_DATA_IND cr_RLC_TR_DATA_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) RLC_UM_DATA_IND cr_RLC_UM_DATA_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) U_CPHY_CONFIG_CNF cr_U_CPHY_CONFIG_CNF_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) U_CMAC_CONFIG_CNF cr_U_CMAC_CONFIG_CNF_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) U_CRLC_CONFIG_CNF cr_U_CRLC_CONFIG_CNF_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (present) RRC_DATA_IND cr_RRC_DATA_IND_Any := ?; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) U_RLC_AM_IND cr_U_RLC_AM_IND_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) U_RLC_TM_IND cr_RLC_TR_DATA_IND_Any := {data := ?}; /* @sic R5-150124 sic@ @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) RLC_UM_DATA_IND cr_RLC_UM_DATA_IND_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) U_CPHY_CONFIG_CNF cr_U_CPHY_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) U_CMAC_CONFIG_CNF cr_U_CMAC_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) U_CRLC_CONFIG_CNF cr_U_CRLC_CONFIG_CNF_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (present) RRC_DATA_IND cr_RRC_DATA_IND_Any := ?; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* * @desc standard default behaviour for UTRAN - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ altstep a_UTRAN_StandardDefault() runs on UTRAN_PTC { // @sic R5s110431 sic@ @@ -360,7 +365,7 @@ module UTRAN_Component { /* * @desc to deal with entry and exit of the test body * @param p_TestBodyFlag - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_TestBody_Set(boolean p_TestBodyFlag) runs on UTRAN_PTC { @@ -370,7 +375,7 @@ module UTRAN_Component { /* * @desc check whether test body is active * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UTRAN_TestBody_Check() runs on UTRAN_PTC return boolean { @@ -382,7 +387,7 @@ module UTRAN_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SetVerdictFailOrInconc(charstring p_FileName, LineNo_Type p_LineNo, @@ -401,7 +406,7 @@ module UTRAN_Component { * @param p_FileName * @param p_LineNo * @param p_Msg - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_PreliminaryPass(charstring p_FileName, LineNo_Type p_LineNo, @@ -417,7 +422,7 @@ module UTRAN_Component { /* * @desc to (temporarily) block the U_TM port * @param p_Block - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_Default_BlockTM(boolean p_Block) runs on UTRAN_PTC { @@ -427,7 +432,7 @@ module UTRAN_Component { /* * @desc to (temporarily) block the U_Dc port * @param p_Block - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_Default_BlockDc(boolean p_Block) runs on UTRAN_PTC { @@ -437,7 +442,7 @@ module UTRAN_Component { /* * @desc to activate the standard default behaviour * @param p_Default identifies a standard behaviour to be activated - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ActivateDefault(UTRAN_Default_Enum_Type p_Default) runs on UTRAN_PTC { // @sic R5s120049: new default behaviour "StandardDefault_BlockTM" (removed again due to R5s120086 (R5s120107)) sic@ @@ -461,7 +466,7 @@ module UTRAN_Component { /* * @desc Initialise messages which may be received in an additional default behaviour and need to be stored at a globale place * @return UTRAN_MsgReceivedInDefault_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_MsgInDefault_Init() return UTRAN_MsgReceivedInDefault_Type { diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn index 6928a72..09adcf1 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_ConfigurationSteps.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module UTRAN_ConfigurationSteps { @@ -27,6 +27,7 @@ module UTRAN_ConfigurationSteps { import from UTRAN_RRC_RAB_Templates all; import from UTRAN_RRC_RAB_Templates_r9 all; import from UTRAN_RRC_RAB_Templates_r10 all; + import from UTRAN_RRC_RAB_Templates_r12 all; import from UTRAN_ASN1_ASP_RAB_Templates_r11 all; import from UTRAN_RRC_Templates all; import from UTRAN_RRC_Templates_r11 all; @@ -54,7 +55,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to setup, reconfigure or release RLC entity. * Procedure waits for confirmation of successful setup, release or reconfiguration. * @param p_CRLC_Config_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_Config(template (value) U_CRLC_CONFIG_REQ p_CRLC_Config_REQ) runs on UTRAN_PTC { @@ -66,7 +67,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to setup the associated transport channel and the Radio Link itself. * Procedure waits for confirmation of successful setup of the Radio Link. * @param p_CPHY_RL_Setup_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CPHY_RL_Setup(template (value) U_CPHY_CONFIG_REQ p_CPHY_RL_Setup_REQ) runs on UTRAN_PTC { @@ -78,7 +79,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to release the associated transport channel and the Radio Link itself. * Procedure waits for confirmation of successful release of the Radio Link. * @param p_CPHY_RL_Release_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CPHY_RL_Release(template (value) U_CPHY_CONFIG_REQ p_CPHY_RL_Release_REQ) runs on UTRAN_PTC { @@ -90,7 +91,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to configure the transport channel * Procedure waits for confirmation of successful configuration of the transport channel * @param p_CPHY_TrCH_Config_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CPHY_TrCH_Config(template (value) U_CPHY_CONFIG_REQ p_CPHY_TrCH_Config_REQ) runs on UTRAN_PTC { @@ -102,7 +103,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to release the transport channel * Procedure waits for confirmation of successful release of the transport channel * @param p_CPHY_TrCH_Rel_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CPHY_TrCH_Release(template (value) U_CPHY_CONFIG_REQ p_CPHY_TrCH_Rel_REQ) runs on UTRAN_PTC { @@ -117,7 +118,7 @@ module UTRAN_ConfigurationSteps { * Reconfiguration is used for changing the MAC parameters * Procedure waits for confirmation of successful setup, release or reconfiguration. * @param p_CMAC_Config_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CMAC_Config(template (value) U_CMAC_CONFIG_REQ p_CMAC_Config_REQ) runs on UTRAN_PTC { @@ -150,19 +151,19 @@ module UTRAN_ConfigurationSteps { /* * @desc Modifies the RL channel * @param p_CPHY_RL_Modify_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - function f_UTRAN_CPHY_RL_Modify (template (value) U_CPHY_CONFIG_REQ p_CPHY_RL_Modify_REQ ) runs on UTRAN_PTC + function f_UTRAN_CPHY_RL_Modify (template (value) U_CPHY_CONFIG_REQ p_CPHY_RL_Modify_REQ) runs on UTRAN_PTC { - U_CPHY.send ( p_CPHY_RL_Modify_REQ ); - U_CPHY.receive ( car_RL_ModifyCnf ); + U_CPHY.send(p_CPHY_RL_Modify_REQ); + U_CPHY.receive(car_RL_ModifyCnf); } /* * @desc Configures MAC Hs * @param p_CellId * @param p_CMAC_MACHs_Config_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_CMAC_MACHs_Config ( UTRAN_CellId_Type p_CellId, template (value) U_CMAC_CONFIG_REQ p_CMAC_MACHs_Config_REQ) runs on UTRAN_PTC @@ -175,7 +176,7 @@ module UTRAN_ConfigurationSteps { * @desc To setup radio bearers : RB1, RB2, RB3, RB4. default values from 34.123-1 * CRLC is configured with cellId -1 (utran_CellDedicated) * @param p_FDD_TDD - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB1_ToRB4_Cfg(UTRAN_FDD_TDD_Type p_FDD_TDD) runs on UTRAN_PTC { @@ -183,7 +184,7 @@ module UTRAN_ConfigurationSteps { if (p_FDD_TDD == UTRAN_FDD) { select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (FDDr11) { + case (FDDr11, FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ f_UTRAN_SS_RB1_ToRB4_Cfg_FDD_r11 (); } case else { @@ -194,8 +195,8 @@ module UTRAN_ConfigurationSteps { else { select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (FDDr11) { - f_UTRAN_SS_RB1_ToRB4_Cfg_FDD_r11 (); + case (TDDr11, TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + f_UTRAN_SS_RB1_ToRB4_Cfg_TDD_r11 (); } case else { f_UTRAN_SS_RB1_ToRB4_Cfg_TDD(); @@ -207,7 +208,7 @@ module UTRAN_ConfigurationSteps { /* * @desc For FDD - To setup radio bearers : RB1, RB2, RB3, RB4. default values from 34.123-1 * CRLC is configured with cellId -1 (utran_CellDedicated) - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB1_ToRB4_Cfg_FDD () runs on UTRAN_PTC { @@ -239,7 +240,7 @@ module UTRAN_ConfigurationSteps { /* * @desc For TDD - To setup radio bearers : RB1, RB2, RB3, RB4. default values from 34.123-1 * CRLC is configured with cellId -1 (utran_CellDedicated) - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB1_ToRB4_Cfg_TDD () runs on UTRAN_PTC { @@ -271,7 +272,7 @@ module UTRAN_ConfigurationSteps { /* * @desc For FDD Rel11 - To setup radio bearers : RB1, RB2, RB3, RB4. default values from 34.123-1 * CRLC is configured with cellId -1 (utran_CellDedicated) - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB1_ToRB4_Cfg_FDD_r11() runs on UTRAN_PTC { @@ -303,6 +304,7 @@ module UTRAN_ConfigurationSteps { /* * @desc For TDD Rel11 - To setup radio bearers : RB1, RB2, RB3, RB4. default values from 34.123-1 * CRLC is configured with cellId -1 (utran_CellDedicated) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB1_ToRB4_Cfg_TDD_r11() runs on UTRAN_PTC { @@ -337,7 +339,7 @@ module UTRAN_ConfigurationSteps { * The transport channel DCH5 carries only dedicated control channels. * MAC-d is configured with cellId -1 (utran_CellDedicated). * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_1DCH_DCCH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -348,7 +350,7 @@ module UTRAN_ConfigurationSteps { case (FDDr10, TDDr10) { f_UTRAN_SS_1DCH_DCCH_Cfg_r10(p_CellId); } - case (FDDr11, TDDr11) { + case (FDDr11, TDDr11, FDDr12, TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ f_UTRAN_SS_1DCH_DCCH_Cfg_r11(p_CellId); } case else { FatalError(__FILE__, __LINE__, "");} @@ -362,7 +364,7 @@ module UTRAN_ConfigurationSteps { * The transport channel DCH5 carries only dedicated control channels. * MAC-d is configured with cellId -1 (utran_CellDedicated). * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_1DCH_DCCH_Cfg_r8(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -429,7 +431,7 @@ module UTRAN_ConfigurationSteps { * The transport channel DCH5 carries only dedicated control channels. * MAC-d is configured with cellId -1 (utran_CellDedicated). * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_1DCH_DCCH_Cfg_r10(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -498,7 +500,7 @@ module UTRAN_ConfigurationSteps { * The transport channel DCH5 carries only dedicated control channels. * MAC-d is configured with cellId -1 (utran_CellDedicated). * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_1DCH_DCCH_Cfg_r11(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -563,7 +565,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To setup the radio bearer (RB_BCCH) which is used for sending system information blocks. * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB_BCCH_BCH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -580,7 +582,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To setup radio bearer (RB_PCCH) used for paging message sending * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB_PCCH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -616,7 +618,7 @@ module UTRAN_ConfigurationSteps { * CRLC is configured with cellId -1 (utran_CellDedicated) * CMAC for DCCH (MAC-d) is configured with cellId -1 (utran_CellDedicated). * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_SS_CreateCellDCH(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -795,7 +797,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To configure AICH and PRACH physical channels and connect RACH onto PRACH, then map one logical channel (CCCH) to RACH * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RACH_CCCH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -844,7 +846,7 @@ module UTRAN_ConfigurationSteps { * @desc Function which returns the number of already configured cells * @param p_CellIdList * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_NoOfConfiguredCells_Common(UTRAN_CellIdList_Type p_CellIdList) runs on UTRAN_PTC return integer { @@ -862,7 +864,7 @@ module UTRAN_ConfigurationSteps { /* * @desc Function which returns the number of already configured cells * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_NoOfConfiguredCells() runs on UTRAN_PTC return integer { @@ -873,7 +875,7 @@ module UTRAN_ConfigurationSteps { /* * @desc The first cell created between utran_Cell5/7 is configured with Tcell value 0. * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function fl_UTRAN_CheckFirstCellCreated(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -895,7 +897,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To setup the cell parameter in CPHY, if the cell 'p_CellId' is the first one to be created, then CPHY shall be initialised using CHY_INIT_REquest ASP. * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_SS_CellCfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -938,7 +940,7 @@ module UTRAN_ConfigurationSteps { * Fr TDD : f_SS_BCH_PCCPCH_Cfg in TTCN-2. * To configure P-CCPCH physical channels and map BCH to P-PCCPCH, then to map logical channel BCCH to transport channel BCH. * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_BCH_SCH_CPICH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -976,7 +978,7 @@ module UTRAN_ConfigurationSteps { * @desc To configure a secondary CCPCH ( tsc_S_CCPCH1), then connect PCH and FACH to the secondary CCPCH. * (34.108 cl. 4.2.1), finally to map PCCH to PCH and CCCH to FACH. * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_PCH_FACH_CCCH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -1030,7 +1032,7 @@ module UTRAN_ConfigurationSteps { * RB0 ( the downlink is UM + CCCH + FACH + sCCPCH1 and uplink is TM + CCCH + RACH + PRACH). * The configuration is adapted from 34.108 cl. 6.10.2.4.3 and 6.10.2.4.4 * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB0_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -1065,7 +1067,7 @@ module UTRAN_ConfigurationSteps { * @param p_RLC_Size * @param p_LogChUL (default value: tsc_UL_DTCH1) * @param p_LogChDL (default value: tsc_DL_DTCH1) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_SS_RB20_AM_PS_Cfg(UTRAN_CellId_Type p_CellId, template (value) OctetModeRLC_SizeInfoType1 p_RLC_Size, @@ -1076,7 +1078,7 @@ module UTRAN_ConfigurationSteps { if (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId) == UTRAN_FDD) { select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (FDDr11) { + case (FDDr11, FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_FDD( utran_CellDedicated, tsc_RB20, @@ -1090,7 +1092,7 @@ module UTRAN_ConfigurationSteps { } else { select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { - case (TDDr11) { + case (TDDr11, TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ f_UTRAN_CRLC_Config(cas_CRLC_SetupExtension_TDD( utran_CellDedicated, tsc_RB20, @@ -1098,7 +1100,7 @@ module UTRAN_ConfigurationSteps { v_RB_LogCH_Mapping_RB20 )); } case else { - f_UTRAN_CRLC_Config(cas_RB_AM_Info_RAB_TDD(utran_CellDedicated, tsc_RB20, v_RB_LogCH_Mapping_RB20, p_RLC_Size)); + f_UTRAN_CRLC_Config(cas_RB_AM_Info_RAB_TDD(utran_CellDedicated, tsc_RB20, v_RB_LogCH_Mapping_RB20, p_RLC_Size)); } } } @@ -1108,7 +1110,7 @@ module UTRAN_ConfigurationSteps { * @desc Setup radio bearers : RB9 (downlink only) this bearer is for BCCH-FACH (TM + BCCH + FACH + sCCPCH1). * The configuration is adapted from 34.108 cl. 6.10.2.4.3. * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ function f_UTRAN_SS_RB_BCCH_FACH_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -1127,7 +1129,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_DL_TxPowerLevel ...the FDD power level as specified in prose or the level defined by one of the constants (e.g. tsc_AttenuationCellOFF) * @param p_TDD_DL_TxPowerLevel (default value: -3) ...the TDD power level as specified in prose. This parameters is only used when actual power level actual is specified. - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SetCellPower (UTRAN_CellId_Type p_CellId, integer p_DL_TxPowerLevel, @@ -1187,7 +1189,7 @@ module UTRAN_ConfigurationSteps { * @desc To release the UTRAN cell, and all channels currently configured on it * @param p_CellId * @param p_RBConfig - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ReleaseCell(UTRAN_CellId_Type p_CellId, RB_ConfigType p_RBConfig) runs on UTRAN_PTC @@ -1207,7 +1209,7 @@ module UTRAN_ConfigurationSteps { * seg3 field of the result, and so on till the last segment. * @param p_SIBBitString * @return SegmentsOfSysInfoBlock - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SIB_Bitstring_Segmentation(bitstring p_SIBBitString) return SegmentsOfSysInfoBlock { @@ -1332,7 +1334,7 @@ module UTRAN_ConfigurationSteps { /* * @desc Sends the default System Information messages, when there's only EUTRA and UTRAN components * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_SendDefSysInfo(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -1393,7 +1395,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellSysInfo * @param p_SIB_Type * @return UTRAN_CellSysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SIB_ChangeValueTag(UTRAN_CellSysInfo_Type p_CellSysInfo, SIB_Type p_SIB_Type) return UTRAN_CellSysInfo_Type @@ -1459,7 +1461,7 @@ module UTRAN_ConfigurationSteps { * @desc To change ValueTag in MIB * @param p_CellSysInfo * @return UTRAN_CellSysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UTRAN_MIB_ChangeValueTag(UTRAN_CellSysInfo_Type p_CellSysInfo) return UTRAN_CellSysInfo_Type { @@ -1478,7 +1480,7 @@ module UTRAN_ConfigurationSteps { * @desc To change ValueTag in SB1 * @param p_CellSysInfo * @return UTRAN_CellSysInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, POS, SSNITZ, UTRAN) */ function f_UTRAN_SB1_ChangeValueTag(UTRAN_CellSysInfo_Type p_CellSysInfo) return UTRAN_CellSysInfo_Type { @@ -1500,7 +1502,7 @@ module UTRAN_ConfigurationSteps { * @param p_Message * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_BCCH_BCH_Msg_Schedule(UTRAN_CellId_Type p_CellId, integer p_Repetition, @@ -1527,7 +1529,7 @@ module UTRAN_ConfigurationSteps { * @param p_SegIndex * @param p_SIBData * @return template (value) BCCH_BCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UTRAN_SIB_MsgLastSegment(SIB_Type p_SIB_Type, integer p_SegIndex, @@ -1547,7 +1549,7 @@ module UTRAN_ConfigurationSteps { * @param p_SIB_Type * @param p_SIBData * @return template (value) BCCH_BCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_UTRAN_SIB_MsgInOneSegment(SIB_Type p_SIB_Type, bitstring p_SIBData) return template (value) BCCH_BCH_Message @@ -1568,7 +1570,7 @@ module UTRAN_ConfigurationSteps { * @param p_Segments * @param p_MaxNoOfSegm * @return template (value) UTRAN_SIB_BCCH_BCH_Messages_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SIB_Segmentation(SIB_Type p_SIB_Type, SegmentsOfSysInfoBlock p_Segments, @@ -1666,7 +1668,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB1_SIB2(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -1830,7 +1832,7 @@ module UTRAN_ConfigurationSteps { * @param p_Timing * @param p_Repetition * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB5(UTRAN_CellId_Type p_CellId, SIB_Type p_SIB_Type, // systemInformationBlockType5 or systemInformationBlockType5bis @@ -1889,7 +1891,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB6(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -1944,7 +1946,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB3_4_7_18(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -2051,7 +2053,7 @@ module UTRAN_ConfigurationSteps { * @param p_Timing * @param p_Repetition * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB11(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -2095,7 +2097,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, POS, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB12(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -2126,7 +2128,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSIB19(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -2307,7 +2309,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendSB1(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -2339,7 +2341,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_Timing * @param p_RatType - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SendMIB(UTRAN_CellId_Type p_CellId, integer p_Timing, @@ -2371,7 +2373,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To download all security keys to CMAC (for DCH cell configurations only) and U_CRLC. - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_ResetSecurityKey() runs on UTRAN_PTC { @@ -2397,7 +2399,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_PhysicalChannelIdentity * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CPHY_GetFrameNumber(UTRAN_CellId_Type p_CellId, PhysicalChannelIdentity p_PhysicalChannelIdentity) runs on UTRAN_PTC return integer @@ -2417,7 +2419,7 @@ module UTRAN_ConfigurationSteps { * @param p_UTRAN_FDD_TDD * @param p_CN_Domain * @param p_ActivationTimeInfoList - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ActivateCiphering_RLC_UL(UTRAN_FDD_TDD_Type p_UTRAN_FDD_TDD, CN_DomainIdentity p_CN_Domain, @@ -2444,7 +2446,7 @@ module UTRAN_ConfigurationSteps { * @param p_CipherMode * @param p_RB * @param p_SN_RB - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ActivateCiphering_RLC_DL(UTRAN_FDD_TDD_Type p_UTRAN_FDD_TDD, CN_DomainIdentity p_CN_Domain, @@ -2479,7 +2481,7 @@ module UTRAN_ConfigurationSteps { * @param p_SN_RB2 * @param p_SN_RB3 * @param p_SN_RB4 - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ActivateCiphering_RLC_DL_SS_RB_1_2_3_4(UTRAN_CellId_Type p_CellId, CN_DomainIdentity p_CN_Domain, @@ -2502,7 +2504,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_CipherActTime * @return template (value) RB_ActivationTimeInfoList - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_ActivateCiphering_DL_SS(UTRAN_CellId_Type p_CellId, ActivationTime p_CipherActTime) runs on UTRAN_PTC return template (value) RB_ActivationTimeInfoList @@ -2520,6 +2522,9 @@ module UTRAN_ConfigurationSteps { f_UTRAN_CRLC_Suspend(tsc_RB1, v_RLC_SN_RB1); f_UTRAN_CRLC_Suspend(tsc_RB3, v_RLC_SN_RB3); f_UTRAN_CRLC_Suspend(tsc_RB4, v_RLC_SN_RB4); + //Block reception of UL PDUs on Dc port - similar as SS suspension of UL RLC PDU in CRLC_Suspend_REQ + //@sic R5s150532 sic@ + f_UTRAN_Default_BlockDc(true); // @sic R5s130558 sic@ f_UTRAN_ActivateCiphering_RLC_DL_SS_RB_1_2_3_4(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_RLC_SN_RB1, v_RLC_SN_RB2 + 2, v_RLC_SN_RB3, v_RLC_SN_RB4); //@sic R5s130647 sic@ @@ -2571,7 +2576,7 @@ module UTRAN_ConfigurationSteps { * @param p_CipherMode * @param p_RB_Id * @param p_Suspend - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_DL_CipherCfgOneRB(UTRAN_CellId_Type p_CellId, CN_DomainIdentity p_Cn_DomainIdentity, @@ -2596,7 +2601,7 @@ module UTRAN_ConfigurationSteps { * @param p_CipherMode * @param p_RbType * @param p_Suspend - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_DL_CipherCfgRB(UTRAN_CellId_Type p_CellId, CN_DomainIdentity p_Cn_DomainIdentity, @@ -2612,7 +2617,7 @@ module UTRAN_ConfigurationSteps { case (cell_DCH_64kPS_RAB_SRB, cell_FACH_PS, cell_Four_DTCH_PS_CS) { // @sic R5s110210 R5s140096 sic@ v_RB_Id := tsc_RB20; } - case (cell_DCH_HS_DSCH, cell_DCH_E_HS, cell_E_HS, cell_DCH_dlSRB_E_HS, cell_FACH_HS) { + case (cell_DCH_HS_DSCH, cell_DCH_E_HS, cell_E_HS, cell_DCH_dlSRB_E_HS, cell_FACH_HS, cell_FACH_UL_PS, cell_FACH_UL_FallBack) { v_RB_Id := tsc_RB25; } case else { @@ -2630,7 +2635,7 @@ module UTRAN_ConfigurationSteps { * The ASP shall be called before the sending of Security mode Command. It activates the integrity on all SRBs in DL. * The ASP shall not be used if integrity is to be switched off in the test case. * @param p_CRLC_Integrity_Activate_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_IntegrityActivate(template (value) U_CRLC_CONFIG_REQ p_CRLC_Integrity_Activate_REQ) runs on UTRAN_PTC { @@ -2641,7 +2646,7 @@ module UTRAN_ConfigurationSteps { /* * @desc Resume radio bearers for the security procedure * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_ResumeSecurity(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -2668,7 +2673,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To request to resume data transmission. * @param p_RB_Id - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_Resume(integer p_RB_Id) runs on UTRAN_PTC { @@ -2683,7 +2688,7 @@ module UTRAN_ConfigurationSteps { * @param p_RB_Id * @param p_RLC_SeqNum - indicates that an RLC entity will not send a PDU with sequence number VT(S)+N for AM * and sequence number VT(US)+N for UM, where N is a non negative number. - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_Suspend(integer p_RB_Id, RLC_SequenceNumber p_RLC_SeqNum) runs on UTRAN_PTC @@ -2696,7 +2701,7 @@ module UTRAN_ConfigurationSteps { * @desc To request the SS tp prohibit/continue acknowledging RLC SDUs * @param p_RB_Id * @param p_CRLC_ProhibitRLC_Ack_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_ProhibitRLC_Ack(integer p_RB_Id, template (value) U_CRLC_CONFIG_REQ p_CRLC_ProhibitRLC_Ack_REQ) runs on UTRAN_PTC @@ -2712,7 +2717,7 @@ module UTRAN_ConfigurationSteps { * @param p_KC * @param p_IK * @param p_GSM_ck - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_SecurityMode_Config(CN_DomainIdentity p_Domain, template (omit) HyperFrameNumber p_HFN, @@ -2732,7 +2737,7 @@ module UTRAN_ConfigurationSteps { * @param p_KC * @param p_IK * @param p_GSM_ck - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CMAC_SecurityMode_Config(CN_DomainIdentity p_Domain, template (omit) HyperFrameNumber p_HFN, @@ -2749,7 +2754,7 @@ module UTRAN_ConfigurationSteps { * the expected UL PDU to be received. * @param p_RB_Id * @return CRLC_SequenceNumber_CNF - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_SequenceNumber_Get(integer p_RB_Id) runs on UTRAN_PTC return CRLC_SequenceNumber_CNF { @@ -2764,7 +2769,7 @@ module UTRAN_ConfigurationSteps { * @desc return DL RLC_SequenceNumber for given RB * @param p_RB_Id * @return RLC_SequenceNumber - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(integer p_RB_Id) runs on UTRAN_PTC return RLC_SequenceNumber { @@ -2778,7 +2783,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_RB_Id * @param p_SN - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_SetRRC_MessageSN(UTRAN_CellId_Type p_CellId, integer p_RB_Id, @@ -2793,7 +2798,7 @@ module UTRAN_ConfigurationSteps { * or for receiving the next UL RRC message on the concerned SRB * @param p_RB_Id * @return CRLC_RRC_MessageSN_CNF - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_RRC_MessageSN_Get(integer p_RB_Id) runs on UTRAN_PTC return CRLC_RRC_MessageSN_CNF { @@ -2809,7 +2814,7 @@ module UTRAN_ConfigurationSteps { * @desc To Set the Message sequence number in DL to all 0 for RB0 to RB4 * This step to be used when Integrity is to be started * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SetDL_RRC_MessageSN(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -2823,7 +2828,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To request to start or restart downlink ciphering or uplink deciphering. * @param p_CRLC_Ciphering_Activate_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_CipheringActivate(template (value) U_CRLC_CONFIG_REQ p_CRLC_Ciphering_Activate_REQ) runs on UTRAN_PTC { @@ -2841,7 +2846,7 @@ module UTRAN_ConfigurationSteps { * @param p_CipherActTime * @param p_CipherMode * @param p_IncrDcr - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CMAC_CipherCfg(UTRAN_CellId_Type p_CellId, ActivationTime p_CipherActTime, @@ -2863,7 +2868,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to start or restart downlink ciphering or uplink deciphering. * @param p_PhyChId * @param p_CMAC_Ciphering_Activate_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CMAC_CipheringActivate(integer p_PhyChId, template (value) U_CMAC_CONFIG_REQ p_CMAC_Ciphering_Activate_REQ) runs on UTRAN_PTC @@ -2878,7 +2883,7 @@ module UTRAN_ConfigurationSteps { * @param p_CipherMode * @param p_ActTime * @param p_IncrDcr - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CMAC_UL_DL_CipherCfg( UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ CipheringModeCommand_r7 p_CipherMode, @@ -2910,7 +2915,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To restart CRLC for the next RRC connection * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_RestartCRLC_ForNextConnection(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -2922,7 +2927,9 @@ module UTRAN_ConfigurationSteps { f_UTRAN_CRLC_RelReconfSRB(v_FDD_TDD); f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_StandAloneSRB_NoConn); } - case (cell_FACH) { + case (cell_FACH, + cell_FACH_PS //@sic R5s150302 sic@ + ) { f_UTRAN_CRLC_RelReconfSRB(v_FDD_TDD); f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_FACH_NoConn); } @@ -2948,7 +2955,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To release the DPCH * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_RelDPCH(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -2979,6 +2986,14 @@ module UTRAN_ConfigurationSteps { f_UTRAN_CPDCP_Rel(p_CellId, tsc_RB22); f_UTRAN_CRLC_Rel(utran_CellDedicated, tsc_RB22, v_FDD_TDD); } + case (cell_DCH_3AM_PS) {//@sic R5s150283 sic@ + f_UTRAN_CPDCP_Rel(p_CellId, tsc_RB24); + f_UTRAN_CPDCP_Rel(p_CellId, tsc_RB22); + f_UTRAN_CPDCP_Rel(p_CellId, tsc_RB20); + f_UTRAN_CRLC_Rel(utran_CellDedicated, tsc_RB24, v_FDD_TDD); + f_UTRAN_CRLC_Rel(utran_CellDedicated, tsc_RB22, v_FDD_TDD); + f_UTRAN_CRLC_Rel(utran_CellDedicated, tsc_RB20, v_FDD_TDD); + } case (cell_Four_DTCH_PS_CS){ //@sic R5s120070 sic@ f_UTRAN_CPDCP_Rel(p_CellId, tsc_RB20); //@sic R5s130195 PDCP sic@ f_UTRAN_CRLC_Rel(utran_CellDedicated, tsc_RB20, v_FDD_TDD); @@ -3069,7 +3084,7 @@ module UTRAN_ConfigurationSteps { /* * @desc To reconfigure the RAB to SRBs * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_ReconfRAB_ToSRB(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -3085,7 +3100,7 @@ module UTRAN_ConfigurationSteps { * This step is used only in conjonction with the RRC Connestion Release step. * The configuration for SRBs 1 to 4 is the same as the one used for cell_DCH and cell_FACH. * @param p_FDD_TDD - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_RelReconfSRB(UTRAN_FDD_TDD_Type p_FDD_TDD) runs on UTRAN_PTC { @@ -3101,7 +3116,7 @@ module UTRAN_ConfigurationSteps { * @param p_CellId * @param p_RB_Id * @param p_FDD_TDD - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CRLC_Rel(UTRAN_CellId_Type p_CellId, integer p_RB_Id, @@ -3120,7 +3135,7 @@ module UTRAN_ConfigurationSteps { * @desc Page the UE for change of SI * @param p_CellId * @param p_MIB_ValueTag - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, UTRAN) */ function f_UTRAN_SendPage1_ModifySI (UTRAN_CellId_Type p_CellId, MIB_ValueTag p_MIB_ValueTag) runs on UTRAN_PTC { @@ -3164,7 +3179,7 @@ module UTRAN_ConfigurationSteps { if (pc_CS and pc_PS) { // UE supports CS and PS if (v_DRX_Cycle.cN_CS_DRX_CycleLength <= v_DRX_Cycle.cN_PS_DRX_CycleLength) { // CN Drx Cycle length for CS is smaller than PS, then CN Drx Cycle length for CS is used - v_DRX_Cycle.uTRAN_DRX_CycleLength := v_DRX_Cycle.cN_CS_DRX_CycleLength; //Lidia + v_DRX_Cycle.uTRAN_DRX_CycleLength := v_DRX_Cycle.cN_CS_DRX_CycleLength; } else { // CN Drx Cycle length for CS is not smaller than PS, then CN Drx Cycle length for PS is used @@ -3309,19 +3324,19 @@ module UTRAN_ConfigurationSteps { } } case (cell_DCH_Speech) { - //FFS - implementation need is under investigation + //implementation need is under investigation } /* case (cell_DCH_64kCS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } case (cell_DCH_57_6kCS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } */ case (cell_DCH_64kPS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } } } @@ -3386,22 +3401,22 @@ module UTRAN_ConfigurationSteps { } } case (cell_DCH_Speech) { - //FFS - implementation need is under investigation + //implementation need is under investigation } case (cell_DCH_64kPS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } /* case (cell_DCH_64kCS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } case (cell_DCH_57_6kCS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } */ case (cell_DCH_64kPS_RAB_SRB) { - //FFS - implementation need is under investigation + //implementation need is under investigation } } } @@ -3412,7 +3427,7 @@ module UTRAN_ConfigurationSteps { * From TTCN2 ts_CMAC_New_RNTI_Reconf * @param p_CellId * @param p_New_CRNTI - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_SS_New_CRNTI (UTRAN_CellId_Type p_CellId, C_RNTI p_New_CRNTI) runs on UTRAN_PTC { @@ -3499,9 +3514,12 @@ module UTRAN_ConfigurationSteps { * @desc Function for transistion of UE to CELL_PCH. * Function is according to 34.108 cl. 7.4.2.7.1 * @param p_CellId + * @param p_DRX_CycleLengthCoefficient (default value: 3) * @status APPROVED (LTE_IRAT) */ - function f_UTRAN_TransitToCellPCH(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + function f_UTRAN_TransitToCellPCH(UTRAN_CellId_Type p_CellId, + UTRAN_DRX_CycleLengthCoefficient_r7.drx_CycleLengthCoefficient p_DRX_CycleLengthCoefficient := 3) //@sic R5-153640 sic@ + runs on UTRAN_PTC { var RB_ConfigType v_CellConfiguration := f_UTRAN_CellInfo_GetConfigType (p_CellId); @@ -3523,7 +3541,7 @@ module UTRAN_ConfigurationSteps { omit,//Activation time is set to omit as Cell-FACH omit, cell_PCH, - cs_UTRAN_DRX_CycleLengthCoefficient_r7(3), + cs_UTRAN_DRX_CycleLengthCoefficient_r7(p_DRX_CycleLengthCoefficient), tsc_MaxAllowPwr))); } case (TDDr9, FDDr9) { // @sic R5s120952 sic@ @@ -3534,7 +3552,7 @@ module UTRAN_ConfigurationSteps { omit,//Activation time is set to omit as Cell-FACH omit, cell_PCH, - cs_UTRAN_DRX_CycleLengthCoefficient_r7(3), + cs_UTRAN_DRX_CycleLengthCoefficient_r7(p_DRX_CycleLengthCoefficient), tsc_MaxAllowPwr))); } case (TDDr10, FDDr10) { // @sic R5s130195 sic@ @@ -3545,7 +3563,7 @@ module UTRAN_ConfigurationSteps { omit,//Activation time is set to omit as Cell-FACH omit, cell_PCH, - cs_UTRAN_DRX_CycleLengthCoefficient_r7(3), + cs_UTRAN_DRX_CycleLengthCoefficient_r7(p_DRX_CycleLengthCoefficient), tsc_MaxAllowPwr))); } case (TDDr11, FDDr11) { @@ -3556,7 +3574,18 @@ module UTRAN_ConfigurationSteps { omit,//Activation time is set to omit as Cell-FACH omit, cell_PCH, - cs_UTRAN_DRX_CycleLengthCoefficient_r7(3), + cs_UTRAN_DRX_CycleLengthCoefficient_r7(p_DRX_CycleLengthCoefficient), + tsc_MaxAllowPwr))); + } + case (TDDr12, FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + U_AM.send ( cas_RLC_Data_Req_NoCnf ( utran_CellDedicated, + tsc_RB2, + cs_PhysicalChannelReconfiguration_r12 (v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + omit,//Activation time is set to omit as Cell-FACH + omit, + cell_PCH, + cs_UTRAN_DRX_CycleLengthCoefficient_r7(p_DRX_CycleLengthCoefficient), tsc_MaxAllowPwr))); } case else { @@ -3583,7 +3612,7 @@ module UTRAN_ConfigurationSteps { * @desc Reconfigures the cell if it's not ready for an RRC connection establishment * @param p_CellId .. Cell to which the UE is expected to establish a connection * @param p_OtherCell .. Id of the other UTRAN Cell, if one is configured (default value: omit) - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_IRAT, SSNITZ, UTRAN) */ function f_UTRAN_PrepareCellRRC_ConnEst(UTRAN_CellId_Type p_CellId, template (omit) UTRAN_CellId_Type p_OtherCell := omit) runs on UTRAN_PTC @@ -3724,7 +3753,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to setup, reconfigure or release PDCP entity. * Procedure waits for confirmation of successful setup, release or reconfiguration. * @param p_CPDCP_Config_REQ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_SS_PDCP_Cfg(template (value) U_CPDCP_CONFIG_REQ p_CPDCP_Config_REQ) runs on UTRAN_PTC { // @sic R5s130195 PDCP sic@ @@ -3736,7 +3765,7 @@ module UTRAN_ConfigurationSteps { * @desc To request to setup PDCP entity. * @param p_CellId * @param p_RB_Id - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_SS_RB_ConfigurePDCP(UTRAN_CellId_Type p_CellId, integer p_RB_Id) runs on UTRAN_PTC @@ -3752,7 +3781,7 @@ module UTRAN_ConfigurationSteps { * @desc To release PDCP radio bearer * @param p_CellId * @param p_RB_Id - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_CPDCP_Rel(UTRAN_CellId_Type p_CellId, integer p_RB_Id) runs on UTRAN_PTC diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonFunctions.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonFunctions.ttcn similarity index 57% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonFunctions.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonFunctions.ttcn index 00d1e2f..9469d0e 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonFunctions.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonFunctions.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 13:36:02 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12152 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ -module UTRAN_CommonFunctions { +module UTRAN_IRAT_CommonFunctions { import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_ASP_Definitions language "ASN.1:2002" all; @@ -28,7 +28,6 @@ module UTRAN_CommonFunctions { import from NAS_24008Templates_IRAT all; import from NAS_CommonTypeDefs all; import from NAS_CommonTemplates all; - import from NAS_AuthenticationCommon all; import from NAS_AuxiliaryDefsAndFunctions all; import from Parameters all; import from CommonDefs all; @@ -37,171 +36,15 @@ module UTRAN_CommonFunctions { import from UTRAN_RRC_Templates_r9 all; import from UTRAN_RRC_Templates_r10 all; import from UTRAN_RRC_Templates_r11 all; + import from UTRAN_RRC_Templates_r12 all; import from TestcaseProperties all; - - //---------------------------------------------------------------------- - // Type definitions - //---------------------------------------------------------------------- - - type record UTRAN_CFN_Info_Type { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - integer frameNumber, - ActivationTime actTime, - TGCFN tGCFN - }; - - //------------------------------------------------------------------------------------------ - // CALCULATE ACTIVATION TIME - //------------------------------------------------------------------------------------------ - /* - * @desc To Calculate an activation time - * @param p_FrameNumber - * @return ActivationTime - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function fl_UTRAN_CalculateActTime(integer p_FrameNumber) return ActivationTime - { - return (256 + p_FrameNumber - (p_FrameNumber mod 8 + 8)) mod 256; - } - - /* - * @desc Calculates the TGCFN - * @param p_FrameNumber - * @param p_TtiValue .. is equal to tti/10 - * @return TGCFN - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_CalculateTGCFN(integer p_FrameNumber, - integer p_TtiValue) return TGCFN - { - return (p_FrameNumber+(256-p_TtiValue)) mod 256; - } - - /* - * @desc To calculate the activation time with the tti value corresponding to the actual SS configuration. - * The tti value passed as parameter to ts_CPHY_ActTime is equal to tti/10 (e.g. tti 40 -> 4) - * Based on 34.108 on SRB tti. - * @param p_CellId - * @return UTRAN_CFN_Info_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_CalculateActTime(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return UTRAN_CFN_Info_Type - { - var RB_ConfigType v_Rb_ConfigType := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var UTRAN_CFN_Info_Type v_CFN_Info; - var PhysicalChannelIdentity v_PhyChId; - var integer v_TtiValue; - - select (v_Rb_ConfigType) { - case (cell_DCH_Speech, - cell_DCH_64kPS_RAB_SRB, - cell_DCH_64kPS_AM_RAB, //@sic R5s140400 sic@ - cell_DCH_StandAloneSRB, - cell_DCH_HS_DSCH, - cell_DCH_E_HS, - cell_DCH_dlSRB_E_HS, - cell_Four_DTCH_PS_CS, //@sic R5s140096 sic@ - cell_DCH_2AM_PS //@sic R5s140400 sic@ - ) { - //An RRC connection is established. Use DCCH on DL DPCH1 - v_PhyChId := tsc_DL_DPCH1; - v_TtiValue := 4; - } - case (cell_DCH_StandAloneSRB_NoConn) { - //No RRC connection is established. Use CCCH configuration - v_PhyChId := tsc_S_CCPCH1; - v_TtiValue := 1; - } - case (cell_E_HS) { - v_PhyChId := tsc_F_DPCH; - v_TtiValue := 4; - } - case (cell_FACH, - cell_FACH_NoConn) { - //Cell-FACH configured - Activation time does not apply and a1tivation time not needed for Cell-FACH - //Create a "dummy" variable to be used when calling the RB SetUp Cmpl function - //@sic R5s110210 sic@ - v_CFN_Info.frameNumber := 0; - v_CFN_Info.actTime := 0; - v_CFN_Info.tGCFN := 0; - return v_CFN_Info; - } - case else { - FatalError(__FILE__, __LINE__, "Configuration not supported"); - } - } - v_CFN_Info.frameNumber := f_UTRAN_CPHY_GetFrameNumber(p_CellId, v_PhyChId); - v_CFN_Info.actTime := fl_UTRAN_CalculateActTime(v_CFN_Info.frameNumber); - v_CFN_Info.tGCFN := f_UTRAN_CalculateTGCFN(v_CFN_Info.frameNumber, v_TtiValue); - return v_CFN_Info; - } - - //------------------------------------------------------------------------------------------ - /* - * @desc Function which sends the cell info for the UTRAN cell to the EUTRA PTC - * @param p_CellId - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_Send_IR_SysInfoToEUTRA(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC - { - var template (value) CoOrd_UTRANSysInfo_Type v_Cell; - var B1_Type v_Diversity := '0'B; - var B1_Type v_Tstd := '0'B; - var FrequencyInfo v_FreqInfo := f_UTRAN_CellInfo_GetFrequencyInfo(p_CellId); - var UTRAN_CellInfo_Type_FDD v_FDDInfo; - var UTRAN_CellInfo_Type_TDD v_TDDInfo; - - if (f_UTRAN_CellInfo_GetFDD_TDD(p_CellId) == UTRAN_FDD) { - v_FDDInfo := f_UTRAN_CellInfo_GetFDDSpecific(p_CellId); - v_Cell := {FDD := cs_CoOrdUTRANSysInfo_FDD(v_FreqInfo.modeSpecificInfo.fdd.uarfcn_DL, - px_FDD_OperationBand, // @sic R5s130268: adding p_Band sic@ - v_FDDInfo.priScrmCode, - v_FDDInfo.uL_ScramblingCode, - f_U_Asn2Nas_PlmnId(f_UTRAN_CellInfo_GetPLMNIdentity(p_CellId)), - f_UTRAN_GetCellIndentity(p_CellId), - oct2bit(f_UTRAN_CellInfo_GetLAC(p_CellId)), - oct2bit(f_UTRAN_CellInfo_GetRAC(p_CellId)))}; - } - else { // TDD - v_TDDInfo := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); - if (v_TDDInfo.transmissionDiversityApplied == applied) { - v_Diversity := '1'B; - } - if (v_TDDInfo.dwPCHInfo.tstd_Indicator == applied) { - v_Tstd := '1'B; - } - v_Cell := { - TDD := cs_CoOrdUTRANSysInfo_TDD(v_FreqInfo.modeSpecificInfo.tdd.uarfcn_Nt, - v_TDDInfo.cellParametersID, - v_Diversity, - v_Tstd, - f_U_Asn2Nas_PlmnId(f_UTRAN_CellInfo_GetPLMNIdentity(p_CellId)), - f_UTRAN_GetCellIndentity(p_CellId), - oct2bit(f_UTRAN_CellInfo_GetLAC(p_CellId)), - oct2bit(f_UTRAN_CellInfo_GetRAC(p_CellId))) - }; - } - f_IRAT_SendCoOrd(EUTRA, cms_IRAT_SysInfo(cs_CoOrdUTRAN_SysInfoSingleCell(v_Cell))); - } - - /* - * @desc Function which sends the Authentication parameters for the UTRAN cell to another PTC - * @param p_Port - * @param p_GUTI - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_SendAuthCoOrdParameters(IRAT_CO_ORD_PORT p_Port, - template (omit) CoOrd_GUTIParam_Type p_GUTI := omit) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - p_Port.send(cms_IRAT_AuthInfo(v_SecurityInfo.authKeys.AuthPS, v_SecurityInfo.authKeys.AuthPS, p_GUTI, v_SecurityInfo.authKeys.CSinOtherRAT)); - } - + import from UTRAN_CommonFunctions all; /* * @desc Configure and Activate (or deactivate) ciphering for all concerned RBs * @param p_CellId * @param p_NewKey * @param p_CN_Domain - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_RRC_Security(UTRAN_CellId_Type p_CellId, boolean p_NewKey, @@ -218,9 +61,9 @@ module UTRAN_CommonFunctions { and the cell configuration causes configuration of ciphering at the SS => in TTCN-3 we set CipherActTime and hand it over to f_UTRAN_CMAC_CipherCfg as well as to fl_UTRAN_StartSecurityUE */ - // @sic R5s120831 sic@ - - v_SecurityInfo.dL_CipherMode := valueof(cs_CipheringModeCmdOn(px_UTRAN_CipheringAlgorithm)); + // @sic R5s120831 sic@ + //Variables initialisation + v_SecurityInfo.dL_CipherMode := valueof(cs_CipheringModeCmdOn(v_SecurityInfo.cipheringAlgorithm)); if (p_CN_Domain == cs_domain) {v_SecurityInfo.cs_cipheringStarted := true;} else {v_SecurityInfo.ps_cipheringStarted := true;} @@ -244,23 +87,12 @@ module UTRAN_CommonFunctions { v_CRLC_RRC_MessageSN_CNF := f_UTRAN_CRLC_RRC_MessageSN_Get(tsc_RB4); v_SN_RB4 := v_CRLC_RRC_MessageSN_CNF.count_I_LSB_DL; - v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectModify_P(v_SN_RB0, v_SN_RB1, v_SN_RB2, v_SN_RB3, v_SN_RB4, uia2)); + v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectModify_P(v_SN_RB0, v_SN_RB1, v_SN_RB2, v_SN_RB3, v_SN_RB4, v_SecurityInfo.integrityProtectionAlgorithm)); v_Int_ModifyFlag := true; - if (px_UTRAN_CipheringAlgorithm == uea2) { // @sic R5s110216 sic@ - v_SecurityInfo.dL_Integrity.integrityProtectionAlgorithm := uia2; - } - else { - v_SecurityInfo.dL_Integrity.integrityProtectionAlgorithm := uia1; - } } else { // Start integrity v_SecurityInfo.integrityStarted := true; - if (px_UTRAN_CipheringAlgorithm == uea2) { - v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, uia2)); - } - else { - v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, uia1)); - } + v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, v_SecurityInfo.integrityProtectionAlgorithm)); v_SecurityInfo.dl_IntegrityCheckInfo := valueof(cs_IntegrityCheckInfo0); v_Int_ModifyFlag := false; } @@ -277,7 +109,7 @@ module UTRAN_CommonFunctions { } f_UTRAN_Security_Set(v_SecurityInfo); // write back information - // DownloadSecurityKey: + // Download Security Keys to SS f_UTRAN_SS_DownloadSecurityKey(p_CellId, p_CN_Domain); // ActivateSecurity_DL_SS: @@ -307,12 +139,12 @@ module UTRAN_CommonFunctions { f_UTRAN_CRLC_ProhibitRLC_Ack(tsc_RB2, cas_CRLC_ProhibitRLC_Ack_REQ(utran_CellDedicated, tsc_RB2)); // lt_StartSecurity_UE: - v_SecurityInfo := fl_UTRAN_StartSecurityUE(p_CellId, + v_SecurityInfo := f_UTRAN_StartSecurityUE(p_CellId, v_CellConfig, v_SecurityInfo, v_RB_ActivationTimeInfoList, p_CN_Domain, - v_CipherActTime); + v_CipherActTime); // @sic R5s150599 no longer an fl_ sic@ f_UTRAN_Security_Set(v_SecurityInfo); f_UTRAN_CRLC_ProhibitRLC_Ack(tsc_RB2, cas_CRLC_ContinueRLC_Ack_REQ(utran_CellDedicated, tsc_RB2)); @@ -320,198 +152,18 @@ module UTRAN_CommonFunctions { if (((v_SecurityInfo.ps_cipheringStarted) and (v_SecurityInfo.recentSecureDomain == ps_domain)) or ((v_SecurityInfo.cs_cipheringStarted) and (v_SecurityInfo.recentSecureDomain == cs_domain))) { f_UTRAN_CRLC_ResumeSecurity(p_CellId); + //UnBlock reception of UL PDUs on Dc port - similar as SS resumes of UL RLC PDU in CRLC_Resume_REQ + //@sic R5s150532 sic@ + f_UTRAN_Default_BlockDc(false); } } - /* - * @desc To download a new START value In the security Record - * @param p_Domain - * @param p_StartValue - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_SS_SecurityDownloadStart(CN_DomainIdentity p_Domain, - START_Value p_StartValue) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - - if (p_Domain == cs_domain) { - v_SecurityInfo.start_CS := p_StartValue; - } else if (p_Domain == ps_domain) { - v_SecurityInfo.start_PS := p_StartValue; - } - f_UTRAN_Security_Set(v_SecurityInfo); - } - - /* - * @desc To download all security keys to CMAC (for DCH cell configurations only) and U_CRLC. - * @param p_CellId - * @param p_Domain - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_SS_DownloadSecurityKey(UTRAN_CellId_Type p_CellId, - CN_DomainIdentity p_Domain) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var B20_Type v_HFN := v_SecurityInfo.authKeys.HFN; - var KeyCiphering v_KC; - var IntegrityKey v_IK; - // var GSM_CipheringKey v_GSM_ck := v_SecurityInfo.authKeys.AuthKcGSM; - - if (p_Domain == cs_domain) { - v_KC := v_SecurityInfo.authKeys.AuthCS.CKey; - v_IK := v_SecurityInfo.authKeys.AuthCS.IKey; - v_HFN := v_SecurityInfo.start_CS; // @sic R5s110788 sic@ - } - else { - v_KC := v_SecurityInfo.authKeys.AuthPS.CK; - v_IK := v_SecurityInfo.authKeys.AuthPS.IK; - v_HFN := v_SecurityInfo.start_PS; // @sic R5s110788 sic@ - } - - select (v_CellConfig) { - case (cell_FACH_NoConn, cell_FACH, cell_FACH_NoDedicated) { - // Cell FACH - f_UTRAN_CRLC_SecurityMode_Config(p_Domain, v_HFN, v_KC, v_IK); - } - case (cell_DCH_StandAloneSRB_NoConn, - cell_DCH_StandAloneSRB, - cell_DCH_64kPS_RAB_SRB, - cell_DCH_64kPS_AM_RAB, //@sic R5s140400 sic@ - cell_DCH_HS_DSCH, // @sic R5s110683 sic@ - cell_DCH_E_HS, - cell_E_HS, - cell_DCH_dlSRB_E_HS) { - // Cell DCH; no TM RAB - f_UTRAN_CRLC_SecurityMode_Config(p_Domain, v_HFN, v_KC, v_IK); - } - case (cell_DCH_Speech, cell_Four_DTCH_PS_CS) { //@sic R5s140096 sic@ - // cell DCH with TM RAB - f_UTRAN_CRLC_SecurityMode_Config(p_Domain, v_HFN, v_KC, v_IK); - f_UTRAN_CMAC_SecurityMode_Config(p_Domain, v_HFN, v_KC); - } - } - } - - /* - * @desc Send SecurityModeCommand and receive SecurityModeComplete and configure SS according to UE configuration - * @param p_CellId - * @param p_CellConfig - * @param p_SecurityInfo - * @param p_RB_ActivationTimeInfoList - * @param p_CN_Domain - * @param p_CipherActTime - * @param p_IntegrityOnly (default value: false) - only set to true after HO when only integrity needs to be configured - * @return UTRAN_SecurityInfo_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function fl_UTRAN_StartSecurityUE(UTRAN_CellId_Type p_CellId, - RB_ConfigType p_CellConfig, - UTRAN_SecurityInfo_Type p_SecurityInfo, - template (value) RB_ActivationTimeInfoList p_RB_ActivationTimeInfoList, - CN_DomainIdentity p_CN_Domain, - ActivationTime p_CipherActTime, - boolean p_IntegrityOnly := false) runs on UTRAN_PTC return UTRAN_SecurityInfo_Type - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := p_SecurityInfo; - var IntegrityProtActivationInfo v_IntegrityActInfo; - var bitstring v_UE_SystemSpecificCap := int2bit(f_InitSystemSpecificCap(),7); - var U_RLC_AM_IND v_RLC_AM_DATA_IND; - var template (omit) ActivationTime v_CipherActTime; - var template (omit) InterRAT_UE_SecurityCapList v_UE_SysSpecCap; - var template (omit) CipheringModeInfo_r7 v_CipheringModeInfo; - - // ********** Send SecurityModeCommand: - if (pc_GERAN) { - v_UE_SysSpecCap := cs_UE_SysSpecCap(v_UE_SystemSpecificCap); - } - else { // NOT pc_GERAN - v_UE_SysSpecCap := omit; - } - - if (((p_CellConfig == cell_DCH_Speech)) and (v_SecurityInfo.recentSecureDomain == cs_domain)) { - // Ciphering on TM RAB present, hence include Ciphering activation time - // Ciphering for signalling RBs 1 to 4 - v_CipherActTime := p_CipherActTime; - } else { - // Ciphering for signalling RBs 1 to 4 - v_CipherActTime := omit; - } - - if (p_IntegrityOnly == true) { // @sic R5s110382 sic@ - v_CipheringModeInfo := omit; - } - else { - v_CipheringModeInfo := cs_CipheringModeInfo_r7(v_SecurityInfo.dL_CipherMode, - p_RB_ActivationTimeInfoList, - v_CipherActTime); - } - - U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_108_RRC_SecModeCmd(v_SecurityInfo.dl_IntegrityCheckInfo, - cs_RRC_SecModeCmd(tsc_RRC_TI, - v_SecurityInfo.cipheringAlgorithmCapability, - v_SecurityInfo.integrProtAlgCap, - v_CipheringModeInfo, - v_SecurityInfo.dL_Integrity, - p_CN_Domain, - v_UE_SysSpecCap)))); - // ********** Receive SecurityModeComplete: - alt { - [p_IntegrityOnly] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, // @sic R5s110382 sic@ - tsc_RB2, - cr_108_RRC_SecModeCmpl(tsc_RRC_TI, omit))) -> value v_RLC_AM_DATA_IND { } - [not p_IntegrityOnly] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_108_RRC_SecModeCmpl(tsc_RRC_TI, ?))) -> value v_RLC_AM_DATA_IND { } - [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, - tsc_RB2, - cr_108_SecModeFail(tsc_RRC_TI, ?))) { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Security Failed"); - } - } - - if (not p_IntegrityOnly) { // UL ciphering information is present - v_SecurityInfo.uL_CipherMode := v_RLC_AM_DATA_IND.data.aM_message.uL_DCCH_Message.message_.securityModeComplete.rb_UL_CiphActivationTimeInfo; - // @sic R5s130558 sic@ - f_UTRAN_ActivateCiphering_RLC_UL(f_UTRAN_CellInfo_GetFDD_TDD(p_CellId), v_SecurityInfo.recentSecureDomain, v_SecurityInfo.uL_CipherMode); - } - // integrity: - v_SecurityInfo.uL_Integrity := v_RLC_AM_DATA_IND.data.aM_message.uL_DCCH_Message.message_.securityModeComplete.ul_IntegProtActivationInfo; - v_IntegrityActInfo := v_SecurityInfo.uL_Integrity; - - f_UTRAN_CRLC_IntegrityActivate(cas_CRLC_UL_IntegrityActivateReq(utran_CellDedicated, - v_SecurityInfo.recentSecureDomain, - cs_RestRB_IntegrityProtActivationInfoList(v_IntegrityActInfo.rrc_MessageSequenceNumberList[0], - v_IntegrityActInfo.rrc_MessageSequenceNumberList[1], - v_IntegrityActInfo.rrc_MessageSequenceNumberList[3], - v_IntegrityActInfo.rrc_MessageSequenceNumberList[4]))); - return v_SecurityInfo; - } - - /* - * @desc If UE supports GSM, this step initialises tcv_UE_SystemSpecificCap based on PICS - * @return integer - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_InitSystemSpecificCap() return integer - { - var integer v_UE_SystemSpecificCap := 0; - - if (pc_GERAN) { - v_UE_SystemSpecificCap := v_UE_SystemSpecificCap + 1; //A5_1 always supported - v_UE_SystemSpecificCap := v_UE_SystemSpecificCap + 4; // A5_3 always Supported - } - return v_UE_SystemSpecificCap; - } - /* * @desc Send Attach Accept and receive Attach Complete * @param p_CellId * @param p_AttachType * @param p_EPLMN (default value: omit) - * @status APPROVED (LTE_IRAT, POS) + * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_AttachAccept(UTRAN_CellId_Type p_CellId, B3_Type p_AttachType, @@ -546,7 +198,7 @@ module UTRAN_CommonFunctions { /* * @desc Complete GMM_IdleUpdated handling NMO I and II, Operation Mode A and Automatic Switch On * @param p_CellId - * @status APPROVED (LTE_IRAT, POS) + * @status APPROVED (LTE_A, LTE_IRAT, POS) */ function f_UTRAN_GMMOnly_Attach(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -561,10 +213,7 @@ module UTRAN_CommonFunctions { v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); // Updated in RRC Conn Est alt { - [] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_AttachReq(cr_AttachType(?, (tsc_I_AttachTypeGPRSAtt, tsc_I_AttachTypeCombined)), - cr_MobileIdAny(omit), - cr_RAI(omit), - ?))) + [] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_AttachReq(cr_AttachType(?, (tsc_I_AttachTypeGPRSAtt, tsc_I_AttachTypeCombined))))) -> value v_RRC_DataInd { v_START_Value_ps := v_RRC_DataInd.ttcn_start; f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_START_Value_ps); @@ -575,10 +224,7 @@ module UTRAN_CommonFunctions { f_UTRAN_SS_SecurityDownloadStart(cs_domain, v_START_Value_cs); if ((v_NMO == tsc_NMO_II) and pc_AutomaticAttachSwitchON) { // need to wait for Attach Req before finishing LAU - U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_AttachReq(cr_AttachType(?, (tsc_I_AttachTypeGPRSAtt, tsc_I_AttachTypeCombined)), - cr_MobileIdAny(omit), - cr_RAI(omit), - ?))) + U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_AttachReq(cr_AttachType(?, (tsc_I_AttachTypeGPRSAtt, tsc_I_AttachTypeCombined))))) -> value v_RRC_DataInd; v_START_Value_ps := v_RRC_DataInd.ttcn_start; f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_START_Value_ps); @@ -599,10 +245,7 @@ module UTRAN_CommonFunctions { f_UT_TriggerAttach(UT); f_UTRAN_RRC_ConnEst(p_CellId); // Establish RRC connection - U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_AttachReq(cr_AttachType(?, (tsc_I_AttachTypeGPRSAtt, tsc_I_AttachTypeCombined)), - cr_MobileIdAny(omit), - cr_RAI(omit), - ?))) + U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_AttachReq(cr_AttachType(?, (tsc_I_AttachTypeGPRSAtt, tsc_I_AttachTypeCombined))))) -> value v_RRC_DataInd; v_START_Value_ps := v_RRC_DataInd.ttcn_start; f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_START_Value_ps); @@ -632,7 +275,7 @@ module UTRAN_CommonFunctions { * @param p_CellId * @param p_InitialUE_Id * @return template (value) DL_CCCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Get_cs_108_RRC_ConnSetupFACH(UTRAN_CellId_Type p_CellId, template (value) InitialUE_Identity p_InitialUE_Id) @@ -657,6 +300,9 @@ module UTRAN_CommonFunctions { case (FDDr11) { v_RRC_ConnSetupFACH := cs_108_RRC_ConnSetupFACH_FDD_r11(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_C_RNTI); } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + v_RRC_ConnSetupFACH := cs_108_RRC_ConnSetupFACH_FDD_r12(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_C_RNTI); + } case (TDDr9) { v_RRC_ConnSetupFACH := cs_108_RRC_ConnSetupFACH_r9_TDD(p_InitialUE_Id, tsc_RRC_TI, v_U_RNTI, v_C_RNTI); } @@ -666,6 +312,9 @@ module UTRAN_CommonFunctions { case (TDDr11) { v_RRC_ConnSetupFACH := cs_108_RRC_ConnSetupFACH_TDD_r11(p_InitialUE_Id, tsc_RRC_TI, v_U_RNTI, v_C_RNTI); } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + v_RRC_ConnSetupFACH := cs_108_RRC_ConnSetupFACH_TDD_r12(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_C_RNTI); + } case else { FatalError(__FILE__, __LINE__, ""); } @@ -678,7 +327,7 @@ module UTRAN_CommonFunctions { * @param p_CellId * @param p_InitialUE_Id * @return template (value) DL_CCCH_Message - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_Get_cs_108_RRC_ConnSetupDCH(UTRAN_CellId_Type p_CellId, template (value) InitialUE_Identity p_InitialUE_Id) @@ -708,17 +357,26 @@ module UTRAN_CommonFunctions { v_CellInfoFDD := f_UTRAN_CellInfo_GetFDDSpecific(p_CellId); // @sic R5s120719 sic@ v_RRC_ConnSetupDCH := cs_108_RRC_ConnSetupDCH_r11_FDD(p_InitialUE_Id, v_RRC_TI, v_CellInfoFDD.priScrmCode, v_U_RNTI, v_CellInfoFDD.uL_ScramblingCode); } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + v_CellInfoFDD := f_UTRAN_CellInfo_GetFDDSpecific(p_CellId); // @sic R5s120719 sic@ + v_RRC_ConnSetupDCH := cs_108_RRC_ConnSetupDCH_r12_FDD(p_InitialUE_Id, v_RRC_TI, v_CellInfoFDD.priScrmCode, v_U_RNTI, v_CellInfoFDD.uL_ScramblingCode); + } case (TDDr9) { v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ v_RRC_ConnSetupDCH := cs_108_RRC_ConnSetupDCH_r9_TDD(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_CellInfoTDD.cellParametersID); } case (TDDr10) { - v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ + v_RRC_ConnSetupDCH := cs_108_RRC_ConnSetupDCH_r10_TDD(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_CellInfoTDD.cellParametersID); } case (TDDr11){ + v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ v_RRC_ConnSetupDCH := cs_108_RRC_ConnSetupDCH_r11_TDD(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_CellInfoTDD.cellParametersID); } + case (TDDr12){ /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ + v_CellInfoTDD := f_UTRAN_CellInfo_GetTDDSpecific(p_CellId); // @sic R5s120719 sic@ + v_RRC_ConnSetupDCH := cs_108_RRC_ConnSetupDCH_r12_TDD(p_InitialUE_Id, v_RRC_TI, v_U_RNTI, v_CellInfoTDD.cellParametersID); + } case else { FatalError(__FILE__, __LINE__, ""); } @@ -732,7 +390,7 @@ module UTRAN_CommonFunctions { * @param p_InitialUE_Id * @param p_LogResultsAvail_ANR * @param p_HandleRRCConnSetupComplete (default = true, set to false if called f_UTRAN_SS_SetConfigRRC_RB3) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_RRC_ConnEst_WithoutRRCConnectionReq(UTRAN_CellId_Type p_CellId, template (value) InitialUE_Identity p_InitialUE_Id, @@ -764,46 +422,6 @@ module UTRAN_CommonFunctions { } } - /* - * @desc To check the release indicator reported by UE in RRC CONNECTION REQUESt against the test casse release. - * @param p_ReleaseIndicator_UE - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_CheckReleaseIndicator(AccessStratumReleaseIndicator p_ReleaseIndicator_UE) runs on UTRAN_PTC - { // @sic R5-123750 sic@ - - select (f_UTRAN_ConfigurationInfo_TestCaseRelease_Get()) { // @sic R5s130195 Utran Release sic@ - case (FDDr7, TDDr7) { - if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6))) { - FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); - } - } - case (FDDr8) { - if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7))) { - FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); - } - } - case (FDDr9, TDDr9) { - if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8))) { - FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); - } - } - case (FDDr10, TDDr10) { // @sic R5s130195 Utran Release sic@ - if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8, rel_9))) { - FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); - } - } - case (FDDr11, TDDr11) { - if (not match(p_ReleaseIndicator_UE, complement(rel_4, rel_5, rel_6, rel_7, rel_8, rel_9, rel_10))) { - FatalError(__FILE__, __LINE__, "Wrong Access Stratum release indicator"); - } - } - case else { - FatalError(__FILE__, __LINE__, ""); - } - } - } - /* * @desc The generic Step to establish RRC Connection and bring UE to CELL_FACH or CELL_DCH state. * In this Step, 5 Signalling Radio Bearers with 3.4kbps DL & UL is setup (RB#0, 1, 2, 3,4). @@ -811,7 +429,7 @@ module UTRAN_CommonFunctions { * @param p_EstCause (default value: ?) * @param p_LogResultsAvail_ANR * @param p_HandleRRCConnSetupComplete (default = true, set to false if called f_UTRAN_SS_SetConfigRRC_RB3) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_RRC_ConnEst(UTRAN_CellId_Type p_CellId, template (present) EstablishmentCause p_EstCause := ?, @@ -821,52 +439,26 @@ module UTRAN_CommonFunctions { { // This function assumes that DCH is already configured and is ready for an RRC connection to be established var InitialUE_Identity v_InitialUE_Id; - var RLC_TR_DATA_IND v_RLC_TR_DATA_IND; + var U_RLC_TM_IND v_RLC_TR_DATA_IND; //@sic R5-150124 sic@ alt { [] U_TM.receive(car_RRC_ConnReq(p_CellId, tsc_RB0, cr_108_RRC_ConnReq_r8(p_EstCause))) -> value v_RLC_TR_DATA_IND { - v_InitialUE_Id := v_RLC_TR_DATA_IND.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.initialUE_Identity; - f_UTRAN_CheckReleaseIndicator(v_RLC_TR_DATA_IND.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.v3d0NonCriticalExtensions.v4b0NonCriticalExtensions.rrcConnectionRequest_v4b0ext.accessStratumReleaseIndicator); - f_UTRAN_MobileInfo_UE_Release_Set(v_RLC_TR_DATA_IND.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.v3d0NonCriticalExtensions.v4b0NonCriticalExtensions.rrcConnectionRequest_v4b0ext.accessStratumReleaseIndicator); + v_InitialUE_Id := v_RLC_TR_DATA_IND.data.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.initialUE_Identity; + f_UTRAN_CheckReleaseIndicator(v_RLC_TR_DATA_IND.data.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.v3d0NonCriticalExtensions.v4b0NonCriticalExtensions.rrcConnectionRequest_v4b0ext.accessStratumReleaseIndicator); + f_UTRAN_MobileInfo_UE_Release_Set(v_RLC_TR_DATA_IND.data.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.v3d0NonCriticalExtensions.v4b0NonCriticalExtensions.rrcConnectionRequest_v4b0ext.accessStratumReleaseIndicator); } } f_UTRAN_RRC_ConnEst_WithoutRRCConnectionReq(p_CellId, v_InitialUE_Id, p_LogResultsAvail_ANR, p_HandleRRCConnSetupComplete); } - /* - * @desc To assign the Start values in the security info - * @param p_STARTList - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_SetSecurityInfo_StartValue(STARTList p_STARTList) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var integer v_DomainCnt; - var integer I; - - v_DomainCnt := lengthof(p_STARTList); - if ((v_DomainCnt > 0) and (v_DomainCnt <= 2)) { - for (I:=0; I value v_RRC_DataInd - { - v_AuthAndCipherResp := v_RRC_DataInd.msg.authenticationAndCipheringResponse; - v_AuthRES_High := v_AuthAndCipherResp.authRsp.rES; - v_AuthRES := v_AuthRES_High & v_AuthAndCipherResp.authRspExt.rES; - // Verify that the received Authentication Response parameters match expected response: - if (v_AuthRES != substr(v_Auth_Params.XRES, 0, lengthof(v_AuthRES))) { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication Failed"); - } - } - // AUTHENTICATION AND CIPHERING RESPONSE including only one Authentication Response paramters (RES): - [] U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_AuthAndCiphRsp(cr_AuthRspAny, - omit))) - -> value v_RRC_DataInd - { - v_AuthAndCipherResp := v_RRC_DataInd.msg.authenticationAndCipheringResponse; - v_AuthRES_High := v_AuthAndCipherResp.authRsp.rES; - // Verify that the received Authentication Response parameters match expected response: - if (v_AuthRES_High != substr(v_Auth_Params.XRES, 0, lengthof(v_AuthRES_High))) { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication Failed"); - } - } - // AUTHENTICATION AND CIPHERING Failure, then stop execution by assigning INCONCLUSIVE verdict as this might be a USIM issue. - [] U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_AuthAndCiphFailureAny)) { - FatalError(__FILE__, __LINE__, "received AUTHENTICATION_AND_CIPHERING_FAILURE"); - } - } - f_UTRAN_Security_Set(v_SecurityInfo); - } - - /* @desc Function used to perform MM Authentication in UTRAN - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_MM_Authentication() runs on UTRAN_PTC - { - var RRC_DATA_IND v_RRC_DataInd; - var AuthRsp v_AuthRsp; - var AuthRspExt v_AuthRspExt; - var bitstring v_AuthRES; - var B32_Type v_AuthRES_High; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var Common_AuthenticationParams_Type v_CommonAuthParams := f_AuthenticationInit(v_SecurityInfo.authKeys.AuthPS); - - // @sic R5s110318 sic@ - v_SecurityInfo.authKeys.AuthCS.CKey := v_CommonAuthParams.CK; - v_SecurityInfo.authKeys.AuthCS.IKey := v_CommonAuthParams.IK; - v_SecurityInfo.authKeys.AuthCS.CKeySeq := v_CommonAuthParams.KeySeq; - f_UTRAN_Security_Set(v_SecurityInfo); - - U_Dc.send(cas_DataReq_CS(utran_CellDedicated, - tsc_RB3, - cs_U_AuthReq(v_SecurityInfo.authKeys.AuthCS.CKeySeq, - v_CommonAuthParams.RandValue, - cs_GSM_AUTN(v_CommonAuthParams.AUTN)))); - - alt { - //Receive Authentication Response with extension - [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_AuthRspAnyExt)) -> value v_RRC_DataInd - { - v_AuthRsp := v_RRC_DataInd.msg.authenticationResponse.authRsp; - v_AuthRspExt := v_RRC_DataInd.msg.authenticationResponse.authRspExt; - - //First 32 bits of XRES correspond to AuthRsp and remaining bits correspond to AuthRspExt. - //So instead of checking the AuthRsp and AuthRspExt separately,the 2 strings are concatenated and compared against XRES. - v_AuthRES_High := v_AuthRsp.rES; - v_AuthRES := v_AuthRES_High & v_AuthRspExt.rES; - - //Bitwaise XOR of XRES and v_AuthRES should result in all zeroes which implies that the 2 bitstrings should match exactly. - if (v_AuthRES != substr(v_CommonAuthParams.XRES, 0, lengthof(v_AuthRES))) { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Received incorrect authentication parameters"); - } - } - - //Receive Authentication Response without extension - [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_AuthRspAnyNoExt)) -> value v_RRC_DataInd - { - v_AuthRsp := v_RRC_DataInd.msg.authenticationResponse.authRsp; - v_AuthRES_High := v_AuthRsp.rES; - - //Bitwise XOR of XRES and v_AuthRES should result in all zeroes which implies that the 2 bitstrings should match exactly. - if (v_AuthRES_High != substr(v_CommonAuthParams.XRES, 0, lengthof(v_AuthRES_High))) { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Received incorrect authentication parameters"); - } - } - - [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_AuthFailAny)) - { - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Authentication failure received"); - } - } - } - - /* - * @desc To be called after UTRA_Init, before the test case body for every test that doesn't start in UTRAN. - * This will wait until Preamble is finished on EUTRA and it has received the AuthParams - * These are then stored in SecurityInfo - * This will send the parameters to the EUTRA PTC - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_InterRAT_InitialiseAuthParams() runs on UTRAN_PTC - { - f_UTRAN_InterRAT_InitialiseAuthParams_Common(EUTRA); - } - - /* - * @desc To be called after UTRA_Init, before the test case body for every test that doesn't start in UTRAN. - * This will wait until Preamble is finished on EUTRA and it has received the AuthParams - * These are then stored in SecurityInfo - * @param p_Port - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_InterRAT_InitialiseAuthParams_Common(IRAT_CO_ORD_PORT p_Port) runs on UTRAN_PTC - { - var IRAT_Coordination_MSG v_RxdMsg; - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var bitstring v_CipheringAlgCap := '0000000000000001'B; // default support - var bitstring v_IntAlgCap := '0000000000000010'B; // default support - - p_Port.receive(cmr_IRAT_AuthInfo) -> value v_RxdMsg; // @sic R5s120568 sic@ - - v_SecurityInfo.authKeys.AuthPS := v_RxdMsg.Authentication.AuthPS; - if (isvalue(v_RxdMsg.Authentication.StartPS)) { // @sic R5-120764 sic@ - v_SecurityInfo.start_PS := v_RxdMsg.Authentication.StartPS; - } - if (isvalue(v_RxdMsg.Authentication.StartCS)) { // @sic R5-120764 sic@ - v_SecurityInfo.start_CS := v_RxdMsg.Authentication.StartCS; - } - //@sic R5-120637 enhancements for SRVCC sic@ - if (isvalue(v_RxdMsg.Authentication.AuthCS)) { - v_SecurityInfo.authKeys.AuthCS.CKey := v_RxdMsg.Authentication.AuthCS.CK; - v_SecurityInfo.authKeys.AuthCS.IKey := v_RxdMsg.Authentication.AuthCS.IK; - v_SecurityInfo.authKeys.AuthCS.CKeySeq:= v_RxdMsg.Authentication.AuthCS.KeySeq; - } - - if (isvalue (v_RxdMsg.Authentication.UEACap)) { // @sic R5s130506 sic@ - v_CipheringAlgCap[13] := v_RxdMsg.Authentication.UEACap.Uea2; - v_CipheringAlgCap[14] := v_RxdMsg.Authentication.UEACap.Uea1; - // Now update the stored values - v_SecurityInfo.cipheringAlgorithmCapability := v_CipheringAlgCap; - } - - if (isvalue (v_RxdMsg.Authentication.UIACap)) { // @sic R5s130680, R5s130851 sic@ - v_IntAlgCap[13] := v_RxdMsg.Authentication.UIACap.Uia2; - v_IntAlgCap[14] := v_RxdMsg.Authentication.UIACap.Uia1; - // Now update the stored values - v_SecurityInfo.integrProtAlgCap := v_IntAlgCap; - } - - f_UTRAN_Security_Set(v_SecurityInfo); - } - /* * @desc This procedure expects both an RAU and a LAU (i.e. when in NMO2) * @param p_CellId * @param p_NoSecurityAfterHO (default value: false) - only set to true in HO test cases @sic R5s110382 sic@ - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_Interleaved_RauLau(UTRAN_CellId_Type p_CellId, boolean p_NoSecurityAfterHO := false) runs on UTRAN_PTC @@ -1246,10 +650,7 @@ module UTRAN_CommonFunctions { //Step 1c1: Receive Routing Area Update Request message with update type 'RA Update' [] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, v_UpdateType_Ra), - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DataInd_RAU {} //FFS - Could KeySeq be derived from Security/Cell info? + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, v_UpdateType_Ra)))) -> value v_RRC_DataInd_RAU {} //Step 1c6: Wait for Location Updating Request message [] U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, tsc_RB3, @@ -1303,7 +704,7 @@ module UTRAN_CommonFunctions { * This procedure is according to 36.523-3 cl. 10.1.4 PS Routing Area Update procedure * @param p_CellId * @param p_AttachType - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_PS_RAU_HO(UTRAN_CellId_Type p_CellId, UTRAN_GERAN_ATTACH_Type p_AttachType) runs on UTRAN_PTC @@ -1324,32 +725,12 @@ module UTRAN_CommonFunctions { } } - /* - * @desc Disconnects an active CC call. To bring UE from UTRA CS call (U5) state to UTRA connected (U2) state. - * This procedure is according to 36.523-3 cl. 10.1.3 (CC disconnect procedure) - * @param p_CellId - * @param p_TI_S (default : cs_TI_MO) @sic R5s110547, R5s110580 sic@ - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) - */ - function f_UTRAN_CC_Disconnect(UTRAN_CellId_Type p_CellId, //Currently not needed but kept for any future extension - template (value) TI p_TI_S:= cs_TI_MO) runs on UTRAN_PTC - { // @sic R5s140611 sic@ - // Step 1: Transmit Downlink Direct Transfer with a Disconnect message - U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_Disconnect(p_TI_S))); // @sic R5s110547 sic@ - - // Step 2: Receive Uplink Direct Transfer with a Release message - U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_Rel(cr_TI_Any))); - - // Step 3: Transmit Downlink Direct Transfer with a Release Complete message - U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_RelCmpl(p_TI_S))); // @sic R5s110547 sic@ - } - /* * @desc Function to set the postamble conditions based on the UTRA CS/PS domain support * and the LTE UE Attach type. According to 36.523-3 Table 10.1-1 * @param p_AttachType * @return UTRA_POSTAMBLE_CONDITIONS - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRA_SetPostambleCondition(UTRAN_GERAN_ATTACH_Type p_AttachType) return UTRA_POSTAMBLE_CONDITIONS { @@ -1377,7 +758,7 @@ module UTRAN_CommonFunctions { * and returns a boolean (TRUE is attach is combined, false if attach is PS only) * @param p_AttachType If the prose doesn't state that the UE is configured for a specific state, then set to NotSpecified * @return boolean - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_AttachTypeCheck(UTRAN_GERAN_ATTACH_Type p_AttachType) return boolean { @@ -1412,7 +793,7 @@ module UTRAN_CommonFunctions { * This function is according to 36.508 cl. 6.4.2.8 Test procedure to check that UE is camped on a new UTRAN cell (steps 4-10) * @param p_CellId * @param p_NoSecurityAfterHO (default value: false) - only set to true in HO test cases @sic R5s110382 sic@ - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_GMM_RAU_MappedContext(UTRAN_CellId_Type p_CellId, boolean p_NoSecurityAfterHO := false) runs on UTRAN_PTC @@ -1430,7 +811,7 @@ module UTRAN_CommonFunctions { * @param p_DoAuth (default value: true) * @param p_NoSecurityAfterHO (default value: false) - only set to true in HO test cases * @param p_FOP (default value: '1'B) - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_GMM_RAU_Without_RAUReq(UTRAN_CellId_Type p_CellId, START_Value p_START_Value, @@ -1486,7 +867,7 @@ module UTRAN_CommonFunctions { * @param p_CellId * @param p_DoAuth (default value: true) * @param p_NoSecurityAfterHO (default value: false) - only set to true in HO test cases - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_UTRAN_GMM_RAU(UTRAN_CellId_Type p_CellId, boolean p_DoAuth := true, @@ -1497,10 +878,7 @@ module UTRAN_CommonFunctions { var RRC_DATA_IND v_RRC_DataInd; var PDP_ContextStatus v_PDP_ContextStatus; var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var template (present) RRCDataIndType v_RAU := cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5s120776 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?); + var template (present) RRCDataIndType v_RAU := cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))); // @sic R5s120776 sic@ alt { [] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, @@ -1513,6 +891,9 @@ module UTRAN_CommonFunctions { -> value v_RRC_DataInd {} } + v_SecurityInfo.authKeys.AuthPS.KeySeq := v_RRC_DataInd.msg.routingAreaUpdateRequest.gprsCiphKeySeqNo.keySeq; // @sic R5s140858 sic@ + f_UTRAN_Security_Set(v_SecurityInfo); // @sic R5s140858 sic@ + if (p_DoAuth) { // @sic R5s120141 sic@ v_START_Value := '00000000000000000000'B; } else if (ispresent(v_RRC_DataInd.ttcn_start)) { @@ -1532,7 +913,7 @@ module UTRAN_CommonFunctions { * @desc To release RRC connection to be used in cases where the UE has been switched off * @param p_CellId * @param p_RRC_RelStatus - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_RRC_ConnRel_AfterSwitchOff(UTRAN_CellId_Type p_CellId, RRC_Rel_Status p_RRC_RelStatus) runs on UTRAN_PTC @@ -1594,7 +975,7 @@ module UTRAN_CommonFunctions { * @param p_CellId * @param p_DoAuth (default value: false) * @param p_LocAcceptType (default value: TMSI) - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_LocationUpdate(UTRAN_CellId_Type p_CellId, boolean p_DoAuth := false, @@ -1609,8 +990,6 @@ module UTRAN_CommonFunctions { f_UTRAN_LocationUpdate_WithoutLAUReq(p_CellId, v_START_Value, p_DoAuth, p_LocAcceptType); } - type enumerated LOCATION_UPDATE_ACCEPT_TYPE {TMSI, IMSI, NONE}; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - /* * @desc Perform the Location Updating procedure including activation of Security, after the LAU * @param p_CellId @@ -1618,7 +997,7 @@ module UTRAN_CommonFunctions { * @param p_DoAuth (default value: false) * @param p_LocAcceptType (default value: TMSI) @sic R5-112706 sic@ * @param p_EPLMN (default value: omit) - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_LocationUpdate_WithoutLAUReq(UTRAN_CellId_Type p_CellId, START_Value p_START_Value := '00000000000000000000'B, @@ -1675,7 +1054,7 @@ module UTRAN_CommonFunctions { float p_Wait, charstring p_StepNo) runs on UTRAN_PTC { - var RLC_TR_DATA_IND v_RLC_TR_DATA_IND; + var U_RLC_TM_IND v_RLC_TR_DATA_IND; //@sic R5-150124 sic@ timer t_Wait := f_UG_SetTimerToleranceMin(p_Wait); @@ -1693,85 +1072,6 @@ module UTRAN_CommonFunctions { } // f_UTRAN_CheckNoAttachOnCell - /* - * @desc Check that during p_TimerVal, no RRC-Data-Ind is received - * @param p_TimerVal - * @param p_LogMsg (default value: "") - * @status APPROVED (UTRAN) - */ - function f_UTRAN_CheckNoDataInd(float p_TimerVal, - charstring p_LogMsg := "") runs on UTRAN_PTC - { - timer t_Timer := p_TimerVal; - - t_Timer.start; - - alt { - [] t_Timer.timeout { - f_UTRAN_PreliminaryPass(__FILE__, __LINE__, p_LogMsg); - } - [] U_Dc.receive(cr_RRC_DATA_IND_Any) { - t_Timer.stop; - f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, p_LogMsg); - } - } - } - - /* - * @desc Function to configure ciphering for configured RBs in cell p_CellId before HO to UTRAN. @sic R5s110216 sic@ - * @param p_CellId - * @status APPROVED (LTE_IRAT) - */ - function f_UTRAN_ConfigureCipheringBeforeHO(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC - { - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var template (value) RB_ActivationTimeInfoList v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs(0, 0, 0, 0); - var RLC_SequenceNumber v_RLC_SN_RB1, v_RLC_SN_RB2, v_RLC_SN_RB3, v_RLC_SN_RB4, v_RLC_SN_RAB; - //@sic R5s131013 sic@ - /* if (v_SecurityInfo.start_PS == '11111111111111111111'B) { - FatalError(__FILE__, __LINE__, "invalid PS Start Value"); - } */ - f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_SecurityInfo.start_PS); - - v_SecurityInfo.dL_CipherMode := valueof(cs_CipheringModeCmdOn(px_UTRAN_CipheringAlgorithm)); - v_SecurityInfo.ps_cipheringStarted := true; - v_SecurityInfo.recentSecureDomain := ps_domain; - - f_UTRAN_Security_Set(v_SecurityInfo); - f_UTRAN_SS_DownloadSecurityKey(p_CellId, ps_domain); - - v_RLC_SN_RB1 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB1); - v_RLC_SN_RB2 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB2); - v_RLC_SN_RB3 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB3); - v_RLC_SN_RB4 := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB4); - - // @sic R5s130558 sic@ - f_UTRAN_ActivateCiphering_RLC_DL_SS_RB_1_2_3_4(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_RLC_SN_RB1, v_RLC_SN_RB2, v_RLC_SN_RB3, v_RLC_SN_RB4); - - if (v_SecurityInfo.recentSecureDomain == ps_domain) { - select (v_CellConfig) { - case (cell_DCH_64kPS_RAB_SRB, cell_Four_DTCH_PS_CS) { - v_RLC_SN_RAB := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB20); - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs_20(0, 0, 0, 0, v_RLC_SN_RAB); - f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_CellConfig, false); //@sic R5s120113 sic@ - } - case (cell_DCH_64kPS_AM_RAB) { //@sic R5s140400 sic@ - v_RLC_SN_RAB := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB20); - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs_22(0, 0, 0, 0, v_RLC_SN_RAB); - f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_CellConfig, false); //@sic R5s120113 sic@ - } - case (cell_DCH_E_HS, cell_E_HS, cell_DCH_HS_DSCH, cell_DCH_dlSRB_E_HS) { // @sic R5s110788 sic@ - v_RLC_SN_RAB := f_UTRAN_CRLC_SequenceNumber_GetCount_C_LSB_DL(tsc_RB25); - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs_25(0, 0, 0, 0, v_RLC_SN_RAB); - f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, v_SecurityInfo.recentSecureDomain, v_SecurityInfo.dL_CipherMode, v_CellConfig, false); //@sic R5s120113 sic@ - } - } - } - - f_UTRAN_ActivateCiphering_RLC_UL(f_UTRAN_CellInfo_GetFDD_TDD(p_CellId), v_SecurityInfo.recentSecureDomain, v_RB_ActivationTimeInfoList); - } - /* * @desc Function to configure ciphering for configured RBs in cell p_CellId before SRVCC HO to UTRAN. @sic R5s110216 sic@ * @param p_CellId @@ -1796,6 +1096,7 @@ module UTRAN_CommonFunctions { f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_SecurityInfo.start_PS); // PS ciphering if PS bearers are configured. //@sic R5s140259 sic@ + v_SecurityInfo.dL_CipherMode := valueof(cs_CipheringModeCmdOn(f_UTRAN_Security_GetCipheringAlgorithm())); // @sic R5s140835, R5-150124 sic@ select (v_CellConfig) { case (cell_Four_DTCH_PS_CS) { f_UTRAN_SS_DownloadSecurityKey(p_CellId, ps_domain); @@ -1807,7 +1108,6 @@ module UTRAN_CommonFunctions { f_UTRAN_ActivateCiphering_RLC_UL(f_IRAT_GetUTRAN_FDD_TDD_Mode(), ps_domain, v_RB_ActivationTimeInfoList); } } - v_SecurityInfo.dL_CipherMode := valueof(cs_CipheringModeCmdOn(px_UTRAN_CipheringAlgorithm)); v_SecurityInfo.cs_cipheringStarted := true; v_SecurityInfo.recentSecureDomain := cs_domain; @@ -1838,61 +1138,6 @@ module UTRAN_CommonFunctions { } - /* - * @desc Function to configure integrity for configured RBs in cell p_CellId after completed HO to UTRAN. - * i.e. after TTCN has received the HANDOVER TO UTRAN COMPLETE message @sic R5s110216 sic@ - * @param p_CellId - * @param p_Domain (default value: ps_domain) - * @status APPROVED (LTE_A, LTE_IRAT) - */ - function f_UTRAN_ConfigureIntegrityAfterHO(UTRAN_CellId_Type p_CellId, - CN_DomainIdentity p_Domain := ps_domain) runs on UTRAN_PTC - { //@sic R5-120637 enhancements for integrity in CS domain sic@ - var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); - var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); - var template (value) RB_ActivationTimeInfoList v_RB_ActivationTimeInfoList; - var START_Value v_Start_Value; - var UTRAN_CFN_Info_Type v_CFN_Info := f_CalculateActTime(p_CellId); - var ActivationTime v_IntActTime := v_CFN_Info.actTime; // @sic R5s120831 sic@ - - if (p_Domain == cs_domain) { - v_Start_Value := v_SecurityInfo.start_CS; - } - else{ - v_Start_Value := v_SecurityInfo.start_PS; - } - //@sic R5s140335 sic@ - - f_UTRAN_SS_SecurityDownloadStart(p_Domain, v_Start_Value); - - v_SecurityInfo.recentSecureDomain := p_Domain; - v_SecurityInfo.integrityStarted := true; - if (px_UTRAN_CipheringAlgorithm == uea2) { - v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, uia2)); - } else { - v_SecurityInfo.dL_Integrity := valueof(cs_IntegrityProtectStart(px_FRESH, uia1)); - } - v_SecurityInfo.dl_IntegrityCheckInfo := valueof(cs_IntegrityCheckInfo0); - - // ActivateSecurity_DL_SS: - f_UTRAN_SetDL_RRC_MessageSN(utran_CellDedicated); - f_UTRAN_CRLC_IntegrityActivate(cas_CRLC_DL_IntegrityActivateReq(utran_CellDedicated, - v_SecurityInfo.recentSecureDomain, - v_SecurityInfo.dL_Integrity)); - f_UTRAN_CRLC_IntegrityActivate(cas_CRLC_UL_IntegrityActivateReq(utran_CellDedicated, - v_SecurityInfo.recentSecureDomain, - cs_RB2_IntegrityProtActivationInfoList(0))); - v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoListSRBs(0, 0, 0, 0); - v_SecurityInfo := fl_UTRAN_StartSecurityUE(p_CellId, - v_CellConfig, - v_SecurityInfo, - v_RB_ActivationTimeInfoList, - v_SecurityInfo.recentSecureDomain, - v_IntActTime, - true); // @sic R5s110382 sic@ - f_UTRAN_Security_Set(v_SecurityInfo); - } - /* @desc Function that will send the UTRAN Mobility Information message and receive the UTRAN Mobility Information Confirm message * @param p_CellId * @param p_CNInfo (default value: cs_508_CNInfo) @@ -1937,69 +1182,25 @@ module UTRAN_CommonFunctions { } } - //============================================================================================= - // PAGING TYPE 1 - /* - * @desc To Page the UE in the cs domain - * @param p_CellId - * @param p_PagCause - * @param p_Tmsi - * @status APPROVED (LTE_IRAT, POS, SSNITZ) - */ - function f_UTRAN_PageCS(UTRAN_CellId_Type p_CellId, - PagingCause p_PagCause, - B32_Type p_Tmsi) runs on UTRAN_PTC - { - f_UTRAN_CMAC_Pag1_Cfg(p_CellId); - U_TM.send(cas_PagingType1(p_CellId, tsc_RB_PCCH, cs_RRC_PagingType1(p_PagCause, cs_CN_PageUE_Identity_TMSI(p_Tmsi), cs_domain))); - } - - /* - * @desc To Page the UE - * @param p_CellId - * @param p_PagCause - * @param p_P_tmsi - * @status APPROVED (LTE_A, LTE_IRAT, UTRAN) - */ - function f_UTRAN_Page(UTRAN_CellId_Type p_CellId, - PagingCause p_PagCause, - B32_Type p_P_tmsi) runs on UTRAN_PTC - { - f_UTRAN_CMAC_Pag1_Cfg(p_CellId); - U_TM.send(cas_PagingType1(p_CellId, tsc_RB_PCCH, cs_RRC_PagingType1(p_PagCause, cs_CN_PageUE_Identity_P_TMSI(p_P_tmsi), ps_domain))); - } - - /* - * @desc Page for UE with IMSI - * @param p_CellId - * @param p_PagCause - * @param p_Domain - * @param p_IMSI - * @status - */ - function f_UTRAN_PageIMSI(UTRAN_CellId_Type p_CellId, - PagingCause p_PagCause, - CN_DomainIdentity p_Domain, - hexstring p_IMSI := px_IMSI_Def) runs on UTRAN_PTC - { - f_UTRAN_CMAC_Pag1_Cfg(p_CellId); - U_TM.send(cas_PagingType1(p_CellId, tsc_RB_PCCH, cs_RRC_PagingType1(p_PagCause, cs_CN_PageUE_Identity_IMSI(p_IMSI), p_Domain))); - } - //============================================================================================= // UE capability /* * @desc To request UTRAN UE capability information and store the security capabilities + * @param p_CellId * @status APPROVED (LTE_IRAT) */ - function f_UTRAN_UE_CapabilityInformation() runs on UTRAN_PTC + function f_UTRAN_UE_CapabilityInformation( UTRAN_CellId_Type p_CellId ) runs on UTRAN_PTC { + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); //@sic R5s141220 sic@ var UTRAN_SecurityInfo_Type v_SecurityInfo:= f_UTRAN_Security_Get(); var U_RLC_AM_IND v_RLC_AM_DATA_IND; //Transmit a UE CAPABILITY ENQUIRY message requesting all capabilties. - U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, cs_UE_CapabilityEnqAll(v_SecurityInfo.dl_IntegrityCheckInfo))); - + if (v_FDD_TDD_Mode == UTRAN_FDD) { + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, cs_108_UE_CapabilityEnq(v_SecurityInfo.dl_IntegrityCheckInfo))); //@sic R5s141204 R5s141220 sic@ + } else { + //@sic R5s141220 sic@ + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, cs_108_UE_CapabilityEnq_TDD(v_SecurityInfo.dl_IntegrityCheckInfo))); } //Receive UE CAPABILITY INFORMATION U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, tsc_RB2, cr_UE_CapabilityInfoAM(tsc_RRC_TI, ?))) -> value v_RLC_AM_DATA_IND; @@ -2015,7 +1216,7 @@ module UTRAN_CommonFunctions { /* * @desc 1.2s delay acc. to 34.108 cl. to allow user-plane signalling * @param p_WaitDataSignalling (default value: noDelay) - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_UTRAN_DelayForUserPlaneSignalling(UTRAN_DelayForUserPlaneSignalling_Type p_WaitDataSignalling := noDelay) { /* NOTE: there is no reason to apply any tolerances for the delay */ diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonProcedures.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonProcedures.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonProcedures.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonProcedures.ttcn index 4f2fe7e..65d85be 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_CommonProcedures.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_IRAT_CommonProcedures.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 13:17:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14487 $ /******************************************************************************/ -module UTRAN_CommonProcedures { +module UTRAN_IRAT_CommonProcedures { import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_ASP_Definitions language "ASN.1:2002" all; @@ -24,6 +24,7 @@ module UTRAN_CommonProcedures { import from UTRAN_ConfigurationSteps all; import from UTRANGERAN_CommonFunctions all; import from UTRAN_CommonFunctions all; + import from UTRAN_IRAT_CommonFunctions all; import from UTRAN_RAB_Functions all; import from NAS_24008TypeDefs all; import from NAS_24008Templates_IRAT all; @@ -36,17 +37,11 @@ module UTRAN_CommonProcedures { import from UpperTesterFunctions all; import from IMS_PTC_CoordMsg all; - template (present) RRCDataIndType cr_U_AnyRAU := - { /* used in a_UTRAN_ReceiveRauRequest */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ - routingAreaUpdateRequest := ? - }; - /* * @desc additional default behaviour to receive routingAreaUpdateRequest; * if there has a routingAreaUpdateRequest been received already verdict FAIL or INCONC is assigned. * @param p_UplinkDirectTransfer - set to true if called during a CSPS Handover, set to false if called in Idle Mode or CS only Handover // @sic R5s120070, R5s130561 sic@ - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ altstep a_UTRAN_ReceiveRauRequest(boolean p_UplinkDirectTransfer) runs on UTRAN_PTC { @@ -86,7 +81,7 @@ module UTRAN_CommonProcedures { * @desc Procedure to bring UE, depending on PS/CS and Operation mode of UE, in to a state * Registered, Idle Mode (state 2) on an UTRAN cell. * @param p_CellId - * @status APPROVED (LTE_IRAT, POS) + * @status APPROVED (LTE_A, LTE_IRAT, POS) */ function f_UTRAN_IdleUpdated(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { @@ -103,7 +98,7 @@ module UTRAN_CommonProcedures { * @desc Procedure to be used in the test case preamble when UE should be brought to state * Registered, Idle Mode (state 2) on an UTRAN cell. * @param p_CellId - * @status APPROVED (LTE_IRAT) + * @status APPROVED (LTE_A, LTE_IRAT) */ function f_UTRAN_Preamble(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { /* @sic R5s130347: local GuardTimer sic@ */ @@ -168,7 +163,7 @@ module UTRAN_CommonProcedures { * @desc This procedure is according to 36.523-3 cl. 10.1.5 CS fallback procedure * @param p_CellId * @param p_AttachType - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_CS_Fallback(UTRAN_CellId_Type p_CellId, UTRAN_GERAN_ATTACH_Type p_AttachType) runs on UTRAN_PTC @@ -223,20 +218,14 @@ module UTRAN_CommonProcedures { if (not match(v_RRC_DATA_IND, car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?)))) { + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)))))) { // @sic R5-125545 sic@ f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 in parallel behaviour - Routing Area Update Request message is incorrect"); } } else { //Wait till UE sends Routing Area Update Request message U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DATA_IND; + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))))) -> value v_RRC_DATA_IND; // @sic R5-125545 sic@ } //SECURITY MODE COMMAND and SECURITY MODE COMPLETE f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_RRC_DATA_IND.ttcn_start); @@ -267,34 +256,6 @@ module UTRAN_CommonProcedures { f_UTRAN_RRC_ConnRel(p_CellId, cell_Dch); } - /* - * @desc Function to set the postamble conditions based on the UTRA CS/PS domain support - * and the LTE UE Attach type. According to 36.523-3 Table 10.1-1 - * @param p_AttachType - * @return UTRA_POSTAMBLE_CONDITIONS - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) - */ - function f_UTRA_SetPostambleCondition(UTRAN_GERAN_ATTACH_Type p_AttachType) return UTRA_POSTAMBLE_CONDITIONS - { - var boolean v_IsCombined := f_UTRAN_AttachTypeCheck(p_AttachType); // @sic R5s110176 sic@ - var UTRA_POSTAMBLE_CONDITIONS v_UTRA_POSTAMBLE_CONDITION := UTRA_C1; - - if (v_IsCombined) {//combined attach case - if (pc_CS and pc_PS) { - v_UTRA_POSTAMBLE_CONDITION := UTRA_C3; - } - else if (pc_CS and not pc_PS) { - v_UTRA_POSTAMBLE_CONDITION := UTRA_C4; - } - } - else {//attach case - if (pc_PS and not pc_CS) { - v_UTRA_POSTAMBLE_CONDITION := UTRA_C2; - } - } - return v_UTRA_POSTAMBLE_CONDITION; - } - /* * @desc Function to bring UE to switched/powered off state after test case execution in UTRA PTC * This procedure is according to 36.523-3 cl. 10.1 @@ -302,7 +263,7 @@ module UTRAN_CommonProcedures { * @param p_UTRA_POSTAMBLE_STATE - as defined in 36.508 cl. 6.4.3.2 * @param p_AttachType (default value: NotSpecified) * @param p_TI_S (default value: cs_TI_MO) - * @status APPROVED (LTE_A, LTE_IRAT, POS) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ function f_UTRAN_Postamble(UTRAN_CellId_Type p_CellId, UTRA_POSTAMBLE_STATE_Type p_UTRA_POSTAMBLE_STATE, @@ -370,13 +331,16 @@ module UTRAN_CommonProcedures { * @param p_CellId * @param p_Utra_Postamble_State * @param p_AttachType - * @param p_USIM_Rmvd - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @param p_USIM_Rmvd (default value: false) + * @param p_UsedStoredNsapi (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_UTRAN_SwitchPower_Off(UTRAN_CellId_Type p_CellId, UTRA_POSTAMBLE_STATE_Type p_Utra_Postamble_State, UTRAN_GERAN_ATTACH_Type p_AttachType, - boolean p_USIM_Rmvd := false) runs on UTRAN_PTC + boolean p_USIM_Rmvd := false, + boolean p_UsedStoredNsapi := false) //@sic R5s141127 sic@ + runs on UTRAN_PTC { var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); var integer v_AttFlag := f_UTRAN_CellInfo_GetAttFlag(p_CellId); @@ -388,7 +352,7 @@ module UTRAN_CommonProcedures { var UTRAN_SecurityInfo_Type v_SecurityInfo ; var boolean v_RxdServiceReq := false; // Should only get one - if (v_CellConfig == cell_FACH or v_CellConfig == cell_FACH_NoConn) { + if (v_CellConfig == cell_FACH or v_CellConfig == cell_FACH_NoConn or v_CellConfig == cell_FACH_PS) { //@sic R5s150302 sic@ v_RRC_Rel_Status := cell_Fach_Dcch; } @@ -404,11 +368,19 @@ module UTRAN_CommonProcedures { [not v_RxdServiceReq] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ServiceRequest(cr_ServiceType('001'B),//Service type 'data' - cr_MobileIdAny (omit), + cr_MobileIdAny, ?))) -> value v_RRC_DataInd { // @sic R5-142919, R5s140710 sic@ f_UTRAN_RRC_Security(p_CellId, false, ps_domain); - f_UTRAN_RB_SetUp_PS_RAB (p_CellId, cell_DCH_64kPS_RAB_SRB, false); // @sic R5s140710 sic@ + v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); // @sic R5s150057 sic@ + select (v_CellConfig){ + case (cell_FACH) { + f_UTRAN_RB_SetUp_PS_RAB (p_CellId, cell_FACH_PS, false, p_UsedStoredNsapi); // @sic R5s150057 sic@ + } + case else { + f_UTRAN_RB_SetUp_PS_RAB (p_CellId, cell_DCH_64kPS_RAB_SRB, false, p_UsedStoredNsapi); // @sic R5s140710 R5s141127 sic@ + } + } U_AM.receive (car_RLC_Data_Ind (utran_CellDedicated, //@sic R5s110210 sic@ tsc_RB2, cr_108_RB_SetUpCmpl (tsc_RRC_TI))) -> value v_U_RLC_AM_IND; @@ -473,11 +445,11 @@ module UTRAN_CommonProcedures { [not v_RxdServiceReq] U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ServiceRequest(cr_ServiceType('001'B),//Service type 'data' - cr_MobileIdAny(omit), + cr_MobileIdAny, ?))) -> value v_RRC_DataInd { // @sic R5-142919, R5s140710 sic@ f_UTRAN_RRC_Security(p_CellId, false, ps_domain); - f_UTRAN_RB_SetUp_PS_RAB (p_CellId, cell_DCH_64kPS_RAB_SRB, false); // @sic R5s140710 sic@ + f_UTRAN_RB_SetUp_PS_RAB (p_CellId, cell_DCH_64kPS_RAB_SRB, false, p_UsedStoredNsapi); // @sic R5s140710 R5s141127 sic@ U_AM.receive (car_RLC_Data_Ind (utran_CellDedicated, //@sic R5s110210 sic@ tsc_RB2, cr_108_RB_SetUpCmpl (tsc_RRC_TI))) -> value v_U_RLC_AM_IND; @@ -581,6 +553,27 @@ module UTRAN_CommonProcedures { f_UTRAN_PreliminaryPass(__FILE__, __LINE__, "UTRAN Check Camp On New Utran Cell"); } + /* @desc Call A-B in state U10 34.108 cl. 7.2.3.1 + * @param p_CellId + * @param p_StopAtU9State (default: false) ...set to true if need U9, Alerting State, used for some rSRVCC tests + */ + function f_UTRAN_GoToState6_9_MT(UTRAN_CellId_Type p_CellId, + boolean p_StopAtU9State := false) runs on UTRAN_PTC + { + // Step 2 + f_UTRAN_PageCS(p_CellId, terminatingConversationalCall, oct2bit(px_TMSI_Def)); + + // Step 3 - 5 + f_UTRAN_RRC_ConnEst(p_CellId, terminatingConversationalCall); + + // Step 6 + U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_PagRsp(?, ?))); + + f_UTRAN_MT_SpeechCall_Steps7_17(p_CellId, -, -, -, p_StopAtU9State); + } + /* @desc Step 7-17 of 34.108 cl. 7.2.3.1 * From TTCN2 test step ts_CC_EnterU10_MT_Def * @param p_CellId @@ -590,15 +583,19 @@ module UTRAN_CommonProcedures { * p_PS_RB_Already_Est = FALSE is used in TC 13.1.3 where only a CS Speech RB is set up/configured * @param p_DoCS_Security (default value: true) * if p_DoAuth is true, p_DoCS_Security shall also be true - * @status APPROVED (LTE_IRAT) + * @param p_StopAtU9State (default: false) ...set to true if need U9, Alerting State, used for some rSRVCC tests + * @status APPROVED (LTE_IRAT, SSNITZ) */ function f_UTRAN_MT_SpeechCall_Steps7_17(UTRAN_CellId_Type p_CellId, boolean p_DoAuth := true, boolean p_PS_RB_Already_Est := false, - boolean p_DoCS_Security := true) runs on UTRAN_PTC + boolean p_DoCS_Security := true, + boolean p_StopAtU9State := false) runs on UTRAN_PTC { var template (value) Bcap v_Bcap := cs_BcapSpeechMT; + f_CheckDTMFHandling (); // @sic R5s150330 sic@ + //Step 7 - 8 //MM Authentication if (p_DoAuth) { @@ -634,49 +631,99 @@ module UTRAN_CommonProcedures { } f_UTRAN_Default_BlockDc(false); /* @sic R5s120086 (R5s120107) sic@ */ - alt { - //Step 15 - [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_Alerting(?))) - { - f_UT_AnswerCall(UT); - + if (p_StopAtU9State) { // @sic R5-145740 sic@ + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_Alerting(?))); + } else { + alt { + //Step 15 + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_Alerting(?))) + { + f_UT_AnswerCall(UT); + + //Step 16 + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_Connect(?))); + } //Step 16 - U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_Connect(?))); + [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_Connect(?))) + {} } - //Step 16 - [] U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_Connect(?))) - {} - } - //Step 17 U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_ConnectAck(cs_TI_MT))); + } // end of if not p_StopAtU9State + } - /* @desc Step 6-16 of 34.108 cl. 7.2.3.2 + /* @desc Step 1-16 of 34.108 cl. 7.2.3.2 * @param p_CellId * @param p_DoAuth (default value: true) * @param p_PS_RB_Already_Est (default value: false) * @param p_DoCS_Security (default value: true) * if p_DoAuth is true, p_DoCS_Security shall also be true - * @status APPROVED (LTE_IRAT) + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150590 sic@ + * @return TI + * @status APPROVED (LTE_A, SSNITZ) + */ + function f_UTRAN_MO_SpeechCall(UTRAN_CellId_Type p_CellId, + boolean p_DoAuth := true, + boolean p_PS_RB_Already_Est := false, + boolean p_DoCS_Security := true, + boolean p_StopAtU4State := false) runs on UTRAN_PTC return TI + { + var template (present) EstablishmentCause v_EstCause := originatingConversationalCall; + var START_Value v_START_Value := '00000000000000000000'B; + var RRC_DATA_IND v_RRC_DataInd; + var TI v_TI_R; + + // Trigger UE to make an outgoing call + f_UT_RequestCSCall(UT); + + // Steps 2-4 + f_UTRAN_RRC_ConnEst(p_CellId, v_EstCause); + + // Step 5 Receive CM Service Request + U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, + tsc_RB3, + cr_U_ServReqAny(?)))-> value v_RRC_DataInd; // @sic R5s150213 sic@ + + v_START_Value := v_RRC_DataInd.ttcn_start; + f_UTRAN_SS_SecurityDownloadStart(cs_domain, v_START_Value); + v_TI_R := f_UTRAN_MO_SpeechCall_Steps6_16 (p_CellId, p_DoAuth, p_PS_RB_Already_Est, p_DoCS_Security, p_StopAtU4State); // @sic R5-150590 sic@ + + return v_TI_R; + } + + /* @desc Step 6-16 of 34.108 cl. 7.2.3.2 + * @param p_CellId + * @param p_DoAuth (default value: true) + * @param p_PS_RB_Already_Est (default value: false) + * @param p_DoCS_Security (default value: true) + * if p_DoAuth is true, p_DoCS_Security shall also be true + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150590 sic@ + * @return TI + * @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ - function f_UTRAN_M0_SpeechCall_Steps6_16(UTRAN_CellId_Type p_CellId, + function f_UTRAN_MO_SpeechCall_Steps6_16(UTRAN_CellId_Type p_CellId, boolean p_DoAuth := true, boolean p_PS_RB_Already_Est := false, - boolean p_DoCS_Security := true) runs on UTRAN_PTC + boolean p_DoCS_Security := true, + boolean p_StopAtU4State := false) runs on UTRAN_PTC return TI { var UTRAN_SecurityInfo_Type v_SecurityInfo; var TI v_TI_R; var RRC_DATA_IND v_RRC_DataInd; + f_CheckDTMFHandling (); // @sic R5s150330 sic@ + //Steps 6-7: Authentication Request and Authentication Response if (p_DoAuth) { v_SecurityInfo := f_UTRAN_Security_Get(); @@ -699,18 +746,21 @@ module UTRAN_CommonProcedures { -> value v_RRC_DataInd; v_TI_R := v_RRC_DataInd.msg.setupul.ti; - f_UTRAN_M0_SpeechCall_Steps11_16 (p_CellId, v_TI_R, p_PS_RB_Already_Est); // @sic R5-142954 sic@ + f_UTRAN_MO_SpeechCall_Steps11_16 (p_CellId, v_TI_R, p_PS_RB_Already_Est, p_StopAtU4State); // @sic R5-142954 sic@ + return v_TI_R; // @sic R5-145740 sic@ } /* @desc Step 11-16 of 34.108 cl. 7.2.3.2 * @param p_CellId * @param p_TI_R * @param p_PS_RB_Already_Est (default value: false) - * @status APPROVED (LTE_IRAT) + * @param p_StopAtU4State (default value: false) to stop after Alerting message @sic R5-150590 sic@ + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ - function f_UTRAN_M0_SpeechCall_Steps11_16(UTRAN_CellId_Type p_CellId, + function f_UTRAN_MO_SpeechCall_Steps11_16(UTRAN_CellId_Type p_CellId, TI p_TI_R, - boolean p_PS_RB_Already_Est := false) runs on UTRAN_PTC + boolean p_PS_RB_Already_Est := false, + boolean p_StopAtU4State := false) runs on UTRAN_PTC { var TI v_TI_S := p_TI_R; v_TI_S.tiFlag := '1'B; @@ -729,26 +779,28 @@ module UTRAN_CommonProcedures { //Step 14 - Send Alerting U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_Alert(v_TI_S))); - //Step 15 - Send Connect - U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_Connect(v_TI_S))); + if (not p_StopAtU4State) { // @sic R5-150590 sic@ + //Step 15 - Send Connect + U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_Connect(v_TI_S))); - //Step 16 - Receive CONNECT ACKOWLEDGE - U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ConnAck(p_TI_R))); + //Step 16 - Receive CONNECT ACKOWLEDGE + U_Dc.receive(car_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ConnAck(p_TI_R))); + } } /* * @desc This procedure is used in IMS Emg Call test cases (derived from test case 11.2.8 UTRAN) * @param p_CellId - * @status APPROVED (LTE_IRAT) + * @status APPROVED (IMS_IRAT, LTE_IRAT) */ function f_UTRAN_EmgCallSetup(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC { - var RLC_TR_DATA_IND v_RLC_TR_DATA_IND; + var U_RLC_TM_IND v_RLC_TR_DATA_IND; //@sic R5-150124 sic@ var InitialUE_Identity v_InitialUE_Id; var RRC_DATA_IND v_RRC_DataInd; var template (present) EstablishmentCause v_EstCause := emergencyCall; var START_Value v_START_Value := '00000000000000000000'B; - var KeySeq v_KeySeq := '111'B; //cipher key sequence number IE: no key is available +// var KeySeq v_KeySeq := '111'B; //cipher key sequence number IE: no key is available // @sic R5s150273 sic@ var float v_Wait := 60.0; // 60 seconds to allow UE to complete the procedure on CDMA2000 cell var TI v_TI_R; timer t_Wait := v_Wait ; // Local wait Timer @@ -762,8 +814,9 @@ module UTRAN_CommonProcedures { tsc_RB0, cr_108_RRC_ConnReq_r8(v_EstCause))) -> value v_RLC_TR_DATA_IND { f_UTRAN_PreliminaryPass(__FILE__, __LINE__, "f_UTRAN_EmgCallSetup Step 2"); - v_InitialUE_Id := v_RLC_TR_DATA_IND.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.initialUE_Identity; - f_UTRAN_CheckReleaseIndicator(v_RLC_TR_DATA_IND.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.v3d0NonCriticalExtensions.v4b0NonCriticalExtensions.rrcConnectionRequest_v4b0ext.accessStratumReleaseIndicator); + v_InitialUE_Id := v_RLC_TR_DATA_IND.data.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.initialUE_Identity; + f_UTRAN_CheckReleaseIndicator(v_RLC_TR_DATA_IND.data.tM_message.uL_CCCH_Message.message_.rrcConnectionRequest.v3d0NonCriticalExtensions.v4b0NonCriticalExtensions.rrcConnectionRequest_v4b0ext.accessStratumReleaseIndicator); + t_Wait.stop; // @sic R5s150061 sic@ } [] t_Wait.timeout { f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "f_UTRAN_EmgCallSetup Step 2: RRC Connection Request not received within wait time"); @@ -780,7 +833,7 @@ module UTRAN_CommonProcedures { // Check: Does the UE transmit a CM SERVICE REQUEST with CM service type IE indicating "Emergency call establishment"? U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_ServReq_MO_Emergency(v_KeySeq, ?))) -> value v_RRC_DataInd; // UE id to be clarified + cr_U_ServReq_MO_Emergency(?, ?))) -> value v_RRC_DataInd; // UE id to be clarified @sic R5s150273 sic@ f_UTRAN_PreliminaryPass(__FILE__, __LINE__, "f_UTRAN_EmgCallSetup Step 5"); v_START_Value := v_RRC_DataInd.ttcn_start; @@ -804,7 +857,7 @@ module UTRAN_CommonProcedures { //Steps 9-14 of 11.2.8 UTRAN // steps 11-16 of 34.108 cl. 7.2.3.2.3 v_TI_R := v_RRC_DataInd.msg.esetup.ti; - f_UTRAN_M0_SpeechCall_Steps11_16(p_CellId, v_TI_R); // @sic R5-142954 sic@ + f_UTRAN_MO_SpeechCall_Steps11_16(p_CellId, v_TI_R); // @sic R5-142954 sic@ } // f_UTRAN_EmgCallSetup @@ -840,13 +893,11 @@ module UTRAN_CommonProcedures { * The RB setup complete after PS RAB establishment is not received. * Is set to false when no PS bearer is established already and "pure" CS RAB is established. * Default value 'false' - * @param p_RelRRC (default: false, this is currently only set in 13.1.3) * @status APPROVED (LTE_IRAT) */ function f_UTRAN_CS_Fallback_WithRedirection_WithoutRRCConnEst(UTRAN_CellId_Type p_CellId, boolean p_MT_Call := true, - boolean p_PS_RB_Already_Est := false, - boolean p_RelRRC := false) runs on UTRAN_PTC + boolean p_PS_RB_Already_Est := false) runs on UTRAN_PTC { var RRC_DATA_IND v_RRC_DATA_IND; @@ -882,7 +933,7 @@ module UTRAN_CommonProcedures { f_UTRAN_MT_SpeechCall_Steps7_17(p_CellId); } else { - f_UTRAN_M0_SpeechCall_Steps6_16(p_CellId); + f_UTRAN_MO_SpeechCall_Steps6_16(p_CellId); } //Step 1 in parallel behaviour: Receive Routing Area Update Request (if it has not yet been received) @@ -895,10 +946,7 @@ module UTRAN_CommonProcedures { if (not match(v_RRC_DATA_IND, car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?)))) { + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)))))) { // @sic R5-125545 sic@ f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 in parallel behaviour - Routing Area Update Request message is incorrect"); } f_Delay (0.5); // @sic R5s130773 make sure SS caught up before continuing sic@ @@ -906,10 +954,7 @@ module UTRAN_CommonProcedures { else { //Wait till UE sends Routing Area Update Request message U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DATA_IND; + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))))) -> value v_RRC_DATA_IND; // @sic R5-125545 sic@ } //@sic R5s140475 sic@ v_SecurityInfo := f_UTRAN_Security_Get(); @@ -935,28 +980,27 @@ module UTRAN_CommonProcedures { //Step 19: Receive ROUTING AREA UPDATE COMPLETE U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_RAUpdComplete)); - v_ServReq := car_PS_UplinkDirectTransfer(utran_CellDedicated, - tsc_RB3, - cr_U_ServiceRequest(cr_ServiceType('001'B),//Service type 'data' - cr_MobileIdTMSI_lv (px_PTMSI_Def), //@sic R5s120485, R5-142919 sic@ - v_SecurityInfo.authKeys.AuthPS.KeySeq)); - if (p_RelRRC) { // @sic R5-144731 sic@ - f_UTRAN_RRC_ConnRel(p_CellId, cell_Dch, true); - v_ServReq := car_PS_InitDirectTransfer(utran_CellDedicated, + v_ServReq := car_PS_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ServiceRequest(cr_ServiceType('001'B),//Service type 'data' cr_MobileIdTMSI_lv (px_PTMSI_Def), //@sic R5s120485, R5-142919 sic@ v_SecurityInfo.authKeys.AuthPS.KeySeq)); - f_UTRAN_RRC_ConnEst (p_CellId); - } if (p_PS_RB_Already_Est) { + U_AM.receive (car_RLC_Data_Ind (utran_CellDedicated, tsc_RB2, cr_108_RRC_SigConnRelInd)); // @sic R5s141334 sic@ + //Step 20: Receive Service Request U_Dc.receive(v_ServReq) -> value v_RRC_DATA_IND; - U_Dc.send(cas_DataReq_PS(utran_CellDedicated, - tsc_RB3, - cs_U_ServiceAccept)); //@sic R5-130081 sic@ - + //@sic R5s150210 sic@ + //@sic R5-130081 sic@ + v_SecurityInfo := f_UTRAN_Security_Get(); + v_SecurityInfo.authKeys.AuthPS.KeySeq := v_RRC_DATA_IND.msg.serviceRequest.ciphKeySeqNo.keySeq; + f_UTRAN_Security_Set(v_SecurityInfo); + //Steps 18B-18C: SECURITY MODE COMMAND and SECURITY MODE COMPLETE + f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_RRC_DATA_IND.ttcn_start); + + f_UTRAN_RRC_Security(p_CellId, false, ps_domain); + //f_UTRAN_SS_SecurityDownloadStart (ps_domain, v_RRC_DATA_IND.ttcn_start); //@sic R5s120868 sic@ @@ -976,11 +1020,13 @@ module UTRAN_CommonProcedures { * @param p_EmergCall - Is set to true when procedure is used to set up an emergency call (with USIM instered) * Default value 'false' * Shall not be set to 'true' when p_MT_Call is set to 'true' + * @param p_FOP * @status APPROVED (LTE_IRAT) */ function f_UTRAN_CS_Fallback_WithHandover(UTRAN_CellId_Type p_CellId, boolean p_MT_Call := true, - boolean p_EmergCall := false) runs on UTRAN_PTC + boolean p_EmergCall := false, + B1_Type p_FOP := '1'B) runs on UTRAN_PTC { var template (value) TI v_TI_R; var template (value) TI v_TI_S; @@ -1011,7 +1057,7 @@ module UTRAN_CommonProcedures { if (pc_UMI_ProcNeeded_DuringCSFB) { - f_UTRAN_UE_CapabilityInformation() ; //@sic R5s130137 sic@ + f_UTRAN_UE_CapabilityInformation(p_CellId) ; //@sic R5s130137 R5s141220 sic@ //Steps 2b1-2b2 f_UTRAN_ConfigureIntegrityAfterHO(p_CellId); @@ -1055,7 +1101,7 @@ module UTRAN_CommonProcedures { [not p_MT_Call and not p_EmergCall] U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ServReq_MO_TMSI(?))) -> value v_RRC_DATA_IND {} } - f_UTRAN_UE_CapabilityInformation() ; //@sic R5s130137 sic@ + f_UTRAN_UE_CapabilityInformation(p_CellId) ; //@sic R5s130137 R5s141220 sic@ } v_SecurityInfo := f_UTRAN_Security_Get(); // @sic R5s130678 sic@ @@ -1131,7 +1177,7 @@ module UTRAN_CommonProcedures { f_UTRAN_MT_SpeechCall_Steps7_17(p_CellId, false, true, false); //@sic R5s120455 sic@ } else { //CM service Request shall have been received //Steps 3-9: Mobile origination emergency CS call is established - f_UTRAN_M0_SpeechCall_Steps6_16(p_CellId, false, true, false); + f_UTRAN_MO_SpeechCall_Steps6_16(p_CellId, false, true, false); } //Step 1 in parallel behaviour: Receive Routing Area Update Request (if it has not yet been received) @@ -1141,25 +1187,19 @@ module UTRAN_CommonProcedures { v_RRC_DATA_IND := f_UTRAN_MsgInDefault_GetRAU(); if (not match(v_RRC_DATA_IND, car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?)))) { + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)))))) { // @sic R5-125545 sic@ f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 in parallel behaviour - Routing Area Update Request message is incorrect"); } } else { //Wait till UE sends Routing Area Update Request message U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DATA_IND; + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))))) -> value v_RRC_DATA_IND; // @sic R5-125545 sic@ } //Step 10: Transmit Routing Area Update Accept v_UpdateType := f_UG_RauReq_GetUpdateValueForRauAcc(v_RRC_DATA_IND.msg.routingAreaUpdateRequest); - U_Dc.send(cas_DataReq_PS(utran_CellDedicated, tsc_RB3, cs_U_RA_UpdAcc3(cs_GMM_UpdateResult(v_UpdateType), + U_Dc.send(cas_DataReq_PS(utran_CellDedicated, tsc_RB3, cs_U_RA_UpdAcc3(cs_GMM_UpdateResult(v_UpdateType, p_FOP), // @sic R5-145699 sic@ cs_RAI(omit, cs_LAI(omit, v_PLMN, v_LAC), v_RAC), cs_PTMSI_Signature(px_PTMSI_SigDef), cs_MobileIdTMSIorPTMSI('18'O, px_PTMSI_Def), @@ -1174,6 +1214,7 @@ module UTRAN_CommonProcedures { * @param p_CellId * @param p_PDP_ContextStatus (default value: omit) * @param p_UplinkDirectTransfer (default value: false) + * @param p_FOP (default value: '1'B) * @status APPROVED (LTE_A, LTE_IRAT) */ function f_UTRAN_SRVCC_WithHandover(UTRAN_CellId_Type p_CellId, @@ -1193,6 +1234,7 @@ module UTRAN_CommonProcedures { var octetstring v_PSSpecificNAS_Info := v_RAC & bit2oct(f_UTRAN_CellInfo_GetNMO(p_CellId)); var octetstring v_CSSpecificNAS_Info := f_UTRAN_CellInfo_GetT3212(p_CellId) & int2oct(f_UTRAN_CellInfo_GetAttFlag(p_CellId), 1); var template (omit) PDP_ContextStatus v_PDP_ContextStatus; + var START_Value v_START_Value := '00000000000000000000'B; //Step 1: Receive HANDOVER TO UTRAN COMPLETE U_AM.receive (car_RLC_Data_Ind(utran_CellDedicated, // @sic R5s130561 sic@ @@ -1233,45 +1275,41 @@ module UTRAN_CommonProcedures { v_RRC_DATA_IND := f_UTRAN_MsgInDefault_GetRAU(); //@sic R5s140096 sic@ if (not (match(v_RRC_DATA_IND, car_PS_InitDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) or - match(v_RRC_DATA_IND,car_PS_UplinkDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ - tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))))) - { + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)))))) // @sic R5-125545 sic@ + or match(v_RRC_DATA_IND,car_PS_UplinkDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ + tsc_RB3, + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)))))) { // @sic R5-125545 sic@ f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 in parallel behaviour - Routing Area Update Request message is incorrect"); } } else { //Wait till UE sends Routing Area Update Request message - alt { //@sic R5s140096 sic@ - [not p_UplinkDirectTransfer] U_Dc.receive (car_PS_InitDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ - tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DATA_IND - {} - [p_UplinkDirectTransfer] U_Dc.receive (car_PS_UplinkDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ - tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DATA_IND - {} - } + alt { //@sic R5s140096 sic@ + [not p_UplinkDirectTransfer] U_Dc.receive(car_PS_InitDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ + tsc_RB3, + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))))) // @sic R5-125545 sic@ + -> value v_RRC_DATA_IND + {} + [p_UplinkDirectTransfer] U_Dc.receive (car_PS_UplinkDirectTransfer(utran_CellDedicated, // @sic R5s130561 sic@ + tsc_RB3, + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))))) // @sic R5-125545 sic@ + -> value v_RRC_DATA_IND + {} + } } //@sic R5s130561 sic@ //SMC in PS domain // @sic R5s130904 sic@ - + //Step 8: Transmit Routing Area Update Accept v_UpdateType := f_UG_RauReq_GetUpdateValueForRauAcc(v_RRC_DATA_IND.msg.routingAreaUpdateRequest); - f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_RRC_DATA_IND.ttcn_start); + + // @sic R5s150440 sic@ + if (ispresent(v_RRC_DATA_IND.ttcn_start)) { + v_START_Value := v_RRC_DATA_IND.ttcn_start; + } else { + v_START_Value := v_SecurityInfo.start_PS; // current value. If not previously set, default value is all zeros + } + f_UTRAN_SS_SecurityDownloadStart(ps_domain, v_START_Value); // @sic R5s150440 sic@ f_UTRAN_RRC_Security(p_CellId, false, ps_domain); if (isvalue(p_PDP_ContextStatus)) { // @sic R5-133584 sic@ @@ -1334,20 +1372,14 @@ module UTRAN_CommonProcedures { v_RRC_DATA_IND := f_UTRAN_MsgInDefault_GetRAU(); if (not match(v_RRC_DATA_IND, car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?)))) { + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)))))) { // @sic R5-125545 sic@ f_UTRAN_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 in parallel behaviour - Routing Area Update Request message is incorrect"); } } else { //Wait till UE sends Routing Area Update Request message U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, - cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI)), // @sic R5-125545 sic@ - cr_RAI(omit), - cr_PTMSI_SignatureAny ifpresent, - ?))) -> value v_RRC_DATA_IND; + cr_U_RA_UpdReqAny(cr_GMM_UpdateType(?, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined, tsc_I_UpdateTypeCombinedWithIMSI))))) -> value v_RRC_DATA_IND; // @sic R5-125545 sic@ } //Step 10: Transmit Routing Area Update Accept @@ -1361,5 +1393,5 @@ module UTRAN_CommonProcedures { //Step 11: Receive Routing Area Update Complete U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_RAUpdComplete)); } - + } // end of module diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_MDT_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_MDT_Templates.ttcn similarity index 89% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_MDT_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_MDT_Templates.ttcn index 8f31dff..b2737ef 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_MDT_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_MDT_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 11:17:38 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12203 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 13:17:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14487 $ /******************************************************************************/ module UTRAN_MDT_Templates { @@ -20,14 +20,14 @@ module UTRAN_MDT_Templates { //**************************************************************** type EUTRA_FrequencyInfo_r11.widebandRSRQMeasurements EUTRA_FrequencyInfo_r11_widebandRSRQMeasurements_Type; type TGP_SequenceShort_r10.freqSpecificCompressedMode TGP_SequenceShort_r10_freqSpecificCompressedMode_Type; - type TGP_Sequence_r10.tgps_Status TGPS_Status_r10_Type; + type TGP_Sequence_r10.tgps_Status TGPS_Status_r10_Type; /* @status APPROVED (LTE_A, LTE_IRAT) */ template (value) DL_DCCH_Message cs_MeasurementControl_TDD_r10(IntegrityCheckInfo p_Integrityinfo, MeasurementIdentity p_MeasurementIdentity, template (value) MeasurementCommand_r10 p_MeasurementCommand, template (omit) CellDCHMeasOccasionInfo_TDD128_r9 p_CellDCHMeasOccasionInfo_TDD128, RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) := - { /* @status APPROVED (LTE_A) */ + { integrityCheckInfo := p_Integrityinfo, message_ := { measurementControl := { @@ -69,7 +69,7 @@ module UTRAN_MDT_Templates { template (omit) InterRATMeasQuantity_r8 p_InterRATMeasQuantity, template (omit) InterRATReportingQuantity_r8 p_InterRATReportingQuantity, template (value) InterRATEventList p_InterRATEventList) := - { /* @status APPROVED (LTE_A) */ + { setup := { interRATMeasurement := { interRATMeasurementObjects := { @@ -99,7 +99,6 @@ module UTRAN_MDT_Templates { EUTRA_MeasurementBandwidth p_EutraCell_MeasBandwidth, template (omit) CellDCHMeasOccasionInfo_TDD128_r9 p_CellDCHMeasOccasionInfo_TDD128) := // Default values according to 36.508 Table 4.7B.1-3: MEASUREMENT CONTROL for Inter-RAT - /* @status APPROVED (LTE_A) */ cs_MeasurementControl_TDD_r10(p_Integrityinfo, 3, cs_MeasurementCommand_SetupInterRatEutra_r10(cs_EUTRA_FrequencyInfoList_1Entry(p_EutraCell_ARFCN, p_EutraCell_MeasBandwidth), @@ -271,44 +270,6 @@ module UTRAN_MDT_Templates { omit, p_RRC_TI); - template (value) DL_DCCH_Message cs_HandoverFromUTRANCommand_EUTRA_r11 (IntegrityCheckInfo p_Integrityinfo, - RRC_TransactionIdentifier p_RRC_TI, - octetstring p_Eutra_Message) := - { /* TS 36.508 Table 4.7B.1-2: HANDOVER FROM UTRAN COMMAND */ - /* @status */ - integrityCheckInfo := p_Integrityinfo, - message_ := { - handoverFromUTRANCommand_EUTRA := { - rrc_TransactionIdentifier := p_RRC_TI, - criticalExtensions := { - criticalExtensions := { - r11 := { - handoverFromUTRANCommand_EUTRA_r11 := { - rsr_vcc_Info := omit, - activationTime := omit, - toHandoverRAB_Info := { - { - rab_Identity := { - gsm_MAP_RAB_Identity := '00000101'B - }, - //mbms_SessionIdentity := omit, //- Not specified in message - //mbms_ServiceIdentity := omit, - cn_DomainIdentity := ps_domain, - nas_Synchronisation_Indicator := omit, //not present specified - re_EstablishmentTimer := useT315 - } - }, - eutra_Message := p_Eutra_Message - }, - handoverFromUTRANCommand_EUTRA_r11_add_ext := omit, - nonCriticalExtensions := omit - } - } - } - } - } - }; - template (value) TGPS_Status_r10_Type cs_TGPS_Status_r10_Deactive := { /* @status */ deactivate_ := NULL @@ -316,7 +277,7 @@ module UTRAN_MDT_Templates { template (value) DPCH_CompressedModeInfo_r10 cs_DPCH_CompressedModeInfo_r10(template (value) TGPS_Status_r10_Type p_Status, template (value) UL_DL_Mode p_UL_DL_Mode) := - { /* @status */ + { /* @status APPROVED (LTE_A, LTE_IRAT) */ tgp_SequenceList := { { tgpsi := 1, @@ -345,4 +306,4 @@ module UTRAN_MDT_Templates { } }; -} //end of module +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn similarity index 77% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn index 544350d..cbd2200 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_NAS_PDU_Templates.ttcn @@ -2,17 +2,17 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 21:39:48 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14432 $ /******************************************************************************/ module UTRAN_NAS_PDU_Templates { + import from CommonDefs all; import from UTRAN_TypeDefs all; import from NAS_24008TypeDefs all; - import from CommonDefs all; import from NAS_CommonTypeDefs all; import from NAS_CommonTemplates all; import from NAS_24008Templates_IRAT all; @@ -20,6 +20,10 @@ module UTRAN_NAS_PDU_Templates { import from Parameters all; import from UTRAN_Parameters all; + //============================================================================ + const B3_Type tsc_PagingResponse := '010'B; /* Service type as per 24.008 Table 10.5.153a + @status APPROVED (LTE_IRAT, UTRAN) */ + //============================================================================ // UTRAN specific NAS templates //---------------------------------------------------------------------------- @@ -49,16 +53,15 @@ module UTRAN_NAS_PDU_Templates { template (omit) PLMN_List p_EPLMN := omit, //@sic R5-134916 sic@ template (omit) GMM_Cause p_GmmCause := omit, //@sic R5-140946 sic@ template (omit) AddNtwFeatureSupport p_AddNwFeatSupport := omit,//@sic R5-140946 sic@ - template (omit) GPRS_Timer2 p_T3302Value:= omit //@sic R5-140946 sic@ - ) := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (omit) GPRS_Timer2 p_T3302Value:= omit) := //@sic R5-140946 sic@ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ attachAccept := cs_AttachAcc_Common(p_AttachRes, p_RAI, p_PTMSIsig, p_PTMSI, p_EPLMN, p_TMSI, p_GmmCause, p_AddNwFeatSupport, p_T3302Value) // @sic R5-123114 sic@, @sic R5-140946 sic@ }; //---------------------------------------------------------------------------- - template (value) RRCDataReqType cs_U_AttachReject( RejCau p_Cause) := - { /* @status APPROVED (LTE_IRAT) */ + template (value) RRCDataReqType cs_U_AttachReject(RejCau p_Cause) := + { /* @status APPROVED (LTE_IRAT, UTRAN) */ attachReject := cs_AttachRej_Common(p_Cause) // @sic R5s110596 sic@ }; @@ -67,7 +70,7 @@ module UTRAN_NAS_PDU_Templates { template (value) RRCDataReqType cs_U_AuthReq(template (value) KeySeq p_KeySeq, template (value) MM_RAND p_RAND, template (value) AUTN p_AUTN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationRequest := cs_AuthReq_Common(p_KeySeq, p_RAND, p_AUTN) }; @@ -76,7 +79,7 @@ module UTRAN_NAS_PDU_Templates { template (value) RRCDataReqType cs_U_AuthAndCiphReq(template (value) RAND p_Rand, template (value) CiphKeySeqNum p_CiphKeySeqNum, template (value) AUTN p_Autn) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationAndCipheringRequest := cs_AuthAndCiphReq_Common(p_Rand, p_CiphKeySeqNum, int2bit (enum2int(px_GPRS_CipheringAlgorithm), 3), p_Autn) // @sic R5-130618, R5s130132 sic@ }; @@ -84,9 +87,11 @@ module UTRAN_NAS_PDU_Templates { template (value) RRCDataReqType cs_U_LocUpdAcpTMSI(octetstring p_PLMN, octetstring p_LAC, - template (omit) PLMN_List p_EPLMN := omit) := //@sic R5-134916 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - locationUpdatingAccept := cs_LocUpdAcp_Common (p_PLMN, p_LAC, cs_MobileIdTMSIorPTMSI ('17'O, px_TMSI_Def), p_EPLMN) + template (omit) PLMN_List p_EPLMN := omit, + template (omit) GPRS_Timer3 p_GPRS_Timer3 := omit //@sic R5s150676 change 4.7 sic@ + ) := //@sic R5-134916 sic@ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + locationUpdatingAccept := cs_LocUpdAcp_Common (p_PLMN, p_LAC, cs_MobileIdTMSIorPTMSI ('17'O, px_TMSI_Def), p_EPLMN, p_GPRS_Timer3) }; //---------------------------------------------------------------------------- @@ -95,7 +100,7 @@ module UTRAN_NAS_PDU_Templates { octetstring p_LAC, template (value) MobileIdentity p_IMSIMobileIdWithIEI, template (omit) PLMN_List p_EPLMN := omit) := //@sic R5-134916 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ locationUpdatingAccept := cs_LocUpdAcp_Common (p_PLMN, p_LAC, p_IMSIMobileIdWithIEI, p_EPLMN) }; //---------------------------------------------------------------------------- @@ -103,7 +108,7 @@ module UTRAN_NAS_PDU_Templates { template (value) RRCDataReqType cs_U_LocUpdAcp_NoMobId(octetstring p_PLMN, // @sic R5-112706 sic@ octetstring p_LAC, template (omit) PLMN_List p_EPLMN := omit) := //@sic R5-134916 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ locationUpdatingAccept := cs_LocUpdAcp_Common (p_PLMN, p_LAC, omit, p_EPLMN) }; @@ -114,7 +119,7 @@ module UTRAN_NAS_PDU_Templates { template (omit) PTMSI_Signature p_PTMSIsig, template (omit) MobileIdentity p_PTMSI, template (omit) PDP_ContextStatus p_PDP_ContextStatus) := // @sic R5-133604 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ routingAreaUpdateAccept := cs_RA_UpdAcc_Common (p_UpdateResult, p_RAI, p_PTMSIsig, @@ -132,14 +137,14 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_RAUpdReject(template (value) GMM_Cause p_RejectCause) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ routingAreaUpdateReject := cs_RAUpdReject_Common (p_RejectCause) }; //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_CM_ServAcc := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, SSNITZ, UTRAN) */ cmServiceAccept := { skipIndicator := '0000'B, mMProtocolDiscriminator := '0101'B, @@ -150,28 +155,28 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_CM_ServRej(RejCau p_RejCau) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cmServiceReject := cs_CM_ServRej (p_RejCau) }; //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_CallProc ( template (value) TI p_TI ):= - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ callProceeding := cs_CallProc_Common ( p_TI ) }; //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_Alert ( template (value) TI p_TI ) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ alertingdl := cs_Alert_Common ( p_TI ) }; //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_Connect ( template (value) TI p_TI ) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ connectdl := cs_Connect_Common ( p_TI ) }; @@ -191,7 +196,7 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (value) RRCDataReqType cs_U_ActivatePDPContextAccept(template (value) ACTIVATEPDPCONTEXTACCEPTdl p_ActivatePDPContextAccept) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ activatePDPContextAccept := p_ActivatePDPContextAccept }; @@ -204,24 +209,26 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- - template (value) RRCDataReqType cs_U_Disconnect ( template (value) TI p_Ti ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - disconnectDL := cs_Disconnect_Common(p_Ti) + template (value) RRCDataReqType cs_U_Disconnect(template (value) TI p_Ti, template (omit) FacilityIE p_Facility := omit ) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + disconnectDL := cs_Disconnect_Common(p_Ti, p_Facility) // @sic R5s150240 sic@ }; //---------------------------------------------------------------------------- - - template (value) RRCDataReqType cs_U_RelCmpl(template (value) TI p_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - releaseComplete := cs_RelCmpl_Common(p_Ti) + template (value) RRCDataReqType cs_U_ReleaseComplete(template (value) TI p_TI, + ProtocolDiscriminator p_PD := tsc_PD_CC, // Call related SS + template (omit) Cau p_Cau := omit, + template (omit) FacilityIE p_Facility := omit) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + releaseComplete := cs_RelCmpl_Common(p_TI, p_PD, p_Cau, p_Facility) }; - + //============================================================================ // PDU Templates: RRCDataIndType //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_AttachComplete := - { /* @status APPROVED (LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ attachComplete := cr_AttachComplete_Common }; @@ -230,7 +237,7 @@ module UTRAN_NAS_PDU_Templates { template (present) RRCDataIndType cr_U_DetachRequest(template DetachType p_Type := cr_DetachTypeOnSwitchOff, template MobileIdentity p_Ptmsi := cr_MobileIdAny('18'O) ifpresent, template PTMSI_Signature p_Signature := cr_PTMSI_Signature2Any ifpresent) := // @sic R5s110112 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s140387 : default values for p_Type and p_Ptmsi => removed at calling side sic@ */ detachRequest := cr_DetachReq_Common(p_Type, p_Ptmsi, p_Signature) }; @@ -238,11 +245,11 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_AttachReq(template (present) AttachType p_AttachType, - template (present) MobileIdentity p_MobId, - template (present) RoutingAreaId p_RAI, - template (present) KeySeq p_KeySeq, + template (present) MobileIdentity p_MobId := cr_MobileIdAny, + template (present) RoutingAreaId p_RAI := cr_RAI, + template (present) KeySeq p_KeySeq := ?, template (present) MS_RadioAccessCap_LV p_MS_RadioAccessCap := cr_MS_RadioAccessCapLVAny) := - { /* @status APPROVED (LTE_IRAT, POS) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ attachRequest := cr_AttachReq_Common(p_AttachType, p_MobId, p_RAI, p_KeySeq, p_MS_RadioAccessCap) }; @@ -295,14 +302,14 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_AuthFailAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationFailure := cr_AuthFailAny_Common }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_AuthAndCiphFailureAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationAndCipheringFailure := cr_AuthAndCiphFailure_Common }; @@ -310,28 +317,28 @@ module UTRAN_NAS_PDU_Templates { template (present) RRCDataIndType cr_U_AuthAndCiphRsp(template AuthRsp p_AuthRsp, template AuthRspExt p_AuthRspExt) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationAndCipheringResponse := cr_AuthAndCiphRsp_Common (p_AuthRsp, p_AuthRspExt) }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_AuthRspAnyExt := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationResponse := cr_AuthResponse_Common(cr_AuthRspExtAny) }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_AuthRspAnyNoExt := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ authenticationResponse := cr_AuthResponse_Common }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_LocationUpdatingRequest := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ locationUpdatingRequest := cr_LocUpdReq_Common(?) }; @@ -349,20 +356,20 @@ module UTRAN_NAS_PDU_Templates { template (present) LocUpdType p_Type := ?, // @sic R5-112114 sic@ template (present) LocAreaId p_LocAreaId := cr_LAI_Any_v, template (present) MS_Clsmk1 p_MSClsmk1 := cr_MS_Clsmk1_Any, - template (present) MobileIdentity p_MobileId := cr_MobileIdAny(omit), + template (present) MobileIdentity p_MobileId := cr_MobileIdAny, template MS_Clsmk2 p_MSClsmk2 := cr_MS_Clsmk2_Any_tlv('33'O)) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ locationUpdatingRequest := cr_LocUpdReq_Common(p_KeySeq, p_Type, p_LocAreaId, p_MSClsmk1, p_MobileId, p_MSClsmk2) }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_RA_UpdReqAny(template (present) UpdateType p_UpdateType, - template (present) RoutingAreaId p_RAI, - template PTMSI_Signature p_PTMSISig, - template (present) KeySeq p_KeySeq, + template (present) RoutingAreaId p_RAI := cr_RAI, + template PTMSI_Signature p_PTMSISig := cr_PTMSI_SignatureAny ifpresent, + template (present) KeySeq p_KeySeq := ?, template (present) MS_RadioAccessCap_LV p_MsRadioAccessCap := cr_MS_RadioAccessCapLVAny) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ routingAreaUpdateRequest := cr_RAURequest_Common(p_UpdateType, p_RAI, p_PTMSISig, @@ -398,56 +405,60 @@ module UTRAN_NAS_PDU_Templates { template (present) RRCDataIndType cr_U_PagRsp(template (present) KeySeq p_KeySeq, template (present) MobileIdentity p_MobileId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ pagingResponse := cr_PagRsp_Common ( p_KeySeq, p_MobileId ) }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_RAUpdComplete := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ routingAreaUpdateComplete:= cr_RAUpdComplete_Common }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_ESetup(template (present) Bcap p_Bcap := cr_BcapSpeechMO) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_IRAT, POS, UTRAN) */ esetup := cr_ESetup (p_Bcap) }; //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_ServReqAny(template (present) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - cmServiceRequest := cr_CM_ServReq ( p_KeySeq ) + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cmServiceRequest := cr_CM_ServReq(p_KeySeq) }; - template (present) RRCDataIndType cr_U_ServReq_MO_TMSI(template (present) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_IRAT) */ + template (present) RRCDataIndType cr_U_CMServReq_SS_MO(template (present) KeySeq p_KeySeq) := + { /* @status APPROVED (SSNITZ) */ + cmServiceRequest := cr_CM_ServReq(p_KeySeq, tsc_MOCallOrPacketModeConn, cr_MobileIdTMSI_lv(px_TMSI_Def), omit) + }; + + template (present) RRCDataIndType cr_U_ServReq_MO_TMSI(template (present) KeySeq p_KeySeq) := // @sic R5-153983 sic@ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ cmServiceRequest := cr_CM_ServReq(p_KeySeq, - '0001'B, //'Mobile originating call establishment or packet mode connection establishment' - cr_MobileIdTMSI_lv (px_TMSI_Def)) + tsc_MOCallOrPacketModeConn, + cr_MobileIdTMSI_lv(px_TMSI_Def)) }; - - template (present) RRCDataIndType cr_U_ServReq_MO_TMSI_Emergency (template (present) KeySeq p_KeySeq) := - /* @status APPROVED (LTE_IRAT) */ - //@sic R5s120111 sic@ - cr_U_ServReq_MO_Emergency ( p_KeySeq, cr_MobileIdTMSI_lv (px_TMSI_Def) ); + template (present) RRCDataIndType cr_U_ServReq_MO_Emergency(template (present) KeySeq p_KeySeq, - template (present) MobileIdentity p_MobileIdentity := cr_MobileIdAny(omit)) := - { /* @status APPROVED (LTE_IRAT) */ + template (present) MobileIdentity p_MobileIdentity := cr_MobileIdAny) := + { /* @status APPROVED (IMS_IRAT, LTE_IRAT, POS, UTRAN) */ //@sic R5s120111 sic@ cmServiceRequest := cr_CM_ServReq(p_KeySeq, '0010'B, //'Emergency call establishment' p_MobileIdentity) }; + template (present) RRCDataIndType cr_U_ServReq_MO_TMSI_Emergency(template (present) KeySeq p_KeySeq) := cr_U_ServReq_MO_Emergency(p_KeySeq, cr_MobileIdTMSI_lv(px_TMSI_Def)); /* @status APPROVED (LTE_IRAT, POS) + @sic R5s120111 sic@ */ + //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_ConnAck(template TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ connectAcknowledge := cr_ConnAck_Common(p_TI) }; @@ -456,7 +467,7 @@ module UTRAN_NAS_PDU_Templates { template (present) RRCDataIndType cr_U_ServiceRequest(template ServiceType p_ServiceType, template MobileIdentity p_PTMSI, template (present) KeySeq p_KeySeq) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ serviceRequest := { skipIndicator := '0000'B, gMMProtocolDiscriminator := tsc_GMM_PD, @@ -474,7 +485,7 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_TMSI_ReallocCmpl := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tmsiReallocationComplete := cr_TMSI_ReallocCmpl_Common }; @@ -493,7 +504,7 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_Imsi_DetachInd := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ imsiDetachIndication := cr_IMSI_DetachInd_Common (-, ?) // @sic R5s110777, R5-120624 sic@ }; @@ -507,7 +518,7 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_ActPDP_ContextReqMo(template (present) QualityOfService p_QualityOfService := cr_QualityOfService_Any) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) */ /* @sic R5s110771 sic@ */ activatePDPContextRequestul := cr_ActPDP_ContextReqMO_Common ( p_QualityOfService ) }; @@ -515,7 +526,7 @@ module UTRAN_NAS_PDU_Templates { //---------------------------------------------------------------------------- template (present) RRCDataIndType cr_U_Rel(template TI p_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ releaseUL := cr_Rel_Common(p_Ti) }; @@ -525,15 +536,13 @@ module UTRAN_NAS_PDU_Templates { callConfirmed := cr_CallConf_Common (p_TI, p_StrId) }; - template (value) RRCDataReqType cs_U_SetupDL(template (value) SETUPdl p_SETUPdl) := + template (value) RRCDataReqType cs_U_SetupMTCall(template (value) Bcap p_Bcap) := { /* @status APPROVED (LTE_IRAT, SSNITZ) */ - setupdl := p_SETUPdl + setupdl := cs_SetupMT_Common(p_Bcap, -, -, omit) // @sic R5s150422 sic@ Signal IE NOT present in 34.108 7.2.3.1 procedure }; - - template (value) RRCDataReqType cs_U_SetupMTCall(template (value) Bcap p_Bcap) := cs_U_SetupDL(cs_SetupMT_Common(p_Bcap)); /* @status APPROVED (LTE_IRAT) */ template (present) RRCDataIndType cr_U_SetupMOCall(template (present) Bcap p_Bcap) := - { /* @status APPROVED (LTE_IRAT, SSNITZ) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ setupul := cdr_SetupMO_Speech_Common(p_Bcap) }; @@ -543,23 +552,55 @@ module UTRAN_NAS_PDU_Templates { }; template (present) RRCDataIndType cr_U_Connect(template TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ connectul := cr_Connect_Common (p_TI) }; template (value) RRCDataReqType cs_U_ConnectAck(template (value) TI p_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ connectAcknowledge := cs_ConnAck_Common(p_TI) }; + template (value) RRCDataReqType cs_U_StartDTMFAck(template (value) TI p_TI, + KeypadFacility p_KPF) := + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + startDTMFAck := cs_StartDTMFAck(p_TI, p_KPF) + }; + + template (value) RRCDataReqType cs_U_StopDTMFAck(template (value) TI p_TI) := + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + stopDTMFAck := cs_StopDTMFAck(p_TI) + }; + + template (present) RRCDataIndType cr_U_StartDTMF(template (present) TI p_TI := ?, + template (present) KeypadFacility p_KPF := ?) := + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + startDTMF := cr_StartDTMF(p_TI, p_KPF) + }; + + template (present) RRCDataIndType cr_U_StopDTMF(template (present) TI p_TI := ?) := + { /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ) */ + stopDTMF := cr_StopDTMF(p_TI) + }; + //---------------------------------------------------------------------------- - template (value) RRCDataReqType cs_U_ReleaseComplete(template (value) TI p_TI, - B4_Type p_PD := '0011'B, // Call related SS - template (omit) Cau p_Cau := omit, - template (omit) FacilityIE p_Facility := omit) := - { /* @status APPROVED (POS) */ - releaseComplete := cs_RelCmpl_Common (p_TI, p_PD, p_Cau, p_Facility) + template (present) RRCDataIndType cr_U_Hold(template (present) TI p_TI) := + { /* @status APPROVED (SSNITZ) */ + hold := cr_Hold(p_TI) }; + //---------------------------------------------------------------------------- + + template (value) RRCDataReqType cs_U_HoldAck(template (value) TI p_TI) := + { /* @status APPROVED (SSNITZ) */ + holdAcknowledge := cs_HoldAck(p_TI) + }; + + //------------------------------------------------------------------------------ + template (present) RRCDataIndType cr_U_ServReqWithType(template (present) KeySeq p_KeySeq, + template (present) CMServType p_CMServType ) := + { /* @status APPROVED (POS) */ + cmServiceRequest := cr_CM_ServReq(p_KeySeq, p_CMServType ) + }; } diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RAB_Functions.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RAB_Functions.ttcn new file mode 100644 index 0000000..ad58f93 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RAB_Functions.ttcn @@ -0,0 +1,2706 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-16 14:21:27 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14456 $ +/******************************************************************************/ + +module UTRAN_RAB_Functions { + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + import from UTRAN_Parameters all; + import from UTRAN_Component all; + import from UTRAN_RRC_RAB_Templates all; + import from UTRAN_RRC_RAB_Templates_r9 all; + import from UTRAN_RRC_RAB_Templates_r10 all; + import from UTRAN_RRC_RAB_Templates_r11 all; + import from UTRAN_RRC_RAB_Templates_r12 all; + import from UTRAN_CellInfo all; + import from UTRAN_CommonFunctions all; + import from UTRAN_IRAT_CommonFunctions all; + import from UTRANGERAN_CommonFunctions all; + import from UTRAN_TTCN_ASP_Templates all; + import from UTRAN_NAS_PDU_Templates all; + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_CommonTemplates all; + import from UTRAN_RRC_Templates all; + import from UTRAN_RRC_Templates_r11 all; + import from UTRAN_ASN1_ASP_Templates all; + import from UTRAN_ASN1_ASP_Templates_r10 all; + import from UTRAN_ASN1_ASP_Templates_r11 all; + import from UTRAN_ASN1_ASP_Templates_r12 all; + import from UTRAN_ASN1_ASP_RAB_Templates all; + import from UTRAN_ASN1_ASP_RAB_Templates_r10 all; + import from UTRAN_ASN1_ASP_RAB_Templates_r11 all; + import from UTRAN_ASN1_ASP_RAB_Templates_r12 all; + import from UTRAN_TypeDefs all; + import from UTRAN_CommonAspDefs all; + import from UTRAN_ConfigurationSteps all; + import from CommonIratDefs all; + import from CommonDefs all; + import from Parameters all; + import from UpperTesterFunctions all; + import from IP_PTC_CtrlMsgs all; + + import from NAS_24008TypeDefs all; + import from NAS_24008Templates_IRAT all; + import from NAS_CommonTypeDefs all; + import from NAS_CommonTemplates all; + import from UTRAN_MDT_Templates all; + + const float tsc_DelaySetupFACH := 0.06; /* Delay in seconds used after sending the RAB SETUP in CELL_FACH state + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + const float tsc_DelaySetupFACH_TDD := 0.10; /* Delay in seconds used after sending the RAB SETUP in CELL_FACH state + Deviation from the value used in TCCN-2 TDD (0.06) as an exeption + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + + //---------------------------------------------------------------------- + // Init functions + //---------------------------------------------------------------------- + + /* + * @desc Function will return the RRC establishment cause based on the set PIXIT parameters + * @return template (value) EstablishmentCause + * @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) + */ + function f_GetMoEstCause() return template (value) EstablishmentCause + { + var template (value) EstablishmentCause v_EstablishmentCause; + + if (pc_Interactive and (px_RRC_PS_ServTested == ps_Interactive)) { + v_EstablishmentCause := originatingInteractiveCall; + } + else if (pc_Background and (px_RRC_PS_ServTested == ps_Background)) { + v_EstablishmentCause := originatingBackgroundCall; + } + else if (pc_Streaming and (px_RRC_PS_ServTested == ps_Streaming)) { + v_EstablishmentCause := originatingStreamingCall; + } + else if (px_RRC_PS_ServTested == ps_SubscribedTrafficClass) { // @sic R5s110771 sic@ + v_EstablishmentCause := originatingSubscribedTrafficCall; + } + else { + FatalError(__FILE__, __LINE__, "Configuration not supported"); + }; + return v_EstablishmentCause; + } + + /* + * @desc Function to receive the Service Request message + * @param p_CN_Domain + * @param p_Type (default value: ?) + * @param p_PTMSI_Def (default value: px_PTMSI_Def) + * @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) + */ + function f_UTRAN_GMM_ServReq(CN_DomainIdentity p_CN_Domain, + template (present) B3_Type p_Type := ?, + octetstring p_PTMSI_Def := px_PTMSI_Def) //@sic R5s150680 change 4.6 sic@ + runs on UTRAN_PTC + { + var START_Value v_START_Value := '00000000000000000000'B; + var RRC_DATA_IND v_RRC_DataInd; + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var KeySeq v_KeySeqPs := v_SecurityInfo.authKeys.AuthPS.KeySeq; + var template (present) RRCDataIndType v_ServiceRequest; /* @sic R5s150684 sic@ */ + + select (p_CN_Domain) { + case (cs_domain) { + v_ServiceRequest := cr_U_ServReqAny(p_Type); + } + case (ps_domain) { + v_ServiceRequest := cr_U_ServiceRequest(cr_ServiceType(p_Type), + cs_MobileIdTMSIorPTMSI(omit, p_PTMSI_Def), // @sic R5s110466 R5s150680 change 4.6 sic@ + v_KeySeqPs); + } + } + + U_Dc.receive(car_InitDirectTransfer(utran_CellDedicated, // @sic R5s110465 sic@ + tsc_RB3, + v_ServiceRequest)) -> value v_RRC_DataInd; /* @sic R5s150684: v_ServiceRequest sic@ */ + v_START_Value := v_RRC_DataInd.ttcn_start; + f_UTRAN_SS_SecurityDownloadStart(p_CN_Domain, v_START_Value); + } + + /* + * @desc Function for receiving the Activate PDP Request from UE + * @param p_ExpectedQualityOfService (default value: cr_QualityOfService_Any) + * @param p_StoreIMS_Nsapi (default value: false) + * @return ACTIVATEPDPCONTEXTREQUESTul + * @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) + */ + function f_UTRAN_PS_SessionAct_ReceivePDP_Req(template (present) QualityOfService p_ExpectedQualityOfService := cr_QualityOfService_Any, + boolean p_StoreIMS_Nsapi := false) //@sic R5s141127 sic@ + runs on UTRAN_PTC return ACTIVATEPDPCONTEXTREQUESTul + { + var RRC_DATA_IND v_RRC_DataInd; + + U_Dc.receive(car_PS_UplinkDirectTransfer(utran_CellDedicated, // @sic R5s110465 sic@ + tsc_RB3, + cr_U_ActPDP_ContextReqMo(p_ExpectedQualityOfService))) // @sic R5s110771 sic@ + -> value v_RRC_DataInd; + + // Store requested NSAPI as IMS NSAPI @sic R5s141127 sic@ + if (p_StoreIMS_Nsapi) { + f_UTRAN_MobileInfo_IMS_NSAPI_Set(v_RRC_DataInd.msg.activatePDPContextRequestul.requestedNSAPI.nSAPI_Value); + } + + return v_RRC_DataInd.msg.activatePDPContextRequestul; + } + + /* + * @desc Increments the currently stored start value by 2, so as to emulate the 25.331 clause 8.5.9 + * This mechanism will not work if more than 4096 messages [FRame numbers for TM mode in MAC] have been passed since last transmission + * @param p_Start + * @return START_Value + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_CalculateStartValue_ConnectedMode(START_Value p_Start) return START_Value + { + var START_Value v_START_Value := int2bit((bit2int(p_Start) + 2), 20); + return v_START_Value; + } + + /* + * @desc Initialise QoS, Delay and Traffic Class + * @param p_CellId + * @param p_RB_Configuration (default value: cell_DCH_64kPS_RAB_SRB) + * @return template (value) QualityOfService + * @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) + */ + function f_UTRAN_InitialiseQoS(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_RB_Configuration := cell_DCH_64kPS_RAB_SRB) + runs on UTRAN_PTC return template (value) QualityOfService + { + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var B3_Type v_DlyClass; + var B3_Type v_TrafficClass; + var template (value) QualityOfService v_QualityOfService; + var B8_Type v_MaxSDU_Size := '00100000'B;//maxSDU_Size is 320 + var B8_Type v_MaxBitRateUL, v_MaxBitRateDL; + var B4_Type v_PeakThroughput; + var template (omit) B8_Type v_BitRateExt := omit; + var B8_Type v_BitRateUL_64kbps := '01000000'B;//64kbps + + if (pc_Interactive and ((px_RRC_PS_ServTested == ps_Interactive) or (px_RRC_PS_ServTested == ps_SubscribedTrafficClass))) { // @sic R5s110771 sic@ + v_DlyClass := '011'B; + v_TrafficClass := '011'B; + } + else if (pc_Background and (px_RRC_PS_ServTested == ps_Background)) { + v_DlyClass := '100'B; + v_TrafficClass := '100'B; + } + else {//Default values for all other cases + v_DlyClass := '011'B; + v_TrafficClass := '011'B; + } + + if (v_FDD_TDD_Mode == UTRAN_FDD) {//Cell is FDD + // pc_HSDSCH_UE_Category_FDD is used to determine the QoS as MAC-ehs and dual cell configuration is not configured. Ref: 25.331 cl. 10.3.3.25 Note 5, 6 and 12 + + select (pc_HSDSCH_UE_Category_FDD) { // @sic R5w140207 sic@ + case (1, 2) { + v_PeakThroughput := '1000'B;//PTC=8 + v_MaxBitRateDL := '10001001'B;//Downlink bit rate=1173 kbps + if ((pc_EDCH_UE_Category_FDD == 4) or (pc_EDCH_UE_Category_FDD == 6)) { // @sic R5w140207 sic@ + v_PeakThroughput := '1001'B;//PTC=9 + } + } + case (3, 4){ + v_PeakThroughput := '1000'B;//PTC=8 + v_MaxBitRateDL := '10010010'B;//Downlink bit rate=1759 kbps + if ((pc_EDCH_UE_Category_FDD == 4) or (pc_EDCH_UE_Category_FDD == 6)) { // @sic R5w140207 sic@ + v_PeakThroughput := '1001'B;//PTC=9 + } + } + case (5, 6) { + v_PeakThroughput := '1001'B;//PTC=9 + v_MaxBitRateDL := '10101110'B;//Downlink bit rate=3520 kbps + } + case (7, 8) { + v_PeakThroughput := '1001'B;//PTC=9 + v_MaxBitRateDL := '11100000'B;//Downlink bit rate=6720 kbps + } + case (9) { + v_PeakThroughput := '1001'B;//PTC=9 + v_MaxBitRateDL := '11100000'B;//Downlink bit rate=9600 kbps + v_BitRateExt := '00001010'B; + } + case (10) { + v_PeakThroughput := '1001'B;//PTC=9 + v_MaxBitRateDL := '11111110'B;//Downlink bit rate=13400 kbps + v_BitRateExt := '00110000'B; + } + case (11) { + v_MaxBitRateDL := '10000011'B;//Downlink bit rate=800 kbps + select (pc_EDCH_UE_Category_FDD) { // @sic R5w140207 sic@ + case (2, 3, 4) { + v_PeakThroughput := '1000'B;//PTC=8 + } + case (4, 6) { + v_PeakThroughput := '1001'B;//PTC=9 + } + case else { + v_PeakThroughput := '0111'B;//PTC=7 + } + } + } + case (12) { + v_MaxBitRateDL := '10010000'B;//Downlink bit rate=1600 kbps + select (pc_EDCH_UE_Category_FDD) { // @sic R5w140207 sic@ + case (4, 6) { + v_PeakThroughput := '1001'B;//PTC=9 + } + case else { + v_PeakThroughput := '1000'B;//PTC=8 + } + } + } + case else { + FatalError(__FILE__, __LINE__, "Invalid HSDSCH UE Category"); + } + } + + // pc_EDCH_UE_Category is used to determine the QoS for UL + select (pc_EDCH_UE_Category_FDD) { // @sic R5w140207 sic@ + case (1) { v_MaxBitRateUL := oct2bit('81'O); } //640 kbps for EDCH category 1 UE + case (2) { v_MaxBitRateUL := oct2bit('8B'O); } //1280 kbps for EDCH category 2 UE + case (3) { v_MaxBitRateUL := oct2bit('8C'O); } //1344 kbps for EDCH category 3 UE + case (4) { v_MaxBitRateUL := oct2bit('A1'O); } //2688 kbps for EDCH category 4 UE + case (5) { v_MaxBitRateUL := oct2bit('94'O); } //1856 kbps for EDCH category 5 UE + case (6) { v_MaxBitRateUL := oct2bit('CC'O); } //5440 kbps for EDCH category 6 UE + case else { + FatalError(__FILE__, __LINE__, "Incorrect value of pc_EDCH_UE_Category_FDD"); // @sic R5w140207 sic@ + } + } + } + else {//Cell is TDD + v_PeakThroughput := '0100'B; + + select (pc_HSDSCH_UE_Category_TDD) { // @sic R5w140207 sic@ + case (1, 2, 3, 4, 5, 6) { + v_MaxBitRateDL := '10001100'B; //Downlink bit rate=1216 kbps + } + case (7, 8, 9, 10, 11, 12) { + v_MaxBitRateDL := '10010110'B;//Downlink bit rate=1792 kbps + } + case (13, 14, 15) { + v_MaxBitRateDL := '10100010'B;//Downlink bit rate=3648 kbps + } + case else { + FatalError(__FILE__, __LINE__, "Invalid HSDSCH UE Category"); + } + } + + select (pc_EDCH_UE_Category_TDD) { // @sic R5w140207 sic@ + // pc_EDCH_UE_Category is used to determine the QoS for UL + case (1) { v_MaxBitRateUL := oct2bit('7D'O); } //551 kbps for EDCH category 1 UE + case (2) { v_MaxBitRateUL := oct2bit('84'O); } //832 kbps for EDCH category 2 UE + case (3) { v_MaxBitRateUL := oct2bit('89'O); } //1106 kbps for EDCH category 3 UE + case (4) { v_MaxBitRateUL := oct2bit('8A'O); } //1170 kbps for EDCH category 4 UE + case (5) { v_MaxBitRateUL := oct2bit('9A'O); } //2232 kbps for EDCH category 5 UE + case (6) { v_MaxBitRateUL := oct2bit('9A'O); } //2232 kbps for EDCH category 6 UE + case else { + FatalError(__FILE__, __LINE__, "Incorrect value of pc_EDCH_UE_Category_TDD"); // @sic R5w140207 sic@ + } + } + } + + select (p_RB_Configuration) { + case (cell_FACH_PS, cell_FACH_HS, cell_DCH_64kPS_RAB_SRB, cell_FACH_UL_PS) { //@sic R5-150125 feFACH sic@ + v_QualityOfService := cs_QoS_InteractiveOrBackgroundMT(v_DlyClass, v_TrafficClass); + } + case (cell_DCH_HS_DSCH) { + v_QualityOfService := cds_QoS_InteractiveOrBackgroundMT_HS(v_DlyClass, + v_TrafficClass, + v_PeakThroughput, + v_MaxSDU_Size, + v_BitRateUL_64kbps, + v_MaxBitRateDL, + v_BitRateExt); + } + case (cell_DCH_E_HS) { + v_QualityOfService := cds_QoS_InteractiveOrBackgroundMT_HS(v_DlyClass, + v_TrafficClass, + v_PeakThroughput, + v_MaxSDU_Size, + v_MaxBitRateUL, + v_MaxBitRateDL, + v_BitRateExt); + } + case else { + FatalError(__FILE__, __LINE__, "RAB Configuration not supported"); + } + } + return v_QualityOfService; + } + + //---------------------------------------------------------------------- + // IP handling + //---------------------------------------------------------------------- + /* + * @desc Return the RB used in the configuration RB20/25 + * @param p_RB_Configuration + * @return integer + * @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) + */ + function fl_UTRAN_IP_Handling_GetDrbId(RB_ConfigType p_RB_Configuration) return integer + { + var integer v_DrbId; + + select (p_RB_Configuration) { + case (cell_DCH_64kPS_RAB_SRB, cell_FACH_PS, cell_Four_DTCH_PS_CS) { + v_DrbId := tsc_RB20; + } + case (cell_DCH_E_HS, cell_DCH_HS_DSCH, cell_E_HS, cell_DCH_dlSRB_E_HS, cell_FACH_HS, cell_FACH_UL_PS, cell_FACH_UL_FallBack) { + //@sic R5-150125 feFACH sic@ + v_DrbId := tsc_RB25; + } + case else { + FatalError(__FILE__, __LINE__, "Configuration not supported"); + } + } + return v_DrbId; + } + + /* + * @desc start DHCP and ICMPv6 server for given RAB 20 or RAB 25 depending on the configuration + * @param p_PdnIndex + * @param p_RB_Configuration + * @status APPROVED (IMS, LTE_A, LTE_IRAT, UTRAN) + */ + function f_UTRAN_IP_Handling_Start_Configuration(PDN_Index_Type p_PdnIndex, + RB_ConfigType p_RB_Configuration) runs on UTRAN_PTC + { // @sic R5-125676 sic@ + var UTRAN_CellId_Type v_CellId := utran_CellDedicated; // @sic R5s140578 change 2.1: cell id is always utran_CellDedicated sic@ + var integer v_DrbId := fl_UTRAN_IP_Handling_GetDrbId (p_RB_Configuration); // @sic R5s140161 sic@ + + f_IP_Handling_Start(IP, p_PdnIndex, cs_DrbInfo_UTRAN(v_CellId, v_DrbId)); + } + + /* + * @desc To reconfigure IP to a new UTRAN cell & RB + * @param p_CellId + * @param p_RB_Configuration + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_IP_Handling_Change_Configuration(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_RB_Configuration) runs on UTRAN_PTC + { + var integer v_DrbId := fl_UTRAN_IP_Handling_GetDrbId (p_RB_Configuration); //@sic R5s140161 sic@ + + f_IP_ChangeDrbMappingUTRAN(IP, p_CellId, v_DrbId); /* @sic R5s150648 Change 5.4: f_IP_ChangeDrbMappingUTRAN sic@ */ + } + + //---------------------------------------------------------------------- + // Common Functions for SS Configuration + //---------------------------------------------------------------------- + /* + * @desc Configure DL DPCH 1 (FDD) + * @param p_CellId + * @param p_DL_DPCHInfo + * @param p_DL_TrChConfig + * @param p_DL_TrCHInfo + * @param p_DL_TrLogMapping + * @param p_ActivationTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_SS_ConfigPS_DL_DPCH1_FDD(UTRAN_CellId_Type p_CellId, + template (value) DPCHInfo_r5OrLater_FDD p_DL_DPCHInfo, + template (value) CphyTrchConfigReq p_DL_TrChConfig, + template (value) TrCHInfo p_DL_TrCHInfo, + template (value) TrCH_LogCHMappingList1 p_DL_TrLogMapping, + template (value) SS_ActivationTime p_ActivationTime) runs on UTRAN_PTC + { + f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, + tsc_DL_DPCH1, + p_DL_DPCHInfo, + p_ActivationTime)); + + f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, + tsc_DL_DPCH1, + cs_TrChConfigTypeDCH_NoSHO, + p_DL_TrChConfig)); + + f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110216 sic@ + tsc_DL_DPCH1, + cs_UE_Info, + p_DL_TrCHInfo, + p_DL_TrLogMapping, + p_ActivationTime)); + } + + /* + * @desc Configure UL DPCH 1 (FDD) + * @param p_CellId + * @param p_UL_DPCHInfo + * @param p_UL_TrChConfig + * @param p_UL_TrCHInfo + * @param p_UL_TrLogMapping + * @param p_ActivationTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_SS_ConfigPS_UL_DPCH1_FDD(UTRAN_CellId_Type p_CellId, + template (value) DPCHInfo_r5OrLater_FDD p_UL_DPCHInfo, + template (value) CphyTrchConfigReq p_UL_TrChConfig, + template (value) TrCHInfo p_UL_TrCHInfo, + template (value) TrCH_LogCHMappingList1 p_UL_TrLogMapping, + template (value) SS_ActivationTime p_ActivationTime) runs on UTRAN_PTC + { + f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, + tsc_UL_DPCH1, + p_UL_DPCHInfo, + p_ActivationTime)); + + f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, + tsc_UL_DPCH1, + cs_TrChConfigTypeDCH_NoSHO, + p_UL_TrChConfig)); + + f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_FDD(utran_CellDedicated, // @sic R5s110216 sic@ + tsc_UL_DPCH1, + cs_UE_Info, + p_UL_TrCHInfo, + p_UL_TrLogMapping, + p_ActivationTime)); + } + + //---------------------------------------------------------------------------- + /* + * @desc Configure DL DPCH 1 (TDD) + * @param p_CellId + * @param p_DL_DPCHInfo + * @param p_DL_TrChConfig + * @param p_DL_TrCHInfo + * @param p_DL_TrLogMapping + * @param p_ActTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_SS_ConfigPS_DL_DPCH1_TDD(UTRAN_CellId_Type p_CellId, + template (value) DPCHInfo_r5OrLater_TDD p_DL_DPCHInfo, + template (value) CphyTrchConfigReq_TDD p_DL_TrChConfig, + template (value) TrCHInfo_TDD p_DL_TrCHInfo, + template (value) TrCH_LogCHMappingList1_TDD p_DL_TrLogMapping, + template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC + { + f_UTRAN_CPHY_RL_Modify (cas_RL_Modify_DPCHInfo_TDD(p_CellId, + tsc_DL_DPCH1, + p_DL_DPCHInfo, + p_ActTime)); + + f_UTRAN_CPHY_TrCH_Config (cas_TrChCfgInfo_TDD(p_CellId, + tsc_DL_DPCH1, + cs_TrChConfigTypeDCH_NoSHO, + p_DL_TrChConfig)); + + f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ + tsc_DL_DPCH1, + cs_UE_Info, + p_DL_TrCHInfo, + p_DL_TrLogMapping, + p_ActTime)); + } + + /* + * @desc Configure UL DPCH 1 (TDD) + * @param p_CellId + * @param p_UL_DPCHInfo + * @param p_UL_TrChConfig + * @param p_UL_TrCHInfo + * @param p_UL_TrLogMapping + * @param p_ActTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_SS_ConfigPS_UL_DPCH1_TDD(UTRAN_CellId_Type p_CellId, + template (value) DPCHInfo_r5OrLater_TDD p_UL_DPCHInfo, + template (value) CphyTrchConfigReq_TDD p_UL_TrChConfig, + template (value) TrCHInfo_TDD p_UL_TrCHInfo, + template (value) TrCH_LogCHMappingList1_TDD p_UL_TrLogMapping, + template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC + { + f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_TDD(p_CellId, + tsc_UL_DPCH1, + p_UL_DPCHInfo, + p_ActTime)); + + f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, + tsc_UL_DPCH1, + cs_TrChConfigTypeDCH_NoSHO, + p_UL_TrChConfig)); + + f_UTRAN_CMAC_Config(cas_CMAC_ReconfigInfo_TDD(utran_CellDedicated, // @sic R5s120750 sic@ + tsc_UL_DPCH1, + cs_UE_Info, + p_UL_TrCHInfo, + p_UL_TrLogMapping, + p_ActTime)); + } + + /* + * @desc Configure HSDPA (FDD) + * @param p_CellId + * @param p_PhysicalChannelInfo_HSPDSCH + * @param p_ActTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_SS_Config_HSDPA_FDD(UTRAN_CellId_Type p_CellId, + template (value) RL_Setup_FDD_PhysicalChannelInfo_Type p_PhysicalChannelInfo_HSPDSCH, + template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC + { + var template (value) HS_DSCHMACdFlows v_HS_DSCHMacdFlows := cs_HS_DSCHMacdFlows(cs_HARQ_Info_FDD, + cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue))); + var template (value) CphyTrchConfigReq v_CphyTrchConfigReq := cs_CphyTrchConfigReq_HS_DSCHMacdFlows_FDD(p_ActTime, v_HS_DSCHMacdFlows); + var template (value) TrCHInfo v_TrCHInfo_HS_DSCHMacdFlows := cs_TrCHInfo_HS_DSCHMacdFlows_FDD(v_HS_DSCHMacdFlows); // @sic R5s120397 sic@ + + // Configure HSDPA channels + f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_FDD(p_CellId, + tsc_HSPDSCH, + p_PhysicalChannelInfo_HSPDSCH, + p_ActTime)); + + f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_FDD(p_CellId, + tsc_HSPDSCH, + cs_TrChConfigTypeNonDCH, + v_CphyTrchConfigReq)); + + // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. + f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_FDD(p_CellId)); + + f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_FDD(p_CellId, + tsc_HSPDSCH, + cs_UE_Info (omit, omit), + v_TrCHInfo_HS_DSCHMacdFlows, + cs_TrLogMappingDL_MAC_HS)); + } + + /* + * @desc Configure HSDPA (TDD) + * @param p_CellId + * @param p_ActTime + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_SS_Config_HSDPA_TDD(UTRAN_CellId_Type p_CellId, + template (value) SS_ActivationTime p_ActTime) runs on UTRAN_PTC + { + var template (value) RL_Setup_TDD_PhysicalChannelInfo_Type v_PhysicalChannelInfo_HSPDSCH := cs_DL_Cell_DCH_HS_DSCH_PS_RAB_TDD(pc_HSDSCH_UE_Category_TDD, // @sic R5w140207 sic@ + cs_DL_HSPDSCH_Information_TDD(cs_HS_SCCH_Info_TDD, + cs_HS_PDSCH_Midamble_Configuration_TDD128), + false); + var template (value) HS_DSCHMACdFlows_TDD v_HS_DSCHMacdFlows := cs_HS_DSCHMacdFlows_TDD(cs_HARQ_Info_TDD, + cs_SS_AddOrReconfMAC_dFlow(cs_SS_MAC_hs_AddReconfQueue(cs_MAC_hs_AddReconfQueue))); // @sic R5s120397 sic@ + var template (value) CphyTrchConfigReq_TDD v_CphyTrchConfigReq_HSPDSCH := cs_CphyTrchConfigReq_HS_DSCHMacdFlows_TDD(p_ActTime, v_HS_DSCHMacdFlows); + var template (value) TrCHInfo_TDD v_TrCHInfo_HS_DSCHMacdFlows := cs_TrCHInfo_HS_DSCHMacdFlows_TDD(v_HS_DSCHMacdFlows); + + // Configure HSDPA channels + f_UTRAN_CPHY_RL_Setup(cas_RL_SetupInfo_TDD(p_CellId, + tsc_HSPDSCH, + v_PhysicalChannelInfo_HSPDSCH, + p_ActTime)); + + f_UTRAN_CPHY_TrCH_Config(cas_TrChCfgInfo_TDD(p_CellId, + tsc_HSPDSCH, + cs_TrChConfigTypeNonDCH, + v_CphyTrchConfigReq_HSPDSCH)); + + // To configure/Reconfigure MAC_HS in Explicit TFRC config mode. + f_UTRAN_CMAC_MACHs_Config(p_CellId, cas_CMAC_MAChs_TFRC_ExplicitConfigReq_TDD(p_CellId)); + + f_UTRAN_CMAC_Config(cas_CMAC_CfgInfo_TDD(p_CellId, // @sic R5s130604 sic@ + tsc_HSPDSCH, + cs_UE_Info (omit, omit), + v_TrCHInfo_HS_DSCHMacdFlows, + cs_TrLogMappingDL_MAC_HS_TDD)); + } + + /* + * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. + * @param p_CellId + * @param p_UL_DCH (default value: tsc_UL_DCH1) + * @param p_DL_DCH (default value: tsc_DL_DCH1) + * @param p_UL_DTCH (default value: tsc_UL_DTCH1) + * @param p_DL_DTCH (default value: tsc_DL_DTCH1) + * @param p_ActTime (default value: cs_ActivateNow) + * @param p_LoopbackRLC_PDU (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_SS_Config_64kPS_RAB(UTRAN_CellId_Type p_CellId, + TransportChannelIdentity p_UL_DCH := tsc_UL_DCH1, + TransportChannelIdentity p_DL_DCH := tsc_DL_DCH1, + LogicalChannelIdentity p_UL_DTCH := tsc_UL_DTCH1, + LogicalChannelIdentity p_DL_DTCH := tsc_DL_DTCH1, + template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, + boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ + runs on UTRAN_PTC + { /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UL_ScramblingCode v_UL_ScramblingCode; + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); // @sic R5s130195 Utran Release sic@ + var template (value) CphyTrchConfigReq v_UL_TrChConfig_FDD; + var template (value) CphyTrchConfigReq v_DL_TrChConfig_FDD; + var template (value) TrCHInfo v_UL_TrCHInfo_FDD; + var template (value) TrCHInfo v_DL_TrCHInfo_FDD; + var template (value) TrCH_LogCHMappingList1 v_UL_TrLogMapping_FDD; + var template (value) TrCH_LogCHMappingList1 v_DL_TrLogMapping_FDD; + var template (value) CphyTrchConfigReq_TDD v_UL_TrChConfig_TDD; + var template (value) CphyTrchConfigReq_TDD v_DL_TrChConfig_TDD; + var template (value) TrCHInfo_TDD v_UL_TrCHInfo_TDD; + var template (value) TrCHInfo_TDD v_DL_TrCHInfo_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_UL_TrLogMapping_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_DL_TrLogMapping_TDD; + var template (value) DPCHInfo_r5OrLater_FDD v_UL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_FDD v_DL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_TDD v_UL_DPCHInfo_TDD; + var template (value) DPCHInfo_r5OrLater_TDD v_DL_DPCHInfo_TDD; + + if (v_FDD_TDD_Mode == UTRAN_FDD) { + + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, + cs_DCH_336_148_UL_Info_FDD(p_UL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); + v_DL_TrChConfig_FDD := cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, + cs_DCH_336_148_DL_Info_FDD(p_DL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)); + v_UL_TrCHInfo_FDD := cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD(p_UL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); + v_DL_TrCHInfo_FDD := cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_336_148_FDD(p_DL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)); + v_UL_TrLogMapping_FDD := cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB20, p_UL_DCH, p_UL_DTCH); + v_DL_TrLogMapping_FDD := cs_TrLogMappingDL_4DCCH_1DTCH_PS(p_DL_DCH, p_DL_DTCH); + + select (v_FddTddMessageClass) { + case (FDDr8, FDDr9) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + // Same reconfiguration for FDDr8 and FDDr9 + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + v_UL_ScramblingCode)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_DL_FDD(cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_64k_PS, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + -, + tsc_DL_TxPower_DPCH_64k)); + } + case (FDDr10) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r10_Extension_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r10_Extension_FDD(cs_DL_DPCH_FDD_r10(cs_DL_CommonInformationRB_SetUp_FDD_r10(tsc_DL_DPCH1_SFP_64k_PS, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + -, + tsc_DL_TxPower_DPCH_64k))); + } + case (FDDr11) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUp_FDD_r11(tsc_DL_DPCH1_SFP_64k_PS, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + -, + tsc_DL_TxPower_DPCH_64k))); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r12_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r12_Extension_FDD(cs_DL_DPCH_FDD_r12(cs_DL_CommonInformationRB_SetUp_FDD_r12(tsc_DL_DPCH1_SFP_64k_PS_r12, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + -, + tsc_DL_TxPower_DPCH_64k))); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_Common_FDD(p_ActTime, + cs_DCH_336_148_UL_Info_FDD(p_UL_DCH), + -, -, -, -, -, -, -, -, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx_r12)); + v_UL_TrCHInfo_FDD := cs_TrCHInfoExtension_ULTFCS_r12(cs_TrChInfoTrCHListUL_336_148_FDD(p_UL_DCH), + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx_r12)); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not supported"); + } + } + f_SS_ConfigPS_DL_DPCH1_FDD(p_CellId, v_DL_DPCHInfo_FDD, v_DL_TrChConfig_FDD, v_DL_TrCHInfo_FDD, v_DL_TrLogMapping_FDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_FDD(p_CellId, v_UL_DPCHInfo_FDD, v_UL_TrChConfig_FDD, v_UL_TrCHInfo_FDD, v_UL_TrLogMapping_FDD, p_ActTime); + + } else if (v_FDD_TDD_Mode == UTRAN_TDD) { + // Step 1: Configure a dedicated channel in the UTRAN TDD configuration according to 34.108 cl. 6.11.5.4.1.26 + + v_UL_TrChConfig_TDD := cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, + cs_DCH_336_148_UL_Info_TDD(p_UL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); + v_DL_TrChConfig_TDD := cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, + cs_DCH_336_148_DL_Info_TDD(p_DL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); + v_UL_TrCHInfo_TDD := cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_336_148_TDD(p_UL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); + v_DL_TrCHInfo_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_336_148_TDD(p_DL_DCH), + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); + v_UL_TrLogMapping_TDD := cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB20, p_UL_DCH, p_UL_DTCH); + v_DL_TrLogMapping_TDD := cs_TrLogMappingDL_4DCCH_1DTCH_PS_TDD(p_DL_DCH, p_DL_DTCH); + + select (v_FddTddMessageClass) { + case (TDDr9){ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD(cs_UL_DPCH_64k_PS_TDD); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_DL_TDD(cs_DL_DPCH_64k_PS_TDD); + } + case (TDDr10){ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD(cs_UL_DPCH_64k_PS_TDD); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD))); + } + case (TDDr11){ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD), omit)); + } + case (TDDr12){ /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r12_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r12_Extension_TDD(cs_DL_DPCH_TDD_r12(cs_DL_DPCH_InfoPerRL_64k_PS_TDD_r12), omit)); + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not supported"); + } + } + f_SS_ConfigPS_DL_DPCH1_TDD(p_CellId, v_DL_DPCHInfo_TDD, v_DL_TrChConfig_TDD, v_DL_TrCHInfo_TDD, v_DL_TrLogMapping_TDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_TDD(p_CellId, v_UL_DPCHInfo_TDD, v_UL_TrChConfig_TDD, v_UL_TrCHInfo_TDD, v_UL_TrLogMapping_TDD, p_ActTime); + } + // Setup radio bearer B20. + //* Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 + f_UTRAN_SS_RB20_AM_PS_Cfg(p_CellId, cs_OctetModeRLC_Size336, p_UL_DTCH, p_DL_DTCH); + + // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ + if (not(p_LoopbackRLC_PDU)) { + f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); + } + + f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_64kPS_RAB_SRB); + } + + /* + * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. + * @param p_CellId + * @status APPROVED (LTE_IRAT) + */ + function f_SS_Config_64kPS_DCH4_RAB(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + f_SS_Config_64kPS_RAB(p_CellId, tsc_UL_DCH4, tsc_DL_DCH4, tsc_UL_DTCH4, tsc_DL_DTCH4); /* @sic R5s150684 sic@ */ + } + + /* + * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. + * @param p_CellId + * @param p_ActTime (default value: cs_ActivateNow) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_SS_Config_ConvSpeech_RAB(UTRAN_CellId_Type p_CellId, + template (value) SS_ActivationTime p_ActTime := cs_ActivateNow) runs on UTRAN_PTC + { /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UL_ScramblingCode v_UL_ScramblingCode; + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); + var template (value) CphyTrchConfigReq v_UL_TrChConfig_FDD; + var template (value) CphyTrchConfigReq v_DL_TrChConfig_FDD; + var template (value) TrCHInfo v_UL_TrCHInfo_FDD; + var template (value) TrCHInfo v_DL_TrCHInfo_FDD; + var template (value) TrCH_LogCHMappingList1 v_UL_TrLogMapping_FDD; + var template (value) TrCH_LogCHMappingList1 v_DL_TrLogMapping_FDD; + var template (value) CphyTrchConfigReq_TDD v_UL_TrChConfig_TDD; + var template (value) CphyTrchConfigReq_TDD v_DL_TrChConfig_TDD; + var template (value) TrCHInfo_TDD v_UL_TrCHInfo_TDD; + var template (value) TrCHInfo_TDD v_DL_TrCHInfo_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_UL_TrLogMapping_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_DL_TrLogMapping_TDD; + var template (value) DPCHInfo_r5OrLater_FDD v_UL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_FDD v_DL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_TDD v_UL_DPCHInfo_TDD; + var template (value) DPCHInfo_r5OrLater_TDD v_DL_DPCHInfo_TDD; + + if (v_FDD_TDD_Mode == UTRAN_FDD) { + + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, + cs_DCH_81_103_60_148_DL_FDD, + cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfoBelow64k)); + v_DL_TrChConfig_FDD := cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, + cs_DCH_81_103_60_148_UL_FDD, + cs_TFCS_Cmpl0_1_11_12_13_23_Rx); + v_UL_TrCHInfo_FDD := cs_TrChInfoUL_122_AMR_FDD; + v_DL_TrCHInfo_FDD := cs_TrChInfoDL_122_AMR_FDD; + v_UL_TrLogMapping_FDD := cs_TrLogMappingUL_4DCCH_3DTCH; + v_DL_TrLogMapping_FDD := cs_TrLogMappingDL_4DCCH_3DTCH; + + select (v_FddTddMessageClass) { + case (FDDr8, FDDr9) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_Speech, + pl0_84, + v_UL_ScramblingCode)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_DL_FDD(cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUpSpeech(tsc_DL_DPCH1_SFP_Speech), + tsc_DL_DPCH1_ChC_Speech)); + } + case (FDDr10) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_Speech, + pl0_84, + v_UL_ScramblingCode)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r10_Extension_FDD(cs_DL_DPCH_FDD_r10(cs_DL_CommonInformationRB_SetUpSpeech_r10(tsc_DL_DPCH1_SFP_Speech), + tsc_DL_DPCH1_ChC_Speech))); + } + case (FDDr11) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_Speech, + pl0_84, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUpSpeech_r11(tsc_DL_DPCH1_SFP_Speech), + tsc_DL_DPCH1_ChC_Speech))); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_Speech, + pl0_84, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r12_Extension_FDD(cs_DL_DPCH_FDD_r12(cs_DL_CommonInformationRB_SetUpSpeech_r12(tsc_DL_DPCH1_SFP_Speech_r12), + tsc_DL_DPCH1_ChC_Speech))); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_Common_FDD(p_ActTime, + cs_DCH_81_103_60_148_UL_FDD, + -, -, -, -, -, -, -, -, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_1_11_12_13_23_Rx_r12)); + v_UL_TrCHInfo_FDD := cs_TrCHInfoExtension_ULTFCS_r12(cs_TrChInfoTrCHListUL_122_AMR_FDD, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_1_11_12_13_23_Rx_r12)); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not handled"); + } + } + f_SS_ConfigPS_DL_DPCH1_FDD(p_CellId, v_DL_DPCHInfo_FDD, v_DL_TrChConfig_FDD, v_DL_TrCHInfo_FDD, v_DL_TrLogMapping_FDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_FDD(p_CellId, v_UL_DPCHInfo_FDD, v_UL_TrChConfig_FDD, v_UL_TrCHInfo_FDD, v_UL_TrLogMapping_FDD, p_ActTime); + } + else if (v_FDD_TDD_Mode == UTRAN_TDD) { + + v_UL_TrChConfig_TDD := cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, + cs_DCH_81_103_60_148_UL_TDD, + cs_TFCS_Cmpl0_1_11_12_13_23_Rx); + v_DL_TrChConfig_TDD := cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, + cs_DCH_81_103_60_148_DL_TDD, + cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfo_TDD)); + v_UL_TrCHInfo_TDD := cs_TrChInfoUL_122_AMR_TDD; + v_DL_TrCHInfo_TDD := cs_TrChInfoDL_122_AMR_TDD; + v_UL_TrLogMapping_TDD := cs_TrLogMappingUL_4DCCH_3DTCH_TDD; + v_DL_TrLogMapping_TDD := cs_TrLogMappingDL_4DCCH_3DTCH_TDD; + + // Step 1: Configure a dedicated channel in the UTRAN TDD configuration according to 34.108 cl. 6.11.5.4.1.26 + select (v_FddTddMessageClass) { + case (TDDr9) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD(cs_UL_DPCH_Speech_TDD); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_DL_TDD(cs_DL_DPCH_122_AMR_TDD); + } + case (TDDr10) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD(cs_UL_DPCH_Speech_TDD); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_Speech_TDD))); + } + case (TDDr11) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_Speech_TDD_r11)); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_Speech_TDD))); + + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_Speech_TDD_r11)); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r12_Extension_TDD(cs_DL_DPCH_TDD_r12(cs_DL_DPCH_InfoPerRL_Speech_TDD_r12))); + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + f_SS_ConfigPS_DL_DPCH1_TDD(p_CellId, v_DL_DPCHInfo_TDD, v_DL_TrChConfig_TDD, v_DL_TrCHInfo_TDD, v_DL_TrLogMapping_TDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_TDD(p_CellId, v_UL_DPCHInfo_TDD, v_UL_TrChConfig_TDD, v_UL_TrCHInfo_TDD, v_UL_TrLogMapping_TDD, p_ActTime); + } + + // Setup radio bearer 10 to 12. + // Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 + f_SS_RB10_ToRB12_TM_Cfg(p_CellId); //@sic R5s120953 sic@ + + //Save cell configuration + f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_Speech); + } + + //---------------------------------------------------------------------------- + /* + * @desc Modify SS configuration for PS + conv speech + * @param p_CellId + * @param p_ActTime (default value: cs_ActivateNow) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) + */ + function f_SS_5DCH_Modify_PS_and_ConvSpeech(UTRAN_CellId_Type p_CellId, + template (value) SS_ActivationTime p_ActTime := cs_ActivateNow) runs on UTRAN_PTC + { + var UL_ScramblingCode v_UL_ScramblingCode; + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); + var template (value) CphyTrchConfigReq v_UL_TrChConfig_FDD; + var template (value) CphyTrchConfigReq v_DL_TrChConfig_FDD; + var template (value) TrCHInfo v_UL_TrCHInfo_FDD; + var template (value) TrCHInfo v_DL_TrCHInfo_FDD; + var template (value) TrCH_LogCHMappingList1 v_UL_TrLogMapping_FDD; + var template (value) TrCH_LogCHMappingList1 v_DL_TrLogMapping_FDD; + var template (value) CphyTrchConfigReq_TDD v_UL_TrChConfig_TDD; + var template (value) CphyTrchConfigReq_TDD v_DL_TrChConfig_TDD; + var template (value) TrCHInfo_TDD v_UL_TrCHInfo_TDD; + var template (value) TrCHInfo_TDD v_DL_TrCHInfo_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_UL_TrLogMapping_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_DL_TrLogMapping_TDD; + var template (value) DPCHInfo_r5OrLater_FDD v_UL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_FDD v_DL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_TDD v_UL_DPCHInfo_TDD; + var template (value) DPCHInfo_r5OrLater_TDD v_DL_DPCHInfo_TDD; + + if (v_FDD_TDD_Mode == UTRAN_FDD) { + + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, + cs_DCH_148_81_103_60_336_DL_FDD, + cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfoHigher64k)); + v_DL_TrChConfig_FDD := cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, + cs_DCH_148_81_103_60_336_UL_FDD, + cs_TFCS_Cmpl0_To119_Rx); + v_UL_TrCHInfo_FDD := cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_148_81_103_60_336_FDD, cs_TFCS_Cmpl0_To119_Rx); + v_DL_TrCHInfo_FDD := cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_148_81_103_60_336_FDD, cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfoHigher64k)); + v_UL_TrLogMapping_FDD := cs_TrLogMappingUL_TM3_AM1; + v_DL_TrLogMapping_FDD := cs_TrLogMappingDL_TM3_AM1; + + select (v_FddTddMessageClass) { + case (FDDr8, FDDr9) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_76, + v_UL_ScramblingCode)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_DL_FDD(cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + tsc_DL_DPCH1_2ndScrC, + tsc_DL_TxPower_DPCH_64k)); + } + case (FDDr10) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_76, + v_UL_ScramblingCode)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_DL_FDD(cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD (tsc_DL_DPCH1_SFP_64k_PS, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + tsc_DL_DPCH1_2ndScrC, + tsc_DL_TxPower_DPCH_64k)); + } + case (FDDr11) { + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_76, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUp_FDD_r11 (tsc_DL_DPCH1_SFP_64k_PS, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + tsc_DL_DPCH1_2ndScrC, + tsc_DL_TxPower_DPCH_64k))); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + // Configure SS for cell_DCH_64kPS_RAB_SRB configuration + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_76, + v_UL_ScramblingCode))); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r12_Extension_FDD(cs_DL_DPCH_FDD_r12(cs_DL_CommonInformationRB_SetUp_FDD_r12 (tsc_DL_DPCH1_SFP_64k_PS_r12, flexible), + tsc_DL_DPCH1_ChC_64k_PS, + tsc_DL_DPCH1_2ndScrC, + tsc_DL_TxPower_DPCH_64k))); + + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_Common_FDD(p_ActTime, + cs_DCH_148_81_103_60_336_UL_FDD, + -, -, -, -, -, -, -, -, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_To119_Rx_r12)); + v_UL_TrCHInfo_FDD := cs_TrCHInfoExtension_ULTFCS_r12(cs_TrChInfoTrCHListUL_148_81_103_60_336_FDD, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_To119_Rx_r12)); + } + case else { + FatalError(__FILE__, __LINE__, "Not a valid FDD release"); + } + } + f_SS_ConfigPS_DL_DPCH1_FDD(p_CellId, v_DL_DPCHInfo_FDD, v_DL_TrChConfig_FDD, v_DL_TrCHInfo_FDD, v_DL_TrLogMapping_FDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_FDD(p_CellId, v_UL_DPCHInfo_FDD, v_UL_TrChConfig_FDD, v_UL_TrCHInfo_FDD, v_UL_TrLogMapping_FDD, p_ActTime); + + } + else if (v_FDD_TDD_Mode == UTRAN_TDD) { + + v_UL_TrChConfig_TDD := cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, + cs_DCH_148_81_103_60_336_UL_TDD, + cs_TFCS_Cmpl0_To119_Rx); + v_DL_TrChConfig_TDD := cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, + cs_DCH_148_81_103_60_336_DL_TDD, + cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfo_TDD)); + v_UL_TrCHInfo_TDD := cs_TrCHInfo_UL_TrCh_TDD(cs_TrChInfoTrCHListUL_148_81_103_60_336_TDD, cs_TFCS_Cmpl0_To119_Rx); + v_DL_TrCHInfo_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_148_81_103_60_336_TDD, cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfo_TDD)); + v_UL_TrLogMapping_TDD := cs_TrLogMappingUL_TM3_AM1_TDD; + v_DL_TrLogMapping_TDD := cs_TrLogMappingDL_TM3_AM1_TDD; + + select (v_FddTddMessageClass) { + case (TDDr9) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD(cs_UL_DPCH_PS_and_ConvSpeech_TDD); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_DL_TDD(cs_DL_DPCH_PS_and_ConvSpeech_TDD); + } + case (TDDr10) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD(cs_UL_DPCH_PS_and_ConvSpeech_TDD); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_r7_PS_and_ConvSpeech_TDD))); + } + case (TDDr11) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_r7_PS_and_ConvSpeech_TDD))); + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)); + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r12_Extension_TDD(cs_DL_DPCH_TDD_r12(cs_DL_DPCH_InfoPerRL_r12_PS_and_ConvSpeech_TDD))); + } + case else { + FatalError(__FILE__, __LINE__, "Not a valid message class"); + } + } + f_SS_ConfigPS_DL_DPCH1_TDD(p_CellId, v_DL_DPCHInfo_TDD, v_DL_TrChConfig_TDD, v_DL_TrCHInfo_TDD, v_DL_TrLogMapping_TDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_TDD(p_CellId, v_UL_DPCHInfo_TDD, v_UL_TrChConfig_TDD, v_UL_TrCHInfo_TDD, v_UL_TrLogMapping_TDD, p_ActTime); + } + } + + /* + * @desc To downgrade Signalling Channels in DL to 3.4 + * @param p_CellId + * @param p_ActTime (default value: cs_ActivateNow) + * @param p_LoopbackRLC_PDU (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_SS_Config_HSDPA_64kUL_RAB(UTRAN_CellId_Type p_CellId, + template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, + boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ + runs on UTRAN_PTC + { /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UL_ScramblingCode v_UL_ScramblingCode; + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); + var template (value) CphyTrchConfigReq v_UL_TrChConfig_FDD; + var template (value) CphyTrchConfigReq v_DL_TrChConfig_FDD; + var template (value) TrCHInfo v_UL_TrCHInfo_FDD; + var template (value) TrCHInfo v_DL_TrCHInfo_FDD; + var template (value) TrCH_LogCHMappingList1 v_UL_TrLogMapping_FDD; + var template (value) TrCH_LogCHMappingList1 v_DL_TrLogMapping_FDD; + var template (value) CphyTrchConfigReq_TDD v_UL_TrChConfig_TDD; + var template (value) CphyTrchConfigReq_TDD v_DL_TrChConfig_TDD; + var template (value) TrCHInfo_TDD v_UL_TrCHInfo_TDD; + var template (value) TrCHInfo_TDD v_DL_TrCHInfo_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_UL_TrLogMapping_TDD; + var template (value) TrCH_LogCHMappingList1_TDD v_DL_TrLogMapping_TDD; + var template (value) DPCHInfo_r5OrLater_FDD v_UL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_FDD v_DL_DPCHInfo_FDD; + var template (value) DPCHInfo_r5OrLater_TDD v_UL_DPCHInfo_TDD; + var template (value) DPCHInfo_r5OrLater_TDD v_DL_DPCHInfo_TDD; + var template (value) RL_Setup_FDD_PhysicalChannelInfo_Type v_PhysicalChannelInfo_HSPDSCH_FDD; + + if (v_FDD_TDD_Mode == UTRAN_FDD) { + + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_UL_TrCh_FDD(p_ActTime, + cs_DCH_336_148_UL_Info_FDD, + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); + v_DL_TrChConfig_FDD := cs_CphyTrchConfigReq_DL_TrCh_FDD(p_ActTime, + cs_DCH_148_DL_FDD, + cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)); + v_UL_TrCHInfo_FDD := cs_TrCHInfo_UL_TrCh_FDD(cs_TrChInfoTrCHListUL_336_148_FDD, + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); // @sic R5s110788 sic@ + v_DL_TrCHInfo_FDD := cs_TrCHInfo_DL_TrCh_FDD(cs_TrChInfoTrCHListDL_34_StandAlone_FDD, + cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)); + v_UL_TrLogMapping_FDD := cs_TrLogMappingUL_4DCCH_1DTCH(tsc_RB25); + v_DL_TrLogMapping_FDD := cs_TrLogMappingDL_4DCCH; + + select (v_FddTddMessageClass) { + case (FDDr8) { + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), + cs_HS_DPCCHInfo); // @sic R5s110683 sic@ + v_DL_DPCHInfo_FDD := cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_SRB_3_4k, fixed, false), tsc_Sfc256_C0)); // @sic R5s110683 sic@ + v_PhysicalChannelInfo_HSPDSCH_FDD := cs_DL_Cell_DCH_HS_DSCH_PS_RAB_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ + cs_DL_HSPDSCH_Information_FDD(cs_HS_SCCH_Info_FDD, cs_Measurement_Feedback_Info), + false); + } + case (FDDr9) { + v_UL_DPCHInfo_FDD := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), + cs_HS_DPCCHInfo); // @sic R5s110683 sic@ + v_DL_DPCHInfo_FDD := cs_DPCHInfo_DL_FDD (cs_DL_DPCH_FDD(cs_DL_CommonInformationRB_SetUp_FDD(tsc_DL_DPCH1_SFP_SRB_3_4k, fixed, false), tsc_Sfc256_C0)); + v_PhysicalChannelInfo_HSPDSCH_FDD := cs_DL_Cell_DCH_HS_DSCH_PS_RAB_r9_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ + cs_DL_HSPDSCH_Information_r9_FDD(cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info), + false); + } + case (FDDr10) { + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r10_Extension_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), + cs_HS_DPCCHInfo_r10)); // @sic R5s110683 sic@ + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r10_Extension_FDD(cs_DL_DPCH_FDD_r10(cs_DL_CommonInformationRB_SetUp_FDD_r10(tsc_DL_DPCH1_SFP_SRB_3_4k, + fixed, + false), + tsc_Sfc256_C0))); + v_PhysicalChannelInfo_HSPDSCH_FDD := cs_DL_Cell_DCH_HS_DSCH_PS_RAB_r9_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ + cs_DL_HSPDSCH_Information_r9_FDD(cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info), + false); + } + case (FDDr11) { + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), + cs_HS_DPCCHInfo_r10)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(cs_DL_CommonInformationRB_SetUp_FDD_r11(tsc_DL_DPCH1_SFP_SRB_3_4k, + fixed, + false), + tsc_Sfc256_C0))); + v_PhysicalChannelInfo_HSPDSCH_FDD := cs_DL_Cell_DCH_HS_DSCH_PS_RAB_r9_FDD(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ + cs_DL_HSPDSCH_Information_r9_FDD(cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info), + false); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_UL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r12_Extension_FDD(cs_UL_DPCH_InfoACK_HSDPA_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId)), + cs_HS_DPCCHInfo_r10)); + v_DL_DPCHInfo_FDD := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r12_Extension_FDD(cs_DL_DPCH_FDD_r12(cs_DL_CommonInformationRB_SetUp_FDD_r12(tsc_DL_DPCH1_SFP_SRB_3_4k_r12, + fixed, + false), + tsc_Sfc256_C0))); + v_PhysicalChannelInfo_HSPDSCH_FDD := cs_HS_PDSCHInfoExtension_FDD_r10OrLater(cs_HSPDSCH_Information_FDD_r12(pc_HSDSCH_UE_Category_FDD, // @sic R5w140207 sic@ + cs_DL_HSPDSCH_Information_FDD_r12(cs_HS_SCCH_Info_r9_FDD, + cs_Measurement_Feedback_Info_r12), + false)); + v_UL_TrChConfig_FDD := cs_CphyTrchConfigReq_Common_FDD(p_ActTime, + cs_DCH_336_148_UL_Info_FDD, + -, -, -, -, -, -, - ,-, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx_r12)); + v_UL_TrCHInfo_FDD := cs_TrCHInfoExtension_ULTFCS_r12(cs_TrChInfoTrCHListUL_336_148_FDD, + cs_TrCHInfo_UL_TFCS_r12(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx_r12)); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not handled"); + } + } + f_SS_ConfigPS_DL_DPCH1_FDD(p_CellId, v_DL_DPCHInfo_FDD, v_DL_TrChConfig_FDD, v_DL_TrCHInfo_FDD, v_DL_TrLogMapping_FDD, p_ActTime); + f_SS_Config_HSDPA_FDD(p_CellId, v_PhysicalChannelInfo_HSPDSCH_FDD, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_FDD(p_CellId, v_UL_DPCHInfo_FDD, v_UL_TrChConfig_FDD, v_UL_TrCHInfo_FDD, v_UL_TrLogMapping_FDD, p_ActTime); + } + else if (v_FDD_TDD_Mode == UTRAN_TDD) { + v_UL_TrChConfig_TDD := cs_CphyTrchConfigReq_UL_TrCh_TDD(p_ActTime, + cs_DCH_336_148_UL_Info_TDD, + cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx); + v_DL_TrChConfig_TDD := cs_CphyTrchConfigReq_DL_TrCh_TDD(p_ActTime, + cs_DCH_148_DL_TDD, + cs_TFCS_Cmpl0_1_Tx_TDD); + v_UL_TrCHInfo_TDD := cs_TrChInfoUL_336_148_TDD; + v_DL_TrCHInfo_TDD := cs_TrCHInfo_DL_TrCh_TDD(cs_TrChInfoTrCHListDL_34_StandAlone_TDD, + cs_TFCS_Cmpl0_1_Tx_TDD); + v_UL_TrLogMapping_TDD := cs_TrLogMappingUL_4DCCH_1DTCH_TDD(tsc_RB25); + v_DL_TrLogMapping_TDD := cs_TrLogMappingDL_4DCCH_TDD; + select (v_FddTddMessageClass) { + case (TDDr9) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_UL_TDD (cs_UL_DPCH_64k_PS_TDD); // @sic R5s141363 sic@ + v_DL_DPCHInfo_TDD := cs_DPCHInfo_DL_TDD (cs_DL_DPCH_SRB_StandAlone_TDD); + } + case (TDDr10) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r10_Extension_TDD(cs_UL_DPCH_64k_PS_TDD)); // @sic R5s141363 sic@ + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r10_Extension_TDD(cs_DL_DPCH_TDD_r10(cs_DL_DPCH_InfoPerRL_SRB_TDD))); + } + case (TDDr11) { + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r11_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)); // @sic R5s141363 sic@ + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r11_Extension_TDD(cs_DL_DPCH_TDD_r11(cs_DL_DPCH_InfoPerRL_SRB_TDD))); + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_UL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_UL_DPCHInfo_r12_Extension_TDD(cs_UL_DPCH_64k_PS_TDD_r11)); // @sic R5s141363 sic@ + v_DL_DPCHInfo_TDD := cs_DPCHInfo_Extension_TDD(cs_DL_DPCHInfo_r12_Extension_TDD(cs_DL_DPCH_TDD_r12(cs_DL_DPCH_InfoPerRL_SRB_TDD_r12))); + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not handled"); + } + } + f_SS_ConfigPS_DL_DPCH1_TDD(p_CellId, v_DL_DPCHInfo_TDD, v_DL_TrChConfig_TDD, v_DL_TrCHInfo_TDD, v_DL_TrLogMapping_TDD, p_ActTime); + f_SS_Config_HSDPA_TDD(p_CellId, p_ActTime); + f_SS_ConfigPS_UL_DPCH1_TDD(p_CellId, v_UL_DPCHInfo_TDD, v_UL_TrChConfig_TDD, v_UL_TrCHInfo_TDD, v_UL_TrLogMapping_TDD, p_ActTime); + } + + // Setup radio bearer RB25 + f_SS_RB25_AM_PS_Cfg(p_CellId, 320); + + // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ + if (not(p_LoopbackRLC_PDU)) { + f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB25); + } + + f_UTRAN_CellInfo_SetConfigType(p_CellId, cell_DCH_HS_DSCH); + } + + //---------------------------------------------------------------------------- + /* + * @desc Function to configure security in SS for the newly established + * Radio Bearer, before receiving the Radio Bearer Setup Complete message from UE + * @param p_CellId + * @param p_Cn_DomainIdentity + * @param p_RbType + * @param p_KC + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_UTRAN_SS_CipheringAM_RAB_UL_DL(UTRAN_CellId_Type p_CellId, + CN_DomainIdentity p_Cn_DomainIdentity, + RB_ConfigType p_RbType, + template (omit) KeyCiphering p_KC) runs on UTRAN_PTC + { + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var RLC_SequenceNumber v_RLC_SNs := 0; + var template (value) RB_ActivationTimeInfoList v_RB_ActivationTimeInfoList; + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + + select (p_RbType) { + case (cell_FACH_PS, cell_DCH_64kPS_RAB_SRB) { + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoList20(v_RLC_SNs); + } + // HSD configurations: + case (cell_DCH_HS_DSCH) { + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoList25(v_RLC_SNs); + } + // HSU configurations: + case (cell_DCH_E_HS, + cell_E_HS, + cell_DCH_dlSRB_E_HS, + cell_FACH_HS, + cell_FACH_UL_PS,//@sic R5-150125 feFACH sic@ + cell_FACH_UL_FallBack) { //@sic R5-150125 feFACH sic@ + v_RB_ActivationTimeInfoList := cs_RB_ActTimeInfoList25(v_RLC_SNs); + } + case else { + FatalError(__FILE__, __LINE__, "Configuaration not supported"); + } + } + + f_UTRAN_CRLC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, + v_SecurityInfo.start_PS, + p_KC); //@sic R5s110210 sic@ + + f_UTRAN_CRLC_DL_CipherCfgRB(p_CellId, + p_Cn_DomainIdentity, + v_SecurityInfo.dL_CipherMode, + p_RbType, + false); //Do not suspend RLC since RB is established only + + f_UTRAN_ActivateCiphering_RLC_UL(v_FDD_TDD_Mode, ps_domain, v_RB_ActivationTimeInfoList); + } + + /* + * @desc To be used when CS RAB bearer is set up and security has been activated for CS. + * Function will + * - config security at S for the RB SetUp Complete message + * - receive the Radio Bearer Setup Complete message + * - configure security in SS + * @param p_CellId + * @param p_ActivationTime + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_UTRAN_ReceiveRB_SetupCmpl_CipheringStartedTM_RAB(UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ + ActivationTime p_ActivationTime) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var ActivationTime v_NewCipheringActTime; + var U_RLC_AM_IND v_U_RLC_AM_IND; + + f_UTRAN_CMAC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, + v_SecurityInfo.start_CS, + v_SecurityInfo.authKeys.AuthCS.CKey); + + f_UTRAN_CMAC_UL_DL_CipherCfg(p_CellId, + v_SecurityInfo.dL_CipherMode, + p_ActivationTime, + notInc); + + //Receive Radio Bearer Setup Complete message + U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, + tsc_RB2, + cr_108_RB_SetUpCmpl(tsc_RRC_TI))) -> value v_U_RLC_AM_IND; + + v_NewCipheringActTime := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.count_C_ActivationTime; + v_SecurityInfo.start_CS := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; + f_UTRAN_CMAC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, + v_SecurityInfo.start_CS, + v_SecurityInfo.authKeys.AuthCS.CKey); + + f_UTRAN_CMAC_UL_DL_CipherCfg(p_CellId, + v_SecurityInfo.dL_CipherMode, + p_ActivationTime, + notInc); + + //Store the security information + f_UTRAN_Security_Set(v_SecurityInfo); + } + + /* + * @desc To be used when CS RAB bearer is set up and security has not yet been activated for CR. + * Function will + * - receive the Radio Bearer Setup Complete message + * - configure security in SS if USIM is present in UE + * @param p_CellId + * @param p_USIM + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_UTRAN_ReceiveRB_SetupCmpl_CipheringNotStartedTM_RAB(UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ + boolean p_USIM) runs on UTRAN_PTC + { + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var ActivationTime v_NewCipheringActTime; + var U_RLC_AM_IND v_U_RLC_AM_IND; + + //Receive Radio Bearer Setup Complete message + alt{ + //No start value. No RB UL cipher + [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, + tsc_RB2, + cr_108_RB_SetUpCmpl(tsc_RRC_TI, omit))) -> value v_U_RLC_AM_IND + { } + //A new start value is provided + [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, + tsc_RB2, + cr_108_RB_SetUpCmpl(tsc_RRC_TI))) -> value v_U_RLC_AM_IND + { + v_SecurityInfo.start_CS := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; + } + } + if (p_USIM) { //USIM present in UE + v_NewCipheringActTime := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.count_C_ActivationTime; + + f_UTRAN_CMAC_SecurityMode_Config(v_SecurityInfo.recentSecureDomain, + v_SecurityInfo.start_CS); + f_UTRAN_CMAC_UL_DL_CipherCfg (p_CellId, + v_SecurityInfo.dL_CipherMode, + v_NewCipheringActTime, + notInc); + } + + //Store the security information + f_UTRAN_Security_Set(v_SecurityInfo); + } + + /* + * @desc To receive the RB Setup complete message for speech and perform associated Security configuration in SS + * @param p_CellId + * @param p_ActivationTime + * @param p_USIM (default value: true) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_UTRAN_RRC_ReceiveRB_SetupCmpl_Speech (UTRAN_CellId_Type p_CellId, //@sic R5s130243 sic@ + ActivationTime p_ActivationTime, //@sic R5s110210 sic@ + boolean p_USIM := true) //@sic R5s110210 sic@ + runs on UTRAN_PTC + { /* @sic R5s120139 - Additional Changes sic@ */ + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + + if (v_SecurityInfo.cs_cipheringStarted) { + f_UTRAN_ReceiveRB_SetupCmpl_CipheringStartedTM_RAB(p_CellId, p_ActivationTime); //@sic R5s110210 sic@ + } + else { + f_UTRAN_ReceiveRB_SetupCmpl_CipheringNotStartedTM_RAB(p_CellId, p_USIM); //@sic R5s110210 sic@ + } + } + + /* + * @desc To receive the RB Setup complete message for PS RAB and perform associated Security configuration in SS + * @param p_CellId + * @param p_RbType + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_UTRAN_RRC_ReceiveRB_SetupCmpl_PS_RAB(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_RbType) runs on UTRAN_PTC + { /* @sic R5s120139 - Additional Changes sic@ */ + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var boolean v_CipheringNotStarted := not ((v_SecurityInfo.ps_cipheringStarted == true) and + (v_SecurityInfo.recentSecureDomain == ps_domain)); + var U_RLC_AM_IND v_U_RLC_AM_IND; + + alt { + [v_CipheringNotStarted] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, //@sic R5s110210 sic@ + tsc_RB2, + cr_108_RB_SetUpCmpl(tsc_RRC_TI, omit))) // no START value sent by the UE + {} // No start value, no RB UL cipher + [] U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, //@sic R5s110210 sic@ + tsc_RB2, + cr_108_RB_SetUpCmpl(tsc_RRC_TI))) + -> value v_U_RLC_AM_IND + { //A new start value is provided + v_SecurityInfo.start_PS := v_U_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; + f_UTRAN_Security_Set(v_SecurityInfo); + } + } + + f_UTRAN_SS_CipheringAM_RAB_UL_DL(p_CellId, v_SecurityInfo.recentSecureDomain, p_RbType, v_SecurityInfo.authKeys.AuthPS.CK); //@sic R5s130512 sic@ + } + + //---------------------------------------------------------------------------- + /* + * @desc setup radio bearers RB10, RB11, RB12 for radio beaer subflow#1, subflow#2, subflow#3 + * Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 + * @param p_CellId + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_SS_RB10_ToRB12_TM_Cfg (UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { // @sic R5s120953 adding parameter p_CellId sic@ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) RB_LogCH_Mapping v_RB_LogCH_Mapping_RB10 := cs_RB_LogCH_Mapping(tsc_UL_DTCH1, tsc_DL_DTCH1); + var template (value) RB_LogCH_Mapping v_RB_LogCH_Mapping_RB11 := cs_RB_LogCH_Mapping(tsc_UL_DTCH2, tsc_DL_DTCH2); + var template (value) RB_LogCH_Mapping v_RB_LogCH_Mapping_RB12 := cs_RB_LogCH_Mapping(tsc_UL_DTCH3, tsc_DL_DTCH3); + var template (value) U_CRLC_CONFIG_REQ v_U_CRLC_CONFIG_REQ_RB10; /* @sic R5s150684 sic@ */ + var template (value) U_CRLC_CONFIG_REQ v_U_CRLC_CONFIG_REQ_RB11; /* @sic R5s150684 sic@ */ + var template (value) U_CRLC_CONFIG_REQ v_U_CRLC_CONFIG_REQ_RB12; /* @sic R5s150684 sic@ */ + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + select (v_FddTddMessageClass) { + case(FDDr8, FDDr9, FDDr10) { + v_U_CRLC_CONFIG_REQ_RB10 := cas_RB_TM_UL_Info_FDD(utran_CellDedicated, // @sic R5s110596 sic@ + tsc_RB10, + 81, + v_RB_LogCH_Mapping_RB10); + + v_U_CRLC_CONFIG_REQ_RB11 := cas_RB_TM_UL_Info_FDD(utran_CellDedicated, // @sic R5s110596 sic@ + tsc_RB11, + 103, + v_RB_LogCH_Mapping_RB11); + + v_U_CRLC_CONFIG_REQ_RB12 := cas_RB_TM_UL_Info_FDD(utran_CellDedicated, // @sic R5s110596 sic@ + tsc_RB12, + 60, + v_RB_LogCH_Mapping_RB12); + } + case(FDDr11, FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_U_CRLC_CONFIG_REQ_RB10 := cas_CRLC_SetupExtension_FDD(utran_CellDedicated, + tsc_RB10, + cs_RB_TM_UL_Info_FDD_r11(81), + v_RB_LogCH_Mapping_RB10); + + v_U_CRLC_CONFIG_REQ_RB11 := cas_CRLC_SetupExtension_FDD(utran_CellDedicated, + tsc_RB11, + cs_RB_TM_UL_Info_FDD_r11(103), + v_RB_LogCH_Mapping_RB11); + + v_U_CRLC_CONFIG_REQ_RB12 := cas_CRLC_SetupExtension_FDD(utran_CellDedicated, + tsc_RB12, + cs_RB_TM_UL_Info_FDD_r11(60), + v_RB_LogCH_Mapping_RB12); + + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not handled"); + } + } + } + case (UTRAN_TDD) { + select (v_FddTddMessageClass) { + case(TDDr9, TDDr10) { + v_U_CRLC_CONFIG_REQ_RB10 := cas_RB_TM_UL_Info_TDD(utran_CellDedicated, + tsc_RB10, + 81, + 81, + v_RB_LogCH_Mapping_RB10); + + v_U_CRLC_CONFIG_REQ_RB11 := cas_RB_TM_UL_Info_TDD(utran_CellDedicated, + tsc_RB11, + 103, + 103, + v_RB_LogCH_Mapping_RB11); + + v_U_CRLC_CONFIG_REQ_RB12 := cas_RB_TM_UL_Info_TDD(utran_CellDedicated, + tsc_RB12, + 60, + 60, + v_RB_LogCH_Mapping_RB12); + } + case(TDDr11, TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_U_CRLC_CONFIG_REQ_RB10 := cas_CRLC_SetupExtension_TDD(utran_CellDedicated, + tsc_RB10, + cs_RB_TM_UL_Info_TDD_r11(81), + v_RB_LogCH_Mapping_RB10); + + v_U_CRLC_CONFIG_REQ_RB11 := cas_CRLC_SetupExtension_TDD(utran_CellDedicated, + tsc_RB11, + cs_RB_TM_UL_Info_TDD_r11(103), + v_RB_LogCH_Mapping_RB11); + + v_U_CRLC_CONFIG_REQ_RB12 := cas_CRLC_SetupExtension_TDD(utran_CellDedicated, + tsc_RB12, + cs_RB_TM_UL_Info_TDD_r11(60), + v_RB_LogCH_Mapping_RB12); + + } + case else { + FatalError(__FILE__, __LINE__, "Cell is neither FDD nor TDD"); + } + } + } + } + f_UTRAN_CRLC_Config(v_U_CRLC_CONFIG_REQ_RB10); /* @sic R5s150684 sic@ */ + f_UTRAN_CRLC_Config(v_U_CRLC_CONFIG_REQ_RB11); /* @sic R5s150684 sic@ */ + f_UTRAN_CRLC_Config(v_U_CRLC_CONFIG_REQ_RB12); /* @sic R5s150684 sic@ */ + } + + /* + * @desc cofigure radio bearers : RB25 DTCH on HS-DSCH and DTCH on DPCH associated HS-DSCH + * @param p_CellId + * @param p_PayloadSize + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_SS_RB25_AM_PS_Cfg(UTRAN_CellId_Type p_CellId, + integer p_PayloadSize) runs on UTRAN_PTC + { + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); /* @sic R5s150684 sic@ */ + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); /* @sic R5s150684 sic@ */ + var template (value) U_CRLC_CONFIG_REQ v_U_CRLC_CONFIG_REQ; /* @sic R5s150684 sic@ */ + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + select (v_FddTddMessageClass) { + case (FDDr11) { + v_U_CRLC_CONFIG_REQ := cas_CRLC_SetupExtension_FDD(utran_CellDedicated, + tsc_RB25, + cs_RB25_AM_Info_FDD_r11(p_PayloadSize, cds_UL_AM_RLC_HSDPA), + cs_RB25_LogChMapping); + } + case else { + v_U_CRLC_CONFIG_REQ := cas_RB25_AM_Info_FDD(-, -, p_PayloadSize); // @sic R5s110596 sic@ + } + } + } + case (UTRAN_TDD) { + select (v_FddTddMessageClass) { + case (TDDr11) { + v_U_CRLC_CONFIG_REQ := cas_CRLC_SetupExtension_TDD(utran_CellDedicated, + tsc_RB25, + cs_RB25_AM_Info_TDD_r11(p_PayloadSize, cds_UL_AM_RLC_HSDPA), + cs_RB25_LogChMapping); + } + case else { + v_U_CRLC_CONFIG_REQ := cas_RB25_AM_Info_TDD(-, -, p_PayloadSize); // @sic R5s110596 sic@ + } + } + } + case else { + FatalError(__FILE__, __LINE__, "Cell is neither FDD nor TDD"); + } + } + f_UTRAN_CRLC_Config(v_U_CRLC_CONFIG_REQ); /* @sic R5s150684 sic@ */ + } + + /* + * @desc Common step to configure RB25 for configurations A12, A13, A14 and A15 + * From FDD TTCN2 test step ts_SS_RLC_Setup_HSU + * @param p_CellId + * @status APPROVED (LTE_IRAT) + */ + function f_SS_RB25_AM_HSPA_Cfg(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) U_CRLC_CONFIG_REQ v_U_CRLC_CONFIG_REQ; /* @sic R5s150684 sic@ */ + + if (v_FDD_TDD_Mode == UTRAN_FDD) { + v_U_CRLC_CONFIG_REQ := cas_RB25_AM_Info_FDD(-, -, -, cds_UL_AM_RLC_HSU); + } + else { + v_U_CRLC_CONFIG_REQ := cas_RB25_AM_Info_TDD(-, -, -, cds_UL_AM_RLC_HSU); + } + f_UTRAN_CRLC_Config(v_U_CRLC_CONFIG_REQ); /* @sic R5s150684 sic@ */ + } + + + /* + * @desc send RB setup to the UE (on RB2) and wait for local confirmation when requested + * @param p_RB_SetUp + * @param p_CnfFlag (default value: true) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + */ + function f_UTRAN_RB_SetUp_Send(template (value) DL_DCCH_Message p_RB_SetUp, + boolean p_CnfFlag := true) runs on UTRAN_PTC + { + var UTRAN_CellId_Type v_CellId := utran_CellDedicated; //@sic R5s110210 sic@ + + if (p_CnfFlag) { + U_AM.send(cas_RLC_Data_Req_Cnf(v_CellId, tsc_RB2, tsc_Mui, p_RB_SetUp)); + // Receive Acknowledgement on the RB Setup message + U_AM.receive (car_AM_DataMuiCnf (v_CellId, tsc_RB2, tsc_Mui)); + } + else { + U_AM.send(cas_RLC_Data_Req_NoCnf(v_CellId, tsc_RB2, p_RB_SetUp)); + } + } + + //---------------------------------------------------------------------------- + /* + * @desc returns the RADIO BEARER SETUP for 64k PS depending on the message class + * @param p_CellId + * @param p_Integrityinfo + * @param p_Activationtime + * @param p_UseStoredNsapi (default value: false) + * @return template (value) DL_DCCH_Message + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_Get_cs_108_RB_SetUp64k_PS(UTRAN_CellId_Type p_CellId, + IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activationtime, + boolean p_UseStoredNsapi := false) //@sic R5s141127 sic@ + runs on UTRAN_PTC return template (value) DL_DCCH_Message + { /* @sic R5-123750 sic@ */ + /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) DL_DCCH_Message v_RadioBearerSetup; + var B8_Type v_RAB_ID := tsc_RAB_DefPS; // @sic R5s141127 sic@ + var UL_ScramblingCode v_UL_ScramblingCode; + var PrimaryScramblingCode v_PrimaryScramblingCode; + var CellParametersID v_CellParametersID; + + if (p_UseStoredNsapi) { + v_RAB_ID := int2bit(bit2int(f_UTRAN_MobileInfo_IMS_NSAPI_Get()),8); + } + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_PrimaryScramblingCode := f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId); + + select (v_FddTddMessageClass) { + case (FDDr8) { + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_UL_ScramblingCode, v_PrimaryScramblingCode); + } + case (FDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r9_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_UL_ScramblingCode, v_PrimaryScramblingCode); + } + case (FDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r10_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_UL_ScramblingCode, v_PrimaryScramblingCode); + } + case (FDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_FDD_r11(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_UL_ScramblingCode, v_PrimaryScramblingCode); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_FDD_r12(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_UL_ScramblingCode, v_PrimaryScramblingCode); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not supported"); + } + } + } + case (UTRAN_TDD) { + v_CellParametersID := f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId); + + select (v_FddTddMessageClass) { + case (TDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr10){ + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r10_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr11){ + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r11_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUp64k_PS_r12_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not supported"); + } + } + } + } + return v_RadioBearerSetup; + } + + /* + * @desc returns the RADIO BEARER SETUP depending on the message class + * @param p_CellId + * @param p_Integrityinfo + * @param p_Activationtime + * @return template (value) DL_DCCH_Message + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_Get_cs_108_RB_SetUpHS_FromDCH_UL_64k(UTRAN_CellId_Type p_CellId, + IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activationtime) + runs on UTRAN_PTC return template (value) DL_DCCH_Message + { /* @sic R5-123750 sic@ */ + /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); // @sic R5s130195 Utran Release sic@ + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) DL_DCCH_Message v_RadioBearerSetup; + var B8_Type v_RAB_ID := tsc_RAB_DefPS; // @sic R5s110210 sic@ + var UL_ScramblingCode v_UL_ScramblingCode; + var PrimaryScramblingCode v_PrimaryScramblingCode; + var CellParametersID v_CellParametersID; + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_PrimaryScramblingCode := f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId); + + select (v_FddTddMessageClass) { + case (FDDr8) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r9_FDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r10_FDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD_r11 (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD_r12 (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not supported"); + } + } + } + case (UTRAN_TDD) { + v_CellParametersID := f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId); + + select (v_FddTddMessageClass) { + case (TDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_TDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r10_TDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r11_TDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpHS_FromDCH_UL_64k_r12_TDD (p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not supported"); + } + } + } + } + return v_RadioBearerSetup; + } + + /* + * @desc returns the RADIO BEARER SETUP depending on the message class + * @param p_Integrityinfo + * @return template (value) DL_DCCH_Message + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_Get_cs_108_RB_SetUpFACH_PS(IntegrityCheckInfo p_Integrityinfo) + runs on UTRAN_PTC return template (value) DL_DCCH_Message + { // @sic R5-123750 sic@ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); + var template (value) DL_DCCH_Message v_RadioBearerSetup; + var C_RNTI v_New_CRNTI := '1010101010101010'B; + + select (v_FddTddMessageClass) { // @sic R5s130195 Utran Release sic@ + case (FDDr8) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (FDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r9(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (FDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r10(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (FDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r11(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_FDD_r12(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (TDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (TDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD_r10(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (TDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD_r11(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpFACH_PS_TDD_r12(p_Integrityinfo, v_New_CRNTI, tsc_RAB_DefPS); + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + return v_RadioBearerSetup; + } + + /* + * @desc returns the RADIO BEARER SETUP depending on the message class + * @param p_CellId + * @param p_Integrityinfo + * @param p_Activationtime + * @return template (value) DL_DCCH_Message + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_Get_cs_108_RB_SetUpSpeech (UTRAN_CellId_Type p_CellId, + IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activationtime) + runs on UTRAN_PTC return template (value) DL_DCCH_Message + { /* @sic R5-123750 sic@ */ + /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); // @sic R5s130195 Utran Release sic@ + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) DL_DCCH_Message v_RadioBearerSetup; + var B8_Type v_RAB_ID := tsc_RAB_DefCS; + var UL_ScramblingCode v_UL_ScramblingCode; + var PrimaryScramblingCode v_PrimaryScramblingCode; + var CellParametersID v_CellParametersID; + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_PrimaryScramblingCode := f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId); + + select (v_FddTddMessageClass) { + case (FDDr8) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r9_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r10_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r11_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r12_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not supported"); + } + } + } + case (UTRAN_TDD) { + v_CellParametersID := f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId); // @sic R5s120719 sic@ + + select (v_FddTddMessageClass) { + case (TDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r10_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r11_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpSpeech_r12_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not supported"); + } + } + } + } + return v_RadioBearerSetup; + } + + /* + * @desc returns the RADIO BEARER SETUP depending on the message class + * @param p_CellId + * @param p_Integrityinfo + * @param p_Activationtime + * @return template (value) DL_DCCH_Message + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) + */ + function f_Get_cs_108_RB_SetUpPSandConvSpeech(UTRAN_CellId_Type p_CellId, + IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activationtime) + runs on UTRAN_PTC return template (value) DL_DCCH_Message + { /* @sic R5-123750 sic@ */ + /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); // @sic R5s130195 Utran Release sic@ + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) DL_DCCH_Message v_RadioBearerSetup; + var B8_Type v_RAB_ID := tsc_RAB_DefCS; + var UL_ScramblingCode v_UL_ScramblingCode; + var PrimaryScramblingCode v_PrimaryScramblingCode; + var CellParametersID v_CellParametersID; + + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_PrimaryScramblingCode := f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId); + + select (v_FddTddMessageClass) { + case (FDDr8) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_r9_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_r10_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_FDD_r11(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_FDD_r12(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not supported"); + } + } + } + case (UTRAN_TDD) { + v_CellParametersID := f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId); + + select (v_FddTddMessageClass) { + case (TDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr10){ + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_r10_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_TDD_r11(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_TDD_r12(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not supported"); + } + } + } + } + return v_RadioBearerSetup; + } + + /* + * @desc returns the RADIO BEARER SETUP depending on the message class + * @param p_CellId + * @param p_Integrityinfo + * @param p_Activationtime + * @return template (value) DL_DCCH_Message + * @status APPROVED (LTE_IRAT) + */ + function f_Get_cs_108_RB_SetUpPSandConvSpeech_PSexists(UTRAN_CellId_Type p_CellId, + IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activationtime) + runs on UTRAN_PTC return template (value) DL_DCCH_Message + { /* @sic R5-123750 sic@ */ + /* @sic R5s150684: restructuring (nested functions/templates) sic@ */ + var UTRAN_FddTddMessageClass_Type v_FddTddMessageClass := f_UTRAN_ConfigurationInfo_TestCaseRelease_Get(); // @sic R5s130195 Utran Release sic@ + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var template (value) DL_DCCH_Message v_RadioBearerSetup; + var B8_Type v_RAB_ID := tsc_RAB_DefPS; //@sic R5s120668 sic@ + var UL_ScramblingCode v_UL_ScramblingCode; + var PrimaryScramblingCode v_PrimaryScramblingCode; + var CellParametersID v_CellParametersID; + + select (v_FDD_TDD_Mode) { + case (UTRAN_FDD) { + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + v_PrimaryScramblingCode := f_UTRAN_CellInfo_GetPriScrmCode_FDD(p_CellId); + + select (v_FddTddMessageClass) { + case (FDDr8) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r9(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr10) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r10(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r11(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case (FDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r12(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_PrimaryScramblingCode, v_UL_ScramblingCode); + } + case else { + FatalError(__FILE__, __LINE__, "FDD release not supported"); + } + } + } + case (UTRAN_TDD) { + v_CellParametersID := f_UTRAN_CellInfo_GetCellParametersID_TDD(p_CellId); + + select (v_FddTddMessageClass) { + case (TDDr9) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); //@sic R5s130606 sic@ + } + case (TDDr10){ + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r10(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); //@sic R5s130606 sic@ + } + case (TDDr11) { + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r11(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); //@sic R5s130606 sic@ + } + case (TDDr12) { /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ + v_RadioBearerSetup := cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r12(p_Integrityinfo, p_Activationtime, v_RAB_ID, v_CellParametersID); //@sic R5s130606 sic@ + } + case else { + FatalError(__FILE__, __LINE__, "TDD release not supported"); + } + } + } + } + return v_RadioBearerSetup; + } + + /* @desc To setup a PS RADIO BEARER and to reconfigure the SS accordingly. + * See TS 36.508 cl. 4.8.3 for more details what bearers are configured. + * @param p_CellId + * @param p_RbType + * @param p_WaitForSetupCmpl (default value: true) + * @param p_LoopbackRLC_PDU (default value: false) + * @param p_UseStoredNsapi (default value: false) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) + */ + function f_UTRAN_RB_SetUp_PS_RAB(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_RbType, + boolean p_WaitForSetupCmpl := true, + boolean p_LoopbackRLC_PDU := false, // @sic R5s130195 PDCP sic@ + boolean p_UseStoredNsapi := false) //@sic R5s141127 sic@ + runs on UTRAN_PTC + { /* @sic R5s120139 - Additional Changes sic@ */ + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime(p_CellId); + var ActivationTime v_Activationtime := v_CfnInfo.actTime; /* @sic R5s150684 sic@ */ + var template (value) SS_ActivationTime v_SS_ActivationTime := cs_ActivateCFN(v_Activationtime); + var IntegrityCheckInfo v_Integrityinfo; + var template (value) DL_DCCH_Message v_RB_SetUp; + var C_RNTI v_New_CRNTI := '1010101010101010'B; + var boolean v_CnfReq := true; //@sic R5s110210 Additional MCC160 changes sic@ + + if (not p_WaitForSetupCmpl) { // @sic R5s120139 sic@ + // estimate the start value since we cannot take it from the Setup Complete message + v_SecurityInfo.start_PS := f_CalculateStartValue_ConnectedMode(v_SecurityInfo.start_PS); + f_UTRAN_Security_Set(v_SecurityInfo); + } + v_Integrityinfo := v_SecurityInfo.dl_IntegrityCheckInfo; /* @sic R5s150684 sic@ */ + + select (p_RbType) { + case (cell_DCH_64kPS_RAB_SRB) { + // Send RB_Set Up for DCH 64k PS for FDD + v_RB_SetUp := f_Get_cs_108_RB_SetUp64k_PS(p_CellId, v_Integrityinfo, v_Activationtime, p_UseStoredNsapi); + f_UTRAN_RB_SetUp_Send(v_RB_SetUp); //@sic R5s141127 sic@ + + //Configure 64k PS RAB at SS + f_SS_Config_64kPS_RAB (p_CellId, -, -, -, -, v_SS_ActivationTime, p_LoopbackRLC_PDU); // @sic R5s130195 PDCP sic@ + } + case (cell_DCH_HS_DSCH) { + v_RB_SetUp := f_Get_cs_108_RB_SetUpHS_FromDCH_UL_64k(p_CellId, v_Integrityinfo, v_Activationtime); + f_UTRAN_RB_SetUp_Send(v_RB_SetUp); //@sic R5s110210 Additional MCC160 changes sic@ + + // Configure HSDPA (64k in UL) RAB at SS + f_SS_Config_HSDPA_64kUL_RAB (p_CellId, v_SS_ActivationTime, p_LoopbackRLC_PDU); // @sic R5s130195 PDCP sic@ + } + case (cell_FACH_PS){ + // Send RB_Set Up + v_RB_SetUp := f_Get_cs_108_RB_SetUpFACH_PS(v_Integrityinfo); + f_UTRAN_RB_SetUp_Send(v_RB_SetUp, not v_CnfReq); //@sic R5s110210 Additional MCC160 changes sic@ + //Delay after sending the RAB SETUP in CELL FACH state; legacy of TTCN-2 suite; kept as exception only + if (v_FDD_TDD_Mode == UTRAN_TDD) { + f_Delay(tsc_DelaySetupFACH_TDD); //@sic R5s140468 sic@ + } else { + f_Delay(tsc_DelaySetupFACH); + } + + //Reconfigure SS with the new C-RNTI + f_UTRAN_SS_New_CRNTI(p_CellId, v_New_CRNTI); + // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ + if (not(p_LoopbackRLC_PDU)) { + f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); + } + + f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_FACH_PS); + } + case (cell_DCH_E_HS) { + FatalError(__FILE__, __LINE__, "Configuration not supported"); + } + case else { + FatalError(__FILE__, __LINE__, "Invalid configuration"); + } + } + if (p_WaitForSetupCmpl) { + f_UTRAN_RRC_ReceiveRB_SetupCmpl_PS_RAB (p_CellId, p_RbType); + } + else { // @sic R5s120139 sic@ + // just apply the ciphering at SS using the estimated start value + f_UTRAN_SS_CipheringAM_RAB_UL_DL(p_CellId, ps_domain, p_RbType, v_SecurityInfo.authKeys.AuthPS.CK); + } + } + + /* @desc To setup a Speech RADIO BEARER and to reconfigure the SS accordingly. + * See TS 36.508 cl. 4.8.3 for more details what bearers are configured. + * @param p_CellId + * @param p_USIM (default value: true) + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) + */ + function f_UTRAN_RB_SetUp_Speech(UTRAN_CellId_Type p_CellId, + boolean p_USIM := true) //@sic R5s110210 sic@ + runs on UTRAN_PTC + { /* @sic R5s120139 - Additional Changes sic@ */ + var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime(p_CellId); + var ActivationTime v_Activationtime := v_CfnInfo.actTime; + var template (value) SS_ActivationTime v_SS_ActivationTime := cs_ActivateCFN(v_Activationtime); + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var template (value) DL_DCCH_Message v_RB_SetUp := f_Get_cs_108_RB_SetUpSpeech(p_CellId, v_SecurityInfo.dl_IntegrityCheckInfo, v_Activationtime); + + f_UTRAN_RB_SetUp_Send(v_RB_SetUp); //@sic R5s110210 Additional MCC160 changes sic@ + + f_SS_Config_ConvSpeech_RAB(p_CellId, v_SS_ActivationTime); /* @sic R5s150684 sic@ */ + + f_UTRAN_RRC_ReceiveRB_SetupCmpl_Speech(p_CellId, v_Activationtime, p_USIM); + } + + /* + * @desc To establish mobile originated PDP Context. + * This test step will send PDP Context Accept on CellDedicated + * @param p_IP_TypeNo + * @param p_Addr + * @param p_LenOct + * @param p_Ti_S + * @param p_QualityOfService + * @param p_RB_ConfigType + * @param p_ProtocolConfigOptions (default value: omit) + * @status APPROVED (IMS, LTE_A, LTE_IRAT) + */ + function f_UTRAN_SendActivatePDP_Accept (template (value) PDP_TypeNo p_IP_TypeNo, + template (omit) AddressInfo p_Addr, + template (value) Type4Length_Type p_LenOct, + TI p_Ti_S, + template (value) QualityOfService p_QualityOfService, + RB_ConfigType p_RB_ConfigType, + template (omit) ProtocolConfigOptions p_ProtocolConfigOptions := omit) //@sic R5s141127 sic@ + runs on UTRAN_PTC + { + var template (value) LLC_SAPI v_LLC_SAPI := cs_LLC_SAPI_UMTS; + var template (value) QualityOfService v_QualityOfService; + var template (value) PktDataProtoAddr v_PktDataProtoAddr := cs_PktDataProtoAddrMT (p_LenOct, p_IP_TypeNo, p_Addr); + + if (pc_GERAN){//UE support GERAN => send with LLC SAPI set as 3 + v_LLC_SAPI := cs_LLC_SAPI_03; // @sic R5s110515 sic@ + } + + select (p_RB_ConfigType) { + case (cell_DCH_64kPS_RAB_SRB) { + v_QualityOfService := cs_QoS_InteractiveOrBackgroundMT (p_QualityOfService.delayClass, p_QualityOfService.trafficClass); + } + case (cell_FACH_PS, cell_FACH_HS, cell_FACH_UL_PS) { // Acc to 34.123-3 Table 8.10.2 @sic R5-133508 R5-150125 feFACH sic@ + v_QualityOfService := cs_QoS_InteractiveOrBackgroundMT_32kbps (p_QualityOfService.delayClass, p_QualityOfService.trafficClass); + } + case (cell_DCH_HS_DSCH) { + v_QualityOfService := cds_QoS_InteractiveOrBackgroundMT_HS(p_QualityOfService.delayClass, + p_QualityOfService.trafficClass, + p_QualityOfService.peakThroughput, + p_QualityOfService.maxSduSize, + p_QualityOfService.maxBitRateUL, + p_QualityOfService.maxBitRateDL, + p_QualityOfService.maxBitRateDL_Ext); + } + case else { + FatalError(__FILE__, __LINE__, "Radio Bearer configuration not supported"); + } + } + + //Send PDP Context Activation Accept + U_Dc.send (cas_DataReq_PS (utran_CellDedicated, // @sic R5s110465 sic@ + tsc_RB3, + cs_U_ActivatePDPContextAccept(cs_ActPDP_ContextAcpMT_Common (p_Ti_S, + v_LLC_SAPI, + v_QualityOfService, + cs_RadioPriorityHigh (omit), + v_PktDataProtoAddr, + p_ProtocolConfigOptions, //@sic R5s141127 sic@ + omit)))); + } + + //------------------------------------------------------------------------------------ + // Radio Bearer Establishement in UTRAN + //------------------------------------------------------------------------------------ + + /* + * @desc Performs UTRA PS RB Establishment according to TS 34.108 subclause 7.4.2 in a UTRAN cell. + * @param p_CellId + * @param p_RB_Configuration .. Radio Bearer type to be configured + * @param p_LoopBack (default: false) .. set to true if do not need to trigger UE to initiate call (as in loopback) + * @param p_APN (default: "") .. set to value if a specific APN required + * @param p_DedicatedId (default: 1) .. change if different value required + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_UE_PsRB_Est(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_RB_Configuration, + boolean p_LoopBack := false, + charstring p_APN := "", + integer p_DedicatedId := 1) runs on UTRAN_PTC + { + var template (value) EstablishmentCause v_EstCause := f_GetMoEstCause(); + var RB_ConfigType v_CellConfiguration := f_UTRAN_CellInfo_GetConfigType(p_CellId); + var ACTIVATEPDPCONTEXTREQUESTul v_ActPdpContextReq; + var template (value) PktDataProtoAddr v_ExpectedPDN_Address; + var boolean v_NewKeyFlag := true; + var TI v_Ti_R; // Transaction Identifier. r = value used to receive CC PDU + var TI v_Ti_S; // Transaction Identifier. s = value used to send CC PDU. + var template (value) QualityOfService v_QualityOfService; + var octetstring v_LAC, v_RAC; + var bitstring v_Ptmsi_Def := oct2bit(px_PTMSI_Def); + var CoOrd_GUTIParam_Type v_GUTI; + var boolean v_StoreNSAPI := (not (p_DedicatedId == 1)); // @sic R5-152145 sic@ + + //Init QoS and PDN Address parameters only if PS RAB is to be configured + select (p_RB_Configuration) { + case (cell_DCH_64kPS_RAB_SRB, + cell_DCH_HS_DSCH, + cell_DCH_E_HS, + cell_FACH_PS, + cell_FACH_HS) { + v_ExpectedPDN_Address := f_UG_GetPktDataProtoAddr (true); + v_QualityOfService := f_UTRAN_InitialiseQoS (p_CellId, p_RB_Configuration); + } + case else { + FatalError(__FILE__, __LINE__, "Configuration not supported"); + } + } + + if (not p_LoopBack) { // @sic R5s120097 sic@ + //Initiate an outgoing PS call + f_UT_ActivatePDPContextUG (UT, p_DedicatedId, v_QualityOfService, p_APN); // @sic R5-152145 sic@ + } + + select (v_CellConfiguration) { + case (cell_DCH_StandAloneSRB_NoConn, cell_FACH_NoConn) { + // Activate DHCP and ICMPv6 @sic R5-125676 sic@ + f_UTRAN_IP_Handling_Start_Configuration(PDN_1, p_RB_Configuration); //@sic R5s130512 sic@ + + //Steps 1-3 in 34.108 cl. 7.4.2.2.2.3: RRC connection establishment procedure for MO PS calls on DCH + f_UTRAN_RRC_ConnEst (p_CellId, v_EstCause); + + // Step 4 in 34.108 cl. 7.4.2.2.2.3: RRC connection establishment procedure for MO PS calls on DCH + f_UTRAN_GMM_ServReq (ps_domain); // @sic R5s110465 sic@ + + //Perform NAS session activation procedure for packet switched sessions (34.108 cl. 7.4.2.4.2) + //Steps 1-2 in 34.108 cl. 7.4.2.4.2: Generate authentication and run authentication procedure + f_UTRAN_GMM_Authentication(); + + //Step 3-4 in 34.108 cl. 7.4.2.4.2: Transmit Security Mode Comamnd & Receive Security Mode Comlpete + f_UTRAN_RRC_Security (p_CellId, v_NewKeyFlag, ps_domain); + + //Step 5 in 34.108 cl. 7.4.2.4.2: Receive PDP Context Activation Request + v_ActPdpContextReq := f_UTRAN_PS_SessionAct_ReceivePDP_Req (-, v_StoreNSAPI); //@sic R5s110465, R5s110771, R5-152145 sic@ + + //Assign v_RAB_Id (BITSTRING[8]) with the NSAPI (BITSTRING[4]) value received in ACTIVATE PDP CONTEXT REQUEST message: + //v_RAB_Id := int2bit (bit2int (v_ActPdpContextReq.requestedNSAPI.nSAPI_Value), 8); + //Radio Bearer Identity is set according to 34.108 cl 9.1.1 RADIO BEARER SETUP message for condition A3, A6 or A9. + v_Ti_R := v_ActPdpContextReq.ti; + v_Ti_S.tiFlag := '1'B; + v_Ti_S.tiVal := v_Ti_R.tiVal; + + //Step 1-3 in 34.108 cl. 7.4.2.6.2.3: Radio access bearer establishment procedure for PS mobilie originated calls. + //Step 1-2 in 34.108 cl. 7.4.2.6.2.3: Send RADIO BEARER SETUP and receive COMPLETE + f_UTRAN_RB_SetUp_PS_RAB (p_CellId, p_RB_Configuration); /* @sic R5s120139 - Additional Changes sic@ */ + + //Step 3 in 34.108 cl. 7.4.2.6.2.3: Send ACTIVATE PDP CONTEXT ACCEPT + f_UTRAN_SendActivatePDP_Accept (v_ExpectedPDN_Address.pDP_TypeNo, + v_ExpectedPDN_Address.addrInfo, + v_ExpectedPDN_Address.iel, + v_Ti_S, + v_QualityOfService, + p_RB_Configuration); + } + case else { + FatalError(__FILE__, __LINE__, "Cell is not properly configured"); + } + } + // Now transfer over the security parameters @sic R5s120097 sic@ + v_LAC := f_UTRAN_CellInfo_GetLAC(p_CellId); + v_RAC := f_UTRAN_CellInfo_GetRAC(p_CellId); + v_GUTI.MME_GroupId := oct2bit(v_LAC); + v_GUTI.MME_Code := substr (v_Ptmsi_Def, 8, 8); + v_GUTI.M_TMSI := '11'B & substr (v_Ptmsi_Def, 2, 6) & oct2bit(v_RAC) & substr (v_Ptmsi_Def, 16, 16); + + f_UTRAN_SendAuthCoOrdParameters (EUTRA, v_GUTI); + } + + /* + * @desc Configure a UTRA PS Radio Bearer in UE and SS according to TS 34.108 subclause 6.10.2.4.1.26 + * Interactive or background / UL:64 DL: 64 kbps / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH + * @param p_CellId + * @param p_WaitDataSignalling (default value: noDelay) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_UE_64kPS_Rb_Est(UTRAN_CellId_Type p_CellId, + UTRAN_DelayForUserPlaneSignalling_Type p_WaitDataSignalling := noDelay) runs on UTRAN_PTC + { + f_UTRAN_UE_PsRB_Est(p_CellId, cell_DCH_64kPS_RAB_SRB); + // Optional 1.2s delay acc. to 34.108 cl. 7.2.6 to allow user-plane signalling + f_UTRAN_DelayForUserPlaneSignalling(p_WaitDataSignalling); // @sic R5-133560 sic@ + } + + //* @desc Configure a UTRA HSDPA Radio Bearer in UE and SS according to TS 34.108 subclause 6.10.2.4.5.1 + //* Interactive or background / UL:64 DL: [max bit rate depending on UE category] / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH + function f_UTRAN_UE_HSDPA_Rb_Est(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + f_UTRAN_UE_PsRB_Est(p_CellId, cell_DCH_HS_DSCH); + } + + /* + * @desc Configure a PS Radio Bearer in UE and SS according to TS + * Interactive or background / UL:64 DL: 64 kbps / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH + * @param p_CellId + * @param p_WaitDataSignalling (default value: noDelay) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_UE_FACH_PS_Rb_Est(UTRAN_CellId_Type p_CellId, + UTRAN_DelayForUserPlaneSignalling_Type p_WaitDataSignalling := noDelay) runs on UTRAN_PTC + { + f_UTRAN_UE_PsRB_Est (p_CellId, cell_FACH_PS); + // Optional 1.2s delay acc. to 34.108 cl. 7.2.6 to allow user-plane signalling + f_UTRAN_DelayForUserPlaneSignalling(p_WaitDataSignalling); // @sic R5s130384 sic@ + } + + /* + * @desc Step 7 to 11 of test procedure in TS 34.123-1 subclause 12.9.14.4 + * The UE performs Network initiated RAB re-establishment in a UTRAN cell + * @param p_CellId + * @param p_RB_Configuration + * @param p_LoopbackRLC_PDU (default value: false) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_MT_RAB_ReEst(UTRAN_CellId_Type p_CellId, + RB_ConfigType p_RB_Configuration, + boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ + runs on UTRAN_PTC + { + // Activate DHCP and ICMPv6 @sic R5-125676 sic@ + f_UTRAN_IP_Handling_Start_Configuration(PDN_1, p_RB_Configuration); //@sic R5s130512 sic@ + + f_UTRAN_Page(p_CellId, terminatingInteractiveCall, oct2bit(px_PTMSI_Def)); + f_UTRAN_RRC_ConnEst(p_CellId, terminatingInteractiveCall); + + // RRC connection establishment procedure for MO PS calls on DCH + f_UTRAN_GMM_ServReq(ps_domain); + + // Transmit Security Mode Comamnd & Receive Security Mode Comlpete + f_UTRAN_RRC_Security(p_CellId, false, ps_domain); + + f_UTRAN_RB_SetUp_PS_RAB(p_CellId, p_RB_Configuration, -, p_LoopbackRLC_PDU); /* @sic R5s120139 - Additional Changes sic@ */ + } + + /* @desc From TTCN2 ts_SendRB_SetUpInteractBackg_64k_ConvSpeech_PS_CS: + * Test step for RB setup message for Interactive or background / UL:64 DL:64 kbps / PS RAB + Transport and + * physical channel Infornation for both combined PS and for Conversational / speech / UL:12.2 DL:12.2 kbps / CS RAB + * @param p_CellId + * @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) + */ + function f_UTRAN_Setup_RAB_PS_and_ConvSpeech (UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + var U_RLC_AM_IND v_UTRAN_RLC_AM_IND; + var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime(p_CellId); + var ActivationTime v_Activationtime := v_CfnInfo.actTime; + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var template (value) SS_ActivationTime v_ActTime := cs_ActivateCFN(v_Activationtime); + var template (value) DL_DCCH_Message v_RB_SetUp := f_Get_cs_108_RB_SetUpPSandConvSpeech(p_CellId, v_SecurityInfo.dl_IntegrityCheckInfo, v_Activationtime); + + f_UTRAN_RB_SetUp_Send(v_RB_SetUp); + + f_SS_5DCH_Modify_PS_and_ConvSpeech(p_CellId, v_ActTime); /* @sic R5s150684 sic@ */ + + f_SS_RB10_ToRB12_TM_Cfg (p_CellId); // @sic R5s110596 R5S120953 sic@ + + //Save cell configuration + f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_Four_DTCH_PS_CS); + + f_UTRAN_CMAC_SecurityMode_Config (v_SecurityInfo.recentSecureDomain, + v_SecurityInfo.start_CS, + v_SecurityInfo.authKeys.AuthCS.CKey); + + f_UTRAN_CMAC_UL_DL_CipherCfg (p_CellId, //@sic R5s130243 sic@ + v_SecurityInfo.dL_CipherMode, + v_Activationtime, + notInc); + + //Receive Radio Bearer Setup Complete message + U_AM.receive(car_RLC_Data_Ind (utran_CellDedicated, // @sic R5s120070 sic@ + tsc_RB2, + cr_108_RB_SetUpCmpl (tsc_RRC_TI))) -> value v_UTRAN_RLC_AM_IND; + + v_SecurityInfo.start_CS := v_UTRAN_RLC_AM_IND.data.aM_message.uL_DCCH_Message.message_.radioBearerSetupComplete.start_Value; + + //Store the security information + f_UTRAN_Security_Set (v_SecurityInfo); + //Download security keys to SS + f_UTRAN_SS_DownloadSecurityKey (p_CellId, cs_domain); + } + + /* @desc Test step for RB setup message for PS RAB when Conversational / speech is already established + * Does not receive RB Setup complete + * @param p_CellId + * @param p_LoopbackRLC_PDU (default value: false) + * @status APPROVED (LTE_IRAT) + */ + function f_UTRAN_Setup_RAB_PS_and_ConvSpeech_PSexists(UTRAN_CellId_Type p_CellId, + boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ + runs on UTRAN_PTC + { // @sic R5s120301 sic@ + var UTRAN_CFN_Info_Type v_CfnInfo := f_CalculateActTime (p_CellId); + var ActivationTime v_Activationtime := v_CfnInfo.actTime; + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var template (value) SS_ActivationTime v_ActTime := cs_ActivateCFN(v_Activationtime); + var template (value) DL_DCCH_Message v_RB_SetUp := f_Get_cs_108_RB_SetUpPSandConvSpeech_PSexists(p_CellId, v_SecurityInfo.dl_IntegrityCheckInfo, v_Activationtime); + + f_UTRAN_RB_SetUp_Send(v_RB_SetUp); + + f_SS_5DCH_Modify_PS_and_ConvSpeech(p_CellId, v_ActTime); /* @sic R5s150684 sic@ */ + + f_UTRAN_SS_RB20_AM_PS_Cfg (p_CellId, cs_OctetModeRLC_Size336, tsc_UL_DTCH4, tsc_DL_DTCH4); // @sic R5s130195 PDCP sic@ + // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ + if (not(p_LoopbackRLC_PDU)) { + f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); + } + + v_SecurityInfo.start_PS := f_CalculateStartValue_ConnectedMode(v_SecurityInfo.start_PS); + f_UTRAN_Security_Set(v_SecurityInfo); + + f_UTRAN_SS_CipheringAM_RAB_UL_DL(p_CellId, ps_domain, cell_DCH_64kPS_RAB_SRB, v_SecurityInfo.authKeys.AuthPS.CK); + } + + /* + * @desc If no activation time is specified "now" will be used. This is to be used for HOs to UTRAN. + * @param p_CellId + * @param p_ActTime (default value: cs_ActivateNow) + * @param p_LoopbackRLC_PDU (default value: false) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_SS_Config_ConvSpeech_64kPS_RAB(UTRAN_CellId_Type p_CellId, + template (value) SS_ActivationTime p_ActTime := cs_ActivateNow, + boolean p_LoopbackRLC_PDU := false) // @sic R5s130195 PDCP sic@ + runs on UTRAN_PTC + { + f_SS_5DCH_Modify_PS_and_ConvSpeech(p_CellId, p_ActTime); /* @sic R5s150684 sic@ */ + + // Setup radio bearer 10 to 12. + //* Default values from 34.108 cl. 6.10.2.4.4 and 6.10.2.4.3.3 + f_SS_RB10_ToRB12_TM_Cfg(p_CellId); //@sic R5s120953 sic@ + // Setup radio bearer RB20 + f_UTRAN_SS_RB20_AM_PS_Cfg (p_CellId, cs_OctetModeRLC_Size336, tsc_UL_DTCH4, tsc_DL_DTCH4 ); + + // Configure PDCP when there is no loopback of RLC PDU @sic R5s130195 PDCP sic@ + if (not(p_LoopbackRLC_PDU)) { + f_SS_RB_ConfigurePDCP(p_CellId, tsc_RB20); //@sic R5s140259 sic@ + } + + //Save cell configuration + f_UTRAN_CellInfo_SetConfigType (p_CellId, cell_Four_DTCH_PS_CS); + } + + //------------------------------------------------------------------------------------ + // Physical Channel Reconfiguration - Configuration of Compressed Mode in UE and SS + //------------------------------------------------------------------------------------ + + /* + * @desc Performs activation of compressed mode (through Physical channel reconfiguration) for TCs 8_4_2_2 and 8_4_2_4 + * NOTE: compressed mode is only activated for FDD and when pc_UTRA_CompressedModeRequired is set + * @param p_CellId + * @param p_TGPS_Status_r8 cs_TGPS_Status_Active or cs_TGPS_Status_Deactive (default value: omit) + * @param p_TGPS_Status_r10 (default value: omit) + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(UTRAN_CellId_Type p_CellId, + template (omit) TGPS_Status_r8_Type p_TGPS_Status_r8 := omit, + template (omit) TGPS_Status_r10_Type p_TGPS_Status_r10 := omit) runs on UTRAN_PTC + { /* @sic R5s120686 sic@ */ + /* @sic R5s150684: enhancement for rel-11 sic@ */ + var UTRAN_SecurityInfo_Type v_SecurityInfo := f_UTRAN_Security_Get(); + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI; + var RB_ConfigType v_CellConfig := f_UTRAN_CellInfo_GetConfigType(p_CellId); + var template (value) DL_CommonInformation_r8 v_DL_CommonInformation_r8; + var template (value) DL_CommonInformation_r11 v_DL_CommonInformation_r11; + var template (value) DL_DCCH_Message v_PhysicalChannelReconfiguration; + var SF512_AndCodeNumber v_SF512_AndCodeNumber; + var SF512_AndPilot v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB; + var PositionFixedOrFlexible v_PositionFixedOrFlexible := flexible; + var boolean v_TfciExistence := false; + var DL_TxPower v_DL_TxPower; + var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(p_CellId); + var UL_ScramblingCode v_UL_ScramblingCode; + var template (value) UL_DL_Mode v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_HLS; + var template (value) UL_DL_Mode v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_HLS; + var template (value) UL_DL_Mode v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_HLS; + var template (value) UL_DL_Mode v_UL_DL_Mode; + var template (value) DPCHInfo_r5OrLater_FDD v_DL_DPCHInfo; + var template (value) DPCHInfo_r5OrLater_FDD v_UL_DPCHInfo; + var boolean v_IsRel8 := ispresent(p_TGPS_Status_r8); + var boolean v_IsRel11 := ispresent(p_TGPS_Status_r10); + + select (v_CellConfig) { + case (cell_DCH_Speech) { + FatalError (__FILE__,__LINE__, "Speech branch not yet supported"); + } + case (cell_DCH_64kPS_RAB_SRB) { + v_SF512_AndCodeNumber := tsc_DL_DPCH1_ChC_64k_PS; + v_SF512_AndPilot := tsc_DL_DPCH1_SFP_64k_PS; + v_PositionFixedOrFlexible := flexible; + v_TfciExistence := true; + v_DL_TxPower := tsc_DL_TxPower_DPCH_64k; + } + case (cell_DCH_StandAloneSRB) { + v_SF512_AndCodeNumber := tsc_DL_DPCH1_ChC_SRB; + v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB; + v_PositionFixedOrFlexible := fixed; + v_DL_TxPower := tsc_DL_TxPower_DPCH; + v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_SF2; + v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_SF2; + v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_SF2; + } + case (cell_DCH_HS_DSCH) { // @sic R5s120535 sic@ + v_SF512_AndPilot := tsc_DL_DPCH1_SFP_SRB_3_4k; + v_SF512_AndCodeNumber := tsc_Sfc256_C0; + v_PositionFixedOrFlexible := fixed; // Anritsu_8424 - fixed postion must used + v_TfciExistence := false; // Anritsu_8424 - No TCFI + v_DL_TxPower := tsc_DL_TxPower_DPCH; + v_UL_DL_Mode_ULDL := cs_UL_DL_Mode_ULDL_HSDPA; + v_UL_DL_Mode_ULonly := cs_UL_DL_Mode_UL_HLS; + v_UL_DL_Mode_DLonly := cs_UL_DL_Mode_DL_SF2; // Anritsu_8424 - SF/2 must be used for HSDPA + } + case (cell_DCH_E_HS) { + FatalError (__FILE__,__LINE__, "HSDPA/HSUPA branch not supported"); + } + case else { + FatalError (__FILE__,__LINE__, "Invalid Cell configuration"); + } + } + + if (v_FDD_TDD_Mode == UTRAN_FDD) { + v_UL_ScramblingCode := f_UTRAN_CellInfo_GetULScrmCode_FDD(p_CellId); + + if (not pc_InterRAT_UL_CompressedModeRequired and not pc_InterRAT_DL_CompressedModeRequired) { + // Compressed mode does not need to be configured + return; + } + else if (pc_InterRAT_UL_CompressedModeRequired and pc_InterRAT_DL_CompressedModeRequired) { + v_UL_DL_Mode := v_UL_DL_Mode_ULDL; + } + else if (pc_InterRAT_DL_CompressedModeRequired) { + v_UL_DL_Mode := v_UL_DL_Mode_DLonly; + v_TfciExistence := true; + } + else if (pc_InterRAT_UL_CompressedModeRequired) { + v_UL_DL_Mode := v_UL_DL_Mode_ULonly; + v_TfciExistence := true; + } + else { + FatalError (__FILE__,__LINE__, "Invalid PICS settings"); + } + + // Transmit Physical Channel Configuration including Compressed Mode parameters for UL and/or DL + + if (v_IsRel8) { + v_DL_CommonInformation_r8 := cs_DL_CommonInformationRB_SetUp_FDD(v_SF512_AndPilot, + v_PositionFixedOrFlexible, + v_TfciExistence, + cs_DPCH_CompressedModeInfo(valueof(p_TGPS_Status_r8), v_UL_DL_Mode), + omit); + v_PhysicalChannelReconfiguration := cs_PhysicalChannelReconfiguration(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + omit, + v_DL_CommonInformation_r8); + v_DL_DPCHInfo := cs_DPCHInfo_DL_FDD(cs_DL_DPCH_FDD(v_DL_CommonInformation_r8, + v_SF512_AndCodeNumber, + -, + v_DL_TxPower)); + v_UL_DPCHInfo := cs_DPCHInfo_UL_FDD(cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + v_UL_ScramblingCode)); + } else if (v_IsRel11) { + v_DL_CommonInformation_r11 := cs_DL_CommonInformationRB_SetUp_FDD_r11(v_SF512_AndPilot, + v_PositionFixedOrFlexible, + v_TfciExistence, + cs_DPCH_CompressedModeInfo_r10(valueof(p_TGPS_Status_r10), v_UL_DL_Mode), + omit); + v_PhysicalChannelReconfiguration := cs_PhysicalChannelReconfiguration_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + omit, + v_DL_CommonInformation_r11); + v_DL_DPCHInfo := cs_DPCHInfo_Extension_FDD(cs_DL_DPCHInfo_r11_Extension_FDD(cs_DL_DPCH_FDD_r11(v_DL_CommonInformation_r11, + v_SF512_AndCodeNumber, + -, + v_DL_TxPower))); + v_UL_DPCHInfo := cs_DPCHInfo_Extension_FDD(cs_UL_DPCHInfo_r11_Extension_FDD(cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_64k_PS, + pl0_96, + v_UL_ScramblingCode))); + } else { + FatalError (__FILE__,__LINE__, "unknown release"); + } + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + v_PhysicalChannelReconfiguration)); + + if (pc_InterRAT_DL_CompressedModeRequired) { + // Configure compressed mode in SS DL + f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, + tsc_DL_DPCH1, + v_DL_DPCHInfo, + cs_ActivateNow, + false)); // @sic R5s120462 sic@ + } + if (pc_InterRAT_UL_CompressedModeRequired) { + // Configure compressed mode in SS UL + f_UTRAN_CPHY_RL_Modify(cas_RL_Modify_DPCHInfo_FDD(p_CellId, + tsc_UL_DPCH1, + v_UL_DPCHInfo, + cs_ActivateNow, + false)); // @sic R5s120462 sic@ + } + + // Receive Physical Channel Reconfiguration Complete + U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, + tsc_RB2, + cr_PhysicalChannelReconfigurationComplete(v_RRC_TI))); + } + else { + FatalError (__FILE__,__LINE__, "No compressed mode needed for TDD "); + } + } + + /* + * @desc Wrapper function + * @param p_CellId + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { /* @sic R5s120686 sic@ */ + /* @sic R5s150684: renamed to f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ */ + f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(p_CellId, cs_TGPS_Status_Deactive); + } + + /* + * @desc Wrapper function + * @param p_CellId + * @param p_Tgcfn + * @status + */ + function f_UTRAN_PhyChReconf_InterRatCompresseModeActivate(UTRAN_CellId_Type p_CellId, + TGCFN p_Tgcfn) runs on UTRAN_PTC // @sic R5-123655 sic@ + { + f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(p_CellId, cs_TGPS_Status_Active(p_Tgcfn)); + } + + function f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate_r11(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(p_CellId, -, cs_TGPS_Status_r10_Deactive); + } + +} diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RLC_Types.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RLC_Types.ttcn new file mode 100644 index 0000000..7e1594f --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RLC_Types.ttcn @@ -0,0 +1,342 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-04-14 17:22:26 +0200 (Tue, 14 Apr 2015) $ +// $Rev: 13379 $ +/******************************************************************************/ +module UTRAN_RLC_Types +{ + import from CommonDefs all; + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + + //============================================================================================== + // UTRAN AM RLC PDU types + //============================================================================================== + type B1_Type DC_Field; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Control / Data type indicator for AM RLC PDU. + 25.322 cl 9.2.2.1 */ + type B12_Type AM_SeqNum; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Sequence number for an AM RLC PDU. + 25.322 cl 9.2.2.3 */ + type B1_Type PollingBit; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Polling bit used to request a status report from the receiving RLC AM entity. + 25.322 cl 9.2.2.4 */ + type B2_Type HeaderExt; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Used to indicate if the next octet will be data, or a length indicator and E bit. + 25.322 cl 9.2.2.7 */ + type octetstring AM_Data length(0..4095); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Data content for a RLC AM PDU with 7 or 15 bit length indicators. + 25.322 cl 9.2.2.9 */ + type B4_Type SUFI_ListLi; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Number of consecutive PDUs not correctly received following PDU with sequence number SNi. Used in List super field. + 25.322 cl 9.2.2.11.4 */ + type B4_Type LIST_Len; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The length of a LIST super field within a STATUS PDU. + 25.322 cl 9.2.2.11.4 */ + type B4_Type SUFI_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The type of a super field within a STATUS PDU. + 25.322 cl 9.2.2.11 */ + type octetstring Bitmap length(1..16);/* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The bitmap within a Bitmap super-field. + 25.322 cl 9.2.2.11.5 */ + type B4_Type N_Length; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The N_Length field within an MRW superfield + 25.322 cl 9.2.2.11.8 */ + type B4_Type MRW_Len; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The length of a MRW super field within a STATUS PDU + 25.322 cl 9.2.2.11.8 */ + type B12_Type SUFI_SN_MRWi; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + SN_MRWi field to be used within move receiving window super fields + 25.322 cl 9.2.2.11.7 */ + type B4_Type BitmapLen; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The length of a bitmap super field within a STATUS PDU + 25.322 cl 9.2.2.11.5 */ + type B3_Type CW_NumberPart; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The number part (X1X2X3) of a codeword in an RLIST SUFI + 25.322 cl 9.2.2.11.6 */ + type B4_Type RLIST_Len; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + The length of a RLIST super field within a STATUS PDU + 25.322 cl 9.2.2.11.6 */ + type hexstring Padding length(1..8192); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Padding for RLC UM or AM PDU + 25.322 cl 9.2.2.10 + Note: As per 25.322 clause 9.2.1.5: when flexible PDU size is being configured, padding is only included to make the length of the STATUS PDU a multiple of 8 bits */ + type B7_Type LenInd7; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + 7 bit length indicator for AM or UM RLC PDU. + 25.322 9.2.2.8 */ + type B1_Type ExtBit; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Used to indicate if the next octet will be data, or a length indicator and E bit. + 25.322 cl 9.2.2.5 */ + type B15_Type LenInd15; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + 15 bit length indicator for AM or UM RLC PDU. + 25.322 9.2.2.8 */ + type B3_Type CtrlPDU_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + PDU type for AM STATUS PDUs + 25.322 cl 9.2.2.2 */ + type B20_Type HFNI; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Hyper frame number indicator for a RESET PDU + 25.322 clause 9.2.2.14 */ + type B1_Type RSN; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Reset sequence number for a RESET PDU + 25.322 clause 9.2.2.13 */ + + //--------------------------------- + // SUFI types + //--------------------------------- + type record SUFI_NoMore { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + No more data super field. + 25.322 cl 9.2.2.11.1 + Deviation from TTCN-2: the field name 'type' can't be used: 'type' -> renamed to 'sUFI_Type' */ + SUFI_Type sUFI_Type // Always tsc_SUFI_NoMore + }; + + //--------------------------------- + type record SUFI_Ack { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Acknowledgement super field + 25.322 cl 9.2.2.11.2 + The ACK SUFI shall always be placed as the last SUFI if it is included in a STATUS PDU. */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_Ack + AM_SeqNum lsn // Acknowledges the reception of all PDUs with sequence numbers < LSN that are not indicated to be erroneous in earlier parts of the STATUS PDU. + }; + + //--------------------------------- + type record SUFI_WindowSize { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Window size super field + 25.322 cl 9.2.2.11.3 */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_WindowSize + B12_Type wsn // The allowed Tx window size to be used by the transmitter. + }; + + //--------------------------------- + type record SNiLiPair { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + AM_SeqNum sNi, + SUFI_ListLi li + } + + type record of SNiLiPair SNiLiPairList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + type record SUFI_List { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + List super field + 25.322 cl 9.2.2.11.4 */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_List + LIST_Len len, // The number of (SNi, Li) pairs in the super field - 4 bits. + SNiLiPairList_Type sNList + // Deviation from TTCN-2: a list can be used in TTCN-3 + /* SNiLiPair sN1L1, // SNi: Sequence number of PDU which was not correctly received; Li: The number of consecutive PDUs not correctly received following PDU with sequence number SNi. + SNiLiPair sN2L2 optional, // SNi: Sequence number of PDU which was not correctly received; Li: The number of consecutive PDUs not correctly received following PDU with sequence number SNi. + SNiLiPair sN3L3 optional // SNi: Sequence number of PDU which was not correctly received; Li: The number of consecutive PDUs not correctly received following PDU with sequence number SNi. + */ + } + + //--------------------------------- + type record SUFI_Bitmap { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Bitmap super field + 25.322 cl 9.2.2.11.5 */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_Bitmap + BitmapLen len, // The size of the bitmap in octets = len+1. len='0000'B means that the bitmap is one octet, and len='1111'B means that the bitmap is the maximum size of 16 octets + AM_SeqNum fsn, // The sequence number for the first bit in the bitmap. + Bitmap bitmap // Status of the SNs in the interval [ FSN, FSN + ( len + 1 ) * 8 -1 ] where each bit_position can take on the following values:- + // '1'B indicates that FSN + bit_position has been correctly received + // '0'B indicates that FSN + bit_position has not been correctly received + }; + + //--------------------------------- + type record CodeWord { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Code word within an RList super field + 25.322 cl 9.2.2.11.6 */ + CW_NumberPart numberPart, + B1_Type statusInd + }; + + type record of CodeWord CodeWordList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + type record SUFI_RList { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Relative list super field. + 25.322 cl 9.2.2.11.6 */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_RList + RLIST_Len len, // The number of codewords in the super-field + AM_SeqNum fsn, // The sequence number of the first erroneous PDU in the RLIST. Note that len = '0000'B means that only FSN is present in the SUFI. + CodeWordList_Type CW_List // Each CW consists of 4 bits where the first three bits are part of a number, and the last bit is a status indicator. see 25.25.322 cl 9.2.2.11.6 for a detailed description. */ + /* Deviation from TTCN-2: a list is used in TTCN-3 + CodeWord CW1 + CodeWord CW2 optional, + CodeWord CW3 optional + */ + }; + + //--------------------------------- + type record SUFI_MRW_ACK { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Move receiving window acknowledgement super field + 25.322 cl 9.2.2.11.7 */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_MRW_ACK */ + N_Length n, // The N field shall be set equal to the NLENGTH field in the received MRW SUFI if the SN_ACK field is equal to the SN_MRWLENGTH field. Otherwise N shall be set to 0 + AM_SeqNum sN_ACK // The SN_ACK field indicates the updated value of VR(R) after the reception of the MRW SUFI. + }; + + //--------------------------------- + type record of SUFI_SN_MRWi SUFI_SN_MRWiList_TYpe; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + type record SUFI_MRW { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + Move receiving window super field + 25.322 cl 9.2.2.11.8 */ + SUFI_Type sUFI_Type, // Always tsc_SUFI_MRW + MRW_Len len, // The number of SN_MRWi fields in the super-field. + SUFI_SN_MRWiList_TYpe SUFI_SN_MRWiList, + /* Deviation from TTCN-2: a list is used in TTCN-3 + SUFI_SN_MRWi sN_MRW1, // Each SN_MRWi is used to indicate the end of each discarded SDU. SN_MRWi is the sequence number of the PDU that contains the LI of the i:th discarded SDU. + SUFI_SN_MRWi sN_MRW2 optional, + SUFI_SN_MRWi sN_MRW3 optonal, */ + N_Length nLength // nLength is used together with SN_MRW_Length to indicate the end of the last discarded SDU */ + } + + //--------------------------------- + type record SuperFields { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + This type is used to represent the set of super-fields within a STATUS PDU. + 25.322 cl 9.2.1.5 */ + SUFI_WindowSize windowSize optional, + // These super fields may arrive in any order, and may or may not be present. This type definition only supports a single super-field, followed by either a NO_MORE SUFI, or an ACK SUFI. + SUFI_List list optional, + // These super fields may arrive in any order, and may or may not be present. This type definition only supports a single super-field, followed by either a NO_MORE SUFI, or an ACK SUFI. + SUFI_RList rList optional, + // These super fields may arrive in any order, and may or may not be present. This type definition only supports a single super-field, followed by either a NO_MORE SUFI, or an ACK SUFI. + SUFI_Bitmap bitmap optional, + // These super fields may arrive in any order, and may or may not be present. This type definition only supports a single super-field, followed by either a NO_MORE SUFI, or an ACK SUFI. + SUFI_MRW mRW optional, + // These super fields may arrive in any order, and may or may not be present. This type definition only supports a single super-field, followed by either a NO_MORE SUFI, or an ACK SUFI. + SUFI_MRW_ACK mRW_Ack optional, + // These super fields may arrive in any order, and may or may not be present. This type definition only supports a single super-field, followed by either a NO_MORE SUFI, or an ACK SUFI. + SUFI_NoMore noMore optional, + // The NO_MORE SUFI, and the ACK SUFI are mutually exclusive, and should never both be present in the same STATUS PDU. + SUFI_Ack ack optional + // The NO_MORE SUFI, and the ACK SUFI are mutually exclusive, and should never both be present in the same STATUS PDU. + // The ACK SUFI is used to acknowledge reception of all PDUs up to LSN, EXCEPT for any PDUs indicated as incorrectly received in the previous SUFIs. */ + }; + + //---------------------------------------------------------------------------------- + // Length Indicator + //---------------------------------------------------------------------------------- + type record of LenInd7AndE_Bit LenInd7AndE_BitList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type record LenInd7AndE_Bit { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + This type is used to represent a 7 bit length indicator and an extension bit, used in both AMD and UMD PDUs. + 25.322 cl 9.2.1.3 and 9.2.1.4 */ + LenInd7 lenInd, + ExtBit extBit + }; + + type record of LenInd15AndE_Bit LenInd15AndE_BitList_Type; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + type record LenInd15AndE_Bit { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + This type is used to represent a 15 bit length indicator and an extension bit, used in both AMD and UMD PDUs. + 25.322 cl 9.2.1.3 and 9.2.1.4 */ + LenInd15 lenInd, + ExtBit extBit + }; + + type union LenInds { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* This type is used to represent a Length Indicator group. + LI groups using this type definition shall never contain both 15 and 7 bit + length indicators. + + When transmitting an AMD PDU, the TTCN author is responsible for ensuring that + the PDU either: + + 1. Contains no length indicators, by using c_LIsEmpty, and setting the + headerExt field in the AMD_PDU constraint to tsc_HE_Data. + + 2. Contains 1 to 5 seven bit length indicators, by using one of the + constraints c_LIs1_7BitLI, c_LIs2_7BitLIs, c_LIs3_7BitLIs, or c_LIs5_7BitLIs and setting the + headerExt field in the AMD_PDU to tsc_HE_LI_AndE_Bit.Note that use of these + constraints ensures that that the fields lenInd15_1, lenInd15_2, and lenInd15_3 are omitted. + + 3. Contains 1 to 3 fifteen bit length indicators, by using one of the + constraints c_LIs1_15BitLI, c_LIs2_15BitLIs, or c_LIs3_15BitLIs, and setting + the headerExt field in the AMD_PDU to tsc_HE_LI_AndE_Bit. Note that use of + these constraints ensures that that the fields lenInd7_1, lenInd7_2, and + lenInd7_3 are omitted. + + When receiving an AMD PDU, the SS is responsible for the following: + 1. Examining the headerExt field in the AMD PDU header to decide if any length + indicators are present. + + 2. Deciding whether 7 or 15 bit length indicators are being used for received + PDUs based on the currently configured RLC PDU size. + + 3. Examining the E-bit following each LI that is present to determine if any + further LIs are present. If more than 3 resp. 5 LIs are present, a test case error + shall be reported, and the test suite will need to be updated to support more + than 3 resp. 5 length indicators. + */ + LenInd7AndE_BitList_Type lenInd7_List, + LenInd15AndE_BitList_Type lenInd15_List + /* Deviation from TTCN-2: lists are used in TTCN-3 + LenInd7AndE_Bit lenInd7_1 optional, + LenInd7AndE_Bit lenInd7_2 optional, + LenInd7AndE_Bit lenInd7_3 optional, + LenInd7AndE_Bit lenInd7_4 optional, + LenInd7AndE_Bit lenInd7_5 optional, + LenInd15AndE_Bit lenInd15_1 optional, + LenInd15AndE_Bit lenInd15_2 optional, + LenInd15AndE_Bit lenInd15_2 optional, */ + }; + + //---------------------------------------------------------------------------------- + // Piggybacked STATUS PDU + //---------------------------------------------------------------------------------- + type record PiggyBackedSTATUS_PDU { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + A piggybacked STATUS PDU within an AMD PDU. This type is identical to the STATUS PDU, except the D/C field is replaced with a reserved bit. + Ref 3G TS 25.322 clause 9.2.1.6. If padding is required, the padding field in the PDU containing this piggy-backed STATUS PDU should be used */ + B1_Type r, /* Reserved for future extensions. */ + SuperFields superFields optional, + hexstring superFieldsRec + }; + + //---------------------------------------------------------------------------------- + // AMD PDU + //---------------------------------------------------------------------------------- + type record AMD_PDU { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + // 25.322 clause 9.2.1.4 AMD PDU + DC_Field dcField, + AM_SeqNum seqNum, + PollingBit pollingBit, + HeaderExt headerExt, + LenInds lenInds optional, + AM_Data data, + PiggyBackedSTATUS_PDU piggybackedStatus optional, + Padding padding optional + }; + + //---------------------------------------------------------------------------------- + // AMD STATUS PDU + //---------------------------------------------------------------------------------- + type record STATUS_PDU { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + An AMD STATUS PDU + 25.322 cl 9.2.1.5 */ + DC_Field dC_Field, // Always tsc_DC_ControlPDU for a STATUS PDU. + CtrlPDU_Type ctrlPDU, // Deviation from TTCN-2 field name 'type' not accepted by TTCN-3: renamed to 'ctrlPDU' + // Always tsc_PDU_TypeStatus for a STATUS PDU. + SuperFields superFieldsTx optional, // The superfields transmitted in the STATUS PDU. + hexstring superFieldsAndPadRx optional, // The superfields and padding to be received in the STATUS PDU. + Padding paddingTx optional /* The padding transmitted must be present to ensure that the total size of this PDU is exactly + equal to the current PDU size. It is the callers responsibility to ensure that + the superfields are either terminated with a NO_MORE SUFI, or an ACK SUFI. */ + }; + + //---------------------------------------------------------------------------------- + // RESET PDU + //---------------------------------------------------------------------------------- + type record RESET_PDU { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + A RESET, or RESET Acknowledge PDU + 25.322 clause 9.2.1.7 */ + DC_Field dC_Field, // Data / Control field. Always tsc_DC_ControlPDU + CtrlPDU_Type ctrlPDU, // tsc_PDU_TypeReset or tsc_PDU_TypeResetAck + RSN rsn, // Reset sequence number + B3_Type reserved, // Reserved for future extensions. Always '000'B. Ref 3G TS 25.322 clause 9.2.2.6 + HFNI hfni, // Hyper frame number indicator + Padding padding optional // Must be present to ensure that the total size of this PDU is exactly equal to the current PDU size. + }; + +} diff --git a/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn similarity index 87% rename from IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn index 959b03f..ddfd14e 100644 --- a/IMS_PART4_IWD_14wk37/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_ASN1_Definitions.asn @@ -1,7 +1,8 @@ UTRAN-RRC-ASN1-Definitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN --- ***** RRC ASN.1 definitions extracted from TS 25.331 (Revision b.5.0) ***** +-- ***** RRC ASN.1 definitions extracted from TS 25.331 (Revision c.5.0) ***** +-- MCC TF160: the correction according to 25331-c50_README.txt is implemented: added OPTIONAL to the field simultaneousSupportforDCHEnhancementsAndCM in DL-PhysChCapabilityFDD-vc50ext --************************************************************** -- -- Downlink DCCH messages @@ -381,8 +382,17 @@ ActiveSetUpdate ::= CHOICE { -- REL-12 activeSetUpdate-r11-add-ext BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL - }, - criticalExtensions SEQUENCE {} + }, + criticalExtensions CHOICE { + r12 SEQUENCE { + activeSetUpdate-r12 ActiveSetUpdate-r12-IEs, + -- Container for adding non critical extensions after freezing + -- REL-13 + activeSetUpdate-r12-add-ext BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -669,6 +679,51 @@ ActiveSetUpdate-r11-IEs ::= SEQUENCE { additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL } +ActiveSetUpdate-r12-IEs ::= SEQUENCE { + -- User equipment IEs + activationTime ActivationTime OPTIONAL, + newU-RNTI U-RNTI OPTIONAL, + newH-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + -- Core network IEs + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + -- Physical channel IEs + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, + e-dch-ReconfigurationInfo-SecULFrequency + E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + rl-AdditionInformationList RL-AdditionInformationList-r12 OPTIONAL, + rl-AdditionInformationList-SecULFreq + RL-AdditionInformationList-SecULFreq-r12 OPTIONAL, + servingCellChangeParameters ServingCellChangeParameters-r12 OPTIONAL, + rl-RemovalInformationList RL-RemovalInformationList OPTIONAL, + rl-RemovalInformationList-SecULFreq + RL-RemovalInformationList-SecULFreq OPTIONAL, + tx-DiversityMode TX-DiversityMode OPTIONAL, + dpc-Mode DPC-Mode OPTIONAL, + serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12 OPTIONAL, + e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11 OPTIONAL, + ul-16QAM-Config UL-16QAM-Config OPTIONAL, + ul-64QAM-Config UL-64QAM-Config OPTIONAL, + ul-MIMO-InfoFDD UL-MIMO-InfoFDD OPTIONAL, + e-dch-ReconfInfoSameCell E-DCH-RL-InfoSameServingCell OPTIONAL, + e-TFC-Boost-Info E-TFC-Boost-Info-r7 OPTIONAL, + e-DPDCH-PowerInterpolation E-DPDCH-PowerInterpolation OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL +} -- *************************************************** -- -- ACTIVE SET UPDATE COMPLETE (FDD only) @@ -734,7 +789,11 @@ AssistanceDataDelivery ::= CHOICE { va40NonCriticalExtension SEQUENCE { assistanceDataDelivery-va40ext AssistanceDataDelivery-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtension SEQUENCE { + assistanceDataDelivery-vc50ext + AssistanceDataDelivery-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -791,6 +850,13 @@ AssistanceDataDelivery-va40ext-IEs ::= SEQUENCE { UE-Positioning-GANSS-AssistanceData-va40ext OPTIONAL } +AssistanceDataDelivery-vc50ext-IEs ::= SEQUENCE { + ue-positioning-GPS-AssistanceData-vc50ext + UE-Positioning-GPS-AssistanceData-vc50ext OPTIONAL, + ue-positioning-GANSS-AssistanceData-vc50ext + UE-Positioning-GANSS-AssistanceData-vc50ext OPTIONAL +} + -- *************************************************** -- -- CELL CHANGE ORDER FROM UTRAN @@ -911,7 +977,10 @@ CellUpdate ::= SEQUENCE { cellUpdate-va40ext CellUpdate-va40ext-IEs, vb50NonCriticalExtensions SEQUENCE { cellUpdate-vb50ext CellUpdate-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + cellUpdate-vc50ext CellUpdate-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -1025,6 +1094,11 @@ CellUpdate-vb50ext-IEs ::= SEQUENCE { measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL } +CellUpdate-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL +} + -- *************************************************** -- -- CELL UPDATE CONFIRM @@ -1175,7 +1249,17 @@ CellUpdateConfirm ::= CHOICE { BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + cellUpdateConfirm-r12 CellUpdateConfirm-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + cellUpdateConfirm-r12-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -1806,7 +1890,7 @@ CellUpdateConfirm-r11-IEs ::= SEQUENCE { mimoParameters MIMO-Parameters-r9 OPTIONAL, mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, @@ -1814,7 +1898,7 @@ CellUpdateConfirm-r11-IEs ::= SEQUENCE { ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, @@ -1828,6 +1912,82 @@ CellUpdateConfirm-r11-IEs ::= SEQUENCE { cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } +CellUpdateConfirm-r12-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + activationTime ActivationTime OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + -- The IE "new-DSCH-RNTI" should not be included in FDD mode, + -- and if received the UE behaviour is unspecified + new-DSCH-RNTI DSCH-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + waitTime WaitTime OPTIONAL, + rlc-Re-establishIndicatorRb2-3or4 BOOLEAN, + rlc-Re-establishIndicatorRb5orAbove BOOLEAN, + -- CN information elements + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + -- Specification mode information + -- Radio bearer IEs + rab-InformationSetup RAB-InformationSetup-r8 OPTIONAL, + rb-InformationReleaseList RB-InformationReleaseList OPTIONAL, + rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, + rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, + dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, + pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, + -- Transport channel IEs + ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL, + ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, + dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, + dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, + ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL, + filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, + controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL, + -- MBMS IEs + mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, + -- Measurement IEs for LCR + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL, + -- WLAN IEs + dedicatedWLANOffloadInformation DedicatedWLANOffloadInformation OPTIONAL +} + -- *************************************************** -- -- CELL UPDATE CONFIRM for CCCH @@ -1967,7 +2127,16 @@ CellUpdateConfirm-CCCH ::= CHOICE { cellUpdateConfirm-r11-add-ext BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + cellUpdateConfirm-r12 CellUpdateConfirm-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + cellUpdateConfirm-r12-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, criticalExtensions SEQUENCE {} + } } } } @@ -2687,9 +2856,20 @@ HandoverToUTRANCommand-LaterCriticalExtensions ::= CHOICE { handoverToUTRANCommand-r11 HandoverToUTRANCommand-r11-IEs, -- Container for adding non critical extensions after freezing REL-12 handoverToUTRANCommand-r11-add-ext BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vbc0NonCriticalExtensions SEQUENCE { + handoverToUTRANCommand-vbc0ext HandoverToUTRANCommand-vbc0ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + handoverToUTRANCommand-r12 HandoverToUTRANCommand-r12-IEs, + -- Container for adding non critical extensions after freezing REL-13 + handoverToUTRANCommand-r12-add-ext BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } @@ -2844,6 +3024,95 @@ HandoverToUTRANCommand-r11-IEs ::= SEQUENCE { maxAllowedUL-TX-Power MaxAllowedUL-TX-Power } +HandoverToUTRANCommand-vbc0ext-IEs ::= SEQUENCE { + specificationMode CHOICE { + complete SEQUENCE { + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-HandoverToUtran OPTIONAL, + ulSecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, + additionalDLSecCellInfoHandoverToUtranListFDD AdditionalDLSecCellInfoHandoverToUtranListFDD OPTIONAL + } + } +} + +HandoverToUTRANCommand-r12-IEs ::= SEQUENCE { + -- User equipment IEs + new-U-RNTI U-RNTI-Short, + cipheringAlgorithm CipheringAlgorithm-r7 OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + -- Radio bearer IEs + -- Specification mode information + defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, + specificationMode CHOICE { + complete SEQUENCE { + srb-InformationSetupList SRB-InformationSetupList-r8, + rab-InformationSetupList RAB-InformationSetupList-r8 OPTIONAL, + ul-CommonTransChInfo UL-CommonTransChInfo-r12, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8, + dl-CommonTransChInfo DL-CommonTransChInfo-r4, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11, + ul-DPCH-Info UL-DPCH-Info-r11, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12, + dl-InformationPerRL-List DL-InformationPerRL-List-r12, + -- Physical channel IEs + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, + frequencyInfo FrequencyInfo, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-HandoverToUtran OPTIONAL, + ulSecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, + additionalDLSecCellInfoHandoverToUtranListFDD AdditionalDLSecCellInfoHandoverToUtranListFDD OPTIONAL + }, + preconfiguration SEQUENCE { + -- All IEs that include an FDD/TDD choice are split in two IEs for this message, + -- one for the FDD only elements and one for the TDD only elements, so that one + -- FDD/TDD choice in this level is sufficient. + preConfigMode CHOICE { + predefinedConfigIdentity PredefinedConfigIdentity, + defaultConfig SEQUENCE { + defaultConfigMode DefaultConfigMode, + defaultConfigIdentity DefaultConfigIdentity-r6 + } + }, + rab-Info RAB-Info-Post OPTIONAL, + modeSpecificInfo CHOICE { + fdd SEQUENCE { + ul-DPCH-Info UL-DPCH-InfoPostFDD, + dl-CommonInformationPost DL-CommonInformationPost, + dl-InformationPerRL-List DL-InformationPerRL-ListPostFDD, + frequencyInfo FrequencyInfoFDD + }, + tdd CHOICE { + tdd384 SEQUENCE { + ul-DPCH-Info UL-DPCH-InfoPostTDD, + dl-InformationPerRL DL-InformationPerRL-PostTDD, + frequencyInfo FrequencyInfoTDD, + primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power + }, + tdd128 SEQUENCE { + ul-DPCH-Info UL-DPCH-Info-r7, + dl-InformationPerRL DL-InformationPerRL-PostTDD-LCR-r4, + frequencyInfo FrequencyInfoTDD, + primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL + }, + tdd768 SEQUENCE { + ul-DPCH-Info UL-DPCH-Info-r7, + dl-InformationPerRL DL-InformationPerRL-List-r7, + frequencyInfo FrequencyInfoTDD, + primaryCCPCH-TX-Power PrimaryCCPCH-TX-Power + } + } + } + } + }, + -- Physical channel IEs + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power +} + -- *************************************************** -- -- HANDOVER TO UTRAN COMPLETE @@ -2907,7 +3176,10 @@ InitialDirectTransfer ::= SEQUENCE { initialDirectTransfer-v860ext InitialDirectTransfer-v860ext-IEs, vb50NonCriticalExtensions SEQUENCE { initialDirectTransfer-vb50ext InitialDirectTransfer-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + initialDirectTransfer-vc50ext InitialDirectTransfer-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -2957,6 +3229,11 @@ InitialDirectTransfer-vb50ext-IEs ::= SEQUENCE { measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL } +InitialDirectTransfer-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL +} + -- *************************************************** -- -- HANDOVER FROM UTRAN COMMAND @@ -3371,7 +3648,19 @@ InterRATHandoverInfo-NonCriticalExtension-v6b0-IEs ::= SEQUENCE { vb50NonCriticalExtensions SEQUENCE { interRATHandoverInfo-vb50ext InterRATHandoverInfo-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vb70NonCriticalExtensions SEQUENCE { + interRATHandoverInfo-vb70ext + InterRATHandoverInfo-vb70ext-IEs, + vbc0NonCriticalExtensions SEQUENCE { + interRATHandoverInfo-vbc0ext + InterRATHandoverInfo-vbc0ext-IEs, + vc50NonCriticalExtensions SEQUENCE { + interRATHandoverInfo-vc50ext + InterRATHandoverInfo-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL + } OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -3464,6 +3753,18 @@ InterRATHandoverInfo-vb50ext-IEs ::= SEQUENCE { ue-RadioAccessCapabilityInfo-TDD128 UE-RadioAccessCapabilityInfo-TDD128-vb50ext OPTIONAL } +InterRATHandoverInfo-vb70ext-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-vb70ext UE-RadioAccessCapability-vb70ext OPTIONAL +} + +InterRATHandoverInfo-vbc0ext-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo-vbc0ext UE-RadioAccessCapability-vbc0ext OPTIONAL +} + +InterRATHandoverInfo-vc50ext-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityComp2 UE-RadioAccessCapabilityComp2-vc50ext OPTIONAL +} + -- *************************************************** -- -- MEASUREMENT CONTROL @@ -3598,7 +3899,17 @@ MeasurementControl ::= CHOICE { measurementControl-r11-add-ext BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + measurementControl-r12 + MeasurementControl-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + measurementControl-r12-add-ext BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -3777,6 +4088,19 @@ MeasurementControl-vb50ext-IEs ::= SEQUENCE { interRATMeasurement InterRATMeasurement-r11 OPTIONAL } +MeasurementControl-r12-IEs ::= SEQUENCE { + -- Measurement IEs + measurementIdentity MeasurementIdentity-r9 OPTIONAL, + -- TABULAR: The measurement type is included in measurementCommand. + measurementCommand MeasurementCommand-r12, + measurementReportingMode MeasurementReportingMode OPTIONAL, + additionalMeasurementList AdditionalMeasurementID-List-r9 OPTIONAL, + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL, + measurementScalingFactor MeasurementScalingFactor OPTIONAL, + -- Physical channel IEs + dpch-CompressedModeStatusInfo DPCH-CompressedModeStatusInfo-r10 OPTIONAL +} + -- *************************************************** -- -- MEASUREMENT CONTROL FAILURE @@ -3792,8 +4116,12 @@ MeasurementControlFailure ::= SEQUENCE { -- Container for additional R99 extensions measurementControlFailure-r3-add-ext BIT STRING OPTIONAL, v590NonCriticalExtensions SEQUENCE { - measurementControlFailure-v590ext MeasurementControlFailure-v590ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + measurementControlFailure-v590ext MeasurementControlFailure-v590ext-IEs, + vc50NonCriticalExtensions SEQUENCE { + measurementControlFailure-vc50ext MeasurementControlFailure-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL + } OPTIONAL } OPTIONAL } @@ -3807,6 +4135,9 @@ MeasurementControlFailure-v590ext-IEs ::= SEQUENCE { rrc-TransactionIdentifier-MSP-v590ext RRC-TransactionIdentifier } +MeasurementControlFailure-vc50ext-IEs ::= SEQUENCE { + measurementIdentity MeasurementIdentity-r9 OPTIONAL +} -- *************************************************** -- -- MEASUREMENT REPORT @@ -3853,10 +4184,14 @@ MeasurementReport ::= SEQUENCE { vb50NonCriticalExtensions SEQUENCE { measurementReport-vb50ext MeasurementReport-vb50ext-IEs, - nonCriticalExtensions + vc50NonCriticalExtensions SEQUENCE { + measurementReport-vc50ext + MeasurementReport-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL - } OPTIONAL + } OPTIONAL + } OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -3942,6 +4277,19 @@ MeasurementReport-vb50ext-IEs ::= SEQUENCE { eutra-EventResults EUTRA-EventResults-vb50ext OPTIONAL } +MeasurementReport-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL, + measuredResults MeasuredResults-vc50ext OPTIONAL, + measuredResultsOnSecUlFreq MeasuredResultsOnSecUlFreq-vc50ext OPTIONAL, + additionalMeasuredResults MeasuredResultsList-vc50ext OPTIONAL, + additionalMeasuredResultsOnSecUlFreq + MeasuredResultsListOnSecUlFreq-vc50ext OPTIONAL, + eutra-MeasuredResults EUTRA-MeasuredResults-vc50ext OPTIONAL, + eutra-EventResults EUTRA-EventResults-vc50ext OPTIONAL, + eutra-EventResultsForCELLFACH EUTRA-EventResultsForCELLFACH-vc50ext OPTIONAL +} + -- *************************************************** -- -- PAGING TYPE 1 @@ -3960,7 +4308,10 @@ PagingType1 ::= SEQUENCE { pagingType1-v590ext PagingType1-v590ext-IEs, v860NonCriticalExtensions SEQUENCE { pagingType1-v860ext PagingType1-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + pagingType1-vc50ext PagingType1-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -3976,6 +4327,10 @@ PagingType1-v860ext-IEs ::= SEQUENCE { etws-Information ETWS-Information OPTIONAL } +PagingType1-vc50ext-IEs ::= SEQUENCE { + bcch-ModificationInfo-vc50ext BCCH-ModificationInfo-vc50ext OPTIONAL +} + -- *************************************************** -- -- PAGING TYPE 2 @@ -4178,7 +4533,18 @@ PhysicalChannelReconfiguration ::= CHOICE { nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + physicalChannelReconfiguration-r12 + PhysicalChannelReconfiguration-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + physicalChannelReconfiguration-r12-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -4672,6 +5038,68 @@ PhysicalChannelReconfiguration-r11-IEs ::= SEQUENCE { cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } +PhysicalChannelReconfiguration-r12-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + activationTime ActivationTime OPTIONAL, + delayRestrictionFlag DelayRestrictionFlag OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + -- The IE "new-DSCH-RNTI" should not be included in FDD mode, + -- and if received the UE behaviour is unspecified + new-DSCH-RNTI DSCH-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + ueMobilityStateIndicator High-MobilityDetected OPTIONAL, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + -- Core network IEs + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, + -- Radio bearer IEs + dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, + -- Transport channel IEs + harqInfo HARQ-Info-r11 OPTIONAL, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, + controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, + ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, + dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL, + -- MBMS IEs + mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, + -- Measurement IEs for LCR + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL +} + -- *************************************************** -- -- PHYSICAL CHANNEL RECONFIGURATION COMPLETE @@ -5048,7 +5476,18 @@ RadioBearerReconfiguration ::= CHOICE { BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + radioBearerReconfiguration-r12 + RadioBearerReconfiguration-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + radioBearerReconfiguration-r12-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -5811,6 +6250,100 @@ RadioBearerReconfiguration-r11-IEs ::= SEQUENCE { cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } +RadioBearerReconfiguration-r12-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + activationTime ActivationTime OPTIONAL, + delayRestrictionFlag DelayRestrictionFlag OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + -- The IE "new-DSCH-RNTI" should not be included in FDD mode, + -- and if received the UE behaviour is unspecified + new-DSCH-RNTI DSCH-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + ueMobilityStateIndicator High-MobilityDetected OPTIONAL, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + accessGroupIdentity AccessGroupIdentity OPTIONAL, + -- Core network IEs + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, + -- Specification mode information + defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, + specificationMode CHOICE { + complete SEQUENCE { + -- Radio bearer IEs + rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, + rab-InformationMBMSPtpList RAB-InformationMBMSPtpList OPTIONAL, + rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, + rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, + rb-PDCPContextRelocationList RB-PDCPContextRelocationList OPTIONAL, + pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, + umRlc-ReEstablishmentRBList RB-IdentityList OPTIONAL, + -- Transport channel IEs + ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL, + ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, + dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, + dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL + }, + preconfiguration SEQUENCE { + -- All IEs that include an FDD/TDD choice are split in two IEs for this message, + -- one for the FDD only elements and one for the TDD only elements, so that one + -- FDD/TDD choice in this level is sufficient. + preConfigMode CHOICE { + predefinedConfigIdentity PredefinedConfigIdentity, + defaultConfig SEQUENCE { + defaultConfigMode DefaultConfigMode, + defaultConfigIdentity DefaultConfigIdentity-r6 + } + } + } + }, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, + ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL, + filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, + dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL, + controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + nonrectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + nonrectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL, + -- MBMS IEs + mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, + -- Measurement IEs for LCR + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL +} + -- *************************************************** -- -- RADIO BEARER RECONFIGURATION COMPLETE @@ -6029,7 +6562,18 @@ RadioBearerRelease ::= CHOICE { BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + radioBearerRelease-r12 + RadioBearerRelease-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + radioBearerRelease-r11-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -6487,33 +7031,100 @@ RadioBearerRelease-r9-IEs ::= SEQUENCE { ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r8 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, + controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + -- MBMS IEs + mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, + mbms-RB-ListReleasedToChangeTransferMode + RB-InformationReleaseList OPTIONAL +} + +RadioBearerRelease-v950ext-IEs ::= SEQUENCE { + -- Physical channel IEs + secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL +} + +RadioBearerRelease-v970ext-IEs ::= SEQUENCE { + -- Measurement IEs for LCR + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL +} + +RadioBearerRelease-v9c0ext-IEs ::= SEQUENCE { + -- For 1.28Mcps TDD only + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL +} + +RadioBearerRelease-r10-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + activationTime ActivationTime OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + -- The IE "new-DSCH-RNTI" should not be included in FDD mode, + -- and if received the UE behaviour is unspecified + new-DSCH-RNTI DSCH-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + ueMobilityStateIndicator High-MobilityDetected OPTIONAL, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + -- Core network IEs + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + -- Radio bearer IEs + rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, + rb-InformationReleaseList RB-InformationReleaseList, + rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, + rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, + dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, + -- Transport channel IEs + ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, + ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, + dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, + dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, + ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r9 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, -- MBMS IEs mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, mbms-RB-ListReleasedToChangeTransferMode - RB-InformationReleaseList OPTIONAL -} - -RadioBearerRelease-v950ext-IEs ::= SEQUENCE { - -- Physical channel IEs - secondaryCellMimoParameters SecondaryCellMIMOparametersFDD-v950ext OPTIONAL -} - -RadioBearerRelease-v970ext-IEs ::= SEQUENCE { + RB-InformationReleaseList OPTIONAL, -- Measurement IEs for LCR cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } -RadioBearerRelease-v9c0ext-IEs ::= SEQUENCE { - -- For 1.28Mcps TDD only - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-TDD128-v9c0ext OPTIONAL +RadioBearerRelease-vb50ext-IEs ::= SEQUENCE { + ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL } -RadioBearerRelease-r10-IEs ::= SEQUENCE { +RadioBearerRelease-r11-IEs ::= SEQUENCE { -- User equipment IEs integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, @@ -6538,7 +7149,7 @@ RadioBearerRelease-r10-IEs ::= SEQUENCE { -- Radio bearer IEs rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, rb-InformationReleaseList RB-InformationReleaseList, - rb-InformationReconfigList RB-InformationReconfigList-r8 OPTIONAL, + rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, -- Transport channel IEs @@ -6547,7 +7158,7 @@ RadioBearerRelease-r10-IEs ::= SEQUENCE { ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, -- Physical channel IEs frequencyInfo FrequencyInfo OPTIONAL, multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, @@ -6555,16 +7166,21 @@ RadioBearerRelease-r10-IEs ::= SEQUENCE { dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, @@ -6576,11 +7192,7 @@ RadioBearerRelease-r10-IEs ::= SEQUENCE { cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } -RadioBearerRelease-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -RadioBearerRelease-r11-IEs ::= SEQUENCE { +RadioBearerRelease-r12-IEs ::= SEQUENCE { -- User equipment IEs integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, @@ -6596,6 +7208,7 @@ RadioBearerRelease-r11-IEs ::= SEQUENCE { rrc-StateIndicator RRC-StateIndicator, ueMobilityStateIndicator High-MobilityDetected OPTIONAL, utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + accessGroupIdentity AccessGroupIdentity OPTIONAL, -- Core network IEs cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, signallingConnectionRelIndication CN-DomainIdentity OPTIONAL, @@ -6609,7 +7222,7 @@ RadioBearerRelease-r11-IEs ::= SEQUENCE { rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, + ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL, ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, @@ -6619,20 +7232,23 @@ RadioBearerRelease-r11-IEs ::= SEQUENCE { frequencyInfo FrequencyInfo OPTIONAL, multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, mimoParameters MIMO-Parameters-r9 OPTIONAL, mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, + ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL, + filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL, dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, @@ -6640,6 +7256,8 @@ RadioBearerRelease-r11-IEs ::= SEQUENCE { controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL, -- MBMS IEs mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, mbms-RB-ListReleasedToChangeTransferMode @@ -6852,7 +7470,17 @@ RadioBearerSetup ::= CHOICE { radioBearerSetup-r11-add-ext BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + radioBearerSetup-r12 RadioBearerSetup-r12-IEs, + -- Container for adding non critical extensions after + -- freezing REL-13 + radioBearerSetup-r13-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -7498,6 +8126,79 @@ RadioBearerSetup-r11-IEs ::= SEQUENCE { cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } +RadioBearerSetup-r12-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + sr-vcc-Info SR-VCC-Info OPTIONAL, + activationTime ActivationTime OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + -- The IE "new-DSCH-RNTI" should not be included in FDD mode, + -- and if received the UE behaviour is unspecified + new-DSCH-RNTI DSCH-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + accessGroupIdentity AccessGroupIdentity OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + -- Core network IEs + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + -- Radio bearer IEs + srb-InformationSetupList SRB-InformationSetupList-r11 OPTIONAL, + rab-InformationSetupList RAB-InformationSetupList-r11 OPTIONAL, + rab-InformationReconfigList RAB-InformationReconfigList-r8 OPTIONAL, + rb-InformationReconfigList RB-InformationReconfigList-r11 OPTIONAL, + rb-InformationAffectedList RB-InformationAffectedList-r8 OPTIONAL, + dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, + pdcp-ROHC-TargetMode PDCP-ROHC-TargetMode OPTIONAL, + -- Transport channel IEs + ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL, + ul-deletedTransChInfoList UL-DeletedTransChInfoList-r6 OPTIONAL, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, + dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, + dl-DeletedTransChInfoList DL-DeletedTransChInfoList-r7 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, + ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL, + filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, + controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL, + -- MBMS IEs + mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, + -- Measurement IEs for LCR + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL +} + -- *************************************************** -- -- RADIO BEARER SETUP COMPLETE @@ -7999,14 +8700,17 @@ RRCConnectionRequest-NonCriticalExts-va40-IEs ::= SEQUENCE { rrcConnectionRequest-v9b0ext RRCConnectionRequest-v9b0ext-IEs, vb50NonCriticalExtensions SEQUENCE { rrcConnectionRequest-vb50ext RRCConnectionRequest-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + rrcConnectionRequest-vc50ext RRCConnectionRequest-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } RRCConnectionRequest-va40ext-IEs ::= SEQUENCE { -- User equipment IEs - -- For 1.28 Mcps TDD, IE ”supportOfMoreThanTwoCellsOrMIMO4x4” represent MU-MIMO capability, + -- For 1.28 Mcps TDD, IE ?supportOfMoreThanTwoCellsOrMIMO4x4? represent MU-MIMO capability, -- higherRate indicates uplink and downlink MU-MIMO, lowerRate indicates uplink MU-MIMO supportOfMoreThanTwoCellsOrMIMO4x4 ENUMERATED { higherRate, lowerRate } OPTIONAL, supportOf1stFrequencyBand ENUMERATED { true } OPTIONAL, @@ -8018,6 +8722,10 @@ RRCConnectionRequest-vb50ext-IEs ::= SEQUENCE { measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL } +RRCConnectionRequest-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL +} -- *************************************************** -- -- RRC CONNECTION SETUP @@ -8129,8 +8837,11 @@ RRCConnectionSetup ::= CHOICE { -- Container for adding non critical extensions after -- freezing REL-11 rrcConnectionSetup-r10-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL + BIT STRING OPTIONAL, + vaj0NonCriticalExtensions SEQUENCE { + rrcConnectionSetup-vaj0ext RRCConnectionSetup-vaj0ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL }, criticalExtensions CHOICE { r11 SEQUENCE { @@ -8139,10 +8850,24 @@ RRCConnectionSetup ::= CHOICE { -- Container for adding non critical extensions after -- freezing REL-12 rrcConnectionSetup-r11-add-ext - BIT STRING OPTIONAL, - nonCriticalExtensions SEQUENCE {} OPTIONAL + BIT STRING OPTIONAL, + vaj0NonCriticalExtensions SEQUENCE { + rrcConnectionSetup-vaj0ext RRCConnectionSetup-vaj0ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + rrcConnectionSetup-r12 + RRCConnectionSetup-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + rrcConnectionSetup-r12-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -8576,6 +9301,10 @@ RRCConnectionSetup-r10-IEs ::= SEQUENCE { mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL } +RRCConnectionSetup-vaj0ext-IEs ::= SEQUENCE { + capabilityUpdateRequirement CapabilityUpdateRequirement-vaj0ext OPTIONAL +} + RRCConnectionSetup-r11-IEs ::= SEQUENCE { -- TABULAR: Integrity protection shall not be performed on this message. activationTime ActivationTime OPTIONAL, @@ -8634,6 +9363,66 @@ RRCConnectionSetup-r11-IEs ::= SEQUENCE { mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL } +RRCConnectionSetup-r12-IEs ::= SEQUENCE { + -- TABULAR: Integrity protection shall not be performed on this message. + activationTime ActivationTime OPTIONAL, + new-U-RNTI U-RNTI, + new-c-RNTI C-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7, + -- TABULAR: If capabilityUpdateRequirement is not present, the default value + -- defined in 10.3.3.2 shall be used. + capabilityUpdateRequirement CapabilityUpdateRequirement-r12 OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN, + -- Specification mode information + defaultConfigForCellFACH DefaultConfigForCellFACH OPTIONAL, + specificationMode CHOICE { + complete SEQUENCE { + -- Radio bearer IEs + srb-InformationSetupList SRB-InformationSetupList2-r8, + -- Transport channel IEs + ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, + dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL + }, + preconfiguration SEQUENCE { + -- All IEs that include an FDD/TDD choice are split in two IEs for this message, + -- one for the FDD only elements and one for the TDD only elements, so that one + -- FDD/TDD choice in this level is sufficient. + preConfigMode CHOICE { + predefinedConfigIdentity PredefinedConfigIdentity, + defaultConfig SEQUENCE { + defaultConfigMode DefaultConfigMode, + defaultConfigIdentity DefaultConfigIdentity-r6 + } + } + } + }, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL +} + -- *************************************************** -- -- RRC CONNECTION SETUP COMPLETE @@ -9036,6 +9825,46 @@ SystemInformation-BCH ::= SEQUENCE { } } +-- *************************************************** +-- +-- SYSTEM INFORMATION2 for BCH +-- +-- *************************************************** + +SystemInformation2-BCH ::= SEQUENCE { + segmentCombination CHOICE { + combination2 FirstSegment2, + combination3 SubsequentSegment2, + combination4 LastSegmentShort2, + combination5 SEQUENCE { + lastSegmentShort LastSegmentShort2, + firstSegmentShort FirstSegmentShort2 + }, + combination6 SEQUENCE { + lastSegmentShort LastSegmentShort2, + completeSIB-List CompleteSIB2-List + }, + combination7 SEQUENCE { + lastSegmentShort LastSegmentShort2, + completeSIB-List CompleteSIB2-List, + firstSegment FirstSegmentShort2 + }, + combination8 CompleteSIB2-List, + combination9 SEQUENCE { + completeSIB-List CompleteSIB2-List, + firstSegment FirstSegmentShort2 + }, + combination10 CompleteSIB2, + combination11 LastSegment2, + spare6 NULL, + spare5 NULL, + spare4 NULL, + spare3 NULL, + spare2 NULL, + spare1 NULL + } +} + -- *************************************************** -- -- SYSTEM INFORMATION for FACH @@ -9091,6 +9920,13 @@ FirstSegment ::= SEQUENCE { sib-Data-fixed SIB-Data-fixed } +FirstSegment2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + seg-Count SegCount, + sib-Data-fixed SIB-Data2-fixed +} + -- *************************************************** -- -- First segment (short) @@ -9104,6 +9940,13 @@ FirstSegmentShort ::= SEQUENCE { sib-Data-variable SIB-Data-variable } +FirstSegmentShort2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + seg-Count SegCount, + sib-Data-variable SIB-Data2-variable +} + -- *************************************************** -- -- Subsequent segment @@ -9117,6 +9960,13 @@ SubsequentSegment ::= SEQUENCE { sib-Data-fixed SIB-Data-fixed } +SubsequentSegment2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + segmentIndex SegmentIndex, + sib-Data-fixed SIB-Data2-fixed +} + -- *************************************************** -- -- Last segment @@ -9132,6 +9982,15 @@ LastSegment ::= SEQUENCE { sib-Data-fixed SIB-Data-fixed } +LastSegment2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + segmentIndex SegmentIndex, + -- For sib-Data-fixed, in case the SIB data is less than 232 bits, padding + -- shall be used. The same padding bits shall be used as defined in clause 12.1 + sib-Data-fixed SIB-Data2-fixed +} + LastSegmentShort ::= SEQUENCE { -- Other information elements sib-Type SIB-Type, @@ -9139,6 +9998,13 @@ LastSegmentShort ::= SEQUENCE { sib-Data-variable SIB-Data-variable } +LastSegmentShort2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + segmentIndex SegmentIndex, + sib-Data-variable SIB-Data2-variable +} + -- *************************************************** -- -- Complete SIB @@ -9148,6 +10014,9 @@ LastSegmentShort ::= SEQUENCE { CompleteSIB-List ::= SEQUENCE (SIZE (1..maxSIBperMsg)) OF CompleteSIBshort +CompleteSIB2-List ::= SEQUENCE (SIZE (1..maxSIBperMsg)) OF + CompleteSIBshort2 + CompleteSIB ::= SEQUENCE { -- Other information elements sib-Type SIB-Type, @@ -9156,12 +10025,26 @@ CompleteSIB ::= SEQUENCE { sib-Data-fixed BIT STRING (SIZE (226)) } +CompleteSIB2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + -- For sib-Data-fixed, in case the SIB data is less than 236 bits, padding + -- shall be used. The same padding bits shall be used as defined in clause 12.1 + sib-Data-fixed BIT STRING (SIZE (236)) +} + CompleteSIBshort ::= SEQUENCE { -- Other information elements sib-Type SIB-Type, sib-Data-variable SIB-Data-variable } +CompleteSIBshort2 ::= SEQUENCE { + -- Other information elements + sib-Type SIB-Type2, + sib-Data-variable SIB-Data2-variable +} + -- *************************************************** -- -- SYSTEM INFORMATION CHANGE INDICATION @@ -9177,7 +10060,11 @@ SystemInformationChangeIndication ::= SEQUENCE { v860NonCriticalExtensions SEQUENCE { systemInformationChangeIndication-v860ext SystemInformationChangeIndication-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + systemInformationChangeIndication-vc50ext + SystemInformationChangeIndication-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } @@ -9187,6 +10074,10 @@ SystemInformationChangeIndication-v860ext-IEs ::= SEQUENCE { etws-Information ETWS-Information OPTIONAL } +SystemInformationChangeIndication-vc50ext-IEs ::= SEQUENCE { + bcch-ModificationInfo-vc50ext BCCH-ModificationInfo-vc50ext OPTIONAL +} + -- *************************************************** -- -- TRANSPORT CHANNEL RECONFIGURATION @@ -9379,7 +10270,18 @@ TransportChannelReconfiguration ::= CHOICE { BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + transportChannelReconfiguration-r12 + TransportChannelReconfiguration-r12-IEs, + -- Container for adding non critical extensions + -- after freezing REL-13 + transportChannelReconfiguration-r12-add-ext + BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } } } } @@ -9842,7 +10744,67 @@ TransportChannelReconfiguration-r10-IEs ::= SEQUENCE { ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, - dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r9 OPTIONAL, + -- Physical channel IEs + frequencyInfo FrequencyInfo OPTIONAL, + multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, + ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, + controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, + sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, + mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + -- MBMS IEs + mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, + -- Measurement IEs for LCR + cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL +} + +TransportChannelReconfiguration-vb50ext-IEs ::= SEQUENCE { + ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL +} + +TransportChannelReconfiguration-r11-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + activationTime ActivationTime OPTIONAL, + delayRestrictionFlag DelayRestrictionFlag OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + -- The IE "new-DSCH-RNTI" should not be included in FDD mode, + -- and if received the UE behaviour is unspecified + new-DSCH-RNTI DSCH-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + rrc-StateIndicator RRC-StateIndicator, + ueMobilityStateIndicator High-MobilityDetected OPTIONAL, + utran-DRX-CycleLengthCoeff UTRAN-DRX-CycleLengthCoefficient-r7 OPTIONAL, + -- Core network IEs + cn-InformationInfo CN-InformationInfo-r6 OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + responseToChangeOfUE-Capability ENUMERATED { true } OPTIONAL, + -- Radio bearer IEs + dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, + -- Transport channel IEs + ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, + dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, + dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, -- Physical channel IEs frequencyInfo FrequencyInfo OPTIONAL, multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, @@ -9850,16 +10812,21 @@ TransportChannelReconfiguration-r10-IEs ::= SEQUENCE { dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r7 OPTIONAL, - ul-EDCH-Information UL-EDCH-Information-r9 OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r9 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r10 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r8 OPTIONAL, - dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL, - additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, @@ -9869,11 +10836,7 @@ TransportChannelReconfiguration-r10-IEs ::= SEQUENCE { cellDCHMeasOccasionInfo-TDD128 CellDCHMeasOccasionInfo-TDD128-r9 OPTIONAL } -TransportChannelReconfiguration-vb50ext-IEs ::= SEQUENCE { - ulOLTDInfoFDD UL-OLTD-InfoFDD OPTIONAL -} - -TransportChannelReconfiguration-r11-IEs ::= SEQUENCE { +TransportChannelReconfiguration-r12-IEs ::= SEQUENCE { -- User equipment IEs integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, @@ -9899,7 +10862,7 @@ TransportChannelReconfiguration-r11-IEs ::= SEQUENCE { -- Radio bearer IEs dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, -- Transport channel IEs - ul-CommonTransChInfo UL-CommonTransChInfo-r4 OPTIONAL, + ul-CommonTransChInfo UL-CommonTransChInfo-r12 OPTIONAL, ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8 OPTIONAL, dl-CommonTransChInfo DL-CommonTransChInfo-r4 OPTIONAL, dl-AddReconfTransChInfoList DL-AddReconfTransChInfoList-r11 OPTIONAL, @@ -9907,27 +10870,33 @@ TransportChannelReconfiguration-r11-IEs ::= SEQUENCE { frequencyInfo FrequencyInfo OPTIONAL, multi-frequencyInfo Multi-frequencyInfo-LCR-r7 OPTIONAL, dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, - dtx-drx-Info DTX-DRX-Info-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, mimoParameters MIMO-Parameters-r9 OPTIONAL, mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dch-Enhancements-Info-FDD DCH-Enhancements-Info-FDD OPTIONAL, maxAllowedUL-TX-Power MaxAllowedUL-TX-Power OPTIONAL, - ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, + ul-DPCH-Info UL-DPCH-Info-r11 OPTIONAL, ul-EDCH-Information UL-EDCH-Information-r11 OPTIONAL, - ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, ul-MulticarrierEDCHInfo-TDD128 UL-MulticarrierEDCHInfo-TDD128 OPTIONAL, ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, ul-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, - dl-HSPDSCH-Information DL-HSPDSCH-Information-r11 OPTIONAL, - dl-CommonInformation DL-CommonInformation-r11 OPTIONAL, - dl-InformationPerRL-List DL-InformationPerRL-List-r11 OPTIONAL, + ul-OtherTTIConfiguration-Info UL-OtherTTIConfiguration-Information OPTIONAL, + filteredUPHReportInfo FilteredUEPowerHeadroomReportInfo OPTIONAL, + dl-HSPDSCH-Information DL-HSPDSCH-Information-r12 OPTIONAL, + dl-CommonInformation DL-CommonInformation-r12 OPTIONAL, + dl-InformationPerRL-List DL-InformationPerRL-List-r12 OPTIONAL, dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, commonERGCHInfoFDD CommonERGCHInfoFDD OPTIONAL, + dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL, controlChannelDRXInfo-TDD128 ControlChannelDRXInfo-TDD128-r8 OPTIONAL, sps-Information-TDD128 SPS-Information-TDD128-r8 OPTIONAL, mu-MIMO-Info-TDD128 MU-MIMO-Info-TDD128 OPTIONAL, + non-rectResAllocInd-TDD128 Non-rectResAllocInd-TDD128 OPTIONAL, + non-rectResSpecTSset-TDD128 Non-rectResSpecTSset-TDD128 OPTIONAL, -- MBMS IEs mbms-PL-ServiceRestrictInfo MBMS-PL-ServiceRestrictInfo-r6 OPTIONAL, -- Measurement IEs for LCR @@ -10057,7 +11026,10 @@ UECapabilityEnquiry ::= CHOICE { ueCapabilityEnquiry-v770ext UECapabilityEnquiry-v770ext-IEs, v860NonCriticalExtensions SEQUENCE { ueCapabilityEnquiry-v860ext UECapabilityEnquiry-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vaj0NonCriticalExtensions SEQUENCE { + ueCapabilityEnquiry-vaj0ext UECapabilityEnquiry-vaj0ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -10092,6 +11064,10 @@ UECapabilityEnquiry-v860ext-IEs ::= SEQUENCE { capabilityUpdateRequirement CapabilityUpdateRequirement-v860ext OPTIONAL } +UECapabilityEnquiry-vaj0ext-IEs ::= SEQUENCE { + capabilityUpdateRequirement CapabilityUpdateRequirement-vaj0ext OPTIONAL +} + -- *************************************************** -- -- UE CAPABILITY INFORMATION @@ -10276,7 +11252,10 @@ UplinkDirectTransfer ::= SEQUENCE { uplinkDirectTransfer-v7g0ext UplinkDirectTransfer-v7g0ext-IEs, vb50NonCriticalExtensions SEQUENCE { uplinkDirectTransfer-vb50ext UplinkDirectTransfer-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + uplinkDirectTransfer-vc50ext UplinkDirectTransfer-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -10298,6 +11277,11 @@ UplinkDirectTransfer-vb50ext-IEs ::= SEQUENCE { measuredResultsOnRACHEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq OPTIONAL } +UplinkDirectTransfer-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + measuredResultsOnRACH MeasuredResultsOnRACH-vc50ext OPTIONAL +} + -- *************************************************** -- -- UPLINK PHYSICAL CHANNEL CONTROL @@ -10715,7 +11699,16 @@ UTRANMobilityInformation ::= CHOICE { utranMobilityInformation-r11-add-ext BIT STRING OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL }, - criticalExtensions SEQUENCE {} + criticalExtensions CHOICE { + r12 SEQUENCE { + utranMobilityInformation-r12 UTRANMobilityInformation-r12-IEs, + -- Container for adding non critical extensions after freezing REL-13 + utranMobilityInformation-r12-add-ext BIT STRING OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL + }, + criticalExtensions SEQUENCE {} + } + } } } @@ -10827,6 +11820,33 @@ UTRANMobilityInformation-r11-IEs ::= SEQUENCE { dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL } +UTRANMobilityInformation-r12-IEs ::= SEQUENCE { + -- User equipment IEs + integrityProtectionModeInfo IntegrityProtectionModeInfo-r7 OPTIONAL, + cipheringModeInfo CipheringModeInfo-r7 OPTIONAL, + new-U-RNTI U-RNTI OPTIONAL, + new-C-RNTI C-RNTI OPTIONAL, + new-H-RNTI H-RNTI OPTIONAL, + newPrimary-E-RNTI E-RNTI OPTIONAL, + ue-ConnTimersAndConstants UE-ConnTimersAndConstants-r11 OPTIONAL, + measurementReleaseEnhancement MeasurementReleaseEnhancement OPTIONAL, + -- CN information elements + cn-InformationInfo CN-InformationInfoFull OPTIONAL, + primary-plmn-Identity PLMN-Identity OPTIONAL, + domainSpecificAccessRestrictionParametersUpdate + DomainSpecificAccessRestrictionParam-v670ext OPTIONAL, + pagingPermissionWithAccessControlParametersUpdate + PagingPermissionWithAccessControlParameters OPTIONAL, + -- UTRAN mobility IEs + ura-Identity URA-Identity OPTIONAL, + supportForChangeOfUE-Capability BOOLEAN OPTIONAL, + dedicatedPriorityInformation DedicatedPriorityInformation-r11 OPTIONAL, + -- Radio bearer IEs + dl-CounterSynchronisationInfo DL-CounterSynchronisationInfo-r5 OPTIONAL, + -- WLAN IEs + dedicatedWLANOffloadInformation DedicatedWLANOffloadInformation OPTIONAL +} + -- *************************************************** -- -- UTRAN MOBILITY INFORMATION CONFIRM @@ -11154,7 +12174,10 @@ System-Information-Container ::= SEQUENCE { sysInfoType12 OCTET STRING (CONTAINING SysInfoType12) OPTIONAL, vb50NonCriticalExtensions SEQUENCE { system-Information-Container-vb50ext System-Information-Container-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + system-Information-Container-vc50ext System-Information-Container-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } @@ -11162,6 +12185,9 @@ System-Information-Container-vb50ext-IEs ::= SEQUENCE { sysInfoType22 OCTET STRING (CONTAINING SysInfoType22) OPTIONAL } +System-Information-Container-vc50ext-IEs ::= SEQUENCE { + sysInfoType11ter OCTET STRING (CONTAINING SysInfoType11ter) OPTIONAL +} -- *************************************************** -- -- LOGGING MEASUREMENT CONFIGURATION @@ -11210,17 +12236,35 @@ UEInformationResponse ::= SEQUENCE { loggedANRReportInfoList LoggedANRReportInfoList OPTIONAL, vb50NonCriticalExtensions SEQUENCE { ueInformationResponse-vb50ext UEInformationResponse-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL - } OPTIONAL + vbb0NonCriticalExtensions SEQUENCE { + ueInformationResponse-vbb0ext UEInformationResponse-vbb0ext-IEs, + vc50NonCriticalExtensions SEQUENCE { + ueInformationResponse-vc50ext UEInformationResponse-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL + } OPTIONAL + } OPTIONAL } UEInformationResponse-vb50ext-IEs ::= SEQUENCE { loggedMeasReport LoggedMeasReport-vb50ext OPTIONAL, - connectionEstablishmentFailureReport - ConnectionEstablishmentFailureReport OPTIONAL, + -- dummy is not used in this version of the specification. It should not be sent and + -- if received it should be ignored. + dummy ConnectionEstablishmentFailureReport OPTIONAL, loggedANRReportInfoList LoggedANRReportInfoList-vb50ext OPTIONAL } +UEInformationResponse-vbb0ext-IEs ::= SEQUENCE { + connectionEstablishmentFailureReport + ConnectionEstablishmentFailureReport-r11 OPTIONAL +} + +UEInformationResponse-vc50ext-IEs ::= SEQUENCE { + loggedMeasReport LoggedMeasReport-vc50ext OPTIONAL, + connectionEstablishmentFailureReport + ConnectionEstablishmentFailureReport-vc50ext OPTIONAL +} + -- *************************************************** -- -- UE INFORMATION REQUEST @@ -11606,6 +12650,16 @@ CSG-PSCSplitInfo ::= SEQUENCE { pscRange2Offset INTEGER (1..63) OPTIONAL } +DedicatedWLANOffloadInformation ::= SEQUENCE { + configurationInfo CHOICE { + continue NULL, + newConfiguration SEQUENCE { + t-330 T-330 OPTIONAL, + wlanOffloadInformation WLANOffloadInformation + } + } +} + DomainSpecificAccessRestrictionForSharedNetwork-v670ext ::= CHOICE { domainSpecificAccessRestictionList DomainSpecificAccessRestrictionList-v670ext, domainSpecificAccessRestictionParametersForAll @@ -11811,9 +12865,11 @@ URA-IdentityList ::= SEQUENCE (SIZE (1..maxURA)) OF -- -- *************************************************** +AccessGroupIdentity ::= INTEGER (0..15) + AccessStratumReleaseIndicator ::= ENUMERATED { rel-4, rel-5, rel-6, rel-7, rel-8, - rel-9, rel-10, rel-11, spare8, + rel-9, rel-10, rel-11, rel-12, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } @@ -11886,6 +12942,20 @@ CapabilityUpdateRequirement-r8 ::= SEQUENCE { systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL } +CapabilityUpdateRequirement-vaj0ext ::= SEQUENCE { + eUTRAbandSpecificCapUpdateReqList EUTRAbandSpecificCapUpdateReqList +} + +CapabilityUpdateRequirement-r12 ::= SEQUENCE { + ue-RadioCapabilityFDDUpdateRequirement-FDD BOOLEAN, + ue-RadioCapabilityTDDUpdateRequirement-TDD384 BOOLEAN, + ue-RadioCapabilityTDDUpdateRequirement-TDD768 BOOLEAN, + ue-RadioCapabilityTDDUpdateRequirement-TDD128 BOOLEAN, + systemSpecificCapUpdateReqList SystemSpecificCapUpdateReqList-r8 OPTIONAL, + eUTRAbandSpecificCapUpdateReqList EUTRAbandSpecificCapUpdateReqList OPTIONAL +} + + -- If the IE CellUpdateCause has the value 'cellUpdateCause-ext', the actual value is -- defined in the IE CellUpdateCause-ext. CellUpdateCause ::= ENUMERATED { @@ -11992,12 +13062,20 @@ CompressedModeMeasCapabEUTRAExt ::=SEQUENCE { radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt } +CompressedModeMeasCapabEUTRAExt2 ::=SEQUENCE { + radioFrequencyBandEUTRA RadioFrequencyBandEUTRAExt2, + compressedMode BOOLEAN +} + CompressedModeMeasCapabEUTRAList ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF CompressedModeMeasCapabEUTRA CompressedModeMeasCapabEUTRAList2 ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA)) OF CompressedModeMeasCapabEUTRAExt +CompressedModeMeasCapabEUTRAList3 ::= SEQUENCE (SIZE (1..maxFreqBandsEUTRA-ext)) OF + CompressedModeMeasCapabEUTRAExt2 + CompressedModeMeasCapabFDDList ::= SEQUENCE (SIZE (1..maxFreqBandsFDD)) OF CompressedModeMeasCapabFDD @@ -12083,6 +13161,9 @@ DL-DPCCH-BER ::= INTEGER (0..63) DL-InformationPerSecondaryRL-List ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF DL-InformationPerSecondaryRL +DL-InformationPerSecondaryRL-List-r12 ::= SEQUENCE (SIZE (1..maxEDCHRL)) OF + DL-InformationPerSecondaryRL-r12 + DL-InformationPerSecondaryRL ::= SEQUENCE { primaryCPICH-Info PrimaryCPICH-Info, cell-id CellIdentity OPTIONAL, @@ -12095,6 +13176,20 @@ DL-InformationPerSecondaryRL ::= SEQUENCE { } OPTIONAL } +DL-InformationPerSecondaryRL-r12 ::= SEQUENCE { + primaryCPICH-Info PrimaryCPICH-Info, + cell-id CellIdentity OPTIONAL, + dl-FDPCHInfoPerRL-SecULFreq DL-FDPCH-InfoPerRL-r7, + e-AGCH-Information E-AGCH-Information OPTIONAL, + e-HICH-Information E-HICH-Information OPTIONAL, + e-RGCH-Info CHOICE { + e-RGCH-Information E-RGCH-Information, + releaseIndicator NULL + } OPTIONAL, + secondary-Serving-E-DCHRL-Indicator ENUMERATED { true } OPTIONAL, + radioLinkswithoutDPCHFDPCHIndicator NULL OPTIONAL +} + DL-PhysChCapabilityFDD ::= SEQUENCE { -- The IE "maxNoDPCH-PDSCH-Codes" only gives information on the maximum number of DPCH Codes. maxNoDPCH-PDSCH-Codes INTEGER (1..8), @@ -12147,6 +13242,21 @@ DL-PhysChCapabilityFDD-vb50ext ::= SEQUENCE { supportOfNodeBTrigHS-DPCCHTransmission ENUMERATED { true } OPTIONAL } +DL-PhysChCapabilityFDD-vb80ext ::= SEQUENCE { + non-ContiguousMulti-CellWithMIMO ENUMERATED { true } OPTIONAL +} + +DL-PhysChCapabilityFDD-vc50ext ::= SEQUENCE { + supportforDCHEnhancements ENUMERATED { basic, full } OPTIONAL, +-- MCC TF160: the correction according to 25331-c50_README.txt is implemented: added OPTIONAL to the field simultaneousSupportforDCHEnhancementsAndCM in DL-PhysChCapabilityFDD-vc50ext + simultaneousSupportforDCHEnhancementsAndCM ENUMERATED { true } OPTIONAL, + simultaneousSupportforDCHEnhancementsAndDPCCHDiscntTx ENUMERATED { true } OPTIONAL, + drx-enhancements ENUMERATED { true } OPTIONAL, + hs-dpcchOverheadReduction ENUMERATED { true } OPTIONAL, + supportofEnhancedServingCellChangeForEvent1C ENUMERATED { true } OPTIONAL, + supportofDPCCH2 ENUMERATED { true } OPTIONAL +} + DL-PhysChCapabilityTDD ::= SEQUENCE { maxTS-PerFrame MaxTS-PerFrame, maxPhysChPerFrame MaxPhysChPerFrame, @@ -12181,6 +13291,10 @@ DL-PhysChCapabilityInfoTDD-128-va40ext::= SEQUENCE { MultiCarrier-HSDSCH-physical-layer-category-extension2 OPTIONAL } +DL-PhysChCapabilityInfoTDD-128-vc50ext::= SEQUENCE { + supportofNon-rectResourceAllocation ENUMERATED { true } OPTIONAL +} + DL-PhysChCapabilityTDD-768 ::= SEQUENCE { maxTS-PerFrame MaxTS-PerFrame, maxPhysChPerFrame MaxPhysChPerFrame-768, @@ -12264,6 +13378,8 @@ EstablishmentCause ::= ENUMERATED { ExtendedWaitTime ::= INTEGER (1..1800) +EUTRAbandSpecificCapUpdateReqList ::= SEQUENCE (SIZE (1..16)) OF RadioFrequencyBandEUTRAExt2 + FailureCauseWithProtErr ::= CHOICE { configurationUnsupported NULL, physicalChannelFailure NULL, @@ -12368,9 +13484,9 @@ MultiCarrier-HSDSCH-physical-layer-category-extension ::= INTEGER (1..36) MultiCarrier-HSDSCH-physical-layer-category-extension2 ::= INTEGER (37..64) MultiflowCapabBandCombination ::= SEQUENCE { - numberOfCellsBandA INTEGER(2..6), + numberOfCellsBandA INTEGER(1..6), numberOfFrequenciesBandA INTEGER(1..3), - numberOfCellsBandB INTEGER(2..6), + numberOfCellsBandB INTEGER(1..6), numberOfFrequenciesBandB INTEGER(1..3) } @@ -12606,6 +13722,10 @@ MeasurementCapabilityExt5 ::= SEQUENCE { compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList2 OPTIONAL } +MeasurementCapabilityExt6 ::= SEQUENCE{ + compressedModeMeasCapabEUTRAList CompressedModeMeasCapabEUTRAList3 OPTIONAL +} + MeasurementCapability-r4-ext ::= SEQUENCE { downlinkCompressedMode-LCR CompressedModeMeasCapability-LCR-r4, uplinkCompressedMode-LCR CompressedModeMeasCapability-LCR-r4 @@ -12637,6 +13757,20 @@ MeasurementCapabilityTDD-vb50ext ::= SEQUENCE { idleIntervalMeasCapabEUTRAList IdleIntervalMeasCapabEUTRAExtensionList OPTIONAL } +MeasurementCapability-vb70ext ::= SEQUENCE { + widebandRSRQFDDMeasurements ENUMERATED { true } OPTIONAL, + widebandRSRQTDDMeasurements ENUMERATED { true } OPTIONAL +} + +MeasurementCapability-vc50ext ::= SEQUENCE { + event2gReportingOnaConfiguredSecDLFrequency ENUMERATED { true } OPTIONAL, + extendedRsrqLowerValueRange ENUMERATED { true } OPTIONAL, + rsrqOnAllSymbols ENUMERATED { true } OPTIONAL, + increasedUECarrierMonitoringUTRA ENUMERATED { true } OPTIONAL, + increasedUECarrierMonitoringE-UTRA ENUMERATED { true } OPTIONAL, + enhancedUPHReporting ENUMERATED { true } OPTIONAL +} + MessageAuthenticationCode ::= BIT STRING (SIZE (32)) MinimumSF-DL ::= ENUMERATED { @@ -12687,11 +13821,19 @@ MultiModeRAT-Capability-v860ext ::= SEQUENCE { eutraFeatureGroupIndicators BIT STRING (SIZE (4)) OPTIONAL } +MultiModeRAT-Capability-vae0ext ::= SEQUENCE { + eutraSupportOfMFBI ENUMERATED { true } OPTIONAL +} + MultiModeRAT-Capability-vb50ext ::= SEQUENCE { supportOfEUTRAFDDMeasurementReportingInCELLFACH ENUMERATED { doesSupportOfEUTRAFDDMeasurementReportingInCELLFACH } OPTIONAL, supportOfEUTRATDDMeasurementReportingInCELLFACH ENUMERATED { doesSupportOfEUTRATDDMeasurementReportingInCELLFACH } OPTIONAL } +MultiModeRAT-Capability-vc50ext ::= SEQUENCE { + supportOfRAN-AssistedWLAN-Interworking-RAN-Rules ENUMERATED { true } OPTIONAL, + supportOfRAN-AssistedWLAN-Interworking-ANDSF-Policies ENUMERATED { true } OPTIONAL +} N-300 ::= INTEGER (0..7) N-301 ::= INTEGER (0..7) @@ -12745,7 +13887,7 @@ NeighCellSI-AcquisitionCapability ::= SEQUENCE { NetworkAssistedGANSS-Supported-List ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE { gANSS-Id ENUMERATED { - sbas, modernizedGPS, qzss, glonass, spare4, + sbas, modernizedGPS, qzss, glonass, bds, spare3, spare2, spare1 } OPTIONAL, gANSS-Mode GANSS-Mode, gANSS-SignalId GANSS-Signal-Id OPTIONAL, @@ -12926,6 +14068,22 @@ PhysicalChannelCapability-vb50ext ::= SEQUENCE { } OPTIONAL } +PhysicalChannelCapability-vb80ext ::= SEQUENCE { + fddPhysChCapability SEQUENCE { + downlinkPhysChCapability DL-PhysChCapabilityFDD-vb80ext + } OPTIONAL +} + +PhysicalChannelCapability-vc50ext ::= SEQUENCE { + fddPhysChCapability SEQUENCE { + downlinkPhysChCapability DL-PhysChCapabilityFDD-vc50ext OPTIONAL, + uplinkPhysChCapability UL-PhysChCapabilityFDD-vc50ext OPTIONAL + } OPTIONAL, + tddPhysChCapability SEQUENCE { + downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-128-vc50ext + } OPTIONAL +} + PhysicalChannelCapabilityInfo-v770ext ::= SEQUENCE { tddPhysChCapability-768 SEQUENCE { downlinkPhysChCapability DL-PhysChCapabilityInfoTDD-768, @@ -13022,6 +14180,8 @@ RadioFrequencyBandEUTRA ::= INTEGER (1..64) RadioFrequencyBandEUTRAExt ::= INTEGER (65..256) +RadioFrequencyBandEUTRAExt2 ::= INTEGER (1..256) + RadioFrequencyBandFDD ::= ENUMERATED { -- fdd2100, fdd1900, fdd1800 correspond to Band I, Band II and Band III respectively fdd2100, @@ -13051,7 +14211,7 @@ RadioFrequencyBandFDD2 ::= ENUMERATED { bandXXII, extension-indicator } -RadioFrequencyBandFDD3 ::= ENUMERATED {spare64, spare63, bandXXV, bandXXVI, spare60, spare59, spare58, spare57, spare56, spare55, spare54, spare53, spare52, spare51, spare50, spare49, spare48, spare47, spare46, spare45, spare44, spare43, spare42, spare41, spare40, spare39, spare38, spare37, spare36, spare35, spare34, spare33, spare32, spare31, spare30, spare29, spare28, spare27, spare26, spare25, spare24, spare23, spare22, spare21, spare20, spare19, spare18, spare17, spare16, spare15, spare14, spare13, spare12, spare11, spare10, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, extension-indicator } +RadioFrequencyBandFDD3 ::= ENUMERATED {spare64, spare63, bandXXV, bandXXVI, spare60, spare59, spare58, spare57, spare56, bandXXXII, spare54, spare53, spare52, spare51, spare50, spare49, spare48, spare47, spare46, spare45, spare44, spare43, spare42, spare41, spare40, spare39, spare38, spare37, spare36, spare35, spare34, spare33, spare32, spare31, spare30, spare29, spare28, spare27, spare26, spare25, spare24, spare23, spare22, spare21, spare20, spare19, spare18, spare17, spare16, spare15, spare14, spare13, spare12, spare11, spare10, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, extension-indicator } RadioFrequencyBandTDDList ::= ENUMERATED { a, b, c, ab, ac, bc, abc, spare } @@ -13280,6 +14440,23 @@ SecondaryEDCH-Info-Common ::= SEQUENCE { pc-Preamble PC-Preamble } +SecondaryEDCH-Info-Common-r12 ::= SEQUENCE { + frequencyInfo FrequencyInfo, + scramblingCodeType ScramblingCodeType, + scramblingCodeNumber UL-ScramblingCode, + ms2-SchedTransmGrantHARQAlloc BIT STRING (SIZE (8)) OPTIONAL, + servingGrant SEQUENCE { + primary-Secondary-GrantSelector ENUMERATED { primary, secondary } + } OPTIONAL, + minReduced-E-DPDCH-GainFactor MinReduced-E-DPDCH-GainFactor OPTIONAL, + e-DCH-minimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL, + minimumTEBS-threshold MinimumTEBS-threshold OPTIONAL, + implicitGrantHandling ENUMERATED { true } OPTIONAL, + dpcchPowerOffset-SecondaryULFrequency INTEGER(0..7), + pc-Preamble PC-Preamble, + ue-DPCCHPowerResetAfterDTXOnSecUplink UE-DPCCHPowerResetAfterDTXOnSecUplink OPTIONAL +} + Serving-HSDSCH-CellInformation ::= SEQUENCE { deltaACK DeltaACK OPTIONAL, deltaNACK DeltaNACK OPTIONAL, @@ -13331,6 +14508,17 @@ Serving-HSDSCH-CellInformation-r11 ::= SEQUENCE { mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL } +Serving-HSDSCH-CellInformation-r12 ::= SEQUENCE { + deltaACK DeltaACK-r11 OPTIONAL, + deltaNACK DeltaNACK-r11 OPTIONAL, + harq-Preamble-Mode HARQ-Preamble-Mode, + primaryCPICH-Info PrimaryCPICH-Info OPTIONAL, + dl-hspdsch-Information DL-HSPDSCH-Information-r12 OPTIONAL, + harqInfo HARQ-Info-r11 OPTIONAL, + mac-hsResetIndicator ENUMERATED { true } OPTIONAL, + mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL +} + SimultaneousSCCPCH-DPCH-Reception ::= CHOICE { notSupported NULL, supported SEQUENCE { @@ -13470,6 +14658,8 @@ T-323 ::= ENUMERATED { s0, s5, s10, s20, s30, s60, s90, s120 } T-328 ::= ENUMERATED { ms20, ms40, ms60, ms80 } T-329 ::= ENUMERATED { s05p, s1, s2, s4 } +T-330 ::= ENUMERATED { m5, m10, m20, m30, + m60, m120, m180, spare1 } T-CPCH ::= ENUMERATED { ct0, ct1 } @@ -13707,7 +14897,20 @@ UE-RadioAccessCapability-LaterNonCriticalExtensions ::= SEQUENCE { ue-RadioAccessCapability-vaa0ext UE-RadioAccessCapability-vaa0ext-IEs, vb50NonCriticalExtensions SEQUENCE { ue-RadioAccessCapability-vb50ext UE-RadioAccessCapability-vb50ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vb70NonCriticalExtensions SEQUENCE { + ue-RadioAccessCapability-vb70ext UE-RadioAccessCapability-vb70ext-IEs, + vae0NonCriticalExtensions SEQUENCE { + ue-RadioAccessCapability-vae0ext UE-RadioAccessCapability-vae0ext-IEs, + vb80NonCriticalExtensions SEQUENCE { + ue-RadioAccessCapability-vb80ext UE-RadioAccessCapability-vb80ext-IEs, + vc50NonCriticalExtensions SEQUENCE { + ue-RadioAccessCapability-vc50ext + UE-RadioAccessCapability-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL + } OPTIONAL + } OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } @@ -13716,8 +14919,7 @@ UE-RadioAccessCapability-LaterNonCriticalExtensions ::= SEQUENCE { UE-RadioAccessCapability-va40ext-IEs ::= SEQUENCE { -- UE physical channel capability - ue-RadioAccessCapabBandCombList-va40ext - UE-RadioAccessCapabBandCombList-va40ext OPTIONAL, + ue-RadioAccessCapabBandCombList-va40ext UE-RadioAccessCapabBandCombList-va40ext OPTIONAL, physicalChannelCapability PhysicalChannelCapability-va40ext, rlc-Capability RLC-Capability-va40ext, measurementCapability MeasurementCapability-va40ext OPTIONAL, @@ -13743,6 +14945,11 @@ UE-RadioAccessCapability-vaa0ext-IEs ::= SEQUENCE { rf-capability RF-Capability-vaa0ext OPTIONAL } +UE-RadioAccessCapability-vae0ext-IEs ::= SEQUENCE { + -- UE radio access capability + multiModeRAT-Capability MultiModeRAT-Capability-vae0ext OPTIONAL +} + UE-RadioAccessCapability-vb50ext-IEs ::= SEQUENCE { multiModeRAT-Capability MultiModeRAT-Capability-vb50ext, supportOfCommonERGCHBasedInterferenceControl ENUMERATED { true } OPTIONAL, @@ -13750,8 +14957,7 @@ UE-RadioAccessCapability-vb50ext-IEs ::= SEQUENCE { supportOfConcurrentDeployment ENUMERATED { true } OPTIONAL, supportOfTTIalignmentAndPerHARQProcess ENUMERATED { true } OPTIONAL, -- UE physical channel capability - ue-RadioAccessCapabBandCombList-vb50ext - UE-RadioAccessCapabBandCombList-vb50ext OPTIONAL, + ue-RadioAccessCapabBandCombList-vb50ext UE-RadioAccessCapabBandCombList-vb50ext OPTIONAL, multiflowCapabBandCombList MultiflowCapabBandCombList OPTIONAL, physicalChannelCapability PhysicalChannelCapability-vb50ext, rlc-Capability RLC-Capability-vb50ext, @@ -13768,6 +14974,26 @@ UE-RadioAccessCapability-vb50ext-IEs ::= SEQUENCE { supportOfSTTDOnDLControlChannelsWhenMultiflowOperationIsActive ENUMERATED { true } OPTIONAL } +UE-RadioAccessCapability-vb70ext-IEs ::= SEQUENCE { + measurementCapability MeasurementCapability-vb70ext OPTIONAL, + ue-RadioAccessCapabBandFDDList7 UE-RadioAccessCapabBandFDDList7 OPTIONAL +} + +UE-RadioAccessCapability-vb80ext-IEs ::= SEQUENCE { + -- UE physical channel capability + physicalChannelCapability PhysicalChannelCapability-vb80ext +} + +UE-RadioAccessCapability-vc50ext-IEs ::= SEQUENCE { + --the capability is for FDD only + measurementCapability MeasurementCapability-vc50ext OPTIONAL, + supportofDsacAndPpacInCellDch ENUMERATED { true } OPTIONAL, + supportOfMultiflowWithFTPICHFromAssisting ENUMERATED { true } OPTIONAL, + multiModeRAT-Capability MultiModeRAT-Capability-vc50ext OPTIONAL, + -- UE physical channel capability + physicalChannelCapability PhysicalChannelCapability-vc50ext OPTIONAL +} + UE-ConnTimersAndConstants ::= SEQUENCE { -- Optional is used also for parameters for which the default value is the last one read in SIB1 -- t-301 and n-301 should not be used by the UE in this version of the specification @@ -14018,9 +15244,19 @@ UE-RadioAccessCapability-vb50ext ::= SEQUENCE { ue-RadioAccessCapabBandFDDList6 UE-RadioAccessCapabBandFDDList6 OPTIONAL } +UE-RadioAccessCapability-vb70ext ::= SEQUENCE { + ue-RadioAccessCapabBandFDDList7 UE-RadioAccessCapabBandFDDList7 OPTIONAL +} + +UE-RadioAccessCapability-vbc0ext ::= SEQUENCE { + interRATsupportMultiCellConfiguration ENUMERATED { true } OPTIONAL, + ue-RadioAccessCapabBandCombList UE-RadioAccessCapabBandCombList OPTIONAL, + ue-RadioAccessCapabBandCombList-va40ext UE-RadioAccessCapabBandCombList-va40ext OPTIONAL +} + UE-RadioAccessCapabBand-va40ext ::= SEQUENCE { ue-RadioAccessCapabBandFDDList5 UE-RadioAccessCapabBandFDDList5, - -- This IE shall be included if the UE also supports Band I – Band XXII + -- This IE shall be included if the UE also supports Band I ? Band XXII ue-RadioAccessCapabBandFDDList-ext2 UE-RadioAccessCapabBandFDDList-ext2 OPTIONAL } @@ -14045,6 +15281,9 @@ UE-RadioAccessCapabBandFDDList5 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD-ext2)) OF UE-RadioAccessCapabBandFDDList6 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD3)) OF UE-RadioAccessCapabBandFDD6 +UE-RadioAccessCapabBandFDDList7 ::= SEQUENCE (SIZE (1..maxFreqBandsFDD3)) OF + UE-RadioAccessCapabBandFDD7 + UE-RadioAccessCapabBandFDD2 ::= SEQUENCE { radioFrequencyBandFDD2 RadioFrequencyBandFDD2, fddRF-Capability SEQUENCE { @@ -14115,6 +15354,16 @@ UE-RadioAccessCapabBandFDD6 ::= SEQUENCE { freqSpecificCompressedModeForNonContiguous ENUMERATED { true } OPTIONAL } +UE-RadioAccessCapabBandFDD7 ::= SEQUENCE { + -- UE may omit all the radioFrequencyBand IEs if this IE indicates the same + -- capability for all supported UTRA bands + -- Otherwise, the UE shall include either one of the following OPTIONAL IEs. + radioFrequencyBandFDD RadioFrequencyBandFDD OPTIONAL, + radioFrequencyBandFDD2 RadioFrequencyBandFDD2 OPTIONAL, + radioFrequencyBandFDD3 RadioFrequencyBandFDD3 OPTIONAL, + measurementCapability6 MeasurementCapabilityExt6 +} + UE-PositioningCapabilityExt-v380 ::= SEQUENCE { rx-tx-TimeDifferenceType2Capable BOOLEAN } @@ -14254,6 +15503,13 @@ UE-RadioAccessCapabilityComp2-vb50ext ::= SEQUENCE { supportOfHSDPCCHPowerOffsetExtension ENUMERATED { true } OPTIONAL } +UE-RadioAccessCapabilityComp2-vc50ext ::= SEQUENCE { + supportofDsacAndPpacInCellDch ENUMERATED { true } OPTIONAL, + supportforDCHEnhancements ENUMERATED { basic, full } OPTIONAL, + simultaneousSupportforDCHEnhancementsAndCM ENUMERATED { true } OPTIONAL, + simultaneousSupportforDCHEnhancementsAndDPCCHDiscntTx ENUMERATED { true } OPTIONAL +} + UE-RadioAccessCapabilityComp-TDD128 ::= SEQUENCE { tdd128RF-Capability RadioFrequencyBandTDDextList OPTIONAL, supportOfSFModeForHSPDSCHDualStream ENUMERATED { sf1, sf1sf16 } OPTIONAL, @@ -14396,6 +15652,16 @@ UL-PhysChCapabilityFDD-vb50ext ::= SEQUENCE { edch-PhysicalLayerCategory-extension3 INTEGER (10..12) OPTIONAL } +UL-PhysChCapabilityFDD-vc50ext ::= SEQUENCE { + supportofCellReselectionIndicationReporting ENUMERATED { true } OPTIONAL, + supportofRadioLinkswithoutDPCHFDPCH ENUMERATED { true } OPTIONAL, + supportofServingE-DCHCellDecoupling ENUMERATED { true } OPTIONAL, + accessGroupsAccessControl ENUMERATED { true } OPTIONAL, + enhancedTTISwitching ENUMERATED { true } OPTIONAL, + implicitGrantHandling ENUMERATED { true } OPTIONAL, + dtx-enhancements ENUMERATED { true } OPTIONAL +} + UL-PhysChCapabilityTDD ::= SEQUENCE { maxTS-PerFrame MaxTS-PerFrame, maxPhysChPerTimeslot MaxPhysChPerTimeslot, @@ -14452,6 +15718,19 @@ UL-PhysChCapabilityTDD-768 ::= SEQUENCE { } } +UL-OtherTTIConfiguration-Information ::= SEQUENCE { + configurationInfo CHOICE { + continue NULL, + newConfiguration SEQUENCE { + ul-EDCH-Information UL-EDCH-Information-r11, + ul-AddReconfTransChInfoList UL-AddReconfTransChInfoList-r8, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL + } + }, + activationDelay ActivationDelay OPTIONAL +} + UL-SecondaryCellInfoFDD ::= CHOICE { continue NULL, newConfiguration SEQUENCE { @@ -14461,6 +15740,15 @@ UL-SecondaryCellInfoFDD ::= CHOICE { } } +UL-SecondaryCellInfoFDD-r12 ::= CHOICE { + continue NULL, + newConfiguration SEQUENCE { + secondaryServingEDCHCell-Info SecondaryServingEDCHCell-Info OPTIONAL, + secondaryEDCH-Info-Common SecondaryEDCH-Info-Common-r12 OPTIONAL, + dl-InformationPerSecondaryRL-List DL-InformationPerSecondaryRL-List-r12 OPTIONAL + } +} + PhysicalChannelCapability-edch-r6 ::= SEQUENCE { fdd-edch CHOICE { supported SEQUENCE { @@ -16374,6 +17662,16 @@ ExplicitTFCS-Configuration ::= CHOICE { } } +ExplicitTFCS-Configuration-r12 ::= CHOICE { + complete TFCS-ReconfAdd-r12, + addition TFCS-ReconfAdd-r12, + removal TFCS-RemovalList, + replacement SEQUENCE { + tfcsRemoval TFCS-RemovalList, + tfcsAdd TFCS-ReconfAdd-r12 + } +} + GainFactor ::= INTEGER (0..15) GainFactorInformation ::= CHOICE { @@ -16381,6 +17679,16 @@ GainFactorInformation ::= CHOICE { computedGainFactors ReferenceTFC-ID } +GainFactorInformation-10msMode ::= CHOICE { + signalledGainFactors SEQUENCE { + gainFactorBetaC GainFactor, + gainFactorBetaD GainFactor, + referenceTFC-ID ReferenceTFC-ID OPTIONAL + }, + computedGainFactors ReferenceTFC-ID +} + + HSDSCH-Info ::= SEQUENCE { harqInfo HARQ-Info OPTIONAL, addOrReconfMAC-dFlow AddOrReconfMAC-dFlow OPTIONAL @@ -16612,6 +17920,15 @@ NumberOfTbSizeAndTTIList ::= SEQUENCE (SIZE (1..maxTF)) OF SEQUENCE { MessType ::= ENUMERATED { transportFormatCombinationControl } +MinimumTEBS-threshold ::= ENUMERATED { + pl2, pl4, pl8, pl16, pl32, + pl64, pl128, pl256, pl512, pl1024, + pl2k, pl4k, pl8k, pl16k, pl32k, + pl64k, pl128k, pl256k, pl512k, pl1024k, + spare12, spare11, spare10, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, + spare2, spare1 } + Non-allowedTFC-List ::= SEQUENCE (SIZE (1..maxTFC)) OF TFC-Value @@ -16663,6 +17980,10 @@ PowerOffsetInformation ::= SEQUENCE { powerOffsetPp-m PowerOffsetPp-m OPTIONAL } +PowerOffsetInformation-10msMode ::= SEQUENCE { + gainFactorInformation GainFactorInformation-10msMode +} + PowerOffsetPp-m ::= INTEGER (-5..10) PreDefTransChConfiguration ::= SEQUENCE { @@ -16764,6 +18085,10 @@ TFCS ::= CHOICE { dummy SplitTFCI-Signalling } +TFCS-r12 ::= CHOICE { + normalTFCI-Signalling ExplicitTFCS-Configuration-r12 +} + TFCS-Identity ::= SEQUENCE { tfcs-ID TFCS-IdentityPlain DEFAULT 1, sharedChannelIndicator BOOLEAN @@ -16814,6 +18139,46 @@ TFCS-ReconfAdd ::= SEQUENCE{ } } +TFCS-ReconfAdd-r12 ::= SEQUENCE{ + ctfcSize CHOICE{ + ctfc2Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { + ctfc2 INTEGER (0..3), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + }, + ctfc4Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { + ctfc4 INTEGER (0..15), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + }, + ctfc6Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { + ctfc6 INTEGER (0..63), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + }, + ctfc8Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { + ctfc8 INTEGER (0..255), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + }, + ctfc12Bit SEQUENCE (SIZE(1..maxTFC)) OF SEQUENCE { + ctfc12 INTEGER (0..4095), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + }, + ctfc16Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { + ctfc16 INTEGER(0..65535), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + }, + ctfc24Bit SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE { + ctfc24 INTEGER(0..16777215), + powerOffsetInformation PowerOffsetInformation OPTIONAL, + powerOffsetInformation-10msMode PowerOffsetInformation-10msMode OPTIONAL + } + } +} + TFCS-Removal ::= SEQUENCE { tfci INTEGER (0..1023) } @@ -16839,6 +18204,9 @@ TransmissionTimeInterval ::= ENUMERATED { TransmissionTimeValidity ::= INTEGER (1..256) +TransportChannelConcatInfo ::= SEQUENCE (SIZE (1..maxTrCHConcat)) OF + TransportChannelIdentity + TransportChannelIdentity ::= INTEGER (1..32) TransportChannelIdentityDCHandDSCH ::= SEQUENCE { @@ -16965,6 +18333,22 @@ UL-CommonTransChInfo-r4 ::= SEQUENCE { tfc-SubsetList TFC-SubsetList OPTIONAL } +UL-CommonTransChInfo-r12 ::= SEQUENCE { + -- TABULAR: tfc-subset is applicable to FDD only, TDD specifies tfc-subset in individual + -- CCTrCH Info. + tfc-Subset TFC-Subset OPTIONAL, + prach-TFCS TFCS OPTIONAL, + modeSpecificInfo CHOICE { + fdd SEQUENCE { + ul-TFCS TFCS-r12 + }, + tdd SEQUENCE { + individualUL-CCTrCH-InfoList IndividualUL-CCTrCH-InfoList OPTIONAL + } + } OPTIONAL, + tfc-SubsetList TFC-SubsetList OPTIONAL +} + -- In UL-ControlledTrChList, TrCH-Type is always DCH UL-ControlledTrChList ::= SEQUENCE (SIZE (1..maxTrCH)) OF TransportChannelIdentity @@ -17004,6 +18388,16 @@ USCH-TransportChannelsInfo ::= SEQUENCE (SIZE (1..maxTrCH)) OF ACK-NACK-repetitionFactor ::= INTEGER(1..4) +ActivationDelay::= ENUMERATED { + radio-frames-0, + radio-frames-1, + radio-frames-2, + radio-frames-3, + radio-frames-4, + radio-frames-5, + spare2, + spare1 } + AC-To-ASC-Mapping ::= INTEGER (0..7) AC-To-ASC-MappingTable ::= SEQUENCE (SIZE (maxASCmap)) OF @@ -17194,6 +18588,9 @@ AdditionalDLSecCellInfoListFDD-r11 ::= SEQUENCE (SIZE (2)) OF AdditionalDLSecCellInfoListFDD2 ::= SEQUENCE (SIZE (4)) OF AdditionalDLSecCellInfoFDD-r11 +AdditionalDLSecCellInfoHandoverToUtranListFDD ::= SEQUENCE (SIZE (2)) OF + AdditionalDLSecCellInfoFDD-HandoverToUtran + -- AdditionalDLSecCellInfoFDD is introduced to avoid a SEQUENCE of SEQUENCE, a convention in RAN2. AdditionalDLSecCellInfoFDD ::= SEQUENCE { dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r10 OPTIONAL @@ -17203,6 +18600,10 @@ AdditionalDLSecCellInfoFDD-r11 ::= SEQUENCE { dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL } +AdditionalDLSecCellInfoFDD-HandoverToUtran::= SEQUENCE { + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-HandoverToUtran OPTIONAL +} + AICH-Info ::= SEQUENCE { channelisationCode256 ChannelisationCode256, sttd-Indicator BOOLEAN, @@ -17651,6 +19052,24 @@ CPCH-StatusIndicationMode ::= ENUMERATED { pa-mode, pamsf-mode } +CQI-CycleSwitchTimer ::= ENUMERATED { + sub-frames-4, + sub-frames-8, + sub-frames-16, + sub-frames-32, + sub-frames-64, + sub-frames-128, + sub-frames-256, + sub-frames-512, + sub-frames-Infinity, + spare7, + spare6, + spare5, + spare4, + spare3, + spare2, + spare1 } + CQI-DTX-Timer ::= ENUMERATED { sub-frames-0, sub-frames-1, @@ -17675,9 +19094,33 @@ CSICH-PowerOffset ::= INTEGER (-10..5) D-CPICH-PowerOffset-4x4MIMO ::= INTEGER (-12..0) +DCH-Enhancements-Info-FDD ::= SEQUENCE { + configurationInfo CHOICE { + continue NULL, + newConfiguration SEQUENCE { + ulTransmissionMode CHOICE { + tenMSOnly NULL, + twentyMSOnly NULL, + tenORtwentyMS SEQUENCE { + ul-TransModeSwitchingParam UL-TransModeSwitchingParam + } + }, + dlFETMode CHOICE { + basic NULL, + full SEQUENCE { + early-dch-QualityTarget QualityTarget, + early-dch-TargetSlot INTEGER (11..28), + trChConcatInfo TransportChannelConcatInfo + } + } + } + } +} + -- DefaultDPCH-OffsetValueFDD and DefaultDPCH-OffsetValueTDD corresponds to -- IE "Default DPCH Offset Value" depending on the mode. -- Actual value DefaultDPCH-OffsetValueFDD = IE value * 512 + DefaultDPCH-OffsetValueFDD ::= INTEGER (0..599) DefaultDPCH-OffsetValueTDD ::= INTEGER (0..7) @@ -17699,6 +19142,10 @@ DeltaACK-r11 ::= INTEGER (0..10) -- Actual value DeltaSIR = IE value * 0.1 DeltaSIR ::= INTEGER (0..30) +DesignatedNonServingHS-DSCHCellInfo ::= SEQUENCE { + primaryCPICH-Info PrimaryCPICH-Info +} + DHS-Sync ::= INTEGER (-20..10) DL-CCTrCh ::= SEQUENCE { @@ -17958,6 +19405,33 @@ DL-CommonInformation-r11 ::= SEQUENCE { mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL } +DL-CommonInformation-r12 ::= SEQUENCE { + dl-dpchInfoCommon CHOICE { + dl-DPCH-InfoCommon DL-DPCH-InfoCommon-r12, + dl-FDPCH-InfoCommon DL-FDPCH-InfoCommon-r6 + } OPTIONAL, + modeSpecificInfo CHOICE { + fdd SEQUENCE { + defaultDPCH-OffsetValue DefaultDPCH-OffsetValueFDD OPTIONAL, + dpch-CompressedModeInfo DPCH-CompressedModeInfo-r10 OPTIONAL, + tx-DiversityMode TX-DiversityMode OPTIONAL + }, + tdd SEQUENCE { + tddOption CHOICE { + tdd384 NULL, + tdd768 NULL, + tdd128 SEQUENCE { + tstd-Indicator BOOLEAN + } + }, + defaultDPCH-OffsetValue DefaultDPCH-OffsetValueTDD OPTIONAL + } + }, + mac-hsResetIndicator ENUMERATED { true } OPTIONAL, + postVerificationPeriod ENUMERATED { true } OPTIONAL, + mac-hsResetIndicator-assisting ENUMERATED { true } OPTIONAL +} + DL-CommonInformationPost ::= SEQUENCE { dl-DPCH-InfoCommon DL-DPCH-InfoCommonPost } @@ -18054,6 +19528,33 @@ DL-DPCH-InfoCommon-r6 ::= SEQUENCE { mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL } +DL-DPCH-InfoCommon-r12 ::= SEQUENCE { + cfnHandling CHOICE { + maintain SEQUENCE { + timingmaintainedsynchind TimingMaintainedSynchInd OPTIONAL + }, + initialise NULL + }, + modeSpecificInfo CHOICE { + fdd SEQUENCE { + dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL, + powerOffsetPilot-pdpdch PowerOffsetPilot-pdpdch, + dl-rate-matching-restriction Dl-rate-matching-restriction OPTIONAL, + -- TABULAR: The number of pilot bits is nested inside the spreading factor. + spreadingFactorAndPilot SF512-AndPilot-r12, + positionFixedOrFlexible PositionFixedOrFlexible, + tfci-Existence BOOLEAN + }, + tdd SEQUENCE { + dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL + } + }, + -- The IE mac-d-HFN-initial-value should be absent in the RRCConnectionSetup and the + -- HandoverToUTRANCommand messages. If the IE is included, the general error handling + -- for conditional IEs applies. + mac-d-HFN-initial-value MAC-d-HFN-initial-value OPTIONAL +} + DL-DPCH-InfoCommonPost ::= SEQUENCE { dl-DPCH-PowerControlInfo DL-DPCH-PowerControlInfo OPTIONAL } @@ -18159,6 +19660,41 @@ DL-DPCH-InfoPerRL-r7 ::= CHOICE { } } +DL-DPCH-InfoPerRL-r12 ::= CHOICE { + fdd SEQUENCE { + pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, + dpch-FrameOffset DPCH-FrameOffset, + secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, + dl-ChannelisationCodeList DL-ChannelisationCodeList, + tpc-CombinationIndex TPC-CombinationIndex, + powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL, + powerOffsetPO-SRB PowerOffsetPO-SRB OPTIONAL, + closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL + }, + tdd SEQUENCE { + dl-CCTrChListToEstablish DL-CCTrChList-r7 OPTIONAL, + dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL + } +} + + +DL-DPCH-InfoPerRL-ASU ::= CHOICE { + fdd SEQUENCE { + pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, + dpch-FrameOffset DPCH-FrameOffset, + secondaryCPICH-Info SecondaryCPICH-Info OPTIONAL, + dl-ChannelisationCodeList DL-ChannelisationCodeList, + tpc-CombinationIndex TPC-CombinationIndex, + powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL, + powerOffsetPO-SRB PowerOffsetPO-SRB OPTIONAL, + closedLoopTimingAdjMode ClosedLoopTimingAdjMode OPTIONAL + }, + tdd SEQUENCE { + dl-CCTrChListToEstablish DL-CCTrChList-r4 OPTIONAL, + dl-CCTrChListToRemove DL-CCTrChListToRemove OPTIONAL + } +} + DL-FDPCH-InfoPerRL-r6 ::= SEQUENCE { pCPICH-UsageForChannelEst PCPICH-UsageForChannelEst, fdpch-FrameOffset DPCH-FrameOffset, @@ -18372,6 +19908,33 @@ DL-HSPDSCH-Information-r11 ::= SEQUENCE { } } +DL-HSPDSCH-Information-r12 ::= SEQUENCE { + hs-scch-Info HS-SCCH-Info-r9 OPTIONAL, + measurement-feedback-Info Measurement-Feedback-Info-r12 OPTIONAL, + modeSpecificInfo CHOICE { + tdd CHOICE { + tdd384 SEQUENCE { + dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration OPTIONAL + }, + tdd768 SEQUENCE { + dl-HSPDSCH-TS-Configuration DL-HSPDSCH-TS-Configuration-VHCR OPTIONAL + }, + tdd128 SEQUENCE { + hs-PDSCH-Midamble-Configuration-tdd128 + HS-PDSCH-Midamble-Configuration-TDD128 OPTIONAL, + dl-MultiCarrier-Information DL-MultiCarrier-Information OPTIONAL, + tS0-Indicator ENUMERATED { true } OPTIONAL, + outofSyncWindow OutofSyncWindow OPTIONAL, + ts0ChannelizationCodes DL-TS-ChannelisationCodesShort OPTIONAL + } + }, + fdd SEQUENCE { + dl-64QAM-Configured ENUMERATED { true } OPTIONAL, + hs-DSCH-TBSizeTable HS-DSCH-TBSizeTable OPTIONAL + } + } +} + OutofSyncWindow ::= ENUMERATED { ms40, ms80, ms160, ms320, ms640, spare3, spare2, spare1 } @@ -18617,6 +20180,50 @@ DL-InformationPerRL-r11 ::= SEQUENCE { cell-id CellIdentity OPTIONAL } +DL-InformationPerRL-r12 ::= SEQUENCE { + modeSpecificInfo CHOICE { + fdd SEQUENCE { + primaryCPICH-Info PrimaryCPICH-Info, + servingHSDSCH-RL-indicator BOOLEAN, + servingEDCH-RL-indicator BOOLEAN + }, + tdd PrimaryCCPCH-Info-r4 + }, + dl-dpchInfo CHOICE { + dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-r12, + dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7, + radioLinkswithoutDPCHFDPCHInfo RadioLinkswithoutDPCHFDPCHInfo + } OPTIONAL, + e-AGCH-Information E-AGCH-Information-r8 OPTIONAL, + e-ROCH-Information E-ROCH-Information OPTIONAL, + modeSpecificInfo2 CHOICE { + fdd SEQUENCE { + e-HICH-Info CHOICE { + e-HICH-Information E-HICH-Information-r11, + releaseIndicator NULL, + secondaryReleaseIndicator NULL + } OPTIONAL, + e-RGCH-Info CHOICE { + e-RGCH-Information E-RGCH-Information, + releaseIndicator NULL + } OPTIONAL, + f-TPICH-Info CHOICE { + f-TPICH-Information F-TPICH-Information, + releaseIndicator NULL + } OPTIONAL + }, + tdd CHOICE { + tdd384-tdd768 SEQUENCE { + e-HICH-Info E-HICH-Information-TDD384-768 OPTIONAL + }, + tdd128 SEQUENCE { + e-HICH-Info E-HICH-Information-TDD128 OPTIONAL + } + } + }, + cell-id CellIdentity OPTIONAL +} + DL-InformationPerRL-List ::= SEQUENCE (SIZE (1..maxRL)) OF DL-InformationPerRL @@ -18644,6 +20251,9 @@ DL-InformationPerRL-List-r8 ::= SEQUENCE (SIZE (1..maxRL)) OF DL-InformationPerRL-List-r11 ::= SEQUENCE (SIZE (1..maxRL)) OF DL-InformationPerRL-r11 +DL-InformationPerRL-List-r12 ::= SEQUENCE (SIZE (1..maxRL)) OF + DL-InformationPerRL-r12 + DL-InformationPerRL-ListPostFDD ::= SEQUENCE (SIZE (1..maxRL)) OF DL-InformationPerRL-PostFDD @@ -18759,6 +20369,22 @@ DL-SecondaryCellInfoFDD-r11 ::= SEQUENCE { secondaryCell4x4MIMOparameters SecondaryCell4x4MIMOparametersFDD OPTIONAL } +DL-SecondaryCellInfoFDD-HandoverToUtran ::= SEQUENCE { + configurationInfo CHOICE { + continue NULL, + newConfiguration SEQUENCE { + new-H-RNTI H-RNTI, + primaryCPICH-Info PrimaryCPICH-Info, + dl-ScramblingCode SecondaryScramblingCode OPTIONAL, + hS-SCCHChannelisationCodeInfo SEQUENCE (SIZE (1..maxHSSCCHs)) OF + HS-SCCH-Codes, + measurementPowerOffset MeasurementPowerOffset, + uarfcn-DL UARFCN, + differentTxModeFromServingHS-DSCHCell ENUMERATED { different } OPTIONAL + } + } +} + DL-TPC-PowerOffsetPerRL ::= SEQUENCE { powerOffsetTPC-pdpdch PowerOffsetTPC-pdpdch OPTIONAL } @@ -18983,6 +20609,24 @@ DPC-Mode ::= ENUMERATED { singleTPC, tpcTripletInSoft } +DPCCH2Info ::= SEQUENCE { + dpcch2TxPowerOffset Dpcch2TxPowerOffset +} + +DPCCH2InfoFDD ::= SEQUENCE { + configurationInfo CHOICE { + continue NULL, + newConfiguration SEQUENCE { + dpcch2Info DPCCH2Info OPTIONAL, + f-dpchInfo F-DPCHInfo OPTIONAL, + extended-E-DPCCH-DPCCHPO Extended-E-DPCCH-DPCCH-PowerOffset OPTIONAL, + designatedNonServingHS-DSCHCellInfo DesignatedNonServingHS-DSCHCellInfo OPTIONAL + } + } +} + +Dpcch2TxPowerOffset ::= INTEGER (0..20) + -- Actual value DPCCH-PowerOffset = IE value * 2 DPCCH-PowerOffset ::= INTEGER (-82..-3) @@ -19044,6 +20688,16 @@ DRX-Info ::= SEQUENCE { ue-drx-GrantMonitoring BOOLEAN } +DRX-Info-r12 ::= SEQUENCE { + ue-drx-Cycle UE-DRX-Cycle, + ue-drx-Cycle2 UE-DRX-Cycle2 OPTIONAL, + ue-drx-Cycle-InactivityThreshold UE-DRX-Cycle-InactivityThreshold, + ue-drx-Cycle2-InactivityThreshold UE-DRX-Cycle-InactivityThreshold OPTIONAL, + ue-GrantMonitoring-InactivityThreshold + UE-GrantMonitoring-InactivityThreshold, + ue-drx-GrantMonitoring BOOLEAN +} + DSCH-Mapping ::= SEQUENCE { maxTFCI-Field2Value MaxTFCI-Field2Value, spreadingFactor SF-PDSCH, @@ -19068,6 +20722,13 @@ DTX-DRX-Info-r7 ::= SEQUENCE { uplink-DPCCHSlotFormatInformation Uplink-DPCCH-Slot-Format-Information } +DTX-DRX-Info-r12 ::= SEQUENCE { + dtx-Info DTX-Info OPTIONAL, + dtx-Info-SecondaryUplinkFrequency DTX-Info-SecondaryUplinkFrequency OPTIONAL, + drx-Info DRX-Info-r12 OPTIONAL, + uplink-DPCCHSlotFormatInformation Uplink-DPCCH-Slot-Format-Information +} + DTX-E-DCH-TTI-10ms ::= SEQUENCE { ue-dtx-Cycle1-10ms UE-DTX-Cycle1-10ms, ue-dtx-Cycle2-10ms UE-DTX-Cycle2-10ms, @@ -19095,6 +20756,20 @@ DTX-Info ::= SEQUENCE { ue-dpcch-Burst2 UE-DPCCH-Burst } +DTX-Info-SecondaryUplinkFrequency ::= SEQUENCE { + e-dch-TTI-Length CHOICE { + dtx-e-dch-TTI-10ms NULL, + dtx-e-dch-TTI-2ms SEQUENCE { + ue-dtx-Cycle1-2ms-Secondary UE-DTX-Cycle1-2ms OPTIONAL, + ue-dtx-Cycle2-2ms-Secondary UE-DTX-Cycle2-2ms-Secondary } + }, + ue-dtx-cycle2InactivityThreshold-Secondary UE-DTX-Cycle2InactivityThreshold OPTIONAL, + -- if ue-dtx-long-preamble-length is not present, the value is '2 slots' + ue-dtx-long-preamble-length-Secondary UE-DTX-long-preamble-length OPTIONAL, + ue-dpcch-Burst1-Secondary UE-DPCCH-Burst OPTIONAL, + ue-dpcch-Burst2-Secondary UE-DPCCH-Burst OPTIONAL +} + DurationTimeInfo ::= INTEGER (1..4096) DynamicPersistenceLevel ::= INTEGER (1..8) @@ -19412,6 +21087,8 @@ E-DPCCH-Info-r7 ::= SEQUENCE { E-DPCCH-DPCCH-PowerOffset ::= INTEGER (0..8) +Extended-E-DPCCH-DPCCH-PowerOffset ::= INTEGER (9..15) + E-DPDCH-Info ::= SEQUENCE { e-TFCI-TableIndex E-TFCI-TableIndex, e-DCH-MinimumSet-E-TFCI E-DCH-MinimumSet-E-TFCI OPTIONAL, @@ -19557,6 +21234,7 @@ E-HICH-Information-For-SPS-TDD128 ::= SEQUENCE { signatureSequenceGroupIndex INTEGER (0..19) } + E-PUCH-Info ::= SEQUENCE { e-TFCS-Info E-TFCS-Info, modeSpecificInfo CHOICE { @@ -19725,6 +21403,8 @@ EARFCN ::= INTEGER (0..65535) EARFCNExtension ::= INTEGER (65536..262143) +EARFCNExtension2 ::= INTEGER (0..262143) + EARFCNRange ::= SEQUENCE { -- If the IE earfcn is set to a value of 65535, then the EARFCN -- value for that instance shall be read from the IE earfcnExt. @@ -19768,6 +21448,13 @@ EXT-UL-TimingAdvance ::= SEQUENCE { } } +F-DPCHInfo ::= SEQUENCE { + fdpch-SlotFormat INTEGER (0..9) OPTIONAL, + codeNumber INTEGER (0..255) OPTIONAL, + -- Actual value dl-FDPCH-TPCcommandErrorRate = IE value * 0.01 + dl-FDPCH-TPCcommandErrorRate INTEGER (1..10) OPTIONAL +} + FACH-PCH-Information ::= SEQUENCE { transportFormatSet TransportFormatSet, transportChannelIdentity TransportChannelIdentity, @@ -19785,6 +21472,12 @@ Fallback-R99-PRACH-info-IEs::= SEQUENCE { Feedback-cycle ::= ENUMERATED { fc0, fc2, fc4, fc8, fc10, fc20, fc40, fc80, fc160} +Feedback-cycle2 ::= ENUMERATED { + fc0, fc8, fc10, fc16, + fc20, f32, fc40, f64, + fc80, fc160, spare6, spare5, + spare4, spare3, spare2, spare1} + Feedback-cycle-r7 ::= ENUMERATED { fc0, fc2, fc4, fc8, fc10, fc20, fc40, fc80, fc160, fc16, fc32, fc64, spare4, spare3, spare2, spare1 } @@ -19828,6 +21521,9 @@ FTPICH-SlotFormat ::= INTEGER (0..9) FreqIndexListForEnhancedMeas ::= SEQUENCE (SIZE (1..maxFreqMeasWithoutCM)) OF FrequencyIndexForEnhancedMeas +FreqIndexListForEnhancedMeas-r12 ::= SEQUENCE (SIZE (1..maxFreqMeasWithoutCM)) OF + FrequencyIndexForEnhancedMeas-r12 + FrequencyInfo ::= SEQUENCE { modeSpecificInfo CHOICE { fdd FrequencyInfoFDD, @@ -19845,6 +21541,8 @@ FrequencyInfoTDD ::= SEQUENCE { FrequencyIndexForEnhancedMeas ::= INTEGER (0..maxCellMeas-1) +FrequencyIndexForEnhancedMeas-r12 ::= INTEGER (0..maxCellMeas-ext-1) + HappyBit-DelayCondition ::= ENUMERATED { ms2, ms10, ms20, ms50, ms100, ms200, ms500, ms1000 } @@ -19986,6 +21684,12 @@ HS-DSCH-SPS-NewOperation-TDD128 ::= SEQUENCE { } OPTIONAL } +HS-DPCCHOverheadReduction ::= SEQUENCE { + hs-dpcch-ReductionType ENUMERATED { reductionType1, reductionType2} OPTIONAL, + feedback-cycle2 Feedback-cycle2, + cqi-CycleSwitchTimer CQI-CycleSwitchTimer +} + HS-PDSCH-Midamble-Configuration-TDD128 ::= SEQUENCE { midambleAllocationMode CHOICE{ defaultMidamble NULL, @@ -20488,6 +22192,20 @@ Measurement-Feedback-Info-r11 ::= SEQUENCE { } } +Measurement-Feedback-Info-r12 ::= SEQUENCE { + modeSpecificInfo CHOICE { + fdd SEQUENCE { + measurementPowerOffset MeasurementPowerOffset, + feedback-cycle Feedback-cycle-r7, + hs-DPCCHOverheadReduction HS-DPCCHOverheadReduction OPTIONAL, + cqi-RepetitionFactor CQI-RepetitionFactor, + cqi-RepetitionFactor-Assisting CQI-RepetitionFactor OPTIONAL, + deltaCQI DeltaCQI-r11 + }, + tdd NULL + } +} + Measurement-Feedback-Info-ConcurrentTTI ::= SEQUENCE { feedback-cycle Feedback-cycle-r7 OPTIONAL, cqi-RepetitionFactor CQI-RepetitionFactor OPTIONAL, @@ -20930,6 +22648,10 @@ Non-ScheduledTransGrantInfoTDD-r9 ::= CHOICE { } } +Non-rectResAllocInd-TDD128 ::= ENUMERATED { true } + +Non-rectResSpecTSset-TDD128 ::= BIT STRING (SIZE (7)) + NumberOfDPDCH ::= INTEGER (1..maxDPDCH-UL) NumberOfFBI-Bits ::= INTEGER (1..2) @@ -21240,9 +22962,15 @@ PICH-PowerOffset ::= INTEGER (-10..5) PilotBits128 ::= ENUMERATED { pb4, pb8 } +PilotBits128-r12 ::= ENUMERATED { + pb0, pb4, pb8 } + PilotBits256 ::= ENUMERATED { pb2, pb4, pb8 } +PilotBits256-r12 ::= ENUMERATED { + pb0, pb2, pb4, pb8 } + -- Actual measurement power offset value = IE value * 0.5 MeasurementPowerOffset ::= INTEGER (-12..26) @@ -21266,6 +22994,8 @@ PowerControlGAP ::= INTEGER (0..255) PowerOffsetPilot-pdpdch ::= INTEGER (0..24) +PowerOffsetPO-SRB ::= INTEGER (0..24) + PowerOffsetTPC-pdpdch ::= INTEGER (0..24) PowerRampStep ::= INTEGER (1..8) @@ -21731,6 +23461,10 @@ RACH-TransmissionParameters ::= SEQUENCE { nb01Max NB01 } +RadioLinkswithoutDPCHFDPCHInfo ::= SEQUENCE { + frameOffset DPCH-FrameOffset +} + ReducedScramblingCodeNumber ::= INTEGER (0..8191) Reference-Beta-QPSK ::= SEQUENCE { @@ -21919,6 +23653,20 @@ RL-AdditionInformation-r11 ::= SEQUENCE { targetCellPreconfigInfo TargetCellPreconfigInfo-r11 OPTIONAL } +RL-AdditionInformation-r12 ::= SEQUENCE { + primaryCPICH-Info PrimaryCPICH-Info, + cell-Id CellIdentity OPTIONAL, + dl-dpchInfo CHOICE { + dl-DPCH-InfoPerRL DL-DPCH-InfoPerRL-ASU, + dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7, + radioLinkswithoutDPCHFDPCHInfo RadioLinkswithoutDPCHFDPCHInfo + }, + e-HICH-Information E-HICH-Information-r11 OPTIONAL, + e-RGCH-Information E-RGCH-Information OPTIONAL, + f-TPICH-Information F-TPICH-Information OPTIONAL, + targetCellPreconfigInfo TargetCellPreconfigInfo-r12 OPTIONAL +} + RL-AdditionInformation-v6b0ext ::= SEQUENCE { sttdIndication STTDIndication OPTIONAL } @@ -21964,9 +23712,14 @@ RL-AdditionInformationList-vb50ext ::= SEQUENCE (SIZE(1..maxRL-1)) OF RL-AdditionInformationList-r11 ::= SEQUENCE (SIZE(1..maxRL-1)) OF RL-AdditionInformation-r11 +RL-AdditionInformationList-r12 ::= SEQUENCE (SIZE(1..maxRL-1)) OF + RL-AdditionInformation-r12 + RL-AdditionInformationList-SecULFreq ::= SEQUENCE (SIZE(1..maxEDCHRL-1)) OF RL-AdditionInformation-SecULFreq +RL-AdditionInformationList-SecULFreq-r12 ::= SEQUENCE (SIZE(1..maxEDCHRL-1)) OF + RL-AdditionInformation-SecULFreq-r12 RL-AdditionInformation-SecULFreq ::= SEQUENCE { primaryCPICH-Info PrimaryCPICH-Info, @@ -21976,6 +23729,15 @@ RL-AdditionInformation-SecULFreq ::= SEQUENCE { e-RGCH-Information E-RGCH-Information OPTIONAL } +RL-AdditionInformation-SecULFreq-r12 ::= SEQUENCE { + primaryCPICH-Info PrimaryCPICH-Info, + cell-id CellIdentity OPTIONAL, + dl-FDPCH-InfoPerRL DL-FDPCH-InfoPerRL-r7, + e-HICH-Information E-HICH-Information, + e-RGCH-Information E-RGCH-Information OPTIONAL, + radioLinkswithoutDPCHFDPCHIndicator NULL OPTIONAL +} + RL-IdentifierList ::= SEQUENCE (SIZE (1..maxRL)) OF PrimaryCPICH-Info @@ -22321,6 +24083,12 @@ ServingCellChangeParameters ::= SEQUENCE { servingCellChangeTrId ServingCellChangeTrId } +ServingCellChangeParameters-r12 ::= SEQUENCE { + servingCellChangeMACreset ServingCellChangeMACreset, + servingCellChangeMsgType ServingCellChangeMsgType, + servingCellChangeTrId ServingCellChangeTrId, + enhancedServingCellChangeforEvent1CsupportIndicator ENUMERATED { true } OPTIONAL +} ServingCellChangeTrId ::= INTEGER (0..3) SF8Codes ::= ENUMERATED { @@ -22374,6 +24142,18 @@ SF512-AndPilot ::= CHOICE { sfd256 PilotBits256, sfd512 NULL } + +SF512-AndPilot-r12 ::= CHOICE { + sfd4 NULL, + sfd8 NULL, + sfd16 NULL, + sfd32 NULL, + sfd64 NULL, + sfd128 PilotBits128-r12, + sfd256 PilotBits256-r12, + sfd512 NULL +} + SF-PDSCH ::= ENUMERATED { sfp4, sfp8, sfp16, sfp32, sfp64, sfp128, sfp256 } @@ -22568,6 +24348,33 @@ TargetCellPreconfigInfo-r11 ::= SEQUENCE { ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL } +TargetCellPreconfigInfo-r12 ::= SEQUENCE { + activationTimeOffset ActivationTimeOffset OPTIONAL, + new-H-RNTI H-RNTI, + newPrimary-E-RNTI E-RNTI OPTIONAL, + newSecondary-E-RNTI E-RNTI OPTIONAL, + serving-HSDSCH-CellInformation Serving-HSDSCH-CellInformation-r12, + e-dch-ReconfigurationInfo E-DCH-ReconfigurationInfo-r11, + dtx-drx-TimingInfo DTX-DRX-TimingInfo-r7 OPTIONAL, + dtx-drx-Info DTX-DRX-Info-r12 OPTIONAL, + hs-scch-LessInfo HS-SCCH-LessInfo-r7 OPTIONAL, + mimoParameters MIMO-Parameters-r9 OPTIONAL, + mimo4x4Parameters MIMO4x4-Parameters OPTIONAL, + dl-SecondaryCellInfoFDD DL-SecondaryCellInfoFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD AdditionalDLSecCellInfoListFDD-r11 OPTIONAL, + additionalDLSecCellInfoListFDD2 AdditionalDLSecCellInfoListFDD2 OPTIONAL, + ul-SecondaryCellInfoFDD UL-SecondaryCellInfoFDD-r12 OPTIONAL, + e-dch-ReconfigurationInfo-SecULFrequency + E-DCH-ReconfigurationInfo-SecULFrequency OPTIONAL, + ul-CLTD-InfoFDD UL-CLTD-InfoFDD OPTIONAL, + f-tpich-ReconfigurationInfo F-TPICH-ReconfigurationInfo OPTIONAL, + uL-OLTD-InfoFDD UL-OLTD-InfoFDD OPTIONAL, + ul-16QAM-Config UL-16QAM-Config OPTIONAL, + ul-64QAM-Config UL-64QAM-Config OPTIONAL, + ul-MIMO-Info UL-MIMO-InfoFDD OPTIONAL, + dPCCH2InfoFDD DPCCH2InfoFDD OPTIONAL +} + TDD-FPACH-CCode16-r4 ::= ENUMERATED { cc16-1, cc16-2, cc16-3, cc16-4, cc16-5, cc16-6, cc16-7, cc16-8, @@ -22900,6 +24707,15 @@ UE-DPCCH-Burst ::= ENUMERATED { sub-frames-5, spare1 } +UE-DPCCHPowerResetAfterDTXOnSecUplink ::= SEQUENCE { + filterCoefficient INTEGER (0..5), + -- Actual value range powerOffset = (-4..10) * 2 + powerOffset INTEGER (-8..20), + inactivityThresholdForResetPower ENUMERATED { + ms10, ms20, ms30, ms40, + ms50, ms60, ms80, ms120} OPTIONAL +} + UE-DRX-Cycle ::= ENUMERATED { sub-frames-4, sub-frames-5, @@ -22910,6 +24726,24 @@ UE-DRX-Cycle ::= ENUMERATED { spare2, spare1 } +UE-DRX-Cycle2 ::= ENUMERATED { + sub-frames-4, + sub-frames-5, + sub-frames-8, + sub-frames-10, + sub-frames-16, + sub-frames-20, + sub-frames-32, + sub-frames-40, + sub-frames-64, + sub-frames-80, + spare6, + spare5, + spare4, + spare3, + spare2, + spare1 } + UE-DTX-Cycle1-10ms ::= ENUMERATED { sub-frames-1, sub-frames-5, @@ -22954,6 +24788,40 @@ UE-DTX-Cycle2-2ms ::= ENUMERATED { spare2, spare1 } +UE-DTX-Cycle2-2ms-Secondary ::= ENUMERATED { + sub-frames-4, + sub-frames-5, + sub-frames-8, + sub-frames-10, + sub-frames-16, + sub-frames-20, + sub-frames-32, + sub-frames-40, + sub-frames-64, + sub-frames-80, + sub-frames-128, + sub-frames-160, + sub-frames-256, + sub-frames-320, + sub-frames-512, + sub-frames-640, + sub-frames-1024, + sub-frames-1280, + spare14, + spare13, + spare12, + spare11, + spare10, + spare9, + spare8, + spare7, + spare6, + spare5, + spare4, + spare3, + spare2, + spare1 } + UE-DTX-Cycle2InactivityThreshold ::= ENUMERATED { e-dch-tti-1, e-dch-tti-4, @@ -23788,6 +25656,12 @@ UL-TimingAdvanceControl-LCR-r4 ::= CHOICE { } } +UL-TransModeSwitchingParam ::= SEQUENCE { + k INTEGER (1..32), + l INTEGER (1..32), + m INTEGER (1..32) +} + UL-TS-ChannelisationCode ::= ENUMERATED { cc1-1, cc2-1, cc2-2, cc4-1, cc4-2, cc4-3, cc4-4, @@ -23988,6 +25862,23 @@ AcquisitionSatInfo-r10 ::= SEQUENCE { codePhaseSearchWindow CodePhaseSearchWindow, azimuthAndElevation AzimuthAndElevation-r10 OPTIONAL } +AcquisitionSatInfo-vc50ext ::= SEQUENCE { + extraDopplerInfoExtension ExtraDopplerInfoExtension OPTIONAL +} + +AcquisitionSatInfo-r12 ::= SEQUENCE { + satID SatID, + -- Actual value dopplerOthOrder = IE value * 2.5 + doppler0thOrder INTEGER (-2048..2047), + extraDopplerInfo ExtraDopplerInfo OPTIONAL, +-- If the extraDopplerInfoExtension is present, the extraDopplerInfo should not be present + extraDopplerInfoExtension ExtraDopplerInfoExtension OPTIONAL, + codePhase INTEGER (0..1022), + integerCodePhase INTEGER (0..19), + gps-BitNumber INTEGER (0..3), + codePhaseSearchWindow CodePhaseSearchWindow, + azimuthAndElevation AzimuthAndElevation-r10 OPTIONAL +} AcquisitionSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF AcquisitionSatInfo @@ -23998,6 +25889,12 @@ AcquisitionSatInfoList-va40ext ::= SEQUENCE (SIZE (1..maxSat)) OF AcquisitionSatInfoList-r10 ::= SEQUENCE (SIZE (1..maxSat)) OF AcquisitionSatInfo-r10 +AcquisitionSatInfoList-vc50ext ::= SEQUENCE (SIZE (1..maxSat)) OF + AcquisitionSatInfo-vc50ext + +AcquisitionSatInfoList-r12 ::= SEQUENCE (SIZE (1..maxSat)) OF + AcquisitionSatInfo-r12 + AdditionalMeasurementID-List ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF MeasurementIdentity @@ -24023,6 +25920,10 @@ AlmanacSatInfo ::= SEQUENCE { AlmanacSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF AlmanacSatInfo +ALM-BDSKeplerianSet ::= SEQUENCE { + sat-info-BDSkpList GANSS-SAT-Info-Almanac-BDSkpList +} + ALM-ECEFsbasAlmanacSet ::= SEQUENCE { sat-info-SBASecefList GANSS-SAT-Info-Almanac-SBASecefList } @@ -24032,9 +25933,9 @@ ALM-GlonassAlmanacSet ::= SEQUENCE { } ALM-keplerianParameters ::= SEQUENCE { - -- time of week by 4096s steps - t-oa INTEGER (0..147), - iod-a INTEGER (0..3), + -- time of week by 600s steps + t-oa INTEGER (0..1023), + iod-a INTEGER (0..15), sat-info-kpList GANSS-SAT-Info-Almanac-KpList } @@ -24109,6 +26010,38 @@ Frequency-Band ::= ENUMERATED { BCCH-ARFCN ::= INTEGER (0..1023) +BDSclockModel ::= SEQUENCE { + bdsAODC BIT STRING (SIZE (5)), + bdsToc BIT STRING (SIZE (17)), + bdsa0 BIT STRING (SIZE (24)), + bdsa1 BIT STRING (SIZE (22)), + bdsa2 BIT STRING (SIZE (11)), + bdsTgd1 BIT STRING (SIZE (10)) +} + +BDS-IGPInfoList ::= SEQUENCE (SIZE (1..maxIGPInfo)) OF SEQUENCE { + bds-IGPNumber INTEGER (1..320), + bds-VerticalDelay BIT STRING (SIZE (9)), + bds-GIVEI BIT STRING (SIZE (4)) +} + +DBDS-InfoList ::= SEQUENCE (SIZE (1..maxSgnType)) OF DBDS-Info + +DBDS-Info ::= SEQUENCE { + bds-SignalID GANSS-Signal-Id OPTIONAL, + dbds-SignalInfoList DBDS-SignalInfoList +} + +DBDS-SignalInfoList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF + DBDS-SignalInfo + +DBDS-SignalInfo ::= SEQUENCE { + svID INTEGER(0..63), + bds-UDREI INTEGER (0..15), + bds-RURAI INTEGER (0..15), + bds-ECC-DeltaT BIT STRING (SIZE (13)) +} + BLER-MeasurementResults ::= SEQUENCE { transportChannelIdentity TransportChannelIdentity, dl-TransportChannelBLER DL-TransportChannelBLER OPTIONAL @@ -24399,6 +26332,10 @@ CellMeasuredResults-v920ext ::= SEQUENCE { csgMemberIndication ENUMERATED { member } OPTIONAL } +CellMeasuredResults-vc50ext ::= SEQUENCE { + csg-MemberPLMNList CSG-MemberPLMNList OPTIONAL +} + CellMeasurementEventResults ::= CHOICE { fdd SEQUENCE (SIZE (1..maxCellMeas)) OF PrimaryCPICH-Info, @@ -24574,6 +26511,9 @@ CellSelectReselectInfoTreselectionScaling-v5c0ext ::= SEQUENCE { CellsForInterFreqMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF InterFreqCellID +CellsForInterFreqMeasList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF + InterFreqCellID-r12 + CellsForInterRATMeasList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF InterRATCellID @@ -24639,6 +26579,14 @@ CPICH-Ec-N0 ::= INTEGER (0..63) -- Values above Max are spare CPICH-RSCP ::= INTEGER (0..127) +CPICH-Ec-N0-RSCP ::= SEQUENCE { + cpich-Ec-N0 CPICH-Ec-N0, + cpich-RSCP CPICH-RSCP +} + +CSG-MemberPLMNList ::= SEQUENCE(SIZE (1..6)) OF + PLMN-Identity + CSGCellInfo ::= SEQUENCE { modeSpecificInfo CHOICE { fdd SEQUENCE { @@ -24826,6 +26774,10 @@ DopplerUncertainty ::= ENUMERATED { hz12-5, hz25, hz50, hz100, hz200, spare3, spare2, spare1 } +DopplerUncertaintyExt ::= ENUMERATED { + hz300, hz400, hz500, hz600, noInformation, + spare3, spare2, spare1 } + EllipsoidPoint ::= SEQUENCE { latitudeSign ENUMERATED { north, south }, latitude INTEGER (0..8388607), @@ -24883,6 +26835,9 @@ EnvironmentCharacterisation ::= ENUMERATED { notDefined, spare } +EUTRA-CSGMemberPLMNList ::= SEQUENCE(SIZE (1..5)) OF + PLMN-Identity + Eutra-EventResult ::= SEQUENCE { earfcn EARFCN, reportedCells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF @@ -24893,12 +26848,21 @@ EUTRA-EventResult-vb50ext ::= SEQUENCE { earfcn EARFCNExtension OPTIONAL } +EUTRA-EventResult-vc50ext ::= SEQUENCE { + earfcn EARFCNExtension2, + reportedCells SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF + EUTRA-PhysicalCellIdentity +} + Eutra-EventResultList ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF Eutra-EventResult EUTRA-EventResultList-vb50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF EUTRA-EventResult-vb50ext +EUTRA-EventResultList-vc50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs-ext)) OF + EUTRA-EventResult-vc50ext + EUTRA-EventResults ::= SEQUENCE { eventID EventIDInterRAT, eutra-EventResultsList Eutra-EventResultList @@ -24908,10 +26872,18 @@ EUTRA-EventResults-vb50ext ::= SEQUENCE { eutra-EventResultsList EUTRA-EventResultList-vb50ext } +EUTRA-EventResults-vc50ext ::= SEQUENCE { + eutra-EventResultsList EUTRA-EventResultList-vc50ext +} + EUTRA-EventResultsForCELLFACH ::= SEQUENCE { eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH)) } +EUTRA-EventResultsForCELLFACH-vc50ext ::= SEQUENCE { + eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH)) +} + EUTRA-FrequencyAndPriorityInfo ::= SEQUENCE { earfcn EARFCN, measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, @@ -24936,6 +26908,11 @@ EUTRA-FrequencyAndPriorityInfo-vb50ext ::= SEQUENCE { qqualMinEUTRA-WB INTEGER (-34..-3) OPTIONAL } +EUTRA-FrequencyAndPriorityInfo-vc50ext ::= SEQUENCE { + qqualMinRSRQ-OnAllSymbols INTEGER (-34..-3) OPTIONAL, + reducedMeasurementPerformance ENUMERATED {true} OPTIONAL +} + EUTRA-FrequencyAndPriorityInfoExtension-vb50ext ::= SEQUENCE { earfcn EARFCNExtension, measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, @@ -24953,9 +26930,24 @@ EUTRA-FrequencyAndPriorityInfoExtension-vb50ext ::= SEQUENCE { eutraDetection BOOLEAN } +EUTRA-FrequencyAndPriorityInfoExtension-vb80ext ::= SEQUENCE { + qqualMinEUTRA-WB INTEGER (-34..-3) OPTIONAL +} + +EUTRA-FrequencyAndPriorityInfoExtension-vc50ext ::= SEQUENCE { + qqualMinRSRQ-OnAllSymbols INTEGER (-34..-3) OPTIONAL, + reducedMeasurementPerformance ENUMERATED {true} OPTIONAL +} + EUTRA-FrequencyAndPriorityInfoExtensionList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF EUTRA-FrequencyAndPriorityInfoExtension-vb50ext +EUTRA-FrequencyAndPriorityInfoExtensionList-vb80ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF + EUTRA-FrequencyAndPriorityInfoExtension-vb80ext + +EUTRA-FrequencyAndPriorityInfoExtensionList-vc50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF + EUTRA-FrequencyAndPriorityInfoExtension-vc50ext + EUTRA-FrequencyAndPriorityInfoList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF EUTRA-FrequencyAndPriorityInfo @@ -24965,6 +26957,9 @@ EUTRA-FrequencyAndPriorityInfoList-v920ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFre EUTRA-FrequencyAndPriorityInfoList-vb50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF EUTRA-FrequencyAndPriorityInfo-vb50ext +EUTRA-FrequencyAndPriorityInfoList-vc50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF + EUTRA-FrequencyAndPriorityInfo-vc50ext + EUTRA-FrequencyList ::= SEQUENCE { eutraFrequencyRemoval EUTRA-FrequencyRemoval, eutraNewFrequencies EUTRA-FrequencyInfoList OPTIONAL @@ -24982,6 +26977,13 @@ EUTRA-FrequencyList-r11 ::= SEQUENCE { eutraSIAcquisition EUTRA-SIAcquisition-r11 OPTIONAL } +EUTRA-FrequencyList-r12 ::= SEQUENCE { + eutraFrequencyRemoval EUTRA-FrequencyRemoval-r11, + eutraNewFrequencies EUTRA-FrequencyInfoList-r12 OPTIONAL, + eutraSIAcquisition EUTRA-SIAcquisition-r11 OPTIONAL, + rsrqMeasOnAllSymbols BOOLEAN OPTIONAL +} + EUTRA-SIAcquisition ::= SEQUENCE { earfcn EARFCN, physicalCellIdentity EUTRA-PhysicalCellIdentity @@ -25029,19 +27031,39 @@ EUTRA-MeasuredCells-v920ext ::= SEQUENCE { eutraSIacquisitionResults EUTRA-SIacquisitionResults } +EUTRA-MeasuredCells-vc50ext ::= SEQUENCE { + physicalCellIdentity EUTRA-PhysicalCellIdentity OPTIONAL, + rSRP INTEGER (0..97) OPTIONAL, + rSRQ INTEGER (0..33) OPTIONAL, + eutraSIacquisitionResults EUTRA-SIacquisitionResults-vc50ext, + rsrqExtension INTEGER (-30..46) OPTIONAL +} + Eutra-MeasuredResult-v920ext ::= SEQUENCE { measuredEUTRACells-v920ext SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF EUTRA-MeasuredCells-v920ext } +Eutra-MeasuredResult-vc50ext ::= SEQUENCE { + earfcn EARFCNExtension2 OPTIONAL, + measuredEUTRACells-vc50ext SEQUENCE (SIZE (1..maxReportedEUTRACellPerFreq)) OF + EUTRA-MeasuredCells-vc50ext +} + Eutra-MeasuredResultList-v920ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF Eutra-MeasuredResult-v920ext +Eutra-MeasuredResultList-vc50ext ::= SEQUENCE (SIZE (1..maxReportedEUTRAFreqs)) OF + Eutra-MeasuredResult-vc50ext EUTRA-MeasuredResults-v920ext ::= SEQUENCE { eutraMeasuredResultList-v920ext Eutra-MeasuredResultList-v920ext } +EUTRA-MeasuredResults-vc50ext ::= SEQUENCE { + eutraMeasuredResultList-vc50ext Eutra-MeasuredResultList-vc50ext +} + EUTRA-SIacquisitionResults ::= SEQUENCE { cgiInfo SEQUENCE { plmn-Identity PLMN-Identity, @@ -25052,6 +27074,20 @@ EUTRA-SIacquisitionResults ::= SEQUENCE { csgMemberIndication ENUMERATED { member } OPTIONAL } +EUTRA-SIacquisitionResults-vc50ext ::= SEQUENCE { + cgiInfo CGI-Info OPTIONAL, + csgIdentity CSG-Identity OPTIONAL, + csgMemberIndication ENUMERATED { member } OPTIONAL, + csgMemberPLMN EUTRA-CSGMemberPLMNList OPTIONAL, + primaryPLMNSuitable ENUMERATED { true } OPTIONAL +} + +CGI-Info ::= SEQUENCE { + plmn-Identity PLMN-Identity, + cellIdentity BIT STRING (SIZE (28)), + trackingAreaCode BIT STRING (SIZE (16)) +} + EUTRA-FrequencyRemoval ::= CHOICE { removeAllFrequencies NULL, removeSomeFrequencies SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF @@ -25071,6 +27107,9 @@ EUTRA-FrequencyInfoList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF EUTRA-FrequencyInfoList-r11 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF EUTRA-FrequencyInfo-r11 +EUTRA-FrequencyInfoList-r12 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF + EUTRA-FrequencyInfo-r12 + EUTRA-FrequencyInfo ::= SEQUENCE { earfcn EARFCN, measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, @@ -25087,6 +27126,14 @@ EUTRA-FrequencyInfo-r11 ::= SEQUENCE { widebandRSRQMeasurements ENUMERATED {true} OPTIONAL } +EUTRA-FrequencyInfo-r12 ::= SEQUENCE { + earfcn EARFCNExtension2, + reducedMeasurementPerformance ENUMERATED {true} OPTIONAL, + measurementBandwidth EUTRA-MeasurementBandwidth OPTIONAL, + eutra-blackListedCellList EUTRA-BlacklistedCellPerFreqList OPTIONAL, + widebandRSRQMeasurements ENUMERATED {true} OPTIONAL +} + EUTRA-FrequencyRACHReportingInfo ::= SEQUENCE { eutra-FrequencyListIndicator BIT STRING (SIZE (maxNumEUTRAFreqs)), eutra-FrequencyRepQuantityRACH ENUMERATED { rsrp, rsrq }, @@ -25097,6 +27144,11 @@ EUTRA-FrequencyRACHReportingInfo ::= SEQUENCE { spare2, spare1 } OPTIONAL } +EUTRA-FrequencyRACHReportingInfo-vc50ext ::= SEQUENCE { + eutra-FrequencyListIndicator BIT STRING (SIZE (maxNumEUTRAFreqs)), + eutra-FrequencyRACHReportingThresholdExtension INTEGER (-30..-1) OPTIONAL +} + EUTRA-MeasurementBandwidth ::= ENUMERATED { mbw6, mbw15, mbw25, mbw50, mbw75, mbw100 } EUTRA-MeasurementForCELLFACH ::= SEQUENCE { @@ -25107,6 +27159,13 @@ EUTRA-MeasurementForCELLFACH ::= SEQUENCE { reportingThreshold INTEGER (0..97) } +EUTRA-MeasurementForCELLFACH-r12 ::= SEQUENCE { + eutraFrequenciesForMeasurement SEQUENCE (SIZE (1..maxNumEUTRAFreqs-FACH-ext)) OF + EARFCNRange, + reportCriteria ENUMERATED { event-triggeredreporting, periodicalReporting }, + measurementQuantity ENUMERATED { rsrp, rsrq }, + reportingThreshold INTEGER (-30..97) +} FrequenciesToRemove ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF EARFCNRange @@ -25398,6 +27457,14 @@ Event2f-r10 ::= SEQUENCE { reportingCellStatus ReportingCellStatus-r10 OPTIONAL } + +Event2g ::= SEQUENCE { + hysteresis HysteresisInterFreq, + timeToTrigger TimeToTrigger, + reportingCellStatus ReportingCellStatus-r10 OPTIONAL, + useCIO ENUMERATED {true} OPTIONAL +} + Event3a ::= SEQUENCE { thresholdOwnSystem Threshold, w W, @@ -25428,8 +27495,32 @@ Event3d ::= SEQUENCE { reportingCellStatus ReportingCellStatus OPTIONAL } +Event3a-r12 ::= SEQUENCE { + thresholdOwnSystem Threshold, + w W, + thresholdOtherSystem Threshold-r12, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + reportingCellStatus ReportingCellStatus OPTIONAL +} + +Event3b-r12 ::= SEQUENCE { + thresholdOtherSystem Threshold-r12, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + reportingCellStatus ReportingCellStatus OPTIONAL + +} + +Event3c-r12 ::= SEQUENCE { + thresholdOtherSystem Threshold-r12, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + reportingCellStatus ReportingCellStatus OPTIONAL +} + EventIDInterFreq ::= ENUMERATED { - e2a, e2b, e2c, e2d, e2e, e2f, spare2, spare1 } + e2a, e2b, e2c, e2d, e2e, e2f, e2g, spare1 } EventIDInterRAT ::= ENUMERATED { e3a, e3b, e3c, e3d } @@ -25475,12 +27566,27 @@ ExtraDoppler ::= SEQUENCE { spare3, spare2, spare1 } } +ExtraDopplerExtension ::= SEQUENCE { + -- Doppler 1st order term, -0.2..+0.1 m/s2 + -- ( = -42..+21 with 1/210 m/s2 resolution) + dopplerFirstOrder INTEGER (-42.. 21), + dopplerUncertaintyExt ENUMERATED { dopU60, dopU80, dopU100, dopU120, + noInformation, spare3, spare2, spare1 } +} + + ExtraDopplerInfo ::= SEQUENCE { -- Actual value doppler1stOrder = IE value * 0.023 doppler1stOrder INTEGER (-42..21), dopplerUncertainty DopplerUncertainty } +ExtraDopplerInfoExtension ::= SEQUENCE { + -- Actual value doppler1stOrder = IE value * 0.023 + doppler1stOrder INTEGER (-42..21), + dopplerUncertaintyExt DopplerUncertaintyExt +} + FACH-MeasurementOccasionInfo ::= SEQUENCE { fACH-meas-occasion-coeff INTEGER (1..12) OPTIONAL, inter-freq-FDD-meas-ind BOOLEAN, @@ -25500,6 +27606,15 @@ FilterCoefficient ::= ENUMERATED { fc6, fc7, fc8, fc9, fc11, fc13, fc15, fc17, fc19, spare1 } +FilteredUEPowerHeadroomReportInfo ::= SEQUENCE { + timeToTrigger TimeToTrigger, + hysteresis1 Hysteresis OPTIONAL, + hysteresis2 Hysteresis OPTIONAL, + uePowerHeadroomThreshold1 UE-PowerHeadroomThreshold OPTIONAL, + uePowerHeadroomThreshold2 UE-PowerHeadroomThreshold OPTIONAL, + filterCoefficient FilterCoefficient OPTIONAL +} + -- Actual value FineSFN-SFN = IE value * 0.0625 FineSFN-SFN ::= INTEGER (0..15) @@ -25620,6 +27735,18 @@ GANSSGenericData-va40ext ::= SEQUENCE { uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-va40ext OPTIONAL } +GANSSGenericData-vc50ext ::= SEQUENCE { + uePositioningDBDSCorrections UE-Positioning-DBDSCorrections OPTIONAL, + uePositioningBDSIonoGridModel UE-Positioning-BDS-IonoGridModel OPTIONAL, + ue-positioning-GANSS-AddNavigationModels + UE-Positioning-GANSS-AddNavigationModels-vc50ext + OPTIONAL, uePositioningGANSSReferenceMeasurementInfo + UE-Positioning-GANSS-ReferenceMeasurementInfo-vc50ext + OPTIONAL, + ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-vc50ext OPTIONAL, + ue-Positioning-GANSS-AddUTCModels UE-Positioning-GANSS-AddUTCModels-vc50ext OPTIONAL +} + GANSSGenericData-r10 ::= SEQUENCE { ganssId INTEGER (0..7) OPTIONAL, uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, @@ -25639,6 +27766,27 @@ GANSSGenericData-r10 ::= SEQUENCE { uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL } +GANSSGenericData-r12 ::= SEQUENCE { + ganssId INTEGER (0..7) OPTIONAL, + uePositiningGANSSsbasID UE-Positioning-GANSS-SBAS-ID OPTIONAL, + ganssTimeModelsList GANSSTimeModelsList-r10 OPTIONAL, + uePositioningDGANSSCorrections UE-Positioning-DGANSSCorrections-r9 OPTIONAL, + uePositioningDBDSCorrections UE-Positioning-DBDSCorrections OPTIONAL, + uePositioningBDSIonoGridModel UE-Positioning-BDS-IonoGridModel OPTIONAL, + uePositioningGANSSNavigationModel UE-Positioning-GANSS-NavigationModel OPTIONAL, + uePositioningGANSSAddNavigationModels UE-Positioning-GANSS-AddNavigationModels-r12 + OPTIONAL, + uePositioningGANSSRealTimeIntegrity UE-Positioning-GANSS-RealTimeIntegrity OPTIONAL, + uePositioningGANSSDataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance OPTIONAL, + uePositioningGANSSReferenceMeasurementInfo + UE-Positioning-GANSS-ReferenceMeasurementInfo-r12 + OPTIONAL, + uePositioningGANSSAlmanac UE-Positioning-GANSS-Almanac-r12 OPTIONAL, + uePositioningGANSSUTCModel UE-Positioning-GANSS-UTCModel OPTIONAL, + uePositioningGANSSAddUTCModels UE-Positioning-GANSS-AddUTCModels-r12 OPTIONAL, + uePositioningGANSSAuxiliaryInfo UE-Positioning-GANSS-AuxiliaryInfo OPTIONAL +} + GANSSGenericDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF GANSSGenericData @@ -25657,9 +27805,15 @@ GANSSGenericDataList-v920ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF GANSSGenericDataList-va40ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF GANSSGenericData-va40ext +GANSSGenericDataList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF + GANSSGenericData-vc50ext + GANSSGenericDataList-r10 ::= SEQUENCE (SIZE (1..maxGANSS)) OF GANSSGenericData-r10 +GANSSGenericDataList-r12 ::= SEQUENCE (SIZE (1..maxGANSS)) OF + GANSSGenericData-r12 + GANSSGenericMeasurementInfo ::= SEQUENCE (SIZE (1..maxGANSS)) OF SEQUENCE { ganssId INTEGER (0..7) OPTIONAL, ganssMeasurementSignalList GANSSMeasurementSignalList @@ -25735,12 +27889,20 @@ GanssReqGenericData-v860ext ::= SEQUENCE { } OPTIONAL } +GanssReqGenericData-vc50ext ::= SEQUENCE { + bdsIonoGridModelReq ENUMERATED { true } OPTIONAL, + bdsCorrectionsReq DGANSS-Sig-Id-Req OPTIONAL +} + GanssRequestedGenericAssistanceDataList ::= SEQUENCE (SIZE (1..maxGANSS)) OF GanssReqGenericData GanssRequestedGenericAssistanceDataList-v860ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF GanssReqGenericData-v860ext +GanssRequestedGenericAssistanceDataList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSS)) OF + GanssReqGenericData-vc50ext + GANSSSatelliteInformation ::= SEQUENCE { ganssSatId INTEGER (0..63), dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s @@ -25765,6 +27927,22 @@ GANSSSatelliteInformation-r10 ::= SEQUENCE { azimuthandElevation AzimuthAndElevation-r10 OPTIONAL } +GANSSSatelliteInformation-vc50ext ::= SEQUENCE { + extraDopplerExtension ExtraDopplerExtension OPTIONAL +} + +GANSSSatelliteInformation-r12 ::= SEQUENCE { + ganssSatId INTEGER (0..63), + dopplerZeroOrder INTEGER (-2048..2047), -- scale factor 0.5m/s + extraDoppler ExtraDoppler OPTIONAL, +-- If the extraDopplerExtension is present, the extraDoppler should not be present + extraDopplerExtension ExtraDopplerExtension OPTIONAL, + codePhase INTEGER (0..1023), + integerCodePhase INTEGER (0..127), + codePhaseSearchWindow BIT STRING (SIZE (5)), + azimuthandElevation AzimuthAndElevation-r10 OPTIONAL +} + GANSSSatelliteInformationList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSSSatelliteInformation @@ -25774,6 +27952,12 @@ GANSSSatelliteInformationList-va40ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSSSatelliteInformationList-r10 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSSSatelliteInformation-r10 +GANSSSatelliteInformationList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF + GANSSSatelliteInformation-vc50ext + +GANSSSatelliteInformationList-r12 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF + GANSSSatelliteInformation-r12 + GANSSTimeModelsList ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF UE-Positioning-GANSS-TimeModel @@ -25783,6 +27967,21 @@ GANSSTimeModelsList-va40ext ::= SEQUENCE (SIZE (1.. maxGANSS-1)) OF GANSSTimeModelsList-r10 ::= SEQUENCE (SIZE (1..maxGANSS-1)) OF UE-Positioning-GANSS-TimeModel-r10 +GANSS-SAT-Info-Almanac-BDSkp ::= SEQUENCE { + svID INTEGER(0..63), + bdsAlmToa BIT STRING (SIZE (8)), + bdsAlmSqrtA BIT STRING (SIZE (24)), + bdsAlmE BIT STRING (SIZE (17)), + bdsAlmW BIT STRING (SIZE (24)), + bdsAlmM0 BIT STRING (SIZE (24)), + bdsAlmOmega0 BIT STRING (SIZE (24)), + bdsAlmOmegaDot BIT STRING (SIZE (17)), + bdsAlmDeltaI BIT STRING (SIZE (16)), + bdsAlmA0 BIT STRING (SIZE (11)), + bdsAlmA1 BIT STRING (SIZE (11)), + bdsSvHealth BIT STRING (SIZE(9)) OPTIONAL +} + GANSS-SAT-Info-Almanac-GLOkp ::= SEQUENCE { gloAlmNA BIT STRING (SIZE (11)), gloAlmnA BIT STRING (SIZE (5)), @@ -25804,13 +28003,14 @@ GANSS-SAT-Info-Almanac-Kp ::= SEQUENCE { ganss-alm-e BIT STRING (SIZE (11)), ganss-delta-I-alm BIT STRING (SIZE (11)), ganss-omegadot-alm BIT STRING (SIZE (11)), - ganss-svhealth-alm BIT STRING (SIZE (4)), - ganss-delta-a-sqrt-alm BIT STRING (SIZE (17)), + ganss-svstatusINAV-alm BIT STRING (SIZE (4)), + ganss-svstatusFNAV-alm BIT STRING (SIZE (2)) OPTIONAL, + ganss-delta-a-sqrt-alm BIT STRING (SIZE (13)), ganss-omegazero-alm BIT STRING (SIZE (16)), ganss-m-zero-alm BIT STRING (SIZE (16)), ganss-omega-alm BIT STRING (SIZE (16)), - ganss-af-zero-alm BIT STRING (SIZE (14)), - ganss-af-one-alm BIT STRING (SIZE (11)) + ganss-af-zero-alm BIT STRING (SIZE (16)), + ganss-af-one-alm BIT STRING (SIZE (13)) } GANSS-SAT-Info-Almanac-MIDIkp ::= SEQUENCE { @@ -25866,6 +28066,9 @@ GANSS-SAT-Info-Almanac-SBASecef ::= SEQUENCE { sbasAlmTo BIT STRING (SIZE (11)) } +GANSS-SAT-Info-Almanac-BDSkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF + GANSS-SAT-Info-Almanac-BDSkp + GANSS-SAT-Info-Almanac-GLOkpList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF GANSS-SAT-Info-Almanac-GLOkp @@ -25892,9 +28095,22 @@ Ganss-Sat-Info-AddNav ::= SEQUENCE { ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels } +Ganss-Sat-Info-AddNav-r12 ::= SEQUENCE { + satId INTEGER (0..63), + svHealth BIT STRING (SIZE (6)), + iod BIT STRING (SIZE (11)), + ganssClockModel UE-Positioning-GANSS-AddClockModels-r12, + ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels-r12 +} + +Ganss-Sat-Info-AddNav-vc50ext ::= SEQUENCE { + ganssClockModel UE-Positioning-GANSS-AddClockModels-vc50ext, + ganssOrbitModel UE-Positioning-GANSS-AddOrbitModels-vc50ext +} + Ganss-Sat-Info-Nav ::= SEQUENCE { satId INTEGER (0..63), - svHealth BIT STRING (SIZE (5)), + svHealth BIT STRING (SIZE (9)), iod BIT STRING (SIZE (10)), ganssClockModel UE-Positioning-GANSS-ClockModel, ganssOrbitModel UE-Positioning-GANSS-OrbitModel @@ -25903,6 +28119,12 @@ Ganss-Sat-Info-Nav ::= SEQUENCE { Ganss-Sat-Info-AddNavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF Ganss-Sat-Info-AddNav +Ganss-Sat-Info-AddNavList-r12 ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF + Ganss-Sat-Info-AddNav-r12 + +Ganss-Sat-Info-AddNavList-vc50ext ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF + Ganss-Sat-Info-AddNav-vc50ext + Ganss-Sat-Info-NavList ::= SEQUENCE (SIZE (1..maxGANSSSat)) OF Ganss-Sat-Info-Nav @@ -26095,6 +28317,8 @@ InterFreqCell-LCR-r4 ::= SEQUENCE { InterFreqCellID ::= INTEGER (0..maxCellMeas-1) +InterFreqCellID-r12 ::= INTEGER (0..maxCellMeas-ext-1) + InterFreqCellInfoList ::= SEQUENCE { removedInterFreqCellList RemovedInterFreqCellList OPTIONAL, newInterFreqCellList NewInterFreqCellList OPTIONAL, @@ -26129,6 +28353,15 @@ InterFreqCellInfoList-r10 ::= SEQUENCE { interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL } +InterFreqCellInfoList-r12 ::= SEQUENCE { + removedInterFreqCellList RemovedInterFreqCellList-r12 OPTIONAL, + newInterFreqCellList NewInterFreqCellList-r12 OPTIONAL, + cellsForInterFreqMeasList CellsForInterFreqMeasList-r12 OPTIONAL, + cSGInterFreqCellInfoList CSGInterFreqCellInfoList OPTIONAL, + interFreqSIAcquisition InterFreqSIAcquisition OPTIONAL, + rmp-Frequency-List RMP-Frequency-List OPTIONAL +} + InterFreqSIAcquisition ::= SEQUENCE { frequencyInfo FrequencyInfo, modeSpecificInfo CHOICE { @@ -26190,6 +28423,9 @@ InterFreqCellMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF InterFreqCellMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellMeasuredResults-v920ext +InterFreqCellMeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF + CellMeasuredResults-vc50ext + InterFreqEvent ::= CHOICE { event2a Event2a, event2b Event2b, @@ -26226,6 +28462,16 @@ InterFreqEvent-r11 ::= CHOICE { event2f Event2f-r10 } +InterFreqEvent-r12 ::= CHOICE { + event2a Event2a-r11, + event2b Event2b-r11, + event2c Event2c-r11, + event2d Event2d-r10, + event2e Event2e-r11, + event2f Event2f-r10, + event2g Event2g +} + InterFreqEventList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF InterFreqEvent @@ -26238,6 +28484,10 @@ InterFreqEventList-r10 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF InterFreqEventList-r11 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF InterFreqEvent-r11 + +InterFreqEventList-r12 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF + InterFreqEvent-r12 + --Following IE shall be used regardless of CPICH RSCP(FDD) or Primary CCPCH RSCP(TDD) --The order of the list corresponds to the order of the cells in InterFrequencyMeasuredResultsList --The IE is only used for measured results and not for additional measured results. @@ -26308,6 +28558,9 @@ InterFreqMeasuredResults ::= SEQUENCE { InterFreqMeasuredResults-v920ext ::= SEQUENCE { interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList-v920ext OPTIONAL } +InterFreqMeasuredResults-vc50ext ::= SEQUENCE { + interFreqCellMeasuredResultsList InterFreqCellMeasuredResultsList-vc50ext OPTIONAL +} InterFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqMeasuredResults @@ -26315,6 +28568,9 @@ InterFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqMeasuredResults-v920ext +InterFreqMeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqMeasuredResults-vc50ext + InterFreqMeasurementSysInfo-RSCP ::= SEQUENCE { interFreqCellInfoSI-List InterFreqCellInfoSI-List-RSCP OPTIONAL } @@ -26350,6 +28606,9 @@ InterFreqMeasurementSysInfo-HCS-ECN0-LCR-r4 ::= SEQUENCE { InterFreqRACHRepCellsList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCellID +InterFreqRACHRepCellsList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF +InterFreqCellID-r12 + Dummy-InterFreqRACHReportingInfo ::= SEQUENCE { modeSpecificInfo CHOICE { fdd SEQUENCE { @@ -26376,6 +28635,14 @@ InterFreqRACHReportingInfo ::= SEQUENCE { maxReportedCellsOnRACHinterFreq MaxReportedCellsOnRACHinterFreq } +InterFreqBlacklistedCellsList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqBlacklistedCells-r12 + +InterFreqBlacklistedCells-r12 ::= SEQUENCE { + frequencyInfo FrequencyInfo, + excludedCellInfoList CellInfoListToBeExcluded +} + InterFreqReportCriteria ::= CHOICE { intraFreqReportingCriteria IntraFreqReportingCriteria, interFreqReportingCriteria InterFreqReportingCriteria, @@ -26425,6 +28692,14 @@ InterFreqReportCriteria-r11 ::= CHOICE { noReporting ReportingCellStatusOpt-r10 } + +InterFreqReportCriteria-r12 ::= CHOICE { + intraFreqReportingCriteria IntraFreqReportingCriteria-r11, + interFreqReportingCriteria InterFreqReportingCriteria-r12, + periodicalReportingCriteria PeriodicalWithReportingCellStatus-r10, + noReporting ReportingCellStatusOpt-r10 +} + InterFreqReportingCriteria ::= SEQUENCE { interFreqEventList InterFreqEventList OPTIONAL } @@ -26441,6 +28716,11 @@ InterFreqReportingCriteria-r11 ::= SEQUENCE { interFreqEventList InterFreqEventList-r11 OPTIONAL } +InterFreqReportingCriteria-r12 ::= SEQUENCE { + interFreqEventList InterFreqEventList-r12 OPTIONAL, + interFreqBlacklistedCellsList InterFreqBlacklistedCellsList-r12 OPTIONAL +} + InterFreqReportingQuantity ::= SEQUENCE { utra-Carrier-RSSI BOOLEAN, frequencyQualityEstimate BOOLEAN, @@ -26541,6 +28821,19 @@ InterFrequencyMeasurement-r11 ::= SEQUENCE { reportCriteria InterFreqReportCriteria-r11 } + +InterFrequencyMeasurement-r12 ::= SEQUENCE { + interFreqCellInfoList InterFreqCellInfoList-r12, + interFreqMeasQuantity InterFreqMeasQuantity OPTIONAL, + interFreqReportingQuantity InterFreqReportingQuantity OPTIONAL, + measurementValidity MeasurementValidity OPTIONAL, + interFreqSetUpdate UE-AutonomousUpdateMode OPTIONAL, + adjacentFrequencyIndex INTEGER (0..79) OPTIONAL, + interBandFrequencyIndex INTEGER (0..79) OPTIONAL, + freqIndexListForEnhancedMeas FreqIndexListForEnhancedMeas-r12 OPTIONAL, + reportCriteria InterFreqReportCriteria-r12 +} + InterRAT-TargetCellDescription ::= SEQUENCE { technologySpecificInfo CHOICE { gsm SEQUENCE { @@ -26596,9 +28889,19 @@ InterRATEvent ::= CHOICE { event3d Event3d } +InterRATEvent-r12 ::= CHOICE { + event3a Event3a-r12, + event3b Event3b-r12, + event3c Event3c-r12, + event3d Event3d +} + InterRATEventList ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF InterRATEvent +InterRATEventList-r12 ::= SEQUENCE (SIZE (1..maxMeasEvent)) OF + InterRATEvent-r12 + InterRATEventResults ::= SEQUENCE { eventID EventIDInterRAT, cellToReportList CellToReportList @@ -26720,6 +29023,18 @@ InterRATMeasurement-r11 ::= SEQUENCE { idleIntervalInfo IdleIntervalInfo OPTIONAL } +InterRATMeasurement-r12 ::= SEQUENCE { + interRATMeasurementObjects CHOICE { + interRATCellInfoList InterRATCellInfoList-r6, + eutra-FrequencyList EUTRA-FrequencyList-r12 + } OPTIONAL, + interRATMeasQuantity InterRATMeasQuantity-r8 OPTIONAL, + interRATReportingQuantity InterRATReportingQuantity-r8 OPTIONAL, + reportCriteria InterRATReportCriteria-r12, + idleIntervalInfo IdleIntervalInfo OPTIONAL +} + + InterRATMeasurementSysInfo ::= SEQUENCE { interRATCellInfoList InterRATCellInfoList OPTIONAL } @@ -26734,10 +29049,20 @@ InterRATReportCriteria ::= CHOICE { noReporting ReportingCellStatusOpt } +InterRATReportCriteria-r12 ::= CHOICE { + interRATReportingCriteria InterRATReportingCriteria-r12, + periodicalReportingCriteria PeriodicalWithReportingCellStatus, + noReporting ReportingCellStatusOpt +} + InterRATReportingCriteria ::= SEQUENCE { interRATEventList InterRATEventList OPTIONAL } +InterRATReportingCriteria-r12 ::= SEQUENCE { + interRATEventList InterRATEventList-r12 OPTIONAL +} + InterRATReportingQuantity ::= SEQUENCE { utran-EstimatedQuality BOOLEAN, ratSpecificInfo CHOICE { @@ -27052,6 +29377,8 @@ IntraFreqMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF IntraFreqMeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellMeasuredResults-v920ext +IntraFreqMeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF + CellMeasuredResults-vc50ext IntraFreqMeasurementSysInfo-RSCP ::= SEQUENCE { intraFreqMeasurementID MeasurementIdentity DEFAULT 1, @@ -27214,6 +29541,11 @@ IntraFreqReportingQuantityForRACH ::= SEQUENCE { } } +IntraFreqReportingQuantityForRACH-vc50ext ::= SEQUENCE { + intraFreqRepQuantityRACH-FDD ENUMERATED { + cpich-EcN0-RSCP, spare1} +} + IntraFreqRepQuantityRACH-FDD ::= ENUMERATED { cpich-EcN0, cpich-RSCP, pathloss, noReport } @@ -27291,6 +29623,9 @@ IntraFrequencyMeasurement-r11 ::= SEQUENCE { IntraFrequencyMeasuredResultsListOnSecULFreq ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) OF CellMeasuredResults-r9 +IntraFrequencyMeasuredResultsListOnSecULFreq-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeasOnSecULFreq)) + OF CellMeasuredResults-vc50ext + IntraUTRAANR ::= SEQUENCE { loggingAbsoluteThreshold LoggingAbsoluteThreshold, loggingRelativeThreshold LoggingRelativeThreshold OPTIONAL @@ -27358,6 +29693,21 @@ LoggedConnectionEstablishmentFailureInfo-FDD ::= SEQUENCE { LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL } +LoggedConnectionEstablishmentFailureInfo-FDD-vc50ext ::= SEQUENCE { + loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL +} + +LoggedConnectionEstablishmentFailureInfo-FDD-r11 ::= SEQUENCE { + loggedConnectionEstablishmentFailureAccessInfo-FDD + LoggedConnectionEstablishmentFailureAccessInfo-FDD, + loggedMeasFailedCellMeas LoggedMeasServingCellMeas-FDD, + loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourList-FDD OPTIONAL, + loggedMeasInterfreqList LoggedMeasInterfreqList-FDD OPTIONAL, + loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-r11 OPTIONAL, + loggedConnectionEstablishmentFailureLocationInfo + LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL +} + LoggedConnectionEstablishmentFailureInfo-TDD128 ::= SEQUENCE { loggedConnectionEstablishmentFailureAccessInfo-TDD LoggedConnectionEstablishmentFailureAccessInfo-TDD, @@ -27369,6 +29719,22 @@ LoggedConnectionEstablishmentFailureInfo-TDD128 ::= SEQUENCE { LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL } +LoggedConnectionEstablishmentFailureInfo-TDD128-r11 ::= SEQUENCE { + loggedConnectionEstablishmentFailureAccessInfo-TDD + LoggedConnectionEstablishmentFailureAccessInfo-TDD, + loggedMeasFailedCellMeas LoggedMeasServingCellMeas-TDD128, + loggedMeasIntrafreqNeighbourList LoggedMeasIntrafreqNeighbourMeasList-TDD128 OPTIONAL, + loggedMeasInterfreqList LoggedMeasInterfreqList-TDD128 OPTIONAL, + loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-r11 OPTIONAL, + loggedConnectionEstablishmentFailureLocationInfo + LoggedConnectionEstablishmentFailureLocationInfo OPTIONAL +} + +LoggedConnectionEstablishmentFailureInfo-TDD128-vc50ext ::= SEQUENCE { + loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL +} + + LoggedConnectionEstablishmentFailureAccessInfo-FDD ::= SEQUENCE { numberOfRRCMsgTransmitted INTEGER (0..8) } @@ -27404,6 +29770,34 @@ ConnectionEstablishmentFailureReport ::= SEQUENCE { } } +ConnectionEstablishmentFailureReport-r11 ::= SEQUENCE { + timeSinceFailure INTEGER (0..172800), + modeSpecificInfo CHOICE { + fdd SEQUENCE { + loggedConnectionEstablishmentFailureInfo + LoggedConnectionEstablishmentFailureInfo-FDD-r11 + }, + tdd SEQUENCE { + loggedConnectionEstablishmentFailureInfo + LoggedConnectionEstablishmentFailureInfo-TDD128-r11 + } + } +} + +ConnectionEstablishmentFailureReport-vc50ext ::= SEQUENCE { + modeSpecificInfo CHOICE { + fdd SEQUENCE { + loggedConnectionEstablishmentFailureInfo + LoggedConnectionEstablishmentFailureInfo-FDD-vc50ext + }, + tdd SEQUENCE { + loggedConnectionEstablishmentFailureInfo + LoggedConnectionEstablishmentFailureInfo-TDD128-vc50ext + } + + } +} + LoggedEUTRACellInfo ::= SEQUENCE { plmn-Identity PLMN-Identity, trackingAreaCode BIT STRING (SIZE (16)), @@ -27482,6 +29876,15 @@ LoggedMeasInterRATNeighbourMeas-vb50ext ::= SEQUENCE { loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-vb50ext } +LoggedMeasInterRATNeighbourMeas-vc50ext ::= SEQUENCE { + loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-vc50ext OPTIONAL +} + +LoggedMeasInterRATNeighbourMeas-r11 ::= SEQUENCE { + loggedMeasEUTRAFreqList LoggedMeasEUTRAFreqList-r11 OPTIONAL, + loggedMeasGSMNeighbourCellsList LoggedMeasGSMNeighbourCellsList OPTIONAL +} + LoggedMeasIntrafreqNeighbourList-FDD ::= SEQUENCE (SIZE (1..maxnumLoggedMeas)) OF LoggedMeasNeighbourInfo-FDD @@ -27515,6 +29918,12 @@ LoggedMeasEUTRAFreqList ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs))OF LoggedMeasEUTRAFreqList-vb50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF LoggedMeasEUTRAFreqInfo-vb50ext +LoggedMeasEUTRAFreqList-r11 ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF + LoggedMeasEUTRAFreqInfo-r11 + +LoggedMeasEUTRAFreqList-vc50ext ::= SEQUENCE (SIZE (1..maxNumEUTRAFreqs)) OF + LoggedMeasEUTRAFreqInfo-vc50ext + LoggedMeasEUTRAFreqInfo ::= SEQUENCE { earfcn EARFCN, loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF @@ -27525,12 +29934,28 @@ LoggedMeasEUTRAFreqInfo-vb50ext ::= SEQUENCE { earfcn EARFCNExtension OPTIONAL } +LoggedMeasEUTRAFreqInfo-r11 ::= SEQUENCE { + earfcn EARFCNRange, + loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF + LoggedMeasEUTRAFreqNeighbourInfo +} + +LoggedMeasEUTRAFreqInfo-vc50ext ::= SEQUENCE { + rSRQType RsrqType OPTIONAL, + loggedMeasEUTRAFreqNeighbourInfoList SEQUENCE (SIZE (1.. maxnumLoggedMeas)) OF + LoggedMeasEUTRAFreqNeighbourInfo-vc50ext +} + LoggedMeasEUTRAFreqNeighbourInfo ::= SEQUENCE { physicalCellIdentity EUTRA-PhysicalCellIdentity, rSRP INTEGER (0..97) , rSRQ INTEGER (0..33) } +LoggedMeasEUTRAFreqNeighbourInfo-vc50ext ::= SEQUENCE { + rSRQExtension INTEGER (-30..46) OPTIONAL +} + LoggedMeasInfo-FDD ::= SEQUENCE { relativeTimeStamp INTEGER (0..7200), loggedMeasServingCellMeas LoggedMeasServingCellMeas-FDD, @@ -27546,6 +29971,10 @@ LoggedMeasInfo-FDD-vb50ext ::= SEQUENCE { loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL } +LoggedMeasInfo-FDD-vc50ext ::= SEQUENCE { + loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL +} + LoggedMeasInfo-TDD128 ::= SEQUENCE { relativeTimeStamp INTEGER (0..7200), loggedMeasServingCellMeas LoggedMeasServingCellMeas-TDD128, @@ -27561,14 +29990,22 @@ LoggedMeasInfo-TDD128-vb50ext ::= SEQUENCE { loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vb50ext OPTIONAL } +LoggedMeasInfo-TDD128-vc50ext ::= SEQUENCE { + loggedMeasInterRATNeighbourMeas LoggedMeasInterRATNeighbourMeas-vc50ext OPTIONAL +} + LoggedMeasInfoList-FDD ::= SEQUENCE (SIZE (1.. maxLoggedMeasReport)) OF LoggedMeasInfo-FDD LoggedMeasInfoList-FDD-vb50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-FDD-vb50ext +LoggedMeasInfoList-FDD-vc50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-FDD-vc50ext + LoggedMeasInfoList-TDD128 ::= SEQUENCE (SIZE (1.. maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128 LoggedMeasInfoList-TDD128-vb50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128-vb50ext +LoggedMeasInfoList-TDD128-vc50ext ::= SEQUENCE (SIZE (1..maxLoggedMeasReport)) OF LoggedMeasInfo-TDD128-vc50ext + LoggedMeasInfoList ::= SEQUENCE { modeSpecificInfo CHOICE { fdd SEQUENCE { @@ -27591,6 +30028,17 @@ LoggedMeasInfoList-vb50ext ::= SEQUENCE { } } +LoggedMeasInfoList-vc50ext ::= SEQUENCE { + modeSpecificInfo CHOICE { + fdd SEQUENCE { + loggedMeasInfoList LoggedMeasInfoList-FDD-vc50ext + }, + tdd SEQUENCE { + loggedMeasInfoList LoggedMeasInfoList-TDD128-vc50ext + } + } +} + LoggedMeasInterfreqList-TDD128 ::= SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF LoggedMeasInterfreqInfo-TDD128 @@ -27621,6 +30069,10 @@ LoggedMeasReport-vb50ext ::= SEQUENCE { loggedMeasInfoList LoggedMeasInfoList-vb50ext OPTIONAL } +LoggedMeasReport-vc50ext ::= SEQUENCE { + loggedMeasInfoList LoggedMeasInfoList-vc50ext OPTIONAL +} + LoggedMeasServingCellMeas-FDD ::= SEQUENCE { cellIdentity CellIdentity, cpich-RSCP CPICH-RSCP, @@ -27718,6 +30170,10 @@ MeasuredResultsOnSecUlFreq ::= SEQUENCE { intraFreqMeasuredResultsList IntraFrequencyMeasuredResultsListOnSecULFreq } +MeasuredResultsOnSecUlFreq-vc50ext ::= SEQUENCE { + intraFreqMeasuredResultsList IntraFrequencyMeasuredResultsListOnSecULFreq-vc50ext +} + MeasuredResults-v390ext ::= SEQUENCE { ue-positioning-MeasuredResults-v390ext UE-Positioning-MeasuredResults-v390ext } @@ -27740,14 +30196,26 @@ MeasuredResults-v860ext ::= CHOICE { MeasuredResultsList-v920ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF MeasuredResults-v920ext +MeasuredResultsList-vc50ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF + MeasuredResults-vc50ext + MeasuredResultsListOnSecUlFreq ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF MeasuredResultsOnSecUlFreq +MeasuredResultsListOnSecUlFreq-vc50ext ::= SEQUENCE (SIZE (1..maxAdditionalMeas)) OF + MeasuredResultsOnSecUlFreq-vc50ext + MeasuredResults-v920ext ::= CHOICE { intraFreqMeasuredResultsList IntraFreqMeasuredResultsList-v920ext, interFreqMeasuredResultsList InterFreqMeasuredResultsList-v920ext } +MeasuredResults-vc50ext ::= CHOICE { + intraFreqMeasuredResultsList IntraFreqMeasuredResultsList-vc50ext, + interFreqMeasuredResultsList InterFreqMeasuredResultsList-vc50ext, + ue-positioning-MeasuredResults UE-Positioning-MeasuredResults-vc50ext +} + MeasuredResults-LCR-r4 ::= CHOICE { intraFreqMeasuredResultsList IntraFreqMeasuredResultsList, interFreqMeasuredResultsList InterFreqMeasuredResultsList, @@ -27787,7 +30255,7 @@ MeasuredResultsOnRACH ::= SEQUENCE { cpich-Ec-N0 CPICH-Ec-N0, cpich-RSCP CPICH-RSCP, pathloss Pathloss, - spare NULL + cpich-Ec-N0-RSCP CPICH-Ec-N0-RSCP } }, tdd SEQUENCE { @@ -27816,7 +30284,7 @@ MeasuredResultsOnRACHFDD-r11 ::= SEQUENCE { cpich-Ec-N0 CPICH-Ec-N0, cpich-RSCP CPICH-RSCP, pathloss Pathloss, - spare NULL + cpich-Ec-N0-RSCP CPICH-Ec-N0-RSCP } }, measuredResultsUsedFreq MonitoredCellRACH-ListFDD-r11 OPTIONAL, @@ -27829,11 +30297,25 @@ MeasuredResultsOnRACHinterFreq ::= SEQUENCE { interFreqCellIndication-SIB12 INTEGER (0..1), interFreqRACHRepCellsList InterFreqRACHRepCellsList } + +MeasuredResultsOnRACHinterFreq-vc50ext ::= SEQUENCE { + interFreqRACHRepCellsList InterFreqRACHRepCellsList-r12 +} + +MeasuredResultsOnRACH-vc50ext ::= SEQUENCE { + measuredResultsNonUsedFreq MeasuredResultsOnRACHinterFreq-vc50ext OPTIONAL, + measuredResultsEUTRAFreq MeasuredResultsOnRACH-EUTRAFreq-vc50ext OPTIONAL +} + MeasuredResultsOnRACH-EUTRAFreq ::= SEQUENCE { eutraFrequencyIndication-SIB19 INTEGER (0..1), eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH)) } +MeasuredResultsOnRACH-EUTRAFreq-vc50ext ::= SEQUENCE { + eutraFrequencyIndicator BIT STRING (SIZE (maxNumEUTRAFreqs-FACH)) +} + MeasurementCommand ::= CHOICE { setup MeasurementType, modify SEQUENCE { @@ -27898,6 +30380,16 @@ MeasurementCommand-r11 ::= CHOICE { release NULL } +MeasurementCommand-r12 ::= CHOICE { + setup MeasurementType-r12, + modify SEQUENCE { + measurementType MeasurementType-r12 OPTIONAL + }, + release NULL, + releaseAll NULL, + releaseSome MeasurementsToRelease +} + MeasurementControlSysInfo ::= SEQUENCE { -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. use-of-HCS CHOICE { @@ -27933,6 +30425,11 @@ MeasurementControlSysInfo ::= SEQUENCE { dummy UE-InternalMeasurementSysInfo OPTIONAL } +MeasurementControlSysInfo-vc50ext ::= SEQUENCE { + intraFreqReportingQuantityForRACH IntraFreqReportingQuantityForRACH-vc50ext OPTIONAL, + rmp-Frequency-List RMP-Frequency-List OPTIONAL +} + MeasurementControlSysInfoExtension ::= SEQUENCE { -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. use-of-HCS CHOICE { @@ -27977,6 +30474,33 @@ MeasurementControlSysInfoExtensionAddon-r5 ::= SEQUENCE { CellSelectReselectInfo-v590ext OPTIONAL } +MeasureControlSysInfoInterFreqExt ::= SEQUENCE { + -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. + use-of-HCS CHOICE { + hcs-not-used SEQUENCE { + cellSelectQualityMeasure CHOICE { + cpich-RSCP SEQUENCE { + newInterFreqCellList NewInterFreqCellSI-List-RSCP-ext OPTIONAL + }, + cpich-Ec-N0 SEQUENCE { + newInterFreqCellList NewInterFreqCellSI-List-ECN0-ext OPTIONAL + } + } + }, + hcs-used SEQUENCE { + cellSelectQualityMeasure CHOICE { + cpich-RSCP SEQUENCE { + newInterFreqCellList NewInterFreqCellSI-List-HCS-RSCP-ext OPTIONAL + }, + cpich-Ec-N0 SEQUENCE { + newInterFreqCellList NewInterFreqCellSI-List-HCS-ECN0-ext OPTIONAL + } + } + } + }, + rmp-Frequency-List RMP-Frequency-List OPTIONAL +} + MeasurementControlSysInfoExtension-LCR-r4 ::= SEQUENCE { -- CHOICE cellSelectQualityMeasure represents PCCPCH-RSCP in TDD mode. use-of-HCS CHOICE { @@ -28058,6 +30582,14 @@ MeasurementOccasionPatternParameter ::= SEQUENCE { timeslotBitmap BIT STRING (SIZE (7)) OPTIONAL } +MeasurementReleaseEnhancement ::= CHOICE { + releaseAllMeasurements NULL, + releaseSomeMeasurements MeasurementsToRelease +} + +MeasurementsToRelease ::= SEQUENCE (SIZE (1..maxMeasIdentity)) OF + MeasurementIdentity-r9 + MeasurementQuantityGSM ::= ENUMERATED { gsm-CarrierRSSI, dummy } @@ -28155,6 +30687,18 @@ MeasurementType-r11 ::= CHOICE { eutraMeasurementForCELLFACH EUTRA-MeasurementForCELLFACH } +MeasurementType-r12 ::= CHOICE { + intraFrequencyMeasurement IntraFrequencyMeasurement-r11, + interFrequencyMeasurement InterFrequencyMeasurement-r12, + interRATMeasurement InterRATMeasurement-r12, + up-Measurement UE-Positioning-Measurement-r12, + trafficVolumeMeasurement TrafficVolumeMeasurement, + qualityMeasurement QualityMeasurement, + ue-InternalMeasurement UE-InternalMeasurement-r4, + csgProximityDetection CSGProximityDetection, + eutraMeasurementForCELLFACH EUTRA-MeasurementForCELLFACH-r12 +} + MeasurementValidity ::= SEQUENCE { ue-State ENUMERATED { cell-DCH, all-But-Cell-DCH, all-States } @@ -28255,6 +30799,27 @@ NavigationModelSatInfo ::= SEQUENCE { NavigationModelSatInfoList ::= SEQUENCE (SIZE (1..maxSat)) OF NavigationModelSatInfo +NavModel-BDSKeplerianSet ::= SEQUENCE { + bdsAODE BIT STRING (SIZE (5)), + bdsURAI BIT STRING (SIZE (4)), + bdsToe BIT STRING (SIZE (17)), + bdsAPowerHalf BIT STRING (SIZE (32)), + bdsE BIT STRING (SIZE (32)), + bdsW BIT STRING (SIZE (32)), + bdsDeltaN BIT STRING (SIZE (16)), + bdsM0 BIT STRING (SIZE (32)), + bdsOmega0 BIT STRING (SIZE (32)), + bdsOmegaDot BIT STRING (SIZE (24)), + bdsI0 BIT STRING (SIZE (32)), + bdsIDot BIT STRING (SIZE (14)), + bdsCuc BIT STRING (SIZE (18)), + bdsCus BIT STRING (SIZE (18)), + bdsCrc BIT STRING (SIZE (18)), + bdsCrs BIT STRING (SIZE (18)), + bdsCic BIT STRING (SIZE (18)), + bdsCis BIT STRING (SIZE (18)) +} + NavModel-CNAVKeplerianSet ::= SEQUENCE { cnavTop BIT STRING (SIZE (11)), cnavURAindex BIT STRING (SIZE (5)), @@ -28460,12 +31025,28 @@ NewInterFreqCell-r10 ::= SEQUENCE { } } +NewInterFreqCell-r12 ::= SEQUENCE { + interFreqCellID InterFreqCellID-r12 OPTIONAL, + frequencyInfo FrequencyInfo OPTIONAL, + cellInfo CellInfo-r9, + modeSpecificInfo CHOICE { + noInfo NULL, + tdd128 SEQUENCE { + intraSecondaryFreqIndicator BOOLEAN, + sNPLMonitorSetIndicator-TDD128 BIT STRING (SIZE (5)) OPTIONAL + } + } +} + NewInterFreqCellList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCell NewInterFreqCellList-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCell-r4 +NewInterFreqCellList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF + NewInterFreqCell-r12 + -- The order of the list corresponds to the order of cells in newInterFreqCellList NewInterFreqCellList-v7b0ext ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCell-v7b0ext @@ -28489,24 +31070,48 @@ NewInterFreqCellSI-RSCP ::= SEQUENCE { cellInfo CellInfoSI-RSCP } +NewInterFreqCellSI-RSCP-ext ::= SEQUENCE { + interFreqCellID InterFreqCellID-r12 OPTIONAL, + frequencyInfo FrequencyInfo OPTIONAL, + cellInfo CellInfoSI-RSCP +} + NewInterFreqCellSI-ECN0 ::= SEQUENCE { interFreqCellID InterFreqCellID OPTIONAL, frequencyInfo FrequencyInfo OPTIONAL, cellInfo CellInfoSI-ECN0 } +NewInterFreqCellSI-ECN0-ext ::= SEQUENCE { + interFreqCellID InterFreqCellID-r12 OPTIONAL, + frequencyInfo FrequencyInfo OPTIONAL, + cellInfo CellInfoSI-ECN0 +} + NewInterFreqCellSI-HCS-RSCP ::= SEQUENCE { interFreqCellID InterFreqCellID OPTIONAL, frequencyInfo FrequencyInfo OPTIONAL, cellInfo CellInfoSI-HCS-RSCP } +NewInterFreqCellSI-HCS-RSCP-ext ::= SEQUENCE { + interFreqCellID InterFreqCellID-r12 OPTIONAL, + frequencyInfo FrequencyInfo OPTIONAL, + cellInfo CellInfoSI-HCS-RSCP +} + NewInterFreqCellSI-HCS-ECN0 ::= SEQUENCE { interFreqCellID InterFreqCellID OPTIONAL, frequencyInfo FrequencyInfo OPTIONAL, cellInfo CellInfoSI-HCS-ECN0 } +NewInterFreqCellSI-HCS-ECN0-ext ::= SEQUENCE { + interFreqCellID InterFreqCellID-r12 OPTIONAL, + frequencyInfo FrequencyInfo OPTIONAL, + cellInfo CellInfoSI-HCS-ECN0 +} + NewInterFreqCellSI-RSCP-LCR-r4 ::= SEQUENCE { interFreqCellID InterFreqCellID OPTIONAL, frequencyInfo FrequencyInfo OPTIONAL, @@ -28534,15 +31139,27 @@ NewInterFreqCellSI-HCS-ECN0-LCR-r4 ::= SEQUENCE { NewInterFreqCellSI-List-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCellSI-ECN0 +NewInterFreqCellSI-List-ECN0-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF + NewInterFreqCellSI-ECN0-ext + NewInterFreqCellSI-List-HCS-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCellSI-HCS-RSCP +NewInterFreqCellSI-List-HCS-RSCP-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF + NewInterFreqCellSI-HCS-RSCP-ext + NewInterFreqCellSI-List-HCS-ECN0 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCellSI-HCS-ECN0 +NewInterFreqCellSI-List-HCS-ECN0-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF + NewInterFreqCellSI-HCS-ECN0-ext + NewInterFreqCellSI-List-RSCP ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCellSI-RSCP +NewInterFreqCellSI-List-RSCP-ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext2)) OF + NewInterFreqCellSI-RSCP-ext + NewInterFreqCellSI-List-ECN0-LCR-r4 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF NewInterFreqCellSI-ECN0-LCR-r4 @@ -28752,7 +31369,9 @@ NonUsedFreqParameter-r11 ::= SEQUENCE { nonUsedFreqThreshold Threshold-r6, nonUsedFreqW W, nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL, - excludedCellInfoList CellInfoListToBeExcluded OPTIONAL + -- dummy is not used in this version of the specification and + -- it should be ignored by the receiver. + dummy CellInfoListToBeExcluded OPTIONAL } NonUsedFreq2aParameter-r10 ::= SEQUENCE { @@ -28763,7 +31382,9 @@ NonUsedFreq2aParameter-r10 ::= SEQUENCE { NonUsedFreq2aParameter-r11 ::= SEQUENCE { nonUsedFreqW W, nonUsedFreqTriggeringConditionDetectedCells ENUMERATED { true } OPTIONAL, - excludedCellInfoList CellInfoListToBeExcluded OPTIONAL + -- dummy is not used in this version of the specification and + -- it should be ignored by the receiver. + dummy CellInfoListToBeExcluded OPTIONAL } NonUsedFreqParameterList ::= SEQUENCE (SIZE (1..maxFreq)) OF @@ -28860,6 +31481,11 @@ PLMNIdentitiesOfNeighbourCells-v860ext ::= SEQUENCE { multipleplmnsOfInterFreqCellsList MultiplePLMNsOfInterFreqCellsList OPTIONAL } +PLMNIdentitiesOfNeighbourCells-vc50ext ::= SEQUENCE { + plmnsOfInterFreqCellsList PLMNsOfInterFreqCellsList-vc50ext OPTIONAL, + multipleplmnsOfInterFreqCellsList MultiplePLMNsOfInterFreqCellsList-vc50ext OPTIONAL +} + PlmnList ::= SEQUENCE (SIZE (1..maxNumMDTPLMN)) OF PLMN-Identity PLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF @@ -28867,12 +31493,26 @@ PLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF plmn-Identity PLMN-Identity OPTIONAL } +PLMNsOfInterFreqCellsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF InterFreqCellPLMN + +InterFreqCellPLMN ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL +} + MultiplePLMNsOfInterFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF SEQUENCE { multiplePLMN-list SEQUENCE (SIZE (1..6)) OF PLMN-IdentityWithOptionalMCC-r6 OPTIONAL } +MultiplePLMNsOfInterFreqCellsList-vc50ext ::= SEQUENCE (SIZE (1..maxCellMeas-ext)) OF MultiplePLMNInfo + +MultiplePLMNInfo ::= SEQUENCE { + multiplePLMN-list MultiplePLMN-List OPTIONAL +} + +MultiplePLMN-List ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityWithOptionalMCC-r6 + PLMNsOfIntraFreqCellsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF SEQUENCE { plmn-Identity PLMN-Identity OPTIONAL @@ -29001,6 +31641,13 @@ RemovedInterFreqCellList ::= CHOICE { removeNoInterFreqCells NULL } +RemovedInterFreqCellList-r12 ::= CHOICE { + removeAllInterFreqCells NULL, + removeSomeInterFreqCells SEQUENCE (SIZE (1..maxCellMeas-ext)) OF + InterFreqCellID-r12, + removeNoInterFreqCells NULL +} + RemovedInterRATCellList ::= CHOICE { removeAllInterRATCells NULL, removeSomeInterRATCells SEQUENCE (SIZE (1..maxCellMeas)) OF @@ -29140,6 +31787,10 @@ RLC-BuffersPayload ::= ENUMERATED { spare7, spare6, spare5, spare4, spare3, spare2, spare1 } + +RMP-Frequency-List ::= SEQUENCE (SIZE (1..maxRMPfrequencies)) OF + BOOLEAN + -- Actual value RRC = IE value * 0.032 RRC ::= INTEGER (-127..127) @@ -29147,6 +31798,12 @@ RSCPforANR ::= SEQUENCE { rSCP INTEGER (-120..-25) OPTIONAL } +RsrqType ::= SEQUENCE{ + allSymbols BOOLEAN, + wideBand BOOLEAN +} + + SatData ::= SEQUENCE{ satID SatID, iode IODE @@ -29172,10 +31829,11 @@ SatelliteStatus ::= ENUMERATED { Satellite-clock-model ::= SEQUENCE { t-oc BIT STRING (SIZE (14)), - af2 BIT STRING (SIZE (12)), - af1 BIT STRING (SIZE (18)), - af0 BIT STRING (SIZE (28)), + af2 BIT STRING (SIZE (6)), + af1 BIT STRING (SIZE (21)), + af0 BIT STRING (SIZE (31)), tgd BIT STRING (SIZE (10)) OPTIONAL, + sisa BIT STRING (SIZE (8)), model-id INTEGER (0..1) OPTIONAL } @@ -29311,6 +31969,8 @@ TemporaryOffsetList ::= SEQUENCE { Threshold ::= INTEGER (-115..0) +Threshold-r12 ::= INTEGER (-115..6) + Threshold-r6 ::= INTEGER (-120..0) -- The order of the list corresponds to the order of frequency defined in Inter-FreqEventCriteria @@ -29700,6 +32360,8 @@ UE-MeasurementQuantity ::= ENUMERATED { utra-Carrier-RSSI, ue-RX-TX-TimeDifference } +UE-PowerHeadroomThreshold ::= INTEGER (-50..33) + UE-RX-TX-ReportEntry ::= SEQUENCE { primaryCPICH-Info PrimaryCPICH-Info, ue-RX-TX-TimeDifferenceType1 UE-RX-TX-TimeDifferenceType1 @@ -29739,6 +32401,10 @@ UL-TrCH-Identity ::= CHOICE{ UE-Positioning-Accuracy ::= BIT STRING (SIZE (7)) +UE-Positioning-DBDSCorrections ::= SEQUENCE { + bds-RefTime INTEGER (0..119), + bds-DBDS-InfoList DBDS-InfoList +} UE-Positioning-CipherParameters ::= SEQUENCE { cipheringKeyFlag BIT STRING (SIZE (1)), @@ -29778,6 +32444,11 @@ UE-Positioning-Error-v860ext ::= SEQUENCE { UE-Positioning-GANSS-AdditionalAssistanceDataRequest-v860ext OPTIONAL } +UE-Positioning-Error-vc50ext ::= SEQUENCE { + ue-positioning-GANSS-additionalAssistanceDataRequest + UE-Positioning-GANSS-AdditionalAssistanceDataRequest-vc50ext OPTIONAL +} + UE-Positioning-ErrorCause ::= ENUMERATED { notEnoughOTDOA-Cells, notEnoughGPS-Satellites, @@ -29841,6 +32512,18 @@ UE-Positioning-GANSS-AddUTCModels ::= SEQUENCE { utcModel3 UTCmodelSet3 OPTIONAL } +-- This IE, if included, shall contain exactly one of the optional elements +UE-Positioning-GANSS-AddUTCModels-r12 ::= SEQUENCE { + utcModel1 UTCmodelSet1 OPTIONAL, + utcModel2 UTCmodelSet2 OPTIONAL, + utcModel3 UTCmodelSet3 OPTIONAL, + utcModel4 UTCmodelSet4 OPTIONAL +} + +UE-Positioning-GANSS-AddUTCModels-vc50ext ::= SEQUENCE { + utcModel4 UTCmodelSet4 OPTIONAL +} + UE-Positioning-GANSS-Almanac ::= SEQUENCE{ ganss-wk-number INTEGER (0..255), alm-keplerianParameters ALM-keplerianParameters OPTIONAL @@ -29880,6 +32563,22 @@ UE-Positioning-GANSS-Almanac-r10 ::= SEQUENCE{ alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL } +UE-Positioning-GANSS-Almanac-r12 ::= SEQUENCE{ + ganss-wk-number INTEGER (0..255), + complete-Almanac-Provided BOOLEAN OPTIONAL, + alm-keplerianParameters ALM-keplerianParameters OPTIONAL, + alm-keplerianNAVAlmanac ALM-NAVKeplerianSet OPTIONAL, + alm-keplerianReducedAlmanac ALM-ReducedKeplerianSet OPTIONAL, + alm-keplerianMidiAlmanac ALM-MidiAlmanacSet OPTIONAL, + alm-keplerianGLONASS ALM-GlonassAlmanacSet OPTIONAL, + alm-ecefSBASAlmanac ALM-ECEFsbasAlmanacSet OPTIONAL, + alm-keplerianBDSAlmanac ALM-BDSKeplerianSet OPTIONAL +} + +UE-Positioning-GANSS-Almanac-vc50ext ::= SEQUENCE { + alm-keplerianBDSAlmanac ALM-BDSKeplerianSet OPTIONAL +} + UE-Positioning-GANSS-AdditionalAssistanceDataRequest ::= SEQUENCE { ganssReferenceTime BOOLEAN, ganssreferenceLocation BOOLEAN, @@ -29894,6 +32593,11 @@ UE-Positioning-GANSS-AdditionalAssistanceDataRequest-v860ext ::= SEQUENCE { GanssRequestedGenericAssistanceDataList-v860ext } +UE-Positioning-GANSS-AdditionalAssistanceDataRequest-vc50ext ::= SEQUENCE { + ganssRequestedGenericAssistanceDataList + GanssRequestedGenericAssistanceDataList-vc50ext +} + UE-Positioning-GANSS-AddIonoModel ::= SEQUENCE { dataID BIT STRING (SIZE (2)), alpha-beta-parameters UE-Positioning-GPS-IonosphericModel @@ -29904,6 +32608,15 @@ UE-Positioning-GANSS-AddNavigationModels ::= SEQUENCE { ganssSatInfoNavList Ganss-Sat-Info-AddNavList } +UE-Positioning-GANSS-AddNavigationModels-r12 ::= SEQUENCE { + non-broadcastIndication ENUMERATED { true } OPTIONAL, + ganssSatInfoNavList Ganss-Sat-Info-AddNavList-r12 +} + +UE-Positioning-GANSS-AddNavigationModels-vc50ext ::= SEQUENCE { + ganssSatInfoNavList Ganss-Sat-Info-AddNavList-vc50ext +} + UE-Positioning-GANSS-AssistanceData ::= SEQUENCE { ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime OPTIONAL, uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, @@ -29946,6 +32659,10 @@ UE-Positioning-GANSS-AssistanceData-va40ext ::= SEQUENCE { ganssGenericDataList GANSSGenericDataList-va40ext OPTIONAL } +UE-Positioning-GANSS-AssistanceData-vc50ext ::= SEQUENCE { + ganssGenericDataList GANSSGenericDataList-vc50ext OPTIONAL +} + UE-Positioning-GANSS-AssistanceData-r10 ::= SEQUENCE { ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-r10 OPTIONAL, uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, @@ -29956,6 +32673,15 @@ UE-Positioning-GANSS-AssistanceData-r10 ::= SEQUENCE { ganssGenericDataList GANSSGenericDataList-r10 OPTIONAL } +UE-Positioning-GANSS-AssistanceData-r12 ::= SEQUENCE { + ue-positioning-GANSS-ReferenceTime UE-Positioning-GANSS-ReferenceTime-r10 OPTIONAL, + uePositioningGanssReferencePosition ReferenceLocationGANSS OPTIONAL, + uePositioningGanssIonosphericModel UE-Positioning-GANSS-IonosphericModel OPTIONAL, + uePositioningGanssAddIonoModel UE-Positioning-GANSS-AddIonoModel OPTIONAL, + uePositioningGanssEarthOrientationPara UE-Positioning-GANSS-EarthOrientPara OPTIONAL, + ganssGenericDataList GANSSGenericDataList-r12 OPTIONAL +} + UE-Positioning-GANSS-AuxiliaryInfo ::= CHOICE { -- This choice may only be present if GANSS ID indicates Modernized GPS ganssID1 AuxInfoGANSS-ID1, @@ -29976,6 +32702,19 @@ UE-Positioning-GANSS-AddClockModels ::= SEQUENCE { } -- This IE, if included, shall contain exactly one of the optional elements +UE-Positioning-GANSS-AddClockModels-r12 ::= SEQUENCE { + navClockModel NAVclockModel OPTIONAL, + cnavClockModel CNAVclockModel OPTIONAL, + glonassClockModel GLONASSclockModel OPTIONAL, + sbasClockModel SBASclockModel OPTIONAL, + bdsClockModel BDSclockModel OPTIONAL +} + +UE-Positioning-GANSS-AddClockModels-vc50ext ::= SEQUENCE { + bdsClockModel BDSclockModel OPTIONAL +} + +-- This IE, if included, shall contain exactly one of the optional elements UE-Positioning-GANSS-AddOrbitModels ::= SEQUENCE { navKeplerianSet NavModel-NAVKeplerianSet OPTIONAL, cnavKeplerianSet NavModel-CNAVKeplerianSet OPTIONAL, @@ -29983,6 +32722,18 @@ UE-Positioning-GANSS-AddOrbitModels ::= SEQUENCE { sbasECEF NavModel-SBASecef OPTIONAL } +UE-Positioning-GANSS-AddOrbitModels-r12 ::= SEQUENCE { + navKeplerianSet NavModel-NAVKeplerianSet OPTIONAL, + cnavKeplerianSet NavModel-CNAVKeplerianSet OPTIONAL, + glonassECEF NavModel-GLONASSecef OPTIONAL, + sbasECEF NavModel-SBASecef OPTIONAL, + bdsKeplerianSet NavModel-BDSKeplerianSet OPTIONAL +} + +UE-Positioning-GANSS-AddOrbitModels-vc50ext ::= SEQUENCE { + bdsKeplerianSet NavModel-BDSKeplerianSet OPTIONAL +} + UE-Positioning-GANSS-Data ::= SEQUENCE { ganssDataCipheringInfo UE-Positioning-CipherParameters OPTIONAL, ganssDecipheringKeys GANSSDecipheringKeys OPTIONAL, @@ -30008,12 +32759,18 @@ UE-Positioning-GANSS-EarthOrientPara ::= SEQUENCE { } UE-Positioning-GANSS-IonosphericModel ::= SEQUENCE { - alpha-zero-ionos BIT STRING (SIZE (12)), - alpha-one-ionos BIT STRING (SIZE (12)), - alpha-two-ionos BIT STRING (SIZE (12)), + alpha-zero-ionos BIT STRING (SIZE (11)), + alpha-one-ionos BIT STRING (SIZE (11)), + alpha-two-ionos BIT STRING (SIZE (14)), gANSS-storm-flags GANSS-Storm-Flag OPTIONAL } +UE-Positioning-BDS-IonoGridModel ::= SEQUENCE { +-- Actual value bds-RefTime = ((30..3600) / 30) - 1. + bds-RefTime INTEGER (0..119), + bds-IGPInfoList BDS-IGPInfoList +} + UE-Positioning-GANSS-MeasuredResults ::= SEQUENCE { referenceTime CHOICE { utran-GANSSReferenceTimeResult UTRAN-GANSSReferenceTime, @@ -30054,6 +32811,17 @@ UE-Positioning-GANSS-ReferenceMeasurementInfo-r10 ::= SEQUENCE { satelliteInformationList GANSSSatelliteInformationList-r10 } +UE-Positioning-GANSS-ReferenceMeasurementInfo-vc50ext ::= SEQUENCE { + confidence INTEGER (0..100) OPTIONAL, + satelliteInformationList GANSSSatelliteInformationList-vc50ext +} + +UE-Positioning-GANSS-ReferenceMeasurementInfo-r12 ::= SEQUENCE { + ganssSignalId GANSS-Signal-Id OPTIONAL, + confidence INTEGER (0..100) OPTIONAL, + satelliteInformationList GANSSSatelliteInformationList-r12 +} + UE-Positioning-GANSS-ReferenceTime ::= SEQUENCE { ganssDay INTEGER (0..8191) OPTIONAL, ganssTod INTEGER (0..86399), @@ -30133,7 +32901,7 @@ UE-Positioning-GANSS-TimeModel-r10 ::= SEQUENCE { -- 'ganss-t-a2' scale factor 2-68 ganss-t-a2 INTEGER (-64..63) OPTIONAL, gnss-to-id ENUMERATED { gps, galileo, qzss, - glonass, spare4, spare3, spare2, spare1 }, + glonass, bds, spare3, spare2, spare1 }, ganss-wk-number INTEGER (0..8191) OPTIONAL, deltaT INTEGER (-128..127) OPTIONAL } @@ -30187,6 +32955,21 @@ UE-Positioning-GPS-AcquisitionAssistance-r10 ::= SEQUENCE { satelliteInformationList AcquisitionSatInfoList-r10 } +UE-Positioning-GPS-AcquisitionAssistance-vc50ext ::= SEQUENCE { + confidence INTEGER (0..100) OPTIONAL, + satelliteInformationList AcquisitionSatInfoList-vc50ext +} + +UE-Positioning-GPS-AcquisitionAssistance-r12 ::= SEQUENCE { + gps-ReferenceTime GPS-TOW-1msec, + utran-GPSReferenceTime UTRAN-GPSReferenceTime OPTIONAL, + ue-Positioning-GPS-ReferenceTimeUncertainty + UE-Positioning-GPS-ReferenceTimeUncertainty + OPTIONAL, + confidence INTEGER (0..100) OPTIONAL, + satelliteInformationList AcquisitionSatInfoList-r12 +} + UE-Positioning-GPS-AdditionalAssistanceDataRequest ::= SEQUENCE { almanacRequest BOOLEAN, utcModelRequest BOOLEAN, @@ -30289,6 +33072,26 @@ UE-Positioning-GPS-AssistanceData-r10 ::= SEQUENCE { UE-Positioning-GPS-AcquisitionAssistance-r10 OPTIONAL, ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL +} + +UE-Positioning-GPS-AssistanceData-vc50ext ::= SEQUENCE { + ue-positioning-GPS-AcquisitionAssistance + UE-Positioning-GPS-AcquisitionAssistance-vc50ext + OPTIONAL +} + +UE-Positioning-GPS-AssistanceData-r12 ::= SEQUENCE { + ue-positioning-GPS-ReferenceTime UE-Positioning-GPS-ReferenceTime-r10 OPTIONAL, + ue-positioning-GPS-ReferenceLocation ReferenceLocation OPTIONAL, + ue-positioning-GPS-DGPS-Corrections UE-Positioning-GPS-DGPS-Corrections-r9 OPTIONAL, + ue-positioning-GPS-NavigationModel UE-Positioning-GPS-NavigationModel OPTIONAL, + ue-positioning-GPS-IonosphericModel UE-Positioning-GPS-IonosphericModel OPTIONAL, + ue-positioning-GPS-UTC-Model UE-Positioning-GPS-UTC-Model OPTIONAL, + ue-positioning-GPS-Almanac UE-Positioning-GPS-Almanac-r10 OPTIONAL, + ue-positioning-GPS-AcquisitionAssistance + UE-Positioning-GPS-AcquisitionAssistance-r12 + OPTIONAL, + ue-positioning-GPS-Real-timeIntegrity BadSatList OPTIONAL } UE-Positioning-GPS-DGPS-Corrections ::= SEQUENCE { @@ -30476,6 +33279,10 @@ UE-Positioning-MeasuredResults-v860ext ::= SEQUENCE { ue-positioning-Ganss-MeasurementResults UE-Positioning-GANSS-MeasuredResults-v860ext OPTIONAL } +UE-Positioning-MeasuredResults-vc50ext ::= SEQUENCE { + ue-positioning-Error UE-Positioning-Error-vc50ext OPTIONAL +} + UE-Positioning-Measurement ::= SEQUENCE { ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity, reportCriteria UE-Positioning-ReportCriteria, @@ -30534,6 +33341,15 @@ UE-Positioning-Measurement-r10 ::= SEQUENCE { ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r10 OPTIONAL } +UE-Positioning-Measurement-r12 ::= SEQUENCE { + ue-positioning-ReportingQuantity UE-Positioning-ReportingQuantity-r8, + measurementValidity MeasurementValidity OPTIONAL, + reportCriteria UE-Positioning-ReportCriteria-r7, + ue-positioning-OTDOA-AssistanceData UE-Positioning-OTDOA-AssistanceData-r7 OPTIONAL, + ue-positioning-GPS-AssistanceData UE-Positioning-GPS-AssistanceData-r12 OPTIONAL, + ue-positioning-GANSS-AssistanceData UE-Positioning-GANSS-AssistanceData-r12 OPTIONAL +} + UE-Positioning-MeasurementEventResults ::= CHOICE { -- In case of 'event7a' reporting, if IE 'UE-Positioning-PositionEstimateInfo' is not needed, -- CHOICE shall be set to 'additionalOrReplacedPosMeasEvent'and the 'event7a' shall be included @@ -30996,6 +33812,15 @@ UTCmodelSet3 ::= SEQUENCE { utcStandardID BIT STRING (SIZE (3)) } +UTCmodelSet4 ::= SEQUENCE { + utcA0 BIT STRING (SIZE (32)), + utcA1 BIT STRING (SIZE (24)), + utcDeltaTls BIT STRING (SIZE (8)), + utcWNlsf BIT STRING (SIZE (8)), + utcDN BIT STRING (SIZE (8)), + utcDeltaTlsf BIT STRING (SIZE (8)) +} + -- SPARE: UTRA-CarrierRSSI, Max = 76 -- Values above Max are spare UTRA-CarrierRSSI ::= INTEGER (0..127) @@ -31140,6 +33965,11 @@ BCCH-ModificationInfo ::= SEQUENCE { bcch-ModificationTime BCCH-ModificationTime OPTIONAL } +BCCH-ModificationInfo-vc50ext ::= SEQUENCE { + mib-ValueTagExt MIB-ValueTagExt OPTIONAL, + sb3-ValueTag CellValueTag2 OPTIONAL +} + -- Actual value BCCH-ModificationTime = IE value * 8 BCCH-ModificationTime ::= INTEGER (0..511) @@ -31168,6 +33998,15 @@ CDMA2000-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumCDMA2000Freqs)) OF CellValueTag ::= INTEGER (1..4) +CellValueTag2 ::= INTEGER (1..16) + +CellValueTagExt ::= INTEGER (0..3) + +CellValueTag3 ::= SEQUENCE { + cellValueTag CellValueTag, + cellValueTagExt CellValueTagExt OPTIONAL +} + DataTransmFrequency ::= SEQUENCE { dataTransmFreqGranularity ENUMERATED { ms100, ms250, ms500, ms1000, ms2000, ms5000, ms10000, ms60000 }, @@ -31240,6 +34079,9 @@ EUTRA-TargetFreqInfo-vb50ext ::= SEQUENCE { --Actual value = 2^(IE value) ExpirationTimeFactor ::= INTEGER (1..8) +ExpirationTimeFactor2 ::= INTEGER (0..15) + + ExtGANSS-SchedulingInfo ::= SEQUENCE { extensionGANSS-SIBType SIB-TypeExtGANSS, schedulingInfo SchedulingInformation, @@ -31271,12 +34113,21 @@ ExtSIBTypeInfoSchedulingInfo ::= SEQUENCE { ExtSIBTypeInfoSchedulingInfo-List2 ::= SEQUENCE (SIZE (1..maxSIB)) OF ExtSIBTypeInfoSchedulingInfo2 +ExtSIBTypeInfoSchedulingInfo-List3 ::= SEQUENCE (SIZE (1..maxSIB)) OF + ExtSIBTypeInfoSchedulingInfo3 + ExtSIBTypeInfoSchedulingInfo2 ::= SEQUENCE { extensionSIB-Type2 SIB-TypeExt2, schedulingInfo SchedulingInformation, valueTagInfo ValueTagInfo } +ExtSIBTypeInfoSchedulingInfo3 ::= SEQUENCE { + extensionSIB-Type3 SIB-TypeExt3, + schedulingInfo SchedulingInformation2, + valueTagInfo ValueTagInfoExtValueTag +} + FDD-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumFDDFreqs)) OF -- NOTE1: The IE "UARFCN (Nlow)" corresponds to -- "uarfcn-DL" in FrequencyInfoFDD. @@ -31437,7 +34288,10 @@ MasterInformationBlock ::= SEQUENCE { masterInformationBlock-v6b0ext MasterInformationBlock-v6b0ext-IEs, v860NonCriticalExtensions SEQUENCE { masterInformationBlock-v860ext MasterInformationBlock-v860ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + masterInformationBlock-vc50ext MasterInformationBlock-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -31458,8 +34312,23 @@ MasterInformationBlock-v860ext-IEs ::= SEQUENCE { csg-Indicator ENUMERATED { true } OPTIONAL } +MasterInformationBlock-vc50ext-IEs ::= SEQUENCE { + mib-ValueTagExt MIB-ValueTagExt OPTIONAL, + sibSb-ReferenceList SIBSb-ReferenceList2 OPTIONAL, + extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List3 OPTIONAL, + sb3-Information SB3-Information OPTIONAL +} + +SB3-Information ::= SEQUENCE { + sb3-SegCount SegCount DEFAULT 1, + sb3-Sib-Rep SIB-Rep, + second-BCH-Channelizationcode BCH-Channelizationcode +} + MIB-ValueTag ::= INTEGER (1..8) +MIB-ValueTagExt ::= INTEGER (0..1) + NCC ::= INTEGER (0..7) PLMN-ValueTag ::= INTEGER (1..256) @@ -31527,6 +34396,15 @@ Rplmn-Information-r4 ::= SEQUENCE { cdma2000-UMTS-Frequency-List CDMA2000-UMTS-Frequency-List OPTIONAL } +SIB-Rep::= ENUMERATED { + frame-8, + frame-16, + frame-32, + frame-64 +} + +BCH-Channelizationcode ::= INTEGER (2..33) + SchedulingInformation ::= SEQUENCE { scheduling SEQUENCE { segCount SegCount DEFAULT 1, @@ -31549,16 +34427,47 @@ SchedulingInformation ::= SEQUENCE { } } +SchedulingInformation2 ::= CHOICE { + scheduling SEQUENCE { + segCount SegCount OPTIONAL, + sib-Pos CHOICE { + -- The element name indicates the repetition period and the value + -- (multiplied by two) indicates the position of the first segment. + rep4 INTEGER (0..1), + rep8 INTEGER (0..3), + rep16 INTEGER (0..7), + rep32 INTEGER (0..15), + rep64 INTEGER (0..31), + rep128 INTEGER (0..63), + rep256 INTEGER (0..127), + rep512 INTEGER (0..255), + rep1024 INTEGER (0..511), + rep2048 INTEGER (0..1023), + rep4096 INTEGER (0..2047) + }, + sib-PosOffsetInfo SibOFF-List2 OPTIONAL + } +} + SchedulingInformationSIB ::= SEQUENCE { sib-Type SIB-TypeAndTag, scheduling SchedulingInformation } +SchedulingInformationSIB2 ::= SEQUENCE { + sib-Type SIB-TypeAndTag2, + scheduling SchedulingInformation2 +} + SchedulingInformationSIBSb ::= SEQUENCE { sibSb-Type SIBSb-TypeAndTag, scheduling SchedulingInformation } +SchedulingInformationSIBSb2 ::= SEQUENCE { + sibSb-Type SIBSb-TypeAndTagExtValueTag +} + SegCount ::= INTEGER (1..16) SegmentIndex ::= INTEGER (1..15) @@ -31569,9 +34478,12 @@ SFN-Prime ::= INTEGER (0..2047) SIB-Data-fixed ::= BIT STRING (SIZE (222)) +SIB-Data2-fixed ::= BIT STRING (SIZE (232)) SIB-Data-variable ::= BIT STRING (SIZE (1..214)) +SIB-Data2-variable ::= BIT STRING (SIZE (1..224)) + SIBOccurIdentity ::= INTEGER (0..15) SIBOccurrenceIdentityAndValueTag ::= SEQUENCE { @@ -31584,9 +34496,15 @@ SIBOccurValueTag ::= INTEGER (0..15) SIB-ReferenceList ::= SEQUENCE (SIZE (1..maxSIB)) OF SchedulingInformationSIB +SIB-ReferenceList2 ::= SEQUENCE (SIZE (1..maxSIB2)) OF + SchedulingInformationSIB2 + SIBSb-ReferenceList ::= SEQUENCE (SIZE (1..maxSIB)) OF SchedulingInformationSIBSb +SIBSb-ReferenceList2 ::= SEQUENCE (SIZE (1..maxSIB)) OF + SchedulingInformationSIBSb2 + SIB-ReferenceListFACH ::= SEQUENCE (SIZE (1..maxSIB-FACH)) OF SchedulingInformationSIB @@ -31626,6 +34544,54 @@ SIB-Type ::= ENUMERATED { systemInformationBlockType5bis, extensionType } +SIB-Type2 ::= ENUMERATED { + schedulingBlock3, + systemInformationBlockType1, + systemInformationBlockType2, + systemInformationBlockType3, + systemInformationBlockType4, + systemInformationBlockType5, + systemInformationBlockType5bis, + systemInformationBlockType6, + systemInformationBlockType7, + systemInformationBlockType11, + systemInformationBlockType11bis, + systemInformationBlockType12, + systemInformationBlockType13, + systemInformationBlockType13-1, + systemInformationBlockType13-2, + systemInformationBlockType13-3, + systemInformationBlockType13-4, + systemInformationBlockType14, + systemInformationBlockType15, + systemInformationBlockType15bis, + systemInformationBlockType15-1, + systemInformationBlockType15-1bis, + systemInformationBlockType15-1ter, + systemInformationBlockType15-2, + systemInformationBlockType15-2bis, + systemInformationBlockType15-2ter, + systemInformationBlockType15-3, + systemInformationBlockType15-3bis, + systemInformationBlockType15-4, + systemInformationBlockType15-5, + systemInformationBlockType15-6, + systemInformationBlockType15-7, + systemInformationBlockType15-8, + systemInformationBlockType16, + systemInformationBlockType17, + systemInformationBlockType18, + systemInformationBlockType19, + systemInformationBlockType20, + systemInformationBlockType21, + systemInformationBlockType22, + systemInformationBlockType23, + systemInformationBlockType24, + spare22, spare21, spare20, spare19, spare18, + spare17, spare16, spare15, spare14, spare13, spare12, + spare11, spare10, spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1 } + SIB-TypeAndTag ::= CHOICE { sysInfoType1 PLMN-ValueTag, sysInfoType2 CellValueTag, @@ -31663,6 +34629,73 @@ SIB-TypeAndTag ::= CHOICE { spare1 NULL } +SIB-TypeAndTag2 ::= CHOICE { + sysInfoType1 PLMN-ValueTag, + sysInfoType2 CellValueTag, + sysInfoType3 CellValueTag3, + sysInfoType4 CellValueTag, + sysInfoType5 CellValueTag3, + sysInfoType5bis CellValueTag3, + sysInfoType6 CellValueTag, + sysInfoType7 NULL, + sysInfoType11 CellValueTag, + sysInfoType11bis CellValueTag, + sysInfoType12 CellValueTag, + sysInfoType13 CellValueTag, + sysInfoType13-1 CellValueTag, + sysInfoType13-2 CellValueTag, + sysInfoType13-3 CellValueTag, + sysInfoType13-4 CellValueTag, + sysInfoType14 NULL, + sysInfoType15 CellValueTag, + sysInfoType15bis CellValueTag, + sysInfoType15-1 CellValueTag, + sysInfoType15-1bis CellValueTag, + sysInfoType15-1ter CellValueTag, + sysInfoType15-2 SIBOccurrenceIdentityAndValueTag, + sysInfoType15-2bis SIBOccurrenceIdentityAndValueTag, + sysInfoType15-2ter SIBOccurrenceIdentityAndValueTag, + sysInfoType15-3 SIBOccurrenceIdentityAndValueTag, + sysInfoType15-3bis SIBOccurrenceIdentityAndValueTag, + sysInfoType15-4 CellValueTag, + sysInfoType15-5 CellValueTag, + sysInfoType15-6 CellValueTag, + sysInfoType15-7 CellValueTag, + sysInfoType15-8 CellValueTag, + sysInfoType16 PredefinedConfigIdentityAndValueTag, + sysInfoType17 NULL, + sysInfoType18 CellValueTag, + sysInfoType19 CellValueTag, + sysInfoType20 CellValueTag, + sysInfoType21 CellValueTag3, + sysInfoType22 CellValueTag3, + sysInfoType23 CellValueTag, + sysInfoType24 NULL, + sysInfoType11ter CellValueTag3, + spare22 NULL, + spare21 NULL, + spare20 NULL, + spare19 NULL, + spare18 NULL, + spare17 NULL, + spare16 NULL, + spare15 NULL, + spare14 NULL, + spare13 NULL, + spare12 NULL, + spare11 NULL, + spare10 NULL, + spare9 NULL, + spare8 NULL, + spare7 NULL, + spare6 NULL, + spare5 NULL, + spare4 NULL, + spare3 NULL, + spare2 NULL, + spare1 NULL +} + SIBSb-TypeAndTag ::= CHOICE { sysInfoType1 PLMN-ValueTag, sysInfoType2 CellValueTag, @@ -31700,6 +34733,18 @@ SIBSb-TypeAndTag ::= CHOICE { spare1 NULL } + +SIBSb-TypeAndTagExtValueTag ::= CHOICE { + sysInfoType3 CellValueTagExt, + sysInfoType5 CellValueTagExt, + sysInfoType5bis CellValueTagExt, + sysInfoType21 CellValueTagExt, + sysInfoType22 CellValueTagExt, + spare3 NULL, + spare2 NULL, + spare1 NULL +} + SIB-TypeExt ::= CHOICE { systemInfoType11bis NULL, systemInfoType15bis NULL, @@ -31717,6 +34762,17 @@ SIB-TypeExt2 ::= CHOICE { systemInfoType20 NULL, systemInfoType21 NULL, systemInfoType22 NULL, + systemInfoType15-1ter NULL, + systemInfoType23 NULL, + systemInfoType24 NULL +} + +SIB-TypeExt3 ::= CHOICE { + systemInfoType11ter NULL, + spare7 NULL, + spare6 NULL, + spare5 NULL, + spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL @@ -31747,9 +34803,16 @@ SibOFF ::= ENUMERATED { so20, so22, so24, so26, so28, so30, so32 } +SibOFF-vc50ext ::= SEQUENCE { + sibOFF SibOFF OPTIONAL +} + SibOFF-List ::= SEQUENCE (SIZE (1..15)) OF SibOFF +SibOFF-List2 ::= SEQUENCE (SIZE (1..15)) OF + SibOFF-vc50ext + SysInfoType1 ::= SEQUENCE { -- Core network IEs cn-CommonGSM-MAP-NAS-SysInfo NAS-SystemInformationGSM-MAP, @@ -31808,7 +34871,10 @@ SysInfoType3 ::= SEQUENCE { sysInfoType3-v870ext SysInfoType3-v870ext-IEs, v900NonCriticalExtension SEQUENCE { sysInfoType3-v920ext SysInfoType3-v920ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtension SEQUENCE { + sysInfoType3-vc50ext SysInfoType3-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -31868,6 +34934,10 @@ SysInfoType3-v920ext-IEs ::= SEQUENCE { imsEmergencySupportIndicator ENUMERATED { supported } OPTIONAL } +SysInfoType3-vc50ext-IEs ::= SEQUENCE { + txFailParams TxFailParams OPTIONAL +} + SysInfoType4 ::= SEQUENCE { -- UTRAN mobility IEs cellIdentity CellIdentity, @@ -32299,7 +35369,10 @@ SysInfoType11 ::= SEQUENCE { sysInfoType11-v860ext SysInfoType11-v860ext-IEs, va80NonCriticalExtensions SEQUENCE { sysInfoType11-va80ext SysInfoType11-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + sysInfoType11-vc50ext SysInfoType11-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -32361,6 +35434,16 @@ SysInfoType11-va80ext-IEs ::= SEQUENCE { multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL } +SysInfoType11-vc50ext-IEs ::= SEQUENCE { + measurementControlSysInfo MeasurementControlSysInfo-vc50ext OPTIONAL, + -- Measurement IEs + measurementScalingFactor MeasurementScalingFactor OPTIONAL +} + +MeasurementScalingFactor ::= ENUMERATED { + sf-utra-cf1, sf-utra-cf2} + + SysInfoType11bis ::= SEQUENCE { -- Measurement IEs measurementControlSysInfo MeasurementControlSysInfoExtension OPTIONAL, @@ -32374,7 +35457,10 @@ SysInfoType11bis ::= SEQUENCE { sysInfoType11bis-v860ext SysInfoType11bis-v860ext-IEs, va80NonCriticalExtensions SEQUENCE { sysInfoType11bis-va80ext SysInfoType11bis-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + sysInfoType11bis-vc50ext SysInfoType11bis-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -32396,6 +35482,17 @@ SysInfoType11bis-va80ext-IEs ::= SEQUENCE { multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL } +SysInfoType11bis-vc50ext-IEs ::= SEQUENCE { + measurementControlSysInfo MeasurementControlSysInfo-vc50ext OPTIONAL +} + +SysInfoType11ter ::= SEQUENCE { + -- Measurement IEs + measureControlSysInfoInterFreqExt MeasureControlSysInfoInterFreqExt OPTIONAL, + multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL, + nonCriticalExtensions SEQUENCE {} OPTIONAL +} + SysInfoType12 ::= SEQUENCE { -- Measurement IEs fach-MeasurementOccasionInfo FACH-MeasurementOccasionInfo OPTIONAL, @@ -32413,7 +35510,10 @@ SysInfoType12 ::= SEQUENCE { sysInfoType12-v7b0ext SysInfoType12-v7b0ext-IEs, va80NonCriticalExtensions SEQUENCE { sysInfoType12-va80ext SysInfoType12-va80ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + sysInfoType12-vc50ext SysInfoType12-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -32463,6 +35563,10 @@ SysInfoType12-va80ext-IEs ::= SEQUENCE { multipleFrequencyInfoListFDD MultipleFrequencyInfoListFDD OPTIONAL } +SysInfoType12-vc50ext-IEs ::= SEQUENCE { + measurementControlSysInfo MeasurementControlSysInfo-vc50ext OPTIONAL +} + SysInfoType13 ::= SEQUENCE { -- Core network IEs cn-DomainSysInfoList CN-DomainSysInfoList, @@ -32623,6 +35727,14 @@ SysInfoType15-1bis-v920ext-IEs ::= SEQUENCE { ue-positioning-GANSS-DGANSS-Corrections UE-Positioning-DGANSSCorrections-v920ext } +SysInfoType15-1ter ::= SEQUENCE { + -- Measurement IEs + uePositioning-BDSCorrections UE-Positioning-DBDSCorrections OPTIONAL, + uePositioningBDSIonoGridModel UE-Positioning-BDS-IonoGridModel OPTIONAL, + -- Extension mechanism for non-release12 information + nonCriticalExtensions SEQUENCE {} OPTIONAL +} + SysInfoType15-2 ::= SEQUENCE { -- Ephemeris and clock corrections transmissionTOW GPS-TOW-1sec, @@ -32643,7 +35755,15 @@ SysInfoType15-2ter ::= SEQUENCE { -- Measurement IEs ue-positioning-GANSS-AddNavigationModels UE-Positioning-GANSS-AddNavigationModels, -- Extension mechanism for non-release99 information - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + sysInfoType15-2ter-vc50ext SysInfoType15-2ter-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL +} + +SysInfoType15-2ter-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + ue-positioning-GANSS-AddNavigationModels UE-Positioning-GANSS-AddNavigationModels-vc50ext OPTIONAL } SysInfoType15-3 ::= SEQUENCE { @@ -32676,7 +35796,10 @@ SysInfoType15-3bis ::= SEQUENCE { sysInfoType15-3bis-v860ext SysInfoType15-3bis-v860ext-IEs, va40NonCriticalExtensions SEQUENCE { sysInfoType15-3bis-va40ext SysInfoType15-3bis-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + vc50NonCriticalExtensions SEQUENCE { + sysInfoType15-3bis-vc50ext SysInfoType15-3bis-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } @@ -32694,6 +35817,12 @@ SysInfoType15-3bis-va40ext-IEs ::= SEQUENCE { ue-positioning-GANSS-TimeModels UE-Positioning-GANSS-TimeModels-va40ext OPTIONAL } +SysInfoType15-3bis-vc50ext-IEs ::= SEQUENCE { + -- Measurement IEs + ue-Positioning-GANSS-Almanac UE-Positioning-GANSS-Almanac-vc50ext OPTIONAL, + ue-Positioning-GANSS-AddUTCModels UE-Positioning-GANSS-AddUTCModels-vc50ext OPTIONAL +} + SysInfoType15-4 ::= SEQUENCE { -- Measurement IEs ue-positioning-OTDOA-CipherParameters UE-Positioning-CipherParameters OPTIONAL, @@ -32745,8 +35874,11 @@ SysInfoType15-6 ::= SEQUENCE { UE-Positioning-GANSS-ReferenceMeasurementInfo, -- Extension mechanism for non-release99 information va40NonCriticalExtensions SEQUENCE { - sysInfoType15-6-va40ext SysInfoType15-6-va40ext-IEs, - nonCriticalExtensions SEQUENCE {} OPTIONAL + sysInfoType15-6-va40ext SysInfoType15-6-va40ext-IEs, + vc50NonCriticalExtensions SEQUENCE { + sysInfoType15-6-vc50ext SysInfoType15-6-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } @@ -32755,6 +35887,11 @@ SysInfoType15-6-va40ext-IEs ::= SEQUENCE { UE-Positioning-GANSS-ReferenceMeasurementInfo-va40ext } +SysInfoType15-6-vc50ext-IEs ::= SEQUENCE { + ue-positioning-GANSS-ReferenceMeasurementInformation + UE-Positioning-GANSS-ReferenceMeasurementInfo-vc50ext +} + SysInfoType15-7 ::= SEQUENCE { -- Measurement IEs ue-positioning-GANSS-DataBitAssistance UE-Positioning-GANSS-Data-Bit-Assistance, @@ -32841,8 +35978,11 @@ SysInfoType18 ::= SEQUENCE { v6b0NonCriticalExtensions SEQUENCE { sysInfoType18-v6b0ext SysInfoType18-v6b0ext, v860NonCriticalExtensions SEQUENCE { - sysInfoType18-v860ext SysInfoType18-v860ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL + sysInfoType18-v860ext SysInfoType18-v860ext, + vc50NonCriticalExtensions SEQUENCE { + sysInfoType18-vc50ext SysInfoType18-vc50ext, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } @@ -32857,6 +35997,11 @@ SysInfoType18-v860ext ::= SEQUENCE { connectedModePLMNIdentities PLMNIdentitiesOfNeighbourCells-v860ext OPTIONAL } +SysInfoType18-vc50ext ::= SEQUENCE { + idleModePLMNIdentitiesSIB11ter PLMNIdentitiesOfNeighbourCells-vc50ext OPTIONAL, + connectedModePLMNIdentitiesSIB11ter PLMNIdentitiesOfNeighbourCells-vc50ext OPTIONAL +} + SysInfoType19 ::= SEQUENCE { -- Measurement IEs utra-PriorityInfoList UTRA-PriorityInfoList, @@ -32870,8 +36015,14 @@ SysInfoType19 ::= SEQUENCE { vb30NonCriticalExtensions SEQUENCE { sysInfoType19-vb30ext SysInfoType19-vb30ext, vb50NonCriticalExtensions SEQUENCE { - sysInfoType19-vb50ext SysInfoType19-vb50ext, - nonCriticalExtensions SEQUENCE {} OPTIONAL + sysInfoType19-vb50ext SysInfoType19-vb50ext, + vb80NonCriticalExtensions SEQUENCE { + sysInfoType19-vb80ext SysInfoType19-vb80ext, + vc50NonCriticalExtensions SEQUENCE { + sysInfoType19-vc50ext SysInfoType19-vc50ext, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } OPTIONAL @@ -32902,6 +36053,17 @@ SysInfoType19-vb50ext ::= SEQUENCE { eutra-FrequencyRACHReportingInfo EUTRA-FrequencyRACHReportingInfo OPTIONAL } +SysInfoType19-vb80ext ::= SEQUENCE { + eutra-FrequencyAndPriorityInfoExtensionList-vb80ext EUTRA-FrequencyAndPriorityInfoExtensionList-vb80ext OPTIONAL +} + +SysInfoType19-vc50ext ::= SEQUENCE { + eutra-FrequencyRACHReportingInfo-vc50ext EUTRA-FrequencyRACHReportingInfo-vc50ext OPTIONAL, + eutra-FrequencyAndPriorityInfoList-vc50ext EUTRA-FrequencyAndPriorityInfoList-vc50ext OPTIONAL, + eutra-FrequencyAndPriorityInfoExtensionList-vc50ext + EUTRA-FrequencyAndPriorityInfoExtensionList-vc50ext OPTIONAL +} + SysInfoType20 ::= SEQUENCE { hNBName HNBName OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL @@ -32915,7 +36077,7 @@ SysInfoType21 ::= SEQUENCE { SysInfoType22 ::= SEQUENCE { -- In the Tabular there are separate definitions for prach-PreambleForEnhancedUplinkListType1Ext -- and prach-PreambleForEnhancedUplinkListType2Ext/prach-PreambleForEnhancedUplinkListType3Ext even --- though the contents are the same. The only difference is in how the IE “Weight” is used in +-- though the contents are the same. The only difference is in how the IE ?Weight? is used in -- calculating the weight for each signalled PRACH Control Parameters. -- To simplify the ASN.1, a single definition is used here for all three cases. prach-PreambleForEnhancedUplinkListType1Ext @@ -32929,6 +36091,28 @@ SysInfoType22 ::= SEQUENCE { fallback-R99-PRACH-info Fallback-R99-PRACH-info-IEs OPTIONAL, commonEDCHResourceConfigInfoListExt CommonEDCHResourceConfigInfoListExt OPTIONAL, hs-dsch-DrxCellfach-SecondDrx-info HS-DSCH-DrxCellfach-SecondDrx-info OPTIONAL, + -- Extension mechanism for non- release11 information + vc50NonCriticalExtensions SEQUENCE { + sysInfoType22-vc50ext SysInfoType22-vc50ext-IEs, + nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL +} + +SysInfoType22-vc50ext-IEs ::= SEQUENCE { + cell-Reselection-indication-reporting ENUMERATED { true } OPTIONAL +} + +SysInfoType23 ::= SEQUENCE { + wlanRepresentation CHOICE { + wlanOffloadInformationPerPLMN-List WLANOffloadInformationPerPLMN-List, + wlanOffloadInformationForAll WLANOffloadInformation + }, + nonCriticalExtensions SEQUENCE {} OPTIONAL +} + +SysInfoType24 ::= SEQUENCE { + dtchTransmissionBlocked BIT STRING (SIZE (maxNumAccessGroups)) OPTIONAL, + expirationTimeFactor ExpirationTimeFactor2 OPTIONAL, nonCriticalExtensions SEQUENCE {} OPTIONAL } @@ -32940,7 +36124,10 @@ SysInfoTypeSB1 ::= SEQUENCE { sysInfoTypeSB1-v6b0ext SysInfoTypeSB1-v6b0ext, v860NonCriticalExtensions SEQUENCE { sysInfoTypeSB1-v860ext SysInfoTypeSB1-v860ext, + vc50NonCriticalExtensions SEQUENCE { + sysInfoTypeSB1-vc50ext SysInfoTypeSB1-vc50ext, nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } @@ -32955,6 +36142,11 @@ SysInfoTypeSB1-v860ext ::= SEQUENCE { ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL } +SysInfoTypeSB1-vc50ext ::= SEQUENCE { + sib-ReferenceList SIBSb-ReferenceList2 OPTIONAL, + extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List3 OPTIONAL +} + SysInfoTypeSB2 ::= SEQUENCE { -- Other IEs sib-ReferenceList SIB-ReferenceList, @@ -32963,7 +36155,10 @@ SysInfoTypeSB2 ::= SEQUENCE { sysInfoTypeSB2-v6b0ext SysInfoTypeSB2-v6b0ext, v860NonCriticalExtensions SEQUENCE { sysInfoTypeSB2-v860ext SysInfoTypeSB2-v860ext, + vc50NonCriticalExtensions SEQUENCE { + sysInfoTypeSB2-vc50ext SysInfoTypeSB2-vc50ext, nonCriticalExtensions SEQUENCE {} OPTIONAL + } OPTIONAL } OPTIONAL } OPTIONAL } @@ -32978,9 +36173,35 @@ SysInfoTypeSB2-v860ext ::= SEQUENCE { ExtGANSS-SIBTypeInfoSchedulingInfoList OPTIONAL } +SysInfoTypeSB2-vc50ext ::= SEQUENCE { + sib-ReferenceList SIBSb-ReferenceList2 OPTIONAL, + extSIBTypeInfoSchedulingInfo-List ExtSIBTypeInfoSchedulingInfo-List3 OPTIONAL +} + + +SysInfoTypeSB3 ::= SEQUENCE { + -- Other IEs + sb3-ValueTag CellValueTag2, + sib-ReferenceList SIB-ReferenceList2, + -- Extension mechanism for non- release99 information + nonCriticalExtensions SEQUENCE {} OPTIONAL +} + TDD-UMTS-Frequency-List ::= SEQUENCE (SIZE (1..maxNumTDDFreqs)) OF FrequencyInfoTDD +TxFailParams ::= SEQUENCE { + modeSpecificInfo CHOICE { + fdd SEQUENCE { + connEstFailCount ENUMERATED {n1, n2, n3, n4}, + offsetValidity ENUMERATED {s30, s60, s120, s240, + s300, s420, s600, s900}, + connEstFailTempQoffset INTEGER (0..15) OPTIONAL + }, + tdd NULL + } +} + UE-HistoryInformation ::= SEQUENCE { ue-InactivityPeriod INTEGER (1..120), ueMobilityStateIndicator High-MobilityDetected OPTIONAL, @@ -32996,6 +36217,10 @@ ValueTagInfo ::= CHOICE { sIBOccurrenceIdentityAndValueTag SIBOccurrenceIdentityAndValueTag } +ValueTagInfoExtValueTag ::= CHOICE { + cellValueTag CellValueTag2 +} + -- *************************************************** -- -- ANSI-41 INFORMATION ELEMENTS (10.3.9) @@ -33627,6 +36852,75 @@ MBSFN-TDM-Info ::= SEQUENCE { MBSFN-TDM-Info-List ::= SEQUENCE (SIZE (1..maxMBMSservUnmodif)) OF MBSFN-TDM-Info + +-- *************************************************** +-- +-- WLAN Offload INFORMATION ELEMENTS (10.3.9b) +-- +-- *************************************************** + +WLANOffloadConfig ::= SEQUENCE { + threshServingRSCP WLANThreshServingRSCP OPTIONAL, + threshServingECNO WLANThreshServingECNO OPTIONAL, + threshChannelUtilization WLANThreshChannelUtilization OPTIONAL, + threshBackhaulBandwidth WLANThreshBackhaulBandwidth OPTIONAL, + threshBeaconRSSI WLANThreshBeaconRSSI OPTIONAL, + offloadPreferenceIndicator BIT STRING (SIZE (16)) OPTIONAL, + t-SteeringWLAN T-Reselection-S OPTIONAL +} + +WLANThreshServingRSCP ::= SEQUENCE { + -- Actual value = IE value * 2 + 1 + threshServingLow INTEGER (-60..-13), + -- Actual value = IE value * 2 + 1 + threshServingHigh INTEGER (-60..-13) +} + +WLANThreshServingECNO ::= SEQUENCE { + threshServingLow2 INTEGER (-24..0), + threshServingHigh2 INTEGER (-24..0) +} + +WLANThreshChannelUtilization ::= SEQUENCE { + threshChannelUtilizationLow INTEGER (0..255), + threshChannelUtilizationHigh INTEGER (0..255) +} + +WLANThreshBackhaulBandwidth ::= SEQUENCE { + threshBackhaulDLBandwidthLow WLANThreshBackhaulRate, + threshBackhaulDLBandwidthHigh WLANThreshBackhaulRate, + threshBackhaulULBandwidthLow WLANThreshBackhaulRate, + threshBackhaulULBandwidthHigh WLANThreshBackhaulRate +} + +WLANThreshBeaconRSSI ::= SEQUENCE { + threshBeaconRSSILow INTEGER (0..255), + threshBeaconRSSIHigh INTEGER (0..255) +} + +WLANIdentifierList ::= SEQUENCE (SIZE (1..maxWLANID)) OF + WLANIdentifier + +WLANIdentifier ::= SEQUENCE { + ssid OCTET STRING (SIZE (1..32)) OPTIONAL, + bssid OCTET STRING (SIZE (6)) OPTIONAL, + hessid OCTET STRING (SIZE (6)) OPTIONAL +} + +WLANOffloadInformationPerPLMN-List ::= SEQUENCE (SIZE (1..6)) OF WLANOffloadInformation + +WLANOffloadInformation ::= SEQUENCE { + wlanOffloadConfig WLANOffloadConfig OPTIONAL, + wlanIdentifierList WLANIdentifierList OPTIONAL +} + +WLANThreshBackhaulRate ::= ENUMERATED { r0, r4, r8, r16, r32, r64, r128, r256, + r512, r1024, r2048, r4096, r8192, r16384, r32768, + r65536, r131072, r262144, r524288, r1048576, + r2097152, r4194304, r8388608, r16777216, + r33554432, r67108864, r134217728, r268435456, + r536870912, r1073741824, r2147483648, r4294967296 +} hiPDSCHidentities INTEGER ::= 64 hiPUSCHidentities INTEGER ::= 64 @@ -33638,8 +36932,11 @@ maxASCmap INTEGER ::= 7 maxASCpersist INTEGER ::= 6 maxCCTrCH INTEGER ::= 8 maxCellMeas INTEGER ::= 32 +maxCellMeas-ext INTEGER ::= 80 +maxCellMeas-ext2 INTEGER ::= 48 maxCellMeasOnSecULFreq INTEGER ::= 32 maxCellMeas-1 INTEGER ::= 31 +maxCellMeas-ext-1 INTEGER ::= 79 maxCellMeasOnSecULFreq-1 INTEGER ::= 31 maxCNdomains INTEGER ::= 4 maxCommonHRNTI INTEGER ::= 4 @@ -33668,6 +36965,7 @@ maxERUCCH INTEGER ::= 256 maxFACHPCH INTEGER ::= 8 maxFreq INTEGER ::= 8 maxFreqBandsEUTRA INTEGER ::= 16 +maxFreqBandsEUTRA-ext INTEGER ::= 48 maxFreqBandsFDD INTEGER ::= 8 maxFreqBandsFDD2 INTEGER ::= 22 maxFreqBandsFDD3 INTEGER ::= 86 @@ -33694,6 +36992,7 @@ maxHSSCCHs INTEGER ::= 4 maxHSSCCHs-1 INTEGER ::= 3 maxHSSICH-TDD128 INTEGER ::= 4 maxHSSICH-TDD128-1 INTEGER ::= 3 +maxIGPInfo INTEGER ::= 320 maxInterSysMessages INTEGER ::= 4 maxLoCHperRLC INTEGER ::= 2 maxLoggedMeasReport INTEGER ::= 128 @@ -33714,16 +37013,19 @@ maxMBSFNClusters INTEGER ::= 16 maxMeasCSGRange INTEGER ::= 4 maxMeasEvent INTEGER ::= 8 maxMeasEventOnSecULFreq INTEGER ::= 8 +maxMeasIdentity INTEGER ::= 32 maxMeasIntervals INTEGER ::= 3 maxMeasOccasionPattern INTEGER ::= 5 maxMeasOccasionPattern-1 INTEGER ::= 4 maxMeasParEvent INTEGER ::= 2 maxNonContiguousMultiCellCombinations INTEGER ::= 3 +maxNumAccessGroups INTEGER ::= 16 maxNumCDMA2000Freqs INTEGER ::= 8 maxNumE-AGCH INTEGER ::= 4 maxNumE-HICH INTEGER ::= 4 maxNumEUTRAFreqs INTEGER ::= 8 maxNumEUTRAFreqs-FACH INTEGER ::= 4 +maxNumEUTRAFreqs-FACH-ext INTEGER ::= 8 maxNumGSMCellGroup INTEGER ::= 16 maxNumGSMFreqRanges INTEGER ::= 32 maxNumFDDFreqs INTEGER ::= 8 @@ -33761,10 +37063,12 @@ maxRBperRAB INTEGER ::= 8 maxRBperTrCh INTEGER ::= 16 maxReportedEUTRACellPerFreq INTEGER ::= 4 maxReportedEUTRAFreqs INTEGER ::= 4 +maxReportedEUTRAFreqs-ext INTEGER ::= 8 maxReportedGSMCells INTEGER ::= 8 maxRL INTEGER ::= 8 maxRL-1 INTEGER ::= 7 maxRLCPDUsizePerLogChan INTEGER ::= 32 +maxRMPfrequencies INTEGER ::= 8 maxRFC3095-CID INTEGER ::= 16384 maxROHC-PacketSizes-r4 INTEGER ::= 16 maxROHC-Profile-r4 INTEGER ::= 8 @@ -33775,6 +37079,7 @@ maxSatClockModels INTEGER ::= 4 maxSCCPCH INTEGER ::= 16 maxSgnType INTEGER ::= 8 maxSIB INTEGER ::= 32 +maxSIB2 INTEGER ::= 64 maxSIB-FACH INTEGER ::= 8 maxSIBperMsg INTEGER ::= 16 maxSIrequest INTEGER ::= 4 @@ -33791,6 +37096,7 @@ maxTFCsub INTEGER ::= 1024 maxTFCI-2-Combs INTEGER ::= 512 maxTGPS INTEGER ::= 6 maxTrCH INTEGER ::= 32 +maxTrCHConcat INTEGER ::= 3 -- maxTrCHpreconf should be 16 but has been set to 32 for compatibility maxTrCHpreconf INTEGER ::= 32 maxTS INTEGER ::= 14 @@ -33800,5 +37106,6 @@ maxTS-LCR INTEGER ::= 6 maxTS-LCR-1 INTEGER ::= 5 maxURA INTEGER ::= 8 maxURNTI-Group INTEGER ::= 8 +maxWLANID INTEGER ::= 16 END diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn similarity index 85% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn index 0cc92b3..92a6373 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_CommonTemplates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 18:07:49 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12192 $ +// @version: IWD_15wk38 +// $Date: 2015-05-22 15:49:44 +0200 (Fri, 22 May 2015) $ +// $Rev: 13582 $ /******************************************************************************/ module UTRAN_RRC_CommonTemplates { @@ -19,34 +19,34 @@ module UTRAN_RRC_CommonTemplates { template (value) TFCS_ReconfAdd_CtfcSize_Ctfc2Bit_Type cs_TFCS_CtfcSize_Ctfc2Bit(integer p_Ctfc2Bit, template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ctfc2 := p_Ctfc2Bit, powerOffsetInformation := p_PowerOffsetInfo }; template (value) TFCS_ReconfAdd_CtfcSize_Ctfc4Bit_Type cs_TFCS_CtfcSize_Ctfc4Bit(integer p_Ctfc4Bit, template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ctfc4 := p_Ctfc4Bit, powerOffsetInformation := p_PowerOffsetInfo }; template (value) TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type cs_TFCS_CtfcSize_Ctfc6Bit(integer p_Ctfc6Bit, template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ctfc6 := p_Ctfc6Bit, powerOffsetInformation := p_PowerOffsetInfo }; template (value) TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type cs_TFCS_ReconfAdd_Ctfc6Bit(TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type.ctfc6 p_Ctfc6, template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, UTRAN) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ctfc6 := p_Ctfc6, powerOffsetInformation := p_PowerOffsetInfo }; template (value) TFCS_ReconfAdd_CtfcSize_Ctfc8Bit_Type cs_TFCS_CtfcSize_Ctfc8Bit(integer p_Ctfc8Bit, template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ ctfc8 := p_Ctfc8Bit, powerOffsetInformation := p_PowerOffsetInfo }; @@ -55,7 +55,7 @@ module UTRAN_RRC_CommonTemplates { template (value) AccessServiceClass_TDD_LCR_r4 cs_AccessServiceClass_TDD_LCR_r4 := { /* AccessServiceClass for LCR TDD; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ availableSYNC_UlCodesIndics := '11111111'B, subchannelSize := {size1 := NULL} }; @@ -64,7 +64,7 @@ module UTRAN_RRC_CommonTemplates { template (value) CommonTransChTFS cs_PCH_TFS_UE_TDD := { /* TFS for PCH; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -90,7 +90,7 @@ module UTRAN_RRC_CommonTemplates { template (value) CommonTransChTFS cs_FACH_TFS_UE_TDD := { /* TFS for FACH; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -120,7 +120,7 @@ module UTRAN_RRC_CommonTemplates { template (value) CommonTransChTFS cs_FACH_TFS_PS_UE_TDD := { /* TFS for PS FACH; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -153,7 +153,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) CommonTransChTFS cs_PCH_TFS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -178,7 +178,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) CommonTransChTFS cs_FACH_TFS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -205,7 +205,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) CommonTransChTFS cs_FACH_TFS_PS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -232,7 +232,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) CommonTransChTFS cs_RACH_TFS_UE_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -282,7 +282,7 @@ module UTRAN_RRC_CommonTemplates { template (value) CommonTransChTFS_LCR cs_RACH_TFS_LCR := { /* TFS for RACH; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { { @@ -312,7 +312,7 @@ module UTRAN_RRC_CommonTemplates { template (value) PICH_Info_LCR_r4 cs_PichInfo_TDD := { /* TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ timeslot := 0, pichChannelisationCodeList_LCR_r4 := { tsc_PICH1_ChC_TDD, @@ -331,7 +331,7 @@ module UTRAN_RRC_CommonTemplates { template (value) PRACH_RACH_Info_LCR_r4 cs_PRACH_RACH_Info_LCR_r4(TDD_PRACH_CCode_LCR_r4 p_UL_TS_ChannelisationCode, TDD_FPACH_CCode16_r4 p_DL_TS_ChannelisationCode) := { /* PRACH_RACH_Info for LCR TDD; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sync_UL_Info := { sync_UL_Codes_Bitmap := '11111111'B, prxUpPCHdes := 15, @@ -364,7 +364,7 @@ module UTRAN_RRC_CommonTemplates { template (value) CommonTimeslotInfoSCCPCH cs_CommonTimeslotInfoSCCPCH := { /* CommonTimeslotInfo for SCCPCH; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ secondInterleavingMode := frameRelated, tfci_Coding := tfci_bits_16, puncturingLimit := pl0_72, @@ -386,7 +386,7 @@ module UTRAN_RRC_CommonTemplates { * coding rate = 1/2; * CRCsize = N/A; * RateMatching = 235 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -411,7 +411,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DedicatedTransChTFS cs_DCH_81_TFS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -459,7 +459,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DedicatedTransChTFS cs_DCH_103_TFS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -487,7 +487,7 @@ module UTRAN_RRC_CommonTemplates { template (value) DedicatedDynamicTF_Info cs_DedicatedDynamicTF_Info_148 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlc_Size := { bitMode := { sizeType2 := { @@ -506,7 +506,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DedicatedTransChTFS cs_DCH_148_TFS_UE_UL_Common(RateMatchingAttribute p_RateMatchingAttribute) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti40 := { cs_DedicatedDynamicTF_Info_148 @@ -521,12 +521,12 @@ module UTRAN_RRC_CommonTemplates { } }; - template (value) DedicatedTransChTFS cs_DCH_148_TFS_UE_UL := cs_DCH_148_TFS_UE_UL_Common(170); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) DedicatedTransChTFS cs_DCH_148_TFS_DL_TDD_UE := cs_DCH_148_TFS_UE_UL_Common(170); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DedicatedTransChTFS cs_DCH_148_TFS_UE_UL := cs_DCH_148_TFS_UE_UL_Common(170); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) DedicatedTransChTFS cs_DCH_148_TFS_DL_TDD_UE := cs_DCH_148_TFS_UE_UL_Common(170); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //@sic R5s130345 sic@ template (value) DedicatedTransChTFS cs_DCH_148_TTI_10_TFS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti10 := { cs_DedicatedDynamicTF_Info_148 @@ -555,7 +555,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) CommonTransChTFS cs_BCH_246_TTI_20_TFS_LCR := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -587,7 +587,7 @@ module UTRAN_RRC_CommonTemplates { //----------------------------------------------------------------------------- template (value) PowerOffsetInformation cs_PowerOffsetInfo_FDD(integer p_GainFactorBetaC) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ gainFactorInformation := { signalledGainFactors := { modeSpecificInfo := { @@ -602,11 +602,11 @@ module UTRAN_RRC_CommonTemplates { powerOffsetPp_m := omit }; - template (value) PowerOffsetInformation cs_PowerOffsetInfoBelow64k := cs_PowerOffsetInfo_FDD(tsc_GainFactorBetaC_Below64k); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) PowerOffsetInformation cs_PowerOffsetInfoHigher64k := cs_PowerOffsetInfo_FDD(tsc_GainFactorBetaC_Higher64k); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) PowerOffsetInformation cs_PowerOffsetInfoBelow64k := cs_PowerOffsetInfo_FDD(tsc_GainFactorBetaC_Below64k); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) PowerOffsetInformation cs_PowerOffsetInfoHigher64k := cs_PowerOffsetInfo_FDD(tsc_GainFactorBetaC_Higher64k); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) PowerOffsetInformation cs_PowerOffsetInfoComputed := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ gainFactorInformation := { computedGainFactors := 0 }, @@ -614,7 +614,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) PowerOffsetInformation cs_PowerOffsetInfo_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ gainFactorInformation := { signalledGainFactors := { modeSpecificInfo := { @@ -630,7 +630,7 @@ module UTRAN_RRC_CommonTemplates { //----------------------------------------------------------------------------- template (value) TFCS cs_TFCS_CmplFACH_Tx(template (omit) PowerOffsetInformation p_PowerOffsetInformation) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -650,7 +650,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_SCCPCH_LCR := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -680,7 +680,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_Cmpl0(template (omit) PowerOffsetInformation p_PowerOffsetInformation) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -693,7 +693,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_Cmpl0_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -720,7 +720,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_Cmpl0_1_Tx_FDD(template (omit) PowerOffsetInformation p_PowerOffsetInfo) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -734,7 +734,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_Cmpl0_1_Rx := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -748,7 +748,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_Cmpl0_1_2_Rx := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -763,7 +763,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) TFCS cs_TFCS_Cmpl0_1_Tx_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -782,7 +782,7 @@ module UTRAN_RRC_CommonTemplates { SF512_AndPilot p_Sf, PositionFixedOrFlexible p_FixedFlexible, boolean p_TFCI_Existence) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cfnHandling := p_DL_DPCH_CfnHandling, modeSpecificInfo := { fdd := { @@ -804,7 +804,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DL_DPCH_InfoCommon_r6 cs_DL_DPCH_InfoCommon_TDD_r6(template (value) DL_DPCH_CfnHandling_r6_Type p_DL_DPCH_CfnHandling := cs_DL_DPCH_CfnHandling_Initialise_r6) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cfnHandling := p_DL_DPCH_CfnHandling, modeSpecificInfo := { tdd := { @@ -829,7 +829,7 @@ module UTRAN_RRC_CommonTemplates { template (omit) DefaultDPCH_OffsetValueFDD p_DefaultDPCH_OffsetValue := omit, template (omit) DPCH_CompressedModeInfo_r8 p_DPCH_CompressedModeInfo := omit, template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_dpchInfoCommon := { dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_FDD_r6(p_DL_DPCH_CfnHandling, p_Sf, p_PositionFixedOrFlexible, p_TfciExistence) }, @@ -847,7 +847,7 @@ module UTRAN_RRC_CommonTemplates { template (value) DL_CommonInformation_r8 cs_DL_CommonInfoDCH_SRB_FDD(SF512_AndPilot p_Sf, PositionFixedOrFlexible p_FixedFlexible, boolean p_TFCI_Existence) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_CommonInformation_FDD_r8(cs_DL_DPCH_CfnHandling_Initialise_r6, p_Sf, p_FixedFlexible, p_TFCI_Existence, tsc_DefaultDPCH_OffsetValue); @@ -856,28 +856,28 @@ module UTRAN_RRC_CommonTemplates { boolean p_TfciExistence := true, template (omit) DPCH_CompressedModeInfo_r8 p_DPCH_CompressedModeInfo := omit, template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_CommonInformation_FDD_r8(cs_DL_DPCH_CfnHandling_Maintain_r6(omit), p_Sf, p_PositionFixedOrFlexible, p_TfciExistence, omit, p_DPCH_CompressedModeInfo, p_TX_DiversityMode); template (value) DL_CommonInformation_r8 cs_DL_CommonInformationRB_SetUpSpeech(SF512_AndPilot p_Sf) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_CommonInformationRB_SetUp_FDD(p_Sf, fixed, false); template (value) DL_DPCH_CfnHandling_r6_Type cs_DL_DPCH_CfnHandling_Maintain_r6(template (omit) TimingMaintainedSynchInd p_TimingMaintainedSynchInd := false_) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ maintain := { timingmaintainedsynchind := p_TimingMaintainedSynchInd } }; template (value) DL_DPCH_CfnHandling_r6_Type cs_DL_DPCH_CfnHandling_Initialise_r6 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ initialise := NULL }; template (value) DL_CommonInformation_r8 cs_DL_CommonInfo_r8_TDD(template (value) DL_DPCH_CfnHandling_r6_Type p_DL_DPCH_CfnHandling := cs_DL_DPCH_CfnHandling_Initialise_r6) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120954: new parameter p_DL_DPCH_CfnHandling sic@ */ dl_dpchInfoCommon := { dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_TDD_r6(p_DL_DPCH_CfnHandling) @@ -927,7 +927,7 @@ module UTRAN_RRC_CommonTemplates { template (value) DL_DPCH_InfoPerRL_r7 cs_DL_DPCH_InfoPerRL_SRB_FDD(SF512_AndCodeNumber p_SpreadingFactorDPCH, template (omit) SecondaryScramblingCode p_SecScramblingCodeDPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fdd := { pCPICH_UsageForChannelEst := mayBeUsed, dpch_FrameOffset := (( (tsc_DefaultDPCH_OffsetValue*512 ) mod 38400)/256 ), /* DPCH-FrameOffset = DefaultDPCH-OffsetValueFDD MOD 38400 @@ -948,7 +948,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DL_DPCH_InfoPerRL_r7 cs_DL_DPCH_InfoPerRL_SRB_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { dl_CCTrChListToEstablish := { { @@ -1001,7 +1001,7 @@ module UTRAN_RRC_CommonTemplates { template (value) RB_ActivationTimeInfo cs_RB_ActTimeInfo(integer p_RB_Id, RLC_SequenceNumber p_N) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rb_Identity := p_RB_Id, rlc_SequenceNumber := p_N }; @@ -1009,14 +1009,14 @@ module UTRAN_RRC_CommonTemplates { //----------------------------------------------------------------------------- template (value) OctetModeRLC_SizeInfoType1 cs_OctetModeRLC_Size144 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sizeType1 := 16 //144 : 128 payload size + 16 }; // ----------------------------------------------------------------------------- template (value) OctetModeRLC_SizeInfoType1 cs_OctetModeRLC_Size336 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ //@sic R5s120113 moved from UTRAN_RRC_Templates sic@ sizeType2 := { // Actual size = (32 * part1) + 272 + (part2 * 8) part1 := 2, @@ -1026,7 +1026,7 @@ module UTRAN_RRC_CommonTemplates { template (value) DL_AM_RLC_Mode_r7 cs_DL_AM_RLC_r7 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_RLC_PDU_size := { fixedSize := cs_OctetModeRLC_Size336 //@sic R5s120113 sic@ }, @@ -1042,7 +1042,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DL_AM_RLC_Mode_r7 cds_DL_AM_RLC_SRB_r7 modifies cs_DL_AM_RLC_r7 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_RLC_PDU_size := { fixedSize := cs_OctetModeRLC_Size144 //@sic R5s120113 sic@ }, @@ -1050,7 +1050,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) DL_AM_RLC_Mode_r7 cds_DL_AM_RLC_HSDPA modifies cs_DL_AM_RLC_r7 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ receivingWindowSize := rw768, dl_RLC_StatusInfo := { timerStatusProhibit := tsp100 @@ -1060,7 +1060,7 @@ module UTRAN_RRC_CommonTemplates { //----------------------------------------------------------------------------- template (value) UL_AM_RLC_Mode cs_UL_AM_RLC := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ transmissionRLC_Discard := { noDiscard := dat15 }, @@ -1080,13 +1080,13 @@ module UTRAN_RRC_CommonTemplates { }; template (value) UL_AM_RLC_Mode cds_UL_AM_RLC_SRB modifies cs_UL_AM_RLC := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ transmissionWindowSize := tw32, max_RST := rst1 }; template (value) UL_AM_RLC_Mode cds_UL_AM_RLC_HSDPA modifies cs_UL_AM_RLC := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ pollingInfo := { timerPollProhibit := tpp100, timerPoll := tp100 @@ -1102,21 +1102,31 @@ module UTRAN_RRC_CommonTemplates { } }; + template (value) UL_AM_RLC_Mode cds_UL_AM_RLC_Reconf modifies cs_UL_AM_RLC := + { + timerRST := tr600, + pollingInfo := { + timerPollProhibit := tpp250, + timerPoll := tp250 + } + }; + + //----------------------------------------------------------------------------- template (value) TransmissionRLC_Discard cs_TransmissionRLC_Discard_TimerBasedNoExplicit(NoExplicitDiscard p_NoExplicitDiscard := dt50) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ timerBasedNoExplicit := p_NoExplicitDiscard }; template (value) UL_UM_RLC_Mode cs_UL_UM_RLC_Mode(template (omit) TransmissionRLC_Discard p_TransmissionRLC_Discard := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ transmissionRLC_Discard := p_TransmissionRLC_Discard }; template (value) DL_UM_RLC_Mode_r6 cs_DL_UM_RLC_Mode_r6(DL_UM_RLC_LI_size p_DL_UM_RLC_LI_size := size7, DL_Reception_Window_Size_r6 p_DL_Reception_Window_Size_r6 := size32) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_UM_RLC_LI_size := p_DL_UM_RLC_LI_size, dl_Reception_Window_Size := p_DL_Reception_Window_Size_r6 }; @@ -1126,7 +1136,7 @@ module UTRAN_RRC_CommonTemplates { template (value) RLC_Info_r7 cs_RLC_InfoAM_Common(template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode, template (value) DL_AM_RLC_Mode_r7 p_DL_AM_RLC_Mode, template (omit) RLC_Info_r7.useSpecialValueOfHEField p_UseSpecialValueOfHEField := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_RLC_Mode := { ul_AM_RLC_Mode := p_UL_AM_RLC_Mode }, @@ -1138,13 +1148,13 @@ module UTRAN_RRC_CommonTemplates { useSpecialValueOfHEField := p_UseSpecialValueOfHEField //default false }; - template (value) RLC_Info_r7 cs_RLC_InfoAM_Def := cs_RLC_InfoAM_Common(cs_UL_AM_RLC, cs_DL_AM_RLC_r7); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) RLC_Info_r7 cs_RLC_InfoAM_Def := cs_RLC_InfoAM_Common(cs_UL_AM_RLC, cs_DL_AM_RLC_r7); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ template (value) RLC_Info_r7 cs_RLC_InfoAM_HSU := cs_RLC_InfoAM_Common(cds_UL_AM_RLC_HSU, cds_DL_AM_RLC_HSDPA); /* @status APPROVED (LTE_IRAT) */ - template (value) RLC_Info_r7 cs_RLC_InfoAM_HSDPA := cs_RLC_InfoAM_Common(cds_UL_AM_RLC_HSDPA, cds_DL_AM_RLC_HSDPA); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) RLC_Info_r7 cs_RLC_InfoAM_HSDPA := cs_RLC_InfoAM_Common(cds_UL_AM_RLC_HSDPA, cds_DL_AM_RLC_HSDPA); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ template (value) RLC_Info_r7 cs_RLC_InfoUM_Common(template (value) UL_UM_RLC_Mode p_UL_UM_RLC_Mode := cs_UL_UM_RLC_Mode, template (value) DL_UM_RLC_Mode_r6 p_DL_UM_RLC_Mode := cs_DL_UM_RLC_Mode_r6) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_RLC_Mode := { ul_UM_RLC_Mode := p_UL_UM_RLC_Mode }, @@ -1157,7 +1167,7 @@ module UTRAN_RRC_CommonTemplates { }; template (value) RLC_Info_r7 cs_RLC_InfoTM_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ul_RLC_Mode := { ul_TM_RLC_Mode := { transmissionRLC_Discard := omit, diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn new file mode 100644 index 0000000..2f72af3 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Handover_Templates.ttcn @@ -0,0 +1,81 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 12:41:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14486 $ +/******************************************************************************/ + +module UTRAN_RRC_Handover_Templates { + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + + template (value) RAB_InformationList cs_HandoverFromUTRAN_RAB_InformationList := + { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { + rab_Identity := { + gsm_MAP_RAB_Identity := '00000101'B + }, + //mbms_SessionIdentity := omit, //- Not specified in message + //mbms_ServiceIdentity := omit, + cn_DomainIdentity := ps_domain, + nas_Synchronisation_Indicator := omit, //not present specified + re_EstablishmentTimer := useT315 + } + }; + + template (value) DL_DCCH_Message cs_HandoverFromUTRANCommand_EUTRA(IntegrityCheckInfo p_Integrityinfo, + RRC_TransactionIdentifier p_RRC_TI, + octetstring p_Eutra_Message) := + { /* TS 36.508 Table 4.7B.1-2: HANDOVER FROM UTRAN COMMAND */ + /* @status APPROVED (LTE_A, LTE_IRAT) */ + integrityCheckInfo := p_Integrityinfo, + message_ := { + handoverFromUTRANCommand_EUTRA := { + rrc_TransactionIdentifier := p_RRC_TI, + criticalExtensions := { + r8 := { + handoverFromUTRANCommand_EUTRA_r8 := { + activationTime := omit, + toHandoverRAB_Info := cs_HandoverFromUTRAN_RAB_InformationList, + eutra_Message := p_Eutra_Message + }, + handoverFromUTRANCommand_EUTRA_r8_add_ext := omit, + nonCriticalExtensions := omit + } + } + } + } + }; + + template (value) DL_DCCH_Message cs_HandoverFromUTRANCommand_EUTRA_r11 (IntegrityCheckInfo p_Integrityinfo, + RRC_TransactionIdentifier p_RRC_TI, + octetstring p_Eutra_Message, + template (omit) RSR_VCC_Info p_RSRVCCInfo := omit) := + { /* TS 36.508 Table 4.7B.1-2: HANDOVER FROM UTRAN COMMAND */ + /* @status APPROVED (LTE_A) */ + integrityCheckInfo := p_Integrityinfo, + message_ := { + handoverFromUTRANCommand_EUTRA := { + rrc_TransactionIdentifier := p_RRC_TI, + criticalExtensions := { + criticalExtensions := { + r11 := { + handoverFromUTRANCommand_EUTRA_r11 := { + rsr_vcc_Info := p_RSRVCCInfo, + activationTime := omit, + toHandoverRAB_Info := cs_HandoverFromUTRAN_RAB_InformationList, + eutra_Message := p_Eutra_Message + }, + handoverFromUTRANCommand_EUTRA_r11_add_ext := omit, + nonCriticalExtensions := omit + } + } + } + } + } + }; + +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn index 2861af3..5c26a92 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /******************************************************************************/ module UTRAN_RRC_RAB_Templates { @@ -27,30 +27,35 @@ module UTRAN_RRC_RAB_Templates { //-------------------------------------------- const B8_Type tsc_RAB_DefCS := '00000001'B; /* Default RAB Id for the CS domain - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ const B8_Type tsc_RAB_DefPS := '00000101'B; /* Default AB Id for the PS domain - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - const integer tsc_Mui := 0; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + const integer tsc_Mui := 0; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - const TimeslotNumber_LCR_r4 tsc_DL_TS_SCCH := 5; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + const TimeslotNumber_LCR_r4 tsc_DL_TS_SCCH := 5; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ const SF512_AndCodeNumber tsc_DL_DPCH1_ChC_64k_PS := { sf32 := 0 }; /* Channelization code for tsc_DL_DPCH1 for a 64 kbps PS configuration - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const SF512_AndCodeNumber tsc_DL_DPCH1_ChC_Speech := { sf128 := 0 }; /* Channelization code for tsc_DL_DPCH1 for a speech configuration - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ const SF512_AndPilot tsc_DL_DPCH1_SFP_64k_PS := { sfd32 := NULL }; /* Spreading factor and pilot bits - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - const SF512_AndPilot tsc_DL_DPCH1_SFP_SRB_3_4k := { sfd256 := pb4 }; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const SF512_AndPilot_r12 tsc_DL_DPCH1_SFP_64k_PS_r12 := { sfd32 := NULL }; /* Spreading factor and pilot bits + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const SF512_AndPilot tsc_DL_DPCH1_SFP_SRB_3_4k := { sfd256 := pb4 }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + const SF512_AndPilot_r12 tsc_DL_DPCH1_SFP_SRB_3_4k_r12 := { sfd256 := pb4 }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ const SF512_AndPilot tsc_DL_DPCH1_SFP_Speech := { sfd128 := pb4 }; /* Spreading factor and pilot bits for tsc_DL_DPCH1 for a speech configuration - @status APPROVED (LTE_A, LTE_IRAT) */ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + const SF512_AndPilot_r12 tsc_DL_DPCH1_SFP_Speech_r12 := { sfd128 := pb4 }; /* Spreading factor and pilot bits for tsc_DL_DPCH1 for a speech configuration + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ const SpreadingFactor tsc_UL_DPDCH_SF_64k_PS := sf16; /* Channelization code for UL DPDCH for a 64 kbps PS configuration - @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const SpreadingFactor tsc_UL_DPDCH_SF_Speech := sf64; /* Channelization code for UL DPDCH for a speech configuration - @status APPROVED (LTE_A, LTE_IRAT) */ - const MaxAllowedUL_TX_Power tsc_MaxAllowPwr := 33; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - const TimeslotNumber tsc_UL_TS_SICH := 1; /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) @sic R5s130661 sic@*/ + @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + const MaxAllowedUL_TX_Power tsc_MaxAllowPwr := 33; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + const TimeslotNumber tsc_UL_TS_SICH := 1; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) @sic R5s130661 sic@*/ const HS_SCCH_Codes tsc_HS_SCCH_ChC7 := 7; /* Channelization code for HS-SCCH - @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ const E_AGCH_ChannelisationCode tsc_E_AGCH_ChannelisationCode := 10; /* channelisation code acc. TS 34.108 @status APPROVED (LTE_IRAT, UTRAN) */ const E_DCH_MAC_d_FlowMaxRetrans tsc_E_DCH_MAC_d_FlowMaxRetrans_DTCH := 7; /* max. no. of retransmissions for DTCH MAC-d flows @@ -90,7 +95,7 @@ module UTRAN_RRC_RAB_Templates { /* * @desc Function that determines the number of HARQ processes according to 34.108 cl. 6.10.2.4.5 Parameter Set * @return HarqNrOfProcesses_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function f_GetNrOfHarqProcesses_FDD() return HarqNrOfProcesses_Type { @@ -113,7 +118,7 @@ module UTRAN_RRC_RAB_Templates { /* * @desc Function that determines the number of HARQ processes for TDD * @return HarqNrOfProcesses_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_GetNrOfHarqProcesses_TDD() return HarqNrOfProcesses_Type { @@ -165,7 +170,7 @@ module UTRAN_RRC_RAB_Templates { //---------------------------------------------------------------------------- template (value) HARQ_Info_r7 cs_HARQ_Info_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ numberOfProcesses := f_GetNrOfHarqProcesses_FDD(), memoryPartitioning := { implicit := NULL @@ -173,7 +178,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) HARQ_Info_r7 cs_HARQ_Info_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ numberOfProcesses := f_GetNrOfHarqProcesses_TDD(), memoryPartitioning := { implicit := NULL @@ -181,7 +186,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) Measurement_Feedback_Info_r7 cs_Measurement_Feedback_Info := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ modeSpecificInfo := { fdd := { measurementPowerOffset := 12, // Actual measurement power offset value = IE value * 0.5 @@ -193,7 +198,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) AddOrReconfMAC_dFlow cs_AddOrReconfMAC_dFlow(template (value) MAC_hs_AddReconfQueue p_MAC_hs_AddReconfQueue) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ mac_hs_AddReconfQueue_List := { p_MAC_hs_AddReconfQueue }, @@ -213,7 +218,7 @@ module UTRAN_RRC_RAB_Templates { template (value) MAC_hs_AddReconfQueue cs_MAC_hs_AddReconfQueue ( integer p_PDUSize := 336, integer p_Id := 0 // @sic R5s120671 sic@ ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ mac_hsQueueId := p_Id, mac_dFlowId := p_Id, reorderingReleaseTimer := rt50, @@ -228,7 +233,7 @@ module UTRAN_RRC_RAB_Templates { template (value) HSDSCH_Info_r7 cs_HSDSCH_Info_r7(template (value) HARQ_Info_r7 p_HARQ_Info, template (value) AddOrReconfMAC_dFlow p_AddOrReconfMAC_dFlow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ harqInfo := p_HARQ_Info, dl_MAC_HeaderType := { mac_hs := p_AddOrReconfMAC_dFlow @@ -236,7 +241,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) HS_SCCH_Info_r7 cs_HS_SCCH_Info_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ modeSpecificInfo := { fdd := { hS_SCCHChannelisationCodeInfo := { @@ -250,7 +255,7 @@ module UTRAN_RRC_RAB_Templates { template (value) HS_SCCH_TDD128_r6 cs_HS_SCCH_TDD128_r6(HS_ChannelisationCode_LCR p_FirstChannelisationCode, HS_ChannelisationCode_LCR p_SecondChannelisationCode, HS_ChannelisationCode_LCR p_HS_SICH_ChannelisationCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ timeslotNumber := tsc_DL_TS_SCCH, firstChannelisationCode := p_FirstChannelisationCode, secondChannelisationCode := p_SecondChannelisationCode, @@ -269,7 +274,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) HS_SCCH_Info_r9 cs_HS_SCCH_Info_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ modeSpecificInfo := { tdd := { tdd128 := { @@ -293,20 +298,20 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_HSPDSCH_Information_r8 cs_DL_HSPDSCH_Information_FDD ( template (value) HS_SCCH_Info_r7 p_HS_SCCH_Info, template (value) Measurement_Feedback_Info_r7 p_Measurement_Feedback_Info ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ hs_scch_Info := p_HS_SCCH_Info, measurement_feedback_Info := p_Measurement_Feedback_Info, modeSpecificInfo := { fdd := { dl_64QAM_Configured := omit, - hs_DSCH_TBSizeTable := omit//FFS - check value + hs_DSCH_TBSizeTable := omit } } }; template (value) DL_HSPDSCH_Information_r9 cs_DL_HSPDSCH_Information_TDD ( template (value) HS_SCCH_Info_r9 p_HS_SCCH_Info, template (value) HS_PDSCH_Midamble_Configuration_TDD128 p_HS_PDSCH_Midamble_Configuration_TDD128 ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ hs_scch_Info := p_HS_SCCH_Info, measurement_feedback_Info := omit, modeSpecificInfo := { @@ -322,7 +327,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) HS_PDSCH_Midamble_Configuration_TDD128 cs_HS_PDSCH_Midamble_Configuration_TDD128 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ midambleAllocationMode := { defaultMidamble := NULL }, @@ -613,7 +618,7 @@ module UTRAN_RRC_RAB_Templates { //---------------------------------------------------------------------------- template (value) DL_DPCH_InfoPerRL_r7 cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { dl_CCTrChListToEstablish := { { @@ -657,7 +662,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DL_DPCH_InfoPerRL_r7 cs_DL_DPCH_InfoPerRL_r7_PS_and_ConvSpeech_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ tdd := { dl_CCTrChListToEstablish := { { @@ -701,7 +706,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DL_DPCH_InfoPerRL_r7 cs_DL_DPCH_InfoPerRL_Speech_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tdd := { dl_CCTrChListToEstablish := { { @@ -754,7 +759,7 @@ module UTRAN_RRC_RAB_Templates { template (value) TFCS cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx := { /* Values according to condition A3 in TS 34.108 clause 9.1.1: DL Transport channel information common for all transport channel */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -776,7 +781,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) TFCS cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx ( template (value) PowerOffsetInformation p_PowerOffsetInformation ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -800,7 +805,7 @@ module UTRAN_RRC_RAB_Templates { template (value) TFCS cs_TFCS_Cmpl0_1_11_12_13_23_Tx ( template (value) PowerOffsetInformation p_PowerOffsetInformation ) := { /* used for SPEECH RAB: 36.508 cl. 4.8.3 Table 4.8.3-1 UTRA Speech TS 34.108 subclause 6.10.2.4.1.4 */ - /* @status APPROVED (LTE_A, LTE_IRAT, UTRAN) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -818,7 +823,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) TFCS cs_TFCS_Cmpl0_1_11_12_13_23_Rx := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -840,7 +845,7 @@ module UTRAN_RRC_RAB_Templates { template (value) UL_DPCH_Info_r7 cs_UL_DPCH_InfoACK_HSDPA_FDD(SpreadingFactor p_SprdFct, PuncturingLimit p_PuncLimit, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_UL_DPCH_Info_FDD(p_SprdFct, p_PuncLimit, p_UL_ScramblingCode, cs_UL_DPCH_PowerControlInfo_r7_FDD(3, 3, 1)); template (value) UL_DPCH_Info_r7 cs_UL_DPCH_OnlyHS_PDSCH_FDD (UL_ScramblingCode p_UL_ScramblingCode) := @@ -879,29 +884,29 @@ module UTRAN_RRC_RAB_Templates { }; - template (value) UL_DPCH_Info_r7 cs_UL_DPCH_64k_PS_TDD := cs_UL_DPCH_Info_1TS_TDD (1, omit, tfci_bits_16, pl0_56,1, tsc_UL_DPCH1_ChC_64k_PS); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) @sic R5s120955 sic@ */ - template (value) UL_DPCH_Info_r7 cs_UL_DPCH_Speech_TDD := cs_UL_DPCH_Info_1TS_TDD (1, omit, tfci_bits_16, pl0_48,1, tsc_UL_DPCH1_ChC_Speech); /* @status APPROVED (LTE_A, LTE_IRAT) @sic R5s120956 sic@*/ - template (value) UL_DPCH_Info_r7 cs_UL_DPCH_PS_and_ConvSpeech_TDD := cs_UL_DPCH_Info_1TS_TDD (1, omit, tfci_bits_16, pl0_92,3, tsc_UL_DPCH1_ChC_PS_and_ConvSpeech); /* @status APPROVED (LTE_A, LTE_IRAT) @sicR5s130447 sic@ */ + template (value) UL_DPCH_Info_r7 cs_UL_DPCH_64k_PS_TDD := cs_UL_DPCH_Info_1TS_TDD (1, omit, tfci_bits_16, pl0_56,1, tsc_UL_DPCH1_ChC_64k_PS); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) @sic R5s120955 sic@ */ + template (value) UL_DPCH_Info_r7 cs_UL_DPCH_Speech_TDD := cs_UL_DPCH_Info_1TS_TDD (1, omit, tfci_bits_16, pl0_48,1, tsc_UL_DPCH1_ChC_Speech); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) @sic R5s120956 sic@*/ + template (value) UL_DPCH_Info_r7 cs_UL_DPCH_PS_and_ConvSpeech_TDD := cs_UL_DPCH_Info_1TS_TDD (1, omit, tfci_bits_16, pl0_92,3, tsc_UL_DPCH1_ChC_PS_and_ConvSpeech); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) @sicR5s130447 sic@ */ //---------------------------------------------------------------------------- - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCH_PS_64k_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoTM_12_2k_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCH_PS_64k_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfoHigher64k)); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoTM_12_2k_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCH_PS_64k_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoTM_12_2k_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCH_PS_64k_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoTM_12_2k_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- template (value) RLC_SizeExplicitList cs_RLC_SizeExplicit2 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ { rlc_SizeIndex := 2 } }; template (value) RLC_SizeExplicitList cs_RLC_SizeExplicit1 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ // @sic R5s130009 sic@ { rlc_SizeIndex := 1 } } @@ -915,7 +920,7 @@ module UTRAN_RRC_RAB_Templates { coding rate = 1/3; CRCsize = 12; RateMatching = 200 */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ tti := { tti20 := { { @@ -978,7 +983,7 @@ module UTRAN_RRC_RAB_Templates { coding = turbo; CRCsize = 16; RateMatching = 150 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tti := { tti20 := { { @@ -1013,7 +1018,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DedicatedTransChTFS cds_DCH_336_TFS_0_UE modifies cs_DCH_336_TFS_UE := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ tti := { tti20 := { [0]:={ @@ -1029,14 +1034,14 @@ module UTRAN_RRC_RAB_Templates { template (value) UL_AddReconfTransChInfoList_r8 cs_UL_AddReconfTransChInfoListDCH_PS_64k (TransportChannelIdentity p_PS_TransportChannelIdentity := tsc_UL_DCH1) := { /* Values according to the condition A3 in TS 34.108 clause 9.1.1: Added or Reconfigured UL TrCH information */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ // @sic R5s120070 sic@ cs_UL_AddReconfTransChInfoDCCH(p_PS_TransportChannelIdentity, cs_DCH_336_TFS_UE), cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH5, cs_DCH_148_TFS_UE_UL) }; template (value) UL_AddReconfTransChInfoList_r8 cs_UL_AddReconfTransChInfoListTM_12_2k := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH1, cs_DCH_81_TFS_UE), cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH2, cs_DCH_103_TFS_UE), cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH3, cs_DCH_60_TFS_UE), @@ -1046,7 +1051,7 @@ module UTRAN_RRC_RAB_Templates { //---------------------------------------------------------------------------- template (value) DL_AddReconfTransChInformation_r7 cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r7 ( template (value) HSDSCH_Info_r7 p_HSDSCH_Info ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ dl_TransportChannelType := { hsdsch := NULL }, @@ -1058,13 +1063,13 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_AddReconfTransChInformation_r7 cs_DL_AddReconfTransChInfo_WithoutQuality(TransportChannelIdentity p_DlTrChId, TransportChannelIdentity p_UlTrChId ) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_AddReconfTransChInfo_r7(p_DlTrChId, p_UlTrChId, omit); template (value) DL_AddReconfTransChInformation_r7 cs_DL_AddReconfTransChInfoExplicit(TransportChannelIdentity p_TransportChannelId, template (value) DedicatedTransChTFS p_DedicatedTransChTFS, template (omit) QualityTarget p_QualityTarget := cs_QualityTarget) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ // @sic R5s120301 sic@ dl_TransportChannelType := { dch := p_TransportChannelId @@ -1078,12 +1083,12 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DL_AddReconfTransChInformation_r7 cs_DL_AddReconfTransChInfoDCH_PS_TFCS(TransportChannelIdentity p_TransportChannelId) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s120686 sic@ */ cs_DL_AddReconfTransChInfoExplicit(p_TransportChannelId, cds_DCH_336_TFS_0_UE); template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoListTM_12_2k := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_AddReconfTransChInfoExplicit(tsc_DL_DCH1, cs_DCH_81_TFS_DL_UE, omit), cs_DL_AddReconfTransChInfo_WithoutQuality ( tsc_DL_DCH2, tsc_UL_DCH2 ), cs_DL_AddReconfTransChInfo_WithoutQuality ( tsc_DL_DCH3, tsc_UL_DCH3 ), @@ -1093,7 +1098,7 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoListDCH_PS_64k(TransportChannelIdentity p_DL_PS_TransportChannelIdentity := tsc_DL_DCH1, TransportChannelIdentity p_UL_PS_TransportChannelIdentity := tsc_UL_DCH1) := { /* According to the corresponding IE in the RADIO BEARER SETUP message using condition A3 in TS 34.108 clause 9.1.1: Added or Reconfigured DL TrCH information */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ // @sic R5s120070 sic@ cs_DL_AddReconfTransChInfo_r7 ( p_DL_PS_TransportChannelIdentity, p_UL_PS_TransportChannelIdentity ), cs_DL_AddReconfTransChInfo_r7 ( tsc_DL_DCH5, tsc_UL_DCH5 ) @@ -1113,7 +1118,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r7(template (value) HARQ_Info_r7 p_HARQ_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ // @sic R5s120686 sic@ cs_DL_AddReconfTransChInfo_r7(tsc_DL_DCH5, tsc_UL_DCH5), cs_DL_AddReconfTransChInfoDCH_PS_TFCS (tsc_DL_DCH1), @@ -1122,13 +1127,13 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_FDD := cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_r7(cs_HARQ_Info_FDD); /* @status APPROVED (LTE_IRAT) */ template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSPA_FDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSPA_r7(cs_HARQ_Info_FDD); /* @status APPROVED (LTE_IRAT); @sic R5s120397 sic@ */ - template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_FDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r7(cs_HARQ_Info_FDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN); @sic R5s120686 sic@ */ + template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_FDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r7(cs_HARQ_Info_FDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN); @sic R5s120686 sic@ */ //============================================================================ template (value) UL_LogicalChannelMappings_r8 cs_UL_LogicalChannelMappings_r8_DCH(TransportChannelIdentity p_TransportChannelId, MAC_LogicalChannelPriority p_MAC_LogicalChannelPriority) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ oneLogicalChannel := { ul_TrCH_Type := { dch_rach_usch := { @@ -1148,7 +1153,7 @@ module UTRAN_RRC_RAB_Templates { template (value) UL_LogicalChannelMappings_r8 cs_UL_LogicalChannelMappings_r8_RACH(LogicalChannelIdentity p_LogicalChannelId, MAC_LogicalChannelPriority p_MAC_LogicalChannelPriority, template (value) RLC_SizeExplicitList p_UL_RACH_RLC_SizeExplicitList := cs_RLC_SizeExplicit2) := // @sic R5s130009 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ oneLogicalChannel := { ul_TrCH_Type := { dch_rach_usch := { @@ -1167,7 +1172,7 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_LogicalChannelMappingList_r7 cs_DL_LogicalChannelMappingList_r7_DCH(TransportChannelIdentity p_TransportChannelId, template (omit) LogicalChannelIdentity p_LogicalChannelIdentity := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { dl_TransportChannelType := { dch := p_TransportChannelId @@ -1177,7 +1182,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DL_LogicalChannelMappingList_r7 cs_DL_LogicalChannelMappingList_r7_FACH(LogicalChannelIdentity p_LogicalChannelId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ { dl_TransportChannelType := { fach := NULL @@ -1187,7 +1192,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) DL_LogicalChannelMappingList_r7 cs_DL_LogicalChannelMappingList_r7_HSDSCH(MAC_d_FlowIdentity p_MAC_d_FlowIdentity := 0) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ { dl_TransportChannelType := { hsdsch := { @@ -1203,7 +1208,7 @@ module UTRAN_RRC_RAB_Templates { template (value) RAB_Info_r7 cs_RAB_InfoPS_Common(bitstring p_RAB_Id, CN_DomainIdentity p_DomainIdentity, Re_EstablishmentTimer p_ReEstTimer) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rab_Identity := { gsm_MAP_RAB_Identity := p_RAB_Id }, @@ -1216,7 +1221,7 @@ module UTRAN_RRC_RAB_Templates { template (value) RAB_Info_r7 cs_RAB_InfoPS(bitstring p_RAB_Id, Re_EstablishmentTimer p_ReEstTimer := useT315) := - /* @status APPROVED (LTE_A, LTE_IRAT, UTRAN, POS) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_InfoPS_Common(p_RAB_Id, ps_domain, p_ReEstTimer); template (value) RAB_InformationSetup_r8 cs_RAB_Info_PS_Common(bitstring p_RAB_Id, @@ -1224,7 +1229,7 @@ module UTRAN_RRC_RAB_Templates { template (omit) PDCP_Info_r4 p_PDCP_Info, template (value) RLC_Info_r7 p_RLC_Info, template (value) RB_MappingInfo_r8 p_RB_MappingInfo) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ rab_Info := cs_RAB_InfoPS(p_RAB_Id), cs_HSPA_Information := omit, rab_InfoReplace := omit, @@ -1241,7 +1246,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) PDCP_Info_r4 cs_PDCP_Info_DCH_PS := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ losslessSRNS_RelocSupport := { notSupported := NULL }, @@ -1253,7 +1258,7 @@ module UTRAN_RRC_RAB_Templates { TransportChannelIdentity p_UL_PS_TransportChannelIdentity := tsc_UL_DCH1, // @sic R5s120070 sic@ template (value) RLC_SizeExplicitList p_UL_RACH_RLC_SizeExplicitList := cs_RLC_SizeExplicit2) := // @sic R5s130009 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ { ul_LogicalChannelMappings := cs_UL_LogicalChannelMappings_r8_DCH(p_UL_PS_TransportChannelIdentity, tsc_MAC_LogicalChannelPrio8), dl_LogicalChannelMappingList := cs_DL_LogicalChannelMappingList_r7_DCH(p_DL_PS_TransportChannelIdentity) @@ -1265,7 +1270,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) RB_MappingInfo_r8 cs_RB_MappingInfo_PS_HSDPA := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ { ul_LogicalChannelMappings := cs_UL_LogicalChannelMappings_r8_DCH(tsc_UL_DCH1, tsc_MAC_LogicalChannelPrio8), dl_LogicalChannelMappingList := cs_DL_LogicalChannelMappingList_r7_HSDSCH @@ -1274,7 +1279,7 @@ module UTRAN_RRC_RAB_Templates { template (value) RB_MappingInfo_r8 cs_RB_MappingInfo_PS_HSDPA_3Mux := { /* three multiplexing options @sic R5s120686 sic@ */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ { ul_LogicalChannelMappings := cs_UL_LogicalChannelMappings_r8_DCH(tsc_UL_DCH1, tsc_MAC_LogicalChannelPrio8), //@sic R5s130979 sic@ dl_LogicalChannelMappingList := cs_DL_LogicalChannelMappingList_r7_DCH(tsc_DL_DCH1) @@ -1288,12 +1293,22 @@ module UTRAN_RRC_RAB_Templates { dl_LogicalChannelMappingList := cs_DL_LogicalChannelMappingList_r7_FACH(tsc_DL_DTCH1) } }; + + template (value) RB_MappingInfo_r8 cs_RB_MappingInfo_RACH_FACH(TransportChannelIdentity p_DL_PS_TransportChannelIdentity, + TransportChannelIdentity p_UL_PS_TransportChannelIdentity, + MAC_LogicalChannelPriority p_MAC_LogicalChannelPriority) := + { + { + ul_LogicalChannelMappings := cs_UL_LogicalChannelMappings_r8_RACH(p_UL_PS_TransportChannelIdentity, p_MAC_LogicalChannelPriority), + dl_LogicalChannelMappingList := cs_DL_LogicalChannelMappingList_r7_FACH(p_DL_PS_TransportChannelIdentity) + } + }; template (value) RAB_InformationSetup_r8 cs_RAB_InfoFACH_PS(bitstring p_RAB_Id, template (value) RLC_Info_r7 p_RLC_Info, template (value) RLC_SizeExplicitList p_UL_RACH_RLC_SizeExplicitList := cs_RLC_SizeExplicit2 //@sic R5s130432 sic@ ) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common(p_RAB_Id, tsc_RB20, omit, p_RLC_Info, cs_RB_MappingInfo_PS(-,-, p_UL_RACH_RLC_SizeExplicitList)); template (value) RAB_InformationSetup_r8 cs_RAB_InfoSetupDCH_PS_64k (bitstring p_RAB_Id, @@ -1302,20 +1317,20 @@ module UTRAN_RRC_RAB_Templates { TransportChannelIdentity p_UL_PS_TransportChannelIdentity := tsc_UL_DCH1 //@sic R5s140096 sic@ ) := /* Values according to 34.108 cl. 9.1.1 Message RADIO BEARER SETUP message: AM or UM using condition A3 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common(p_RAB_Id, tsc_RB20, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS(p_DL_PS_TransportChannelIdentity, p_UL_PS_TransportChannelIdentity)); template (value) RAB_InformationSetup_r8 cs_RAB_InfoSetupDCH_PS_64k_TDD (bitstring p_RAB_Id, template (value) RLC_Info_r7 p_RLC_Info ) := /* Values according to 34.108 cl. 9.1.1 Message RADIO BEARER SETUP message: AM or UM using condition A3 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ /* @sic R5s130009 sic@ */ cs_RAB_Info_PS_Common(p_RAB_Id, tsc_RB20, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS(-, -, cs_RLC_SizeExplicit1)); template (value) RAB_InformationSetup_r8 cs_RAB_InfoSetupDCH_PS_HSDPA (bitstring p_RAB_Id, template (value) RLC_Info_r7 p_RLC_Info ) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common(p_RAB_Id, tsc_RB25, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS_HSDPA); template (value) RAB_InformationSetup_r8 cs_RAB_InfoSetupHSUPA_RB25_1MuxOption := @@ -1328,7 +1343,7 @@ module UTRAN_RRC_RAB_Templates { TransportChannelIdentity p_UL_TransportChannelId, MAC_LogicalChannelPriority p_MAC_LogicalChannelPriority, TransportChannelIdentity p_DL_TransportChannelId) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ rb_Identity := p_RB_Identity, pdcp_Info := omit, rlc_InfoChoice := { @@ -1346,7 +1361,7 @@ module UTRAN_RRC_RAB_Templates { bitstring p_RAB_Id) := { /* 36.508 cl. 4.8.3 Table 4.8.3-1: UTRA Speech TS 34.108 subclause 6.10.2.4.1.4 Conversational / speech / UL:12.2 DL:12.2 kbps / CS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH */ - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ rab_Info := cs_RAB_InfoPS_Common(p_RAB_Id, cs_domain, p_ReEstTimer), cs_HSPA_Information := omit, rab_InfoReplace := omit, @@ -1411,7 +1426,7 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_DCCH_Message cs_RadioBearerSetup_r8(IntegrityCheckInfo p_Integrityinfo, template (value) RadioBearerSetup_r8_IEs p_RadioBearerSetup) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := p_Integrityinfo, message_ := { radioBearerSetup := { @@ -1440,7 +1455,7 @@ module UTRAN_RRC_RAB_Templates { //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r8_IEs cs_RadioBearerSetup_r8_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeInfo := omit, cipheringModeInfo := omit, sr_vcc_Info := omit, @@ -1492,7 +1507,7 @@ module UTRAN_RRC_RAB_Templates { template (value) RadioBearerSetup_r8_IEs cds_RadioBearerSetup_r8_IEs_FACH_PS_FDD (C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r8_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, //@sic R5s110210 sic@ rrc_StateIndicator := cell_FACH, @@ -1508,7 +1523,7 @@ module UTRAN_RRC_RAB_Templates { template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_FDD (IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r8(p_Integrityinfo, cds_RadioBearerSetup_r8_IEs_FACH_PS_FDD(p_C_RNTI, p_RAB_Id)); @@ -1520,7 +1535,7 @@ module UTRAN_RRC_RAB_Templates { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r8_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, @@ -1544,7 +1559,7 @@ module UTRAN_RRC_RAB_Templates { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r8(p_Integrityinfo, cds_RadioBearerSetup_r8_IEs_HS_FromDCH_UL_64k_FDD (p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); @@ -1556,7 +1571,7 @@ module UTRAN_RRC_RAB_Templates { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r8_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -1578,7 +1593,7 @@ module UTRAN_RRC_RAB_Templates { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r8(p_Integrityinfo, cds_RadioBearerSetup_r8_IEs_64k_PS_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); @@ -1590,7 +1605,7 @@ module UTRAN_RRC_RAB_Templates { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r8_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -1611,7 +1626,7 @@ module UTRAN_RRC_RAB_Templates { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode ) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r8(p_Integrityinfo, cds_RadioBearerSetup_r8_IEs_Speech_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); @@ -1667,7 +1682,7 @@ module UTRAN_RRC_RAB_Templates { hs_scch_LessInfo := omit, mimoParameters := omit, maxAllowedUL_TX_Power := p_MaxAllowedUL_TX_Power, - ul_DPCH_Info := omit,//FFS - cds_PhyChReconf64kPSEventTriggerCompModeDL_U is used in TTCN2. Split depending on RAB type? + ul_DPCH_Info := omit, ul_EDCH_Information := omit, dl_HSPDSCH_Information := omit, dl_CommonInformation := p_DL_CommonInformation, @@ -1691,7 +1706,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) TFCS cs_TFCS_Cmpl0_To119_Tx (template (omit) PowerOffsetInformation p_PowerOffsetInformation):= - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -1733,7 +1748,7 @@ module UTRAN_RRC_RAB_Templates { }; template (value) TFCS cs_TFCS_Cmpl0_To119_Rx := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ normalTFCI_Signalling := { complete := { ctfcSize := { @@ -1774,15 +1789,15 @@ module UTRAN_RRC_RAB_Templates { } }; - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfo_TM3_AM1_0To119_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfoHigher64k)); /* @status APPROVED (LTE_A, LTE_IRAT) */ - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfo_TM3_AM1_0To119_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfo_TM3_AM1_0To119_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfoHigher64k)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfo_TM3_AM1_0To119_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ template (value) RadioBearerSetup_r8_IEs cds_RadioBearerSetup_r8_IEs_PSandConvSpeech_FDD(ActivationTime p_Activetime, bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) modifies cs_RadioBearerSetup_r8_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -1803,7 +1818,7 @@ module UTRAN_RRC_RAB_Templates { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode ) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r8(p_Integrityinfo, cds_RadioBearerSetup_r8_IEs_PSandConvSpeech_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); @@ -1836,15 +1851,15 @@ module UTRAN_RRC_RAB_Templates { template (value) SysInfoType3.v4b0NonCriticalExtensions cs_DSACRestriction_PPAC_ParametersForPLMNOfMIB := { /* @status APPROVED (LTE_IRAT) */ sysInfoType3_v4b0ext := { - mapping_LCR := omit //FFS - no value defined in specific message contents + mapping_LCR := omit // no value defined in specific message contents }, v590NonCriticalExtension := { sysInfoType3_v590ext := { - cellSelectReselectInfo_v590ext := omit //FFS - no value defined in specific message contents + cellSelectReselectInfo_v590ext := omit // no value defined in specific message contents }, v5c0NoncriticalExtension := { sysInfoType3_v5c0ext := { - cellSelectReselectInfoTreselectionScaling_v5c0ext := omit //FFS - no value defined in specific message contents + cellSelectReselectInfoTreselectionScaling_v5c0ext := omit // no value defined in specific message contents }, v670NonCriticalExtension := { sysInfoType3_v670ext := { @@ -1858,14 +1873,14 @@ module UTRAN_RRC_RAB_Templates { noRestriction := NULL } }, - domainSpecificAccessRestictionForSharedNetwork := omit //FFS - no value defined in specific message contents + domainSpecificAccessRestictionForSharedNetwork := omit // no value defined in specific message contents }, v770NonCriticalExtension := { sysInfoType3_v770ext := { - deferredMeasurementControlReadingSupport := omit, //FFS - no value defined in specific message contents - q_QualMin_Offset := omit, //FFS - no value defined in specific message contents - q_RxlevMin_Offset := omit, //FFS - no value defined in specific message contents - mbsfnOnlyService := omit //FFS - no value defined in specific message contents + deferredMeasurementControlReadingSupport := omit, // no value defined in specific message contents + q_QualMin_Offset := omit, // no value defined in specific message contents + q_RxlevMin_Offset := omit, // no value defined in specific message contents + mbsfnOnlyService := omit // no value defined in specific message contents }, v830NonCriticalExtension := { sysInfoType3_v830ext := { @@ -1876,7 +1891,7 @@ module UTRAN_RRC_RAB_Templates { noRestriction := NULL } }, - pagingPermissionWithAccessControlParametersForSharedNetwork := omit //FFS - no value defined in specific message contents + pagingPermissionWithAccessControlParametersForSharedNetwork := omit // no value defined in specific message contents }, v860NonCriticalExtension := omit } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn index 52a53e3..f8554fd 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r10.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /******************************************************************************/ module UTRAN_RRC_RAB_Templates_r10 { @@ -29,12 +29,12 @@ module UTRAN_RRC_RAB_Templates_r10 { boolean p_TfciExistence := true, template (omit) DPCH_CompressedModeInfo_r10 p_DPCH_CompressedModeInfo := omit, template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_CommonInfo_FDD_r10(cs_DL_DPCH_CfnHandling_Maintain_r6(omit), p_Sf, p_PositionFixedOrFlexible, p_TfciExistence, omit, p_DPCH_CompressedModeInfo, p_TX_DiversityMode); template (value) DL_CommonInformation_r10 cs_DL_CommonInformationRB_SetUpSpeech_r10(SF512_AndPilot p_Sf) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_CommonInformationRB_SetUp_FDD_r10 (p_Sf, fixed, false); //--------------------------------------------------------------------------------------------------------------------- @@ -124,7 +124,7 @@ module UTRAN_RRC_RAB_Templates_r10 { //---------------------------------------------------------------------------- template (value) DL_DCCH_Message cs_RadioBearerSetup_r10(IntegrityCheckInfo p_Integrityinfo, template (value) RadioBearerSetup_r10_IEs p_RadioBearerSetup) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := p_Integrityinfo, message_ := { radioBearerSetup := { @@ -156,7 +156,7 @@ module UTRAN_RRC_RAB_Templates_r10 { //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r10_IEs cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeInfo := omit, cipheringModeInfo := omit, sr_vcc_Info := omit, @@ -214,7 +214,7 @@ module UTRAN_RRC_RAB_Templates_r10 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -234,7 +234,7 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -256,7 +256,7 @@ module UTRAN_RRC_RAB_Templates_r10 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_64k_PS_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUp64k_PS_r10_TDD(IntegrityCheckInfo p_Integrityinfo, @@ -264,7 +264,7 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9. */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_64k_PS_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- @@ -273,7 +273,7 @@ module UTRAN_RRC_RAB_Templates_r10 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, @@ -295,17 +295,17 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { - cs_RAB_InfoSetupDCH_PS_HSDPA (p_RAB_Id, cs_RLC_InfoAM_HSDPA)//FFS - Check values + cs_RAB_InfoSetupDCH_PS_HSDPA (p_RAB_Id, cs_RLC_InfoAM_HSDPA) }, - ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD,//FFS - Check values - ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k,//FFs - check values - dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx),//FFS - check values - dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9_TDD,//FFS - check values + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9_TDD, maxAllowedUL_TX_Power := tsc_MaxAllowPwr, ul_DPCH_Info := cs_UL_DPCH_64k_PS_TDD, dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_TDD (cs_HS_SCCH_Info_TDD, cs_HS_PDSCH_Midamble_Configuration_TDD128), @@ -319,7 +319,7 @@ module UTRAN_RRC_RAB_Templates_r10 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_HS_FromDCH_UL_64k_FDD (p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUpHS_FromDCH_UL_64k_r10_TDD(IntegrityCheckInfo p_Integrityinfo, @@ -327,14 +327,14 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) := /* PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_HS_FromDCH_UL_64k_TDD (p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r10_IEs cds_RadioBearerSetup_r10_IEs_FACH_PS_FDD(C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, rrc_StateIndicator := cell_FACH, @@ -350,7 +350,7 @@ module UTRAN_RRC_RAB_Templates_r10 { template (value) RadioBearerSetup_r10_IEs cds_RadioBearerSetup_r10_IEs_FACH_PS_TDD(C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, rrc_StateIndicator := cell_FACH, @@ -366,13 +366,13 @@ module UTRAN_RRC_RAB_Templates_r10 { template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_FDD_r10(IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_FACH_PS_FDD(p_C_RNTI, p_RAB_Id)); template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_TDD_r10(IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_FACH_PS_TDD(p_C_RNTI, p_RAB_Id)); //---------------------------------------------------------------------------- @@ -381,7 +381,7 @@ module UTRAN_RRC_RAB_Templates_r10 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -401,7 +401,7 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -422,14 +422,14 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_Speech_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUpSpeech_r10_TDD(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_Speech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- @@ -438,7 +438,7 @@ module UTRAN_RRC_RAB_Templates_r10 { PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -458,7 +458,7 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r10_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -479,14 +479,14 @@ module UTRAN_RRC_RAB_Templates_r10 { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_PSandConvSpeech_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_r10_TDD(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r10(p_Integrityinfo, cds_RadioBearerSetup_r10_IEs_PSandConvSpeech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn similarity index 88% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn index 34a323a..56a3372 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r11.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-29 10:23:18 +0200 (Fri, 29 Aug 2014) $ -// $Rev: 11945 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /* *****************************************************************************/ module UTRAN_RRC_RAB_Templates_r11 { @@ -27,7 +27,7 @@ module UTRAN_RRC_RAB_Templates_r11 { /* * @desc Function that determines the number of HARQ processes according to 34.108 cl. 6.10.2.4.5 Parameter Set * @return HarqNrOfProcesses_r11_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_GetNrOfHarqProcesses_FDD_r11() return HarqNrOfProcesses_r11_Type { @@ -50,7 +50,7 @@ module UTRAN_RRC_RAB_Templates_r11 { /* * @desc Function that determines the number of HARQ processes according to 34.108 cl. 6.11.5.4.6 Parameter Set * @return HarqNrOfProcesses_r11_Type - * @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ function f_GetNrOfHarqProcesses_TDD_r11() return HarqNrOfProcesses_r11_Type { @@ -73,26 +73,27 @@ module UTRAN_RRC_RAB_Templates_r11 { //============================================================================ // Information element //============================================================================ + template (value) DL_CommonInformation_r11 cs_DL_CommonInformationRB_SetUp_FDD_r11(SF512_AndPilot p_Sf, + PositionFixedOrFlexible p_PositionFixedOrFlexible, boolean p_TfciExistence := true, template (omit) DPCH_CompressedModeInfo_r10 p_DPCH_CompressedModeInfo := omit, template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_CommonInfo_FDD_r11(cs_DL_DPCH_CfnHandling_Maintain_r6(omit), p_Sf, p_PositionFixedOrFlexible, p_TfciExistence, omit, p_DPCH_CompressedModeInfo, p_TX_DiversityMode); - + template (value) DL_CommonInformation_r11 cs_DL_CommonInformationRB_SetUpSpeech_r11(SF512_AndPilot p_Sf) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_CommonInformationRB_SetUp_FDD_r11(p_Sf, fixed, false); - - + // ----------------------------------------------------------------------------- template (value) DL_InformationPerRL_List_r11 cs_DL_InformationPerRL_FDD_r11(PrimaryScramblingCode p_PrimaryScramblingCode, SF512_AndCodeNumber p_Sf, SecondaryScramblingCode p_SecondaryScramblingCode, boolean p_ServingHSDSCH_RL_indicator := false) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { modeSpecificInfo := { fdd := { @@ -118,11 +119,11 @@ module UTRAN_RRC_RAB_Templates_r11 { cell_id := omit } }; - + template (value) DL_InformationPerRL_List_r11 cs_DL_InformationPerRL_TDD_r11 ( CellParametersID p_CellParametersID, template (value) DL_DPCH_InfoPerRL_r7 p_DL_DPCH_InfoPerRL_r7 ) := { /* According to condition A3 in TS 34.108 clause 9.1.1: Downlink information for each radio link list */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { modeSpecificInfo := { tdd := { @@ -156,17 +157,17 @@ module UTRAN_RRC_RAB_Templates_r11 { template (value) DL_InformationPerRL_List_r11 cs_DL_InfoPerRL_HSDPA_FDD_r11(PrimaryScramblingCode p_PrimaryScramblingCode, SF512_AndCodeNumber p_Sf, SecondaryScramblingCode p_SecondaryScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DL_InformationPerRL_FDD_r11(p_PrimaryScramblingCode, p_Sf, p_SecondaryScramblingCode, true); // ----------------------------------------------------------------------------- template (value) DL_AddReconfTransChInformation_r11 cs_DL_AddReconfTransChInfo_WithoutQuality_r11(TransportChannelIdentity p_DlTrChId, TransportChannelIdentity p_UlTrChId) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_AddReconfTransChInfo_r11(p_DlTrChId, p_UlTrChId, omit); template (value) DL_AddReconfTransChInformation_r11 cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r11(template (value) HSDSCH_Info_r11 p_HSDSCH_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ dl_TransportChannelType := { hsdsch := NULL }, @@ -184,13 +185,13 @@ module UTRAN_RRC_RAB_Templates_r11 { template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11(TransportChannelIdentity p_DL_PS_TransportChannelIdentity := tsc_DL_DCH1, TransportChannelIdentity p_UL_PS_TransportChannelIdentity := tsc_UL_DCH1) := { /* According to the corresponding IE in the RADIO BEARER SETUP message using condition A3 in TS 34.108 clause 9.1.1: Added or Reconfigured DL TrCH information */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DL_AddReconfTransChInfo_r11( p_DL_PS_TransportChannelIdentity, p_UL_PS_TransportChannelIdentity), cs_DL_AddReconfTransChInfo_r11(tsc_DL_DCH5, tsc_UL_DCH5) }; template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoListTM_12_2k_r11 := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_AddReconfTransChInfoExplicit_r11(tsc_DL_DCH1, cs_DCH_81_TFS_DL_UE, omit), cs_DL_AddReconfTransChInfo_WithoutQuality_r11(tsc_DL_DCH2, tsc_UL_DCH2), cs_DL_AddReconfTransChInfo_WithoutQuality_r11(tsc_DL_DCH3, tsc_UL_DCH3), @@ -198,20 +199,20 @@ module UTRAN_RRC_RAB_Templates_r11 { }; template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r11(template (value) HARQ_Info_r11 p_HARQ_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DL_AddReconfTransChInfo_r11(tsc_DL_DCH5, tsc_UL_DCH5), cs_DL_AddReconfTransChInfoExplicit_r11(tsc_DL_DCH1, cds_DCH_336_TFS_0_UE), cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r11 (cs_HSDSCH_Info_r11 (p_HARQ_Info, cs_AddOrReconfMAC_dFlow (cs_MAC_hs_AddReconfQueue))) }; - template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_FDD_r11 := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r11(cs_HARQ_Info_FDD_r11); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_FDD_r11 := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r11(cs_HARQ_Info_FDD_r11); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ - template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_TDD_r11 := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r11(cs_HARQ_Info_TDD_r11); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_TDD_r11 := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r11(cs_HARQ_Info_TDD_r11); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ //----------------------------------------------------------------------------------------------- template (value) DL_AM_RLC_Mode_r11 cds_DL_AM_RLC_HSDPA_r11 modifies cs_DL_AM_RLC_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ receivingWindowSize := rw768, dl_RLC_StatusInfo := { timerStatusProhibit := tsp100 @@ -220,8 +221,9 @@ module UTRAN_RRC_RAB_Templates_r11 { //----------------------------------------------------------------------------------------------- template (value) RLC_Info_r11 cs_RLC_InfoAM_Common_r11(template (value) UL_AM_RLC_Mode p_UL_AM_RLC_Mode, - template (value) DL_AM_RLC_Mode_r11 p_DL_AM_RLC_Mode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) DL_AM_RLC_Mode_r11 p_DL_AM_RLC_Mode, + template (omit) RLC_Info_r11.useSpecialValueOfHEField p_UseSpecialValueOfHEField := omit) := //@sic R5-145142 sic@ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ ul_RLC_Mode := { ul_AM_RLC_Mode := p_UL_AM_RLC_Mode }, @@ -230,13 +232,13 @@ module UTRAN_RRC_RAB_Templates_r11 { }, rlc_OneSidedReEst := false, altE_bitInterpretation := omit,// not specified in RADIO BEARER SETUP acc. to TS 34.108 ch 9 - useSpecialValueOfHEField := omit//default false + useSpecialValueOfHEField := p_UseSpecialValueOfHEField //default false }; - template (value) RLC_Info_r11 cs_RLC_InfoAM_Def_r11 := cs_RLC_InfoAM_Common_r11(cs_UL_AM_RLC, cs_DL_AM_RLC_r11); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) RLC_Info_r11 cs_RLC_InfoAM_Def_r11 := cs_RLC_InfoAM_Common_r11(cs_UL_AM_RLC, cs_DL_AM_RLC_r11); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ template (value) RLC_Info_r11 cs_RLC_InfoTM_Def_r11 := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ ul_RLC_Mode := { ul_TM_RLC_Mode := { transmissionRLC_Discard := omit, @@ -253,7 +255,7 @@ module UTRAN_RRC_RAB_Templates_r11 { useSpecialValueOfHEField := omit }; - template (value) RLC_Info_r11 cs_RLC_InfoAM_HSDPA_r11 := cs_RLC_InfoAM_Common_r11(cds_UL_AM_RLC_HSDPA, cds_DL_AM_RLC_HSDPA_r11); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) RLC_Info_r11 cs_RLC_InfoAM_HSDPA_r11 := cs_RLC_InfoAM_Common_r11(cds_UL_AM_RLC_HSDPA, cds_DL_AM_RLC_HSDPA_r11); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ //----------------------------------------------------------------------------------------------- @@ -261,7 +263,7 @@ module UTRAN_RRC_RAB_Templates_r11 { TransportChannelIdentity p_UL_TransportChannelId, MAC_LogicalChannelPriority p_MAC_LogicalChannelPriority, TransportChannelIdentity p_DL_TransportChannelId) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ rb_Identity := p_RB_Identity, pdcp_Info := omit, rlc_InfoChoice := { @@ -280,7 +282,7 @@ module UTRAN_RRC_RAB_Templates_r11 { template (omit) PDCP_Info_r4 p_PDCP_Info, template (value) RLC_Info_r11 p_RLC_Info, template (value) RB_MappingInfo_r8 p_RB_MappingInfo) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ rab_Info := cs_RAB_InfoPS(p_RAB_Id), cs_HSPA_Information := omit, rab_InfoReplace := omit, @@ -299,26 +301,26 @@ module UTRAN_RRC_RAB_Templates_r11 { template (value) RAB_InformationSetup_r11 cs_RAB_InfoSetupDCH_PS_64k_r11(bitstring p_RAB_Id, template (value) RLC_Info_r11 p_RLC_Info) := /* Values according to 34.108 cl. 9.1.1 Message RADIO BEARER SETUP message: AM or UM using condition A3 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common_r11(p_RAB_Id, tsc_RB20, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS); template (value) RAB_InformationSetup_r11 cs_RAB_InfoSetupDCH_PS_64k_r11_TDD(bitstring p_RAB_Id, template (value) RLC_Info_r11 p_RLC_Info) := /* Values according to 34.108 cl. 9.1.1 Message RADIO BEARER SETUP message: AM or UM using condition A3 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common_r11(p_RAB_Id, tsc_RB20, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS(-, -, cs_RLC_SizeExplicit1)); template (value) RAB_InformationSetup_r11 cs_RAB_InfoFACH_PS_r11(bitstring p_RAB_Id, template (value) RLC_Info_r11 p_RLC_Info, template (value) RLC_SizeExplicitList p_UL_RACH_RLC_SizeExplicitList := cs_RLC_SizeExplicit2) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common_r11(p_RAB_Id, tsc_RB20, omit, p_RLC_Info, cs_RB_MappingInfo_PS(-, -, p_UL_RACH_RLC_SizeExplicitList)); template (value) RAB_InformationSetup_r11 cs_RAB_InfoSetupTM_12_2k_r11(Re_EstablishmentTimer p_ReEstTimer, bitstring p_RAB_Id) := { /* 36.508 cl. 4.8.3 Table 4.8.3-1: UTRA Speech TS 34.108 subclause 6.10.2.4.1.4 Conversational / speech / UL:12.2 DL:12.2 kbps / CS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ rab_Info := cs_RAB_InfoPS_Common(p_RAB_Id, cs_domain, p_ReEstTimer), cs_HSPA_Information := omit, rab_InfoReplace := omit, @@ -332,20 +334,46 @@ module UTRAN_RRC_RAB_Templates_r11 { template (value) RAB_InformationSetup_r11 cs_RAB_InfoSetupDCH_PS_HSDPA_r11(bitstring p_RAB_Id, template (value) RLC_Info_r11 p_RLC_Info) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RAB_Info_PS_Common_r11(p_RAB_Id, tsc_RB25, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS_HSDPA); template (value) RAB_InformationSetup_r11 cs_RAB_InfoSetupDCH_PS_64k_DCH4_r11(bitstring p_RAB_Id, template (value) RLC_Info_r11 p_RLC_Info) := /* @status APPROVED (LTE_IRAT) */ cs_RAB_Info_PS_Common_r11(p_RAB_Id, tsc_RB20, cs_PDCP_Info_DCH_PS, p_RLC_Info, cs_RB_MappingInfo_PS (tsc_DL_DCH4, tsc_UL_DCH4)); + + + template (value) UL_DPCH_Info_r11 cs_UL_DPCH_OnlyHS_PDSCH_FDD_r11 (UL_ScramblingCode p_UL_ScramblingCode) := + { + ul_DPCH_PowerControlInfo := cs_UL_DPCH_PowerControlInfo_r11_FDD(3, 3, 1), + modeSpecificInfo := { + fdd := { + scramblingCodeType := longSC, + scramblingCode := p_UL_ScramblingCode, + dpdchPresence := { + notPresent := { + tfci_Existence := false, + numberOfFBI_Bits := omit, + numberOfTPC_Bits := omit + } + } + } + } + }; + + template (value) E_HICH_Information_r11 cs_E_HICH_Info_r11 := + { + channelisationCode := tsc_E_HICH_ChannelisationCode, + signatureSequence := tsc_E_HICH_SignatureSequence, + secondarySignatureSequence := omit + }; //============================================================================ // HSDPA templates //---------------------------------------------------------------------------- template (value) HARQ_Info_r11 cs_HARQ_Info_FDD_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ numberOfProcesses := f_GetNrOfHarqProcesses_FDD_r11(), memoryPartitioning := { implicit := NULL @@ -353,7 +381,7 @@ module UTRAN_RRC_RAB_Templates_r11 { }; template (value) HARQ_Info_r11 cs_HARQ_Info_TDD_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ numberOfProcesses := f_GetNrOfHarqProcesses_TDD_r11(), memoryPartitioning := { implicit := NULL @@ -363,7 +391,7 @@ module UTRAN_RRC_RAB_Templates_r11 { // ----------------------------------------------------------------------------- template (value) HSDSCH_Info_r11 cs_HSDSCH_Info_r11(template (value) HARQ_Info_r11 p_HARQ_Info, template (value) AddOrReconfMAC_dFlow p_AddOrReconfMAC_dFlow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ harqInfo := p_HARQ_Info, dl_MAC_HeaderType := { mac_hs := p_AddOrReconfMAC_dFlow @@ -374,7 +402,7 @@ module UTRAN_RRC_RAB_Templates_r11 { template (value) Measurement_Feedback_Info_r11 p_Measurement_Feedback_Info, template (omit) DL_64QAM_Configured_r11_Type p_DL_64QAM_Configured_type := omit, template (omit) HS_DSCH_TBSizeTable p_OctetAligned := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ hs_scch_Info := p_HS_SCCH_Info, measurement_feedback_Info := p_Measurement_Feedback_Info, modeSpecificInfo := { @@ -387,7 +415,7 @@ module UTRAN_RRC_RAB_Templates_r11 { template (value) DL_HSPDSCH_Information_r11 cs_DL_HSPDSCH_Information_TDD_r11 ( template (value) HS_SCCH_Info_r9 p_HS_SCCH_Info, template (value) HS_PDSCH_Midamble_Configuration_TDD128 p_HS_PDSCH_Midamble_Configuration_TDD128 ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ hs_scch_Info := p_HS_SCCH_Info, measurement_feedback_Info := omit, modeSpecificInfo := { @@ -403,7 +431,7 @@ module UTRAN_RRC_RAB_Templates_r11 { }; template (value) Measurement_Feedback_Info_r11 cs_Measurement_Feedback_Info_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ modeSpecificInfo := { fdd := { measurementPowerOffset := 12, // Actual measurement power offset value = IE value * 0.5 @@ -414,6 +442,23 @@ module UTRAN_RRC_RAB_Templates_r11 { } } }; + + template (value) Measurement_Feedback_Info_r11 cs_Measurement_Feedback_Info_Params_r11 (MeasurementPowerOffset p_MeasPowerOffset, + Feedback_cycle_r7 p_Feedback_Cycle_r7, + CQI_RepetitionFactor p_CqiRep, + template (omit) CQI_RepetitionFactor p_CqiRepAssisting, + DeltaCQI_r11 p_DeltaCqi):= + { + modeSpecificInfo := { + fdd := { + measurementPowerOffset := p_MeasPowerOffset, // Actual measurement power offset value = IE value * 0.5 + feedback_cycle := p_Feedback_Cycle_r7, // Feedback cycle + cqi_RepetitionFactor := p_CqiRep, // According to 34.108 cl. 9.1.1 RADIO BEARER SETUP + cqi_RepetitionFactor_Assisting := p_CqiRepAssisting, + deltaCQI := p_DeltaCqi + } + } + }; //--------------------------------------------------------------------------------------------------------------------- // Physical channel reconfiguration @@ -426,7 +471,7 @@ module UTRAN_RRC_RAB_Templates_r11 { template (omit) UTRAN_DRX_CycleLengthCoefficient_r7 p_UTRAN_DRX_CycleLengthCoefficient_r7 := omit, template (omit) MaxAllowedUL_TX_Power p_MaxAllowedUL_TX_Power := omit) := { /* Default values from 36.508 Table 4.7B.1-5: PHYSICAL CHANNEL RECONFIGURATION */ - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (LTE_A, LTE_IRAT) */ integrityCheckInfo := p_Integrityinfo, message_ := { physicalChannelReconfiguration := { @@ -510,7 +555,7 @@ module UTRAN_RRC_RAB_Templates_r11 { //---------------------------------------------------------------------------- template (value) DL_DCCH_Message cs_RadioBearerSetup_r11(IntegrityCheckInfo p_Integrityinfo, template (value) RadioBearerSetup_r11_IEs p_RadioBearerSetup) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := p_Integrityinfo, message_ := { radioBearerSetup := { @@ -541,10 +586,10 @@ module UTRAN_RRC_RAB_Templates_r11 { } } }; - + //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r11_IEs cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeInfo := omit, cipheringModeInfo := omit, sr_vcc_Info := omit, @@ -607,7 +652,7 @@ module UTRAN_RRC_RAB_Templates_r11 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -622,12 +667,12 @@ module UTRAN_RRC_RAB_Templates_r11 { dl_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r11 (tsc_DL_DPCH1_SFP_64k_PS, flexible), dl_InformationPerRL_List := cs_DL_InformationPerRL_FDD_r11 (p_PrimScramblingCode, tsc_DL_DPCH1_ChC_64k_PS, tsc_DL_DPCH1_2ndScrC) }; - - template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_64k_PS_TDD (ActivationTime p_Activetime, - bitstring p_RAB_Id, - CellParametersID p_CellParametersID) + + template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_64k_PS_TDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -649,7 +694,7 @@ module UTRAN_RRC_RAB_Templates_r11 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_64k_PS_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUp64k_PS_r11_TDD(IntegrityCheckInfo p_Integrityinfo, @@ -657,14 +702,14 @@ module UTRAN_RRC_RAB_Templates_r11 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9. */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_64k_PS_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_FACH_PS_FDD(C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, rrc_StateIndicator := cell_FACH, @@ -676,11 +721,11 @@ module UTRAN_RRC_RAB_Templates_r11 { dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_FDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11 }; - + template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_FACH_PS_TDD(C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, rrc_StateIndicator := cell_FACH, @@ -692,27 +737,26 @@ module UTRAN_RRC_RAB_Templates_r11 { dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11 }; - + template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_FDD_r11(IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_FACH_PS_FDD(p_C_RNTI, p_RAB_Id)); - + template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_TDD_r11(IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_FACH_PS_TDD(p_C_RNTI, p_RAB_Id)); - //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_Speech_FDD(ActivationTime p_Activetime, bitstring p_RAB_Id, UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -727,12 +771,12 @@ module UTRAN_RRC_RAB_Templates_r11 { dl_CommonInformation := cs_DL_CommonInformationRB_SetUpSpeech_r11 (tsc_DL_DPCH1_SFP_Speech), dl_InformationPerRL_List := cs_DL_InformationPerRL_FDD_r11 (p_PrimScramblingCode, tsc_DL_DPCH1_ChC_Speech, tsc_DL_DPCH1_2ndScrC) }; - + template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_Speech_TDD(ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -753,14 +797,14 @@ module UTRAN_RRC_RAB_Templates_r11 { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_Speech_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); - template (value) DL_DCCH_Message cs_108_RB_SetUpSpeech_r11_TDD(IntegrityCheckInfo p_Integrityinfo, + template (value) DL_DCCH_Message cs_108_RB_SetUpSpeech_r11_TDD(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_Speech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- @@ -769,7 +813,7 @@ module UTRAN_RRC_RAB_Templates_r11 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, @@ -786,44 +830,44 @@ module UTRAN_RRC_RAB_Templates_r11 { dl_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r11 (tsc_DL_DPCH1_SFP_SRB_3_4k, flexible), dl_InformationPerRL_List := cs_DL_InfoPerRL_HSDPA_FDD_r11(p_PrimScramblingCode, tsc_Sfc256_C0, tsc_DL_DPCH1_2ndScrC) }; - + template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_HS_FromDCH_UL_64k_TDD(ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { - cs_RAB_InfoSetupDCH_PS_HSDPA_r11 (p_RAB_Id, cs_RLC_InfoAM_HSDPA_r11)//FFS - Check values + cs_RAB_InfoSetupDCH_PS_HSDPA_r11 (p_RAB_Id, cs_RLC_InfoAM_HSDPA_r11) }, - ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD,//FFS - Check values - ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k,//FFs - check values - dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx),//FFS - check values - dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_TDD_r11,//FFS - check values + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_TDD_r11, maxAllowedUL_TX_Power := tsc_MaxAllowPwr, ul_DPCH_Info := cs_UL_DPCH_64k_PS_TDD_r11, dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_TDD_r11(cs_HS_SCCH_Info_TDD,cs_HS_PDSCH_Midamble_Configuration_TDD128), dl_CommonInformation := cs_DL_CommonInfo_r11_TDD, dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r11 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_SRB_TDD) }; - + template (value) DL_DCCH_Message cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD_r11(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_HS_FromDCH_UL_64k_FDD (p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); - + template (value) DL_DCCH_Message cs_108_RB_SetUpHS_FromDCH_UL_64k_r11_TDD(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := /* PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_HS_FromDCH_UL_64k_TDD (p_Activetime, p_RAB_Id, p_CellParametersID)); //---------------------------------------------------------------------------- @@ -832,7 +876,7 @@ module UTRAN_RRC_RAB_Templates_r11 { PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -852,7 +896,7 @@ module UTRAN_RRC_RAB_Templates_r11 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r11_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -867,22 +911,22 @@ module UTRAN_RRC_RAB_Templates_r11 { dl_CommonInformation := cs_DL_CommonInfo_r11_TDD, dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r11 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_r7_64k_PS_TDD) }; - + template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_FDD_r11(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_PSandConvSpeech_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_TDD_r11(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_PSandConvSpeech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); - + //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r11_IEs cds_RadioBearerSetup_r11_IEs_PSandConvSpeech_PSexists_FDD(ActivationTime p_Activetime, bitstring p_RAB_Id, @@ -933,6 +977,7 @@ module UTRAN_RRC_RAB_Templates_r11 { /* @status APPROVED (LTE_IRAT) */ cs_RadioBearerSetup_r11(p_Integrityinfo, cds_RadioBearerSetup_r11_IEs_PSandConvSpeech_PSexists_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); + template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r11(IntegrityCheckInfo p_Integrityinfo, ActivationTime p_Activetime, bitstring p_RAB_Id, diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r12.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r12.ttcn new file mode 100644 index 0000000..ea0193c --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r12.ttcn @@ -0,0 +1,1133 @@ +/* *****************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ +/* *****************************************************************************/ + +module UTRAN_RRC_RAB_Templates_r12 { + + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_CommonTemplates all; + import from UTRAN_RRC_Templates all; + import from UTRAN_RRC_Templates_r11 all; + import from UTRAN_RRC_Templates_r12 all; + import from UTRAN_RRC_RAB_Templates all; + import from UTRAN_RRC_RAB_Templates_r9 all; + import from UTRAN_RRC_RAB_Templates_r11 all; + + //============================================================================ + // Information element + //============================================================================ + template (value) DL_DPCH_CfnHandling_r12_Type cs_DL_DPCH_CfnHandling_Maintain_r12(template (omit) TimingMaintainedSynchInd p_TimingMaintainedSynchInd := false_) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + maintain := { + timingmaintainedsynchind := p_TimingMaintainedSynchInd + } + }; + + template (value) DL_CommonInformation_r12 cs_DL_CommonInformationRB_SetUp_FDD_r12(SF512_AndPilot_r12 p_Sf, + PositionFixedOrFlexible p_PositionFixedOrFlexible, + boolean p_TfciExistence := true, + template (omit) DPCH_CompressedModeInfo_r10 p_DPCH_CompressedModeInfo := omit, + template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_DL_CommonInfo_FDD_r12(cs_DL_DPCH_CfnHandling_Maintain_r12(omit), p_Sf, p_PositionFixedOrFlexible, p_TfciExistence, omit, p_DPCH_CompressedModeInfo, p_TX_DiversityMode); + + template (value) DL_CommonInformation_r12 cs_DL_CommonInformationRB_SetUpSpeech_r12(SF512_AndPilot_r12 p_Sf) := + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_DL_CommonInformationRB_SetUp_FDD_r12(p_Sf, fixed, false); + + // ----------------------------------------------------------------------------- + + template (value) DL_InformationPerRL_List_r12 cs_DL_InformationPerRL_FDD_r12(PrimaryScramblingCode p_PrimaryScramblingCode, + SF512_AndCodeNumber p_Sf, + SecondaryScramblingCode p_SecondaryScramblingCode, + boolean p_ServingHSDSCH_RL_indicator := false) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { + modeSpecificInfo := { + fdd := { + primaryCPICH_Info := { + primaryScramblingCode := p_PrimaryScramblingCode + }, + servingHSDSCH_RL_indicator := p_ServingHSDSCH_RL_indicator, + servingEDCH_RL_indicator := false + } + }, + dl_dpchInfo := { + dl_DPCH_InfoPerRL := cs_DL_DPCH_InfoPerRL_SRB_FDD_r12(p_Sf, p_SecondaryScramblingCode) + }, + e_AGCH_Information := omit, + e_ROCH_Information := omit, + modeSpecificInfo2 := { + fdd := { + e_HICH_Info := omit, + e_RGCH_Info := omit, + f_TPICH_Info := omit + } + }, + cell_id := omit + } + }; + + template (value) DL_InformationPerRL_List_r12 cs_DL_InformationPerRL_TDD_r12(CellParametersID p_CellParametersID, + template (value) DL_DPCH_InfoPerRL_r12 p_DL_DPCH_InfoPerRL_r12) := + { /* According to condition A3 in TS 34.108 clause 9.1.1: Downlink information for each radio link list */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { + modeSpecificInfo := { + tdd := { + tdd := { + tddOption := { + tdd128 := { + tstd_Indicator := false + } + }, + cellParametersID := p_CellParametersID, + sctd_Indicator := false + } + } + }, + dl_dpchInfo := { + dl_DPCH_InfoPerRL := p_DL_DPCH_InfoPerRL_r12 + }, + e_AGCH_Information := omit, + e_ROCH_Information := omit, + modeSpecificInfo2 := { + tdd := { + tdd128 := { + e_HICH_Info := omit + } + } + }, + cell_id := omit + } + }; + + template (value) DL_InformationPerRL_List_r12 cs_DL_InfoPerRL_HSDPA_FDD_r12(PrimaryScramblingCode p_PrimaryScramblingCode, + SF512_AndCodeNumber p_Sf, + SecondaryScramblingCode p_SecondaryScramblingCode) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_DL_InformationPerRL_FDD_r12(p_PrimaryScramblingCode, p_Sf, p_SecondaryScramblingCode, true); + + // ----------------------------------------------------------------------------- + template (value) TFCS_r12 cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx_r12 := + { /* Values according to condition A3 in TS 34.108 clause 9.1.1: DL Transport channel information common for all transport channel */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + normalTFCI_Signalling := { + complete := { + ctfcSize := { + ctfc4Bit := { + cs_TFCS_CtfcSize_Ctfc4Bit_r12(0), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(1), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(2), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(3), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(4), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(5), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(6), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(7), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(8), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(9) + } + } + } + } + }; + + template (value) TFCS_r12 cs_TFCS_Cmpl0_1_11_12_13_23_Rx_r12 := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + normalTFCI_Signalling := { + complete := { + ctfcSize := { + ctfc6Bit := { + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(0, omit), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(1, omit), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(11, omit), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(12, omit), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(13, omit), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(23, omit) + } + } + } + } + }; + + template (value) TFCS_r12 cs_TFCS_Cmpl0_To119_Rx_r12 := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + normalTFCI_Signalling := { + complete := { + ctfcSize := { + ctfc8Bit := { + cs_TFCS_CtfcSize_Ctfc8Bit_r12(0), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(1), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(11), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(12), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(13), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(23), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(24), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(25), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(35), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(36), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(37), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(47), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(48), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(49), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(59), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(60), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(61), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(71), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(72), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(73), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(83), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(84), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(85), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(95), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(96), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(97), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(107), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(108), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(109), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(119) + } + } + } + } + }; + + template (value) TFCS_ReconfAdd_r12_CtfcSize_Ctfc4Bit_Type cs_TFCS_CtfcSize_Ctfc4Bit_r12(integer p_Ctfc4Bit, + template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + ctfc4 := p_Ctfc4Bit, + powerOffsetInformation := p_PowerOffsetInfo, + powerOffsetInformation_10msMode := omit + }; + + template (value) TFCS_ReconfAdd_r12_CtfcSize_Ctfc6Bit_Type cs_TFCS_ReconfAdd_Ctfc6Bit_r12(TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type.ctfc6 p_Ctfc6, + template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + ctfc6 := p_Ctfc6, + powerOffsetInformation := p_PowerOffsetInfo, + powerOffsetInformation_10msMode := omit + }; + + template (value) TFCS_ReconfAdd_r12_CtfcSize_Ctfc8Bit_Type cs_TFCS_CtfcSize_Ctfc8Bit_r12(integer p_Ctfc8Bit, + template (omit) PowerOffsetInformation p_PowerOffsetInfo := omit) := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + ctfc8 := p_Ctfc8Bit, + powerOffsetInformation := p_PowerOffsetInfo, + powerOffsetInformation_10msMode := omit + }; + + // ----------------------------------------------------------------------------- + + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfoDCCH_Common_FDD_r12(template (value) TFCS_r12 p_UL_TFCS) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + tfc_Subset := omit, + prach_TFCS := omit, + modeSpecificInfo := { + fdd := { + ul_TFCS := p_UL_TFCS + } + }, + tfc_SubsetList := omit + }; + + + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfoDCCH_Common_TDD_r12(template (value) TFCS p_UL_TFCS) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + tfc_Subset := omit, + prach_TFCS := omit, + modeSpecificInfo := { + tdd := { + individualUL_CCTrCH_InfoList := { + { + ul_TFCS_Identity := { + tfcs_ID := 1, + sharedChannelIndicator := false + }, + ul_TFCS := p_UL_TFCS, + tfc_Subset := {fullTFCS := NULL} + } + } + } + }, + tfc_SubsetList := omit + }; + + template (value) TFCS_r12 cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx_r12(template (value) PowerOffsetInformation p_PowerOffsetInformation) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + normalTFCI_Signalling := { + complete := { + ctfcSize := { + ctfc4Bit := { + cs_TFCS_CtfcSize_Ctfc4Bit_r12(0, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(1, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(2, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(3, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(4, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(5, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(6, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(7, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(8, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc4Bit_r12(9, p_PowerOffsetInformation) + } + } + } + } + }; + + template (value) TFCS_r12 cs_TFCS_Cmpl0_1_11_12_13_23_Tx_r12 ( template (value) PowerOffsetInformation p_PowerOffsetInformation ) := + { /* used for SPEECH RAB: 36.508 cl. 4.8.3 Table 4.8.3-1 + UTRA Speech TS 34.108 subclause 6.10.2.4.1.4 */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + normalTFCI_Signalling := { + complete := { + ctfcSize := { + ctfc6Bit := { + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(0, cs_PowerOffsetInfoComputed), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(1, cs_PowerOffsetInfoComputed), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(11, cs_PowerOffsetInfoComputed), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(12, cs_PowerOffsetInfoComputed), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(13, cs_PowerOffsetInfoComputed), + cs_TFCS_ReconfAdd_Ctfc6Bit_r12(23, p_PowerOffsetInformation) + } + } + } + } + }; + + template (value) TFCS_r12 cs_TFCS_Cmpl0_To119_Tx_r12 (template (omit) PowerOffsetInformation p_PowerOffsetInformation):= + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + normalTFCI_Signalling := { + complete := { + ctfcSize := { + ctfc8Bit := { + cs_TFCS_CtfcSize_Ctfc8Bit_r12(0, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(1, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(11, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(12, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(13, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(23, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(24, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(25, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(35, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(36, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(37, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(47, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(48, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(49, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(59, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(60, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(61, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(71, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(72, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(73, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(83, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(84, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(85, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(95, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(96, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(97, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(107, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(108, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(109, cs_PowerOffsetInfoComputed), + cs_TFCS_CtfcSize_Ctfc8Bit_r12(119, p_PowerOffsetInformation) + } + } + } + } + }; + + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfoDCH_PS_64k_FDD_r12 := cs_UL_CommTrChInfoDCCH_Common_FDD_r12(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx_r12(cs_PowerOffsetInfoHigher64k)); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfoTM_12_2k_FDD_r12 := cs_UL_CommTrChInfoDCCH_Common_FDD_r12(cs_TFCS_Cmpl0_1_11_12_13_23_Tx_r12(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfo_TM3_AM1_0To119_FDD_r12 := cs_UL_CommTrChInfoDCCH_Common_FDD_r12(cs_TFCS_Cmpl0_To119_Tx_r12(cs_PowerOffsetInfoHigher64k)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfoDCH_PS_64k_TDD_r12 := cs_UL_CommTrChInfoDCCH_Common_TDD_r12(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfoTM_12_2k_TDD_r12 := cs_UL_CommTrChInfoDCCH_Common_TDD_r12(cs_TFCS_Cmpl0_1_11_12_13_23_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + template (value) UL_CommonTransChInfo_r12 cs_UL_CommTrChInfo_TM3_AM1_0To119_TDD_r12 := cs_UL_CommTrChInfoDCCH_Common_TDD_r12(cs_TFCS_Cmpl0_To119_Tx(cs_PowerOffsetInfo_TDD)); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + + //============================================================================ + // HSDPA templates + //---------------------------------------------------------------------------- + template (value) DL_HSPDSCH_Information_r12 cs_DL_HSPDSCH_Information_FDD_r12(template (value) HS_SCCH_Info_r9 p_HS_SCCH_Info, + template (value) Measurement_Feedback_Info_r12 p_Measurement_Feedback_Info, + template (omit) DL_64QAM_Configured_r12_Type p_DL_64QAM_Configured_type := omit, + template (omit) HS_DSCH_TBSizeTable p_OctetAligned := omit) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + hs_scch_Info := p_HS_SCCH_Info, + measurement_feedback_Info := p_Measurement_Feedback_Info, + modeSpecificInfo := { + fdd := { + dl_64QAM_Configured := p_DL_64QAM_Configured_type, + hs_DSCH_TBSizeTable := p_OctetAligned + } + } + }; + + template (value) DL_HSPDSCH_Information_r12 cs_DL_HSPDSCH_Information_TDD_r12(template (value) HS_SCCH_Info_r9 p_HS_SCCH_Info, + template (value) HS_PDSCH_Midamble_Configuration_TDD128 p_HS_PDSCH_Midamble_Configuration_TDD128) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + hs_scch_Info := p_HS_SCCH_Info, + measurement_feedback_Info := omit, + modeSpecificInfo := { + tdd := { + tdd128 := { + hs_PDSCH_Midamble_Configuration_tdd128 := p_HS_PDSCH_Midamble_Configuration_TDD128, + dl_MultiCarrier_Information := omit, + tS0_Indicator:= omit, + outofSyncWindow:= omit, + ts0ChannelizationCodes := omit + } + } + } + }; + + template (value) Measurement_Feedback_Info_r12 cs_Measurement_Feedback_Info_r12 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + modeSpecificInfo := { + fdd := { + measurementPowerOffset := 12, // Actual measurement power offset value = IE value * 0.5 + feedback_cycle := fc4, // Feedback cycle + hs_DPCCHOverheadReduction := omit, + cqi_RepetitionFactor := 1, // According to 34.108 cl. 9.1.1 RADIO BEARER SETUP + cqi_RepetitionFactor_Assisting := omit, + deltaCQI := 5 + } + } + }; + + //--------------------------------------------------------------------------------------------------------------------- + // Physical channel reconfiguration + //--------------------------------------------------------------------------------------------------------------------- + + template (value) DL_DCCH_Message cs_PhysicalChannelReconfiguration_r12(IntegrityCheckInfo p_Integrityinfo, + RRC_TransactionIdentifier p_RRC_TI, + template (omit) ActivationTime p_ActivationTime, + template (omit) DL_CommonInformation_r12 p_DL_CommonInformation, + RRC_StateIndicator p_RRC_StateIndicator := cell_DCH, + template (omit) UTRAN_DRX_CycleLengthCoefficient_r7 p_UTRAN_DRX_CycleLengthCoefficient_r7 := omit, + template (omit) MaxAllowedUL_TX_Power p_MaxAllowedUL_TX_Power := omit) := + { /* Default values from 36.508 Table 4.7B.1-5: PHYSICAL CHANNEL RECONFIGURATION */ + /* @status APPROVED (LTE_IRAT) */ + integrityCheckInfo := p_Integrityinfo, + message_ := { + physicalChannelReconfiguration := { + later_than_r3 := { + rrc_TransactionIdentifier := p_RRC_TI, + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + r12:= { + physicalChannelReconfiguration_r12 := { + //-- User equipment IEs + integrityProtectionModeInfo := omit, + cipheringModeInfo := omit, + activationTime := p_ActivationTime, + delayRestrictionFlag := omit, + new_U_RNTI := omit, + new_C_RNTI := omit, + new_DSCH_RNTI := omit, + new_H_RNTI := omit, + newPrimary_E_RNTI := omit, + newSecondary_E_RNTI := omit, + rrc_StateIndicator := p_RRC_StateIndicator, + ueMobilityStateIndicator := omit, + utran_DRX_CycleLengthCoeff := p_UTRAN_DRX_CycleLengthCoefficient_r7, + cn_InformationInfo := omit, + ura_Identity := omit, + supportForChangeOfUE_Capability := omit, + responseToChangeOfUE_Capability := omit, + dl_CounterSynchronisationInfo := omit, + harqInfo := omit, + frequencyInfo := omit, + multi_frequencyInfo := omit, + dtx_drx_TimingInfo := omit, + dtx_drx_Info := omit, + hs_scch_LessInfo := omit, + mimoParameters := omit, + mimo4x4Parameters := omit, + dch_Enhancements_Info_FDD := omit, + controlChannelDRXInfo_TDD128 := omit, + sps_Information_TDD128 := omit, + maxAllowedUL_TX_Power := p_MaxAllowedUL_TX_Power, + ul_DPCH_Info := omit, + ul_EDCH_Information := omit, + ul_SecondaryCellInfoFDD := omit, + ul_MulticarrierEDCHInfo_TDD128 := omit, + ul_CLTD_InfoFDD := omit, + ul_OLTD_InfoFDD := omit, + dl_HSPDSCH_Information := omit, + dl_CommonInformation := p_DL_CommonInformation, + dl_InformationPerRL_List := omit, + dl_SecondaryCellInfoFDD := omit, + additionalDLSecCellInfoListFDD := omit, + additionalDLSecCellInfoListFDD2 := omit, + commonERGCHInfoFDD := omit, + dPCCH2InfoFDD := omit, + mu_MIMO_Info_TDD128 := omit, + nonrectResAllocInd_TDD128 := omit, + nonrectResSpecTSset_TDD128 := omit, + mbms_PL_ServiceRestrictInfo := omit, + cellDCHMeasOccasionInfo_TDD128 := omit + }, + physicalChannelReconfiguration_r12_add_ext := omit , + nonCriticalExtensions := omit + } + } + } + } + } + } + } + } + } + } + } + } + } + }; + + //--------------------------------------------------------------------------------------------------------------------- + // Radio Bearer Setup + //---------------------------------------------------------------------------- + template (value) DL_DCCH_Message cs_RadioBearerSetup_r12(IntegrityCheckInfo p_Integrityinfo, + template (value) RadioBearerSetup_r12_IEs p_RadioBearerSetup) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + integrityCheckInfo := p_Integrityinfo, + message_ := { + radioBearerSetup := { + later_than_r3 := { + rrc_TransactionIdentifier := tsc_RRC_TI, + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + r12 := { + radioBearerSetup_r12 := p_RadioBearerSetup, + radioBearerSetup_r13_add_ext := omit, + nonCriticalExtensions := omit + } + } + } + } + } + } + } + } + } + } + } + } + } + }; + + //---------------------------------------------------------------------------- + + template (value) RadioBearerSetup_r12_IEs cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + integrityProtectionModeInfo := omit, + cipheringModeInfo := omit, + sr_vcc_Info := omit, + activationTime := omit, + new_U_RNTI := omit, + new_C_RNTI := omit, + new_DSCH_RNTI := omit, + new_H_RNTI := omit, + newPrimary_E_RNTI := omit, + newSecondary_E_RNTI := omit, + rrc_StateIndicator := cell_DCH, + utran_DRX_CycleLengthCoeff := omit, + accessGroupIdentity := omit, + ura_Identity := omit, + supportForChangeOfUE_Capability := omit, + cn_InformationInfo := omit, + srb_InformationSetupList := omit, + rab_InformationSetupList := omit, + rab_InformationReconfigList := omit, + rb_InformationReconfigList := omit, + rb_InformationAffectedList := omit, + dl_CounterSynchronisationInfo := omit, + pdcp_ROHC_TargetMode := omit, + ul_CommonTransChInfo := omit, + ul_deletedTransChInfoList := omit, + ul_AddReconfTransChInfoList := omit, + dl_CommonTransChInfo := omit, + dl_DeletedTransChInfoList := omit, + dl_AddReconfTransChInfoList := omit, + frequencyInfo := omit, + multi_frequencyInfo := omit, + dtx_drx_TimingInfo := omit, + dtx_drx_Info := omit, + hs_scch_LessInfo := omit, + mimoParameters := omit, + mimo4x4Parameters := omit, + dch_Enhancements_Info_FDD := omit, + maxAllowedUL_TX_Power := omit, + ul_DPCH_Info := omit, + ul_EDCH_Information := omit, + ul_SecondaryCellInfoFDD := omit, + ul_MulticarrierEDCHInfo_TDD128 := omit, + ul_CLTD_InfoFDD := omit, + ul_OLTD_InfoFDD := omit, + ul_OtherTTIConfiguration_Info := omit, + filteredUPHReportInfo := omit, + dl_HSPDSCH_Information := omit, + dl_CommonInformation := omit, + dl_InformationPerRL_List := omit, + dl_SecondaryCellInfoFDD := omit, + additionalDLSecCellInfoListFDD := omit, + additionalDLSecCellInfoListFDD2 := omit, + commonERGCHInfoFDD := omit, + controlChannelDRXInfo_TDD128 := omit, + sps_Information_TDD128 := omit, + mu_MIMO_Info_TDD128 := omit, + non_rectResAllocInd_TDD128 := omit, + non_rectResSpecTSset_TDD128 := omit, + mbms_PL_ServiceRestrictInfo := omit, + cellDCHMeasOccasionInfo_TDD128 := omit + }; + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_64k_PS_FDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + UL_ScramblingCode p_UL_ScramblingCode, + PrimaryScramblingCode p_PrimScramblingCode) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupDCH_PS_64k_r11 (p_RAB_Id, cs_RLC_InfoAM_Def_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_FDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_FDD (cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_Info_FDD_r11 (tsc_UL_DPDCH_SF_64k_PS, pl0_96, p_UL_ScramblingCode), + dl_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r12 (tsc_DL_DPCH1_SFP_64k_PS_r12, flexible), + dl_InformationPerRL_List := cs_DL_InformationPerRL_FDD_r12 (p_PrimScramblingCode, tsc_DL_DPCH1_ChC_64k_PS, tsc_DL_DPCH1_2ndScrC) + }; + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_64k_PS_TDD (ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupDCH_PS_64k_r11_TDD (p_RAB_Id, cs_RLC_InfoAM_Def_r11) // @sic R5s130009 sic@ + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD (cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_64k_PS_TDD_r11, + dl_CommonInformation := cs_DL_CommonInfo_r12_TDD, // @sic R5s120954 sic@ + dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r12 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_64k_PS_TDD_r12) + }; + + template (value) DL_DCCH_Message cs_108_RB_SetUp64k_PS_FDD_r12(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + UL_ScramblingCode p_UL_ScramblingCode, + PrimaryScramblingCode p_PrimScramblingCode) := + /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9 */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_64k_PS_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); + + template (value) DL_DCCH_Message cs_108_RB_SetUp64k_PS_r12_TDD(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) := + /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9. */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_64k_PS_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); + + //---------------------------------------------------------------------------- + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_FACH_PS_FDD(C_RNTI p_C_RNTI, + bitstring p_RAB_Id) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + new_C_RNTI := p_C_RNTI, + new_H_RNTI := omit, + rrc_StateIndicator := cell_FACH, + rab_InformationSetupList := { + cs_RAB_InfoFACH_PS_r11(p_RAB_Id, cs_RLC_InfoAM_Def_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_FDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_FDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11 + }; + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_FACH_PS_TDD(C_RNTI p_C_RNTI, + bitstring p_RAB_Id) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + new_C_RNTI := p_C_RNTI, + new_H_RNTI := omit, + rrc_StateIndicator := cell_FACH, + rab_InformationSetupList := { + cs_RAB_InfoFACH_PS_r11(p_RAB_Id, cs_RLC_InfoAM_Def_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_2_3_4_5_6_7_8_9_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_r11 + }; + + template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_FDD_r12(IntegrityCheckInfo p_Integrityinfo, + C_RNTI p_C_RNTI, + bitstring p_RAB_Id) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_FACH_PS_FDD(p_C_RNTI, p_RAB_Id)); + + template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_TDD_r12(IntegrityCheckInfo p_Integrityinfo, + C_RNTI p_C_RNTI, + bitstring p_RAB_Id) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_FACH_PS_TDD(p_C_RNTI, p_RAB_Id)); + + //---------------------------------------------------------------------------- + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_Speech_FDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + UL_ScramblingCode p_UL_ScramblingCode, + PrimaryScramblingCode p_PrimScramblingCode) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupTM_12_2k_r11(useT314, p_RAB_Id) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoTM_12_2k_FDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListTM_12_2k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoSameAsUL_r4_FDD, + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListTM_12_2k_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_Info_FDD_r11 (tsc_UL_DPDCH_SF_Speech, pl0_84, p_UL_ScramblingCode), + dl_CommonInformation := cs_DL_CommonInformationRB_SetUpSpeech_r12 (tsc_DL_DPCH1_SFP_Speech_r12), + dl_InformationPerRL_List := cs_DL_InformationPerRL_FDD_r12 (p_PrimScramblingCode, tsc_DL_DPCH1_ChC_Speech, tsc_DL_DPCH1_2ndScrC) + }; + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_Speech_TDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupTM_12_2k_r11 (useT314, p_RAB_Id) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoTM_12_2k_TDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListTM_12_2k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoSameAsUL_r4_TDD, + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListTM_12_2k_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_Speech_TDD_r11, + dl_CommonInformation := cs_DL_CommonInfo_r12_TDD, + dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r12 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_Speech_TDD_r12) + }; + + template (value) DL_DCCH_Message cs_108_RB_SetUpSpeech_r12_FDD(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + PrimaryScramblingCode p_PrimScramblingCode, + UL_ScramblingCode p_UL_ScramblingCode) := + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_Speech_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); + + template (value) DL_DCCH_Message cs_108_RB_SetUpSpeech_r12_TDD(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) := + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_Speech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); + + //---------------------------------------------------------------------------- + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_HS_FromDCH_UL_64k_FDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + UL_ScramblingCode p_UL_ScramblingCode, + PrimaryScramblingCode p_PrimScramblingCode) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + activationTime := p_Activetime, + new_H_RNTI := tsc_H_RNTI, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupDCH_PS_HSDPA_r11 (p_RAB_Id, cs_RLC_InfoAM_HSDPA_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_FDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_FDD(cs_TFCS_Cmpl0_1_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_FDD_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_InfoACK_HSDPA_FDD_r11 (tsc_UL_DPDCH_SF_64k_PS, pl0_96, p_UL_ScramblingCode), + dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_FDD_r12 (cs_HS_SCCH_Info_r9_FDD, cs_Measurement_Feedback_Info_r12), + dl_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r12 (tsc_DL_DPCH1_SFP_SRB_3_4k_r12, flexible), + dl_InformationPerRL_List := cs_DL_InfoPerRL_HSDPA_FDD_r12(p_PrimScramblingCode, tsc_Sfc256_C0, tsc_DL_DPCH1_2ndScrC) + }; + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_HS_FromDCH_UL_64k_TDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + activationTime := p_Activetime, + new_H_RNTI := tsc_H_RNTI, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupDCH_PS_HSDPA_r11 (p_RAB_Id, cs_RLC_InfoAM_HSDPA_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_TDD_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_64k_PS_TDD_r11, + dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_TDD_r12(cs_HS_SCCH_Info_TDD,cs_HS_PDSCH_Midamble_Configuration_TDD128), + dl_CommonInformation := cs_DL_CommonInfo_r12_TDD, + dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r12 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_SRB_TDD_r12) + }; + + template (value) DL_DCCH_Message cs_108_RB_SetUpHS_FromDCH_UL_64k_FDD_r12(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + UL_ScramblingCode p_UL_ScramblingCode, + PrimaryScramblingCode p_PrimScramblingCode) := + /* ASN.1 PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_HS_FromDCH_UL_64k_FDD (p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); + + template (value) DL_DCCH_Message cs_108_RB_SetUpHS_FromDCH_UL_64k_r12_TDD(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_HS_FromDCH_UL_64k_TDD (p_Activetime, p_RAB_Id, p_CellParametersID)); + //---------------------------------------------------------------------------- + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_FDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + PrimaryScramblingCode p_PrimScramblingCode, + UL_ScramblingCode p_UL_ScramblingCode) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupTM_12_2k_r11 (useT314, p_RAB_Id) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfo_TM3_AM1_0To119_FDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListTM_12_2k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_FDD(cs_TFCS_Cmpl0_To119_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListTM_12_2k_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_Info_FDD_r11 (tsc_UL_DPDCH_SF_64k_PS, pl0_76, p_UL_ScramblingCode), + dl_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r12 (tsc_DL_DPCH1_SFP_64k_PS_r12, flexible), + dl_InformationPerRL_List := cs_DL_InformationPerRL_FDD_r12 (p_PrimScramblingCode, tsc_DL_DPCH1_ChC_64k_PS, tsc_DL_DPCH1_2ndScrC) + }; + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_TDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupTM_12_2k_r11 (useT314, p_RAB_Id) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfo_TM3_AM1_0To119_TDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListTM_12_2k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_To119_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListTM_12_2k_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_Speech_TDD_r11, + dl_CommonInformation := cs_DL_CommonInfo_r12_TDD, + dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r12 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_64k_PS_TDD_r12) + }; + + + template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_FDD_r12(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + PrimaryScramblingCode p_PrimScramblingCode, + UL_ScramblingCode p_UL_ScramblingCode) := + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); + + template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_TDD_r12(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) := + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); + + //---------------------------------------------------------------------------- + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_PSexists_FDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + PrimaryScramblingCode p_PrimScramblingCode, + UL_ScramblingCode p_UL_ScramblingCode) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (LTE_IRAT) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupDCH_PS_64k_DCH4_r11 (p_RAB_Id, cs_RLC_InfoAM_Def_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfo_TM3_AM1_0To119_FDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k_Only, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_FDD(cs_TFCS_Cmpl0_To119_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_Only_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_Info_FDD_r11 (tsc_UL_DPDCH_SF_64k_PS, pl0_76, p_UL_ScramblingCode), + dl_CommonInformation := cs_DL_CommonInformationRB_SetUp_FDD_r12 (tsc_DL_DPCH1_SFP_64k_PS_r12, flexible), + dl_InformationPerRL_List := cs_DL_InformationPerRL_FDD_r12 (p_PrimScramblingCode, tsc_DL_DPCH1_ChC_64k_PS, tsc_DL_DPCH1_2ndScrC) + }; + + + template (value) RadioBearerSetup_r12_IEs cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_PSexists_TDD(ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) + modifies cs_RadioBearerSetup_r12_IEs_Omit := + { /* @status APPROVED (LTE_IRAT) */ + activationTime := p_Activetime, + rrc_StateIndicator := cell_DCH, + rab_InformationSetupList := { + cs_RAB_InfoSetupDCH_PS_64k_DCH4_r11 (p_RAB_Id, cs_RLC_InfoAM_Def_r11) + }, + ul_CommonTransChInfo := cs_UL_CommTrChInfo_TM3_AM1_0To119_TDD_r12, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k_Only, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_To119_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCH_PS_64k_Only_r11, + maxAllowedUL_TX_Power := tsc_MaxAllowPwr, + ul_DPCH_Info := cs_UL_DPCH_PS_and_ConvSpeech_TDD_r11, + dl_CommonInformation := cs_DL_CommonInfo_r12_TDD, + dl_InformationPerRL_List := cs_DL_InformationPerRL_TDD_r12 (p_CellParametersID, cs_DL_DPCH_InfoPerRL_64k_PS_TDD_r12) + }; + + template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_PSexists_FDD_r12(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + PrimaryScramblingCode p_PrimScramblingCode, + UL_ScramblingCode p_UL_ScramblingCode) := + /* @status APPROVED (LTE_IRAT) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_PSexists_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); + + template (value) DL_DCCH_Message cs_108_RB_SetUpPSandConvSpeech_PSexists_TDD_r12(IntegrityCheckInfo p_Integrityinfo, + ActivationTime p_Activetime, + bitstring p_RAB_Id, + CellParametersID p_CellParametersID) := + /* @status APPROVED (LTE_IRAT) */ + cs_RadioBearerSetup_r12(p_Integrityinfo, cds_RadioBearerSetup_r12_IEs_PSandConvSpeech_PSexists_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); + + template (value) DL_DPCH_InfoPerRL_r12 cs_DL_DPCH_InfoPerRL_64k_PS_TDD_r12 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + tdd := { + dl_CCTrChListToEstablish := { + { + tfcs_ID := 1, + timeInfo := { + activationTime := omit, + durationTimeInfo := omit + }, + commonTimeslotInfo := { + secondInterleavingMode := frameRelated, + tfci_Coding := tfci_bits_16, + puncturingLimit := pl0_56, // @sic R5s120871 sic@ + repetitionPeriodAndLength := { repetitionPeriod1:= NULL } + }, + tddOption := { + tdd128 := { + dl_CCTrCH_TimeslotsCodes := { + firstIndividualTimeslotInfo := { + timeslotNumber := 4, + tfci_Existence := true, + midambleShiftAndBurstType := { + midambleAllocationMode := {defaultMidamble := NULL}, + midambleConfiguration := 8 //@sic R5s140007 sic@ + }, + modulation := mod_QPSK, + ss_TPC_Symbols := one, + additionalSS_TPC_Symbols := omit + }, // first + dl_TS_ChannelisationCodesShort := { + codesRepresentation := { bitmap := '1111111100000000'B} + }, + moreTimeslots := { noMore := NULL} + } // dl_CCTrCH + } + }, //tdd128 + ul_CCTrChTPCList := omit + } + }, + dl_CCTrChListToRemove := omit + } + }; + + template (value) DL_DPCH_InfoPerRL_r12 cs_DL_DPCH_InfoPerRL_Speech_TDD_r12 := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ + tdd := { + dl_CCTrChListToEstablish := { + { + tfcs_ID := 1, + timeInfo := { + activationTime := omit, + durationTimeInfo := omit + }, + commonTimeslotInfo := { + secondInterleavingMode := frameRelated, + tfci_Coding := tfci_bits_16, // @sic R5s120956 sic@ + puncturingLimit := pl0_48, + repetitionPeriodAndLength := { repetitionPeriod1:= NULL } + }, + tddOption := { + tdd128 := { + dl_CCTrCH_TimeslotsCodes := { + firstIndividualTimeslotInfo := { + timeslotNumber := 4, + tfci_Existence := true, + midambleShiftAndBurstType := { + midambleAllocationMode := { + defaultMidamble := NULL + }, + midambleConfiguration := 8 + }, + modulation := mod_QPSK, + ss_TPC_Symbols := one, + additionalSS_TPC_Symbols := omit + }, + dl_TS_ChannelisationCodesShort := { + codesRepresentation := { + bitmap := tsc_DL_DPCH1_ChC_Speech_TDD + } + }, + moreTimeslots := { + noMore := NULL + } + } + } + }, + ul_CCTrChTPCList := omit + } + }, + dl_CCTrChListToRemove := omit + } + }; + + template (value) DL_DPCH_InfoPerRL_r12 cs_DL_DPCH_InfoPerRL_SRB_TDD_r12 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + tdd := { + dl_CCTrChListToEstablish := { + { + tfcs_ID := 1, + timeInfo := { + activationTime := omit, + durationTimeInfo := omit + }, + commonTimeslotInfo := { + secondInterleavingMode := frameRelated, + tfci_Coding := tfci_bits_8, // @sic R5s120750 sic@ + puncturingLimit := pl1, + repetitionPeriodAndLength := { repetitionPeriod1:= NULL } + }, + tddOption := { + tdd128 := { + dl_CCTrCH_TimeslotsCodes := { + firstIndividualTimeslotInfo := { + timeslotNumber := 4, + tfci_Existence := true, + midambleShiftAndBurstType := { + midambleAllocationMode := { + defaultMidamble := NULL + }, + midambleConfiguration := 8 + }, + modulation := mod_QPSK, + ss_TPC_Symbols := one, + additionalSS_TPC_Symbols := omit + }, + dl_TS_ChannelisationCodesShort := { + codesRepresentation := { + bitmap := tsc_DL_DPCH1_ChC_SRB_TDD + } + }, + moreTimeslots := { + noMore := NULL + } + } + } + }, + ul_CCTrChTPCList := omit + } + }, + dl_CCTrChListToRemove := omit + } + }; + + template (value) DL_DPCH_InfoPerRL_r12 cs_DL_DPCH_InfoPerRL_r12_PS_and_ConvSpeech_TDD := + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ + tdd := { + dl_CCTrChListToEstablish := { + { + tfcs_ID := 1, + timeInfo := { + activationTime := omit, + durationTimeInfo := omit + }, + commonTimeslotInfo := { + secondInterleavingMode := frameRelated, + tfci_Coding := tfci_bits_16, + puncturingLimit := pl0_56, //@sic R5s130447 sic@ + repetitionPeriodAndLength := { repetitionPeriod1:= NULL } + }, + tddOption := { + tdd128 := { + dl_CCTrCH_TimeslotsCodes := { + firstIndividualTimeslotInfo := { + timeslotNumber := 6, + tfci_Existence := true, + midambleShiftAndBurstType := { + midambleAllocationMode := {defaultMidamble := NULL}, + midambleConfiguration := 8 //@sic R5s140007 sic@ + }, + modulation := mod_QPSK, + ss_TPC_Symbols := one, + additionalSS_TPC_Symbols := omit + }, // first + dl_TS_ChannelisationCodesShort := { + codesRepresentation := { bitmap := '0000001111111111'B} + }, + moreTimeslots := { noMore := NULL} + } // dl_CCTrCH + } + }, //tdd128 + ul_CCTrChTPCList := omit + } + }, + dl_CCTrChListToRemove := omit + } + }; + +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn index 6307b08..1de04b9 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_RAB_Templates_r9.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ /******************************************************************************/ module UTRAN_RRC_RAB_Templates_r9 { @@ -20,7 +20,7 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) HSDSCH_Info_r9 cs_HSDSCH_Info_r9(template (value) HARQ_Info_r7 p_HARQ_Info, template (value) AddOrReconfMAC_dFlow p_AddOrReconfMAC_dFlow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ harqInfo := p_HARQ_Info, dl_MAC_HeaderType := { mac_hs := p_AddOrReconfMAC_dFlow @@ -30,7 +30,7 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) HS_SCCH_Info_r9 cs_HS_SCCH_Info_r9_FDD_Common(HsScchInfo_ChCodeInfo_Type p_ChannelisationCodeList) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ modeSpecificInfo := { fdd := { hS_SCCHChannelisationCodeInfo := p_ChannelisationCodeList, @@ -39,14 +39,14 @@ module UTRAN_RRC_RAB_Templates_r9 { } }; - template (value) HS_SCCH_Info_r9 cs_HS_SCCH_Info_r9_FDD := cs_HS_SCCH_Info_r9_FDD_Common({tsc_HS_SCCH_ChC7}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) HS_SCCH_Info_r9 cs_HS_SCCH_Info_r9_FDD := cs_HS_SCCH_Info_r9_FDD_Common({tsc_HS_SCCH_ChC7}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) DL_HSPDSCH_Information_r9 cs_DL_HSPDSCH_Information_r9_FDD(template (value) HS_SCCH_Info_r9 p_HS_SCCH_Info, template (value) Measurement_Feedback_Info_r7 p_Measurement_Feedback_Info, template (omit) DL_64QAM_Configured_Type p_DL_64QAM_Configured_type := omit, //@sic R5-134957 sic@ template (omit) HS_DSCH_TBSizeTable p_OctetAligned := omit) := //@sic R5-134957 sic@ - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ hs_scch_Info := p_HS_SCCH_Info, measurement_feedback_Info := p_Measurement_Feedback_Info, modeSpecificInfo := { @@ -58,7 +58,7 @@ module UTRAN_RRC_RAB_Templates_r9 { }; template (value) DL_AddReconfTransChInformation_r9 cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r9(template (value) HSDSCH_Info_r9 p_HSDSCH_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ dl_TransportChannelType := { hsdsch := NULL }, @@ -69,7 +69,7 @@ module UTRAN_RRC_RAB_Templates_r9 { }; template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoListTM_12_2k_r9 := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_AddReconfTransChInfoExplicit_r9(tsc_DL_DCH1, cs_DCH_81_TFS_DL_UE, omit), cs_DL_AddReconfTransChInfo_WithoutQuality_r9(tsc_DL_DCH2, tsc_UL_DCH2), cs_DL_AddReconfTransChInfo_WithoutQuality_r9(tsc_DL_DCH3, tsc_UL_DCH3), @@ -78,19 +78,19 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) DL_AddReconfTransChInformation_r9 cs_DL_AddReconfTransChInfo_WithoutQuality_r9(TransportChannelIdentity p_DlTrChId, TransportChannelIdentity p_UlTrChId) := - /* @status APPROVED (LTE_A, LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_DL_AddReconfTransChInfo_r9(p_DlTrChId, p_UlTrChId, omit); template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoListDCH_PS_64k_r9 (TransportChannelIdentity p_DL_PS_TransportChannelIdentity := tsc_DL_DCH1, TransportChannelIdentity p_UL_PS_TransportChannelIdentity := tsc_UL_DCH1) := { /* According to the corresponding IE in the RADIO BEARER SETUP message using condition A3 in TS 34.108 clause 9.1.1: Added or Reconfigured DL TrCH information */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DL_AddReconfTransChInfo_r9( p_DL_PS_TransportChannelIdentity, p_UL_PS_TransportChannelIdentity ), // @sic R5s130447 sic@ cs_DL_AddReconfTransChInfo_r9(tsc_DL_DCH5, tsc_UL_DCH5) }; template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9(template (value) HARQ_Info_r7 p_HARQ_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DL_AddReconfTransChInfo_r9(tsc_DL_DCH5, tsc_UL_DCH5), cs_DL_AddReconfTransChInfoExplicit_r9(tsc_DL_DCH1, cds_DCH_336_TFS_0_UE), cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r9 (cs_HSDSCH_Info_r9 (p_HARQ_Info, cs_AddOrReconfMAC_dFlow (cs_MAC_hs_AddReconfQueue))) @@ -102,7 +102,7 @@ module UTRAN_RRC_RAB_Templates_r9 { }; template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_r9(template (value) HARQ_Info_r7 p_HARQ_Info) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_DL_AddReconfTransChInfo_r9(tsc_DL_DCH5, tsc_UL_DCH5), cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r9 (cs_HSDSCH_Info_r9 (p_HARQ_Info, cs_AddOrReconfMAC_dFlow (cs_MAC_hs_AddReconfQueue))) }; @@ -112,14 +112,15 @@ module UTRAN_RRC_RAB_Templates_r9 { cs_DL_AddReconfTransChHSDSCHInfo_HSDPA_r9 (cs_HSDSCH_Info_r9 (p_HARQ_Info, cs_AddOrReconfMAC_dFlow2 (cs_MAC_hs_AddReconfQueue, cs_MAC_hs_AddReconfQueue(148,1)))) // @sic R5s120671 sic@ }; - template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9_FDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9(cs_HARQ_Info_FDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9_TDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9(cs_HARQ_Info_TDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ - template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_TDD := cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_r9(cs_HARQ_Info_TDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9_FDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9(cs_HARQ_Info_FDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9_TDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSDPA_r9(cs_HARQ_Info_TDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_TDD := cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_r9(cs_HARQ_Info_TDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSPA_TDD := cs_DL_AddReconfTransChInfoList_2DCH_HS_PS_HSPA_r9(cs_HARQ_Info_TDD); /* @status APPROVED (LTE_IRAT) */ - template (value) E_DCH_AddReconf_MAC_d_Flow_r7 cs_E_DCH_AddReconf_MAC_d_Flow_DTCH_r7 := + template (value) E_DCH_AddReconf_MAC_d_Flow_r7 cs_E_DCH_AddReconf_MAC_d_Flow_DTCH_r7 ( E_DCH_MAC_d_FlowIdentity p_E_DCH_MAC_d_FlowIdentity := tsc_E_DCH_MAC_d_FlowId_DTCH1 // @sic feFACH R5-150125 sic@ + ) := { /* @status APPROVED (LTE_IRAT, UTRAN) */ - mac_d_FlowIdentity := tsc_E_DCH_MAC_d_FlowId_DTCH1, + mac_d_FlowIdentity := p_E_DCH_MAC_d_FlowIdentity, mac_d_FlowPowerOffset := tsc_E_DCH_MAC_d_FlowPowerOffset, mac_d_FlowMaxRetrans := tsc_E_DCH_MAC_d_FlowMaxRetrans_DTCH, mac_d_FlowRetransTimer := omit, @@ -137,7 +138,7 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) DL_DCCH_Message cs_RadioBearerSetup_r9(IntegrityCheckInfo p_Integrityinfo, template (value) RadioBearerSetup_r9_IEs p_RadioBearerSetup) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := p_Integrityinfo, message_ := { radioBearerSetup := { @@ -168,7 +169,7 @@ module UTRAN_RRC_RAB_Templates_r9 { //---------------------------------------------------------------------------- template (value) RadioBearerSetup_r9_IEs cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeInfo := omit, cipheringModeInfo := omit, sr_vcc_Info := omit, @@ -222,7 +223,7 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) RadioBearerSetup_r9_IEs cds_RadioBearerSetup_r9_IEs_FACH_PS_FDD(C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, rrc_StateIndicator := cell_FACH, @@ -238,7 +239,7 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) RadioBearerSetup_r9_IEs cds_RadioBearerSetup_r9_IEs_FACH_PS_TDD(C_RNTI p_C_RNTI, bitstring p_RAB_Id) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ new_C_RNTI := p_C_RNTI, new_H_RNTI := omit, rrc_StateIndicator := cell_FACH, @@ -256,7 +257,7 @@ module UTRAN_RRC_RAB_Templates_r9 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, @@ -279,17 +280,17 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, new_H_RNTI := tsc_H_RNTI, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { - cs_RAB_InfoSetupDCH_PS_HSDPA (p_RAB_Id, cs_RLC_InfoAM_HSDPA)//FFS - Check values + cs_RAB_InfoSetupDCH_PS_HSDPA (p_RAB_Id, cs_RLC_InfoAM_HSDPA) }, - ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD,//FFS - Check values - ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k,//FFs - check values - dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx),//FFS - check values - dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_TDD,//@sic R5s140520 sic@ + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCH_PS_64k_TDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCH_PS_64k, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoDCH_TDD(cs_TFCS_Cmpl0_1_Rx), + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoList_1DCH_HS_PS_HSDPA_TDD, maxAllowedUL_TX_Power := tsc_MaxAllowPwr, ul_DPCH_Info := cs_UL_DPCH_64k_PS_TDD, dl_HSPDSCH_Information := cs_DL_HSPDSCH_Information_TDD (cs_HS_SCCH_Info_TDD, cs_HS_PDSCH_Midamble_Configuration_TDD128), @@ -303,7 +304,7 @@ module UTRAN_RRC_RAB_Templates_r9 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_HS_FromDCH_UL_64k_FDD (p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); @@ -322,7 +323,7 @@ module UTRAN_RRC_RAB_Templates_r9 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -342,7 +343,7 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -364,7 +365,7 @@ module UTRAN_RRC_RAB_Templates_r9 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_64k_PS_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); @@ -383,7 +384,7 @@ module UTRAN_RRC_RAB_Templates_r9 { UL_ScramblingCode p_UL_ScramblingCode, PrimaryScramblingCode p_PrimScramblingCode) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -403,7 +404,7 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -424,7 +425,7 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_Speech_FDD(p_Activetime, p_RAB_Id, p_UL_ScramblingCode, p_PrimScramblingCode)); template (value) DL_DCCH_Message cs_108_RB_SetUpSpeech_r9_TDD(IntegrityCheckInfo p_Integrityinfo, @@ -439,7 +440,7 @@ module UTRAN_RRC_RAB_Templates_r9 { PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -460,14 +461,14 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, PrimaryScramblingCode p_PrimScramblingCode, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_PSandConvSpeech_FDD(p_Activetime, p_RAB_Id, p_PrimScramblingCode, p_UL_ScramblingCode)); template (value) RadioBearerSetup_r9_IEs cds_RadioBearerSetup_r9_IEs_PSandConvSpeech_TDD(ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) modifies cs_RadioBearerSetup_r9_IEs_Omit := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ activationTime := p_Activetime, rrc_StateIndicator := cell_DCH, rab_InformationSetupList := { @@ -494,7 +495,7 @@ module UTRAN_RRC_RAB_Templates_r9 { template (value) DL_AddReconfTransChInformation_r9 cs_DL_AddReconfTransChInfoExplicit_r9(integer p_TransportChannelId, template (value) DedicatedTransChTFS p_DedicatedTransChTFS, template (omit) QualityTarget p_QualityTarget := cs_QualityTarget) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_TransportChannelType := { dch := p_TransportChannelId }, @@ -511,7 +512,7 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) := /* PDU Constraint Defined in TS 34.108 clause 9. But uses 64 K uplink */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_HS_FromDCH_UL_64k_TDD (p_Activetime, p_RAB_Id, p_CellParametersID)); @@ -520,7 +521,7 @@ module UTRAN_RRC_RAB_Templates_r9 { bitstring p_RAB_Id, CellParametersID p_CellParametersID) := /* ASN.1 PDU Constraint. Defined in TS 34.108 clause 9. */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_64k_PS_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); @@ -528,7 +529,7 @@ module UTRAN_RRC_RAB_Templates_r9 { ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_Speech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); @@ -536,20 +537,20 @@ module UTRAN_RRC_RAB_Templates_r9 { ActivationTime p_Activetime, bitstring p_RAB_Id, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_IRAT) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, SSNITZ) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_PSandConvSpeech_TDD(p_Activetime, p_RAB_Id, p_CellParametersID)); template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_TDD(IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_FACH_PS_TDD(p_C_RNTI, p_RAB_Id)); template (value) DL_DCCH_Message cs_108_RB_SetUpFACH_PS_FDD_r9(IntegrityCheckInfo p_Integrityinfo, C_RNTI p_C_RNTI, bitstring p_RAB_Id) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RadioBearerSetup_r9(p_Integrityinfo, cds_RadioBearerSetup_r9_IEs_FACH_PS_FDD(p_C_RNTI, p_RAB_Id)); diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn index 0530bc4..8f4ecb9 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_SysInfo_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 00:42:21 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13920 $ /******************************************************************************/ module UTRAN_RRC_SysInfo_Templates { @@ -21,14 +21,14 @@ module UTRAN_RRC_SysInfo_Templates { // ============================================================================= // templates to shorten and simplify TTCN-2 implementation - template (value) SchedulingInformation.scheduling.sib_Pos cs_SIB_Pos_Rep16(integer p_Pos) := { rep16 := p_Pos }; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation.scheduling.sib_Pos cs_SIB_Pos_Rep64(integer p_Pos) := { rep64 := p_Pos }; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation.scheduling.sib_Pos cs_SIB_Pos_Rep128(integer p_Pos) := { rep128 := p_Pos }; /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation.scheduling.sib_Pos cs_SIB_Pos_Rep16(integer p_Pos) := { rep16 := p_Pos }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation.scheduling.sib_Pos cs_SIB_Pos_Rep64(integer p_Pos) := { rep64 := p_Pos }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation.scheduling.sib_Pos cs_SIB_Pos_Rep128(integer p_Pos) := { rep128 := p_Pos }; /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) SchedulingInformation cs_SchedulingInformation(template (value) SchedulingInformation.scheduling.sib_Pos p_SIB_Pos, template (omit) SegCount p_SegCount := omit, // DEFAULT: 1 template (omit) SibOFF_List p_SIB_PosOffsetInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ scheduling := { segCount := p_SegCount, sib_Pos := p_SIB_Pos, @@ -36,24 +36,24 @@ module UTRAN_RRC_SysInfo_Templates { } }; - template (value) SchedulingInformation cs_SB1_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep16 (1), 1); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SB1_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep16 (1), 1); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB5_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 1); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB5_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 2, {so4}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB5_Schedul3 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 3, {so4, so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB5_Schedul4 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 4, {so4, so2, so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB5_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 1); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB5_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 2, {so4}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB5_Schedul3 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 3, {so4, so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB5_Schedul4 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (19), 4, {so4, so2, so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB6_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 1); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB6_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 2, {so4}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB6_Schedul3 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 3, {so4, so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB6_Schedul4 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 4, {so4, so2, so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB6_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 1); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB6_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 2, {so4}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB6_Schedul3 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 3, {so4, so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB6_Schedul4 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (3), 4, {so4, so2, so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB11_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (29), 1); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB11_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (29), 2, {so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB11_Schedul3 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (29), 3, {so2, so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB11_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (29), 1); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB11_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (29), 2, {so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB11_Schedul3 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (29), 3, {so2, so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB19_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (14), 1); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SchedulingInformation cs_SIB19_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (14), 2, {so2}); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB19_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (14), 1); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SchedulingInformation cs_SIB19_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep64 (14), 2, {so2}); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) SchedulingInformation cs_SIB16_Schedul1 := cs_SchedulingInformation(cs_SIB_Pos_Rep128 (35), 1); template (value) SchedulingInformation cs_SIB16_Schedul2 := cs_SchedulingInformation(cs_SIB_Pos_Rep128 (35), 2, {so4}); @@ -90,7 +90,7 @@ module UTRAN_RRC_SysInfo_Templates { // The value 1 of valueTags is a place holder. actual values of them will be non-zero and assigned dynamically in various SendSystemInformation test Steps. // ----------------------------------------------------------------------------- template (value) MasterInformationBlock cs_MIB_Def(template (value) PLMN_Identity p_PLMN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ mib_ValueTag := 1, plmn_Type := { gsm_MAP := { @@ -127,7 +127,7 @@ module UTRAN_RRC_SysInfo_Templates { }; // ----------------------------------------------------------------------------- template (value) MasterInformationBlock cs_MIB_UTRAN_GERAN_Def(PLMN_Identity p_PLMN) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ mib_ValueTag := 1, plmn_Type := { gsm_MAP := { @@ -185,7 +185,7 @@ module UTRAN_RRC_SysInfo_Templates { // The value 1 of valueTags is a place holder. actual values of them will be non-zero and assigned dynamically in various SendSystemInformation test Steps. // ----------------------------------------------------------------------------- template (value) SysInfoTypeSB1 cs_SB1_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib_ReferenceList := { { sib_Type := { sysInfoType6 := 1 }, @@ -223,13 +223,13 @@ module UTRAN_RRC_SysInfo_Templates { }, extGANSS_SIBTypeInfoSchedulingInfoList := omit }, - nonCriticalExtensions := omit + vc50NonCriticalExtensions := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ } } }; // ----------------------------------------------------------------------------- template (value) SysInfoTypeSB1 cs_SB1_UTRAN_GERAN_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib_ReferenceList := { { sib_Type := { sysInfoType6 := 1 }, @@ -267,7 +267,7 @@ module UTRAN_RRC_SysInfo_Templates { }, extGANSS_SIBTypeInfoSchedulingInfoList := omit }, - nonCriticalExtensions := omit + vc50NonCriticalExtensions := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ } } }; @@ -285,7 +285,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_AttFlag, CN_DRX_CycleLengthCoefficient p_DRX_1, CN_DRX_CycleLengthCoefficient p_DRX_2) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cn_CommonGSM_MAP_NAS_SysInfo := p_Lac, cn_DomainSysInfoList := { { @@ -344,7 +344,7 @@ module UTRAN_RRC_SysInfo_Templates { // for cell 1 and cell 2. // ----------------------------------------------------------------------------- template (value) SysInfoType2 cs_SIB2_Def(bitstring p_URAId) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ura_IdentityList := { p_URAId }, @@ -360,7 +360,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) CellSelectReselectInfoSIB_3_4 cs_CellSelectReselectInfoSIB_3_4(template (value) CellSelectReselectInfoSIB_3_4.modeSpecificInfo p_ModeSpecificInfo, MaxAllowedUL_TX_Power p_MaxAllowedUL_TX_Power) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ mappingInfo := omit, cellSelectQualityMeasure := { cpich_RSCP := NULL @@ -373,7 +373,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) RAT_FDD_InfoList cs_RAT_FDD_InfoList_GERAN := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { rat_Identifier := gsm, s_SearchRAT := -16, @@ -383,7 +383,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) RAT_TDD_InfoList cs_RAT_TDD_InfoList_GERAN := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { rat_Identifier := gsm, s_SearchRAT := -32, @@ -393,7 +393,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) CellSelectReselectInfoSIB_3_4.modeSpecificInfo cs_SIB3_4_ModeSpecificInfo_FDD(template (omit) RAT_FDD_InfoList p_RAT_FDD_InfoList := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fdd := { s_Intrasearch := 8, // IE value * 2 s_Intersearch := 8, // IE value * 2 @@ -405,7 +405,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) CellSelectReselectInfoSIB_3_4.modeSpecificInfo cs_SIB3_ModeSpecificInfo_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { s_Intrasearch := 10, s_Intersearch := 10, @@ -416,7 +416,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) CellSelectReselectInfoSIB_3_4.modeSpecificInfo cs_SIB4_ModeSpecificInfo_TDD(template (omit) RAT_TDD_InfoList p_RAT_TDD_InfoList := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { s_Intrasearch := 10, // IE value * 2 s_Intersearch := 10, // IE value * 2 @@ -427,7 +427,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) CellSelectReselectInfoSIB_3_4.modeSpecificInfo cs_SIB3_ModeSpecificInfo_TDD_GERAN := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { s_Intrasearch := 21, s_Intersearch := 21, @@ -442,7 +442,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) SysInfoType3 cs_SIB3_Common(B28_Type p_CellIdentity, template (value) CellSelectReselectInfoSIB_3_4 p_CellSelectReselectInfoSIB_3_4) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib4indicator := true, cellIdentity := p_CellIdentity, cellSelectReselectInfo := p_CellSelectReselectInfoSIB_3_4, @@ -475,19 +475,19 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) SysInfoType3 cs_SIB3_DefUTRAN(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB3_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB3_4_ModeSpecificInfo_FDD, 21)); template (value) SysInfoType3 cs_SIB3_DefUTRAN_GERAN(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB3_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB3_4_ModeSpecificInfo_FDD(cs_RAT_FDD_InfoList_GERAN), 21)); template (value) SysInfoType3 cs_SIB3_DefUTRAN_TDD(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB3_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB3_ModeSpecificInfo_TDD, tsc_MaxAllowedUL_TX_Power_TDD)); template (value) SysInfoType3 cs_SIB3_DefUTRAN_GERAN_TDD(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB3_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB3_ModeSpecificInfo_TDD_GERAN, tsc_MaxAllowedUL_TX_Power_TDD)); template (value) SysInfoType3 cds_SIB3_Barred(B28_Type p_CellIdentity, @@ -573,7 +573,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) SysInfoType4 cs_SIB4_Common(B28_Type p_CellIdentity, template (value) CellSelectReselectInfoSIB_3_4 p_CellSelectReselectInfoSIB_3_4) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellIdentity := p_CellIdentity, cellSelectReselectInfo := p_CellSelectReselectInfoSIB_3_4, cellAccessRestriction := { @@ -588,19 +588,19 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) SysInfoType4 cs_SIB4_DefUTRAN(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB4_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB3_4_ModeSpecificInfo_FDD, 21)); template (value) SysInfoType4 cs_SIB4_DefUTRAN_GERAN(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB4_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB3_4_ModeSpecificInfo_FDD(cs_RAT_FDD_InfoList_GERAN), 21)); template (value) SysInfoType4 cs_SIB4_DefUTRAN_TDD(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB4_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB4_ModeSpecificInfo_TDD, tsc_MaxAllowedUL_TX_Power_TDD)); template (value) SysInfoType4 cs_SIB4_DefUTRAN_GERAN_TDD(B28_Type p_CellIdentity) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB4_Common(p_CellIdentity, cs_CellSelectReselectInfoSIB_3_4(cs_SIB4_ModeSpecificInfo_TDD(cs_RAT_TDD_InfoList_GERAN), tsc_MaxAllowedUL_TX_Power_TDD)); ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -612,7 +612,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) OpenLoopPowerControl_TDD cs_OpenLoopPowerControl_TDD := { /* Default OpenLoopPowerControl_TDD; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ primaryCCPCH_TX_Power := tsc_PrimaryCCPCH_TX_Power, alpha := omit, prach_ConstantValue := 0, @@ -622,7 +622,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) IndividualTimeslotInfo_LCR_r4_ext cs_IndividualTimeslotInfo_LCR_r4_ext_SCCPCH := { /* used in system info, reference to "cb_IndividualTimeslotInfo_LCR_r4_SCCPCH"; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ midambleShiftAndBurstType := { midambleAllocationMode := {defaultMidamble := NULL}, midambleConfiguration := 4 @@ -633,7 +633,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) IndividualTimeslotInfo cs_IndividualTimeslotInfo_SCCPCH := { /* IndividualTimeslotInfo for SCCPCH; TDD only */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ timeslotNumber := 0, tfci_Existence := true, midambleShiftAndBurstType := { @@ -651,7 +651,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) SysInfoType5 cs_SIB5_Def_TDD(PICH_PowerOffset p_PowerPICH, CellParametersID p_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib6indicator := true, pich_PowerOffset := p_PowerPICH, modeSpecificInfo := { @@ -840,7 +840,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) SysInfoType5 cs_SIB5_Def(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib6indicator := true, pich_PowerOffset := p_PowerPICH, modeSpecificInfo := { @@ -1080,7 +1080,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) SysInfoType5 cds_SIB5_v650ext(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH, RadioFrequencyBandFDD2 p_RadioFrequencyBandFDD2) modifies cs_SIB5_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ v4b0NonCriticalExtensions := { sysInfoType5_v4b0ext := { // @sic R5s120573 sic@ pNBSCH_Allocation_r4 := omit, @@ -1102,7 +1102,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) SysInfoType5 cds_SIB5_v4b0ext(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH, RadioFrequencyBandFDD p_RadioFrequencyBandFDD) modifies cs_SIB5_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ v4b0NonCriticalExtensions := { sysInfoType5_v4b0ext := { pNBSCH_Allocation_r4 := omit, @@ -1118,7 +1118,7 @@ module UTRAN_RRC_SysInfo_Templates { AICH_PowerOffset p_PowerAICH, RadioFrequencyBandFDD3 p_RadioFrequencyBandFDD3) modifies cs_SIB5_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ // @sic R5s120178 sic@ v4b0NonCriticalExtensions := { sysInfoType5_v4b0ext := omit, @@ -1168,7 +1168,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) AdditionalPRACH_TF_and_TFCS_CCCH_List cs_AddPRACH_TF_TFS_CCCH_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { additionalPRACH_TF_and_TFCS_CCCH_IEs := { @@ -1196,39 +1196,41 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) SysInfoType5_v690ext_IEs cs_SysInfoType5_v690ext_IEs_AddRACH_TF := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ edch_CellIndicator := omit, sccpch_SystemInformation_MBMS := omit, additionalPRACH_TF_and_TFCS_CCCH_List := cs_AddPRACH_TF_TFS_CCCH_FDD, cBS_DRX_Level1Information_extension := omit }; - template (value) SysInfoType5 cs_SIB5_Band5(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band6(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandVI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band7(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandVII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - - template (value) SysInfoType5 cs_SIB5_Band8 (PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandVIII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band11(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band12(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band13(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXIII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band14(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXIV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band15(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band16(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXVI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band17(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXVII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band18(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXVIII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band19(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXIX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band20(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band21(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXXI); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5_Band22(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXXII); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - - template (value) SysInfoType5 cs_SIB5_Band25(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_va40ext(p_PowerPICH, p_PowerAICH, bandXXV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band5(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band6(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandVI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band7(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandVII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) SysInfoType5 cs_SIB5_Band8 (PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandVIII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band11(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band12(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band13(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXIII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band14(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXIV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band15(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band16(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXVI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band17(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXVII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band18(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXVIII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band19(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXIX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band20(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band21(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXXI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band22(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandXXII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + + template (value) SysInfoType5 cs_SIB5_Band25(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_va40ext(p_PowerPICH, p_PowerAICH, bandXXV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band26(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_va40ext(p_PowerPICH, p_PowerAICH, bandXXVI); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5_Band32(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_va40ext(p_PowerPICH, p_PowerAICH, bandXXXII); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* NOTE: In ASN.1 definition SysInfoType5bis := SysInfoType5 Then to facilitate implementation, SIB5bis constraint is defined as SysInfoType5 */ - template (value) SysInfoType5 cs_SIB5bis_Band4 (PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandIV); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5bis_Band9 (PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandIX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) SysInfoType5 cs_SIB5bis_Band10(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandX); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5bis_Band4 (PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v4b0ext(p_PowerPICH, p_PowerAICH, bandIV); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5bis_Band9 (PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandIX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) SysInfoType5 cs_SIB5bis_Band10(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := cds_SIB5_v650ext(p_PowerPICH, p_PowerAICH, bandX); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ////////////////////////////////////////////////////////////////////////////////////////////////// // SIB 6 @@ -1239,7 +1241,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) SysInfoType6 cs_SIB6_Def(PICH_PowerOffset p_PowerPICH, AICH_PowerOffset p_PowerAICH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ pich_PowerOffset := p_PowerPICH, modeSpecificInfo := { fdd := { @@ -1259,7 +1261,7 @@ module UTRAN_RRC_SysInfo_Templates { // Similar to cb_SIB5_Def, except "AC-to-ASC mapping table" not present // ----------------------------------------------------------------------------- template (value) SysInfoType6 cs_SIB6_Def_TDD(PICH_PowerOffset p_PowerPICH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ pich_PowerOffset := p_PowerPICH, modeSpecificInfo := { tdd := { @@ -1288,7 +1290,7 @@ module UTRAN_RRC_SysInfo_Templates { // Default system information block type 7 (FDD) // ----------------------------------------------------------------------------- template (value) SysInfoType7 cs_SIB7_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ modeSpecificInfo := { fdd := { ul_Interference := -100 @@ -1306,7 +1308,7 @@ module UTRAN_RRC_SysInfo_Templates { // Default system information block type 7 (TDD) // ----------------------------------------------------------------------------- template (value) SysInfoType7 cs_SIB7_Def_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ modeSpecificInfo := {tdd := NULL}, prach_Information_SIB5_List := { 2 @@ -1325,11 +1327,19 @@ module UTRAN_RRC_SysInfo_Templates { // ============================================================================= // Common templates for SIB11 (FDD) // ----------------------------------------------------------------------------- + template (value) FACH_MeasurementOccasionInfo cs_FACH_MeasurementOccasionInfo_FDD(integer p_FACH_MeasOccasionCoeff, + boolean p_InterFreq_FDD_MeasId) := + { /* @status APPROVED (LTE_A) */ + fACH_meas_occasion_coeff := p_FACH_MeasOccasionCoeff, + inter_freq_FDD_meas_ind := p_InterFreq_FDD_MeasId, + inter_freq_TDD_meas_ind := false, + inter_RAT_meas_ind := {gsm} + }; template (value) NewIntraFreqCellSI_RSCP cs_NewIntraFreqCell_FDD(integer p_CellId, PrimaryScramblingCode p_PrimaryScramblingCode, boolean p_ReadSFN_Indicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ intraFreqCellID := p_CellId, cellInfo := { cellIndividualOffset := omit, // default value @@ -1351,7 +1361,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) NewInterFreqCellSI_RSCP cs_NewInterFreqCell_FDD(integer p_CellId, FrequencyInfo p_FrequencyInfo, PrimaryScramblingCode p_PrimaryScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ interFreqCellID := p_CellId, frequencyInfo := p_FrequencyInfo, cellInfo := { @@ -1376,7 +1386,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_GERANCell_Bcc, Frequency_Band p_GERANCell_BandInd, integer p_GERANCell_Freq) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ interRATCellID := p_GERANCell_Id, technologySpecificInfo := { gsm := { @@ -1398,7 +1408,7 @@ module UTRAN_RRC_SysInfo_Templates { // ----------------------------------------------------------------------------- template (value) IntraFreqEventCriteriaList cs_IntraFreqEvent1b_1c := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { event := { e1b := { @@ -1434,7 +1444,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) NewInterFreqCellSI_List_RSCP p_NewInterFreqCellList, template (omit) InterRATMeasurementSysInfo_B p_InterRATMeasurementSysInfo := omit, boolean p_Sib12indicator := true) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib12indicator := p_Sib12indicator, fach_MeasurementOccasionInfo := omit, measurementControlSysInfo := { @@ -1520,7 +1530,7 @@ module UTRAN_RRC_SysInfo_Templates { PrimaryScramblingCode p_ActiveCellInfo_PriScrmCode, integer p_IntraCellInfo2_CellId, PrimaryScramblingCode p_IntraCellInfo2_PriScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewIntraFreqCell_FDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_PriScrmCode, false), // readSFN_Indicator := false cs_NewIntraFreqCell_FDD(p_IntraCellInfo2_CellId, p_IntraCellInfo2_PriScrmCode, true) // readSFN_Indicator := true }; @@ -1531,7 +1541,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, PrimaryScramblingCode p_InterCellInfo4_PriScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewInterFreqCell_FDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_PriScrmCode), cs_NewInterFreqCell_FDD(p_InterCellInfo4_CellId, p_InterCellInfo4_FreqInfo, p_InterCellInfo4_PriScrmCode) }; @@ -1540,7 +1550,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) NewIntraFreqCellSI_List_RSCP cs_NewIntraFreqCellList_Freq2_FDD(integer p_ActiveCellInfo_CellId, PrimaryScramblingCode p_ActiveCellInfo_PriScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewIntraFreqCell_FDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_PriScrmCode, false) // readSFN_Indicator := false }; @@ -1553,7 +1563,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, PrimaryScramblingCode p_InterCellInfo4_PriScrmCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewInterFreqCell_FDD(p_InterCellInfo2_CellId, p_InterCellInfo2_FreqInfo, p_InterCellInfo2_PriScrmCode), cs_NewInterFreqCell_FDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_PriScrmCode), cs_NewInterFreqCell_FDD(p_InterCellInfo4_CellId, p_InterCellInfo4_FreqInfo, p_InterCellInfo4_PriScrmCode) @@ -1576,7 +1586,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_GERANCell3_Bcc, Frequency_Band p_GERANCell3_BandInd, integer p_GERANCell3_Freq) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ interRATCellInfoList := { removedInterRATCellList := { removeNoInterRATCells := NULL @@ -1601,7 +1611,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, PrimaryScramblingCode p_InterCellInfo4_PriScrmCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_FDD( cs_NewIntraFreqCellList_Def_FDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_PriScrmCode, p_IntraCellInfo2_CellId, p_IntraCellInfo2_PriScrmCode), cs_NewInterFreqCellList_Def_FDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_PriScrmCode, @@ -1618,7 +1628,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, PrimaryScramblingCode p_InterCellInfo4_PriScrmCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_FDD( cs_NewIntraFreqCellList_Freq2_FDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_PriScrmCode), cs_NewInterFreqCellList_Freq2_FDD(p_InterCellInfo2_CellId, p_InterCellInfo2_FreqInfo, p_InterCellInfo2_PriScrmCode, p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_PriScrmCode, @@ -1650,7 +1660,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_GERANCell3_Bcc, Frequency_Band p_GERANCell3_BandInd, integer p_GERANCell3_Freq) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_FDD( cs_NewIntraFreqCellList_Def_FDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_PriScrmCode, p_IntraCellInfo2_CellId, p_IntraCellInfo2_PriScrmCode), cs_NewInterFreqCellList_Def_FDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_PriScrmCode, @@ -1687,7 +1697,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_GERANCell3_Bcc, Frequency_Band p_GERANCell3_BandInd, integer p_GERANCell3_Freq) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_FDD( cs_NewIntraFreqCellList_Freq2_FDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_PriScrmCode), cs_NewInterFreqCellList_Freq2_FDD(p_InterCellInfo2_CellId, p_InterCellInfo2_FreqInfo, p_InterCellInfo2_PriScrmCode, p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_PriScrmCode, @@ -1711,7 +1721,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) NewIntraFreqCellSI_RSCP_LCR_r4 cs_NewIntraFreqCell_TDD(integer p_CellId, CellParametersID p_CellParametersID, boolean p_ReadSFN_Indicator) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ intraFreqCellID := p_CellId, cellInfo := { cellIndividualOffset := omit, // default value @@ -1731,7 +1741,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) NewInterFreqCellSI_RSCP_LCR_r4 cs_NewInterFreqCell_TDD(integer p_CellId, FrequencyInfo p_FrequencyInfo, CellParametersID p_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ interFreqCellID := p_CellId, frequencyInfo := p_FrequencyInfo, cellInfo := { @@ -1756,7 +1766,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) SysInfoType11 cs_SIB11_Common_TDD (template (value) NewIntraFreqCellSI_List_RSCP_LCR_r4 p_NewIntraFreqCellSI_List, template (value) NewInterFreqCellSI_List_RSCP_LCR_r4 p_NewInterFreqCellSI_List, template (omit) InterRATMeasurementSysInfo_B p_InterRATMeasurementSysInfo := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sib12indicator := true, fach_MeasurementOccasionInfo := omit, measurementControlSysInfo := { @@ -1822,7 +1832,7 @@ module UTRAN_RRC_SysInfo_Templates { CellParametersID p_ActiveCellInfo_CellParametersID, integer p_IntraCellInfo2_CellId, CellParametersID p_IntraCellInfo2_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewIntraFreqCell_TDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_CellParametersID, false), // readSFN_Indicator := false cs_NewIntraFreqCell_TDD(p_IntraCellInfo2_CellId, p_IntraCellInfo2_CellParametersID, true) // readSFN_Indicator := true }; @@ -1833,7 +1843,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, PrimaryScramblingCode p_InterCellInfo4_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewInterFreqCell_TDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_CellParametersID), cs_NewInterFreqCell_TDD(p_InterCellInfo4_CellId, p_InterCellInfo4_FreqInfo, p_InterCellInfo4_CellParametersID) }; @@ -1843,7 +1853,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) NewIntraFreqCellSI_List_RSCP_LCR_r4 cs_NewIntraFreqCellList_Freq2_TDD(integer p_ActiveCellInfo_CellId, CellParametersID p_ActiveCellInfo_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewIntraFreqCell_TDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_CellParametersID, false) // readSFN_Indicator := false }; @@ -1856,7 +1866,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, PrimaryScramblingCode p_InterCellInfo4_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + { /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_NewInterFreqCell_TDD(p_InterCellInfo2_CellId, p_InterCellInfo2_FreqInfo, p_InterCellInfo2_CellParametersID), cs_NewInterFreqCell_TDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_CellParametersID), cs_NewInterFreqCell_TDD(p_InterCellInfo4_CellId, p_InterCellInfo4_FreqInfo, p_InterCellInfo4_CellParametersID) @@ -1874,7 +1884,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, CellParametersID p_InterCellInfo4_CellParametersID) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_TDD (cs_NewIntraFreqCellList_Def_TDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_CellParametersID, p_IntraCellInfo2_CellId, p_IntraCellInfo2_CellParametersID), cs_NewInterFreqCellList_Def_TDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_CellParametersID, @@ -1891,7 +1901,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_InterCellInfo4_CellId, FrequencyInfo p_InterCellInfo4_FreqInfo, CellParametersID p_InterCellInfo4_CellParametersID) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_TDD (cs_NewIntraFreqCellList_Freq2_TDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_CellParametersID), cs_NewInterFreqCellList_Freq2_TDD(p_InterCellInfo2_CellId, p_InterCellInfo2_FreqInfo, p_InterCellInfo2_CellParametersID, p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_CellParametersID, @@ -1924,7 +1934,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_GERANCell3_Bcc, Frequency_Band p_GERANCell3_BandInd, integer p_GERANCell3_Freq) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_TDD (cs_NewIntraFreqCellList_Def_TDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_CellParametersID, p_IntraCellInfo2_CellId, p_IntraCellInfo2_CellParametersID), cs_NewInterFreqCellList_Def_TDD(p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_CellParametersID, @@ -1959,7 +1969,7 @@ module UTRAN_RRC_SysInfo_Templates { integer p_GERANCell3_Bcc, Frequency_Band p_GERANCell3_BandInd, integer p_GERANCell3_Freq) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ cs_SIB11_Common_TDD (cs_NewIntraFreqCellList_Freq2_TDD(p_ActiveCellInfo_CellId, p_ActiveCellInfo_CellParametersID), cs_NewInterFreqCellList_Freq2_TDD(p_InterCellInfo2_CellId, p_InterCellInfo2_FreqInfo, p_InterCellInfo2_CellParametersID, p_InterCellInfo3_CellId, p_InterCellInfo3_FreqInfo, p_InterCellInfo3_CellParametersID, @@ -1979,7 +1989,7 @@ module UTRAN_RRC_SysInfo_Templates { // Similar to c_SIB11_def except that "detectedSetReportingQuantities" is not present and "timeToTrigger" = 0 // ----------------------------------------------------------------------------- template (value) SysInfoType12 cs_SIB12_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fach_MeasurementOccasionInfo := omit, measurementControlSysInfo := { use_of_HCS := { @@ -2003,7 +2013,7 @@ module UTRAN_RRC_SysInfo_Templates { // SIB 16 ////////////////////////////////////////////////////////////////////////////////////////////////// template (value) SysInfoType16 cs_SIB16_Def (SF512_AndPilot p_SF512_AndPilot):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ preDefinedRadioConfiguration := { predefinedRB_Configuration := cs_PredefinedRB_CfgSIB16, preDefTransChConfiguration := cs_PreDefTransChCfg_Speech12_2k, @@ -2013,13 +2023,13 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) PreDefPhyChConfiguration cs_PreDefPhyChCfgSIB16 (SF512_AndPilot p_SF512_AndPilot):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_DPCH_InfoPredef := cs_UL_DPCH_InfoPredefSIB16, dl_CommonInformationPredef := cs_DL_CommonInformationPredefSIB16 ( p_SF512_AndPilot ) }; template (value) UL_DPCH_InfoPredef cs_UL_DPCH_InfoPredefSIB16 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_DPCH_PowerControlInfo := { fdd := { powerControlAlgorithm := { @@ -2036,7 +2046,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) DL_CommonInformationPredef cs_DL_CommonInformationPredefSIB16 (SF512_AndPilot p_SF512_AndPilot):= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_DPCH_InfoCommon := { modeSpecificInfo := { fdd := { @@ -2049,7 +2059,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type cs_TFCS_ReconfAdd_Ctfc6Bit_SI(TFCS_ReconfAdd_CtfcSize_Ctfc6Bit_Type.ctfc6 p_Ctfc6) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ctfc6 := p_Ctfc6, powerOffsetInformation := { gainFactorInformation := { @@ -2069,7 +2079,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) PreDefTransChConfiguration cs_PreDefTransChCfg_Speech12_2k := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_CommonTransChInfo := { tfc_Subset := {allowedTFC_List := {0, 1, 2, 3, 4, 5}}, prach_TFCS := omit, @@ -2197,7 +2207,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) UL_LogicalChannelMappings cs_UL_LogicalChannelMappings_OneChannel_DCH(TransportChannelIdentity p_TransportChannelIdentity, LogicalChannelIdentity p_LogicalChannelIdentity, MAC_LogicalChannelPriority p_LogicalChannelPriority) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ oneLogicalChannel := { ul_TransportChannelType := { dch := p_TransportChannelIdentity @@ -2212,7 +2222,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) DL_LogicalChannelMappingList cs_DL_LogicalChannelMapping_OneChannel_DCH(TransportChannelIdentity p_TransportChannelIdentity, LogicalChannelIdentity p_LogicalChannelIdentity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { dl_TransportChannelType := { dch := p_TransportChannelIdentity @@ -2222,7 +2232,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) RLC_InfoChoice cs_PredefinedRB_CfgSIB16_RLC_InfoChoice_RB0 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlc_Info := { ul_RLC_Mode := { ul_UM_RLC_Mode := { @@ -2238,7 +2248,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) RLC_InfoChoice cs_PredefinedRB_CfgSIB16_RLC_InfoChoice_RB2_RB3_RB4 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlc_Info := { ul_RLC_Mode := { ul_AM_RLC_Mode := { @@ -2280,7 +2290,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) RLC_InfoChoice cs_PredefinedRB_CfgSIB16_RLC_InfoChoice_RB10_RB11_RB12 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rlc_Info := { ul_RLC_Mode := { ul_TM_RLC_Mode := { @@ -2297,7 +2307,7 @@ module UTRAN_RRC_SysInfo_Templates { }; template (value) PredefinedRB_Configuration cs_PredefinedRB_CfgSIB16:= - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ re_EstablishmentTimer := useT315, srb_InformationList := { { @@ -2383,7 +2393,7 @@ module UTRAN_RRC_SysInfo_Templates { ////////////////////////////////////////////////////////////////////////////////////////////////// template (value) SysInfoType18 cs_SIB18_Def := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ idleModePLMNIdentities := { plmnsOfIntraFreqCellsList := omit, plmnsOfInterFreqCellsList := omit, @@ -2433,7 +2443,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) EUTRA_FrequencyAndPriorityInfo cs_EUTRA_FrequencyAndPriorityInfo(EARFCN p_E_Cell, EUTRA_MeasurementBandwidth p_EUTRA_MeasurementBandwidth) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ earfcn := p_E_Cell, measurementBandwidth := p_EUTRA_MeasurementBandwidth, //@sic R5s100871 sic@ priority := 4, @@ -2448,7 +2458,7 @@ module UTRAN_RRC_SysInfo_Templates { UtraServingCellPrioritySearch1_Type p_S_PrioritySearch1, template (omit) UtraServingCellPrioritySearch2_Type p_S_PrioritySearch2 := omit, UtraServingCellthreshServingLow_Type p_ThreshServingLow) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120964: new parameter p_S_PrioritySearch2 sic@ */ utra_ServingCell := { priority := p_Priority_value, @@ -2463,7 +2473,7 @@ module UTRAN_RRC_SysInfo_Templates { template (value) UTRA_PriorityInfoList cs_Utra_PriorityInfoList_Def(UtraServingCellPriorityValue_Type p_Priority_value := 3, UtraServingCellPrioritySearch1_Type p_S_PrioritySearch1 := 0, UtraServingCellthreshServingLow_Type p_ThreshServingLow := 0) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_Utra_PriorityInfoList_Common(p_Priority_value, p_S_PrioritySearch1, -, p_ThreshServingLow); template (value) SysInfoType19 cs_SIB19_Common(template (omit) UTRA_PriorityInfoList p_Utra_PriorityInfoList, @@ -2471,7 +2481,7 @@ module UTRAN_RRC_SysInfo_Templates { template (omit) EUTRA_FrequencyAndPriorityInfoList p_Eutra_FrequencyAndPriorityInfoList, template (omit) SIB19_v920NonCriticalExtensions_Type p_NonCriticalExtensions := omit) := { /* SIB19 acc. to 36.508 Table 4.4.4.1-1 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120964 sic@: new parameter p_NonCriticalExtensions */ utra_PriorityInfoList := p_Utra_PriorityInfoList, gsm_PriorityInfoList := p_Gsm_PriorityInfoList, @@ -2481,13 +2491,13 @@ module UTRAN_RRC_SysInfo_Templates { template (value) SysInfoType19 cs_SIB19_Def (template (omit) EUTRA_FrequencyAndPriorityInfoList p_Eutra_FrequencyAndPriorityInfoList) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SIB19_Common ( cs_Utra_PriorityInfoList_Def, omit, p_Eutra_FrequencyAndPriorityInfoList ); template (value) SysInfoType19 cds_SIB19_Qbased (template (omit) EUTRA_FrequencyAndPriorityInfoList p_Eutra_FrequencyAndPriorityInfoList) modifies cs_SIB19_Def := { // SIB19 acc. to 36.508 Table 4.4.4.1-1 with condition QBASED - /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ + /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS) */ v920NonCriticalExtensions := { sysInfoType19_v920ext:= { utra_PriorityInfoList_v920ext:={ threshServingLow2:=7}, @@ -2524,10 +2534,91 @@ module UTRAN_RRC_SysInfo_Templates { extGANSS_SIBTypeInfoSchedulingInfoList := omit, csg_Indicator := true_ }, - nonCriticalExtensions := omit + vc50NonCriticalExtensions := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ } } } }; + + template (value) SIB19_v920NonCriticalExtensions_Type cs_SIB19_v920NonCriticalExtensions(template (value) SysInfoType19_v920ext p_SysInfoType19_v920ext, + template (omit) SIB19_va80NonCriticalExtensions_Type p_Va80NonCriticalExtensions := omit) := + { /* @status APPROVED (LTE_A, LTE_IRAT) */ + sysInfoType19_v920ext:= p_SysInfoType19_v920ext, + va80NonCriticalExtensions := p_Va80NonCriticalExtensions /* @sic R5-145670 R5s130195 BASELINE MOVING 2013 sic@ */ + }; + + + template (value) SysInfoType19_v920ext cs_SysInfoType19V920ext(integer p_ThreshServingLow2, + integer p_QqualMinEUTRA, + template (omit) integer p_ThreshXhigh2, + template (omit) integer p_ThreshXlow2) := + { /* @status APPROVED (LTE_A, LTE_IRAT) */ + utra_PriorityInfoList_v920ext := { + threshServingLow2 := p_ThreshServingLow2 + }, + eutra_FrequencyAndPriorityInfoList_v920ext := { + { + qqualMinEUTRA := p_QqualMinEUTRA, + threshXhigh2 := p_ThreshXhigh2, + threshXlow2 := p_ThreshXlow2 + } + } + }; + + template (value) SIB19_va80NonCriticalExtensions_Type cs_SIB19_va80NonCriticalExtensions(template (value) SysInfoType19_va80ext p_SysInfoType19_va80ext, + template (omit) SIB19_vb30NonCriticalExtensions_Type p_SysInfoType19_vb30ext := omit) := + { /* @status APPROVED (LTE_A) */ + sysInfoType19_va80ext := p_SysInfoType19_va80ext, + vb30NonCriticalExtensions := p_SysInfoType19_vb30ext + }; + + template (value) SysInfoType19_va80ext cs_SysInfoType19_va80ext_1Entry(template (omit) MultipleEUTRAFrequencyBandIndicatorList p_MultipleEUTRAFrequencyBandIndicatorList) := + { /* @status APPROVED (LTE_A) */ + multipleEutraFrequencyInfoList := { + { + multipleEUTRAFrequencyBandIndicatorlist := p_MultipleEUTRAFrequencyBandIndicatorList + } + } + }; + + template (value) SIB19_vb30NonCriticalExtensions_Type cs_SIB19_vb30NonCriticalExtensions(template (value) SIB19_sysInfoType19_vb30ext.cell_fach_meas_ind p_Cell_FeachMeasInd := high_priority_layers) := + { /* @status APPROVED (LTE_A) */ + sysInfoType19_vb30ext := { + cell_fach_meas_ind := p_Cell_FeachMeasInd + }, + vb50NonCriticalExtensions := omit + }; + + template (value) SIB19_v920NonCriticalExtensions_Type cs_SIB19_v920NonCriticalExtensions_Params (integer p_ThreshServingLow2 := 7, + integer p_QqualminEUTRA := -20, + template (omit) integer p_TreshXhigh2 := 5, + template (omit) integer p_ThreshXlow2 := 5, + template (value) SIB19_sysInfoType19_vb30ext.cell_fach_meas_ind p_Cell_FeachMeasInd := high_priority_layers) := + { // SIB19 acc. to Table 6.2.4.x.3.3-1: System Information Block type 19 for Cell 5 (Pre-test conditions and all steps) + /* @status APPROVED (LTE_A) */ + sysInfoType19_v920ext := cs_SysInfoType19V920ext(p_ThreshServingLow2, p_QqualminEUTRA, p_TreshXhigh2, p_ThreshXlow2), + va80NonCriticalExtensions := cs_SIB19_va80NonCriticalExtensions(cs_SysInfoType19_va80ext_1Entry(omit), cs_SIB19_vb30NonCriticalExtensions(p_Cell_FeachMeasInd)) + }; + + template (value) AccessClassBarredList cs_AllAccessClassesBarred_NotBarred := + { /* @status APPROVED (LTE_IRAT) */ + notBarred,//Access Class Barred0 + notBarred,//Access Class Barred1 + notBarred,//Access Class Barred2 + notBarred,//Access Class Barred3 + notBarred,//Access Class Barred4 + notBarred,//Access Class Barred5 + notBarred,//Access Class Barred6 + notBarred,//Access Class Barred7 + notBarred,//Access Class Barred8 + notBarred,//Access Class Barred9 + notBarred,//Access Class Barred10 + notBarred,//Access Class Barred11 + notBarred,//Access Class Barred12 + notBarred,//Access Class Barred13 + notBarred,//Access Class Barred14 + notBarred //Access Class Barred15 + }; + } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates.ttcn index 93de7c9..e71d94b 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 16:27:54 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12163 $ +// @version: IWD_15wk38 +// $Date: 2015-07-21 11:12:29 +0200 (Tue, 21 Jul 2015) $ +// $Rev: 14030 $ /******************************************************************************/ module UTRAN_RRC_Templates { @@ -23,7 +23,7 @@ module UTRAN_RRC_Templates { template (value) PLMN_Identity cs_UTRAN_HPLMN_Def := { /* This is the same as the EUTRA template, but using a different ASN.1 definition */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ mcc := {0,0,1}, mnc := {0,1} }; @@ -66,7 +66,7 @@ module UTRAN_RRC_Templates { template (value) FrequencyInfo cs_FreqInfo_ULDL_FDD(template (omit) UARFCN p_UarfcnUL := omit, UARFCN p_UarfcnDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ modeSpecificInfo := { fdd := { uarfcn_UL := p_UarfcnUL, @@ -79,13 +79,13 @@ module UTRAN_RRC_Templates { template (value) FrequencyInfo cs_FreqInfo_FDD(UARFCN p_UarfcnDL) := /* Absence of the UL UARFCN is equivalent to applying the default duplex distance defined for the operating frequency. According to RAN2 only default duplex distance is used */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_FreqInfo_ULDL_FDD(-, p_UarfcnDL); template (value) FrequencyInfo cs_FreqInfo_TDD(UARFCN p_UarfcnNt) := { /* Absence of the UL UARFCN is equivalent to applying the default duplex distance defined for the operating frequency. According to RAN2 only default duplex distance is used */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ modeSpecificInfo := { tdd := { uarfcn_Nt := p_UarfcnNt @@ -97,7 +97,7 @@ module UTRAN_RRC_Templates { template (value) U_RNTI cs_U_RNTI_Def := { /* Default U_RNTI identity */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ srnc_Identity := px_SRNC_Id, s_RNTI := px_SRNTI }; @@ -109,7 +109,7 @@ module UTRAN_RRC_Templates { RLC_SequenceNumber p_RLC_SN2, RLC_SequenceNumber p_RLC_SN3, RLC_SequenceNumber p_RLC_SN4) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_RB_ActTimeInfo(tsc_RB1, p_RLC_SN1), cs_RB_ActTimeInfo(tsc_RB2, p_RLC_SN2), cs_RB_ActTimeInfo(tsc_RB3, p_RLC_SN3), @@ -121,7 +121,7 @@ module UTRAN_RRC_Templates { RLC_SequenceNumber p_RLC_SN3, RLC_SequenceNumber p_RLC_SN4, RLC_SequenceNumber p_RLC_SN20) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_RB_ActTimeInfo(tsc_RB1, p_RLC_SN1), cs_RB_ActTimeInfo(tsc_RB2, p_RLC_SN2), cs_RB_ActTimeInfo(tsc_RB3, p_RLC_SN3), @@ -177,7 +177,7 @@ module UTRAN_RRC_Templates { RLC_SequenceNumber p_RLC_SN3, RLC_SequenceNumber p_RLC_SN4, RLC_SequenceNumber p_RLC_SN22) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_RB_ActTimeInfo(tsc_RB1, p_RLC_SN1), cs_RB_ActTimeInfo(tsc_RB2, p_RLC_SN2), cs_RB_ActTimeInfo(tsc_RB3, p_RLC_SN3), @@ -190,7 +190,7 @@ module UTRAN_RRC_Templates { RLC_SequenceNumber p_RLC_SN3, RLC_SequenceNumber p_RLC_SN4, RLC_SequenceNumber p_RLC_SN25) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_RB_ActTimeInfo(tsc_RB1, p_RLC_SN1), cs_RB_ActTimeInfo(tsc_RB2, p_RLC_SN2), cs_RB_ActTimeInfo(tsc_RB3, p_RLC_SN3), @@ -214,20 +214,20 @@ module UTRAN_RRC_Templates { }; template (value) RB_ActivationTimeInfoList cs_RB_ActTimeInfoList25(RLC_SequenceNumber p_RLC_SN25) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RB_ActTimeInfo(tsc_RB25, p_RLC_SN25) }; template (value) RB_ActivationTimeInfoList cs_RB_ActTimeInfoList20(RLC_SequenceNumber p_RLC_SN20) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_RB_ActTimeInfo(tsc_RB20, p_RLC_SN20) }; // --------------------------------------------------------------------------- template (value) IntegrityProtectionModeInfo cs_IntegrityProtectStart_r99(bitstring p_Integrityprotnumber, - IntegrityProtectionAlgorithm p_Alg) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) IntegrityProtectionAlgorithm p_Alg) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeCommand := { startIntegrityProtection := { integrityProtInitNumber := p_Integrityprotnumber @@ -237,8 +237,8 @@ module UTRAN_RRC_Templates { }; template (value) IntegrityProtectionModeInfo_r7 cs_IntegrityProtectStart(bitstring p_Integrityprotnumber, - IntegrityProtectionAlgorithm_r7 p_Alg) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value ) IntegrityProtectionAlgorithm_r7 p_Alg) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityProtectionModeCommand := { startIntegrityProtection := { integrityProtInitNumber := p_Integrityprotnumber @@ -248,17 +248,17 @@ module UTRAN_RRC_Templates { }; template (value) CipheringModeCommand cs_Null_CipheringModeCommand := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dummy := NULL }; - template (value) CipheringModeCommand_r7 cs_CipheringModeCmdOn(CipheringAlgorithm_r7 p_CipheringAlgorithm) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) CipheringModeCommand_r7 cs_CipheringModeCmdOn( template(value)CipheringAlgorithm_r7 p_CipheringAlgorithm) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ startRestart := p_CipheringAlgorithm }; template (value) IntegrityCheckInfo cs_IntegrityCheckInfo0 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ messageAuthenticationCode := '00000000000000000000000000000000'B, rrc_MessageSequenceNumber := 0 }; @@ -266,7 +266,7 @@ module UTRAN_RRC_Templates { //---------------------------------------------------------------------------- template (value) PICH_Info cs_PichInfo_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fdd := { channelisationCode256 := tsc_PICH1_ChC, pi_CountPerFrame := e18, @@ -318,7 +318,7 @@ module UTRAN_RRC_Templates { template (value) UL_DPCH_PowerControlInfo_r7 cs_UL_DPCH_PowerControlInfo_r7_FDD(template (omit) DeltaACK p_DeltaACK := omit, template (omit) DeltaNACK p_DeltaNACK := omit, template (omit) ACK_NACK_repetitionFactor p_ACK_NACK_RepetitionFactor := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fdd := { dpcch_PowerOffset := tsc_DPCCH_PowerOffset, pc_Preamble := 1, @@ -334,7 +334,7 @@ module UTRAN_RRC_Templates { }; template (value) UL_DPCH_PowerControlInfo_r7 cs_UL_DPCH_PowerControlInfo_r7_TDD(UL_TargetSIR p_UL_TargetSIR := tsc_UL_TargetSIR) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { ul_TargetSIR := p_UL_TargetSIR, ul_OL_PC_Signalling := { @@ -352,7 +352,7 @@ module UTRAN_RRC_Templates { }; template (value) UL_TimingAdvanceControl_r7 cs_TDD_UL_TimingAdvanceControl_r7(template (omit) SynchronisationParameters_r4 p_SynchronisationParameters := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ enabled := { tddOption := { tdd128 := { @@ -369,7 +369,7 @@ module UTRAN_RRC_Templates { template (value) UL_CCTrCH_r7_TddOption_Type cs_CommonTimeslotInfo_TDD128(TimeslotNumber_LCR_r4 p_TimeslotNumber_UL, integer p_MidambleConfiguration := 8, //@sic R5s140007 sic@ UL_TS_ChannelisationCode p_UL_TS_ChannelisationCode := tsc_UL_DPCH1_ChC_64k_PS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd128 := { ul_CCTrCH_TimeslotsCodes := { dynamicSFusage := false, @@ -401,7 +401,7 @@ module UTRAN_RRC_Templates { TFCI_Coding p_TFCI_Coding, PuncturingLimit p_PuncturingLimit, template (value) UL_CCTrCH_r7_TddOption_Type p_TddOption) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfcs_ID := p_TFCS_ID, ul_TargetSIR := p_UL_TargetSIR, timeInfo := { @@ -424,7 +424,7 @@ module UTRAN_RRC_Templates { UL_ScramblingCode p_UL_ScramblingCode, template (value) UL_DPCH_PowerControlInfo_r7 p_UL_DPCH_PowerControlInfo_r7 := cs_UL_DPCH_PowerControlInfo_r7_FDD) := { /* According to condition A3 in TS 34.108 clause 9.1.1: Uplink DPCH info */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5-123750 sic@ */ ul_DPCH_PowerControlInfo := p_UL_DPCH_PowerControlInfo_r7, modeSpecificInfo := { @@ -454,9 +454,9 @@ module UTRAN_RRC_Templates { /* @status APPROVED (UTRAN) */ cs_UL_DPCH_Info_FDD(p_SprdFct, p_PuncLimit, p_UL_ScramblingCode, cs_UL_DPCH_PowerControlInfo_r7_FDD(p_DeltaACK, p_DeltaNACK, p_ACK_NACK_RepetitionFactor)); - template (value) UL_DPCH_Info_r7 cs_UL_DPCH_13_6_StandAlone_FDD(UL_ScramblingCode p_UL_ScramblingCode) := cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_SRB, pl1, p_UL_ScramblingCode); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) UL_DPCH_Info_r7 cs_UL_DPCH_13_6_StandAlone_FDD(UL_ScramblingCode p_UL_ScramblingCode) := cs_UL_DPCH_Info_FDD(tsc_UL_DPDCH_SF_SRB, pl1, p_UL_ScramblingCode); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) UL_DPCH_Info_r7 cs_UL_DPCH_13_6_StandAlone_TDD := cs_UL_DPCH_Info_1TS_TDD(1, omit, tfci_bits_8, pl0_64,1, tsc_UL_DPCH1_ChC_SRB_13_6); /* @sic R5s130356 sic@ */ - template (value) UL_DPCH_Info_r7 cs_UL_DPCH_3_4_StandAlone_TDD := cs_UL_DPCH_Info_1TS_TDD(1, omit, tfci_bits_8, pl1,1, tsc_UL_DPCH1_ChC_SRB_3_4); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN); @sic R5s120750 sic@ */ + template (value) UL_DPCH_Info_r7 cs_UL_DPCH_3_4_StandAlone_TDD := cs_UL_DPCH_Info_1TS_TDD(1, omit, tfci_bits_8, pl1,1, tsc_UL_DPCH1_ChC_SRB_3_4); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN); @sic R5s120750 sic@ */ template (value) UL_DPCH_Info_r7 cs_UL_DPCH_Info_1TS_TDD(TFCS_IdentityPlain p_TFCS_ID, template (omit) ActivationTime p_ActivationTime, @@ -465,7 +465,7 @@ module UTRAN_RRC_Templates { TimeslotNumber_LCR_r4 p_TimeslotNumber_UL, UL_TS_ChannelisationCode p_UL_TS_ChannelisationCode, template (omit) SynchronisationParameters_r4 p_SynchronisationParameters := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* p_SynchronisationParameters .. to be used for handover (omit in other cases) */ /* @sic R5-123750 sic@ */ ul_DPCH_PowerControlInfo := cs_UL_DPCH_PowerControlInfo_r7_TDD(tsc_UL_TargetSIR), @@ -483,7 +483,7 @@ module UTRAN_RRC_Templates { // ----------------------------------------------------------------------------- template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCCH_Common_FDD(template (value) TFCS p_UL_TFCS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tfc_Subset := omit, prach_TFCS := omit, modeSpecificInfo := { @@ -494,10 +494,10 @@ module UTRAN_RRC_Templates { tfc_SubsetList := omit }; - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCCH_13_6k_r4_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCCH_13_6k_r4_FDD := cs_UL_CommTrChInfoDCCH_Common_FDD(cs_TFCS_Cmpl0_1_Tx_FDD(cs_PowerOffsetInfoBelow64k)); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCCH_Common_TDD(template (value) TFCS p_UL_TFCS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, POS, SSNITZ, UTRAN) */ tfc_Subset := omit, prach_TFCS := omit, modeSpecificInfo := { @@ -517,13 +517,13 @@ module UTRAN_RRC_Templates { tfc_SubsetList := omit }; - template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCCH_3_4k_r4_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_1_Tx_TDD); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) UL_CommonTransChInfo_r4 cs_UL_CommTrChInfoDCCH_3_4k_r4_TDD := cs_UL_CommTrChInfoDCCH_Common_TDD(cs_TFCS_Cmpl0_1_Tx_TDD); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ // ----------------------------------------------------------------------------- template (value) UL_AddReconfTransChInformation_r8 cs_UL_AddReconfTransChInfoDCCH(integer p_TransportChannelId, template (value) DedicatedTransChTFS p_DedicatedTransChTFS) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dch_usch := { ul_TransportChannelType := dch, transportChannelIdentity := p_TransportChannelId, @@ -534,25 +534,25 @@ module UTRAN_RRC_Templates { }; template (value) UL_AddReconfTransChInfoList_r8 cs_UL_AddReconfTransChInfoListDCCH_3_4k_r8 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH5, cs_DCH_148_TFS_UE_UL) }; template (value) UL_AddReconfTransChInfoList_r8 cs_UL_AddReconfTransChInfoListDCCH_3_4k_r8_TDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ // @sic R5s120750 sic@ cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH5, cs_DCH_148_TFS_DL_TDD_UE) }; template (value) UL_AddReconfTransChInfoList_r8 cs_UL_AddReconfTransChInfoListDCCH_13_6k_r8 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_UL_AddReconfTransChInfoDCCH(tsc_UL_DCH5, cs_DCH_148_TTI_10_TFS_UE) }; // ----------------------------------------------------------------------------- template (value) DL_CommonTransChInfo_r4 cs_DL_CommonTransChInfoSameAsUL_r4_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sccpch_TFCS := omit, modeSpecificInfo := { fdd := { @@ -565,7 +565,7 @@ module UTRAN_RRC_Templates { template (value) DL_CommonTransChInfo_r4 cs_DL_CommonTransChInfoDCH_FDD(template (value) TFCS p_Tfcs) := { /* Values according to condition A3 in TS 34.108 clause 9.1.1: DL Transport channel information common for all transport channel */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sccpch_TFCS := omit, modeSpecificInfo := { fdd := { @@ -580,7 +580,7 @@ module UTRAN_RRC_Templates { template (value) DL_CommonTransChInfo_r4 cs_DL_CommonTransChInfoSameAsUL_r4_TDD := { /* Values according to condition A3 in TS 34.108 clause 9.1.1: DL Transport channel information common for all transport channel */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sccpch_TFCS := omit, modeSpecificInfo := { tdd := { @@ -604,7 +604,7 @@ module UTRAN_RRC_Templates { template (value) DL_CommonTransChInfo_r4 cs_DL_CommonTransChInfoDCH_TDD(template (value) TFCS p_Tfcs) := { /* Values according to condition A3 in TS 34.108 clause 9.1.1: DL Transport channel information common for all transport channel */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ sccpch_TFCS := omit, modeSpecificInfo := { tdd := { @@ -625,7 +625,7 @@ module UTRAN_RRC_Templates { // ----------------------------------------------------------------------------- template (value) QualityTarget cs_QualityTarget(BLER_QualityValue p_QualityValue := -20) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ bler_QualityValue := p_QualityValue // Actual Value = IE Value * 0.1 }; @@ -634,7 +634,7 @@ module UTRAN_RRC_Templates { template (value) DL_AddReconfTransChInformation_r7 cs_DL_AddReconfTransChInfo_r7(TransportChannelIdentity p_DlTrChId, TransportChannelIdentity p_UlTrChId, template (omit) QualityTarget p_QualityTarget := cs_QualityTarget) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_TransportChannelType := { dch := p_DlTrChId }, @@ -648,7 +648,7 @@ module UTRAN_RRC_Templates { }; template (value) DL_AddReconfTransChInfoList_r7 cs_DL_AddReconfTransChInfoListDCCH_SRB_r7 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_AddReconfTransChInfo_r7(tsc_DL_DCH5, tsc_UL_DCH5) }; @@ -657,7 +657,7 @@ module UTRAN_RRC_Templates { template (value) RB_MappingOption_r8 cs_RB_MappingOptionSRB_DCH_DCH_r8(LogicalChannelIdentity p_LogicalChannelIdUL, MAC_LogicalChannelPriority p_LogicalChannelPriority, LogicalChannelIdentity p_LogicalChannelIdDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_LogicalChannelMappings := { oneLogicalChannel := { ul_TrCH_Type := { @@ -687,7 +687,7 @@ module UTRAN_RRC_Templates { template (value) RB_MappingOption_r8 cs_RB_MappingOptionSRB_RACH_FACH_r8(LogicalChannelIdentity p_LogicalChannelIdUL, MAC_LogicalChannelPriority p_LogicalChannelPriority, LogicalChannelIdentity p_LogicalChannelIdDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_LogicalChannelMappings := { oneLogicalChannel := { ul_TrCH_Type := { @@ -724,7 +724,7 @@ module UTRAN_RRC_Templates { SF512_AndCodeNumber p_Sf, SecondaryScramblingCode p_SecondaryScramblingCode) := { /* According to condition A3 in TS 34.108 clause 9.1.1: Downlink information for each radio link list */ - /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ { modeSpecificInfo := { fdd := { @@ -752,7 +752,7 @@ module UTRAN_RRC_Templates { template (value) DL_InformationPerRL_List_r7 cs_DL_InformationPerRL_r7_TDD(CellParametersID p_CellParametersID, template (value) DL_DPCH_InfoPerRL_r7 p_DL_DPCH_InfoPerRL_r7) := { /* According to condition A3 in TS 34.108 clause 9.1.1: Downlink information for each radio link list */ - /* @status APPROVED (LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, LTE_A, LTE_IRAT, SSNITZ, UTRAN) */ { modeSpecificInfo := { tdd := { @@ -801,7 +801,7 @@ module UTRAN_RRC_Templates { template (value) DL_InformationPerRL_List_r8 cs_DL_InformationPerRL_r8_FDD(PrimaryScramblingCode p_PrimaryScramblingCode, SF512_AndCodeNumber p_SpreadingFactorDPCH, template (omit) SecondaryScramblingCode p_SecondaryScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { modeSpecificInfo := { fdd := { @@ -830,7 +830,7 @@ module UTRAN_RRC_Templates { SF512_AndCodeNumber p_SpreadingFactorDPCH, template (omit) SecondaryScramblingCode p_SecondaryScramblingCode) modifies cs_DL_InformationPerRL_r8_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ [0] := { modeSpecificInfo := { fdd := { @@ -843,7 +843,7 @@ module UTRAN_RRC_Templates { template (value) DL_InformationPerRL_List_r8 cs_DL_InformationPerRL_r8_TDD(CellParametersID p_CellParametersID, template (value) DL_DPCH_InfoPerRL_r7 p_DL_DPCH_InfoPerRL_r7) := { /* According to condition A3 in TS 34.108 clause 9.1.1: Downlink information for each radio link list */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { modeSpecificInfo := { tdd := { @@ -876,42 +876,16 @@ module UTRAN_RRC_Templates { // ----------------------------------------------------------------------------- template (value) BCCH_BCH_Message cs_SIB_MsgNoSegment := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := {noSegment := NULL} } }; - -/* template (value) BCCH_BCH_Message cs_SIB_MsgLastCmplList1 (SIB_Type p_SIBType1, */ -/* integer p_SegIndex1, */ -/* SIB_Data_variable p_SIBData1, */ -/* SIB_Type p_SIBType2, */ -/* SIB_Data_variable p_SIBData2) := */ -/* { // !!!!! NOT USED !!!!! */ -/* message_ := { */ -/* sfn_Prime := 0, */ -/* payload := { */ -/* lastAndComplete := { */ -/* lastSegmentShort := { */ -/* sib_Type := p_SIBType1, */ -/* segmentIndex := p_SegIndex1, */ -/* sib_Data_variable := p_SIBData1 */ -/* }, */ -/* completeSIB_List :={ */ -/* { */ -/* sib_Type := p_SIBType2, */ -/* sib_Data_variable := p_SIBData2 */ -/* } */ -/* } */ -/* } */ -/* } */ -/* } */ -/* }; */ - + template (value) BCCH_BCH_Message cs_SIB_MsgCmpl(SIB_Type p_SIBType, bitstring p_SIBData) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := { @@ -925,7 +899,7 @@ module UTRAN_RRC_Templates { template (value) BCCH_BCH_Message cs_SIB_MsgCmplList1(SIB_Type p_SIBType, SIB_Data_variable p_SIBData) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := { @@ -943,7 +917,7 @@ module UTRAN_RRC_Templates { SIB_Data_variable p_SIBData1, SIB_Type p_SIBType2, SIB_Data_variable p_SIBData2) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := { @@ -964,7 +938,7 @@ module UTRAN_RRC_Templates { template (value) BCCH_BCH_Message cs_SIB_MsgLast(SIB_Type p_SIBType, integer p_SegIndex, SIB_Data_fixed p_SIBData) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := { @@ -980,7 +954,7 @@ module UTRAN_RRC_Templates { template (value) BCCH_BCH_Message cs_SIB_MsgLastShort(SIB_Type p_SIBType, integer p_SegIndex, SIB_Data_variable p_SIBData) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := { @@ -996,7 +970,7 @@ module UTRAN_RRC_Templates { template (value) BCCH_BCH_Message cs_SIB_MsgFirst(SIB_Type p_SIBType, integer p_SegCount, SIB_Data_fixed p_SIBData) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, // place holder payload := { @@ -1012,7 +986,7 @@ module UTRAN_RRC_Templates { template (value) BCCH_BCH_Message cs_SIB_MsgSubsequent(SIB_Type p_SIBType, integer p_SegIndex, SIB_Data_fixed p_SIBData) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ message_ := { sfn_Prime := 0, payload := { @@ -1028,7 +1002,7 @@ module UTRAN_RRC_Templates { // ----------------------------------------------------------------------------- template (value) BCCH_FACH_Message cs_SysInfoChangeInd(MIB_ValueTag p_MIB_ValueTag) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ message_ := { systemInformationChangeIndication := { // System Information Change Indication @@ -1108,7 +1082,7 @@ module UTRAN_RRC_Templates { //------------------------------------------------------------------------------------------------ template (value) InterRAT_UE_SecurityCapList cs_UE_SysSpecCap(bitstring p_SysSpecCap) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ { gsm := { gsmSecurityCapability := p_SysSpecCap @@ -1119,7 +1093,7 @@ module UTRAN_RRC_Templates { template (value) CipheringModeInfo_r7 cs_CipheringModeInfo_r7(CipheringModeCommand_r7 p_CipheringModeCommand, template (value) RB_ActivationTimeInfoList p_RB_ActivationTimeInfoList, template (omit) integer p_ActTimeDPCH) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cipheringModeCommand := p_CipheringModeCommand, activationTimeForDPCH := p_ActTimeDPCH, rb_DL_CiphActivationTimeInfo := p_RB_ActivationTimeInfoList @@ -1132,7 +1106,7 @@ module UTRAN_RRC_Templates { template (omit) IntegrityProtectionModeInfo_r7 p_IntegrityMode, CN_DomainIdentity p_CN_Domain, template (omit) InterRAT_UE_SecurityCapList p_SystemSpecCap) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s110382 additional changes: Merge of cs_RRC_SecModeCmdInt and cs_RRC_SecModeCmdCiphInt sic@ */ later_than_r3 := { rrc_TransactionIdentifier := p_RRC_Ti, @@ -1157,7 +1131,7 @@ module UTRAN_RRC_Templates { template (value) DL_DCCH_Message cs_108_RRC_SecModeCmd(IntegrityCheckInfo p_IntegrityCheckInfo, template (value) SecurityModeCommand p_SecModeCmd) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := p_IntegrityCheckInfo, message_ := { securityModeCommand := p_SecModeCmd @@ -1170,7 +1144,7 @@ module UTRAN_RRC_Templates { template (present) UL_DCCH_Message cr_108_RRC_SecModeCmpl(RRC_TransactionIdentifier p_RRC_Ti, template RB_ActivationTimeInfoList p_RB_ActivationTimeInfoList) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := *, message_:= { securityModeComplete := { @@ -1188,7 +1162,7 @@ module UTRAN_RRC_Templates { template (present) UL_DCCH_Message cr_108_SecModeFail(RRC_TransactionIdentifier p_RRC_Ti, template FailureCauseWithProtErr p_FailureCauseWithProtErr) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := *, message_ := { securityModeFailure := { @@ -1204,7 +1178,7 @@ module UTRAN_RRC_Templates { //------------------------------------------------------------------------------------------------ template (present) UL_CCCH_Message cr_108_RRC_ConnReq_r8(template (present) EstablishmentCause p_EstCause := ?) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ // @sic R5-120756 sic@ integrityCheckInfo := omit, message_ := { @@ -1385,7 +1359,7 @@ module UTRAN_RRC_Templates { }; template (present) UL_CCCH_Message cr_RRC_RrcConnReqAny := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionRequest := { @@ -1438,7 +1412,7 @@ module UTRAN_RRC_Templates { MAC_LogicalChannelPriority p_LogicalChannelPriorityDCH, MAC_LogicalChannelPriority p_LogicalChannelPriorityRACH, LogicalChannelIdentity p_LogicalChannelIdDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rb_Identity := omit, rlc_InfoChoice := { rlc_Info := cs_RLC_InfoAM_Common(cds_UL_AM_RLC_SRB, cds_DL_AM_RLC_SRB_r7) @@ -1453,7 +1427,7 @@ module UTRAN_RRC_Templates { MAC_LogicalChannelPriority p_LogicalChannelPriorityDCH, MAC_LogicalChannelPriority p_LogicalChannelPriorityRACH, LogicalChannelIdentity p_LogicalChannelIdDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rb_Identity := omit, rlc_InfoChoice := { rlc_Info := { @@ -1484,7 +1458,7 @@ module UTRAN_RRC_Templates { MAC_LogicalChannelPriority p_LogicalChannelPriorityDCH, MAC_LogicalChannelPriority p_LogicalChannelPriorityRACH, LogicalChannelIdentity p_LogicalChannelIdDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rb_Identity := p_RB_Id, rlc_InfoChoice := { rlc_Info := cs_RLC_InfoAM_Common(cds_UL_AM_RLC_SRB, cds_DL_AM_RLC_SRB_r7) @@ -1500,7 +1474,7 @@ module UTRAN_RRC_Templates { MAC_LogicalChannelPriority p_LogicalChannelPriorityDCH, MAC_LogicalChannelPriority p_LogicalChannelPriorityRACH, LogicalChannelIdentity p_LogicalChannelIdDL) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ rb_Identity := p_RB_Id, rlc_InfoChoice := { rlc_Info := cs_RLC_InfoUM_Common(cs_UL_UM_RLC_Mode(cs_TransmissionRLC_Discard_TimerBasedNoExplicit)) @@ -1514,14 +1488,14 @@ module UTRAN_RRC_Templates { //------------------------------------------------------------------------------------------------ template (value) UTRAN_DRX_CycleLengthCoefficient_r7 cs_UTRAN_DRX_CycleLengthCoefficient_r7(UTRAN_DRX_CycleLengthCoefficient_r7.drx_CycleLengthCoefficient p_DRX_CycleLengthCoefficient := 9) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ drx_CycleLengthCoefficient := p_DRX_CycleLengthCoefficient, drx_CycleLengthCoefficient2 := omit, timeForDRXCycle2 := omit }; template (value) CapabilityUpdateRequirement_r8 cs_CapabilityUpdateRequirement_r8_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ue_RadioCapabilityFDDUpdateRequirement_FDD := true, ue_RadioCapabilityTDDUpdateRequirement_TDD384 := false, ue_RadioCapabilityTDDUpdateRequirement_TDD768 := false, @@ -1530,13 +1504,13 @@ module UTRAN_RRC_Templates { }; template (value) CapabilityUpdateRequirement_r8 cds_CapabilityUpdateRequirement_r8_TDD modifies cs_CapabilityUpdateRequirement_r8_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ue_RadioCapabilityFDDUpdateRequirement_FDD := false, ue_RadioCapabilityTDDUpdateRequirement_TDD128 := true }; template (value) SRB_InformationSetupList2_r8 cs_SRB_InformationSetupList2_r8_FACH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SRB_InfoSetupUM_FACH_r8(omit, tsc_UL_DCCH1, 1, 1, tsc_DL_DCCH1), cs_SRB_InfoSetupAM_FACH_r8(omit, tsc_UL_DCCH2, 2, 2, tsc_DL_DCCH2), cs_SRB_InfoSetupAM_FACH_r8(omit, tsc_UL_DCCH3, 3, 3, tsc_DL_DCCH3), @@ -1544,7 +1518,7 @@ module UTRAN_RRC_Templates { }; template (value) SRB_InformationSetupList2_r8 cs_SRB_InformationSetupList2_r8_DCH := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_SRB_InfoSetupUM_DCH_r8(tsc_UL_DCCH1, 1, 1, tsc_DL_DCCH1), cs_SRB_InfoSetupAM_DCH_r8(tsc_UL_DCCH2, 2, 2, tsc_DL_DCCH2), cs_SRB_InfoSetupAM_DCH_r8(tsc_UL_DCCH3, 3, 3, tsc_DL_DCCH3), @@ -1553,7 +1527,7 @@ module UTRAN_RRC_Templates { template (value) RRCConnectionSetup_r8_IEs cs_RRCConnectionSetup_r8_IEs_FACH_FDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := p_CRNTI_New, @@ -1630,7 +1604,7 @@ module UTRAN_RRC_Templates { template (value) RRCConnectionSetup_r8_IEs cs_RRCConnectionSetup_r8_IEs_DCH_FDD(PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -1709,7 +1683,7 @@ module UTRAN_RRC_Templates { template (value) DL_CCCH_Message cs_108_RRC_ConnSetup_r8(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, template (value) RRCConnectionSetup_r8_IEs p_RRCConnectionSetup_r8_IEs) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionSetup := { @@ -1740,7 +1714,7 @@ module UTRAN_RRC_Templates { RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r8(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r8_IEs_FACH_FDD(p_U_RNTI_New, p_CRNTI_New)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupFACH_r8_TDD(template (value) InitialUE_Identity p_InitUEId, @@ -1755,7 +1729,7 @@ module UTRAN_RRC_Templates { PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r8(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r8_IEs_DCH_FDD(p_PrmbScrmCode, p_U_RNTI_New, p_UL_ScramblingCode)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r8_TDD(template (value) InitialUE_Identity p_InitUEId, @@ -1770,7 +1744,7 @@ module UTRAN_RRC_Templates { template (value) DL_CCCH_Message cs_108_RRC_ConnRelCCCH_r4(template (value) U_RNTI p_U_rnti, RRC_TransactionIdentifier p_RRC_Ti) := - {/* @status APPROVED (SSNITZ, UTRAN) */ + {/* @status APPROVED (IMS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionRelease := { @@ -1796,7 +1770,7 @@ module UTRAN_RRC_Templates { template (value) DL_CCCH_Message cs_108_RRC_ConnRelCCCH_r5(template (value) U_RNTI p_U_rnti, RRC_TransactionIdentifier p_RRC_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionRelease := { @@ -1831,7 +1805,7 @@ module UTRAN_RRC_Templates { template (omit) integer p_N308 := omit, template (omit) ReleaseCause p_ReleaseCause := normalEvent, template (omit) RRCConnectionRelease_v4d0NonCriticalExtensions_Type p_NonCriticalExtensions := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := p_IntegrityCheckInfo, message_ := { rrcConnectionRelease := { @@ -1857,7 +1831,7 @@ module UTRAN_RRC_Templates { //------------------------------------------------------------------------------------------------ template (present) UL_DCCH_Message cr_108_RRC_ConnRelCmpl(RRC_TransactionIdentifier p_RRC_Ti) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := *, message_ := { rrcConnectionReleaseComplete := { @@ -1877,7 +1851,7 @@ module UTRAN_RRC_Templates { template UE_RadioAccessCapability p_UE_RadioAccessCapability, template InterRAT_UE_RadioAccessCapabilityList p_InterRAT_UE_RadioAccessCapabilityList, template RRCConnSetupCmpl_v370NonCritExt_Type p_V370NonCriticalExtensions) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionSetupComplete := { @@ -1892,13 +1866,13 @@ module UTRAN_RRC_Templates { template (present) UL_DCCH_Message cr_108_RRC_ConnSetupCmpl(RRC_TransactionIdentifier p_RRC_Ti, template (present) STARTList p_STARTList) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cr_RRC_ConnSetupCmpl_Common(p_RRC_Ti, p_STARTList, *, *, *); template (present) UL_DCCH_Message cr_RRC_ConnSetupCmpl_UERadioAccessCap(template (present) RRC_TransactionIdentifier p_RRC_Ti := tsc_RRC_TI, template (present) STARTList p_STARTList, template UE_RadioAccessCapability p_UE_RadioAccessCapability) := - /* @status APPROVED (SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, SSNITZ, UTRAN) */ cr_RRC_ConnSetupCmpl_Common(p_RRC_Ti, p_STARTList, p_UE_RadioAccessCapability, *, *); template (present) UL_DCCH_Message cr_RRC_ConnSetupCmpl_V370NonCriticalExtensions(template (present) RRC_TransactionIdentifier p_RRC_Ti, @@ -1944,7 +1918,7 @@ module UTRAN_RRC_Templates { //------------------------------------------------------------------------------------------------ template (value) PCCH_Message cs_RRC_PagingType1_ModifySI(MIB_ValueTag p_MIB_ValueTag) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ message_ := { pagingType1 := { pagingRecordList := omit, @@ -2079,10 +2053,10 @@ module UTRAN_RRC_Templates { // Measurement Control //------------------------------------------------------------------------------------------------ - template (value) MeasurementReportingMode cs_MeasurementReportingMode := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) MeasurementReportingMode cs_MeasurementReportingMode(PeriodicalOrEventTrigger p_PeriodicalOrEventTrigger := eventTrigger) := + { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ measurementReportTransferMode := acknowledgedModeRLC, - periodicalOrEventTrigger := eventTrigger + periodicalOrEventTrigger := p_PeriodicalOrEventTrigger }; template (value) DPCH_CompressedModeStatusInfo cs_DPCH_CompressedModeStatusInfo(TGPS_Reconfiguration_CFN p_Tgps_Reconfiguration_CFN, @@ -2111,7 +2085,7 @@ module UTRAN_RRC_Templates { template (value) EUTRA_FrequencyInfoList cs_EUTRA_FrequencyInfoList_1Entry(integer p_EutraCell_ARFCN, EUTRA_MeasurementBandwidth p_EutraCell_MeasBandwidth) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (IMS_LTE_A, LTE_A, LTE_IRAT) */ cs_EUTRA_FrequencyInfo(p_EutraCell_ARFCN, p_EutraCell_MeasBandwidth) }; @@ -2204,6 +2178,7 @@ module UTRAN_RRC_Templates { cs_InterRATMeasQuantity_r8(cpich_RSCP, rsrp), // @sic R5-122105 sic@ @sic R5s130195 BASELINE MOVING 2013 sic@ cs_InterRATReportingQuantity_r8, {cs_InterRATEvent3a_Def}), + -, cs_DPCH_CompressedModeStatusInfo(p_Tgps_Reconfiguration_CFN, p_TGCFN), p_RRC_TI); // @sic R5-122105 sic@ @@ -2220,15 +2195,17 @@ module UTRAN_RRC_Templates { cs_InterRATMeasQuantity_r8(cpich_RSCP, rsrp), // @sic R5-122105 sic@ @sic R5s130195 BASELINE MOVING 2013 sic@ cs_InterRATReportingQuantity_r8, {cs_InterRATEvent3a_Def}), + -, omit, // @sic R5s140149 subject to prose CR approval sic@ p_RRC_TI); // @sic R5-122105 sic@ template (value) DL_DCCH_Message cs_MeasurementControl_r8(IntegrityCheckInfo p_Integrityinfo, MeasurementIdentity p_MeasurementIdentity, template (value) MeasurementCommand_r8 p_MeasurementCommand, - template (omit) DPCH_CompressedModeStatusInfo p_DPCH_CompressedModeStatusInfo, + template (value) MeasurementReportingMode p_MeasurementReportingMode := cs_MeasurementReportingMode, + template (omit) DPCH_CompressedModeStatusInfo p_DPCH_CompressedModeStatusInfo := omit, RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) := - { /* @status APPROVED (LTE_A, LTE_IRAT) */ + { /* @status APPROVED (LTE_A, LTE_IRAT, POS) */ integrityCheckInfo := p_Integrityinfo, message_ := { measurementControl := { @@ -2244,7 +2221,7 @@ module UTRAN_RRC_Templates { measurementControl_r8 := { measurementIdentity := p_MeasurementIdentity, measurementCommand := p_MeasurementCommand, - measurementReportingMode := cs_MeasurementReportingMode, + measurementReportingMode := p_MeasurementReportingMode, additionalMeasurementList := omit, dpch_CompressedModeStatusInfo := p_DPCH_CompressedModeStatusInfo }, @@ -2275,6 +2252,7 @@ module UTRAN_RRC_Templates { cs_InterRATMeasQuantity_r8(-, rsrp), // @sic R5s120565 sic@ @sic R5s130195 BASELINE MOVING 2013 sic@ cs_InterRATReportingQuantity_r8, p_InterRATEventList), + -, cs_DPCH_CompressedModeStatusInfo(p_Tgps_Reconfiguration_CFN, p_TGCFN), p_RRC_TI); @@ -2292,6 +2270,7 @@ module UTRAN_RRC_Templates { cs_InterRATMeasQuantity_r8(-, rsrp), // @sic R5s120565 sic@ @sic R5s130195 BASELINE MOVING 2013 sic@ cs_InterRATReportingQuantity_r8, p_InterRATEventList), + -, omit, p_RRC_TI); @@ -2347,7 +2326,7 @@ module UTRAN_RRC_Templates { EUTRA_PhysicalCellIdentity p_PhysicalCellIdentity, template (present) RSRP_Type p_RSRP, template (present) RSRQ_Type p_RSRQ) := - { /* @status */ /* @sic R5-134720 sic@*/ + { /* @status APPROVED (LTE_A) */ integrityCheckInfo := *, message_ := { measurementReport := { @@ -2542,7 +2521,7 @@ module UTRAN_RRC_Templates { template (present) UL_DCCH_Message cr_108_RB_SetUpCmpl(RRC_TransactionIdentifier p_RRC_Ti, template START_Value p_StartValue:= ?) := { /* ASN.1 PDU Constraint defined in TS 34.108 clause 9 */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := *, message_ := { radioBearerSetupComplete := { @@ -2602,20 +2581,12 @@ module UTRAN_RRC_Templates { // Signalling Connection release indication //------------------------------------------------------------------------------------------------ template (present) UL_DCCH_Message cr_108_RRC_SigConnRelInd(CN_DomainIdentity p_CN_DomainId := ps_domain) := - { /* @status APPROVED (LTE_IRAT) */ + { /* @status APPROVED (LTE_IRAT, UTRAN) */ integrityCheckInfo := *, message_ := { signallingConnectionReleaseIndication := { cn_DomainIdentity := p_CN_DomainId, - laterNonCriticalExtensions := { - signallingConnectionReleaseIndication_r3_add_ext := *, - v860nonCriticalExtentions := { - signallingConnectionReleaseIndication_v860ext := { - signallingConnectionReleaseIndicationCause := ? - }, - nonCriticalExtensions := * - } - } + laterNonCriticalExtensions := * // @sic R5s141334 sic@ } } }; @@ -2625,7 +2596,7 @@ module UTRAN_RRC_Templates { //------------------------------------------------------------------------------------------------ template (value) DL_DCCH_Message cs_UE_CapabilityEnqAll(IntegrityCheckInfo p_IntegrityCheckInfo, RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) := - { /* @status APPROVED (LTE_IRAT, UTRAN) */ + { /* @status APPROVED (UTRAN) */ integrityCheckInfo := p_IntegrityCheckInfo, message_ := { ueCapabilityEnquiry := { @@ -2648,7 +2619,7 @@ module UTRAN_RRC_Templates { }, v590NonCriticalExtensions := { ueCapabilityEnquiry_v590ext := { - systemSpecificCapUpdateReq := geranIu + systemSpecificCapUpdateReq := geranIu // @sic R5-151721 mandatory field, but not checked if received sic@ }, v770NonCriticalExtensions := { ueCapabilityEnquiry_v770ext := { @@ -2659,10 +2630,10 @@ module UTRAN_RRC_Templates { v860NonCriticalExtensions := { ueCapabilityEnquiry_v860ext := { capabilityUpdateRequirement := { - systemSpecificCapUpdateReqList := { gsm, geranIu, eutra} + systemSpecificCapUpdateReqList := { gsm, eutra} //@sic R5-151721 sic@ } }, - nonCriticalExtensions := omit + vaj0NonCriticalExtensions := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@ */ } } } @@ -2672,6 +2643,81 @@ module UTRAN_RRC_Templates { } } }; + + //================================================================================================ + // Default 34.108 UE Capability Enquiry + //========================================================================= + + template (value) UECapabilityEnquiry.r3.laterNonCriticalExtensions cs_UECapabilityEnquiry_ExtensionTDD := + { /* @status APPROVED (LTE_IRAT) */ + ueCapabilityEnquiry_r3_add_ext := omit, + v4b0NonCriticalExtensions := { + ueCapabilityEnquiry_v4b0ext := { + capabilityUpdateRequirement_r4_ext := { + ue_RadioCapabilityUpdateRequirement_TDD128 := true + } + }, + v590NonCriticalExtensions := { + ueCapabilityEnquiry_v590ext := { + systemSpecificCapUpdateReq := geranIu + }, + v770NonCriticalExtensions := { + ueCapabilityEnquiry_v770ext := { + capabilityUpdateRequirement := { + ue_RadioCapabilityTDDUpdateRequirement_TDD768 := true + } + }, + v860NonCriticalExtensions := omit //@sic R5s150251 sic@ + } + } + } + }; + + template (value) DL_DCCH_Message cs_108_UE_CapabilityEnq(IntegrityCheckInfo p_IntegrityCheckInfo, + RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI, + template (omit) UECapabilityEnquiry.r3.laterNonCriticalExtensions p_NonCriticalExtensions := omit) := + { /* @status APPROVED (LTE_IRAT) */ + integrityCheckInfo := p_IntegrityCheckInfo, + message_ := { + ueCapabilityEnquiry := { + r3 := { + ueCapabilityEnquiry_r3 := { + rrc_TransactionIdentifier := p_RRC_TI, + capabilityUpdateRequirement := { + ue_RadioCapabilityFDDUpdateRequirement := true, + ue_RadioCapabilityTDDUpdateRequirement := false, + systemSpecificCapUpdateReqList := omit + } + }, + laterNonCriticalExtensions := p_NonCriticalExtensions + } + } + } + }; + + template (value) DL_DCCH_Message cs_108_UE_CapabilityEnq_TDD(IntegrityCheckInfo p_IntegrityCheckInfo, + RRC_TransactionIdentifier p_RRC_TI := tsc_RRC_TI) := + /* @status APPROVED (LTE_IRAT) */ + /* @sic R5s141220 R5s150251 sic@ */ + { + integrityCheckInfo := p_IntegrityCheckInfo, + message_ := { + ueCapabilityEnquiry := { + r3 := { + ueCapabilityEnquiry_r3 := { + rrc_TransactionIdentifier := p_RRC_TI, + capabilityUpdateRequirement := { + ue_RadioCapabilityFDDUpdateRequirement := false, + ue_RadioCapabilityTDDUpdateRequirement := true, + systemSpecificCapUpdateReqList := omit + } + }, + laterNonCriticalExtensions := cs_UECapabilityEnquiry_ExtensionTDD + } + } + } + }; + //================================================================================================ // UE Capability Information @@ -2694,7 +2740,7 @@ module UTRAN_RRC_Templates { * @desc Local function returning the system specific capabilities to be requested to UE * In UTRAN to E-UTRA test cases UE shall report gsm and eutra capabilities * @return SystemSpecificCapUpdateReqList_r8 - * @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) + * @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ function fl_GetSystemSpecificCapability() return SystemSpecificCapUpdateReqList_r8 { // @sic R5s120660 sic@ diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn index 39ed2d3..c36017e 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r10.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-10 18:07:49 +0200 (Wed, 10 Sep 2014) $ -// $Rev: 12192 $ +// @version: IWD_15wk38 +// $Date: 2015-04-14 17:22:26 +0200 (Tue, 14 Apr 2015) $ +// $Rev: 13379 $ /******************************************************************************/ module UTRAN_RRC_Templates_r10 { @@ -26,7 +26,7 @@ module UTRAN_RRC_Templates_r10 { template (omit) DefaultDPCH_OffsetValueFDD p_DefaultDPCH_OffsetValue := omit, template (omit) DPCH_CompressedModeInfo_r10 p_DPCH_CompressedModeInfo := omit, template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_dpchInfoCommon := { dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_FDD_r6(p_DL_DPCH_CfnHandling, p_Sf, p_PositionFixedOrFlexible, p_TfciExistence) }, @@ -46,11 +46,11 @@ module UTRAN_RRC_Templates_r10 { boolean p_TfciExistence, template (value) DL_DPCH_CfnHandling_r6_Type p_DL_DPCH_CfnHandling := cs_DL_DPCH_CfnHandling_Initialise_r6, template (omit) DefaultDPCH_OffsetValueFDD p_Dpch_Doff := tsc_DefaultDPCH_OffsetValue) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_CommonInfo_FDD_r10(p_DL_DPCH_CfnHandling, p_Sf, p_FixedFlexible, p_TfciExistence, p_Dpch_Doff); //@sic R5s140782 sic@Ff_UTRAN34_RB_Release_HSDSCH_4C template (value) DL_CommonInformation_r10 cs_DL_CommonInfo_r10_TDD(template (value) DL_DPCH_CfnHandling_r6_Type p_DL_DPCH_CfnHandling := cs_DL_DPCH_CfnHandling_Initialise_r6) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120954: new parameter p_DL_DPCH_CfnHandling sic@ */ dl_dpchInfoCommon := { dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_TDD_r6(p_DL_DPCH_CfnHandling) @@ -75,7 +75,7 @@ module UTRAN_RRC_Templates_r10 { template (value) DL_CCCH_Message cs_108_RRC_ConnSetup_r10(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, template (value) RRCConnectionSetup_r10_IEs p_RRCConnectionSetup_r10_IEs) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionSetup := { @@ -92,7 +92,7 @@ module UTRAN_RRC_Templates_r10 { r10 := { rrcConnectionSetup_r10 := p_RRCConnectionSetup_r10_IEs, rrcConnectionSetup_r10_add_ext := omit, - nonCriticalExtensions := omit + vaj0NonCriticalExtensions := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ } } } @@ -111,7 +111,7 @@ module UTRAN_RRC_Templates_r10 { template (value) RRCConnectionSetup_r10_IEs cs_RRCConnectionSetup_r10_IEs_DCH_FDD(PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -151,7 +151,7 @@ module UTRAN_RRC_Templates_r10 { template (value) RRCConnectionSetup_r10_IEs cs_RRCConnectionSetup_r10_IEs_DCH_TDD(U_RNTI p_U_RNTI_New, CellParametersID p_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -194,21 +194,21 @@ module UTRAN_RRC_Templates_r10 { PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r10(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r10_IEs_DCH_FDD(p_PrmbScrmCode, p_U_RNTI_New, p_UL_ScramblingCode)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r10_TDD(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r10(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r10_IEs_DCH_TDD(p_U_RNTI_New, p_CellParametersID)); //----------------------------------------------------------------------------------------------------------- // RRC CONNECTION SETUP FACH template (value) RRCConnectionSetup_r10_IEs cs_RRCConnectionSetup_r10_IEs_FACH_FDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := p_CRNTI_New, @@ -248,7 +248,7 @@ module UTRAN_RRC_Templates_r10 { template (value) RRCConnectionSetup_r10_IEs cs_RRCConnectionSetup_r10_IEs_FACH_TDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := p_CRNTI_New, @@ -291,14 +291,14 @@ module UTRAN_RRC_Templates_r10 { RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r10(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r10_IEs_FACH_FDD(p_U_RNTI_New, p_CRNTI_New)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupFACH_r10_TDD(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r10(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r10_IEs_FACH_TDD(p_U_RNTI_New, p_CRNTI_New)); } diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn index a5f319f..ff813af 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r11.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ +// @version: IWD_15wk38 +// $Date: 2015-07-13 11:57:20 +0200 (Mon, 13 Jul 2015) $ +// $Rev: 14002 $ /******************************************************************************/ module UTRAN_RRC_Templates_r11 { @@ -22,7 +22,7 @@ module UTRAN_RRC_Templates_r11 { template (value) UL_DPCH_PowerControlInfo_r11 cs_UL_DPCH_PowerControlInfo_FDD_r11(template (omit) DeltaACK p_DeltaACK := omit, template (omit) DeltaNACK p_DeltaNACK := omit, template (omit) ACK_NACK_repetitionFactor p_ACK_NACK_RepetitionFactor := omit) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ fdd := { dpcch_PowerOffset := tsc_DPCCH_PowerOffset, pc_Preamble := 1, @@ -39,7 +39,7 @@ module UTRAN_RRC_Templates_r11 { }; template (value) UL_DPCH_PowerControlInfo_r11 cs_UL_DPCH_PowerControlInfo_TDD_r11(UL_TargetSIR p_UL_TargetSIR := tsc_UL_TargetSIR) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ tdd := { ul_TargetSIR := p_UL_TargetSIR, ul_OL_PC_Signalling := { @@ -63,7 +63,7 @@ module UTRAN_RRC_Templates_r11 { UL_ScramblingCode p_UL_ScramblingCode, template (value) UL_DPCH_PowerControlInfo_r11 p_UL_DPCH_PowerControlInfo := cs_UL_DPCH_PowerControlInfo_FDD_r11) := { /* According to condition A3 in TS 34.108 clause 9.1.1: Uplink DPCH info */ - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ ul_DPCH_PowerControlInfo := p_UL_DPCH_PowerControlInfo, modeSpecificInfo := { fdd := { @@ -83,12 +83,12 @@ module UTRAN_RRC_Templates_r11 { } }; - template (value) UL_DPCH_Info_r11 cs_UL_DPCH_13_6_StandAlone_FDD_r11(UL_ScramblingCode p_UL_ScramblingCode) := cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_SRB, pl1, p_UL_ScramblingCode); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + template (value) UL_DPCH_Info_r11 cs_UL_DPCH_13_6_StandAlone_FDD_r11(UL_ScramblingCode p_UL_ScramblingCode) := cs_UL_DPCH_Info_FDD_r11(tsc_UL_DPDCH_SF_SRB, pl1, p_UL_ScramblingCode); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ template (value) UL_DPCH_Info_r11 cs_UL_DPCH_InfoACK_HSDPA_FDD_r11(SpreadingFactor p_SprdFct, PuncturingLimit p_PuncLimit, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, UTRAN) */ cs_UL_DPCH_Info_FDD_r11(p_SprdFct, p_PuncLimit, p_UL_ScramblingCode, cs_UL_DPCH_PowerControlInfo_FDD_r11(3, 3, 1)); template (value) UL_DPCH_Info_r11 cs_UL_DPCH_Info_1TS_TDD_r11(TFCS_IdentityPlain p_TFCS_ID, @@ -97,7 +97,7 @@ module UTRAN_RRC_Templates_r11 { PuncturingLimit p_PuncturingLimit, TimeslotNumber_LCR_r4 p_TimeslotNumber_UL, UL_TS_ChannelisationCode p_UL_TS_ChannelisationCode ) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5-123750 sic@ */ ul_DPCH_PowerControlInfo := cs_UL_DPCH_PowerControlInfo_TDD_r11(tsc_UL_TargetSIR), modeSpecificInfo := { @@ -111,11 +111,11 @@ module UTRAN_RRC_Templates_r11 { } }; - template (value) UL_DPCH_Info_r11 cs_UL_DPCH_64k_PS_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_16, pl0_56,1, tsc_UL_DPCH1_ChC_64k_PS); /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + template (value) UL_DPCH_Info_r11 cs_UL_DPCH_64k_PS_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_16, pl0_56,1, tsc_UL_DPCH1_ChC_64k_PS); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ - template (value) UL_DPCH_Info_r11 cs_UL_DPCH_Speech_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_16, pl0_48,1, tsc_UL_DPCH1_ChC_Speech); /* @status APPROVED (LTE_A, LTE_IRAT) */ + template (value) UL_DPCH_Info_r11 cs_UL_DPCH_Speech_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_16, pl0_48,1, tsc_UL_DPCH1_ChC_Speech); /* @status APPROVED (IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ) */ - template (value) UL_DPCH_Info_r11 cs_UL_DPCH_3_4_StandAlone_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_8, pl1,1, tsc_UL_DPCH1_ChC_SRB_3_4); /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN); @sic R5s120750 sic@ */ + template (value) UL_DPCH_Info_r11 cs_UL_DPCH_3_4_StandAlone_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_8, pl1,1, tsc_UL_DPCH1_ChC_SRB_3_4); /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN); @sic R5s120750 sic@ */ template (value) UL_DPCH_Info_r11 cs_UL_DPCH_PS_and_ConvSpeech_TDD_r11 := cs_UL_DPCH_Info_1TS_TDD_r11 (1, omit, tfci_bits_16, pl0_92,3, tsc_UL_DPCH1_ChC_PS_and_ConvSpeech); /* @status APPROVED (LTE_IRAT) */ @@ -127,7 +127,7 @@ module UTRAN_RRC_Templates_r11 { template (omit) DefaultDPCH_OffsetValueFDD p_DefaultDPCH_OffsetValue := omit, template (omit) DPCH_CompressedModeInfo_r10 p_DPCH_CompressedModeInfo := omit, template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_dpchInfoCommon := { dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_FDD_r6(p_DL_DPCH_CfnHandling, p_Sf, p_PositionFixedOrFlexible, p_TfciExistence) }, @@ -142,16 +142,16 @@ module UTRAN_RRC_Templates_r11 { postVerificationPeriod := omit, mac_hsResetIndicator_assisting := omit }; - + template (value) DL_CommonInformation_r11 cs_DL_CommonInfoDCH_SRB_FDD_r11(SF512_AndPilot p_Sf, PositionFixedOrFlexible p_FixedFlexible, boolean p_TfciExistence, template (value) DL_DPCH_CfnHandling_r6_Type p_DL_DPCH_CfnHandling := cs_DL_DPCH_CfnHandling_Initialise_r6) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_CommonInfo_FDD_r11(p_DL_DPCH_CfnHandling, p_Sf, p_FixedFlexible, p_TfciExistence, tsc_DefaultDPCH_OffsetValue); template (value) DL_CommonInformation_r11 cs_DL_CommonInfo_r11_TDD(template (value) DL_DPCH_CfnHandling_r6_Type p_DL_DPCH_CfnHandling := cs_DL_DPCH_CfnHandling_Initialise_r6) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ /* @sic R5s120954: new parameter p_DL_DPCH_CfnHandling sic@ */ dl_dpchInfoCommon := { dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_TDD_r6(p_DL_DPCH_CfnHandling) @@ -176,7 +176,7 @@ module UTRAN_RRC_Templates_r11 { template (value) DL_AddReconfTransChInformation_r11 cs_DL_AddReconfTransChInfo_r11(TransportChannelIdentity p_DlTrChId, TransportChannelIdentity p_UlTrChId, template (omit) QualityTarget p_QualityTarget := cs_QualityTarget) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_TransportChannelType := { dch := p_DlTrChId }, @@ -190,14 +190,14 @@ module UTRAN_RRC_Templates_r11 { }; template (value) DL_AddReconfTransChInfoList_r11 cs_DL_AddReconfTransChInfoListDCCH_SRB_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_AddReconfTransChInfo_r11(tsc_DL_DCH5, tsc_UL_DCH5) }; template (value) DL_AddReconfTransChInformation_r11 cs_DL_AddReconfTransChInfoExplicit_r11(integer p_TransportChannelId, template (value) DedicatedTransChTFS p_DedicatedTransChTFS, template (omit) QualityTarget p_QualityTarget := cs_QualityTarget) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_TransportChannelType := { dch := p_TransportChannelId }, @@ -208,13 +208,32 @@ module UTRAN_RRC_Templates_r11 { }, dch_QualityTarget := p_QualityTarget }; + + template (value) UL_DPCH_PowerControlInfo_r11 cs_UL_DPCH_PowerControlInfo_r11_FDD( template (omit) DeltaACK_r11 p_DeltaACK := omit, + template (omit) DeltaNACK_r11 p_DeltaNACK := omit, + template (omit) ACK_NACK_repetitionFactor p_ACK_NACK_RepetitionFactor := omit) := + { + fdd := { + dpcch_PowerOffset := tsc_DPCCH_PowerOffset, + pc_Preamble := 1, + sRB_delay := 7, + powerControlAlgorithm := { + algorithm1 := tsc_TpcStepSize_FDD + }, + deltaACK := p_DeltaACK, + deltaNACK := p_DeltaNACK, + ack_NACK_repetition_factor := p_ACK_NACK_RepetitionFactor, + ack_NACK_repetition_factor_assisting := omit, + harq_Preamble_Mode := 0 + } + }; //===================================================================================================================== // RLC //===================================================================================================================== template (value) DL_AM_RLC_Mode_r11 cs_DL_AM_RLC_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_RLC_PDU_size := { fixedSize := cs_OctetModeRLC_Size336 }, @@ -229,7 +248,7 @@ module UTRAN_RRC_Templates_r11 { }; template (value) DL_AM_RLC_Mode_r11 cds_DL_AM_RLC_SRB_r11 modifies cs_DL_AM_RLC_r11 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_RLC_PDU_size := { fixedSize := cs_OctetModeRLC_Size144 }, @@ -242,7 +261,7 @@ module UTRAN_RRC_Templates_r11 { template (value) DL_CCCH_Message cs_108_RRC_ConnSetup_r11(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, template (value) RRCConnectionSetup_r11_IEs p_RRCConnectionSetup_r11_IEs) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionSetup := { @@ -260,7 +279,7 @@ module UTRAN_RRC_Templates_r11 { r11 := { rrcConnectionSetup_r11 := p_RRCConnectionSetup_r11_IEs, rrcConnectionSetup_r11_add_ext := omit, - nonCriticalExtensions := omit + vaj0NonCriticalExtensions := omit /* @sic R5s150329 BASELINE MOVING 2015 sic@*/ } } } @@ -280,7 +299,7 @@ module UTRAN_RRC_Templates_r11 { template (value) RRCConnectionSetup_r11_IEs cs_RRCConnectionSetup_r11_IEs_DCH_FDD(PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -321,7 +340,7 @@ module UTRAN_RRC_Templates_r11 { template (value) RRCConnectionSetup_r11_IEs cs_RRCConnectionSetup_r11_IEs_DCH_TDD(U_RNTI p_U_RNTI_New, CellParametersID p_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -365,21 +384,21 @@ module UTRAN_RRC_Templates_r11 { PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r11(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r11_IEs_DCH_FDD(p_PrmbScrmCode, p_U_RNTI_New, p_UL_ScramblingCode)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r11_TDD(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r11(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r11_IEs_DCH_TDD(p_U_RNTI_New, p_CellParametersID)); //----------------------------------------------------------------------------------------------------------- // RRC CONNECTION SETUP FACH template (value) RRCConnectionSetup_r11_IEs cs_RRCConnectionSetup_r11_IEs_FACH_FDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := p_CRNTI_New, @@ -420,7 +439,7 @@ module UTRAN_RRC_Templates_r11 { template (value) RRCConnectionSetup_r11_IEs cs_RRCConnectionSetup_r11_IEs_FACH_TDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := p_CRNTI_New, @@ -465,16 +484,14 @@ module UTRAN_RRC_Templates_r11 { RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r11(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r11_IEs_FACH_FDD(p_U_RNTI_New, p_CRNTI_New)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupFACH_TDD_r11(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r11(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r11_IEs_FACH_TDD(p_U_RNTI_New, p_CRNTI_New)); - } - diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r12.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r12.ttcn new file mode 100644 index 0000000..0c2152f --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r12.ttcn @@ -0,0 +1,405 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-07-13 11:57:20 +0200 (Mon, 13 Jul 2015) $ +// $Rev: 14002 $ +/******************************************************************************/ + +module UTRAN_RRC_Templates_r12 { + + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_Templates all; + import from UTRAN_RRC_Templates_r10 all; + import from UTRAN_RRC_Templates_r11 all; + import from UTRAN_RRC_CommonTemplates all; + + template (value) CapabilityUpdateRequirement_r12 cs_CapabilityUpdateRequirement_r12_FDD := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + ue_RadioCapabilityFDDUpdateRequirement_FDD := true, + ue_RadioCapabilityTDDUpdateRequirement_TDD384 := false, + ue_RadioCapabilityTDDUpdateRequirement_TDD768 := false, + ue_RadioCapabilityTDDUpdateRequirement_TDD128 := false, + systemSpecificCapUpdateReqList := fl_GetSystemSpecificCapability(), + eUTRAbandSpecificCapUpdateReqList := omit + }; + + template (value) CapabilityUpdateRequirement_r12 cs_CapabilityUpdateRequirement_r12_TDD := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + ue_RadioCapabilityFDDUpdateRequirement_FDD := false, + ue_RadioCapabilityTDDUpdateRequirement_TDD384 := false, + ue_RadioCapabilityTDDUpdateRequirement_TDD768 := false, + ue_RadioCapabilityTDDUpdateRequirement_TDD128 := true, + systemSpecificCapUpdateReqList := fl_GetSystemSpecificCapability(), + eUTRAbandSpecificCapUpdateReqList := omit + }; + + //-------------------------------------------------------------------------------------------------------------- + template (value) DL_DPCH_InfoPerRL_r12 cs_DL_DPCH_InfoPerRL_SRB_FDD_r12(SF512_AndCodeNumber p_SpreadingFactorDPCH, + template (omit) SecondaryScramblingCode p_SecScramblingCodeDPCH) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + fdd := { + pCPICH_UsageForChannelEst := mayBeUsed, + dpch_FrameOffset := (( (tsc_DefaultDPCH_OffsetValue*512 ) mod 38400)/256 ), /* DPCH-FrameOffset = DefaultDPCH-OffsetValueFDD MOD 38400 + Actual value DPCH-FrameOffset = IE value * 256 + Actual value DefaultDPCH-OffsetValueFDD = IE value * 512 */ + secondaryCPICH_Info := omit, + dl_ChannelisationCodeList := { + { + secondaryScramblingCode := p_SecScramblingCodeDPCH, + sf_AndCodeNumber := p_SpreadingFactorDPCH, + scramblingCodeChange := omit + } + }, + tpc_CombinationIndex := tsc_TPC_CombinationIndex, + powerOffsetTPC_pdpdch := omit, + powerOffsetPO_SRB := omit, + closedLoopTimingAdjMode := omit + } + }; + + //-------------------------------------------------------------------------------------------------------------- + template (value) DL_DPCH_InfoCommon_r12 cs_DL_DPCH_InfoCommon_FDD_r12(template (value) DL_DPCH_CfnHandling_r12_Type p_DL_DPCH_CfnHandling, + SF512_AndPilot_r12 p_Sf, + PositionFixedOrFlexible p_FixedFlexible, + boolean p_TFCI_Existence) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cfnHandling := p_DL_DPCH_CfnHandling, + modeSpecificInfo := { + fdd := { + dl_DPCH_PowerControlInfo := { + modeSpecificInfo := { + fdd := { + dpc_Mode := singleTPC + } + } + }, + powerOffsetPilot_pdpdch := tsc_DPCH_PowerOffsetPILOT, + dl_rate_matching_restriction := omit, + spreadingFactorAndPilot := p_Sf, + positionFixedOrFlexible := p_FixedFlexible, + tfci_Existence := p_TFCI_Existence + } + }, + mac_d_HFN_initial_value := omit + }; + + template (value) DL_DPCH_InfoCommon_r12 cs_DL_DPCH_InfoCommon_TDD_r12 := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cfnHandling := {initialise := NULL}, + modeSpecificInfo := { + tdd := { + dl_DPCH_PowerControlInfo := { + modeSpecificInfo := { + tdd := { + tpc_StepSizeTDD := tsc_TPC_StepSize_TDD + } + } + } + } + }, + mac_d_HFN_initial_value := omit + }; + + //-------------------------------------------------------------------------------------------------------------- + template (value) DL_CommonInformation_r12 cs_DL_CommonInfo_FDD_r12(template (value) DL_DPCH_CfnHandling_r12_Type p_DL_DPCH_CfnHandling, + SF512_AndPilot_r12 p_Sf, + PositionFixedOrFlexible p_PositionFixedOrFlexible := flexible, + boolean p_TfciExistence := true, + template (omit) DefaultDPCH_OffsetValueFDD p_DefaultDPCH_OffsetValue := omit, + template (omit) DPCH_CompressedModeInfo_r10 p_DPCH_CompressedModeInfo := omit, + template (omit) TX_DiversityMode p_TX_DiversityMode := noDiversity) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + dl_dpchInfoCommon := { + dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_FDD_r12(p_DL_DPCH_CfnHandling, p_Sf, p_PositionFixedOrFlexible, p_TfciExistence) + }, + modeSpecificInfo := { + fdd := { + defaultDPCH_OffsetValue := p_DefaultDPCH_OffsetValue, + dpch_CompressedModeInfo := p_DPCH_CompressedModeInfo, + tx_DiversityMode := p_TX_DiversityMode + } + }, + mac_hsResetIndicator := omit, + postVerificationPeriod := omit, + mac_hsResetIndicator_assisting := omit + }; + + template (value) DL_CommonInformation_r12 cs_DL_CommonInfo_r12_TDD := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + dl_dpchInfoCommon := { + dl_DPCH_InfoCommon := cs_DL_DPCH_InfoCommon_TDD_r12 + }, + modeSpecificInfo := { + tdd := { + tddOption := { + tdd128 := { + tstd_Indicator := false + } + }, + defaultDPCH_OffsetValue := tsc_DefaultDPCH_OffsetValue_TDD + } + }, + mac_hsResetIndicator := omit, + postVerificationPeriod := omit, + mac_hsResetIndicator_assisting := omit + }; + + //===================================================================================================================== + // RRC CONNECTION SETUP + //===================================================================================================================== + template (value) DL_CCCH_Message cs_108_RRC_ConnSetup_r12(template (value) InitialUE_Identity p_InitUEId, + RRC_TransactionIdentifier p_RRC_Ti, + template (value) RRCConnectionSetup_r12_IEs p_RRCConnectionSetup_r12_IEs) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + integrityCheckInfo := omit, + message_ := { + rrcConnectionSetup := { + later_than_r3 := { + initialUE_Identity := p_InitUEId, + rrc_TransactionIdentifier := p_RRC_Ti, + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + criticalExtensions := { + r12 := { + rrcConnectionSetup_r12 := p_RRCConnectionSetup_r12_IEs, + rrcConnectionSetup_r12_add_ext := omit, + nonCriticalExtensions := omit + } + } + } + } + } + } + } + } + } + } + } + } + } + }; + + //----------------------------------------------------------------------------------------------------------- + // RRC CONNECTION SETUP DCH + //----------------------------------------------------------------------------------------------------------- + + template (value) RRCConnectionSetup_r12_IEs cs_RRCConnectionSetup_r12_IEs_DCH_FDD(PrimaryScramblingCode p_PrmbScrmCode, + U_RNTI p_U_RNTI_New, + UL_ScramblingCode p_UL_ScramblingCode) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + activationTime := omit, + new_U_RNTI := p_U_RNTI_New, + new_c_RNTI := omit, + new_H_RNTI := omit, + newPrimary_E_RNTI := omit, + newSecondary_E_RNTI := omit, + rrc_StateIndicator := cell_DCH, + utran_DRX_CycleLengthCoeff := cs_UTRAN_DRX_CycleLengthCoefficient_r7, + capabilityUpdateRequirement := cs_CapabilityUpdateRequirement_r12_FDD, + supportForChangeOfUE_Capability := false, + defaultConfigForCellFACH := omit, + specificationMode := { + complete := { + srb_InformationSetupList := cs_SRB_InformationSetupList2_r8_DCH, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCCH_13_6k_r4_FDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCCH_13_6k_r8, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoSameAsUL_r4_FDD, + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCCH_SRB_r11 + } + }, + frequencyInfo := omit, + multi_frequencyInfo := omit, + dtx_drx_TimingInfo := omit, + dtx_drx_Info := omit, + hs_scch_LessInfo := omit, + maxAllowedUL_TX_Power := omit, + ul_DPCH_Info := cs_UL_DPCH_13_6_StandAlone_FDD_r11(p_UL_ScramblingCode), + ul_EDCH_Information := omit, + dl_HSPDSCH_Information := omit, + dl_CommonInformation := cs_DL_CommonInfoDCH_SRB_FDD_r10(tsc_DL_DPCH1_SFP_SRB, fixed, false), + dl_InformationPerRL_List := cs_DL_InformationPerRL_r8_FDD(p_PrmbScrmCode, tsc_DL_DPCH1_ChC_SRB, tsc_DL_DPCH1_2ndScrC), + dl_SecondaryCellInfoFDD := omit, + additionalDLSecCellInfoListFDD := omit, + commonERGCHInfoFDD := omit, + sps_Information_TDD128 := omit, + mu_MIMO_Info_TDD128 := omit, + non_rectResAllocInd_TDD128 := omit, + non_rectResSpecTSset_TDD128 := omit + }; + + template (value) RRCConnectionSetup_r12_IEs cs_RRCConnectionSetup_r12_IEs_DCH_TDD(U_RNTI p_U_RNTI_New, + CellParametersID p_CellParametersID) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + activationTime := omit, + new_U_RNTI := p_U_RNTI_New, + new_c_RNTI := omit, + new_H_RNTI := omit, + newPrimary_E_RNTI := omit, + newSecondary_E_RNTI := omit, + rrc_StateIndicator := cell_DCH, + utran_DRX_CycleLengthCoeff := cs_UTRAN_DRX_CycleLengthCoefficient_r7, + capabilityUpdateRequirement := cs_CapabilityUpdateRequirement_r12_TDD, + supportForChangeOfUE_Capability := false, + defaultConfigForCellFACH := omit, + specificationMode := { + complete := { + srb_InformationSetupList := cs_SRB_InformationSetupList2_r8_DCH, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCCH_3_4k_r4_TDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCCH_3_4k_r8_TDD, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoSameAsUL_r4_TDD, + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCCH_SRB_r11 + } + }, + frequencyInfo := omit, + multi_frequencyInfo := omit, + dtx_drx_TimingInfo := omit, + dtx_drx_Info := omit, + hs_scch_LessInfo := omit, + maxAllowedUL_TX_Power := omit, + ul_DPCH_Info := cs_UL_DPCH_3_4_StandAlone_TDD_r11, + ul_EDCH_Information := omit, + dl_HSPDSCH_Information := omit, + dl_CommonInformation := cs_DL_CommonInfo_r10_TDD, + dl_InformationPerRL_List := cs_DL_InformationPerRL_r8_TDD ( p_CellParametersID, cs_DL_DPCH_InfoPerRL_SRB_TDD ), + dl_SecondaryCellInfoFDD := omit, + additionalDLSecCellInfoListFDD := omit, + commonERGCHInfoFDD := omit, + sps_Information_TDD128 := omit, + mu_MIMO_Info_TDD128 := omit, + non_rectResAllocInd_TDD128 := omit, + non_rectResSpecTSset_TDD128 := omit + }; + + template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r12_FDD(template (value) InitialUE_Identity p_InitUEId, + RRC_TransactionIdentifier p_RRC_Ti, + PrimaryScramblingCode p_PrmbScrmCode, + U_RNTI p_U_RNTI_New, + UL_ScramblingCode p_UL_ScramblingCode) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_108_RRC_ConnSetup_r12(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r12_IEs_DCH_FDD(p_PrmbScrmCode, p_U_RNTI_New, p_UL_ScramblingCode)); + + template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r12_TDD(template (value) InitialUE_Identity p_InitUEId, + RRC_TransactionIdentifier p_RRC_Ti, + U_RNTI p_U_RNTI_New, + CellParametersID p_CellParametersID) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_108_RRC_ConnSetup_r12(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r12_IEs_DCH_TDD(p_U_RNTI_New, p_CellParametersID)); + + //----------------------------------------------------------------------------------------------------------- + // RRC CONNECTION SETUP FACH + //----------------------------------------------------------------------------------------------------------- + + template (value) RRCConnectionSetup_r12_IEs cs_RRCConnectionSetup_r12_IEs_FACH_FDD(U_RNTI p_U_RNTI_New, + C_RNTI p_CRNTI_New) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + activationTime := omit, + new_U_RNTI := p_U_RNTI_New, + new_c_RNTI := p_CRNTI_New, + new_H_RNTI := omit, + newPrimary_E_RNTI := omit, + newSecondary_E_RNTI := omit, + rrc_StateIndicator := cell_FACH, + utran_DRX_CycleLengthCoeff := cs_UTRAN_DRX_CycleLengthCoefficient_r7, + capabilityUpdateRequirement := cs_CapabilityUpdateRequirement_r12_FDD, + supportForChangeOfUE_Capability := false, + defaultConfigForCellFACH := omit, + specificationMode := { + complete := { + srb_InformationSetupList := cs_SRB_InformationSetupList2_r8_FACH, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCCH_13_6k_r4_FDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCCH_3_4k_r8, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoSameAsUL_r4_FDD, + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCCH_SRB_r11 + } + }, + frequencyInfo := omit, + multi_frequencyInfo := omit, + dtx_drx_TimingInfo := omit, + dtx_drx_Info := omit, + hs_scch_LessInfo := omit, + maxAllowedUL_TX_Power := omit, + ul_DPCH_Info := omit, + ul_EDCH_Information := omit, + dl_HSPDSCH_Information := omit, + dl_CommonInformation := omit, + dl_InformationPerRL_List := omit, + dl_SecondaryCellInfoFDD := omit, + additionalDLSecCellInfoListFDD := omit, + commonERGCHInfoFDD := omit, + sps_Information_TDD128 := omit, + mu_MIMO_Info_TDD128 := omit, + non_rectResAllocInd_TDD128 := omit, + non_rectResSpecTSset_TDD128 := omit + }; + + template (value) RRCConnectionSetup_r12_IEs cs_RRCConnectionSetup_r12_IEs_FACH_TDD(U_RNTI p_U_RNTI_New, + C_RNTI p_CRNTI_New) := + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + activationTime := omit, + new_U_RNTI := p_U_RNTI_New, + new_c_RNTI := p_CRNTI_New, + new_H_RNTI := omit, + newPrimary_E_RNTI := omit, + newSecondary_E_RNTI := omit, + rrc_StateIndicator := cell_FACH, + utran_DRX_CycleLengthCoeff := cs_UTRAN_DRX_CycleLengthCoefficient_r7, + capabilityUpdateRequirement := cs_CapabilityUpdateRequirement_r12_TDD, + supportForChangeOfUE_Capability := false, + defaultConfigForCellFACH := omit, + specificationMode := { + complete := { + srb_InformationSetupList := cs_SRB_InformationSetupList2_r8_FACH, + ul_CommonTransChInfo := cs_UL_CommTrChInfoDCCH_3_4k_r4_TDD, + ul_AddReconfTransChInfoList := cs_UL_AddReconfTransChInfoListDCCH_3_4k_r8, + dl_CommonTransChInfo := cs_DL_CommonTransChInfoSameAsUL_r4_TDD, + dl_AddReconfTransChInfoList := cs_DL_AddReconfTransChInfoListDCCH_SRB_r11 + } + }, + frequencyInfo := omit, + multi_frequencyInfo := omit, + dtx_drx_TimingInfo := omit, + dtx_drx_Info := omit, + hs_scch_LessInfo := omit, + maxAllowedUL_TX_Power := omit, + ul_DPCH_Info := omit, + ul_EDCH_Information := omit, + dl_HSPDSCH_Information := omit, + dl_CommonInformation := omit, + dl_InformationPerRL_List := omit, + dl_SecondaryCellInfoFDD := omit, + additionalDLSecCellInfoListFDD := omit, + commonERGCHInfoFDD := omit, + sps_Information_TDD128 := omit, + mu_MIMO_Info_TDD128 := omit, + non_rectResAllocInd_TDD128 := omit, + non_rectResSpecTSset_TDD128 := omit + }; + + // ----------------------------------------------------------------------------- + template (value) DL_CCCH_Message cs_108_RRC_ConnSetupFACH_FDD_r12(template (value) InitialUE_Identity p_InitUEId, + RRC_TransactionIdentifier p_RRC_Ti, + U_RNTI p_U_RNTI_New, + C_RNTI p_CRNTI_New) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_108_RRC_ConnSetup_r12(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r12_IEs_FACH_FDD(p_U_RNTI_New, p_CRNTI_New)); + + template (value) DL_CCCH_Message cs_108_RRC_ConnSetupFACH_TDD_r12(template (value) InitialUE_Identity p_InitUEId, + RRC_TransactionIdentifier p_RRC_Ti, + U_RNTI p_U_RNTI_New, + C_RNTI p_CRNTI_New) := + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + cs_108_RRC_ConnSetup_r12(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r12_IEs_FACH_TDD(p_U_RNTI_New, p_CRNTI_New)); + +} + diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn index a845098..18808a7 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RRC_Templates_r9.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-06 21:15:13 +0200 (Sun, 06 Jul 2014) $ -// $Rev: 11812 $ +// @version: IWD_15wk38 +// $Date: 2014-11-29 23:00:30 +0100 (Sat, 29 Nov 2014) $ +// $Rev: 12639 $ /******************************************************************************/ module UTRAN_RRC_Templates_r9 { @@ -20,7 +20,7 @@ module UTRAN_RRC_Templates_r9 { template (value) DL_AddReconfTransChInformation_r9 cs_DL_AddReconfTransChInfo_r9(TransportChannelIdentity p_DlTrChId, TransportChannelIdentity p_UlTrChId, template (omit) QualityTarget p_QualityTarget := cs_QualityTarget) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ dl_TransportChannelType := { dch := p_DlTrChId }, @@ -34,14 +34,14 @@ module UTRAN_RRC_Templates_r9 { }; template (value) DL_AddReconfTransChInfoList_r9 cs_DL_AddReconfTransChInfoListDCCH_SRB_r9 := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_DL_AddReconfTransChInfo_r9(tsc_DL_DCH5, tsc_UL_DCH5) }; template (value) RRCConnectionSetup_r9_IEs cs_RRCConnectionSetup_r9_IEs_FACH_FDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := p_CRNTI_New, @@ -80,7 +80,7 @@ module UTRAN_RRC_Templates_r9 { template (value) RRCConnectionSetup_r9_IEs cds_RRCConnectionSetup_r9_IEs_FACH_TDD(U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) modifies cs_RRCConnectionSetup_r9_IEs_FACH_FDD := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ capabilityUpdateRequirement := cds_CapabilityUpdateRequirement_r8_TDD, specificationMode := { complete := { @@ -93,7 +93,7 @@ module UTRAN_RRC_Templates_r9 { template (value) RRCConnectionSetup_r9_IEs cs_RRCConnectionSetup_r9_IEs_DCH_FDD(PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -131,7 +131,7 @@ module UTRAN_RRC_Templates_r9 { template (value) RRCConnectionSetup_r9_IEs cs_RRCConnectionSetup_r9_IEs_DCH_TDD(U_RNTI p_U_RNTI_New, CellParametersID p_CellParametersID) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ activationTime := omit, new_U_RNTI := p_U_RNTI_New, new_c_RNTI := omit, @@ -172,7 +172,7 @@ module UTRAN_RRC_Templates_r9 { template (value) DL_CCCH_Message cs_108_RRC_ConnSetup_r9(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, template (value) RRCConnectionSetup_r9_IEs p_RRCConnectionSetup_r9_IEs) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ integrityCheckInfo := omit, message_ := { rrcConnectionSetup := { @@ -205,14 +205,14 @@ module UTRAN_RRC_Templates_r9 { RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r9(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r9_IEs_FACH_FDD(p_U_RNTI_New, p_CRNTI_New)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupFACH_r9_TDD(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, C_RNTI p_CRNTI_New) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r9(p_InitUEId, p_RRC_Ti, cds_RRCConnectionSetup_r9_IEs_FACH_TDD(p_U_RNTI_New, p_CRNTI_New)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r9_FDD(template (value) InitialUE_Identity p_InitUEId, @@ -220,14 +220,14 @@ module UTRAN_RRC_Templates_r9 { PrimaryScramblingCode p_PrmbScrmCode, U_RNTI p_U_RNTI_New, UL_ScramblingCode p_UL_ScramblingCode) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r9(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r9_IEs_DCH_FDD(p_PrmbScrmCode, p_U_RNTI_New, p_UL_ScramblingCode)); template (value) DL_CCCH_Message cs_108_RRC_ConnSetupDCH_r9_TDD(template (value) InitialUE_Identity p_InitUEId, RRC_TransactionIdentifier p_RRC_Ti, U_RNTI p_U_RNTI_New, CellParametersID p_CellParametersID) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cs_108_RRC_ConnSetup_r9(p_InitUEId, p_RRC_Ti, cs_RRCConnectionSetup_r9_IEs_DCH_TDD(p_U_RNTI_New, p_CellParametersID)); template (value) DL_DCCH_Message cs_MeasurementControl_InterRATMeasurement_TDD_r9(IntegrityCheckInfo p_Integrityinfo, diff --git a/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RSRQ_Functions.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RSRQ_Functions.ttcn new file mode 100644 index 0000000..9434266 --- /dev/null +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_RSRQ_Functions.ttcn @@ -0,0 +1,76 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-08-02 11:28:08 +0200 (Sun, 02 Aug 2015) $ +// $Rev: 14043 $ +/******************************************************************************/ +module UTRAN_RSRQ_Functions +{ + import from UTRAN_ASP_VirtualNoiseDefs all; + import from CommonDefs all; + import from UTRAN_Component all; + + template (value) UTRAN_VNG_CTRL_REQ cas_UTRAN_VNG_Configure_REQ(UTRAN_CellId_Type p_CellId, + integer p_IocLevel ):= + { /* @status APPROVED (LTE_A, LTE_IRAT) */ + CellId := f_UtranCellId2Int(p_CellId), + Request := { + Configure := { + IocLevel := p_IocLevel + } + } + }; + + template (value) UTRAN_VNG_CTRL_REQ cas_UTRAN_VNG_Activate_REQ (UTRAN_CellId_Type p_CellId) := + { /* @status APPROVED (LTE_A, LTE_IRAT) */ + CellId := f_UtranCellId2Int(p_CellId), + Request := { + Activate := true + } + }; + + template (value) UTRAN_VNG_CTRL_REQ cas_UTRAN_VNG_Deactivate_REQ (UTRAN_CellId_Type p_CellId) := + { + CellId := f_UtranCellId2Int(p_CellId), + Request := { + Deactivate := true + } + }; + + /* + * @desc configuration of the virtual noise generator, regardless of the power level the noise generator is off before it gets activated for this cell + * @param p_CellId + * @param p_IocLevel + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_ConfigureVNG(UTRAN_CellId_Type p_CellId, + integer p_IocLevel) runs on UTRAN_PTC + { + U_VNG.send (cas_UTRAN_VNG_Configure_REQ ( p_CellId, p_IocLevel)) ; + } + + /* + * @desc Activate the noise (switched on) for the given cell + * @param p_CellId + * @status APPROVED (LTE_A, LTE_IRAT) + */ + function f_UTRAN_ActivateVNG ( UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + U_VNG.send (cas_UTRAN_VNG_Activate_REQ ( p_CellId)) ; + } + + /* + * @desc deactivate noise for given cell + * @param p_CellId + * @status + */ + function f_UTRAN_DeactivateVNG ( UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC + { + U_VNG.send (cas_UTRAN_VNG_Deactivate_REQ ( p_CellId)) ; + } + +} diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn index 97e0776..5ee796b 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_TTCN_ASP_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2014-11-29 23:00:30 +0100 (Sat, 29 Nov 2014) $ +// $Rev: 12639 $ /******************************************************************************/ module UTRAN_TTCN_ASP_Templates { @@ -22,7 +22,7 @@ module UTRAN_TTCN_ASP_Templates { integer p_RB_Id, AmConfirmationRequest p_AmConfirmationRequest, template (value) DL_DCCH_Message p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ data := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -39,13 +39,13 @@ module UTRAN_TTCN_ASP_Templates { integer p_RB_Id, Mui p_Mui, template (value) DL_DCCH_Message p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cas_RLC_Data_Req_Common(p_CellId, p_RB_Id, {confirmationRequested := p_Mui}, p_Pdu); template (value) U_RLC_AM_REQ cas_RLC_Data_Req_NoCnf(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template (value) DL_DCCH_Message p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cas_RLC_Data_Req_Common(p_CellId, p_RB_Id, {noConfirmationRequest := NULL}, p_Pdu); //---------------------------------------------------------------------------- @@ -53,7 +53,7 @@ module UTRAN_TTCN_ASP_Templates { template (present) U_RLC_AM_IND car_RLC_Data_Ind(UTRAN_CellId_Type p_CellId, integer p_RB_Id, template UL_DCCH_Message p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ data := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -71,7 +71,7 @@ module UTRAN_TTCN_ASP_Templates { template (present) U_RLC_AM_IND car_AM_DataMuiCnf(UTRAN_CellId_Type p_CellId, integer p_RB, Mui p_Mui) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cnf := { cellId := f_UtranCellId2Int(p_CellId), routingInfo := { @@ -87,7 +87,7 @@ module UTRAN_TTCN_ASP_Templates { SS_RB_Identity p_Rb, SS_CN_DomainIdentity p_CN_Domain, template (value) RRCDataReqType p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellId := f_UtranCellId2Int(p_CellId), rB_Id := p_Rb, ch := omit, // always set to omit @@ -99,13 +99,13 @@ module UTRAN_TTCN_ASP_Templates { template (value) RRC_DATA_REQ cas_DataReq_CS(UTRAN_CellId_Type p_CellId, SS_RB_Identity p_Rb, template (value) RRCDataReqType p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cas_DataReq_Common(p_CellId, p_Rb, tsc_SS_CS_Domain, p_Pdu); template (value) RRC_DATA_REQ cas_DataReq_PS(UTRAN_CellId_Type p_CellId, SS_RB_Identity p_Rb, template (value) RRCDataReqType p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cas_DataReq_Common(p_CellId, p_Rb, tsc_SS_PS_Domain, p_Pdu); //============================================================================ @@ -115,7 +115,7 @@ module UTRAN_TTCN_ASP_Templates { template (present) SS_CN_DomainIdentity p_DomainIdentity, template START_Value p_Start, template (present) RRCDataIndType p_Pdu) := - { /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + { /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ cellId := f_UtranCellId2Int(p_CellId), rB_Id := p_Rb, ch := omit, // always set to omit @@ -128,25 +128,25 @@ module UTRAN_TTCN_ASP_Templates { template (present) RRC_DATA_IND car_InitDirectTransfer(UTRAN_CellId_Type p_CellId, template (present) SS_RB_Identity p_Rb, template (present) RRCDataIndType p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ car_CommonDirectTransfer(p_CellId, p_Rb, tsc_SS_CS_Domain, ?, p_Pdu); template (present) RRC_DATA_IND car_PS_InitDirectTransfer(UTRAN_CellId_Type p_CellId, template (present) SS_RB_Identity p_Rb, template (present) RRCDataIndType p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ car_CommonDirectTransfer(p_CellId, p_Rb, tsc_SS_PS_Domain, ?, p_Pdu); template (present) RRC_DATA_IND car_PS_UplinkDirectTransfer(UTRAN_CellId_Type p_CellId, template (present) SS_RB_Identity p_Rb, template (present) RRCDataIndType p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ car_CommonDirectTransfer(p_CellId, p_Rb, tsc_SS_PS_Domain, omit, p_Pdu); template (present) RRC_DATA_IND car_UplinkDirectTransfer(UTRAN_CellId_Type p_CellId, template (present) SS_RB_Identity p_Rb, template (present) RRCDataIndType p_Pdu) := - /* @status APPROVED (LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ + /* @status APPROVED (IMS, IMS_IRAT, LTE_A, LTE_IRAT, POS, SSNITZ, UTRAN) */ car_CommonDirectTransfer(p_CellId, p_Rb, tsc_SS_CS_Domain, omit, p_Pdu); diff --git a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_TypeDefs.ttcn b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_TypeDefs.ttcn similarity index 81% rename from LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_TypeDefs.ttcn rename to LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_TypeDefs.ttcn index 349dbde..b0e8841 100644 --- a/LTE_A_IWD_14wk37/Common/UTRAN/UTRAN_TypeDefs.ttcn +++ b/LTE_A_IWD_15wk38/Common/UTRAN/UTRAN_TypeDefs.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-04-14 17:22:26 +0200 (Tue, 14 Apr 2015) $ +// $Rev: 13379 $ /******************************************************************************/ module UTRAN_TypeDefs @@ -17,9 +17,11 @@ module UTRAN_TypeDefs import from UTRAN_CommonDefs all; import from NAS_24008TypeDefs all; import from NAS_34109TypeDefs all; + import from UTRAN_RLC_Types all; //@sic R5-150124 MultiFlow sic@ type enumerated UTRA_POSTAMBLE_STATE_Type {U1_IDLE, U2_CONNECTED, U3_HANDOVER, U4_CSFALLBACK, U5_CSCALL, U6_DEREGISTERED}; type enumerated UTRA_POSTAMBLE_CONDITIONS {UTRA_C1, UTRA_C2, UTRA_C3, UTRA_C4} + type enumerated UTRAN34_DETACH_Type {GPRS_Attached, IMSI_DetachOnly, NotSpecified}; //@sic R5s150247 sic@ type integer SS_RB_Identity (-31..32); // RB identity type in TTCN tabular format @@ -44,9 +46,9 @@ module UTRAN_TypeDefs in RRC_DATA_IND; out RRC_DATA_REQ; }; - type port UTRAN_TM_PORT message { - in RLC_TR_DATA_IND; - out RLC_TR_DATA_REQ; + type port UTRAN_TM_PORT message { //@sic R5-150124 MultiFlow sic@ + in U_RLC_TM_IND; + out U_RLC_TM_REQ; }; type port UTRAN_UM_PORT message { in RLC_UM_DATA_IND; @@ -70,7 +72,11 @@ module UTRAN_TypeDefs RLC_AM_DATA_IND data, RLC_AM_TestDataInd testData }; - + type union U_RLC_TM_IND { //@sic R5-150124 MultiFlow sic@ + RLC_TR_DATA_IND data, + RLC_TR_TestDataInd testData + }; + // ============================================================================= // ASP Type Definition // ----------------------------------------------------------------------------- @@ -78,14 +84,18 @@ module UTRAN_TypeDefs RLC_AM_DATA_REQ data, RLC_AM_TestDataReq testData }; - + type union U_RLC_TM_REQ { //@sic R5-150124 MultiFlow sic@ + RLC_TR_DATA_REQ data, + RLC_TR_TestDataReq testData + }; + // ============================================================================= // ASP Type Definition // To request the transmission of unstructured data using acknowledged mode in the downlink direction // ----------------------------------------------------------------------------- type record RLC_AM_TestDataReq { integer cellId optional, - SS_RB_Identity rB_Id optional, // RB identity (RB3 or RB4) + SS_RB_Identity rB_Id optional, TrD_PDU data optional }; @@ -95,10 +105,37 @@ module UTRAN_TypeDefs // ----------------------------------------------------------------------------- type record RLC_AM_TestDataInd { integer cellId optional, - SS_RB_Identity rB_Id optional, // RB identity (RB3 or RB4) + SS_RB_Identity rB_Id optional, TrD_PDU data optional }; + // ============================================================================= + // ASP Type Definition + // To request the transmission of unstructered data using transparent mode in the downlink direction. TTCN writter is requires to send data according to the transport block size allowed. + // ----------------------------------------------------------------------------- + type record RLC_TR_TestDataReq { + integer cellId optional, + SS_RB_Identity rB_Id optional, + UTRAN_RLC_PDU_Type data optional + }; + + // ============================================================================= + // ASP Type Definition + // To indicate the reception of unstructered data using transparent mode in the uplink direction + // ----------------------------------------------------------------------------- + type record RLC_TR_TestDataInd { + integer cellId optional, + SS_RB_Identity rB_Id optional, + UTRAN_RLC_PDU_Type data optional + }; + + type union UTRAN_RLC_PDU_Type { //@sic R5-150124 MultiFlow sic@ + TrD_PDU testData, + AMD_PDU AMD, // tsc_RB_AM_7_RLC + STATUS_PDU Status, // tsc_RB_AM_7_RLC + RESET_PDU Reset // tsc_RB_AM_7_RLC + } + // ============================================================================= // ASP Type Definition // The ASP is used to indicate the receipt of the NAS PDU message using acknowledged operation (NAS <- RRC). @@ -164,10 +201,12 @@ module UTRAN_TypeDefs OPENUETESTLOOPCOMPLETE openUeTestLoopComplete, HOLD hold, //@sic R5-140683 sic@, RETRIEVE retrieve, - FACILITY facility, // @sic R5-140683 sic@ + FACILITYul facilityul, // @sic R5-140683, R5s140989 sic@ STATUS status, // @sic R5-140414 sic@ DISCONNECTul disconnectUL, - MODIFYPDPCONTEXTREQUEST_ul modifyPDPContextRequest + MODIFYPDPCONTEXTREQUEST_ul modifyPDPContextRequest, + STARTDTMF startDTMF, + STOPDTMF stopDTMF }; type union RRCDataReqType { @@ -216,7 +255,9 @@ module UTRAN_TypeDefs GMM_INFORMATION gmmInformation, // @sic R5-140717 sic@ MM_INFORMATION mmInformation, // @sic R5-140718 sic@ RELEASEdl releaseDL, - MODIFYPDPCONTEXTACCEPT_ul modifyPDPContextAccept + MODIFYPDPCONTEXTACCEPT_ul modifyPDPContextAccept, + STARTDTMFACKNOWLEDGE startDTMFAck, + STOPDTMFACKNOWLEDGE stopDTMFAck }; // ============================================================================= diff --git a/LTE_A_IWD_14wk37/LTE_A/10/ESM_A_Testcases.ttcn b/LTE_A_IWD_15wk38/LTE_A/10/ESM_A_Testcases.ttcn similarity index 82% rename from LTE_A_IWD_14wk37/LTE_A/10/ESM_A_Testcases.ttcn rename to LTE_A_IWD_15wk38/LTE_A/10/ESM_A_Testcases.ttcn index b463c5a..cae28a3 100644 --- a/LTE_A_IWD_14wk37/LTE_A/10/ESM_A_Testcases.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/10/ESM_A_Testcases.ttcn @@ -3,10 +3,10 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// * $Rev: 11917 $ +// @version: IWD_15wk38 +// * $Rev: 14482 $ // *************************************************************************** module ESM_A_Testcases { @@ -22,6 +22,7 @@ module ESM_A_Testcases { import from EUTRA_DRB_Templates all; import from EUTRA_AspCommon_Templates all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from NAS_CommonTypeDefs all; import from NAS_AuxiliaryDefsAndFunctions all; import from EPS_NAS_TypeDefs all; @@ -36,7 +37,6 @@ module ESM_A_Testcases { import from EUTRA_SecurityFunctions all; import from EUTRA_SecuritySteps all; import from EUTRA_Timing all; - import from IP_PTC_CtrlMsgs all; template (present) NAS_UL_Message_Type cr_EXT_SERVICE_REQUEST_DeviceProperties(NAS_KsiValue p_KsiValue, EPS_M_Tmsi p_MTmsi, @@ -47,14 +47,7 @@ module ESM_A_Testcases { p_MTmsi, -, p_DeviceProperties); - - - template (present) NAS_UL_Message_Type cr_PDNConnReqAdditionalPDN_DeviceProperties(template (present) PdnTypeValue p_PDNTypeValue, - template AccessPointName p_AccessPointName, - template DeviceProperties p_DeviceProperties) := // 'initial request' 24.008 clause 10.5.6.17 - /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ - cr_PDN_CONNECTIVITY_REQUEST_Common(-, -, p_PDNTypeValue, '001'B, omit, p_AccessPointName, -, p_DeviceProperties); - + template (present) NAS_UL_Message_Type cdr_BearerResourceModReq_DeviceProperties(template (present) ProcedureTransactionIdentifier p_ProcTi, EPS_BearerIdentity p_LinkedEpsBearerId, template ESM_Cause p_Cause, @@ -69,65 +62,10 @@ module ESM_A_Testcases { template (present) EstablishmentCause cr_EstablishmentCause_delayTolerantAccess := delayTolerantAccess_v1020; /* @status APPROVED (LTE_A) */ template (value) EPS_NetworkFeatureSupport cs_EPS_NwkFtSup_ExtServiceReq := cs_EPS_NwkFtSup_Common('1'B, -, -, -, '1'B); /* @status APPROVED (LTE_A) */ - //---------------------------------------------------------------------------- - /* same as the function in ESM_Testcases.ttcn - * @desc Send RRCConnectionReconfiguration with piggy-backed ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST and - * ACTIVATE DEDICATED EPS BEARER CONTEXT REQUEST for a default and a dedicated bearer to an additional PDN. - * Note: This functions is used when activating a default bearer to an additional PDN. - * @param p_CellId - * @param p_RRC_TI - * @param p_DefaultEpsBearerId - * @param p_DedicatedEpsBearerId - * @param p_EpsTI - * @param p_AccessPointName - * @param p_PDN_Address - * @param p_PCO - * @status APPROVED (LTE) - */ - function f_EUTRA_TxActivateDedicatedBearerCtxtOnAdditionalPDN (EUTRA_CellId_Type p_CellId, - RRC_TransactionIdentifier p_RRC_TI, - EPS_BearerIdentity p_DefaultEpsBearerId, - EPS_BearerIdentity p_DedicatedEpsBearerId, - template (value) ProcedureTransactionIdentifier p_EpsTI, - template (value) AccessPointName p_AccessPointName, - template (value) PDN_Address p_PDN_Address, - template (omit) ProtocolConfigOptions p_PCO) runs on EUTRA_PTC - { - // send RRCConnectionReconfiguration with piggy-backed ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST - var ProcedureTransactionIdentifier v_EpsTi2 := tsc_PTI_Unassigned; - var template (value) NAS_DL_Message_Type v_ActDefaultEPSBearerCxtReq := - cs_508_ActivateDefEpsBearerContextRequest(p_DefaultEpsBearerId, - p_EpsTI, - p_AccessPointName, - p_PDN_Address, - -, - p_PCO); - var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := - cs_508_ActDedicatedEPSBearerCxtReq(p_DedicatedEpsBearerId, - v_EpsTi2, - cs_LinkedId(hex2bit( p_DefaultEpsBearerId)), - cds_EPS_QoS_Dedi_nonGBR_QCI, - f_EUTRA_Get_508_TrafficFlowTemplate(2, p_DedicatedEpsBearerId)); - - var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := { - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDefaultEPSBearerCxtReq), - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReq) - }; - - var DRB_IdentityList_Type v_DrbList := { - tsc_DRB2, - tsc_DRB3 - }; - - f_IP_ChangeEutraCell(IP, p_CellId); - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(p_CellId, p_RRC_TI, v_DrbList, v_NAS_MsgList); - - } - //============================================================================ /* * @desc REFERENCE TS 36.523-1 clause 10.5.1a - * @status + * @status APPROVED (LTE_A) */ function f_TC_10_5_1a_EUTRA() runs on EUTRA_PTC { /* UE requested PDN connectivity accepted / Dual priority / T3396 override */ @@ -135,12 +73,12 @@ module ESM_A_Testcases { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); // Create cell and send out system information - f_EUTRA_CellConfig_DRB_Common(eutra_CellA, 1, 0); + f_EUTRA_CellConfig_Def(eutra_CellA); /* @sic R5s150338: f_EUTRA_CellConfig_DRB_Common replaced by f_EUTRA_CellConfig_Def sic@ */ //Equip UE with a USIM containing default values except for those shown in TC10.5.1a f_UT_USIM_Insert(UT, "36.523-1 Table 10.5.1a.3.1-1"); //@sic R5-140958 sic@* - f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE,-,-,cs_EPS_NwkFtSup_ExtServiceReq); // @sic R5-142890 sic@ + f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, -, -, cs_EPS_NwkFtSup_ExtServiceReq); // @sic R5-142890 sic@ f_EUTRA_TestBody_Set(true); fl_TC_10_5_1a_Body(); @@ -149,6 +87,10 @@ module ESM_A_Testcases { f_EUTRA_Postamble(eutra_CellA, E2_CONNECTED); } + /* + * @desc test body of TC_10_5_1a + * @status APPROVED (LTE_A) + */ function fl_TC_10_5_1a_Body() runs on EUTRA_PTC { var EPS_BearerIdentity v_EpsBearerId2 := '6'H; @@ -169,12 +111,11 @@ module ESM_A_Testcases { var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var template (value) ESM_Cause v_EsmCause26; - timer t_T3396:= f_EUTRA_SetTimerToleranceMin(eutra_CellA, nasTimer, 60.0); - + timer t_T3396:= f_EUTRA_SetTimerToleranceMin(eutra_CellA, nasTimer, 300.0); // @sic R5s150745 sic@ + // Cause the UE to request connectivity to an additional PDN. //@siclog "Step 1" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_string); - + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String); //@siclog "Step 2" siclog@ // RRC establishment cause shall be set to Delay tolerant according to 24.301 Table D.1.1 @@ -187,15 +128,13 @@ module ESM_A_Testcases { cr_DeviceProperties('D'H, v_DeviceProperties_1)))); - + //@siclog "Step 3" siclog@ // The SS establishes a DRB associated with the default EPS bearer context activated during the preamble. // Activate security in AS with parameters from AKA performed in preamble v_NasCountUL := v_NasInd.SecurityProtection.NasCount; v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, - v_SecurityParams, - v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, v_SecurityParams, v_NasCountUL); f_EUTRA_Security_Set(v_SecurityParams); SRB.send(cas_SRB1_RrcPdu_REQ(eutra_CellA, @@ -209,7 +148,7 @@ module ESM_A_Testcases { v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, f_EUTRA_CellInfo_GetAntennaInfoDedicated (eutra_CellA))), omit))); - + // receive RRCConnectionReconfigurationComplete SRB.receive(car_SRB1_RrcPdu_IND(eutra_CellA, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); @@ -217,46 +156,46 @@ module ESM_A_Testcases { //@siclog "Step 4" siclog@ // Check: Does the UE transmit a PDN CONNECTIVITY REQUEST as specified to request an additional PDN? SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_PDNConnReqAdditionalPDN_DeviceProperties(f_GetPdnType(), - cr_AccessPointName(v_APN_Value), - cr_DeviceProperties('D'H, v_DeviceProperties_1))))) -> value v_ReceivedAsp; - + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_PDNConnReqAdditionalPDN_DeviceProperties(f_GetPdnType(), + cr_AccessPointName(v_APN_Value), + cr_DeviceProperties('C'H, v_DeviceProperties_1))))) -> value v_ReceivedAsp; // @sic R5s150745 sic@ + v_PDNConnReq := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_CONNECTIVITY_REQUEST; v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; - + // The SS transmits a PDN CONNECTIVITY REJECT message. //@siclog "Step 5" siclog@ v_EsmCause26 := cs_ESM_Cause_v ('00011010'B); SRB.send(cas_SRB2_NasPdu_REQ(eutra_CellA, cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_PdnConnectReject( '0'H, // no EPS bearer assigned - v_PTId_UE, - v_EsmCause26, - cs_GprsTimer3(tsc_Gprs3TimerUnit_1min, '00001'B))))); + cs_PdnConnectReject('0'H, // no EPS bearer assigned + v_PTId_UE, + v_EsmCause26, + cs_GprsTimer3('37'O, tsc_Gprs3TimerUnit_1min, '00101'B))))); // @sic R5-152082 sic@ @sic R5s150745 sic@ // timer T3396 start t_T3396.start; - + // Cause the UE to request connectivity to the same PDN used in step 1 with the NAS signalling low priority indicator set to indicate normal priority. //@siclog "Step 6" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_string); // @sic R5-142890 sic@ + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String, -, -, 1); // @sic R5-142890 sic@ @sic R5s150745 sic@ alt{ - []t_T3396.timeout - { - t_T3396.stop; - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "T3396 timeout, either operator too slow (1 min), or UE failure"); - } - - []//@siclog "Step 7" siclog@ + [] t_T3396.timeout + { + t_T3396.stop; + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "T3396 timeout, either operator too slow (1 min), or UE failure"); + } + + //@siclog "Step 7" siclog@ // Check: Does the UE transmit a PDN CONNECTIVITY REQUEST as specified to request an additional PDN before the time indicated by timer T3396 has passed? - SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_PDNConnReqAdditionalPDN_DeviceProperties(f_GetPdnType(), - cr_AccessPointName(v_APN_Value), - cr_DeviceProperties('D'H, v_DeviceProperties_0))))) -> value v_ReceivedAsp + [] SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_PDNConnReqAdditionalPDN_DeviceProperties(f_GetPdnType(), + cr_AccessPointName(v_APN_Value), + cr_DeviceProperties('C'H, v_DeviceProperties_0))))) -> value v_ReceivedAsp // @sic R5s150745 sic@ { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7"); t_T3396.stop; @@ -270,24 +209,23 @@ module ESM_A_Testcases { // Change from DRB1 to DRB2 to handle U Plane data f_EUTRA_StartIPfor2ndPDN(eutra_CellA); - + //@siclog "Step 8" siclog@ // The SS transmits an ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message with IE EPS Bearer Identity set to new EPS bearer context. // Ask UE to get its additional IP adress via DHCP or ICMP - v_PDN_Address2 := f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); - f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig (eutra_CellA, - v_RRC_TI, - v_EpsBearerId2, // Default bearer ID to additional PDN - v_PTId_UE, // use value as defined by the UE - v_AccessPointName, - v_PDN_Address2, - f_GetDefaultProtocolConfigOptions(v_Pco)); + v_PDN_Address2 := f_EUTRA_GetPDNAddress(f_CheckPCOforIPallocationViaNas(v_Pco), PDN_2); + f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(eutra_CellA, + v_EpsBearerId2, // Default bearer ID to additional PDN + v_PTId_UE, // use value as defined by the UE + v_AccessPointName, + v_PDN_Address2, + f_GetDefaultProtocolConfigOptions(v_Pco)); // Check: Does the UE transmit an ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message for the additional default EPS bearer? //@siclog "Step 9" siclog@ SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_508_ActivateDefEpsBearerContextAccept(v_EpsBearerId2)))); - + // 1.2s delay acc. to 36.508 cl. 4.5A.1 to allow user-plane signalling f_EUTRA_DelayForUserPlaneSignalling(); } @@ -295,7 +233,7 @@ module ESM_A_Testcases { //============================================================================ /* * @desc REFERENCE TS 36.523-1 clause 10.5.1b - * @status + * @status APPROVED (LTE_A) */ function f_TC_10_5_1b_EUTRA() runs on EUTRA_PTC { /* UE requested PDN connectivity accepted / Dual priority / T3396 override */ @@ -303,8 +241,8 @@ module ESM_A_Testcases { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); // Create cell and send out system information - f_EUTRA_CellConfig_DRB_Common(eutra_CellA, 1, 0); - + f_EUTRA_CellConfig_Def(eutra_CellA); // @sic R5s150338: f_EUTRA_CellConfig_DRB_Common replaced by f_EUTRA_CellConfig_Def sic@ + //Equip UE with a USIM containing default values except for those shown in TC10.5.1b f_UT_USIM_Insert(UT, "36.523-1 Table 10.5.1b.3.1-1");// Dual priority configuration in pre-test condition is under discussion @@ -316,7 +254,11 @@ module ESM_A_Testcases { f_EUTRA_Postamble(eutra_CellA, E2_CONNECTED); } - + + /* + * @desc test body of TC_10_5_1b + * @status APPROVED (LTE_A) + */ function fl_TC_10_5_1b_Body() runs on EUTRA_PTC { var EPS_BearerIdentity v_EpsBearerId2 := '6'H; @@ -325,17 +267,22 @@ module ESM_A_Testcases { var octetstring v_APN_Value := tsc_APN1; // APN-1(New PDN name), different from default var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(eutra_CellA); var NasCount_Type v_NasCountUL; + var ProcedureTransactionIdentifier v_PTId_UE; + var template (omit) ProtocolConfigOptions v_Pco; + var template (value) AccessPointName v_AccessPointName; + var PDN_Address v_PDN_Address2; + var SRB_COMMON_IND v_ReceivedAsp; + var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (eutra_CellA); var B1_Type v_DeviceProperties_1 := '1'B ; var B1_Type v_DeviceProperties_0 := '0'B ; - timer t_T3346:= f_EUTRA_SetTimerToleranceMax(eutra_CellA, nasTimer, 60.0); + timer t_T3346:= f_EUTRA_SetTimerToleranceMax(eutra_CellA, nasTimer, 300.0); // @sic R5s150778 sic@ // Cause the UE to request connectivity to an additional PDN. //@siclog "Step 1" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_string); + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String); - //@siclog "Step 1A- 2" siclog@ // RRC establishment cause shall be set to Delay tolerant according to 24.301 Table D.1.1 v_NasInd:= f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellA, @@ -352,19 +299,19 @@ module ESM_A_Testcases { cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_NoSecurityProtection, cs_508_SERVICE_REJECT(tsc_Cause_Congestion, - cs_GprsTimer_tv('5F'O, '000'B, '11110'B))))); //@sic R5-142874 sic@ + -, + cs_GPRS_Timer2_3_IEI('5F'O, '001'B, '00101'B))))); //@sic R5-142874 sic@ @sic R5-152082 sic@ @sic R5s150778 sic@ //@siclog "Step 4" siclog@ - t_T3346.start; f_EUTRA_RRC_ConnectionRelease(eutra_CellA); //Release cause= other //@siclog "Step 5" siclog@ //Cause the UE to request connectivity to the same PDN as used in step 1, with the NAS signalling low priority indicator set to indicate normal priority. - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_string); - + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String, -, -, 1); // @sic R5s150778 sic@ + //@siclog "Step 5A- 6" siclog@ v_NasInd:= f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellA, tsc_RRC_TI_Def, @@ -380,9 +327,7 @@ module ESM_A_Testcases { // @sic R5-142889 sic@ v_NasCountUL := v_NasInd.SecurityProtection.NasCount; v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, - v_SecurityParams, - v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, v_SecurityParams, v_NasCountUL); f_EUTRA_Security_Set(v_SecurityParams); SRB.send(cas_SRB1_RrcPdu_REQ(eutra_CellA, @@ -402,25 +347,48 @@ module ESM_A_Testcases { //@siclog "Step 7" siclog@ - alt{ - - [] SRB.receive(car_SRB2_NasPdu_IND (eutra_CellA, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + alt { + [] SRB.receive(car_SRB2_NasPdu_IND (eutra_CellA, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_PDNConnReqAdditionalPDN_DeviceProperties(f_GetPdnType(), cr_AccessPointName(v_APN_Value), - cr_DeviceProperties('D'H, v_DeviceProperties_0))))) - { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7"); - t_T3346.stop; - } - - [] t_T3346.timeout - { - - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "T3396 timeout, No PDN as specified in Table 10.5.1b.3.3-5 received"); - } + cr_DeviceProperties('C'H, v_DeviceProperties_0))))) -> value v_ReceivedAsp // @sic R5s150778 sic@ @sic R5-153737 sic@ + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7"); + t_T3346.stop; + } + + [] t_T3346.timeout + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "T3396 timeout, No PDN as specified in Table 10.5.1b.3.3-5 received"); + } } + v_PDNConnReq := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_CONNECTIVITY_REQUEST; + v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; + v_AccessPointName := cs_AccessPointName(v_APN_Value); + v_Pco := v_PDNConnReq.protocolConfigurationOptions; + + // Change from DRB1 to DRB2 to handle U Plane data + // f_EUTRA_StartIPfor2ndPDN(eutra_CellA); // @sic R5-153737: IP handling is not included in the prose according to this prose CR sic@ + + //@siclog "Step 8" siclog@ + // The SS transmits an ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message with IE EPS Bearer Identity set to new EPS bearer context. + // Ask UE to get its additional IP adress via DHCP or ICMP + v_PDN_Address2 := f_EUTRA_GetPDNAddress(f_CheckPCOforIPallocationViaNas(v_Pco), PDN_2); + f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(eutra_CellA, + v_EpsBearerId2, // Default bearer ID to additional PDN + v_PTId_UE, // use value as defined by the UE + v_AccessPointName, + v_PDN_Address2, + f_GetDefaultProtocolConfigOptions(v_Pco)); // @sic R5-153737 sic@ + // Check: Does the UE transmit an ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message for the additional default EPS bearer? + //@siclog "Step 9" siclog@ + SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActivateDefEpsBearerContextAccept(v_EpsBearerId2)))); // @sic R5-153737 sic@ + // 1.2s delay acc. to 36.508 cl. 4.5A.1 to allow user-plane signalling + f_EUTRA_DelayForUserPlaneSignalling(); // @sic R5-153737 sic@ } //============================================================================ @@ -434,7 +402,7 @@ module ESM_A_Testcases { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); // Create cell and send out system information - f_EUTRA_CellConfig_DRB_Common(eutra_CellA, 1, 0); + f_EUTRA_CellConfig_Def(eutra_CellA); /* @sic R5s150338: f_EUTRA_CellConfig_DRB_Common replaced by f_EUTRA_CellConfig_Def sic@ */ //Equip UE with a USIM containing default values except for those shown in Table 10.5.4.3.1-2 f_UT_USIM_Insert(UT, "36.523-1 Table 10.5.4.3.1-2"); @@ -474,10 +442,14 @@ module ESM_A_Testcases { var ExtendedWaitTime_r10_Type v_ExtendedWaitTime_r10 := 60; // @sic R5-143213 sic@ var float v_T3346Val := f_EUTRA_SetTimerToleranceMin(eutra_CellA, nasTimer, int2float(v_ExtendedWaitTime_r10)) - (int2float(tsc_EUTRA_DelayAfterRRCConnectionRelease) / 1000.0); + // T3346 Offset defined as point of time from starting T3346 in the UE till start of surveillance in the SS // @sic R5s141161 sic@ + var SubFrameTiming_Type v_Start_T3346Offset; // earlier than the actual start of T3346 in the UE + var SubFrameTiming_Type v_End_T3346Offset; // actual start of T3346 surveillance in the SS, i.e. end of offset + var float v_Duration_T3346Offset; // T3346 Offset duration // Cause the UE to request connectivity to an additional PDN. //@siclog "Step 1" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_string); + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String); //The UE transmits an RRCConnectionRequest message with establishment cause set to delayTolerantAccess_v1020 //@siclog "Step 1A" siclog@ @@ -494,22 +466,25 @@ module ESM_A_Testcases { //The SS releases the RRC connection. //@siclog "Step 3" siclog@ + v_Start_T3346Offset := f_EUTRA_GetCurrentTiming(eutra_CellA); // @sic R5s141161 sic@ f_EUTRA_RRC_ConnectionRelease_Common(eutra_CellA, cs_RRCConnectionRelease_extendedWaitTime_r10(v_RRC_TI, v_ReleaseCause, v_ExtendedWaitTime_r10)); // Cause the UE to request connectivity to an additional PDN. //@siclog "Step 3A" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN2_string); // @sic R5-143213 sic@ + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN2_String); // @sic R5-143213 sic@ + v_End_T3346Offset := f_EUTRA_GetCurrentTiming(eutra_CellA); + v_Duration_T3346Offset := f_EUTRA_SubFrameTimingDuration_Float(v_Start_T3346Offset, v_End_T3346Offset); // @sic R5s141161 sic@ //@siclog "Step 4" siclog@ //Check: Does the UE transmit an RRCConnectionRequest message within 60 s? - if (f_EUTRA_RRC_RRCConnectionRequest_Check(eutra_CellA, v_T3346Val)) { + if (f_EUTRA_RRC_RRCConnectionRequest_Check(eutra_CellA, (v_T3346Val - v_Duration_T3346Offset))) { // @sic R5s141161 sic@ f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 4"); } // Cause the UE to request connectivity to an additional PDN. //@siclog "Step 4AA" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN3_string); // @sic R5-143213 sic@ + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN3_String); // @sic R5-143213 sic@ //The UE transmits an RRCConnectionRequest message with establishment cause set to delayTolerantAccess_v1020 //@siclog "Step 4A" siclog@ @@ -527,9 +502,7 @@ module ESM_A_Testcases { // Activate security in AS with parameters from AKA performed in preamble v_NasCountUL := v_NasInd.SecurityProtection.NasCount; v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, - v_SecurityParams, - v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, v_SecurityParams, v_NasCountUL); f_EUTRA_Security_Set(v_SecurityParams); SRB.send(cas_SRB1_RrcPdu_REQ(eutra_CellA, @@ -568,7 +541,6 @@ module ESM_A_Testcases { // Ask UE to get its additional IP adress via DHCP or ICMP v_PDN_Address2 := f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig (eutra_CellA, - v_RRC_TI, v_EpsBearerId2, // Default bearer ID to additional PDN v_PTId_UE, // use value as defined by the UE v_AccessPointName, @@ -598,7 +570,7 @@ module ESM_A_Testcases { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); // Create cell and send out system information - f_EUTRA_CellConfig_DRB_Common(eutra_CellA, 2, 0); + f_EUTRA_CellConfig_Def(eutra_CellA); /* @sic R5s150338: f_EUTRA_CellConfig_DRB_Common replaced by f_EUTRA_CellConfig_Def sic@ */ f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE); f_EUTRA_TestBody_Set(true); @@ -632,7 +604,7 @@ module ESM_A_Testcases { // Cause the UE to request connectivity to an additional PDN. //@siclog "Step 1" siclog@ - f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_string); // APN-1(New PDN name), different from default + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String); // APN-1(New PDN name), different from default // UE sends SERVICE REQUEST message //@siclog "Step 2" siclog@ @@ -647,9 +619,7 @@ module ESM_A_Testcases { // (a first PDN obtained during the attach procedure). v_NasCountUL := v_NasInd.SecurityProtection.NasCount; v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); - v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, - v_SecurityParams, - v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, v_SecurityParams, v_NasCountUL); f_EUTRA_Security_Set(v_SecurityParams); SRB.send(cas_SRB1_RrcPdu_REQ(eutra_CellA, @@ -693,7 +663,6 @@ module ESM_A_Testcases { //@siclog "Step 5" siclog@ v_PDN_Address2 := f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); f_EUTRA_TxActivateDedicatedBearerCtxtOnAdditionalPDN(eutra_CellA, - tsc_RRC_TI_Def, v_EpsBearerId2, // Default bearer ID to additional PDN v_EpsDedicatedBearerId, // Dedicated bearer ID v_PTId_UE, // use value as defined by the UE @@ -713,7 +682,7 @@ module ESM_A_Testcases { cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_508_ActDedicatedEPSBearerCxtAccept(v_EpsDedicatedBearerId)))) {} - }; + } // 1.2s delay acc. to 36.508 cl. 4.5A.1 to allow user-plane signalling f_EUTRA_DelayForUserPlaneSignalling(); diff --git a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA.ttcn index 59fcc25..e1bf9ac 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA.ttcn @@ -2,16 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-11 16:21:32 +0200 (Thu, 11 Sep 2014) $ -// $Rev: 12214 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 19:42:26 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14358 $ /******************************************************************************/ module ASRVCC_EUTRA { - - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_SRVCC all; import from GERAN_SRVCC all; @@ -23,7 +21,7 @@ module ASRVCC_EUTRA { import from EUTRA_AspCommon_Templates all; import from EUTRA_SecuritySteps all; import from EUTRA_CommonProcedures all; - import from EPS_NAS_TypeDefs all; + import from EUTRA_InitialRegistration all; import from EUTRA_RRCSteps all; import from EUTRA_ConfigurationSteps all; import from CommonDefs all; @@ -50,11 +48,12 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); f_EUTRA_TestBody_Set(true); + fl_TC_13_4_3_7_Body(); @@ -84,11 +83,12 @@ module ASRVCC_EUTRA { var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; var CoOrd_UTRANSysInfoFDD_Type v_UTRANSysInfoFDD; var CoOrd_UTRANSysInfoTDD_Type v_UTRANSysInfoTDD; - //var ProcedureTransactionIdentifier v_EpsProcedureTransactionId := '00'O; var template (present) UL_DCCH_Message v_MeasRpt; var template (value) DL_DCCH_Message v_Reconfig; v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo (UTRAN); + + if (ischosen (v_UTRANSysInfo.Utran[0].FDD)) { v_UTRANSysInfoFDD := v_UTRANSysInfo.Utran[0].FDD; @@ -103,6 +103,8 @@ module ASRVCC_EUTRA { v_ChBandDependency_Cell1.AllowedMeasBandwidth, v_UTRAN_ARFCN_Cell5, v_UTRAN_PhysChId_Cell5); + + } else { v_UTRANSysInfoTDD := v_UTRANSysInfo.Utran[0].TDD; @@ -128,22 +130,9 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Step 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -195,7 +184,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -274,22 +263,9 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Steps 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + // Send trigger to IMS PTC f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); @@ -343,7 +319,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -427,22 +403,8 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Step 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -485,7 +447,7 @@ module ASRVCC_EUTRA { cs_MobilityFromEutraCommand_Handover(tsc_RRC_TI_Def, false,//@sic R5-142880 sic@ utra, v_HandoverToUtranCommand, v_Nas_SecurityParamFromEUTRA, omit))); // @sic R5s140370 sic@ - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian ( eutra_Cell1,-,-, 100 ); // + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(eutra_Cell1); v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1, tsc_C_RNTI_Def); @@ -529,7 +491,7 @@ module ASRVCC_EUTRA { f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ // f_IRAT_WaitForCoOrd_Trigger(UTRAN); f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -651,7 +613,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -762,6 +724,7 @@ module ASRVCC_EUTRA { //NAS-securityParamFromEUTRA is the 4 least significant bits of the NAS downlink COUNT value according to Table 13.1.4.3.3-6 v_NasCountDL := f_EUTRA_SS_NAS_CountGetDLNext(); v_Nas_SecurityParamFromEUTRA := substr(v_NasCountDL, 3, 1); + f_EUTRA_SS_NAS_CountSet(v_NasCountDL,omit); //@sic R5s141218 sic@ // @siclog "Step 31" siclog@ // The SS transmits a MobilityFromEUTRACommand message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, @@ -769,7 +732,7 @@ module ASRVCC_EUTRA { cs_MobilityFromEutraCommand_Handover(tsc_RRC_TI_Def, false, //@sic R5-142880 sic@ utra, v_HandoverToUtranCommand, v_Nas_SecurityParamFromEUTRA, omit))); - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian ( eutra_Cell1,-,-, 100 ); // + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(eutra_Cell1); v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1, tsc_C_RNTI_Def); @@ -813,7 +776,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); // Create cell and send out system information f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); //@sic R5s140459 sic@ - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ //f_IRAT_WaitForCoOrd_Trigger(UTRAN); // wait for UTRAN side to do pre-preamble @sic R5s110776 sic@ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); //@sic R5s140459 sic@ @@ -938,7 +901,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -1017,33 +980,19 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Step 13-14 (TS 36.508 4.5A.10.3-1)" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); - // @siclog "Step 16" siclog@ + // @siclog "Step 16-17" siclog@ // The SS transmits an RRCConnectionReconfiguration message on Cell 1 to setup inter RAT measurement and reporting for event B2. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, - cs_TimingInfo_Now, - v_Reconfig)); // @sic R5-144670 sic@ + // The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. + //@sic R5s150527 sic@ + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, v_Reconfig); + - // @siclog "Step 17" siclog@ - // The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); // @siclog "Step 18" siclog@ // The SS changes the power level for Cell 1 and Cell 5 according to the row "T1" in table 13.4.3.7.3.2-1 @@ -1082,7 +1031,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); //@sic R5s140478 sic@ // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ // f_IRAT_WaitForCoOrd_Trigger(UTRAN); // wait for UTRAN preamble to complete f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); ////@sic R5s140478 sic@ @@ -1162,22 +1111,9 @@ module ASRVCC_EUTRA { f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); // @sic R5s140478 subject to prose CR approval sic@ - //@siclog "Step 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // @sic R5s140604 sic@ @@ -1216,7 +1152,7 @@ module ASRVCC_EUTRA { { // Inter-system mobility / E-UTRA PS voice + PS data to UTRA CS voice + PS data / aSRVCC / MT call f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -1294,16 +1230,12 @@ module ASRVCC_EUTRA { // Make the UE attempt an IMS speech call f_EUTRA_GenericIMS_MT_SpeechCall(eutra_Cell1); - // @siclog "Step 24" siclog@ + // @siclog "Step 24-25" siclog@ // The SS transmits an RRCConnectionReconfiguration message on Cell 1 to setup inter RAT measurement and reporting for event B2. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, - cs_TimingInfo_Now, - v_Reconfig)); // @sic R5-144670 sic@ - - // @siclog "Step 25" siclog@ // The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); - + //@sic R5s150527 sic@ + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, v_Reconfig); + // @siclog "Step 26" siclog@ // The SS changes the power level for Cell 1 and Cell 5 according to the row "T1" in table 13.4.3.10.3.2-1 f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); @@ -1340,7 +1272,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140697 sic@ // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -85); @@ -1408,22 +1340,9 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - // @siclog "Step 13" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 14" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 13-14" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -1482,7 +1401,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140711 sic@ f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -1551,22 +1470,9 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - // @siclog "Step 13" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 14" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 13-14" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + // Steps 5 to 11 in Annex C.21 are executed // C.27 is executed //Wait for completion of IMS signalling @@ -1632,7 +1538,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140697 sic@ f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -65); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -65); @@ -1670,11 +1576,7 @@ module ASRVCC_EUTRA { var PhysCellId v_PhysicalCellIdentity_Cell1:= f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1);//Get cell specific parameters for Cell 1 var EUTRA_SecurityParams_Type v_AuthParams; var template (value) DL_DCCH_Message v_Meas; - var template RRCConnectionReestablishmentComplete_v920_IEs v_ReestCompleteExt := cr_RRCConnectionReestablishmentComplete_v920_IEs(cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny ifpresent); - if (f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease() == rel8 or f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease() == rel9) { // @sic R5s140699 sic@ - v_ReestCompleteExt := cr_RRCConnectionReestablishmentComplete_v920_IEs(cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny ifpresent) ifpresent; - } //Coordinate with GERAN component to receive GERAN frequencies v_GERANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(GERAN); v_GERANSysInfof12 := f_IRAT_WaitForCoOrd_SysInfo(GERAN); @@ -1708,22 +1610,9 @@ module ASRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - // @siclog "Step 13" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 14" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 13-14" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -1737,8 +1626,6 @@ module ASRVCC_EUTRA { v_GERAN_ARFCN_f11, v_BandIndicatorGERAN_Cell24, f_ConvertGERANNeighCell (v_GERANSysInfof12.Geran[0].Arfcn, v_GERANSysInfof13.Geran[0]. Arfcn)); - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold1.threshold_RSRP := (-90 + 140); // @sic R5s140697 sic@ - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold2.b2_Threshold2GERAN := (-100 + 110); // @sic R5s140697 sic@ SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, @@ -1763,6 +1650,7 @@ module ASRVCC_EUTRA { // Turn GERAN cell off f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); + f_IRAT_WaitForCoOrd_Trigger(GERAN); // @sic R5s140917 sic@ //@siclog "Step 21 - 22 Void" siclog@ @@ -1778,7 +1666,7 @@ module ASRVCC_EUTRA { omit, cs_MobilityFromEUTRACommand_v8a0_IEs(v_BandIndicatorGERAN_Cell24)))); - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian ( eutra_Cell1, -,-, 100 ); // @sic R5s140043, R5s140699 sic@ + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(eutra_Cell1); // @sic R5s140043, R5s140699 sic@ v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1, tsc_C_RNTI_Def); // @sic R5s140043 sic@ @@ -1801,7 +1689,7 @@ module ASRVCC_EUTRA { // @siclog "Step 26" siclog@ // The UE transmits an RRCConnectionReestablishmentComplete on Cell 1 - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def, v_ReestCompleteExt))); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def))); // @sic R5-145689 sic@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. @@ -1828,7 +1716,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140703 sic@ // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -85); @@ -1844,7 +1732,7 @@ module ASRVCC_EUTRA { } // function f_TC_13_4_3_27_EUTRA /* - * @desc + * @desc test body of TC_13_4_3_27 * @status APPROVED (LTE_A) */ function fl_TC_13_4_3_27_Body() runs on EUTRA_PTC @@ -1953,7 +1841,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140705 sic@ f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -65); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -65); @@ -1965,7 +1853,7 @@ module ASRVCC_EUTRA { f_EUTRA_TestBody_Set(false); f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); - } // function f_TC_13_4_3_28_EUTRA + } /* * @desc test body of TC_13_4_3_28 @@ -1991,11 +1879,6 @@ module ASRVCC_EUTRA { var PhysCellId v_PhysicalCellIdentity_Cell1:= f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1);//Get cell specific parameters for Cell 1 var EUTRA_SecurityParams_Type v_AuthParams; var template (value) DL_DCCH_Message v_Meas; - var template RRCConnectionReestablishmentComplete_v920_IEs v_ReestCompleteExt := cr_RRCConnectionReestablishmentComplete_v920_IEs(cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny ifpresent); - - if (f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease() == rel8 or f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease() == rel9) { // @sic R5s140699 sic@ - v_ReestCompleteExt := cr_RRCConnectionReestablishmentComplete_v920_IEs(cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny ifpresent) ifpresent; - } //Coordinate with GERAN component to receive GERAN frequencies v_GERANSysInfo := f_IRAT_WaitForCoOrd_SysInfo (GERAN); @@ -2041,8 +1924,6 @@ module ASRVCC_EUTRA { v_GERAN_ARFCN_f11, v_BandIndicatorGERAN_Cell24, f_ConvertGERANNeighCell (v_GERANSysInfof12.Geran[0].Arfcn, v_GERANSysInfof13.Geran[0]. Arfcn)); - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold1.threshold_RSRP := (-90 + 140); // @sic R5s140697 sic@ - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold2.b2_Threshold2GERAN := (-100 + 110); // @sic R5s140697 sic@ SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, @@ -2068,6 +1949,7 @@ module ASRVCC_EUTRA { // @siclog "Step 28" siclog@ // The SS changes the power level for Cell 24 according to the row "T2" f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); + f_IRAT_WaitForCoOrd_Trigger(GERAN); // @sic R5s140918 sic@ //@siclog "Step 29 - 30 Void" siclog@ @@ -2084,7 +1966,7 @@ module ASRVCC_EUTRA { cs_MobilityFromEUTRACommand_v8a0_IEs(v_BandIndicatorGERAN_Cell24)))); - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian ( eutra_Cell1, -,-, 100 ); + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(eutra_Cell1); v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1, tsc_C_RNTI_Def); @@ -2106,7 +1988,7 @@ module ASRVCC_EUTRA { // @siclog "Step 34" siclog@ // The UE transmits an RRCConnectionReestablishmentComplete on Cell 1 - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def, v_ReestCompleteExt))); // @sic R5-144675 sic@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def))); // @sic R5-144675, R5-145689 sic@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. @@ -2132,7 +2014,7 @@ module ASRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140714 sic@ f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); @@ -2243,6 +2125,7 @@ module ASRVCC_EUTRA { f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // If we get here, the parallel behaviour on the IMS PTC must have completed successfully f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 28"); + f_EUTRA_DeactivateEPS_BearerContext (eutra_Cell1, tsc_EpsDedicatedBearerId); // @sic R5s141146 subject to prose CR approval sic@ f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); } // function fl_TC_13_4_3_30_Body diff --git a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn index 91952c9..052c478 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_GERAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-03 19:05:53 +0200 (Thu, 03 Sep 2015) $ +// $Rev: 14170 $ /******************************************************************************/ module ASRVCC_EUTRA_GERAN @@ -68,7 +68,7 @@ module ASRVCC_EUTRA_GERAN //@siclog "Step 26-40" siclog@ f_GERAN_CC_Disconnect ( geran_Cell24, v_TchType ); f_G_ChannelRelease (geran_Cell24, tsc_TchCh, v_TchType, 15); // @sic R5s140697 sic@ - f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, false, -, -, true); // @sic R5s140697 sic@ + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, true); // @sic R5s140697, R5s150249, R5-153114 sic@ f_GERAN_TestBody_Set(false); @@ -121,7 +121,7 @@ module ASRVCC_EUTRA_GERAN //@siclog "Step 27-41" siclog@ f_GERAN_CC_Disconnect ( geran_Cell24, v_TchType ); f_G_ChannelRelease (geran_Cell24, tsc_TchCh, v_TchType, 15); - f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, false, -, -, true); + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, true); // @sic R5s150249, R5-153114 sic@ f_GERAN_TestBody_Set(false); @@ -165,6 +165,8 @@ module ASRVCC_EUTRA_GERAN f_IRAT_WaitForCoOrd_Trigger (EUTRA); //Set cell power according to "T2" f_GERAN_SetCellPowerLevel (geran_Cell24, tsc_GERAN_ChPwrLvl_Off); + f_Delay (1.0); // Add a delay to ensure cell is turned off @sic R5s141384 sic@ + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // @sic R5s140917 sic@ // End of the test for GERAN f_GERAN_TestBody_Set(false); @@ -238,7 +240,7 @@ module ASRVCC_EUTRA_GERAN // @siclog "Step 38-52" siclog@ f_GERAN_CC_Disconnect ( geran_Cell24, v_ChannelType ); f_G_ChannelRelease (geran_Cell24, tsc_TchCh, v_ChannelType, 15); // @sic R5s140703 sic@ - f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, false, -, -, true); // @sic R5s140703 sic@ + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, true); // @sic R5s140703, R5s150249, R5-153114 sic@ f_GERAN_TestBody_Set(false); @@ -282,6 +284,8 @@ module ASRVCC_EUTRA_GERAN f_IRAT_WaitForCoOrd_Trigger (EUTRA); //Set cell power according to "T2" f_GERAN_SetCellPowerLevel (geran_Cell24, tsc_GERAN_ChPwrLvl_Off); + f_Delay (1.0); // Add a delay to ensure cell is turned off @sic R5s141384 sic@ + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // @sic R5s140918 sic@ // End of the test for GERAN f_GERAN_TestBody_Set(false); @@ -315,20 +319,16 @@ module ASRVCC_EUTRA_GERAN //Receive updated auth parameters f_GERAN_InterRAT_InitialiseAuthParams(); - //Create the physical channel in GERAN cell - f_GERAN_CreateTCH(geran_Cell24); - //Set cell power according to "T1" f_IRAT_WaitForCoOrd_Trigger(EUTRA); f_GERAN_SetCellPowerLevel(geran_Cell24, -65); - f_GERAN_SetChPwrLevel(geran_Cell24, tsc_TchCh, -65); f_IRAT_WaitForCoOrd_Trigger(EUTRA); // End of the test for GERAN f_GERAN_TestBody_Set(false); //Perform postamble - f_GERAN_SS_CellRelease(geran_Cell24, -, true); // @sic R5s140699 sic@ + f_GERAN_SS_CellRelease(geran_Cell24); // @sic R5s140699, R5s150416 sic@ } } diff --git a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn index 5621c4c..d3115c9 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_IMS.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module ASRVCC_EUTRA_IMS { @@ -17,7 +17,6 @@ module ASRVCC_EUTRA_IMS { import from IMS_Procedures_Common all; import from IMS_Procedures_Registration all; import from IMS_Procedures_CallControl all; - import from IMS_ASP_TypeDefs all; import from IMS_ASP_Templates all; import from IMS_SIP_Templates all; import from IP_ASP_TypeDefs all; @@ -27,23 +26,22 @@ module ASRVCC_EUTRA_IMS { import from IMS_CommonSRVCC all; /* - * @desc + * @desc Steps 5 to 11 of MO Call Setup procedure C21 * @param p_InviteRequestWithSdp * @param p_MessageHeader_Prev183Response - * @param p_GeolocationInfo (default value: false) + * @return SDP_Message * @status APPROVED (LTE_A) */ function fl_IMS_MOCallSetup_AnnexC21_Steps5To11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - MessageHeader p_MessageHeader_Prev183Response, - boolean p_GeolocationInfo := false) runs on IMS_PTC return SDP_Message + MessageHeader p_MessageHeader_Prev183Response) runs on IMS_PTC return SDP_Message { /* @sic R5s140686, R5-144755: returns latest SDP message sent by the UE sic@ */ - var SDP_Message v_LatestSDP := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response, p_GeolocationInfo); + var SDP_Message v_LatestSDP := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, p_MessageHeader_Prev183Response); f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp); return v_LatestSDP; } /* - * @desc + * @desc Generic Procedure for forked response, C.27 * @param p_InviteRequestWithSdp * @param p_PrevSDP_Message * @return SDP_Message @@ -66,7 +64,7 @@ module ASRVCC_EUTRA_IMS { v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step4(p_InviteRequestWithSdp); // @siclog "Step 2 - 5" siclog@ - v_SDP_LatestOffer := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, v_MessageHeader_Response183, -, -, p_PrevSDP_Message); + v_SDP_LatestOffer := f_IMS_MOCallSetup_AnnexC21_Steps5_8(p_InviteRequestWithSdp, v_MessageHeader_Response183, -, p_PrevSDP_Message); // @siclog "Step 6 - 8" siclog@ f_IMS_MOCallSetup_AnnexC21C25_Step9_11(p_InviteRequestWithSdp); @@ -84,15 +82,16 @@ module ASRVCC_EUTRA_IMS { * @status APPROVED (LTE_A) */ function f_IMS_MTCallSetup_AnnexC11_Steps5_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, - IMS_Response_Type p_SessionInProgress183) runs on IMS_PTC - { - var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.msgHeader; + IMS_ResponseWithSdp_Type p_SessionInProgress183) runs on IMS_PTC + { /* @sic R5-153798: p_SessionInProgress183 changed to IMS_ResponseWithSdp_Type sic@ */ + + var MessageHeader v_MessageHeader_PrevReliableResponse := p_SessionInProgress183.Response.msgHeader; // Step 5 - 6. Send PRACK, Receive 200 OK f_IMS_MTCallSetup_SendPRACK_ReceiveOK(p_InviteRequestWithSdp.Invite, v_MessageHeader_PrevReliableResponse); // Step 7 - 11. Send UPDATE, Receive 200 OK, Receive optional 180 Ringing and send PRACK if requested - f_IMS_MTCallSetup_AnnexC11_Steps7_11(p_InviteRequestWithSdp); + f_IMS_MTCallSetup_AnnexC11_Steps7_11(p_InviteRequestWithSdp, p_SessionInProgress183); }; /* @@ -103,20 +102,18 @@ module ASRVCC_EUTRA_IMS { { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_Response_Type v_SessionInProgress183; //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_ResponseWithSdp); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); } @@ -185,7 +182,7 @@ module ASRVCC_EUTRA_IMS { f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s140572 sic@ v_LatestSDP := fl_IMS_MOCallSetup_AnnexC21_Steps5To11(v_InviteRequestWithSdp, v_MessageHeader_Response183); - f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + // @sic R5s150799 sic@ f_IMS_IPCAN_WaitForTrigger(IPCAN); @@ -276,7 +273,6 @@ module ASRVCC_EUTRA_IMS { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ var MessageHeader v_MessageHeader_Invite; var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_Response_Type v_SessionInProgress183; var SipUrl v_ContactUrl; var template (value) MessageHeader v_MessageHeader_Ack; var InternetProtocol_Type v_Protocol; @@ -294,14 +290,13 @@ module ASRVCC_EUTRA_IMS { f_IMS_IPCAN_WaitForTrigger(IPCAN); v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_ResponseWithSdp); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); @@ -332,7 +327,6 @@ module ASRVCC_EUTRA_IMS { { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ var MessageHeader v_RequestHeader_Invite; - var IMS_Response_Type v_SessionInProgress183; var IMS_ResponseWithSdp_Type v_ResponseWithSdp; var SipUrl v_ContactUrl; //var template (value) MessageHeader v_MessageHeader_Ack; @@ -352,7 +346,6 @@ module ASRVCC_EUTRA_IMS { v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); //@sic R5s140459 sic@ v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; v_RequestHeader_Invite := v_InviteRequestWithSdp.Invite.msgHeader; v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); @@ -361,7 +354,7 @@ module ASRVCC_EUTRA_IMS { //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_SessionInProgress183 );//@sic R5s140459 sic@ + f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_ResponseWithSdp);//@sic R5s140459 sic@ // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); @@ -392,6 +385,7 @@ module ASRVCC_EUTRA_IMS { { // Inter-system mobility / E-UTRA PS voice + PS data to UTRA CS voice + PS data / aSRVCC / MO call var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: IMS_InviteRequestWithSdp_Type instead of IMS_DATA_REQ */ var MessageHeader v_MessageHeader_Response183; + var boolean v_DeregisteredEarly := false; f_IMS_PTC_Init(); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s140587 sic@ @@ -418,11 +412,17 @@ module ASRVCC_EUTRA_IMS { f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_PTC_SetRanType(UTRAN_FDD); - f_IMS_IPCAN_WaitForTrigger(OtherIPCAN); - f_IMS_SRVCC_RemoveEarlyDialogMO_AnnexC34(v_InviteRequestWithSdp); // @sic R5-144745 sic@ + v_DeregisteredEarly := f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-154047 sic@ - f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); - f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-142919 sic@ + f_IMS_IPCAN_WaitForTrigger(OtherIPCAN); + if (not v_DeregisteredEarly) { // @sic R5-154047 sic@ + f_IMS_SRVCC_RemoveEarlyDialogMO_AnnexC34(v_InviteRequestWithSdp); // @sic R5-144745 sic@ + f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); + v_DeregisteredEarly := f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-142919 sic@ + } else { + f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); // Still need to tell UTRAN to close down + f_IMS_IPCAN_WaitForTrigger(OtherIPCAN); // Already done deregistration, so trigger sent during UTRAN postamble needs to be swallowed here + } } /* @@ -479,7 +479,7 @@ module ASRVCC_EUTRA_IMS { { // Inter-system mobility / E-UTRA PS voice + PS data to UTRA CS voice + PS data / aSRVCC / MT call var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_Response_Type v_SessionInProgress183; + var boolean v_DeregisteredEarly := false; f_IMS_PTC_Init(); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s140587 sic@ @@ -495,22 +495,30 @@ module ASRVCC_EUTRA_IMS { v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_ResponseWithSdp); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_PTC_SetRanType(UTRAN_FDD); - f_IMS_SRVCC_RemoveEarlyDialogMT_AnnexC35(v_InviteRequestWithSdp); // @sic R5-144670 sic@ f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); - f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-142919 sic@ + v_DeregisteredEarly := f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-154047 sic@ + + f_IMS_IPCAN_WaitForTrigger(OtherIPCAN); // @sic R5s140835 sic@ + if (not v_DeregisteredEarly) { // @sic R5-154047 sic@ + f_IMS_SRVCC_RemoveEarlyDialogMT_AnnexC35(v_InviteRequestWithSdp); // @sic R5-144670 sic@ + f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); + v_DeregisteredEarly := f_IMS_IpcanReleaseWithOptionalDeregistrationOtherIPCAN(); // @sic R5-142919 sic@ + } else { + f_IMS_IPCAN_SendCoOrdMsg(OtherIPCAN); // Still need to tell UTRAN to close down + f_IMS_IPCAN_WaitForTrigger(OtherIPCAN); // Already done deregistration, so trigger sent during UTRAN postamble needs to be swallowed here + } } /* @@ -622,6 +630,7 @@ module ASRVCC_EUTRA_IMS { f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp); + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); // @sic R5s141009 sic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); } // f_TC_13_4_3_26_IMS1 @@ -654,7 +663,7 @@ module ASRVCC_EUTRA_IMS { { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_Response_Type v_SessionInProgress183; + var SipUrl v_ContactUrl; f_IMS_PTC_Init(); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s140587 sic@ @@ -665,14 +674,14 @@ module ASRVCC_EUTRA_IMS { f_IMS_IPCAN_WaitForTrigger(IPCAN); v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; + v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); // @sic R5-145340 sic@ // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_ResponseWithSdp); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); @@ -688,8 +697,10 @@ module ASRVCC_EUTRA_IMS { */ f_IMS_SRVCC_AnnexC28(v_InviteRequestWithSdp.Invite); + f_UT_AnswerCall(MMI); // @sic R5s141361 sic@ // Steps 12-13 expected sequence defined in annex C.21 of TS 34.229-1 f_IMS_MTCallSetup_Common_Steps12_13(v_InviteRequestWithSdp); + f_IMS_CallReleaseMT(v_InviteRequestWithSdp.Invite, v_ContactUrl); // @sic R5-145340 sic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); @@ -703,7 +714,7 @@ module ASRVCC_EUTRA_IMS { { var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; /* @sic R5w140112: v_InviteRequestWithSdp instead of v_InviteRequest sic@ */ var IMS_ResponseWithSdp_Type v_ResponseWithSdp; - var IMS_Response_Type v_SessionInProgress183; + var SipUrl v_ContactUrl; f_IMS_PTC_Init(); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s140587 sic@ @@ -714,14 +725,14 @@ module ASRVCC_EUTRA_IMS { f_IMS_IPCAN_WaitForTrigger(IPCAN); v_InviteRequestWithSdp := f_IMS_MTCallSetup_AnnexC11_INVITE(); v_ResponseWithSdp := f_IMS_MTCallSetup_AnnexC11_Steps1_4(v_InviteRequestWithSdp); - v_SessionInProgress183 := v_ResponseWithSdp.Response; - + v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); // @sic R5s141146 sic@ + // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); //Wait for Co-ordination message from EUTRA f_IMS_IPCAN_WaitForTrigger(IPCAN); - f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_SessionInProgress183); + f_IMS_MTCallSetup_AnnexC11_Steps5_11(v_InviteRequestWithSdp, v_ResponseWithSdp); // Inform EUTRA: IMS Call established. f_IMS_IPCAN_SendCoOrdMsg(IPCAN); @@ -744,6 +755,7 @@ module ASRVCC_EUTRA_IMS { // @siclog "Steps 31 - 32" siclog@ f_IMS_MTCallSetup_Common_Steps12_13(v_InviteRequestWithSdp); + f_IMS_CallReleaseMT(v_InviteRequestWithSdp.Invite, v_ContactUrl); // @sic R5s141146 v vsic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); diff --git a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn index 6338f33..32ca088 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/ASRVCC_EUTRA_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 15:44:40 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14462 $ /******************************************************************************/ module ASRVCC_EUTRA_UTRAN { @@ -17,8 +17,9 @@ module ASRVCC_EUTRA_UTRAN { import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_ASP_Definitions language "ASN.1:2002" all; import from UTRAN_Component all; + import from UTRAN_IRAT_CommonFunctions all; import from UTRAN_CommonFunctions all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; //import from UTRAN_RRC_Templates all; import from UTRAN_TTCN_ASP_Templates all; import from UTRAN_CommonDefs all; @@ -224,6 +225,7 @@ module ASRVCC_EUTRA_UTRAN { //@siclog "Step 20" siclog@ // Set Cell Power level as per T2 - Cell Off f_UTRAN_SetCellPower(utran_Cell5, tsc_AttenuationCellOFF); + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s140835 sic@ f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); } // f_TC_13_4_3_9_UTRAN @@ -345,7 +347,7 @@ module ASRVCC_EUTRA_UTRAN { //@siclog "Step 28" siclog@ // Set Cell Power level as per T2 - Cell Off f_UTRAN_SetCellPower(utran_Cell5, tsc_AttenuationCellOFF); - f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); //@sic R5s140492 sic@ + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s140835 sic@ f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); } @@ -447,7 +449,7 @@ module ASRVCC_EUTRA_UTRAN { f_UTRAN_IP_Handling_Change_Configuration (utran_CellDedicated, cell_DCH_64kPS_RAB_SRB); // @sic R5s140572 sic@ f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // Tell SS to transmit a MobilityFromEUTRACommand message - f_UTRAN_SRVCC_WithHandover(utran_Cell5, -, true, '0'B); // @sic R5-144745 sic@ + f_UTRAN_SRVCC_WithHandover(utran_Cell5, cs_PDP_ContextStatusNSAPI5, true, '0'B); // @sic R5-144745, R5-150398 sic@ v_TI_S.tiVal := '000'B; v_TI_S.tiFlag := '0'B; @@ -461,6 +463,7 @@ module ASRVCC_EUTRA_UTRAN { U_Dc.receive (car_UplinkDirectTransfer(utran_CellDedicated, tsc_RB3, cr_U_ConnAck(v_TI_R))); f_UTRAN_PreliminaryPass(__FILE__, __LINE__, "Step 31"); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // new optional deregistration waits for a trigger @sic R5-154047 sic@ f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // @sic R5-144745 sic@ f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // Tell to EUTRA PTC Test case is now finished on E-UTRA side @@ -567,7 +570,7 @@ module ASRVCC_EUTRA_UTRAN { f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // Tell SS to transmit a MobilityFromEUTRACommand message // @siclog "Steps 32 to 37" siclog@ //according to 36.508 cl. 6.4.3.9.5, - f_UTRAN_SRVCC_WithHandover(utran_Cell5, -, true, '0'B); // @sic R5-144670 sic@ + f_UTRAN_SRVCC_WithHandover(utran_Cell5, cs_PDP_ContextStatusNSAPI5, true, '0'B); // @sic R5-144670, R5-150398 sic@ f_UT_AnswerCall ( UT ); @@ -582,6 +585,7 @@ module ASRVCC_EUTRA_UTRAN { //@siclog "Step 39" siclog@ U_Dc.send(cas_DataReq_CS(utran_CellDedicated, tsc_RB3, cs_U_ConnectAck(v_TI_S))); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // new optional deregistration waits for a trigger @sic R5-154047 sic@ f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // @sic R5-144670 sic@ f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); diff --git a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA.ttcn similarity index 79% rename from LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA.ttcn index 275787f..4f4ebf4 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA.ttcn @@ -2,16 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 19:42:26 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14358 $ /******************************************************************************/ module BSRVCC_EUTRA { - - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_SRVCC all; import from EUTRA_Component all; @@ -23,7 +21,7 @@ module BSRVCC_EUTRA { import from GERAN_SRVCC all; import from EUTRA_SecuritySteps all; import from EUTRA_CommonProcedures all; - import from EPS_NAS_TypeDefs all; + import from EUTRA_InitialRegistration all; import from EUTRA_RRCSteps all; import from EUTRA_ConfigurationSteps all; import from CommonDefs all; @@ -49,7 +47,7 @@ module BSRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); // T0 @@ -129,22 +127,9 @@ module BSRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Step 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + // Steps 5 to 8 in Annex C.21 are executed //Wait for completion of IMS signalling (Steps 5 to 8 in Annex C.21) f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -195,7 +180,7 @@ module BSRVCC_EUTRA { f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); // T0 @@ -272,25 +257,11 @@ module BSRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Step 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + // Steps 5 to 8 in Annex C.21 are executed //Wait for completion of IMS signalling (Steps 5 to 8 in Annex C.21) - f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // @siclog "Step 16" siclog@ @@ -330,6 +301,7 @@ module BSRVCC_EUTRA { f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // If we get here, the parallel behaviour on the IMS PTC must have completed successfully f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 24"); + f_EUTRA_DeactivateEPS_BearerContext (eutra_Cell1, tsc_EpsDedicatedBearerId); // @sic R5s141362 sic@ } // function fl_TC_13_4_3_19_Body @@ -344,7 +316,7 @@ module BSRVCC_EUTRA { f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -60); // T0 @@ -354,6 +326,7 @@ module BSRVCC_EUTRA { // Postamble f_EUTRA_TestBody_Set(false); + f_EUTRA_DeactivateEPS_BearerContext (eutra_Cell1, tsc_EpsDedicatedBearerId); // @sic R5s141372 sic@ f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); } // function f_TC_13_4_3_20_EUTRA @@ -428,22 +401,8 @@ module BSRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - //@siclog "Step 14" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 15" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 14-15" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ // Steps 5 to 8 in Annex C.21 are executed //Wait for completion of IMS signalling (Steps 5 to 8 in Annex C.21) @@ -480,13 +439,15 @@ module BSRVCC_EUTRA { //NAS-securityParamFromEUTRA is the 4 least significant bits of the NAS downlink COUNT value according to Table 13.1.4.3.3-6 v_NasCountDL := f_EUTRA_SS_NAS_CountGetDLNext(); v_Nas_SecurityParamFromEUTRA := substr(v_NasCountDL, 3, 1); + f_EUTRA_SS_NAS_CountSet(v_NasCountDL,omit); // @sic R5s141372 sic@ + // @siclog "Step 23" siclog@ // The SS transmits a MobilityFromEUTRACommand message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_MobilityFromEutraCommand_Handover(tsc_RRC_TI_Def, false, utra, v_HandoverToUtranCommand, v_Nas_SecurityParamFromEUTRA, omit))); - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian ( eutra_Cell1,-,-, 100 ); // + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(eutra_Cell1); v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1, tsc_C_RNTI_Def); @@ -494,7 +455,7 @@ module BSRVCC_EUTRA { SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, v_PhysicalCellIdentity_Cell1, - cr_ReestablishmentCause_HandoverFailure))); // @sic R5s140735 subject to prose CR approval sic@ + cr_ReestablishmentCause_HandoverFailure))); // @sic R5s140735 sic@ // Activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB v_AuthParams := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell1, f_EUTRA_Security_Get(), v_NextHopChainingCount); //@sic R5100744 sic@ @@ -513,6 +474,8 @@ module BSRVCC_EUTRA { f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // To excute IMS parallel behaviour in Table 13.4.3.9.3.2-4 f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // Wait for IMS to complete + // If we get here, the parallel behaviour on the IMS PTC must have completed successfully + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 33"); } // function fl_TC_13_4_3_20_Body @@ -525,7 +488,7 @@ module BSRVCC_EUTRA { f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140747 subject to prose CR approval sic@ // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -85); @@ -594,22 +557,9 @@ module BSRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - // @siclog "Step 13" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 14" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 13-14" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -664,9 +614,9 @@ module BSRVCC_EUTRA { function f_TC_13_4_3_22_EUTRA() runs on EUTRA_PTC { // Inter-system mobility / E-UTRA PS voice to GERAN CS voice / aSRVCC / MO call / SRVCC HO Cancelled - f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140752 subject to prose CR approval sic@ + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140752 sic@ // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -85); @@ -734,22 +684,9 @@ module BSRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - // @siclog "Step 13" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 14" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 13-14" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -762,8 +699,7 @@ module BSRVCC_EUTRA { v_BandIndicatorGERAN_Cell24, f_ConvertGERANNeighCell (v_GERANSysInfof12.Geran[0].Arfcn, v_GERANSysInfof13.Geran[0]. Arfcn)); - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold1.threshold_RSRP := (-90 + 140); // @sic R5s140697 sic@ - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold2.b2_Threshold2GERAN := (-100 + 110); // @sic R5s140697 sic@ + v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold2.b2_Threshold2GERAN := (-90 + 110); // @sic R5s140697, R5-145696 sic@ // @siclog "Step 15" siclog@ // The SS transmits an RRCConnectionReconfiguration message on Cell 1 to setup inter RAT measurement and reporting for event B2. @@ -815,10 +751,10 @@ module BSRVCC_EUTRA { function f_TC_13_4_3_23_EUTRA() runs on EUTRA_PTC { // Inter-system mobility / E-UTRA voice to GSM CS voice / bSRVCC / MO call / SRVCC HO Failure - f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140737 subject to prose CR approval sic@ + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); // @sic R5s140737 sic@ // Create cell and send out system information - f_EUTRA_CellConfig_DefPlusUM_RoHC(eutra_Cell1); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_SetCellPower(eutra_Cell1, -85); @@ -856,12 +792,7 @@ module BSRVCC_EUTRA { var PhysCellId v_PhysicalCellIdentity_Cell1:= f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1);//Get cell specific parameters for Cell 1 var EUTRA_SecurityParams_Type v_AuthParams; var template (value) DL_DCCH_Message v_Meas; - var template RRCConnectionReestablishmentComplete_v920_IEs v_ReestCompleteExt := cr_RRCConnectionReestablishmentComplete_v920_IEs(cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny ifpresent); - if (f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease() == rel8 or f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease() == rel9) { // @sic R5s140699 sic@ - v_ReestCompleteExt := cr_RRCConnectionReestablishmentComplete_v920_IEs(cr_RRCConnectionReestablishmentComplete_v8a0_IEsAny ifpresent) ifpresent; - } - //Coordinate with GERAN component to receive GERAN frequencies v_GERANSysInfo := f_IRAT_WaitForCoOrd_SysInfo (GERAN); v_GERANSysInfof12 := f_IRAT_WaitForCoOrd_SysInfo (GERAN); @@ -895,22 +826,9 @@ module BSRVCC_EUTRA { */ f_EUTRA_GenericIMS_MO_SpeechCallInitiation(eutra_Cell1); - // @siclog "Step 13" siclog@ - f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig(eutra_Cell1, - tsc_RRC_TI_Def, - {tsc_DRB2}, - {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_ActDedicatedEPSBearerCxtReq(tsc_EpsDedicatedBearerId, - tsc_PTI_Unassigned, - cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), - cds_EPS_QoS_Dedicated_4, // @sic R5s140590 sic@ - f_EUTRA_Get_508_TrafficFlowTemplate(4, tsc_EpsDedicatedBearerId)))}, // @sic R5s140590 sic@ - UM_Mode); - - //@siclog "Step 14" siclog@ - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //@siclog "Step 13-14" siclog@ + f_EUTRA_ActivateDedicatedEpsBearer_Speech(eutra_Cell1); /* @sic R5-153746: loopback mode for RTP/RTCP; replacing f_EUTRA_RRCConnectionReconfigurationWithPiggyNAS_DrbReconfig sic@ */ + //Wait for completion of IMS signalling f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); @@ -924,8 +842,7 @@ module BSRVCC_EUTRA { v_GERAN_ARFCN_f11, v_BandIndicatorGERAN_Cell24, f_ConvertGERANNeighCell (v_GERANSysInfof12.Geran[0].Arfcn, v_GERANSysInfof13.Geran[0]. Arfcn)); - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold1.threshold_RSRP := (-90 + 140); // @sic R5s140697 sic@ - v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold2.b2_Threshold2GERAN := (-100 + 110); // @sic R5s140697 sic@ + v_Meas.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig.reportConfigToAddModList[0].reportConfig.reportConfigInterRAT.triggerType.event.eventId.eventB2.b2_Threshold2.b2_Threshold2GERAN := (-90 + 110); // @sic R5s140697, R5-145697 sic@ SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, @@ -965,7 +882,7 @@ module BSRVCC_EUTRA { omit, cs_MobilityFromEUTRACommand_v8a0_IEs(v_BandIndicatorGERAN_Cell24)))); - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintian ( eutra_Cell1, -,-, 100 ); + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync_PDCP_CountMaintained(eutra_Cell1); v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1, tsc_C_RNTI_Def); @@ -974,7 +891,7 @@ module BSRVCC_EUTRA { SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, v_PhysicalCellIdentity_Cell1, - cr_ReestablishmentCause_HandoverFailure, // @sic R5s140737 subject to prose CR approval sic@ + cr_ReestablishmentCause_HandoverFailure, // @sic R5s140737 sic@ v_ShortMAC_I))); // Activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB @@ -987,19 +904,19 @@ module BSRVCC_EUTRA { // @siclog "Step 23" siclog@ // The UE transmits an RRCConnectionReestablishmentComplete on Cell 1 - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def, v_ReestCompleteExt))); // @sic R5s140737 subject to prose CR approval sic@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def))); // @sic R5s140737, R5-145688 sic@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. + // @siclog "Step 1 of parallel behaviour" siclog@ + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // @sic R5-145698 sic@ // @siclog "Step 24-25" siclog@ f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs(eutra_Cell1, tsc_RRC_TI_Def); - // @siclog "Step 1 of parallel behaviour" siclog@ - f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); //Wait Trigger from IMS PTC f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // If we get here, the parallel behaviour on the IMS PTC must have completed successfully - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Parallel Behaviour Step 1"); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Parallel Behaviour Step 1, Step 26");// @sic R5-145698 sic@ f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); } // function fl_TC_13_4_3_23_Body diff --git a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn index de62947..3dbb165 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_GERAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-03 19:05:53 +0200 (Thu, 03 Sep 2015) $ +// $Rev: 14170 $ /******************************************************************************/ module BSRVCC_EUTRA_GERAN @@ -67,10 +67,9 @@ module BSRVCC_EUTRA_GERAN //@siclog "Step 21-41" siclog@ f_GERAN_CC_Disconnect ( geran_Cell24, v_TchType ); f_G_ChannelRelease (geran_Cell24, tsc_TchCh, v_TchType, 15); // @sic R5s140747 sic@ - f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, false, -, -, true); // @sic R5s140747 subject to prose CR approval sic@ - + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24, true); // @sic R5s140747, R5s150249, R5-153114 sic@ + f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); // @sic R5s141393 sic@ f_GERAN_TestBody_Set(false); - f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); //Perform postamble f_GERAN_Postamble(geran_Cell24, G1_IDLE, -, -, v_TchType); } // end of 13.4.3.21 diff --git a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn index 5b7ba30..9312de3 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_IMS.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-06-04 20:11:20 +0200 (Thu, 04 Jun 2015) $ +// $Rev: 13658 $ /******************************************************************************/ module BSRVCC_EUTRA_IMS { @@ -81,7 +81,6 @@ module BSRVCC_EUTRA_IMS { v_MessageHeader_Response183 := f_IMS_MOCallSetup_AnnexC21_Step3_4(v_InviteRequestWithSdp); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s140572 sic@ - f_IMS_IPCAN_WaitForTrigger(IPCAN); // prose says this will be in parallel to steps 16 & 17 f_IMS_MOCallSetup_AnnexC21_Steps5_8(v_InviteRequestWithSdp, v_MessageHeader_Response183); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // Inform EUTRA that IMS signalling up to Annex C21 Step 8 has been completed. @@ -91,8 +90,10 @@ module BSRVCC_EUTRA_IMS { f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // Send trigger so EUTRA PTC can set pass verdict // Steps 23 and 24 - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140750 subject to prose CR approval sic@ + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140750 sic@ f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp); + + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); // @sic R5s141362 sic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); } // f_TC_13_4_3_19_IMS1 @@ -132,9 +133,11 @@ module BSRVCC_EUTRA_IMS { f_IMS_IPCAN_WaitForTrigger(IPCAN); f_IMS_SRVCC_AnnexC28(v_InviteRequestWithSdp.Invite, v_MessageHeader_Response183); - //@siclog "Steps 29 and 30" siclog@ - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140735 subject to prose CR approval sic@ + //@siclog "Steps 29 and 33" siclog@ + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140735 sic@ f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp); + //@siclog "Steps 34" siclog@ + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); // @sic R5-150270, R5s150214 sic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); @@ -214,8 +217,9 @@ module BSRVCC_EUTRA_IMS { f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @siclog "Steps 23-24" siclog@ - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140752 subject to prose CR approval sic@ + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140752 sic@ f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp); + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); // @sic R5-151636 sic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); } // f_TC_13_4_3_22_IMS1 @@ -254,8 +258,9 @@ module BSRVCC_EUTRA_IMS { f_IMS_SRVCC_AnnexC28(v_InviteRequestWithSdp.Invite, v_MessageHeader_Response183); f_IMS_IPCAN_SendCoOrdMsg(IPCAN); - f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140737 subject to prose CR approval sic@ + f_IMS_MOCallSetup_AnnexC21C25_Step9_11(v_InviteRequestWithSdp); // @sic R5s140737 sic@ f_IMS_MOCallSetup_AnnexC21C25_Step12_13(v_InviteRequestWithSdp); + f_IMS_CallReleaseMO(v_InviteRequestWithSdp.Invite); // @sic R5-151636 sic@ f_IMS_IPCAN_SendCoOrdMsg(IPCAN); f_IMS_IpcanReleaseWithOptionalDeregistration(); } // f_TC_13_4_3_23_IMS1 diff --git a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn index 807b662..5020904 100644 --- a/LTE_A_IWD_14wk37/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/13/BSRVCC_EUTRA_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 15:44:40 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14462 $ /******************************************************************************/ module BSRVCC_EUTRA_UTRAN { @@ -16,8 +16,9 @@ module BSRVCC_EUTRA_UTRAN { import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_ASP_Definitions language "ASN.1:2002" all; import from UTRAN_Component all; + import from UTRAN_IRAT_CommonFunctions all; import from UTRAN_CommonFunctions all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_TTCN_ASP_Templates all; import from UTRAN_CommonDefs all; import from UTRAN_RAB_Functions all; @@ -26,6 +27,7 @@ module BSRVCC_EUTRA_UTRAN { import from UTRAN_CellInfo all; import from UTRAN_NAS_PDU_Templates all; import from NAS_CommonTypeDefs all; + import from NAS_24008Templates_IRAT all; //---------------------------------------------------------------------- // Test cases @@ -84,7 +86,9 @@ module BSRVCC_EUTRA_UTRAN { f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // Tell SS to transmit a MobilityFromEUTRACommand message //@siclog "Step 23-33" siclog@ - f_UTRAN_SRVCC_WithHandover(utran_Cell5, -, true); //@sic R5s140733 sic@ + + f_UTRAN_SRVCC_WithHandover(utran_Cell5, cs_PDP_ContextStatusNSAPI5, true, '0'B); //@sic R5s140733 R5-150399 sic@ + v_TI_S := {tiFlag := '0'B, tiVal := '000'B}; v_TI_R := {tiFlag := '1'B, tiVal := '000'B}; diff --git a/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA.ttcn new file mode 100644 index 0000000..a18cf4d --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA.ttcn @@ -0,0 +1,552 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ +/******************************************************************************/ + +module RSRVCC_EUTRA +{ + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from EUTRA_Component all; + import from EUTRA_CellInfo all; + import from EUTRA_CommonDefs all; + import from EUTRA_RRC_Templates all; + import from EUTRA_DRB_Templates all; + import from EUTRA_SRB_Templates all; + import from EUTRA_CellCfg_Templates all; + import from EUTRA_AspCommon_Templates all; + import from EUTRA_SecurityFunctions all; + import from EUTRA_SecuritySteps all; + import from EUTRA_CommonProcedures all; + import from EPS_NAS_MsgContainers all; + import from EUTRA_NASSteps all; + import from EUTRA_ConfigurationSteps all; + import from CommonDefs all; + import from EUTRA_IRATFunctions all; + import from CommonIratDefs all; + import from EUTRA_ASP_NasCtrl all; + import from IMS_PTC_CoordMsg all; + import from EUTRA_CommonSRVCC all; + import from EUTRA_AuxiliaryFunctions all; + import from EPS_NAS_Templates all; + import from EPS_NAS_Constants all; + import from EUTRA_RRCSteps all; + import from IMS_CommonDefs all; // Needed for f_EUTRA_ConfigureDiscardRtpRtcpData + import from CommonIP all; + import from IP_ASP_TypeDefs all; + import from IP_PTC_Templates all; + import from IP_PTC_CtrlMsgs all; + + /* + * @desc Configure routing table to discard RTP/RTCP packets on user + * @param p_CellId + * @param p_PdnIndex + * @status APPROVED (LTE_A) + */ + + function f_EUTRA_ConfigureDiscardRtpRtcpData(EUTRA_CellId_Type p_CellId, + PDN_Index_Type p_PdnIndex) runs on EUTRA_PTC + { + var PDN_AddressInfo_Type v_PDN_AddressInfo := f_PDN_AddressInfo_Get(p_PdnIndex); + var PortNumber_Type v_MediaPortRTP := tsc_IMS_MediaPort_M1; + var PortNumber_Type v_MediaPortRTCP := tsc_IMS_MediaPort_M1 + 1; + var IP_DrbId_Type v_DrbId; + + select (p_PdnIndex) { + case (PDN_1) { + v_DrbId := tsc_DRB1; + } + case else { + FatalError(__FILE__, __LINE__, ""); + } + } + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, v_MediaPortRTP, cs_IPv4Addr(v_PDN_AddressInfo.Remote_IPAddressIPv4), p_CellId, v_DrbId, discard); + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, v_MediaPortRTCP, cs_IPv4Addr(v_PDN_AddressInfo.Remote_IPAddressIPv4), p_CellId, v_DrbId, discard); + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, v_MediaPortRTP, cs_IPv6Addr(v_PDN_AddressInfo.Remote_IPAddressIPv6), p_CellId, v_DrbId, discard); + f_IP_ConfigureDiscardDataLoopbackData_EUTRA(IP, v_MediaPortRTCP, cs_IPv6Addr(v_PDN_AddressInfo.Remote_IPAddressIPv6), p_CellId, v_DrbId, discard); + } + + /* + * @desc Common Test Body + * @param p_Port + * @status APPROVED (LTE_A) + */ + function fl_EUTRA_RSRVCC_TestBody(IRAT_CO_ORD_PORT p_Port) runs on EUTRA_PTC + { + var EUTRA_SecurityParams_Type v_Auth_Params_Native; + var NasCountInfo_Type v_NasCountInfo; + var NasCount_Type v_NasCountUL; + var template (omit) DRX_Config v_DRX_Config; + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := omit; + var template (value) DRB_ToAddModList v_DRB_ToAddModList := {cs_508_DRB_ToAddMod_DEFAULT_UM(f_EUTRA_EpsBearerAssociatedDRB(tsc_EpsDedicatedBearerId))}; + var template (value) NAS_DL_Message_Type v_ActDedicatedEPSBearerCxtReq := f_EUTRA_508_ActDedicatedEPSBearerCxtReq_Speech(tsc_EpsDefaultBearerId, tsc_EpsDedicatedBearerId, PDN_1, false); + var template (value) NAS_MSG_RequestList_Type v_NAS_MsgList := {cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, v_ActDedicatedEPSBearerCxtReq)}; + + // @siclog "Step 1-5" siclog@ + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // Inform IMS to start Annex C.42 to exchange ATGW (Access Transfer Gateway) information + f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // Wait for IMS to complete Annex C.42 + + // @siclog "Step 6" siclog@ + f_EUTRA_RRC_ConnectionRelease(eutra_Cell1); + + // @siclog "Step 7" siclog@ + f_EUTRA_SetCellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE); // @sic R5-151774 sic@ + f_IRAT_SendCoOrd(p_Port, cms_IRAT_Trigger); + + // Backup Auth params and NAS count. + v_Auth_Params_Native := f_EUTRA_Security_Get(); + v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); + + // Update security params when authentication done on other side + f_EUTRA_InterRAT_InitialiseAuthParams (p_Port, true); // @sic R5s150704 sic@ + + //Make HO specific steps for interRAT HO + // Configure C-RNTI based contention resolution in target cell + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell1, tsc_C_RNTI_Def2, cs_RachProcedureConfig_CRNTI_Dedicated(f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell1), + f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); // @sic R5-123712 sic@ + + f_EUTRA_CellInfo_SetC_RNTI ( eutra_Cell1, tsc_C_RNTI_Def2 ); + + // activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(eutra_Cell1); // @sic R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ + + //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 1) + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_ULGrantAllocation_Def_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); + + // @siclog "Step 11" siclog@ + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_IRAT_SendCoOrd(p_Port, cms_IRAT_Trigger); // @sic R5s150704 sic@ + + // @siclog "Step 13" siclog@ + SRB.receive( car_SRB1_RrcPdu_IND( eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete( tsc_RRC_TI_Def ) ) ); + /* SS automatically checks that UE transmit an RRCConnectionReconfigurationComplete using the indicated + security key and the indicated security algortihms */ + f_EUTRA_PreliminaryPass( __FILE__, __LINE__, "Step 13" ); + + //Start periodic sending of TA command in target cell + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_Auto_Def, false)); // @sic R5s150704 sic@ + + // @siclog "Step 14" siclog@ + v_NasCountUL := f_EUTRA_508Check_TrackingAreaUpdating_AfterHO_Steps1to6 (eutra_Cell1,v_Auth_Params_Native, v_NasCountInfo); // @sic R5s150807 sic@ + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // Trigger IMS-PTC to receive INVITE @sic R5s150807 sic@ + f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); // @sic R5s150807 sic@ + f_EUTRA_508Check_TrackingAreaUpdating_AfterHO_Steps7to8 (eutra_Cell1, v_NasCountUL); // @sic R5s150807 sic@ + + // @siclog "Step 15" siclog@ + v_DRX_Config := f_GetUeDrxConfig(DRX_S); + v_MAC_MainConfig := cs_MAC_MainConfig_Explicit(cs_MAC_MainConfig_Common(-, v_DRX_Config)); /* @sic R5s140618 change 2 sic@ */ + if (isvalue(v_DRX_Config)) { + f_EUTRA_SS_DrxCtrlConfig(eutra_Cell1, cs_DrxCtrl_Config(valueof(v_DRX_Config))); /* configure DRX at the SS; @sic R5s140618 change 2 sic@ */ + } + SRB.send(cas_SRB1_RrcNasPduList_REQ(eutra_Cell1, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_DRB_Reconfig(tsc_RRC_TI_Def, + v_DRB_ToAddModList, + v_MAC_MainConfig), + v_NAS_MsgList)); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); // Trigger IMS-PTC to continue IMS signalling + // @siclog "Step 16" siclog@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + + //@siclog "Step 17" siclog@ + SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //Wait Trigger from IMS PTC + f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.31 + * @status + */ + function f_TC_13_4_3_31_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(GERAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_ConfigureDiscardRtpRtcpData(eutra_Cell1, PDN_1); + f_EUTRA_SetCellPower(eutra_Cell1, -60); + + f_EUTRA_SendAuthParameters (eutra_Cell1, GERAN); + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(GERAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.32 + * @status APPROVED (LTE_A) + */ + function f_TC_13_4_3_32_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo(f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def(eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_ConfigureDiscardRtpRtcpData(eutra_Cell1, PDN_1); + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_EUTRA_SendAuthParameters (eutra_Cell1, UTRAN); // @sic R5s150704 sic@ + + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(UTRAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.33 + * @status + */ + function f_TC_13_4_3_33_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / alwrting / rSRVCC / MO call*/ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to GERAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(GERAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_SetCellPower(eutra_Cell1, -60); + + f_EUTRA_SendAuthParameters (eutra_Cell1, GERAN); + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(GERAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.34 + * @status APPROVED (LTE_A) + */ + function f_TC_13_4_3_34_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / alerting / rSRVCC */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_ConfigureDiscardRtpRtcpData(eutra_Cell1, PDN_1); + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_EUTRA_SendAuthParameters (eutra_Cell1, UTRAN); // @sic R5s150704 sic@ + + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(UTRAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.35 + * @status + */ + function f_TC_13_4_3_35_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MT call*/ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(GERAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_SetCellPower(eutra_Cell1, -60); + + f_EUTRA_SendAuthParameters (eutra_Cell1, GERAN); + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(GERAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.36 + * @status + */ + function f_TC_13_4_3_36_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / alerting / rSRVCC / MT Call */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_EUTRA_SendAuthParameters (eutra_Cell1, UTRAN); // @sic R5s150704 sic@ + + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody (UTRAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.37 + * @status + */ + function f_TC_13_4_3_37_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC / HO cancelled */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c5); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(GERAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_SetCellPower(eutra_Cell1, -60); + + f_EUTRA_SendAuthParameters (eutra_Cell1, GERAN); + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(GERAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.38 + * @status + */ + function f_TC_13_4_3_38_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC / HO cancelled */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_ConfigureDiscardRtpRtcpData(eutra_Cell1, PDN_1); + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_EUTRA_SendAuthParameters (eutra_Cell1, UTRAN); // @sic R5s150704 sic@ + + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(UTRAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.39 + * @status + */ + function f_TC_13_4_3_39_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / UTRA CS voice + PS Data to E-UTRA voice / rSRVCC */ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_SRVCC replaced by f_EUTRA_CellConfig_SRVCC sic@ */ + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_ConfigureDiscardRtpRtcpData(eutra_Cell1, PDN_1); + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_EUTRA_SendAuthParameters (eutra_Cell1, UTRAN); // @sic R5s150704 sic@ + + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(UTRAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + + //------------------------------------------------------------------------------ + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.40 + * @status + */ + function f_TC_13_4_3_40_EUTRA() runs on EUTRA_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC / Multiple voice call with mid-call feature*/ + + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c4); + // Create cell and send out system information + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); + f_EUTRA_CellConfig_SRVCC(eutra_Cell1); + + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + + //Send relevant EUTRA cell info to UTRAN PTC + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger (f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell1)), + cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); + + f_EUTRA_RbEst_Def (eutra_Cell1); // @sic R5s150704 sic@ + f_EUTRA_ConfigureDiscardRtpRtcpData(eutra_Cell1, PDN_1); + f_EUTRA_SetCellPower(eutra_Cell1, -60); + f_EUTRA_SendAuthParameters (eutra_Cell1, UTRAN); // @sic R5s150704 sic@ + + f_EUTRA_TestBody_Set(true); + + fl_EUTRA_RSRVCC_TestBody(UTRAN); + + // Postamble + f_EUTRA_TestBody_Set(false); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1]); + } + +} diff --git a/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_GERAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_GERAN.ttcn new file mode 100644 index 0000000..99a7791 --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_GERAN.ttcn @@ -0,0 +1,263 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-09 16:06:37 +0200 (Wed, 09 Sep 2015) $ +// $Rev: 14255 $ +/******************************************************************************/ + +module RSRVCC_EUTRA_GERAN +{ + import from GERAN_Component all; + import from GERAN_Templates all; + import from GERAN_TypeDefs all; + import from GERAN_CommonFunctions all; + import from GERAN_CellInfo all; + import from CommonDefs all; + import from CommonIratDefs all; + import from IMS_PTC_CoordMsg all; + import from UTRANGERAN_CommonFunctions all; + import from EUTRA_CapabilityFunctions all; + import from NAS_24008Templates_IRAT all; + + template (value) CNtoMSTransparentInfo cs_ATGW_Info (octetstring p_ATGWDetails) := + { + iei := omit, + iel := int2oct(lengthof(p_ATGWDetails) + 16, 1), // Nonce = 16 octets + nonce := tsc_NonceMSC, // encoded as per TS 33.102 + atgwTransferDetails := p_ATGWDetails // encoded as per 24.237 + }; + + /////////////////////////////////////////////////////////////////// + // Functions + /////////////////////////////////////////////////////////////////// + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.31 + */ + function f_TC_13_4_3_31_GERAN() runs on GERAN_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC */ + + var IRAT_CoOrd_SysInfo_Type v_EUTRA_SysInfo; + var octetstring v_RRC_Container_HOtoEUTRA; + var template (value) CNtoMSTransparentInfo v_ATGWInfo := cs_ATGW_Info (f_Encode_ATGWTransferDetails()); + var G_LogicChType v_TchType; + var B3_Type v_TIBits := valueof(cs_TI_MO.tiVal); // f_GERAN_EnterU10_MO uses this default template + var integer v_TI := bit2int(v_TIBits); + + //Initialisise cell info and configure cell 24 + f_GERAN_Init(EUTRA_GERAN); + + f_GERAN_CreateCell (geran_Cell24); + + v_EUTRA_SysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); + //Set cell power according to "T0" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + + //Receive updated auth parameters + f_GERAN_InterRAT_InitialiseAuthParams(); + f_GERAN_TestBody_Set(true); + + //Set cell power according to "T1" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -65); + + //@siclog "Step 8" siclog@ + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24); + + //@siclog "Step 9 - 10" siclog@ + v_TchType := f_GERAN_EnterU10_MO (geran_Cell24, -65); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(v_TI))); // Send TI value to IMS + + //@siclog "Step 11" siclog@ + f_GERAN_SendAuthParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + f_GERAN_SetChPwrLevel (geran_Cell24, tsc_TchCh, -85); + + //@siclog "Step 12" siclog@ + v_RRC_Container_HOtoEUTRA := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRA_SysInfo.Eutra[0]); + G_L2.send(cas_G_L2_DATA_REQ(geran_Cell24, 0, tsc_PhyCh0, v_TchType, 15, cs_G_RFN_Omit, cs_IntersystemToEutranHandoverCmd (v_RRC_Container_HOtoEUTRA, v_ATGWInfo))); + + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_TestBody_Set(false); + + //Perform postamble + f_GERAN_SS_CellRelease(geran_Cell24, -, true); + } + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.33 + */ + function f_TC_13_4_3_33_GERAN() runs on GERAN_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MO call */ + + var IRAT_CoOrd_SysInfo_Type v_EUTRA_SysInfo; + var octetstring v_RRC_Container_HOtoEUTRA; + var template (value) CNtoMSTransparentInfo v_ATGWInfo := cs_ATGW_Info (f_Encode_ATGWTransferDetails()); + var G_LogicChType v_TchType; + var B3_Type v_TIBits := valueof(cs_TI_MO.tiVal); // f_GERAN_EnterU10_MO uses this default template + var integer v_TI := bit2int(v_TIBits); + + //Initialisise cell info and configure cell 24 + f_GERAN_Init(EUTRA_GERAN); + + f_GERAN_CreateCell (geran_Cell24); + + v_EUTRA_SysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); + //Set cell power according to "T0" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + + //Receive updated auth parameters + f_GERAN_InterRAT_InitialiseAuthParams(); + f_GERAN_TestBody_Set(true); + + //Set cell power according to "T1" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -65); + + //@siclog "Step 8" siclog@ + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24); + + //@siclog "Step 9 - 10" siclog@ + // Step 1 to 13 of expected sequence in section 10.2.3 of TS 51.010. UE in alerting CC state U4. + v_TchType := f_GERAN_EnterU10_MO (geran_Cell24, -65, true); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(v_TI))); // Send TI value to IMS + + //@siclog "Step 11" siclog@ + f_GERAN_SendAuthParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + f_GERAN_SetChPwrLevel (geran_Cell24, tsc_TchCh, -85); + + //@siclog "Step 12" siclog@ + v_RRC_Container_HOtoEUTRA := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRA_SysInfo.Eutra[0]); + G_L2.send(cas_G_L2_DATA_REQ(geran_Cell24, 0, tsc_PhyCh0, v_TchType, 15, cs_G_RFN_Omit, cs_IntersystemToEutranHandoverCmd (v_RRC_Container_HOtoEUTRA, v_ATGWInfo))); + + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_TestBody_Set(false); + + //Perform postamble + f_GERAN_SS_CellRelease(geran_Cell24, -, true); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.35 + */ + function f_TC_13_4_3_35_GERAN() runs on GERAN_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MT call */ + + var IRAT_CoOrd_SysInfo_Type v_EUTRA_SysInfo; + var octetstring v_RRC_Container_HOtoEUTRA; + var template (value) CNtoMSTransparentInfo v_ATGWInfo := cs_ATGW_Info (f_Encode_ATGWTransferDetails()); + var G_LogicChType v_TchType; + var B3_Type v_TIBits := valueof(cs_TI_MT.tiVal); // f_GERAN_EnterU10_MT uses this default template + var integer v_TI := bit2int(v_TIBits); + + //Initialise cell info and configure cell 24 + f_GERAN_Init(EUTRA_GERAN); + + f_GERAN_CreateCell (geran_Cell24); + + v_EUTRA_SysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); + //Set cell power according to "T0" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + + //Receive updated auth parameters + f_GERAN_InterRAT_InitialiseAuthParams(); + f_GERAN_TestBody_Set(true); + + //Set cell power according to "T1" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -65); + + //@siclog "Step 8" siclog@ + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24); + + //@siclog "Step 9" siclog@ + // Step 1 to B12 of expected sequence in section 10.1.3of TS 51.010. UE in alerting CC state U9. + v_TchType := f_GERAN_EnterU10_MT (geran_Cell24, -65 , true); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(v_TI))); // Send TI value to IMS + + //@siclog "Step 10" siclog@ + f_GERAN_SendAuthParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + f_GERAN_SetChPwrLevel (geran_Cell24, tsc_TchCh, -85); + + //@siclog "Step 11" siclog@ + v_RRC_Container_HOtoEUTRA := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRA_SysInfo.Eutra[0]); + G_L2.send(cas_G_L2_DATA_REQ(geran_Cell24, 0, tsc_PhyCh0, v_TchType, 15, cs_G_RFN_Omit, cs_IntersystemToEutranHandoverCmd (v_RRC_Container_HOtoEUTRA, v_ATGWInfo))); + + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_TestBody_Set(false); + + //Perform postamble + f_GERAN_SS_CellRelease(geran_Cell24, -, true); + } + + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.37 + */ + function f_TC_13_4_3_37_GERAN() runs on GERAN_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC / HO cancelled */ + + var IRAT_CoOrd_SysInfo_Type v_EUTRA_SysInfo; + var octetstring v_RRC_Container_HOtoEUTRA; + var template (value) CNtoMSTransparentInfo v_ATGWInfo := cs_ATGW_Info (f_Encode_ATGWTransferDetails()); + var G_LogicChType v_TchType; + var B3_Type v_TIBits := valueof(cs_TI_MT.tiVal); // f_GERAN_EnterU10_MT uses this default template + var integer v_TI := bit2int(v_TIBits); + + //Initialisise cell info and configure cell 24 + f_GERAN_Init(EUTRA_GERAN); + + f_GERAN_CreateCell (geran_Cell24); + + v_EUTRA_SysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); + //Set cell power according to "T0" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + + //Receive updated auth parameters + f_GERAN_InterRAT_InitialiseAuthParams(); + f_GERAN_TestBody_Set(true); + + //Set cell power according to "T1" + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -65); + + //@siclog "Step 8" siclog@ + f_GERAN_508CheckCampOnNewGeranCell (geran_Cell24); + + //@siclog "Step 9 - 10" siclog@ + // UE in alerting CC state U9. + v_TchType := f_GERAN_EnterU10_MT (geran_Cell24, -65, true); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(v_TI))); // Send TI value to IMS + + //@siclog "Step 11" siclog@ + f_GERAN_SendAuthParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_SetCellPowerLevel (geran_Cell24, -85); + f_GERAN_SetChPwrLevel (geran_Cell24, tsc_TchCh, -85); + + //@siclog "Step 12" siclog@ + v_RRC_Container_HOtoEUTRA := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRA_SysInfo.Eutra[0]); + G_L2.send(cas_G_L2_DATA_REQ(geran_Cell24, 0, tsc_PhyCh0, v_TchType, 15, cs_G_RFN_Omit, cs_IntersystemToEutranHandoverCmd (v_RRC_Container_HOtoEUTRA, v_ATGWInfo))); + + f_IRAT_WaitForCoOrd_Trigger (EUTRA); + f_GERAN_TestBody_Set(false); + + //Perform postamble + f_GERAN_SS_CellRelease(geran_Cell24, -, true); + } +} diff --git a/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_IMS.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_IMS.ttcn new file mode 100644 index 0000000..af028a4 --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_IMS.ttcn @@ -0,0 +1,1058 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:42:50 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14484 $ +/******************************************************************************/ + +module RSRVCC_EUTRA_IMS { + + import from IMS_Component all; + import from IMS_ASP_TypeDefs all; + import from IMS_CommonDefs all; + import from IMS_CommonFunctions all; + import from IMS_Procedures_Common all; + import from IMS_PTC_CoordMsg all; + import from IP_ASP_TypeDefs all; + import from IMS_ASP_Templates all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from IMS_SIP_Templates all; + import from IMS_CommonTemplates all; + import from IMS_SDP_Templates all; + import from IMS_SDP_Messages all; + import from IMS_MessageBody_Templates all; + import from IMS_Procedures_Registration all; + import from IMS_Procedures_CallControl all; + import from LibSip_SDPTypes all; + import from IMS_CommonParameters all; + import from LibSip_MessageBodyTypes all; + import from UpperTesterFunctions all; + import from IMS_XML_Templates all; + import from IMS_Procedures_CallHold all; + + const charstring tsc_ATCF_URI := "sip:sti-sr@atcf.visited2.net"; /* @status APPROVED (LTE_A) */ + + template (value) ContentDisposition cs_ContentDisposition (charstring p_DispositionType) := + { /* @status APPROVED (LTE_A) */ + fieldName := CONTENT_DISPOSITION_E , + dispositionType := p_DispositionType, + dispositionParams := omit + }; + + /* + * @desc Build SDP record to be sent to the UE at step 1 according to 34.229-1 Annex C.42 + * @return template (value) SDP_Message + * @status APPROVED (LTE_A) + */ + function f_IMS_BuildSDP_AnnexC42_Step1() runs on IMS_PTC return template (value) SDP_Message + { + var charstring v_FmtAudio := tsc_SDP_FmtAudio; + var template (value) SDP_bandwidth_list v_MediaBandwidth_List := cs_SDP_Bandwidth_List_Media(37, 0, 2500); + var template (omit) SDP_attribute_list v_SDP_MediaAttributes; + var IP_AddrInfo_Type v_UE_Address := f_IMS_PTC_UE_Address_Get(); + var template (value) SDP_Message v_SDP_Message; + + v_SDP_MediaAttributes := f_SDP_MediaAttributes_AudioDef(v_FmtAudio); /* @sic R5-144693: new function f_SDP_MediaAttributes_AudioDef sic@ */ + + v_SDP_Message := f_IMS_BuildSDP_TX(cs_SDP_Media_Audio(v_FmtAudio), v_MediaBandwidth_List, v_SDP_MediaAttributes, omit); + + // overwrite with specific addresses for this message + if (ischosen(v_UE_Address.V4)) { + v_SDP_Message.connection.conn_addr := cs_SDP_Conn_Addr("0.0.0.0"); + } else { + v_SDP_Message.connection.conn_addr := cs_SDP_Conn_Addr("dfgrrgr.invalid"); + } + return v_SDP_Message; + } + + /* + * @desc Build SDP record to be received from the UE at step 3 according to 34.229-1 Annex C.42 + * @return template (present) SDP_Message + * @status APPROVED (LTE_A) + */ + function f_IMS_BuildSDP_AnnexC42_Step3() runs on IMS_PTC return template (present) SDP_Message + { + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := {}; + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(cr_SDP_AnyMediaFormatDescr, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(cr_SDP_AnyMediaFormatDescr) + }; + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + /* + * @desc MESSAGE UE receiving the ATGW information for CS to PS SRVCC (34.229-1 Annex A.8.1) + * @param p_Protocol + * @return template (value) MessageHeader + * @status APPROVED (LTE_A) + */ + function f_IMS_MessageRequest_MessageHeaderTX_RSRVCC(InternetProtocol_Type p_Protocol) runs on IMS_PTC return template (value) MessageHeader + { + var charstring v_P_CSCF_Address := f_IMS_PTC_Pcscf_Get(); + var template (value) SipUrl v_SipUrlTo := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); + var charstring v_ProtocolString := f_IMS_ConvertTransportProtocolToString(p_Protocol); + var integer v_Port_ps := f_IMS_PTC_GetPort_ps(); + var template (value) MessageHeader v_MessageHeader_Message := cs_MessageHeader_Dummy; + var charstring v_CallIdString := f_IMS_PTC_GenerateCallId("MESSAGE"); + var template (value) ViaBody_List v_ViaBodyList := { cs_ViaBody(v_ProtocolString, cs_HostPort(v_P_CSCF_Address, v_Port_ps), f_ViaParamsTX(f_IMS_PTC_ImsInfo_GetNextBranch())) }; + + v_MessageHeader_Message.via := cs_Via(v_ViaBodyList); + v_MessageHeader_Message.fromField := cs_From(f_SIP_BuildSipUri_TX(tsc_ATCF_URI), f_IMS_GenerateTag("MESSAGE", "From")); + v_MessageHeader_Message.toField := cs_ToDef(v_SipUrlTo); + v_MessageHeader_Message.callId := cs_CallId(v_CallIdString); + v_MessageHeader_Message.cSeq := cs_CseqDef(tsc_MESSAGE_CSeqValue, "MESSAGE"); + v_MessageHeader_Message.maxForwards := cs_MaxForwardsDef; + v_MessageHeader_Message.contentDisposition := cs_ContentDisposition("render"); + v_MessageHeader_Message.contentType := cs_ContentType("application/sdp"); + v_MessageHeader_Message.pAssertedID := cs_PAssertedId(f_SIP_BuildSipUri_TX(tsc_ATCF_URI)); // same as in From header + + return v_MessageHeader_Message; + } + + /* + * @desc MESSAGE UE providing information for CS to PS SRVCC (34.229-1 Annex A.8.2) + * @return template (present) MessageHeader + * @status APPROVED (LTE_A) + */ + function f_IMS_MessageRequest_MessageHeaderRX_RSRVCC() runs on IMS_PTC return template (present) MessageHeader + { + var template (present) MessageHeader v_MessageHeader_Message := cr_MessageHeader_Dummy; + var integer v_Port_us := f_IMS_PTC_GetPort_us(); + var integer v_Port_ps := f_IMS_PTC_GetPort_ps(); + var charstring v_Pcscf := f_IMS_PTC_Pcscf_Get(); + + v_MessageHeader_Message.via := cr_ViaDef(-, cr_HostPort(?, v_Port_us)); + v_MessageHeader_Message.fromField := cr_FromWithTag(?); + v_MessageHeader_Message.toField := cr_ToDef(f_SIP_BuildSipUri_RX(tsc_ATCF_URI)); + v_MessageHeader_Message.callId := cr_CallId(?); /* to be checked when message has been received */ + v_MessageHeader_Message.cSeq := cr_CseqDef(?, "MESSAGE"); + v_MessageHeader_Message.maxForwards := cr_MaxForwardsDef; + v_MessageHeader_Message.contentType := cr_ContentType("application/sdp"); // @sic R5s150704 sic@ + + if (f_IMS_PTC_SecurityScheme_IsGiba()) { + v_MessageHeader_Message.pAccessNetworkInfo := cr_PAccessNetworkInfoDef(f_IMS_PTC_RanType_GetString()); + } + v_MessageHeader_Message.route := cr_Route(cr_RouteBodyList_InitialReq(v_Port_ps, v_Pcscf)); + + return v_MessageHeader_Message; + } + + function f_IMS_CancelRequest_MessageHeaderRX(template (value) INVITE_Request p_InviteRequest) runs on IMS_PTC return template (present) MessageHeader + { + var template (value) MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; + var template (present) MessageHeader v_MessageHeader_Cancel := cr_MessageHeader_Dummy; + var integer v_CSeqValue := f_IMS_PTC_ImsInfo_CseqIncr(dialogRemote); + + v_MessageHeader_Cancel.reason := f_IMS_SIP_Reason_RX(486, "Busy Here"); + // Other contents as in Annex A.2.15 + v_MessageHeader_Cancel.via := fl_Via_AsInPrevInvite(v_MessageHeader_Invite.via); + v_MessageHeader_Cancel.fromField := f_IMS_RequestInDialog_FromHeaderRX(); + v_MessageHeader_Cancel.toField := f_IMS_RequestInDialog_ToHeaderRX(); + v_MessageHeader_Cancel.callId := v_MessageHeader_Invite.callId; + v_MessageHeader_Cancel.sessionId := v_MessageHeader_Invite.sessionId; + v_MessageHeader_Cancel.cSeq := cr_CseqDef(v_CSeqValue, "CANCEL"); + + return v_MessageHeader_Cancel; + } + + template (present) CANCEL_Request cr_CANCEL_Request(template (present) SipUrl p_SipUrl, + template (present) MessageHeader p_MessageHeader := ?) := + { + requestLine := cr_RequestLineSip(CANCEL_E, p_SipUrl), + msgHeader := p_MessageHeader, + messageBody := omit, + payload := omit + }; + + template (present) IMS_DATA_REQ car_IMS_Cancel_Request(template (present) CANCEL_Request p_CancelRequest) := + { + RoutingInfo := cr_IMS_RoutingInfo, + Request := { + Cancel := p_CancelRequest + } + }; + + function f_IMS_RequestTerminated_487MessageHeaderTX(template (value) MessageHeader p_MessageHeader_Request) runs on IMS_PTC return template (value) MessageHeader + { /* See 34.229-1 Annex A.2.16 487 Request Terminated */ + var template (value) MessageHeader v_MessageHeader_Response := cs_MessageHeader_Dummy; + + v_MessageHeader_Response.via := p_MessageHeader_Request.via; + v_MessageHeader_Response.fromField := p_MessageHeader_Request.fromField; + v_MessageHeader_Response.toField := f_IMS_Response_ToHeaderTX(p_MessageHeader_Request); + v_MessageHeader_Response.callId := p_MessageHeader_Request.callId; + v_MessageHeader_Response.sessionId := p_MessageHeader_Request.sessionId; + v_MessageHeader_Response.cSeq := p_MessageHeader_Request.cSeq; + + return v_MessageHeader_Response; + } + + /* + * @desc 34.229-1 Annex C.41 Generic test procedure for MTSI MT speech call for rSRVCC - user reject + * @status + */ + function f_IMS_AnnexC41(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp) runs on IMS_PTC + { + var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + var template (present) MessageHeader v_MessageHeader_Cancel; + var template (value) MessageHeader v_MessageHeader_MessageResponse_200OK; + var template (value) MessageHeader v_MessageHeader_MessageResponse_487; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var template (present) MessageHeader v_MessageHeader_Ack; + var CANCEL_Request v_CANCEL_RequestRX; + + // Annex C.41 Step 1 + v_MessageHeader_Cancel := f_IMS_CancelRequest_MessageHeaderRX(v_InviteRequest); + IMS_Server.receive(car_IMS_Cancel_Request(cr_CANCEL_Request(v_ContactUrl, v_MessageHeader_Cancel))) -> value v_IMS_DATA_REQ; + v_CANCEL_RequestRX := v_IMS_DATA_REQ.Request.Cancel; + + // Annex C.41 Step 2 + v_MessageHeader_MessageResponse_200OK := f_IMS_OtherResponse_200_MessageHeaderTX(v_CANCEL_RequestRX.msgHeader); + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine200, v_MessageHeader_MessageResponse_200OK))); + + // Annex C.41 Step 3 - Request Terminated + v_MessageHeader_MessageResponse_487 := f_IMS_RequestTerminated_487MessageHeaderTX(v_InviteRequest.msgHeader); + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine487, v_MessageHeader_MessageResponse_487))); + + // Annex C.41 Step 4 + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_ContactUrl, v_MessageHeader_Ack))); + } + + /* + * @desc 34.229-1 Annex C.42 + * @status APPROVED (LTE_A) + */ + function f_IMS_AnnexC42() runs on IMS_PTC + { + var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + var template (value) MessageHeader v_MessageHeader_MessageMT; + var template (value) MessageHeader v_MessageHeader_MessageResponse_200OK; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var template (present) SipUrl v_SipUrlStep3RequestLine; + var template (present) MessageHeader v_MessageHeaderRX; + var template (value) MessageBody v_MessageBody; + var MESSAGE_Request v_MESSAGE_RequestRX; + var MessageHeader v_MessageHeader; + var SDP_Message v_SDP_Message; + + // Annex C.42 Step 1 + v_MessageBody := cs_MessageBody_SDP (f_IMS_BuildSDP_AnnexC42_Step1 ()); + v_MessageHeader_MessageMT := f_IMS_MessageRequest_MessageHeaderTX_RSRVCC(v_Protocol); + IMS_Client.send(cas_IMS_Message_Request(cs_IMS_RoutingInfo(v_Protocol), cs_MESSAGE_Request(v_ContactUrl, v_MessageHeader_MessageMT, v_MessageBody))); + + // Annex C.42 Step 2. UE responds with 200 OK + f_IMS_ReceiveResponse(v_MessageHeader_MessageMT, v_Protocol, cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_MessageMT))); + + // Annex C.42 Step 3 + v_SipUrlStep3RequestLine := f_SIP_BuildSipUri_RX(tsc_ATCF_URI); + v_MessageHeaderRX := f_IMS_MessageRequest_MessageHeaderRX_RSRVCC(); + IMS_Server.receive(car_IMS_Message_Request(cr_MESSAGE_Request(v_SipUrlStep3RequestLine, v_MessageHeaderRX, cr_MessageBody_SDP))) -> value v_IMS_DATA_REQ; + v_MESSAGE_RequestRX := v_IMS_DATA_REQ.Request.Message; + v_MessageHeader := v_IMS_DATA_REQ.Request.Message.msgHeader; + v_Protocol := v_IMS_DATA_REQ.RoutingInfo.Protocol; + f_IMS_MessageHeader_Request_CheckVia(v_MessageHeader, v_Protocol); // check whether via contains "SIP URI with IP address or FQDN" + v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_MESSAGE_RequestRX.messageBody, f_IMS_BuildSDP_AnnexC42_Step3()); // @sic R5w140112 sic@ + + // Annex C.42 Step 4 + v_MessageHeader_MessageResponse_200OK := f_IMS_OtherResponse_200_MessageHeaderTX(v_MESSAGE_RequestRX.msgHeader); + IMS_Server.send(cas_IMS_DATA_RSP(f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo), cs_Response(c_statusLine200, v_MessageHeader_MessageResponse_200OK))); + } + + template (present) ReferSub cr_ReferSub(boolean p_ReferSubValue) := + { + fieldName := REFER_SUB_E, + referSubValue := p_ReferSubValue, + referSubParams :=* + }; + + function f_IMS_BuildSDP_AnnexC43_Step3() runs on IMS_PTC return template (present) SDP_Message + { + var template (present) charstring v_Fmt := cr_SDP_AnyMediaFormatDescr; + var template (present) SDP_media_field v_SDP_Media_Field := cr_SDP_Media_Audio(v_Fmt); + var template (present) SDP_attribute_list v_SDP_MediaAttributes := { + cr_SDP_Attribute_rtpmap(v_Fmt, cr_RTPMAP_AMR_8000), + cr_SDP_Attribute_fmtp(v_Fmt), + cr_SDP_Attribute_rtpmap(-, cr_RTPMAP_TelephoneEvent) + }; + var template (present) SDP_attribute_list v_SDP_PrecondionAttributes := { + cr_SDP_Attribute_curr_qos(c_local, c_sendonly), + cr_SDP_Attribute_curr_qos(c_remote, c_none), + cr_SDP_Attribute_des_qos(c_mandatory, c_local, c_sendonly), + cr_SDP_Attribute_des_qos(c_optional, c_remote, c_sendonly) + }; + + return f_IMS_BuildSDP_RX(-, v_SDP_Media_Field, v_SDP_MediaAttributes, v_SDP_PrecondionAttributes); + } + + /* + * @desc 34.229-1 Annex C.43 + * @status + */ + function f_IMS_AnnexC43() runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { + var template (present) SipUrl v_CalleeUri := f_SIP_BuildSipUri_RX(tsc_ATCF_URI); + var template (omit) IMS_DATA_REQ v_IMS_DATA_REQ; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var template (value) MessageHeader v_MessageHeader_Refer; + var template (present) MessageHeader v_MessageHeader_Ack; + var template (present) MessageHeader v_MessageHeader_ReferResponse; + var template (value) REFER_Request v_ReferRequest; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL; + var template (present) SipUrl v_CalleeContactSipUri; + var template (value) SDP_Message v_SDP_HoldResponse; + var InternetProtocol_Type v_Protocol :=f_IMS_PTC_ImsInfo_GetTransportProtocol(); + var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + var IMS_DATA_REQ v_IMS_DATA_REQ_Value; + var IMS_DATA_RSP v_IMS_DATA_RSP; + var SDP_Message v_SDP_Message; + var INVITE_Request v_InviteRequest; + + f_IMS_PTC_ImsInfo_ActivateDialog(secondDialog); + + // Step.1 SS sends REFER to UE referring to transfer the call + v_MessageHeader_Refer := f_IMS_ReferRequest_MessageHeaderTX(-, tsc_IMS_CallerSipAddrStr, tsc_ATCF_URI); + f_IMS_PTC_ImsInfo_DialogInit(dialogLocal, valueof(v_MessageHeader_Refer), referDialog); + v_ReferRequest := cs_REFER_Request(v_ContactUrl, v_MessageHeader_Refer); + IMS_Client.send(cas_IMS_Refer_Request(cs_IMS_RoutingInfo(v_Protocol), v_ReferRequest)); + + // Step.2 UE responds with a with a 200 OK + v_MessageHeader_ReferResponse := f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_Refer); + v_MessageHeader_ReferResponse.referSub := cr_ReferSub(false); + v_IMS_DATA_RSP := f_IMS_ReceiveResponse(v_MessageHeader_Refer, v_Protocol, cr_Response(c_statusLine200, v_MessageHeader_ReferResponse )); + + f_IMS_Dialog_SetRemoteTag(v_IMS_DATA_RSP.Response.msgHeader, referDialog); + + // Step 3 SS receives INVITE Request + // A.13 Assisted mid-call feature + v_IMS_DATA_REQ := f_IMS_INVITE_ReceiveRequest_Common(A_2_1_A4, -, tsc_OptionTagList_precondition, v_CalleeUri, omit, -, false); + if (isvalue(v_IMS_DATA_REQ)) { + v_IMS_DATA_REQ_Value := valueof(v_IMS_DATA_REQ); + v_InviteRequest := v_IMS_DATA_REQ_Value.Request.Invite; + v_SDP_Message := f_IMS_SIP_SdpMessageBody_DecodeMatchAndCheckSDP(v_InviteRequest.messageBody, f_IMS_BuildSDP_AnnexC43_Step3()); /* @sic R5s150205 (reverting R5-150702 change 22) sic@ */ + + v_InviteRequestWithSdp := f_IMS_InviteRequestWithSdpMO(v_IMS_DATA_REQ_Value, v_SDP_Message); + } + + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_InviteRequestWithSdp.RoutingInfo); + + // Step 4 SS responds with a with a 200 OK + v_SDP_HoldResponse := f_IMS_BuildSDP_AnnexC8_Step3(HOLD, v_SDP_Message); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, + f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP), + cs_MessageBody_SDP(v_SDP_HoldResponse)))); + + v_CalleeContactSipUri := f_Addr_Union_GetSipUrl(v_InviteRequest.msgHeader.contact.contactBody.contactAddresses[0].addressField); + + // Step 5 UE responds with a with ACK + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); /* @sic R5s150692 change 26: default value removed sic@ */ + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactSipUri, v_MessageHeader_Ack))); + + return v_InviteRequestWithSdp; + } + + template (value) INFO_Request cs_INFO_Request(template (value) SipUrl p_SipUrl, + template (value) MessageHeader p_MessageHeader, + template (omit) MessageBody p_MessageBody:= omit ) := //Message Body FFS + { + requestLine := cs_RequestLineSip(INFO_E, p_SipUrl), + msgHeader := p_MessageHeader, + messageBody := p_MessageBody, + payload := omit + }; + + template (present) INFO_Request cr_INFO_Request(template (present) SipUrl p_SipUrl, + template (present) MessageHeader p_MessageHeader := ?, + template MessageBody p_MessageBody := ?, + template Payload p_Payload := *) := + { + requestLine := cr_RequestLineSip(INFO_E, p_SipUrl), + msgHeader := p_MessageHeader, + messageBody := p_MessageBody, + payload := p_Payload + }; + + template (present) IMS_DATA_REQ car_IMS_Info_Request(template (present) INFO_Request p_InfoRequest := ?) := + { + RoutingInfo := cr_IMS_RoutingInfo, + Request := { //Needs to be included in the RequestUnion + Info := p_InfoRequest + } + }; + + template (value) IMS_DATA_REQ cas_IMS_Info_Request(template (value) IMS_RoutingInfo_Type p_RoutingInfo, + template (value) INFO_Request p_InfoRequest ) := + { + RoutingInfo := p_RoutingInfo, + Request := { + Info := p_InfoRequest + } + }; + + function f_IMS_InfoRequest_MessageHeaderTXC40(INVITE_Request p_InviteRequest) + runs on IMS_PTC return template (value) MessageHeader + { + var MessageHeader v_MessageHeader_Invite := p_InviteRequest.msgHeader; + var template (value) MessageHeader v_MessageHeader_Info := cs_MessageHeader_Dummy; + + var charstring v_P_CSCF_Address := f_IMS_PTC_Pcscf_Get(); + var template (value) SipUrl v_SipUrlTo := f_IMS_PTC_ImsInfo_GetSipUriTX(defaultId); + var charstring v_ProtocolString := f_IMS_ConvertTransportProtocolToString(f_IMS_PTC_ImsInfo_GetTransportProtocol()); + var integer v_Port_ps := f_IMS_PTC_GetPort_ps(); + var integer v_CSeqValue := f_MessageHeader_GetCseqValue(v_MessageHeader_Invite) + 1; + + var template (value) ViaBody_List v_ViaBodyList := { cs_ViaBody(v_ProtocolString, cs_HostPort(v_P_CSCF_Address, v_Port_ps), f_ViaParamsTX(f_IMS_PTC_ImsInfo_GetNextBranch())), + cs_ViaBody(v_ProtocolString, cs_HostPort(px_IMS_Scscf), f_ViaParamsTX(f_IMS_PTC_ImsInfo_GetNextBranch()))}; + + v_MessageHeader_Info.via := cs_Via(v_ViaBodyList); + v_MessageHeader_Info.fromField := cs_From(f_SIP_BuildSipUri_TX(tsc_ATCF_URI), f_IMS_GenerateTag("INFO", "From")); + v_MessageHeader_Info.toField := cs_ToDef(v_SipUrlTo); + v_MessageHeader_Info.callId := v_MessageHeader_Invite.callId; + v_MessageHeader_Info.cSeq := cs_CseqDef(v_CSeqValue, "INFO"); + v_MessageHeader_Info.maxForwards := cs_MaxForwardsDef; + v_MessageHeader_Info.contact := cs_Contact(f_SIP_BuildSipUri_TX(tsc_ATCF_URI)); + v_MessageHeader_Info.contentType := cs_ContentType("application/vnd.3gpp.state-and-event-info+xml"); + v_MessageHeader_Info.recvInfo := cs_RecvInfo ({cs_InfoPackage_Type("+g.3gpp.state-and-event")}); + + return v_MessageHeader_Info; + } + + function f_IMS_InfoRequest_MessageHeaderRX_AnnexC40() + runs on IMS_PTC return template (present) MessageHeader + { + var template (present) MessageHeader v_MessageInfo_Message := cr_MessageHeader_Dummy; + var integer v_Port_us := f_IMS_PTC_GetPort_us(); + + v_MessageInfo_Message.via := cr_ViaDef(-, cr_HostPort(?, v_Port_us)); + v_MessageInfo_Message.fromField := cr_FromWithTag(?); + v_MessageInfo_Message.toField := cr_ToDef(f_SIP_BuildSipUri_RX(tsc_ATCF_URI)); + v_MessageInfo_Message.callId := cr_CallId(?); /* to be checked when message has been received */ + v_MessageInfo_Message.cSeq := cr_CseqDef(?, "INFO"); + v_MessageInfo_Message.contact := cr_Contact(f_SIP_BuildSipUri_RX(tsc_ATCF_URI)); + v_MessageInfo_Message.maxForwards := cr_MaxForwardsDef; + v_MessageInfo_Message.contentType := cr_ContentType("application/vnd.3gpp.state-and-event-info+xml"); + v_MessageInfo_Message.recvInfo := cr_RecvInfo ({cr_InfoPackage_Type("g.3gpp.state-and-event")}); + return v_MessageInfo_Message; + } + + // Annex C40 - SDP Messages + //---------------------------------------------------------------------------- + + function f_IMS_MTCallSetup_AnnexC40_Step3_6( IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_OtherCalleeUri, + charstring p_TI) runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp := p_InviteRequestWithSdp; + var SDP_Message v_SDP_MessageInvite := p_InviteRequestWithSdp.SdpOffer; + var template (value) MessageHeader v_MessageHeader_Response183; + var template (present) MessageHeader v_MessageHeader_Prack; + var template (present) SDP_Message v_SDP_Message_Step5or7; + var template (omit) MessageBody v_MessageBodyTx := omit; + var SDP_Message v_SDP_LatestOffer; + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var template (value) SDP_Message v_SDP_Message183Tx := f_IMS_BuildSDP_AnnexC39_C40_Step4(v_SDP_MessageInvite); //Same SDP information than C.40. /* @sic R5-135020 sic@ */ + var PRACK_Request v_PrackRequest; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL:= f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + var IMS_DATA_REQ v_IMS_DATA_REQ; + + // Step 3. SS sends a 100 Trying provisional response. + f_IMS_MOCallSetup_AnnexC21_Step3(v_InviteRequestWithSdp); + + // Step 4. Send 183 Session In Progress. + v_MessageHeader_Response183 := f_IMS_InviteResponse_183_MessageHeaderTX(v_InviteRequest, tsc_OptionTagList_precondition, p_OtherCalleeUri); /* @sic R5-142951 sic@ */ + v_MessageHeader_Response183.featureCaps := cs_FeatureCaps({ cs_GenericParam("+g.3gpp.ti", p_TI)}); + v_MessageHeader_Response183.recvInfo := cs_RecvInfo ({cs_InfoPackage_Type("+g.3gpp.state-and-event")}); + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine183, v_MessageHeader_Response183, cs_MessageBody_SDP(v_SDP_Message183Tx)))); + + // @siclog "Step 5 " siclog@ + // Step 5. Receive PRACK + v_MessageHeader_Prack := f_IMS_PrackRequest_MessageHeaderRX(v_InviteRequest, v_MessageHeader_Response183); + IMS_Server.receive(car_IMS_Prack_Request(cr_PRACK_Request(v_ContactUrl, v_MessageHeader_Prack, cr_MessageBody_SDP ifpresent))) -> value v_IMS_DATA_REQ; + v_PrackRequest := v_IMS_DATA_REQ.Request.Prack; + v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(v_IMS_DATA_REQ.RoutingInfo); + + v_SDP_Message_Step5or7 := f_IMS_BuildSDP_AnnexC21_Step5or7(v_SDP_MessageInvite); /* => use speech per default */ + + // Step 6. Send 200 OK + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_PrackRequest.msgHeader, cs_ContentTypeSDP), v_MessageBodyTx))); + } + + function f_IMS_MTCallSetup_AnnexC40_Step7_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_OtherCalleeUri ) runs on IMS_PTC + { + var template (value) MessageHeader v_MessageHeader_InfoTX; + var template (present) MessageHeader v_MessageHeader_InfoRX; + var template (present) MessageHeader v_MessageHeader_Ack; + var IMS_DATA_REQ v_IMS_DATA_REQ; + var InternetProtocol_Type v_Protocol := f_IMS_PTC_ImsInfo_GetTransportProtocol(); + var SipUrl v_ContactUrl := f_IMS_PTC_ImsInfo_GetContactUrl(); + var INFO_Request v_InfoRequest; + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + + // Step 7. SS sends INFO Req + v_MessageHeader_InfoTX := f_IMS_InfoRequest_MessageHeaderTXC40(v_InviteRequest); + IMS_Client.send(cas_IMS_Info_Request(v_RoutingInfo_DL, cs_INFO_Request(v_ContactUrl, v_MessageHeader_InfoTX, cs_MessageBody_XML_SRVCC (cs_State_and_event_info ("early", cs_DirectionReceiver, omit))))); + + //Step 8 UE responds with 200 OK + f_IMS_ReceiveResponse(v_MessageHeader_InfoTX, v_Protocol, cr_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderRX(v_MessageHeader_InfoTX))); + + // Step 8A UE accepts call + f_UT_AnswerCall(MMI); // @sic R5-151951 sic@ + + // Step 9. UE sends INFO Req + v_MessageHeader_InfoRX :=f_IMS_InfoRequest_MessageHeaderRX_AnnexC40(); + IMS_Server.receive(car_IMS_Info_Request(cr_INFO_Request(f_SIP_BuildSipUri_RX(p_OtherCalleeUri), + v_MessageHeader_InfoRX, + cr_MessageBody_XML_SRVCC(cs_State_and_event_info(omit, cr_DirectionInitiator, "call-accepted"))))) -> value v_IMS_DATA_REQ; + v_InfoRequest := v_IMS_DATA_REQ.Request.Info; + + //Step 9A SS responds to INFO with 200 Ok + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_InfoRequest.msgHeader)))); + + //Step 10 SS sends 200 Ok + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader)))); + + //Step 11 SS receives ACK + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_ContactUrl, v_MessageHeader_Ack))); + } + + function f_IMS_MTCallSetup_AnnexC40_Step3_11(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + charstring p_OtherCalleeUri, + charstring p_TI) runs on IMS_PTC + { + //Step 3-6 + f_IMS_MTCallSetup_AnnexC40_Step3_6(p_InviteRequestWithSdp,p_OtherCalleeUri, p_TI); + + //Step 7-11 + f_IMS_MTCallSetup_AnnexC40_Step7_11(p_InviteRequestWithSdp,p_OtherCalleeUri); + } + + /* + * @desc 34.229-1 Annex C.39/ C.40 / Step 2 + * @return IMS_InviteRequestWithSdp_Type + * @status APPROVED (LTE_A) + */ + function f_IMS_AnnexC39_C40_Step2() runs on IMS_PTC return IMS_InviteRequestWithSdp_Type + { + var template (present) SipUrl v_CalleeUri := f_SIP_BuildSipUri_RX(tsc_ATCF_URI); + var template (present) SDP_Message v_SDP_Message_Step2 := f_IMS_BuildSDP_AnnexC39_C40_Step2(); + var template (omit) float v_WaitDuration := omit; + return valueof(f_IMS_MOCallSetup_AnnexC21_Step2_Optional(v_SDP_Message_Step2, v_CalleeUri, A_2_1_A4, v_WaitDuration)); /* f_IMS_MOCallSetup_AnnexC21_Step2_Optional reurns a value as v_WaitDuration := omit */ + } + + /* + * @desc return template for SDP message at step 2 according to 34.229-1 Annex C.39/C.40 + * @param p_RtcpDuringVoiceSession (default value: pc_IMS_RtcpDuringVoiceSession) + * @return template (present) SDP_Message + * @status APPROVED (LTE_A) + */ + function f_IMS_BuildSDP_AnnexC39_C40_Step2(boolean p_RtcpDuringVoiceSession := pc_IMS_RtcpDuringVoiceSession) runs on IMS_PTC return template (present) SDP_Message + { + var boolean v_PreconditionsRequired := false; + return f_IMS_BuildSDP_AnnexC21_Step2(p_RtcpDuringVoiceSession, v_PreconditionsRequired); + } + + /* + * @desc return template for SDP message at step 4 according to 34.229-1 Annex C.39/C.40 + * @param p_SDP_MessageInvite + * @return template (value) SDP_Message + * @status APPROVED (LTE_A) + */ + function f_IMS_BuildSDP_AnnexC39_C40_Step4(SDP_Message p_SDP_MessageInvite) runs on IMS_PTC return template (value) SDP_Message + { + var boolean v_PreconditionsRequired := false; + return f_IMS_BuildSDP_AnnexC21_Step4(p_SDP_MessageInvite, v_PreconditionsRequired); + } + + /* + * @desc 34.229-1 Annex C.39 / Steps 3-5 + * @param p_InviteRequestWithSdp + * @param p_Step5 (default value: true) + * @param p_TI + * @status APPROVED (LTE_A) + */ + function f_IMS_AnnexC39_Step3_5(IMS_InviteRequestWithSdp_Type p_InviteRequestWithSdp, + boolean p_Step5 := true, + charstring p_TI) runs on IMS_PTC + { + var template (value) IMS_RoutingInfo_Type v_RoutingInfo_DL := f_IMS_RoutingInfo_ULtoDL(p_InviteRequestWithSdp.RoutingInfo); + var INVITE_Request v_InviteRequest := p_InviteRequestWithSdp.Invite; + var SDP_Message v_SDP_MessageInvite := p_InviteRequestWithSdp.SdpOffer; + var template (value) SDP_Message v_SDP_Message_Step4 := f_IMS_BuildSDP_AnnexC39_C40_Step4(v_SDP_MessageInvite); + var template (value) MessageHeader v_MessageHeader_InviteResponse_200; + var template (present) SipUrl v_CalleeContactSipUri; + var template (present) MessageHeader v_MessageHeader_Ack; + + // Annex C.39 Step 3 + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine100, f_IMS_InviteResponse_100_MessageHeaderTX(v_InviteRequest)))); + + // Annex C.39 Step 4 + v_MessageHeader_InviteResponse_200 := f_IMS_OtherResponse_200_MessageHeaderTX(v_InviteRequest.msgHeader, cs_ContentTypeSDP); + v_CalleeContactSipUri := f_Addr_Union_GetSipUrl(v_MessageHeader_InviteResponse_200.contact.contactBody.contactAddresses[0].addressField); + v_MessageHeader_InviteResponse_200.featureCaps := cs_FeatureCaps({ cs_GenericParam("+g.3gpp.ti", p_TI)}); // @sic R5-153466 sic@ + IMS_Server.send(cas_IMS_DATA_RSP(v_RoutingInfo_DL, cs_Response(c_statusLine200, v_MessageHeader_InviteResponse_200, cs_MessageBody_SDP(v_SDP_Message_Step4)))); + + if (p_Step5) { + // Annex C.39 Step 5 + v_MessageHeader_Ack := f_IMS_AckRequest_MessageHeaderRX(v_InviteRequest, c_statusLine200); + IMS_Server.receive(car_IMS_Ack_Request(cr_ACK_Request(v_CalleeContactSipUri, v_MessageHeader_Ack))); + } + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.31 + * @status + */ + function f_TC_13_4_3_31_IMS1()runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + f_IMS_AnnexC39_Step3_5(v_InviteRequestWithSdp, -, v_TI); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.32 + * @status APPROVED (LTE_A) + */ + function f_TC_13_4_3_32_IMS1()runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from UTRAN + v_TI := f_IMS_IPCAN_WaitForData(OtherIPCAN); // @sic R5s150704 sic@ + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + // Table 13.4.3.32.3.2-3 + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + f_IMS_AnnexC39_Step3_5(v_InviteRequestWithSdp, -, v_TI); // @sic R5s150704 sic@ + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.33 + * @status + */ + function f_TC_13_4_3_33_IMS1()runs on IMS_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MO call */ + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var boolean v_DoStep5; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // Step 2-4 of expected sequence defined in annex C.39 of TS 34.229-1. IMS speech call setup. + // FFS IMS signalling for call setup is not completed! + v_DoStep5 := false; + f_IMS_AnnexC39_Step3_5(v_InviteRequestWithSdp, v_DoStep5, v_TI); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.34 + * @status APPROVED (LTE_A) + */ + function f_TC_13_4_3_34_IMS1()runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from UTRAN + v_TI := f_IMS_IPCAN_WaitForData(OtherIPCAN); // @sic R5s150751 sic@ + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + f_IMS_AnnexC39_Step3_5(v_InviteRequestWithSdp, -, v_TI); // @sic R5s150751 sic@; + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.35 + * @status + */ + function f_TC_13_4_3_35_IMS1()runs on IMS_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MT call */ + + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // @siclog "Step 3-11" siclog@ + f_IMS_MTCallSetup_AnnexC40_Step3_11(v_InviteRequestWithSdp, tsc_ATCF_URI, v_TI); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.36 + * @status + */ + function f_TC_13_4_3_36_IMS1()runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from UTRAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + // Receive INVITE message after the rSRVCC Handover + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // @siclog "Step 3-11" siclog@ + f_IMS_MTCallSetup_AnnexC40_Step3_11(v_InviteRequestWithSdp, tsc_ATCF_URI, v_TI); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.37 + * @status + */ + function f_TC_13_4_3_37_IMS1()runs on IMS_PTC + { /* Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC / HO cancelled */ + + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + // Table 13.4.3.37.3.2-3 + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + f_UT_HangupIMSCall(MMI); // Reject the call. + + // Table 13.4.3.37.3.2-4 + // Annex C.41 of TS 34.229-1. IMS speech call reject. + f_IMS_AnnexC41(v_InviteRequestWithSdp); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.38 + * @status + */ + function f_TC_13_4_3_38_IMS1() runs on IMS_PTC + { + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + // Table 13.4.3.38.3.2-3 + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + f_UT_HangupIMSCall(MMI); // Reject the call. + + //f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // Table 13.4.3.38.3.2-4 + // Annex C.41 of TS 34.229-1. IMS speech call reject. + f_IMS_AnnexC41(v_InviteRequestWithSdp); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.39 + * @status + */ + function f_TC_13_4_3_39_IMS1()runs on IMS_PTC + { /* Inter-system mobility / UTRA CS voice + PS Data to E-UTRA voice / rSRVCC */ + + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + // Receive INVITE message after the rSRVCC Handover + // Table 13.4.3.39.3.2-3 + v_InviteRequestWithSdp := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + f_IMS_AnnexC39_Step3_5(v_InviteRequestWithSdp, -, v_TI); + + f_IMS_TestBody_Set(false); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.40 + * @status + */ + function f_TC_13_4_3_40_IMS1()runs on IMS_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC / Multiple voice calls with mimd-call feature */ + + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog1; + var IMS_InviteRequestWithSdp_Type v_InviteRequestWithSdp_Dialog2; + var charstring v_TI; + + f_IMS_PTC_Init(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_Registration(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + f_IMS_TestBody_Set(true); + + // @siclog "Step 2-5" siclog@ + f_IMS_IPCAN_WaitForTrigger(IPCAN); + f_IMS_AnnexC42(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + + // Wait for TI value to be sent from GERAN + v_TI := f_IMS_IPCAN_WaitForData(IPCAN); + + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // Dialog 1 - Active Call + // Receive INVITE message after the rSRVCC Handover + // TS 36.523-1 Table 13.4.3.40.3.2-3 + v_InviteRequestWithSdp_Dialog1 := f_IMS_AnnexC39_C40_Step2(); + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); // @sic R5s150807 sic@ + + // Complete IMS signalling after DRBs for voice have been established + f_IMS_IPCAN_WaitForTrigger(IPCAN); + + // IMS Speech call setup + // TS 36.523-1 Table 13.4.3.40.3.2-4 + f_IMS_AnnexC39_Step3_5(v_InviteRequestWithSdp_Dialog1, -, v_TI); + + // Dialog 2 - Held Call + // Refer Request for tranfering the addditional CS to PS call + // TS 36.523-1 Table 13.4.3.40.3.2-5 + v_InviteRequestWithSdp_Dialog2 := f_IMS_AnnexC43(); + + f_IMS_TestBody_Set(false); + + //Activate Dialog + f_IMS_PTC_ImsInfo_ActivateDialog(firstDialog); + + //Release Dialog 1 + f_IMS_CallReleaseMO(v_InviteRequestWithSdp_Dialog1.Invite); + + //Release Dialog 2 + //f_IMS_CallReleaseMO(v_InviteRequestWithSdp_Dialog2.Invite); + + // Postamble + f_IMS_IPCAN_SendCoOrdMsg(IPCAN); + f_IMS_IpcanReleaseWithOptionalDeregistration(); + } +} diff --git a/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_UTRAN.ttcn new file mode 100644 index 0000000..be567b0 --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/13/RSRVCC_EUTRA_UTRAN.ttcn @@ -0,0 +1,539 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 12:41:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14486 $ +/******************************************************************************/ + +module RSRVCC_EUTRA_UTRAN +{ + import from CommonIratDefs all; + import from CommonDefs all; + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + import from UTRAN_Component all; + import from UTRAN_CommonFunctions all; + import from UTRAN_IRAT_CommonProcedures all; + import from UTRAN_CommonDefs all; + import from UTRAN_RAB_Functions all; + import from UTRAN_ConfigurationSteps all; + import from UTRAN_CellInfo all; + import from NAS_CommonTypeDefs all; + import from NAS_24008Templates_IRAT all; + import from IMS_PTC_CoordMsg all; + import from EUTRA_CapabilityFunctions all; + import from UTRAN_TTCN_ASP_Templates all; + import from UTRAN_RRC_Handover_Templates all; + import from UTRANGERAN_CommonFunctions all; + + template (value) RSR_VCC_Info cs_RSRVCCInfo := + { /* @status APPROVED (LTE_A) */ + nonce := oct2bit(tsc_NonceMSC), + ims_Information := f_Encode_ATGWTransferDetails() + }; + + /* @desc Call A-B in state U10 with auxiliary state Call Held and Call A-C in U10 34.108 cl. 7.2.3.3.1.4 @sic R5-150740 sic@ + * @param p_CellId + * @return MultiTI_Type + * @status + */ + function f_UTRAN_CallA_B_Held_A_C_Active(UTRAN_CellId_Type p_CellId) runs on UTRAN_PTC return MultiTI_Type + { + var TI v_TI_R; + + v_TI_R := f_UTRAN_MO_SpeechCall(p_CellId); // @sic R5-145740 sic@ + return f_UTRAN_CallA_B_Held_A_C_Active_Common (p_CellId, v_TI_R); + } + + //---------------------------------------------------------------------- + // Test cases + //---------------------------------------------------------------------- + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.32 + * @status APPROVED (LTE_A) + */ + function f_TC_13_4_3_32_UTRAN() runs on UTRAN_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC */ + + // Power levels as specified in Table 13.4.3.32.3.2-1: + var integer v_T0_CPICH_Cell5 := -88; + var integer v_T0_PCCPCH_Cell5 := -88; + var integer v_T1_CPICH_Cell5 := -64; + var integer v_T1_PCCPCH_Cell5 := -64; + var integer v_T2_CPICH_Cell5 := -88; + var integer v_T2_PCCPCH_Cell5 := -88; + var octetstring v_RRCConnectionConfigurationMessage; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + var TI v_TI; + + // Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + // Create and configure Cell 5 + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + + // Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Get Cell Parameters for EUTRA cell + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); + + f_UTRAN_SetCellPower(utran_Cell5, v_T0_CPICH_Cell5, v_T0_PCCPCH_Cell5); + + //Receive updated auth parameters + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s150704 sic@ + + //@siclog "Step 7" siclog@ + // Wait for trigger from EUTRAN side + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_PCCPCH_Cell5); + + //@siclog "Step 8" siclog@ + /* Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.8 indicate + that the UE is camped on UTRAN Cell 5? */ + f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); // @sic R5s150704 sic@ + + // @siclog "Step 9 - 10" siclog@ + v_TI := f_UTRAN_MO_SpeechCall(utran_Cell5); // @sic R5s150704 sic@ + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(bit2int(valueof(v_TI.tiVal))))); + // --- CS Call is now established + + // @siclog "Step 11" siclog@ + // SS adjusts cell levels according to row "T2" of table 13.4.3.32.3.2-1. + f_UTRAN_SendAuthCoOrdParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); // @sic R5s150704 sic@ + f_UTRAN_SetCellPower(utran_Cell5, v_T2_CPICH_Cell5, v_T2_PCCPCH_Cell5); + + v_SecurityInfo := f_UTRAN_Security_Get(); + + // @siclog "Step 12" siclog@ + // The SS transmit a HANDOVER FROM UTRAN COMMAND including rSRVCC details on Cell 5. + + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0], -, v_SecurityInfo.authKeys.AuthCS.CKeySeq); // @sic R5s150704 sic@ + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + tsc_RRC_TI, + v_RRCConnectionConfigurationMessage, + cs_RSRVCCInfo))); + // Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + + f_UTRAN_TestBody_Set(false); + f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType (utran_Cell5)); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.34 + * @status APPROVED (LTE_A) + */ + function f_TC_13_4_3_34_UTRAN() runs on UTRAN_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC */ + + var octetstring v_RRCConnectionConfigurationMessage; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + var TI v_TI; + + // Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + // Create and configure Cell 5 + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + + // Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Get Cell Parameters for EUTRA cell + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); + + f_UTRAN_SetCellPower(utran_Cell5, -88, -88); + + //Receive updated auth parameters + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s150704 sic@ + + //@siclog "Step 7" siclog@ + // Wait for trigger from EUTRAN side + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + f_UTRAN_SetCellPower(utran_Cell5, -64, -64); + + //@siclog "Step 8" siclog@ + /* Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.8 indicate + that the UE is camped on UTRAN Cell 5? */ + f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); // @sic R5s150704 sic@ + + // @siclog "Step 9 - 10" siclog@ + // stop at Alerting + v_TI := f_UTRAN_MO_SpeechCall(utran_Cell5, -, -, -, true); // @sic R5s150751 sic@ + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(bit2int(valueof(v_TI.tiVal))))); + + // --- CS Call is now established + + // @siclog "Step 11" siclog@ + // SS adjusts cell levels according to row "T2" of table 13.4.3.32.3.2-1. + f_UTRAN_SendAuthCoOrdParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); // @sic R5s150704 sic@ + f_UTRAN_SetCellPower(utran_Cell5, -88, -88); + + v_SecurityInfo := f_UTRAN_Security_Get(); + + // @siclog "Step 12" siclog@ + // The SS transmit a HANDOVER FROM UTRAN COMMAND including rSRVCC details on Cell 5. + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0], -, v_SecurityInfo.authKeys.AuthCS.CKeySeq); // @sic R5s150704 sic@ + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + tsc_RRC_TI, + v_RRCConnectionConfigurationMessage, + cs_RSRVCCInfo))); + // Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); + + f_UTRAN_TestBody_Set(false); + f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.36 + * @status + */ + function f_TC_13_4_3_36_UTRAN() runs on UTRAN_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC */ + + var octetstring v_RRCConnectionConfigurationMessage; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + // Power levels as specified in Table 13.4.3.36.3.2-1: + var integer v_T0_CPICH_Cell5 := -88; + var integer v_T0_PCCPCH_Cell5 := -88; + var integer v_T1_CPICH_Cell5 := -64; + var integer v_T1_PCCPCH_Cell5 := -64; + var integer v_T2_CPICH_Cell5 := -88; + var integer v_TI := bit2int(valueof(cs_TI_MT.tiVal)); // f_UTRAN_MT_SpeechCall_Steps7_17 uses this default template + + // Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + // Create and configure Cell 5 + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + + // Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Get Cell Parameters for EUTRA cell + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); + + f_UTRAN_SetCellPower(utran_Cell5, v_T0_CPICH_Cell5,v_T0_PCCPCH_Cell5); + + //Receive updated auth parameters + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s150704 sic@ + + //@siclog "Step 7" siclog@ + // Wait for trigger from EUTRAN side + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_PCCPCH_Cell5); + + //@siclog "Step 8" siclog@ + /* Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.8 indicate + that the UE is camped on UTRAN Cell 5? + */ + f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); // @sic R5s150704 sic@ + + // @siclog "Step 9 - 10" siclog@ + // Stop at Alerting + f_UTRAN_GoToState6_9_MT(utran_Cell5, true); + + f_IMS_IPCAN_SendCoOrdMsg(IMS[tsc_Index_PDN1], cms_IPCAN_IMS_Data (int2str(v_TI))); // Send TI value to IMS + + // @siclog "Step 11" siclog@ + // SS adjusts cell levels according to row "T2" of table 13.4.3.36.3.2-1. + f_UTRAN_SendAuthCoOrdParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); // @sic R5s150704 sic@ + f_UTRAN_SetCellPower(utran_Cell5,v_T2_CPICH_Cell5, v_T2_CPICH_Cell5); + + v_SecurityInfo := f_UTRAN_Security_Get(); + + // @siclog "Step 12" siclog@ + // The SS transmit a HANDOVER FROM UTRAN COMMAND including rSRVCC details on Cell 5. + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0], -, v_SecurityInfo.authKeys.AuthCS.CKeySeq); // @sic R5s150704 sic@ + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + tsc_RRC_TI, + v_RRCConnectionConfigurationMessage, + cs_RSRVCCInfo))); + // Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); + + f_UTRAN_TestBody_Set(false); + f_UTRAN_ReleaseCell ( utran_Cell5, f_UTRAN_CellInfo_GetConfigType (utran_Cell5) ); + + } + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.38 + * @status + */ + function f_TC_13_4_3_38_UTRAN() runs on UTRAN_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC / HO cancelled*/ + + // Power levels as specified in Table 13.4.3.38.3.2-1: + var integer v_T0_CPICH_Cell5 := -88; + var integer v_T0_PCCPCH_Cell5 := -88; + var integer v_T1_CPICH_Cell5 := -64; + var integer v_T1_PCCPCH_Cell5 := -64; + var integer v_T2_CPICH_Cell5 := -88; + var integer v_T2_PCCPCH_Cell5 := -88; + var octetstring v_RRCConnectionConfigurationMessage; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + var boolean v_UEinAlertingStateU9; + + // Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + // Create and configure Cell 5 + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + + // Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Get Cell Parameters for EUTRA cell -FFS + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); + + f_UTRAN_SetCellPower(utran_Cell5, v_T0_CPICH_Cell5, v_T0_PCCPCH_Cell5); + + //Receive updated auth parameters + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s150704 sic@ + + //@siclog "Step 7" siclog@ + // Wait for trigger from EUTRAN side + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_PCCPCH_Cell5); + + //@siclog "Step 8" siclog@ + /* Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.8 indicate + that the UE is camped on UTRAN Cell 5? + */ + f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); // @sic R5s150704 sic@ + + // @siclog "Step 9 Void" siclog@ + + // @siclog "Step 10" siclog@ + // Step 1 to 15 of expected sequence in section 7.2.3.1 of TS 34.108. UE in alerting CC state U9. + v_UEinAlertingStateU9 := true; + f_UTRAN_GoToState6_9_MT(utran_Cell5, v_UEinAlertingStateU9); + + // --- CS Call is now established + + // @siclog "Step 11" siclog@ + // SS adjusts cell levels according to row "T2" of table 13.4.3.38.3.2-1. + f_UTRAN_SendAuthCoOrdParameters (EUTRA, omit); + f_IRAT_WaitForCoOrd_Trigger (EUTRA); // @sic R5s150704 sic@ + f_UTRAN_SetCellPower(utran_Cell5, v_T2_CPICH_Cell5, v_T2_PCCPCH_Cell5); + + v_SecurityInfo := f_UTRAN_Security_Get(); + + // @siclog "Step 12" siclog@ + // The SS transmit a HANDOVER FROM UTRAN COMMAND including rSRVCC details on Cell 5. + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0], -, v_SecurityInfo.authKeys.AuthCS.CKeySeq); // @sic R5s150704 sic@ + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + tsc_RRC_TI, + v_RRCConnectionConfigurationMessage, + cs_RSRVCCInfo))); + // Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); + + f_UTRAN_TestBody_Set(false); + f_UTRAN_ReleaseCell ( utran_Cell5, f_UTRAN_CellInfo_GetConfigType (utran_Cell5) ); + + } + + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.39 + * @status + */ + function f_TC_13_4_3_39_UTRAN() runs on UTRAN_PTC + { /* Inter-system mobility / UTRA CS voice + PS Data to E-UTRA voice / rSRVCC */ + + // Power levels as specified in Table 13.4.3.39.3.2-1: + var integer v_T0_CPICH_Cell5 := -88; + var integer v_T0_PCCPCH_Cell5 := -88; + var integer v_T1_CPICH_Cell5 := -64; + var integer v_T1_PCCPCH_Cell5 := -64; + var integer v_T2_CPICH_Cell5 := -88; + var integer v_T2_PCCPCH_Cell5 := -88; + var octetstring v_RRCConnectionConfigurationMessage; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + + // Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + // Create and configure Cell 5 + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + + // Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Get Cell Parameters for EUTRA cell + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); + + f_UTRAN_SetCellPower(utran_Cell5, v_T0_CPICH_Cell5, v_T0_PCCPCH_Cell5); + + //Receive updated auth parameters + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s150704 sic@ + + //@siclog "Step 7" siclog@ + // Wait for trigger from EUTRAN side + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_PCCPCH_Cell5); + + //@siclog "Step 8" siclog@ + /* Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.8 indicate + that the UE is camped on UTRAN Cell 5? + */ + f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); // @sic R5s150704 sic@ + + // @siclog "Step 9 - 10" siclog@ + f_UTRAN_MO_SpeechCall(utran_Cell5); + + // --- CS Call is now established + + // @siclog "Step 11" siclog@ + // SS adjusts cell levels according to row "T2" of table 13.4.3.39.3.2-1. + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // Tell to EUTRA PTC to adjust power levels + f_UTRAN_SetCellPower(utran_Cell5, v_T2_CPICH_Cell5, v_T2_PCCPCH_Cell5); + + v_SecurityInfo := f_UTRAN_Security_Get(); + + // @siclog "Step 12" siclog@ + // UE initiates packet switched session according to procedure 7.2.4.2 of TS 34.108 and events as per steps 5-13 in table 7.2.4.2.3 occur + f_UTRAN_Setup_RAB_PS_and_ConvSpeech_PSexists(utran_Cell5); // @sic R5-152145 sic@ + + // @siclog "Step 13" siclog@ + // The SS transmit a HANDOVER FROM UTRAN COMMAND including rSRVCC details on Cell 5. + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0], 2, v_SecurityInfo.authKeys.AuthCS.CKeySeq); // @sic R5s150704 sic@); // @sic R5-152145 sic@ + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + tsc_RRC_TI, + v_RRCConnectionConfigurationMessage, + cs_RSRVCCInfo))); + // Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); + + f_UTRAN_TestBody_Set(false); + f_UTRAN_ReleaseCell ( utran_Cell5, f_UTRAN_CellInfo_GetConfigType (utran_Cell5) ); +} + + /* + * @desc REFERENCE TS 36.523-1 clause 13.4.3.40 + * @status + */ + function f_TC_13_4_3_40_UTRAN() runs on UTRAN_PTC + { /* Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC / Multiple voice calls with mimd-call feature */ + + // Power levels as specified in Table 13.4.3.39.3.2-1: + var integer v_T0_CPICH_Cell5 := -88; + var integer v_T0_PCCPCH_Cell5 := -88; + var integer v_T1_CPICH_Cell5 := -64; + var integer v_T1_PCCPCH_Cell5 := -64; + var integer v_T2_CPICH_Cell5 := -88; + var integer v_T2_PCCPCH_Cell5 := -88; + var octetstring v_RRCConnectionConfigurationMessage; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; + + // Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + // Create and configure Cell 5 + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + + // Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Get Cell Parameters for EUTRA cell -FFS + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); + + f_UTRAN_SetCellPower(utran_Cell5, v_T0_CPICH_Cell5, v_T0_PCCPCH_Cell5); + + //Receive updated auth parameters + f_UTRAN_InterRAT_InitialiseAuthParams(); // @sic R5s150704 sic@ + + //@siclog "Step 6" siclog@ + // Wait for trigger from EUTRAN side + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_PCCPCH_Cell5); + + //@siclog "Step 7" siclog@ + /* Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.8 indicate + that the UE is camped on UTRAN Cell 5? + */ + f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); // @sic R5s150704 sic@ + + //@siclog "Step 8" siclog@ + f_UTRAN_CallA_B_Held_A_C_Active (utran_Cell5); + // --- Both CS Calls are now established + + // @siclog "Step 11" siclog@ + // SS adjusts cell levels according to row "T2" of table 13.4.3.40.3.2-1. + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); // Tell to EUTRA PTC to adjust power levels + f_UTRAN_SetCellPower(utran_Cell5, v_T2_CPICH_Cell5, v_T2_PCCPCH_Cell5); + + v_SecurityInfo := f_UTRAN_Security_Get(); + + // @siclog "Step 13" siclog@ + // The SS transmit a HANDOVER FROM UTRAN COMMAND including rSRVCC details on Cell 5. + + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0], -, v_SecurityInfo.authKeys.AuthCS.CKeySeq); // @sic R5s150704 sic@ + + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, + tsc_RRC_TI, + v_RRCConnectionConfigurationMessage, + cs_RSRVCCInfo))); + // Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); + + f_UTRAN_TestBody_Set(false); + f_UTRAN_ReleaseCell ( utran_Cell5, f_UTRAN_CellInfo_GetConfigType (utran_Cell5) ); + + } + + + +} diff --git a/LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn similarity index 78% rename from LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn index 8403815..02343d6 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CellInfo_MBMS.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-01 16:55:52 +0200 (Tue, 01 Jul 2014) $ -// $Rev: 11796 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 10:07:43 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14313 $ /******************************************************************************/ module EUTRA_CellInfo_MBMS { @@ -28,9 +28,11 @@ module EUTRA_CellInfo_MBMS { //================================================================================================================= const Pmch_InfoIndex_Type tsc_PMCH_InfoIndex_Def := 0; /* @status APPROVED (LTE_A) */ const LogicalChannelIdentity_r9_Type tsc_MRB1_LCHId := 1; /* @status APPROVED (LTE_A) */ - const Mbsfn_AreaId_r9_Type tsc_Mbsfn_AreaId_Def := 0; /* @status APPROVED (LTE_A) */ - const Mbsfn_AreaId_r9_Type tsc_Mbsfn_AreaId_1 := 1; /* @status APPROVED (LTE_A) */ + const MBSFN_AreaId_r12 tsc_Mbsfn_AreaId_Def := 0; /* @status APPROVED (LTE_A) */ + const MBSFN_AreaId_r12 tsc_Mbsfn_AreaId_1 := 1; /* @status APPROVED (LTE_A) */ const MBMS_SAI_r11 tsc_MBMS_SAI_Def := 1; /* @status APPROVED (LTE_A) */ + //The MBSFN subframe allocations of all neighbour cells are identical to or subsets of that in the serving cell on this frequency, if configured, and of that in the PCell otherwise + const NeighCellConfig tsc_NeighCellConfig_NeighbourMBSFN := '10'B; /* @status APPROVED (LTE_A) */ //=================================================================================================================== // TEMPLATES @@ -102,23 +104,25 @@ module EUTRA_CellInfo_MBMS { notificationConfig_r9 := cs_508_MBMS_NotificationConfig_Def(p_NotificationOffset, p_NotificationSF_Index_r9), lateNonCriticalExtension := omit }; - template (value) MBMS_SAI_InterFreq_r11 cs_508_MBMS_SAI_InterFreq_r11_Def ( ARFCN_ValueEUTRA_r9 p_Dl_CarrierFreq , - MBMS_SAI_r11 p_MBMS_SAI_r11):= + + template (value) MBMS_SAI_InterFreq_r11 cs_508_MBMS_SAI_InterFreq_r11_Def(ARFCN_ValueEUTRA_r9 p_Dl_CarrierFreq, + MBMS_SAI_r11 p_MBMS_SAI_r11) := + { /* @status APPROVED (LTE_A) */ + dl_CarrierFreq_r11 := p_Dl_CarrierFreq, + mbms_SAI_List_r11 := { p_MBMS_SAI_r11 } + }; + + template (value) MBMS_SAI_InterFreq_v1140 cs_MBMS_SAI_InterFreq_v1140_Def := { - dl_CarrierFreq_r11 := p_Dl_CarrierFreq, - mbms_SAI_List_r11 := { p_MBMS_SAI_r11 } + multiBandInfoList_r11 := omit }; - template (value) MBMS_SAI_InterFreq_v1140 cs_MBMS_SAI_InterFreq_v1140_Def := - { - multiBandInfoList_r11 := omit - }; - template (value) SystemInformationBlockType15_r11 cs_508_SystemInformationBlockType15_Def(template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, - template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit ) := + template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit, + MBMS_SAI_r11 p_MBMS_SAI_r11 := tsc_MBMS_SAI_Def) := { // from 36.508 Table 4.4.3.3-14: SystemInformationBlockType15 /* @status APPROVED (LTE_A) */ - mbms_SAI_IntraFreq_r11 := { tsc_MBMS_SAI_Def }, + mbms_SAI_IntraFreq_r11 := { p_MBMS_SAI_r11 },//@sic R5s140821 sic@ mbms_SAI_InterFreqList_r11 := p_MBMS_SAI_InterFreqList_r11, lateNonCriticalExtension := omit, mbms_SAI_InterFreqList_v1140 := p_MBMS_SAI_InterFreqList @@ -127,6 +131,48 @@ module EUTRA_CellInfo_MBMS { //=================================================================================================================== // FUNCTIONS //=================================================================================================================== + /* + * @desc Assign the parameterised NeighCellConfig value in SIB3 of the cell + * @param p_CellId + * @param p_NeighCellConfig + * @status APPROVED (LTE_A) + */ + function f_EUTRA_CellInfo_SetSib3_NeighCellConfig(EUTRA_CellId_Type p_CellId, + NeighCellConfig p_NeighCellConfig) runs on EUTRA_PTC + { + var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + + v_CellInfo.Sysinfo.BCCH_Info.SIs[1].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib3.intraFreqCellReselectionInfo.neighCellConfig := p_NeighCellConfig; + f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); + } + + /* + * @desc Assign the parameterised NeighCellConfig value in all interFreqCarrier cells of SIB5 of the cell + * @param p_CellId + * @param p_NeighCellConfig + * @status APPROVED (LTE_A) + */ + function f_EUTRA_CellInfo_SetSib5_NeighCellConfig(EUTRA_CellId_Type p_CellId, + NeighCellConfig p_NeighCellConfig) runs on EUTRA_PTC + { //@sic R5-153741 sic@ + var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + var integer i; + + select (v_CellInfo.Sysinfo.Combination) { + case (c3, c9, c10a, c12, c16, c18, c20) { + for (i:=0; i < lengthof(v_CellInfo.Sysinfo.BCCH_Info.SIs[2].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib5.interFreqCarrierFreqList); i := i+1){ + v_CellInfo.Sysinfo.BCCH_Info.SIs[2].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib5.interFreqCarrierFreqList[i].neighCellConfig := p_NeighCellConfig; + } + } + case (c13) { + for (i:=0; i < lengthof(v_CellInfo.Sysinfo.BCCH_Info.SIs[3].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib5.interFreqCarrierFreqList); i := i+1){ + v_CellInfo.Sysinfo.BCCH_Info.SIs[3].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib5.interFreqCarrierFreqList[i].neighCellConfig := p_NeighCellConfig; + } + } + } + f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); + } + /* * @desc Set the MBSFN Area configuration [p_Index] of the cell to the parameterized value * @param p_CellId @@ -135,7 +181,7 @@ module EUTRA_CellInfo_MBMS { * @status APPROVED (LTE_A) */ function f_EUTRA_CellInfo_SetMBSFN_AreaConfiguration(EUTRA_CellId_Type p_CellId, - Mbsfn_AreaId_r9_Type p_Mbsfn_AreaId, + MBSFN_AreaId_r12 p_Mbsfn_AreaId, integer p_Index := 0) runs on EUTRA_PTC { var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); @@ -411,54 +457,63 @@ module EUTRA_CellInfo_MBMS { } } } + /* * @desc Change the sysinfo and sysinfo combination of the cell from c16 to c20 * @param p_CellId - * @status + * @param p_MBMS_SAI_InterFreqList_r11 (default value: omit) + * @param p_MBMS_SAI_InterFreqList (default value: omit) + * @param p_MBMS_SAI_r11 (default value: tsc_MBMS_SAI_Def) + * @status APPROVED (LTE_A) */ - function f_ModifySysinfoCombinationC16_ToC20 ( EUTRA_CellId_Type p_CellId, - template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, - template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit - ) runs on EUTRA_PTC + function f_ModifySysinfoCombinationC16_ToC20(EUTRA_CellId_Type p_CellId, + template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, + template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit, + MBMS_SAI_r11 p_MBMS_SAI_r11 := tsc_MBMS_SAI_Def) runs on EUTRA_PTC { var template (value) SI_List_Type v_SI_List; var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); var template (value) EUTRA_CellInfo_Type v_NewCellInfo := v_CellInfo; var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(f_EUTRA_CellInfo_GetDL_ChBandwidth (p_CellId), f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); - + v_SI_List := { - v_CellInfo.Sysinfo.BCCH_Info.SIs[0], // SIB2 - v_CellInfo.Sysinfo.BCCH_Info.SIs[1], // SIB3 - v_CellInfo.Sysinfo.BCCH_Info.SIs[2], //SIB5 - v_CellInfo.Sysinfo.BCCH_Info.SIs[3], // SIB13 - cs_SystemInformation_Common(cs_SI_SIB15(cs_508_SystemInformationBlockType15_Def( p_MBMS_SAI_InterFreqList_r11, p_MBMS_SAI_InterFreqList ))) //SIB15 + v_CellInfo.Sysinfo.BCCH_Info.SIs[0], // SIB2 + v_CellInfo.Sysinfo.BCCH_Info.SIs[1], // SIB3 + v_CellInfo.Sysinfo.BCCH_Info.SIs[2], //SIB5 + v_CellInfo.Sysinfo.BCCH_Info.SIs[3], // SIB13 + cs_SystemInformation_Common(cs_SI_SIB15(cs_508_SystemInformationBlockType15_Def( p_MBMS_SAI_InterFreqList_r11, p_MBMS_SAI_InterFreqList, p_MBMS_SAI_r11 ))) //@sic R5s140821 sic@SIB15 }; - + v_NewCellInfo.Sysinfo.Combination := c20; - v_NewCellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_5SI( - v_ChannelBandwidthDependency.SIB3_periodicity, - {sibType3}, - v_ChannelBandwidthDependency.SIB5_periodicity, - {sibType5}, - v_ChannelBandwidthDependency.SIB13_periodicity, - {sibType13_v920}, - v_ChannelBandwidthDependency.SIB15_periodicity, - {sibType15_v1130}); + v_NewCellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_5SI(v_ChannelBandwidthDependency.SIB3_periodicity, + {sibType3}, + v_ChannelBandwidthDependency.SIB5_periodicity, + {sibType5}, + v_ChannelBandwidthDependency.SIB13_periodicity, + {sibType13_v920}, + v_ChannelBandwidthDependency.SIB15_periodicity, + {sibType15_v1130}); v_NewCellInfo.Sysinfo.BCCH_Info.SIs := v_SI_List; - + f_EUTRA_CellInfo_Set(p_CellId, v_NewCellInfo); } - + /* * @desc Change the sysinfo and sysinfo combination of the cell from c3 to c18 * @param p_CellId - * @status + * @param p_MBMS_SAI_InterFreqList_r11 (default value: omit) + * @param p_MBMS_SAI_InterFreqList (default value: omit) + * @param p_MBMS_SAI_r11 (default value: tsc_MBMS_SAI_Def) + * @param p_No_IntraFreq_r11 (default value: false) + * @status APPROVED (LTE_A) */ - function f_ModifySysinfoCombinationC3_ToC18 ( EUTRA_CellId_Type p_CellId, - template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, - template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit - ) runs on EUTRA_PTC + function f_ModifySysinfoCombinationC3_ToC18(EUTRA_CellId_Type p_CellId, + template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, + template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit, + MBMS_SAI_r11 p_MBMS_SAI_r11 := tsc_MBMS_SAI_Def, //@sic R5s140840 sic@ + boolean p_No_IntraFreq_r11 := false //@sic R5s140840 sic@ + ) runs on EUTRA_PTC { var template (value) SI_List_Type v_SI_List; var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); @@ -466,60 +521,65 @@ module EUTRA_CellInfo_MBMS { var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(f_EUTRA_CellInfo_GetDL_ChBandwidth (p_CellId), f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); v_SI_List := { - v_CellInfo.Sysinfo.BCCH_Info.SIs[0], // SIB2 - v_CellInfo.Sysinfo.BCCH_Info.SIs[1], // SIB3 - v_CellInfo.Sysinfo.BCCH_Info.SIs[2], //SIB5 - cs_SystemInformation_Common(cs_SI_SIB15(cs_508_SystemInformationBlockType15_Def( p_MBMS_SAI_InterFreqList_r11, p_MBMS_SAI_InterFreqList ))) //SIB15 + v_CellInfo.Sysinfo.BCCH_Info.SIs[0], // SIB2 + v_CellInfo.Sysinfo.BCCH_Info.SIs[1], // SIB3 + v_CellInfo.Sysinfo.BCCH_Info.SIs[2], //SIB5 + // @sic R5s140840 sic@ + cs_SystemInformation_Common(cs_SI_SIB15(cs_508_SystemInformationBlockType15_Def( p_MBMS_SAI_InterFreqList_r11, p_MBMS_SAI_InterFreqList, p_MBMS_SAI_r11 ))) //SIB15 }; - + + // Omit mbms_SAI_IntraFreq_r11 + // @sic R5s140840 sic@ + if( p_No_IntraFreq_r11 ) { + v_SI_List[3].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib15_v1130.mbms_SAI_IntraFreq_r11 := omit; + } + v_NewCellInfo.Sysinfo.Combination := c18; - v_NewCellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_4SI( - v_ChannelBandwidthDependency.SIB3_periodicity, - {sibType3}, - v_ChannelBandwidthDependency.SIB5_periodicity, - {sibType5}, - v_ChannelBandwidthDependency.SIB15_periodicity, - {sibType15_v1130}); + v_NewCellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_4SI(v_ChannelBandwidthDependency.SIB3_periodicity, + {sibType3}, + v_ChannelBandwidthDependency.SIB5_periodicity, + {sibType5}, + v_ChannelBandwidthDependency.SIB15_periodicity, + {sibType15_v1130}); v_NewCellInfo.Sysinfo.BCCH_Info.SIs := v_SI_List; - + f_EUTRA_CellInfo_Set(p_CellId, v_NewCellInfo); } /* * @desc Change the sysinfo and sysinfo combination of the cell from c15 to c19 * @param p_CellId - * @status + * @param p_MBMS_SAI_InterFreqList_r11 (default value: omit) + * @param p_MBMS_SAI_InterFreqList (default value: omit) + * @status APPROVED (LTE_A) */ - function f_ModifySysinfoCombinationC15_ToC19 ( EUTRA_CellId_Type p_CellId, - template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, - template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit - ) runs on EUTRA_PTC + function f_ModifySysinfoCombinationC15_ToC19(EUTRA_CellId_Type p_CellId, + template (omit) MBMS_SAI_InterFreqList_r11 p_MBMS_SAI_InterFreqList_r11 := omit, + template(omit) MBMS_SAI_InterFreqList_v1140 p_MBMS_SAI_InterFreqList := omit) runs on EUTRA_PTC { var template (value) SI_List_Type v_SI_List; var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); var template (value) EUTRA_CellInfo_Type v_NewCellInfo := v_CellInfo; var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(f_EUTRA_CellInfo_GetDL_ChBandwidth (p_CellId), f_EUTRA_CellInfo_GetUL_ChBandwidth (p_CellId)); - v_SI_List := { - v_CellInfo.Sysinfo.BCCH_Info.SIs[0], // SIB2 - v_CellInfo.Sysinfo.BCCH_Info.SIs[1], // SIB3 - v_CellInfo.Sysinfo.BCCH_Info.SIs[2], // SIB13 - cs_SystemInformation_Common(cs_SI_SIB15(cs_508_SystemInformationBlockType15_Def( p_MBMS_SAI_InterFreqList_r11, p_MBMS_SAI_InterFreqList ))) + v_CellInfo.Sysinfo.BCCH_Info.SIs[0], // SIB2 + v_CellInfo.Sysinfo.BCCH_Info.SIs[1], // SIB3 + v_CellInfo.Sysinfo.BCCH_Info.SIs[2], // SIB13 + cs_SystemInformation_Common(cs_SI_SIB15(cs_508_SystemInformationBlockType15_Def( p_MBMS_SAI_InterFreqList_r11, p_MBMS_SAI_InterFreqList ))) }; - + v_NewCellInfo.Sysinfo.Combination := c19; - v_NewCellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_4SI( - v_ChannelBandwidthDependency.SIB3_periodicity, - {sibType3}, - v_ChannelBandwidthDependency.SIB13_periodicity, - {sibType13_v920}, - v_ChannelBandwidthDependency.SIB15_periodicity, - {sibType15_v1130}); + v_NewCellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.schedulingInfoList := cs_SchedulingInfo_4SI(v_ChannelBandwidthDependency.SIB3_periodicity, + {sibType3}, + v_ChannelBandwidthDependency.SIB13_periodicity, + {sibType13_v920}, + v_ChannelBandwidthDependency.SIB15_periodicity, + {sibType15_v1130}); v_NewCellInfo.Sysinfo.BCCH_Info.SIs := v_SI_List; - + f_EUTRA_CellInfo_Set(p_CellId, v_NewCellInfo); - }; + } /* diff --git a/LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn similarity index 99% rename from LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn index 98f3435..50976ca 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CommonFunctions_MBMS.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-08 22:12:54 +0200 (Sun, 08 Jun 2014) $ -// $Rev: 11668 $ +// @version: IWD_15wk38 +// $Date: 2015-07-22 19:21:19 +0200 (Wed, 22 Jul 2015) $ +// $Rev: 14039 $ /******************************************************************************/ module EUTRA_CommonFunctions_MBMS { @@ -37,6 +37,7 @@ module EUTRA_CommonFunctions_MBMS { type MBSFN_SubframeConfig.radioframeAllocationPeriod RadioframeAllocationPeriod_Type; /* @status APPROVED (LTE_A) */ type PMCH_Config_r9.mch_SchedulingPeriod_r9 MCH_SchedulingPeriod_Type; /* @status APPROVED (LTE_A) */ + //-------------------------------------------------------------------------------------------------------------------- // Get / Convert functions //-------------------------------------------------------------------------------------------------------------------- @@ -728,8 +729,8 @@ module EUTRA_CommonFunctions_MBMS { var integer v_MCCH_ModPer := f_EUTRA_Convert_MCCH_ModPeriodToInt(f_EUTRA_CellInfo_GetMCCH_ModPeriod(p_CellId)); var integer v_MCCH_RepPer := f_EUTRA_Convert_MCCH_RepPeriodToInt(f_EUTRA_CellInfo_GetMCCH_RepPeriod (p_CellId)); // Anite MBMS var float v_Wait := int2float( v_MCCH_ModPer + v_MCCH_RepPer) / 100.0; // Mod Period is in frame = 10 ms; 200 ms additional time for delays - var float v_Wait_MCCH_RepPer := int2float(v_MCCH_RepPer + v_MCCH_ModPer) / 100.0; // Period is in frame = 10 ms - //@sic R5s140282 sic@ + var float v_Wait_MCCH_RepPer := int2float(v_MCCH_RepPer ) / 100.0; // Period is in frame = 10 ms + //@sic R5s140282 R5s150723 sic@ // Worst case of 2 mod period if current time is just at the start of modification period. f_EUTRA_TransmitModifiedMCCH_Information(p_CellId, p_McchData, p_Mbsfn_AreaInfo, p_MbsfnAreaConfiguration, p_MRB_List, p_MBSFN_SubframeConfigList); if(not p_Counting_Check){ diff --git a/LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn index 9f9735c..713a5ba 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/EUTRA_CommonTemplates_MBMS.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-04 14:18:48 +0200 (Wed, 04 Jun 2014) $ -// $Rev: 11519 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ /******************************************************************************/ module EUTRA_CommonTemplates_MBMS { @@ -21,7 +21,7 @@ module EUTRA_CommonTemplates_MBMS { import from EUTRA_CellInfo_MBMS all; import from EUTRA_PdcchConfig all; - type MBMSInterestIndication_r11_IEs.mbms_Priority_r11 Mbms_Priority_r11_Type; + type MBMSInterestIndication_r11_IEs.mbms_Priority_r11 Mbms_Priority_r11_Type; /* @status APPROVED (LTE_A) */ //=================================================================================================================== // eMBMS Packet definitions @@ -30,7 +30,7 @@ module EUTRA_CommonTemplates_MBMS { const octetstring tsc_ServiceId_Def := '000000'O; /* @status APPROVED (LTE_A) */ const octetstring tsc_ServiceId_1 := '000001'O; /* @status APPROVED (LTE_A) */ - // TBD if a better packet definition needed a valid RLP PDU + // RLP PDU Definitions based on Random Byte sequence. template (value) RLC_SDU_Type cs_MBMS_Packet1 := f_GetN_OctetsFromPRBS(0,tsc_MBMS_PacSize); /* @status APPROVED (LTE_A) */ template (value) RLC_SDU_Type cs_MBMS_Packet2 := f_GetN_OctetsFromPRBS(10,tsc_MBMS_PacSize); /* @status APPROVED (LTE_A) */ template (value) RLC_SDU_Type cs_MBMS_Packet3 := f_GetN_OctetsFromPRBS(20,tsc_MBMS_PacSize); /* @status APPROVED (LTE_A) */ @@ -90,11 +90,11 @@ module EUTRA_CommonTemplates_MBMS { MRB_List := p_MRB_List }; - template (value) MCCH_Data_Type cs_MCCH_Data(template (omit) Mbsfn_AreaId_r9_Type p_Mbsfn_AreaId_r9, + template (value) MCCH_Data_Type cs_MCCH_Data(template (omit) MBSFN_AreaId_r12 p_Mbsfn_AreaId, template (omit) MCCH_MessageList_Type p_MCCH_MessageList) := { /* @status APPROVED (LTE_A) */ - Mbsfn_AreaId := p_Mbsfn_AreaId_r9, /* Used only for modification of MCCH info. - * Omitted if Mbsfn_AreaInfo is present and mandatory present otherwise */ + Mbsfn_AreaId := p_Mbsfn_AreaId, /* Used only for modification of MCCH info. + * Omitted if Mbsfn_AreaInfo is present and mandatory present otherwise */ MsgList := p_MCCH_MessageList }; @@ -248,11 +248,11 @@ module EUTRA_CommonTemplates_MBMS { Config := { AddOrReconfigure := cs_MTCH_ConfigInfo_Def} }; - template (value) MRB_Identity_Type cs_MRB_Identity_Def(Mbsfn_AreaId_r9_Type p_Mbsfn_AreaId_r9 := tsc_Mbsfn_AreaId_Def, + template (value) MRB_Identity_Type cs_MRB_Identity_Def(MBSFN_AreaId_r12 p_Mbsfn_AreaId := tsc_Mbsfn_AreaId_Def, Pmch_InfoIndex_Type p_Pmch_InfoIndex := tsc_PMCH_InfoIndex_Def, LogicalChannelIdentity_r9_Type p_LogicalChannelIdentity_r9 := tsc_MRB1_LCHId) := { /* @status APPROVED (LTE_A) */ - Mbsfn_AreaId := p_Mbsfn_AreaId_r9, + Mbsfn_AreaId := p_Mbsfn_AreaId, PmchLogicalChannel :=cs_PmchLogicalChannel_Def(p_Pmch_InfoIndex,p_LogicalChannelIdentity_r9) }; @@ -426,8 +426,8 @@ module EUTRA_CommonTemplates_MBMS { template (value) PdcchCandidateList_Type cs_PdcchCandidateList_FDD_eMBMS_5MHz := { /* @status APPROVED (LTE_A) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(8, 10), // subframe 2 @@ -441,8 +441,8 @@ module EUTRA_CommonTemplates_MBMS { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(8, 10), // subframe 1 cs_CCE_StartIndex_DL_UL(8, 10), // subframe 2 @@ -456,8 +456,8 @@ module EUTRA_CommonTemplates_MBMS { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 10), // subframe 0 cs_CCE_StartIndex_DL_UL(10, 8), // subframe 1 cs_CCE_StartIndex_DL_UL(10, 8), // subframe 2 @@ -475,8 +475,8 @@ module EUTRA_CommonTemplates_MBMS { template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_eMBMS_5MHz := { /* @status APPROVED (LTE_A) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(4, 0), // subframe 0 cs_CCE_StartIndex_DL_UL(0, 4), // subframe 1 cs_CCE_StartIndex_DL_UL(0, 0), // subframe 2 @@ -490,8 +490,8 @@ module EUTRA_CommonTemplates_MBMS { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(4, 0), // subframe 0 cs_CCE_StartIndex_DL_UL(0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL(0, 0), // subframe 2 @@ -505,8 +505,8 @@ module EUTRA_CommonTemplates_MBMS { } }, { - tsc_C_RNTI_Def3, // 4369 ('1111'H) - { + RNTI := tsc_C_RNTI_Def3, // 4369 ('1111'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL(0, 8), // subframe 1 cs_CCE_StartIndex_DL_UL(0, 0), // subframe 2 @@ -614,24 +614,25 @@ module EUTRA_CommonTemplates_MBMS { // Templates fro MBMS interest //================================================================================= template (present) UL_DCCH_Message cr_MbmsInterestIndication_Common ( template MBMSInterestIndication_r11_IEs p_MBMSInterestIndication_r11 ) := - { + { /* @status APPROVED (LTE_A) */ message_ := { messageClassExtension :={ c2 := { - mbmsInterestIndication_r11 := { - criticalExtensions := { - c1 := { - interestIndication_r11 := p_MBMSInterestIndication_r11 - } - } + mbmsInterestIndication_r11 := { + criticalExtensions := { + c1 := { + interestIndication_r11 := p_MBMSInterestIndication_r11 + } } + } } } } }; template (present) MBMSInterestIndication_r11_IEs cr_MbmsInterestIndication ( template (present) CarrierFreqListMBMS_r11 p_Mbms_FreqList_r11, - template (omit) Mbms_Priority_r11_Type p_Mbms_Priority_r11 := omit) := { + template Mbms_Priority_r11_Type p_Mbms_Priority_r11 := *) := + { /* @status APPROVED (LTE_A) */ mbms_FreqList_r11 := p_Mbms_FreqList_r11, mbms_Priority_r11 := p_Mbms_Priority_r11, lateNonCriticalExtension := omit, diff --git a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_Counting_TestCases.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_Counting_TestCases.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/LTE_A/17/MBMS_Counting_TestCases.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/MBMS_Counting_TestCases.ttcn index 923058d..32055a0 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_Counting_TestCases.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_Counting_TestCases.ttcn @@ -2,15 +2,15 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-04 13:00:16 +0200 (Fri, 04 Jul 2014) $ -// $Rev: 11807 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module MBMS_Counting_TestCases { - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from CommonDefs all; import from EUTRA_CellInfo all; import from EUTRA_CommonDefs all; @@ -22,13 +22,17 @@ module MBMS_Counting_TestCases { import from EUTRA_CommonProcedures all; import from EUTRA_LoopBack all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from EUTRA_SRB_Templates all; import from UpperTesterFunctions all; import from EUTRA_AuxiliaryFunctions all; import from EUTRA_ASP_TypeDefs all; + + //========================================================= // Templates //=========================================================== + template (value) MBSFNAreaConfiguration_r9 cs_MBSFNAreaConfiguration_173(template (value) MBSFN_SubframeConfig p_MBSFN_SubframeConfig, template (value) TMGI_r9 p_TMGI := cs_TMGI_Def) := // Acc to 36.523-1 Table 17.3.x.3.3-2: MBSFNAreaConfiguration @@ -179,6 +183,7 @@ module MBMS_Counting_TestCases { var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell2, -91) }; var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { cs_CellPower(eutra_Cell1, -91),cs_CellPower(eutra_Cell2, -85) }; timer t_Watchdog := 16.0; // 16 seconds == 3 times the MCCH modification period + timer t_Wait := 6.0; // 6 seconds > 300ms + 15 * 320ms f_EUTRA_Init (c1); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1, c15); @@ -250,7 +255,18 @@ module MBMS_Counting_TestCases { //@siclog "Steps 7C-7F" siclog@ // Execute MBMS counter check procedure - f_Delay (6.0); //> 300ms + 15 * 320ms + //@sic R5-153668 sic@ + t_Wait.start; // > 300ms + 15 * 320ms + alt { + [] SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_508_MBMSCountingResponse_Def)) + { + repeat; + } + [] t_Wait.timeout + { + } + } + v_MBMS_CounterValue := f_EUTRA_MBMS_CounterProcedure(eutra_Cell2); if (v_MBMS_CounterValue > 0) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7f: MBMS Counter value greater than 0"); diff --git a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_MCCH_TestCases.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_MCCH_TestCases.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/LTE_A/17/MBMS_MCCH_TestCases.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/MBMS_MCCH_TestCases.ttcn index 5249fd1..243c753 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_MCCH_TestCases.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_MCCH_TestCases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-08-29 16:12:38 +0200 (Fri, 29 Aug 2014) $ -// $Rev: 11957 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 10:01:16 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14360 $ /******************************************************************************/ module MBMS_MCCH_TestCases { @@ -30,6 +30,7 @@ module MBMS_MCCH_TestCases { import from EUTRA_ConfigurationSteps all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from EUTRA_LoopBack all; import from EUTRA_NASSteps all; import from EUTRA_RRCSteps all; @@ -86,6 +87,7 @@ module MBMS_MCCH_TestCases { var NAS_KsiValue v_KsiValue; var EUTRA_SecurityParams_Type v_AuthParams := f_EUTRA_Security_Get(); var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_CellId); //Get FDD or TDD mode from Cell-configuration + var template (value) RadioBearerList_Type v_DrbConfigList := { cs_OneDRB_ConfigAM(tsc_DRB1), cs_OneDRB_ConfigAM(tsc_DRB2) }; /* Step 2 */ v_GutiParameters := f_EUTRA_CellInfo_GetGuti(p_CellId); @@ -102,7 +104,7 @@ module MBMS_MCCH_TestCases { /* step 6-8 of procedure in 36.508 cl. 4.5.3.3 */ v_AuthParams := f_EUTRA_Authentication_InitAS(v_AuthParams, v_NasInd.SecurityProtection.NasCount); - v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasInd.SecurityProtection.NasCount); + v_AuthParams := f_EUTRA_RRC_ActivateSecurity(p_CellId, v_AuthParams, v_NasInd.SecurityProtection.NasCount, v_DrbConfigList); /* @sic R5s150338 change 3.3.6: v_DrbConfigList sic@ */ f_EUTRA_Security_Set(v_AuthParams); //The SS transmits an RRCConnectionReconfiguration message to configure data radio bearer(s) associated with the existing EPS bearer context <-- RRC: RRCConnectionReconfiguration @@ -307,7 +309,7 @@ module MBMS_MCCH_TestCases { function f_TC_17_1_3_EUTRA() runs on EUTRA_PTC { /* MCCH information acquisition/ UE handover to a cell in a new MBSFN area */ var integer v_MBMS_CounterValue := 0; - var integer v_MCCH_RepPer; + var integer v_MCCH_RepPer, v_MCCH_ModPer; var float v_Wait; var Frequency_IE_Type v_Frequency_Cell2; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell2; @@ -355,8 +357,15 @@ module MBMS_MCCH_TestCases { v_Guti_Params := f_EUTRA_CellInfo_GetGuti(eutra_Cell1); f_UT_MBMS_SERVICE_Interest(UT, f_Asn2Nas_PlmnId(v_Guti_Params.PLMN_Identity), oct2str(tsc_ServiceId_1), true); //@sic R5s140440 sic@ f_EUTRA_RbEst_Def(eutra_Cell1); // Default RB establishment + + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //@sic R5s150724 sic@ - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); + // Wait for a period equal to the MCCH modification period for the SS to schedule MBSFNAreaConfiguration message @sic R5s141374 sic@ + v_MCCH_ModPer := f_EUTRA_Convert_MCCH_ModPeriodToInt(f_EUTRA_CellInfo_GetMCCH_ModPeriod(eutra_Cell2)); + v_Wait := int2float(v_MCCH_ModPer) /100.0; // Mod Period is in frame = 10 ms + f_Delay(v_Wait); + + /////////////////////////////////////////////////////////////////////////////////// // Test Body @@ -404,8 +413,8 @@ module MBMS_MCCH_TestCases { //@siclog "Step 8A" siclog@ //The generic procedures described in TS 36.508 subclause 4.5.4.3 are performed on Cell 2 activating UE test loop Mode C. - //@sic R5-144236 sic@ - f_EUTRA_CloseUE_TestLoopModeC(eutra_Cell1, cs_UE_TestLoopModeC_LB_Setup(int2bit(tsc_Mbsfn_AreaId_1, 8))); // Bring UE in test loop mode C + //@sic R5-144236 R5s140915 sic@ + f_EUTRA_CloseUE_TestLoopModeC(eutra_Cell2, cs_UE_TestLoopModeC_LB_Setup(int2bit(tsc_Mbsfn_AreaId_1, 8))); // Bring UE in test loop mode C //@siclog "Steps 9-10" siclog@ // The SS transmits a valid MAC PDU including 'MCH Scheduling Information MAC Control Element with LCID='00001', Stop MTCH= '00000000001' diff --git a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_MTCH_TestCases.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_MTCH_TestCases.ttcn similarity index 97% rename from LTE_A_IWD_14wk37/LTE_A/17/MBMS_MTCH_TestCases.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/MBMS_MTCH_TestCases.ttcn index 1208a00..610d44f 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_MTCH_TestCases.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_MTCH_TestCases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-06-15 14:37:37 +0200 (Mon, 15 Jun 2015) $ +// $Rev: 13850 $ /******************************************************************************/ module MBMS_MTCH_TestCases { @@ -31,6 +31,7 @@ module MBMS_MTCH_TestCases { import from UpperTesterFunctions all; import from EUTRA_AuxiliaryFunctions all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from L2_CommonFunctions all; import from L2_CommonTemplates all; import from MAC_Common all; @@ -284,8 +285,8 @@ module MBMS_MTCH_TestCases { f_EUTRA_RbEst_Def_DisableBSR_PHR(eutra_Cell1); // Default RB establishment f_EUTRA_CloseUE_TestLoopModeA(eutra_Cell1, cs_UE_TestLoopModeA_LB_Setup_NoScaling); // Bring UE in test loop mode A v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell1); - if (v_EUTRA_FDD_TDD_Mode == FDD) { - v_SubFrameAlloc := '101010'B; //corresponds to subframes 1, 3 and 7 + if (v_EUTRA_FDD_TDD_Mode == FDD) {//@sic R5-151780 sic@ + v_SubFrameAlloc := '010101'B; //corresponds to subframes 2, 6 and 8 v_DL_SubFrameNumber := 3; } else { v_SubFrameAlloc := '000010'B; // corresponds to subframe 9 @@ -301,6 +302,7 @@ module MBMS_MTCH_TestCases { // Update and start transmitting modified sys info f_EUTRA_CellInfo_SetMBSFN_SubframeConfiguration(eutra_Cell1, {cs_MBSFN_SubframeConfig(n1, 0, v_SubFrameAlloc)}); f_EUTRA_ModifySysinfo(eutra_Cell1, true, RRC_CONNECTED); + //@siclog "Step 2a" siclog@ f_Delay(13.0) ;// 2.5 times of modification period =512rf // To stop UL Grant Transmision f_EUTRA_StopULGrantTransmission_PUCCH_Sync(eutra_Cell1, cs_TimingInfo_Now); @@ -402,6 +404,9 @@ module MBMS_MTCH_TestCases { f_EUTRA_CellInfo_SetMBSFN_SubframeConfiguration(eutra_Cell1,v_MBSFN_SubframeConfigList); f_EUTRA_ModifySysinfo(eutra_Cell1, true, RRC_CONNECTED); + //@siclog "Step 14" siclog@ + //@sic R5-151780 sic@ + f_Delay(13.0) ;// 2.5 times of modification period =512rf f_EUTRA_TestBody_Set(false); //test body ends diff --git a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_SC_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_SC_CA.ttcn similarity index 71% rename from LTE_A_IWD_14wk37/LTE_A/17/MBMS_SC_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/MBMS_SC_CA.ttcn index ef4fa45..92bacd8 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_SC_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_SC_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-04 15:00:55 +0200 (Wed, 04 Jun 2014) $ -// $Rev: 11524 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 16:14:06 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14413 $ /******************************************************************************/ module MBMS_SC_CA { @@ -24,6 +24,7 @@ module MBMS_SC_CA { import from EUTRA_ConfigurationSteps all; import from EUTRA_CommonProcedures all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from UpperTesterFunctions all; import from EUTRA_LoopBack all; @@ -36,36 +37,7 @@ module MBMS_SC_CA { import from EUTRA_Measurement_Templates_CA all; import from Parameters all; - type MBMSInterestIndication_r11_IEs.mbms_Priority_r11 Mbms_Priority_r11_Type; - - //================================================================================= - // Templates - //================================================================================= - /*template (present) UL_DCCH_Message cr_MbmsInterestIndication_Common ( template MBMSInterestIndication_r11_IEs p_MBMSInterestIndication_r11 ) := - { - message_ := { - messageClassExtension :={ - c2 := { - mbmsInterestIndication_r11 := { - criticalExtensions := { - c1 := { - interestIndication_r11 := p_MBMSInterestIndication_r11 - } - } - } - } - } - } - }; - - template (present) MBMSInterestIndication_r11_IEs cr_MbmsInterestIndication ( template (present) CarrierFreqListMBMS_r11 p_Mbms_FreqList_r11, - template (omit) Mbms_Priority_r11_Type p_Mbms_Priority_r11 := omit) := { - mbms_FreqList_r11 := p_Mbms_FreqList_r11, - mbms_Priority_r11 := p_Mbms_Priority_r11, - lateNonCriticalExtension := omit, - nonCriticalExtension := omit - } */ -template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq1, + /*template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq1, AllowedMeasBandwidth p_MeasurementBandwidth1, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq2, AllowedMeasBandwidth p_MeasurementBandwidth2, @@ -74,7 +46,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, - cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq1, p_MeasurementBandwidth1), + cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq1, p_MeasurementBandwidth1,-,-,-,-,-,), p_MeasObjectId_2, cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq2, p_MeasurementBandwidth2)), omit, @@ -82,13 +54,13 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu omit, cs_MeasIdToAddModList_1Entry( 1, p_MeasObjectId_2, tsc_IdReportConfig_A3 ), -, - p_MeasGapConfig); + p_MeasGapConfig); */ - template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_17_4_X_EventA2(RRC_TransactionIdentifier p_RRC_TI, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, - AllowedMeasBandwidth p_MeasurementBandwidth, - MeasObjectId p_MeasObjectId) := - + template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_17_4_X_EventA2(RRC_TransactionIdentifier p_RRC_TI, + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, + AllowedMeasBandwidth p_MeasurementBandwidth, + MeasObjectId p_MeasObjectId) := + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(p_MeasObjectId, @@ -107,29 +79,26 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu cs_MeasIdToAddModList_1Entry(1, p_MeasObjectId, tsc_IdReportConfig_A2))); - - //================================================================================= - // FUNCTIONS - //================================================================================= - - //================================================================================= // TEST CASES //================================================================================= /* * @desc REFERENCE TS 36.523-1 clause 17.4.9.x - * @status + * @param p_PCellId + * @param p_SCellId + * @param p_CA_Type + * @status APPROVED (LTE_A) */ function f_TC_17_4_9_Common(EUTRA_CellId_Type p_PCellId, EUTRA_CellId_Type p_SCellId, CA_Tested_Type p_CA_Type) runs on EUTRA_PTC { /* CA / Start MBMS reception on Non-Serving Cell / Continue MBMS reception on SCell after SCell addition */ - var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; - var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { - cs_CellPower(p_SCellId, tsc_ServingCellRS_EPRE) - }; - var MeasObjectId v_MeasObjectId ; + var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; + var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { + cs_CellPower(p_SCellId, tsc_ServingCellRS_EPRE) + }; + var MeasObjectId v_MeasObjectId; var default v_DefaultRef; var PhysCellId v_PhysicalCellIdentity_Scell; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; @@ -139,8 +108,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; var boolean v_UL_CA := pc_UL_CA; var CarrierFreqEUTRA v_CarrierFreq_Scell; - - + f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); f_EUTRA_SetSysinfoCombination_MBMS(p_SCellId,c16); @@ -154,8 +122,6 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_CellConfig_Scell(p_SCellId); //No DRB's created f_EUTRA_CellConfig_MBMS_Def(p_SCellId); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - - //Perform Idle updated procedure to make sure UE is in a known state before test case starts //Bring UE to initial state f_EUTRA_Preamble(p_PCellId, STATE2A_TESTLOOP_ModeC); @@ -164,12 +130,10 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true,tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); - if (p_CA_Type == CA_IntraBand) - { - v_MeasObjectId := tsc_IdMeasObject_f2; - } else - { - v_MeasObjectId := tsc_IdMeasObject_f5; + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous) { + v_MeasObjectId := tsc_IdMeasObject_f2; + } else { + v_MeasObjectId := tsc_IdMeasObject_f5; } v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); @@ -186,7 +150,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_TestBody_Set(true); //@siclog "Step 1-2" siclog@ //Configure Measurement - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, cs_Measurement_Config_A3_InterFreq_CA(v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_PCell.AllowedMeasBandwidth, @@ -194,7 +158,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu v_ChBandDependency_Scell.AllowedMeasBandwidth, v_MeasObjectId, cs_508_MeasGapConfig_GP1))); - //@siclog "Step 3" siclog@ + //@siclog "Step 3" siclog@ //Set cell power level according to T1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -213,27 +177,33 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu cr_MeasurementReport(1, ?, ?, cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysicalCellIdentity_Scell, omit, ?, ?), ?))); - //@siclog "Step 4A-5" siclog@ - f_ModifySysinfoCombinationC16_ToC20(p_SCellId); - f_ModifySysinfoCombinationC3_ToC18 (p_PCellId, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq, - 1)}); - f_EUTRA_ModifySysinfo ( p_PCellId, true, RRC_CONNECTED ); - - //@siclog "Step 6" siclog@ + //@siclog "Step 4A-5" siclog@ + f_ModifySysinfoCombinationC16_ToC20(p_SCellId); + f_ModifySysinfoCombinationC3_ToC18(p_PCellId, + { cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq, 1) }, + -, + -, + true); //@sic R5s150319, R5s150314 sic@ + f_EUTRA_ModifySysinfo(p_PCellId, true, RRC_CONNECTED); + + //@siclog "Step 6" siclog@ //Check: Does the UE transmit MBMSInterestIndication message? SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq})))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6: Does the UE transmit MBMSInterestIndication message"); - + //@siclog "Step 7" siclog@ - f_Delay (2.0); - + f_Delay (2.0); + //@siclog "Steps 8-9" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_SCellId, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_SCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8, // Scheduling Period + -, // Stop MTCH =1 + 7, // transmit 1 MTCH and skip 7 occasions + 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled f_Delay (6.0); //> 300ms + 15 * 320ms @@ -245,7 +215,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 12: MBMS Counter value not greater than 0"); } - + //@siclog "Step 13 - 14" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete @@ -255,22 +225,24 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu p_CA_Type, // CA Type v_UL_CA,// UL CA desired -, //C-RNTI - cs_508_MeasGapConfig_GP1 // - ); + cs_508_MeasGapConfig_GP1); - //@siclog "Steps 15-16" siclog@ + //@siclog "Steps 15-16" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_SCellId, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_SCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8, // Scheduling Period + -, // Stop MTCH =1 + 7, // transmit 1 MTCH and skip 7 occasions + 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Steps 17 - 19" siclog@ // Execute MBMS counter check procedure - v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(p_PCellId); + v_MBMS_CounterValue2 := f_EUTRA_MBMS_CounterProcedure(p_PCellId); if (v_MBMS_CounterValue2 > v_MBMS_CounterValue) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 19: MBMS Counter value greater than 0"); } else { @@ -278,8 +250,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } f_EUTRA_TestBody_Set(false); - deactivate(v_DefaultRef); - //test body ends + deactivate(v_DefaultRef); /////////////////////////////////////////////////////////////////////////////////// // Post Amble @@ -289,18 +260,19 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu // Release RRC Connection and Switch off f_EUTRA_Postamble(p_PCellId, E2_CONNECTED); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.9.1 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.9.1 + * @status APPROVED (LTE_A) */ function f_TC_17_4_9_1_EUTRA () runs on EUTRA_PTC - { /*CA / Start MBMS reception on Non-Serving Cell / Continue MBMS reception on SCell after SCell addition / Intra-band Contiguous CA */ + { /* CA / Start MBMS reception on Non-Serving Cell / Continue MBMS reception on SCell after SCell addition / Intra-band Contiguous CA */ f_TC_17_4_9_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.9.2 - * @status + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.9.2 + * @status APPROVED (LTE_A) */ function f_TC_17_4_9_2_EUTRA () runs on EUTRA_PTC { /* CA / Start MBMS reception on Non-Serving Cell / Continue MBMS reception on SCell after SCell addition / Inter-band CA */ @@ -308,18 +280,21 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } - /* + /* * @desc REFERENCE TS 36.523-1 clause 17.4.10.x - * @status + * @param p_PCellId + * @param p_SCellId + * @param p_CA_Type + * @status APPROVED (LTE_A) */ function f_TC_17_4_10_Common(EUTRA_CellId_Type p_PCellId, - EUTRA_CellId_Type p_SCellId, - CA_Tested_Type p_CA_Type) runs on EUTRA_PTC + EUTRA_CellId_Type p_SCellId, + CA_Tested_Type p_CA_Type) runs on EUTRA_PTC { /* CA / Start MBMS reception on SCell / Continue MBMS reception on Non-Serving after SCell release */ - var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; - var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { - cs_CellPower(p_SCellId, tsc_ServingCellRS_EPRE) - }; + var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; + var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { + cs_CellPower(p_SCellId, tsc_ServingCellRS_EPRE) + }; var PhysCellId v_PhysicalCellIdentity_Scell; var Frequency_IE_Type v_Frequency_IE_PCell; var Frequency_IE_Type v_Frequency_IE_Scell; @@ -327,10 +302,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; var boolean v_UL_CA := pc_UL_CA; var CarrierFreqEUTRA v_CarrierFreq_Scell; - //var default v_DefaultRef; - - - + f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); f_EUTRA_SetSysinfoCombination_MBMS(p_SCellId,c16); @@ -344,17 +316,15 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_CellConfig_Scell(p_SCellId); //No DRB's created f_EUTRA_CellConfig_MBMS_Def(p_SCellId); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - - //Perform Idle updated procedure to make sure UE is in a known state before test case starts //Bring UE to initial state f_EUTRA_Preamble(p_PCellId, STATE2A_TESTLOOP_ModeC); f_EUTRA_RbEst_Def(p_PCellId); // Default RB establishment f_EUTRA_CloseUE_TestLoopModeC(p_PCellId, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C - f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true,tsc_MBMS_SAI_Def); + f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); - v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); + v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); v_ChBandDependency_Scell := f_EUTRA_BandDependentParam(v_Frequency_IE_Scell.DL_ChBandwidth, v_Frequency_IE_Scell.UL_ChBandwidth); @@ -362,7 +332,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu v_ChBandDependency_PCell := f_EUTRA_BandDependentParam(v_Frequency_IE_PCell.DL_ChBandwidth, v_Frequency_IE_PCell.UL_ChBandwidth); v_CarrierFreq_Scell := f_EUTRA_CellInfo_GetEARFCN(p_SCellId); - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); /////////////////////////////////////////////////////////////////////////////////// // Test Body @@ -377,30 +347,37 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu p_CA_Type, // CA Type v_UL_CA,// UL CA desired -, //C-RNTI - cs_508_MeasGapConfig_GP1 // - ); - - //@siclog "Step 2A-3" siclog@ - f_ModifySysinfoCombinationC16_ToC20 (p_SCellId); - f_ModifySysinfoCombinationC3_ToC18 (p_PCellId,{cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq, - 1)}); - f_EUTRA_ModifySysinfo ( p_PCellId, true, RRC_CONNECTED ); - - //@siclog "Step 4" siclog@ + cs_508_MeasGapConfig_GP1, //@sic R5s150285 R5s150287 sic@ + -, -, -, -, -, -, -, -, -, -, + f_EUTRA_CellInfo_GetMBSFN_SubframeConfigList(p_SCellId)); + + //@siclog "Step 2A-3" siclog@ + f_ModifySysinfoCombinationC16_ToC20(p_SCellId); + f_ModifySysinfoCombinationC3_ToC18(p_PCellId, + { cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq, 1) }, + -, + -, + true); //@sic R5s150319, 314 sic@ + f_EUTRA_ModifySysinfo(p_PCellId, true, RRC_CONNECTED); + + //@siclog "Step 4" siclog@ //Check: Does the UE transmit MBMSInterestIndication message? SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq})))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6: Does the UE transmit MBMSInterestIndication message"); - + //@siclog "Step 5" siclog@ - f_Delay (6.0);//> 300ms + 15 * 320ms - + f_Delay (6.0); //> 300ms + 15 * 320ms + //@siclog "Steps 6-7" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_SCellId, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_SCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8, // Scheduling Period + -, // Stop MTCH =1 + 7, // transmit 1 MTCH and skip 7 occasions + 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled f_Delay (6.0); //> 300ms + 15 * 320ms @@ -412,9 +389,8 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 10: MBMS Counter value not greater than 0"); } - - - //@siclog "Step 11 - 12" siclog@ + + //@siclog "Step 11 - 12" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete f_EUTRA_508RRC_Rel_1Scell(p_PCellId, @@ -423,17 +399,20 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //@siclog "Steps 13-14" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_SCellId, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_SCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8, // Scheduling Period + -, // Stop MTCH =1 + 7, // transmit 1 MTCH and skip 7 occasions + 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Steps 15 - 17" siclog@ // Execute MBMS counter check procedure - v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(p_PCellId); + v_MBMS_CounterValue2 := f_EUTRA_MBMS_CounterProcedure(p_PCellId); if (v_MBMS_CounterValue2 > v_MBMS_CounterValue) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 17: MBMS Counter value greater than 0"); } else { @@ -446,49 +425,51 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu /////////////////////////////////////////////////////////////////////////////////// // Post Amble ////////////////////////////////////////////////////////////////////////////////// - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off f_EUTRA_Postamble(p_PCellId, E2_CONNECTED); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.10.1 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.10.1 + * @status APPROVED (LTE_A) */ function f_TC_17_4_10_1_EUTRA () runs on EUTRA_PTC - { /*CA / Start MBMS reception on SCell / Continue MBMS reception on Non-Serving after SCell release / Intra-band Contiguous CA */ + { /* CA / Start MBMS reception on SCell / Continue MBMS reception on Non-Serving after SCell release / Intra-band Contiguous CA */ f_TC_17_4_10_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); } - - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.10.2 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.10.2 + * @status APPROVED (LTE_A) */ function f_TC_17_4_10_2_EUTRA () runs on EUTRA_PTC { /* CA / Start MBMS reception on SCell / Continue MBMS reception on Non-Serving after SCell release / Inter-band CA */ f_TC_17_4_10_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } - /* * @desc REFERENCE TS 36.523-1 clause 17.4.11.x - * @status + * @param p_PCellId + * @param p_SCellId + * @param p_CA_Type + * @status APPROVED (LTE_A) */ function f_TC_17_4_11_Common(EUTRA_CellId_Type p_PCellId, - EUTRA_CellId_Type p_SCellId, - CA_Tested_Type p_CA_Type) runs on EUTRA_PTC + EUTRA_CellId_Type p_SCellId, + CA_Tested_Type p_CA_Type) runs on EUTRA_PTC { /* CA / Start MBMS reception on PCell / Continue MBMS reception after swap of SCell and PCell */ - var integer v_MBMS_CounterValue, v_MBMS_CounterValue2, v_MBMS_CounterValue3; - var template (value) CellPowerList_Type v_CellPowerList_AtT0_T2 := { - cs_CellPower(p_PCellId, -70), - cs_CellPower(p_SCellId, -96) - }; - var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { - cs_CellPower(p_PCellId, -96), - cs_CellPower(p_SCellId, -70) - }; - var MeasObjectId v_MeasObjectId ; - //var default v_DefaultRef; + var integer v_MBMS_CounterValue, v_MBMS_CounterValue2, v_MBMS_CounterValue3; + var template (value) CellPowerList_Type v_CellPowerList_AtT0_T2 := { + cs_CellPower(p_PCellId, -70), + cs_CellPower(p_SCellId, -96) + }; + var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { + cs_CellPower(p_PCellId, -96), + cs_CellPower(p_SCellId, -70) + }; + var MeasObjectId v_MeasObjectId; var Frequency_IE_Type v_Frequency_IE_PCell; var Frequency_IE_Type v_Frequency_IE_SCell; var ChannelBandwidthDependency_Type v_ChBandDependency_PCell; @@ -505,46 +486,42 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu var template(omit) TDD_Config v_TDD_Config := omit; // omitted in FDD var template (value) PUCCH_ConfigDedicated_v1020 v_PUCCH_ConfigDedicated; var template (omit) AdditionalSpectrumEmissionCA_r10_Type v_AdditionalSpectrumEmissionCA_r10 := omit; - var Ul_Bandwidth_Type v_UL_Bandwidth ; - var Dl_Bandwidth_Type v_DL_Bandwidth ; + var Ul_Bandwidth_Type v_UL_Bandwidth; + var Dl_Bandwidth_Type v_DL_Bandwidth; var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency; - var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB ; - var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type ; - - + var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB; + var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type; + f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); f_EUTRA_SetSysinfoCombination_MBMS(p_PCellId,c16); //Set maximim cell powel level for cell P be used in creation f_EUTRA_CellInfo_InitMaxReferencePower(p_PCellId, -70); - f_EUTRA_CellInfo_InitMaxReferencePower(p_SCellId, -70); + f_EUTRA_CellInfo_InitMaxReferencePower(p_SCellId, -70); //Set C-RNTI to be used in s-cell creation f_EUTRA_CellInfo_SetC_RNTI(p_SCellId, tsc_C_RNTI_Def); f_EUTRA_CellConfig_Pcell_Def(p_PCellId); f_EUTRA_CellConfig_Scell(p_SCellId); //No DRB's created - f_EUTRA_CellConfig_MBMS_Def(p_SCellId); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - - + //@sic R5s150349 sic@ + f_EUTRA_CellConfig_MBMS_Def(p_PCellId); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration //Perform Idle updated procedure to make sure UE is in a known state before test case starts //Bring UE to initial state f_EUTRA_Preamble(p_PCellId, STATE2A_TESTLOOP_ModeC); f_EUTRA_RbEst_Def(p_PCellId); // Default RB establishment f_EUTRA_CloseUE_TestLoopModeC(p_PCellId, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C - f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true,tsc_MBMS_SAI_Def); - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); + f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); - if (p_CA_Type == CA_IntraBand) - { - v_MeasObjectId := tsc_IdMeasObject_f2; - } else - { - v_MeasObjectId := tsc_IdMeasObject_f5; + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous) { + v_MeasObjectId := tsc_IdMeasObject_f2; + } else { + v_MeasObjectId := tsc_IdMeasObject_f5; } - v_PhysicalCellIdentity_Pcell := f_EUTRA_CellInfo_GetPhyCellId(p_PCellId); - v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); + v_PhysicalCellIdentity_Pcell := f_EUTRA_CellInfo_GetPhyCellId(p_PCellId); + v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_Frequency_IE_SCell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); v_ChBandDependency_SCell := f_EUTRA_BandDependentParam(v_Frequency_IE_SCell.DL_ChBandwidth, v_Frequency_IE_SCell.UL_ChBandwidth); @@ -566,31 +543,31 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu p_SCellId, 1, //SCellIndex_r10 p_CA_Type, // CA Type - v_UL_CA,// UL CA desired - -, //C-RNTI - - // - ); - //@siclog "Step 3" siclog@ - f_ModifySysinfoCombinationC16_ToC20 (p_PCellId); - f_EUTRA_ModifySysinfo ( p_PCellId, true, RRC_CONNECTED ); - f_ModifySysinfoCombinationC3_ToC18 (p_SCellId, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, - 1)}); - f_EUTRA_ModifySysinfo ( p_SCellId, false ); - - //@siclog "Step 4" siclog@ + v_UL_CA); + //@siclog "Step 3" siclog@ + f_ModifySysinfoCombinationC16_ToC20(p_PCellId); + f_EUTRA_ModifySysinfo(p_PCellId, true, RRC_CONNECTED); + f_ModifySysinfoCombinationC3_ToC18(p_SCellId, + {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, 1) } ); + f_EUTRA_ModifySysinfo(p_SCellId, false); + + //@siclog "Step 4" siclog@ //Check: Does the UE transmit MBMSInterestIndication message? SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq})))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 4: Does the UE transmit MBMSInterestIndication message"); - + //@siclog "Step 5" siclog@ - f_Delay (6.0); //> 300ms + 15 * 320ms - + f_Delay (6.0); //> 300ms + 15 * 320ms + //@siclog "Steps 6-7" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_PCellId, cs_MRB_Identity_Def,10, -, - rf8); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_PCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled - f_Delay (6.0); //> 300ms + 15 * 320ms + f_Delay (1.0); //> 300ms + 10 * 40ms //@siclog "Steps 8 - 10" siclog@ // Execute MBMS counter check procedure @@ -600,30 +577,28 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 10: MBMS Counter value not greater than 0"); } - - //@siclog "Step 11-12" siclog@ + + //@siclog "Step 11-12" siclog@ //SS transmits an RRCConnectionReconfiguration message including measurementConfiguration to setup intra LTE measurement and reporting for event A2 and receives an RCConnectionReconfigurationComplete message. f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, cs_RRCConnectionReconfiguration_17_4_X_EventA2(tsc_RRC_TI_Def, - v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_PCell.AllowedMeasBandwidth, - tsc_IdMeasObject_f1)); - - + v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_PCell.AllowedMeasBandwidth, + tsc_IdMeasObject_f1)); //@siclog "Step 13" siclog@ //SS re-adjusts the cell-specific reference signal level according to row "T1" in table 8.3.1.2.3.2.-1. - f_EUTRA_SetCellPowerList( v_CellPowerList_AtT1); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); //@siclog "Step 14" siclog@ //Check: does the UE transmit a MeasurementReport message to report event A2 with the measured RSRP value for Cell 1? - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport(1, ?, ?, omit))); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport(1, ?, ?, omit, *))); //@sic R5s150349 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 17.4.11.x Step 14"); - + //@siclog "Step 15 - 16" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete - v_Arfcn_PCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_PCellId); - v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); + v_Arfcn_PCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_PCellId); + v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); v_PCell_DL_Bandwidth := f_EUTRA_CellInfo_GetSCell_DL_ChBandwidth(p_PCellId); v_SCell_DL_Bandwidth := f_EUTRA_CellInfo_GetSCell_DL_ChBandwidth(p_SCellId); v_UL_Bandwidth := f_EUTRA_CellInfo_GetUL_ChBandwidth(p_PCellId); @@ -638,89 +613,93 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { //FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); - // TBD for 2TX + // Not complete for 2TX } if (v_UL_CA) { if (p_CA_Type == CA_InterBand) { // 36.508 Table 4.8.2.1.6-1 v_AdditionalSpectrumEmissionCA_r10 := cs_AdditionalSpectrumEmissionCA_r10_Def; } - v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(); //@sic R5s150070 sic@ } v_SCellToAddMod := cs_SCellToAddMod_r10(1, - v_PhysicalCellIdentity_Pcell, + v_PhysicalCellIdentity_Pcell,//@sic R5s150660 sic@ v_Arfcn_PCell, - cs_508_RadioResourceConfigCommonSCell_r10_DEFAULT(v_PCell_DL_Bandwidth, tsc_P_b_1Tx, v_CommonSCell_UL_Configuration, v_TDD_Config), + cs_508_RadioResourceConfigCommonSCell_r10_DEFAULT(v_PCell_DL_Bandwidth, tsc_P_b_1Tx, v_CommonSCell_UL_Configuration, v_TDD_Config,-,-,-,f_EUTRA_CellInfo_GetMBSFN_SubframeConfigList(p_PCellId)), //@sic R5s150349 sic@ cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration))); - f_EUTRA_508RRC_IntraLTE_CA_HO_InterCell(p_PCellId,p_SCellId,p_SCellId, p_PCellId,{v_SCellToAddMod},{1},v_UL_CA); - + f_EUTRA_508RRC_IntraLTE_CA_HO_InterCell(p_PCellId,p_SCellId,p_SCellId, p_PCellId,{v_SCellToAddMod},{1},v_UL_CA);//@sic R5s150660 sic@ + + //@siclog "Step 16A" siclog@ + f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Steps 17-18" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_PCellId, cs_MRB_Identity_Def,10, -, - rf8); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_PCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled - f_Delay (6.0); //> 300ms + 15 * 320ms + f_Delay (1.0); //> 300ms + 10 * 40ms //@siclog "Steps 19 - 21" siclog@ // Execute MBMS counter check procedure - v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(p_PCellId); + v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(p_SCellId); if (v_MBMS_CounterValue2 > v_MBMS_CounterValue) { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 19: MBMS Counter value greater than 0"); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 21: MBMS Counter value greater than count 1"); } else { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 19: MBMS Counter value not greater than 0"); + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 21: MBMS Counter value not greater than count 1"); } - - //@siclog "Step 22-23" siclog@ + + //@siclog "Step 22-23" siclog@ //SS transmits an RRCConnectionReconfiguration message including measurementConfiguration to setup intra LTE measurement and reporting for event A2 and receives an RCConnectionReconfigurationComplete message. - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_SCellId, + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_SCellId, cs_RRCConnectionReconfiguration_17_4_X_EventA2(tsc_RRC_TI_Def, - v_Frequency_IE_SCell.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_SCell.AllowedMeasBandwidth, - v_MeasObjectId)); - + v_Frequency_IE_SCell.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_SCell.AllowedMeasBandwidth, + v_MeasObjectId)); + //@siclog "Step 24" siclog@ //SS re-adjusts the cell-specific reference signal level according to row "T1" in table 8.3.1.2.3.2.-1. - f_EUTRA_SetCellPowerList( v_CellPowerList_AtT0_T2); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0_T2); + //@siclog "Step 25" siclog@ //Check: does the UE transmit a MeasurementReport message to report event A2 with the measured RSRP value for Cell 1? - SRB.receive(car_SRB1_RrcPdu_IND(p_SCellId, cr_MeasurementReport(1, ?, ?, omit))); + SRB.receive(car_SRB1_RrcPdu_IND(p_SCellId, cr_MeasurementReport(1, ?, ?, omit, *))); //@sic R5s150349 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 17.4.11.x Step 25"); - - v_SCellToAddMod := cs_SCellToAddMod_r10(1, + + v_SCellToAddMod := cs_SCellToAddMod_r10(1, v_PhysicalCellIdentity_Scell, v_Arfcn_SCell, cs_508_RadioResourceConfigCommonSCell_r10_DEFAULT(v_SCell_DL_Bandwidth, tsc_P_b_1Tx, v_CommonSCell_UL_Configuration, v_TDD_Config), cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration))); - f_EUTRA_508RRC_IntraLTE_CA_HO_InterCell(p_SCellId,p_PCellId,p_PCellId, p_SCellId,{v_SCellToAddMod},{1},v_UL_CA); - //@siclog "Steps 26-27" siclog@ + f_EUTRA_508RRC_IntraLTE_CA_HO_InterCell(p_SCellId,p_PCellId,p_PCellId, p_SCellId,{v_SCellToAddMod},{1},v_UL_CA); + //@siclog "Step 27A" siclog@ + f_Delay (6.0); //> 300ms + 15 * 320ms + + //@siclog "Steps 28-29" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_PCellId, cs_MRB_Identity_Def,10, -, - rf8); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_PCellId, + cs_MRB_Identity_Def, + 10, + -, + rf8); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled - f_Delay (6.0); //> 300ms + 15 * 320ms + f_Delay (1.0); //> 300ms + 10 * 40ms - //@siclog "Steps 28 - 30" siclog@ + //@siclog "Steps 30 - 32" siclog@ // Execute MBMS counter check procedure v_MBMS_CounterValue3:=f_EUTRA_MBMS_CounterProcedure(p_PCellId); if (v_MBMS_CounterValue3 > v_MBMS_CounterValue2) { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 30: MBMS Counter value greater than count 2"); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 32: MBMS Counter value greater than count 2"); } else { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 19: MBMS Counter value not greater than 0"); + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 32: MBMS Counter value not greater than count 2"); } f_EUTRA_TestBody_Set(false); - //test body ends /////////////////////////////////////////////////////////////////////////////////// // Post Amble @@ -730,18 +709,19 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu // Release RRC Connection and Switch off f_EUTRA_Postamble(p_PCellId, E2_CONNECTED); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.11.1 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.11.1 + * @status APPROVED (LTE_A) */ function f_TC_17_4_11_1_EUTRA () runs on EUTRA_PTC - { /*CA / Start MBMS reception on PCell / Continue MBMS reception after swap of SCell and PCell / Intra-band Contiguous CA */ + { /* CA / Start MBMS reception on PCell / Continue MBMS reception after swap of SCell and PCell / Intra-band Contiguous CA */ f_TC_17_4_11_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); } - - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.11.2 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.11.2 + * @status APPROVED (LTE_A) */ function f_TC_17_4_11_2_EUTRA () runs on EUTRA_PTC { /* CA / Start MBMS reception on PCell / Continue MBMS reception after swap of SCell and PCell / Inter-band CA */ diff --git a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_SC_TestCases.ttcn b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_SC_TestCases.ttcn similarity index 68% rename from LTE_A_IWD_14wk37/LTE_A/17/MBMS_SC_TestCases.ttcn rename to LTE_A_IWD_15wk38/LTE_A/17/MBMS_SC_TestCases.ttcn index bb20495..6a11643 100644 --- a/LTE_A_IWD_14wk37/LTE_A/17/MBMS_SC_TestCases.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/17/MBMS_SC_TestCases.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-06 19:54:44 +0200 (Fri, 06 Jun 2014) $ -// $Rev: 11662 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ module MBMS_SC_TestCases { @@ -16,212 +16,247 @@ module MBMS_SC_TestCases { import from EUTRA_CommonDefs all; import from EUTRA_Component all; import from EUTRA_BandDependentParam all; + import from EPS_NAS_TypeDefs all; + import from EUTRA_ASP_SrbDefs all; + import from EPS_NAS_MsgContainers all; import from EUTRA_Measurement_Templates all; import from EUTRA_SRB_Templates all; import from EUTRA_RRC_Templates all; import from EUTRA_RRC_Templates all; + import from EPS_NAS_Constants all; + import from EPS_NAS_Templates all; + import from EUTRA_AspCommon_Templates all; import from EUTRA_ConfigurationSteps all; import from EUTRA_CommonProcedures all; import from EUTRA_RRCSteps all; - //import from EUTRA_AuxiliaryFunctions all; import from UpperTesterFunctions all; import from EUTRA_SecurityFunctions all; import from EUTRA_SecuritySteps all; import from EUTRA_LoopBack all; + import from EUTRA_NASSteps all; + import from EUTRA_Paging all; import from EUTRA_CommonTemplates_MBMS all; import from EUTRA_CommonFunctions_MBMS all; import from EUTRA_CellInfo_MBMS all; - //================================================================================= + //================================================================================= // Templates //================================================================================= - -template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq1, - AllowedMeasBandwidth p_MeasurementBandwidth1, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq2, - AllowedMeasBandwidth p_MeasurementBandwidth2, - MeasObjectId p_MeasObjectId_2, - template (value) MeasGapConfig p_MeasGapConfig := cs_508_MeasGapConfig_GP1) := - + template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq1, + AllowedMeasBandwidth p_MeasurementBandwidth1, + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq2, + AllowedMeasBandwidth p_MeasurementBandwidth2, + MeasObjectId p_MeasObjectId_2, + template (value) MeasGapConfig p_MeasGapConfig := cs_508_MeasGapConfig_GP1, // @sic R5-153741 sic@ + template (omit) NeighCellConfig p_NeighCellConfig := '01'B) := + /* @status APPROVED (LTE_A) */ cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, - cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq1, p_MeasurementBandwidth1), + cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq1, p_MeasurementBandwidth1, -, -, -, -, -, p_NeighCellConfig), // @sic R5-153741 sic@ p_MeasObjectId_2, - cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq2, p_MeasurementBandwidth2)), + cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq2, p_MeasurementBandwidth2, -, -, -, -, -, p_NeighCellConfig)), // @sic R5-153741 sic@ omit, cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, cs_508_ReportConfigEUTRA_A3), omit, cs_MeasIdToAddModList_1Entry( 1, p_MeasObjectId_2, tsc_IdReportConfig_A3 ), -, p_MeasGapConfig); - + //================================================================================= // TEST CASES //================================================================================= /* - * @desc REFERENCE TS 36.523-1 clause 17.4.1/1A - * @status + * @desc To receive the MBMS interest indication in a parallel behaviour + * @param p_CellId + * @status APPROVED (LTE_A) + */ + altstep a_MBMS_ReceiveMBMSInterestInd(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + //@sic R5s140757 R5s1401018 sic@ + var Frequency_IE_Type v_Frequency_CellId := f_EUTRA_CellInfo_GetFrequencyIEs(p_CellId); + var SRB_COMMON_IND v_ReceivedASP; + + [] SRB.receive(car_SRB1_RrcPdu_IND(p_CellId, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_CellId .UL_DL_Earfcn.dl_CarrierFreq})))) -> value v_ReceivedASP + { + f_EUTRA_MsgReceivedInDefault_SetSRB(v_ReceivedASP); //@sic R5s141018 sic@ + repeat; + } + } + + //================================================================================= + // TEST CASES + //================================================================================= + /* + * @desc Cell reselection to intra-frequency cell to continue MBMS service reception + * @param p_CellId + * @status APPROVED (LTE_A) */ function f_TC_17_4_1_Common(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { /* Cell reselection to intra-frequency cell to continue MBMS service reception */ -// var GutiParameters_Type v_Guti_Params; - var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; - var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { - cs_CellPower(eutra_Cell11, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE), + { + var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; + var Frequency_IE_Type v_Frequency_Cell1; + var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { + cs_CellPower(eutra_Cell11, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE), cs_CellPower(p_CellId, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE) }; var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { - cs_CellPower(eutra_Cell11, tsc_ServingCellRS_EPRE), + cs_CellPower(eutra_Cell11, tsc_ServingCellRS_EPRE), cs_CellPower(eutra_Cell1, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE), cs_CellPower(p_CellId, -79) }; - - + var default v_DefaultRef; + f_EUTRA_Init(c3); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c16); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell11,c16); + // Cell 1 and Cell 11 are part of the same MBSFN area @sic R5s140757 sic@ + f_EUTRA_InitialiseWithSameCellTiming ( {eutra_Cell1, eutra_Cell11} ); + if (p_CellId == eutra_Cell10) { //Test case 17.4.1a + f_EUTRA_InitSIB5_Multiband (eutra_Cell1); + f_EUTRA_InitSIB5_Multiband (p_CellId); + } f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration f_EUTRA_CellConfig_Def(eutra_Cell11); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell11); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration + f_EUTRA_CellInfo_InitMaxReferencePower(p_CellId, -79); //@sic R5s140757 sic@ + f_EUTRA_CellConfig_Def(p_CellId); + v_Frequency_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); //Perform Idle updated procedure to make sure UE is in a known state before test case starts //Bring UE to initial state f_EUTRA_Preamble(eutra_Cell1, STATE2A_TESTLOOP_ModeC); - f_EUTRA_RbEst_Def(p_CellId); // Default RB establishment - f_EUTRA_CloseUE_TestLoopModeC(p_CellId, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C + f_EUTRA_RbEst_Def(eutra_Cell1); // Default RB establishment + f_EUTRA_CloseUE_TestLoopModeC(eutra_Cell1, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true,tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_TestBody_Set(true); //@siclog "Step 0A-OC" siclog@ - - + f_ModifySysinfoCombinationC16_ToC20(eutra_Cell1); f_EUTRA_ModifySysinfo(eutra_Cell1, true, RRC_CONNECTED); f_ModifySysinfoCombinationC16_ToC20(eutra_Cell11); f_EUTRA_ModifySysinfo(eutra_Cell11, false, RRC_CONNECTED); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( {v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq} )))); + + //@siclog "Step 1" siclog@ //Release RRC connection - f_EUTRA_RRC_ConnectionRelease(eutra_Cell1); - - //@siclog "Steps 2-3" siclog@ + f_EUTRA_RRC_ConnectionRelease(eutra_Cell1); + + //@siclog "Steps 2-3" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (eutra_Cell1, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(eutra_Cell1, cs_MRB_Identity_Def,10, -, + rf8); //@sic R5s140026 sic@ f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Step 4" siclog@ + //@sic R5s141160 sic@ + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(eutra_Cell1)); f_EUTRA_RbEst_Def(eutra_Cell1); // Default RB establishment + deactivate(v_DefaultRef); //@siclog "Steps 5 - 7" siclog@ // Execute MBMS counter check procedure v_MBMS_CounterValue:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell1); if (v_MBMS_CounterValue > 0) { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7: MBMS Counter value greater than 0"); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6: MBMS Counter value greater than 0"); } else { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 7: MBMS Counter value not greater than 0"); + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 6: MBMS Counter value not greater than 0"); } //@siclog "Step 6a" siclog@ //Release RRC connection f_EUTRA_RRC_ConnectionRelease(eutra_Cell1); //@siclog "Step 7" siclog@ - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); //@siclog "Step 8 Void" siclog@ //Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.7 indicate that the UE is camped on E-UTRAN Cell 10? + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(eutra_Cell11)); f_EUTRA_508CheckCampOnNewEutraCell( eutra_Cell11 ); + deactivate(v_DefaultRef); //@siclog "Step 9 Void" siclog@ //@siclog "Step 10" siclog@ - f_Delay (12.0); - - //@siclog "Steps 11-12" siclog@ + f_Delay (12.0); + + //@siclog "Steps 11-12" siclog@ // Send 10 MTCH packets f_EUTRA_Send_MTCH_Data (eutra_Cell11, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + rf8); //@sic R5s140026 sic@ f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Step 12A" siclog@ + //@sic R5s141160 sic@ + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(eutra_Cell11)); f_EUTRA_RbEst_Def(eutra_Cell11); // Default RB establishment + deactivate(v_DefaultRef); //@siclog "Steps 13 - 15" siclog@ // Execute MBMS counter check procedure - v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell2); + v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell11); //@sic R5s141358 sic@ if (v_MBMS_CounterValue2 > v_MBMS_CounterValue) { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 15: MBMS Counter value greater than in step 7"); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 15: MBMS Counter value greater than in step 5"); } else { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 15: MBMS Counter value not greater than in step 7"); + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 15: MBMS Counter value not greater than in step 5"); } f_EUTRA_TestBody_Set(false); - //test body ends - - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); + + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off f_EUTRA_Postamble(eutra_Cell11, E2_CONNECTED); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.1 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.1 + * @status APPROVED (LTE_A) */ function f_TC_17_4_1_EUTRA () runs on EUTRA_PTC - { /*Cell reselection to intra-frequency cell to continue MBMS service reception */ + { /* Cell reselection to intra-frequency cell to continue MBMS service reception */ f_TC_17_4_1_Common( eutra_Cell3); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.1a - * @status + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.1a + * @status APPROVED (LTE_A) */ function f_TC_17_4_1a_EUTRA () runs on EUTRA_PTC { /* Cell reselection to intra-frequency cell to continue MBMS service reception inter- band */ f_TC_17_4_1_Common( eutra_Cell10); } - - + /* - * @desc REFERENCE TS 36.523-1 clause 17.4.2/2A - * @status + * @desc Cell reselection to inter-frequency/Inter Band cell to start MBMS service reception + * @param p_CellId + * @status APPROVED (LTE_A) */ function f_TC_17_4_2_Common(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { /* Cell reselection to inter-frequency/Inter Band cell to start MBMS service reception */ - //var GutiParameters_Type v_Guti_Params; + { var integer v_MBMS_CounterValue; var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { cs_CellPower(p_CellId, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE) }; - var Frequency_IE_Type v_Frequency_IE_Cell; - + var Frequency_IE_Type v_Frequency_IE_Cell; + var default v_DefaultRef := null; + f_EUTRA_Init(c3); - //f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c18);//ToDo contents as per specific message contents f_EUTRA_SetSysinfoCombination_MBMS(p_CellId,c16); //TAC for Cell 1 is set to 1 in f_EUTRA_Init - if (p_CellId == eutra_Cell10) //Test case 17.4.2a - { - f_EUTRA_CellInfo_SetTAC ( p_CellId , int2bit (2, 16) ); - }; - + if (p_CellId == eutra_Cell10) { //Test case 17.4.2a + f_EUTRA_CellInfo_SetTAC(p_CellId, int2bit(2, 16)); + f_EUTRA_InitSIB5_Multiband (eutra_Cell1); //@sic R5s140840 sic@ + f_EUTRA_InitSIB5_Multiband (p_CellId); + } + f_EUTRA_InitialiseWithSameCellTiming ( {eutra_Cell1, p_CellId} ); // @sic R5s140840 sic@ f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(p_CellId); @@ -231,46 +266,45 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //Bring UE to initial state f_EUTRA_Preamble(eutra_Cell1, STATE2A_TESTLOOP_ModeC); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true,tsc_MBMS_SAI_Def); - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); - + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// - v_Frequency_IE_Cell := f_EUTRA_CellInfo_GetFrequencyIEs(p_CellId); + v_Frequency_IE_Cell := f_EUTRA_CellInfo_GetFrequencyIEs(p_CellId); + f_EUTRA_TestBody_Set(true); //@siclog "Step 0A-OC" siclog@ f_ModifySysinfoCombinationC3_ToC18(eutra_Cell1, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_IE_Cell.UL_DL_Earfcn.dl_CarrierFreq, - oct2int (tsc_ServiceId_Def))}); + tsc_MBMS_SAI_Def)},-,-,true); //@sic R5s140840 R5s141364 sic@ f_EUTRA_ModifySysinfo(eutra_Cell1, true); - + f_ModifySysinfoCombinationC16_ToC20(p_CellId); f_EUTRA_ModifySysinfo(p_CellId, true); //@siclog "Step 1" siclog@ //Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.7 indicate that the UE is camped on E-UTRAN Cell 10? + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(p_CellId)); f_EUTRA_508CheckCampOnNewEutraCell( p_CellId ); - + deactivate(v_DefaultRef); //@sic R5s140840 sic@ //@siclog "Step 2 Void" siclog@ - + //@siclog "Step 3" siclog@ - f_Delay (12.0); + f_Delay (12.0); //@siclog "Step 4" siclog@ + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(p_CellId));//@sic R5s150089 R5-150673 sic@ f_EUTRA_RbEst_Def(p_CellId); // Default RB establishment + deactivate(v_DefaultRef); //@sic R5s150089 R5-150673 sic@ f_EUTRA_CloseUE_TestLoopModeC(p_CellId, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C //@siclog "Step 4A" siclog@ f_EUTRA_RRC_ConnectionRelease(p_CellId); - - //@siclog "Steps 5-6" siclog@ + + //@siclog "Steps 5-6" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_CellId, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_CellId, cs_MRB_Identity_Def, 10, -, rf8); //@sic R5s140840 sic@ f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Step 6A" siclog@ + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(p_CellId));//@sic R5s150089 R5-150673 sic@ f_EUTRA_RbEst_Def(p_CellId); // Default RB establishment + deactivate(v_DefaultRef); //@sic R5s150089 R5-150673 sic@ //@siclog "Steps 7 - 9" siclog@ // Execute MBMS counter check procedure v_MBMS_CounterValue:=f_EUTRA_MBMS_CounterProcedure(p_CellId); @@ -279,46 +313,45 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 9: MBMS Counter value not greater than 0"); } - - f_EUTRA_TestBody_Set(false); - //test body ends - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(false); + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off f_EUTRA_Postamble(p_CellId, E2_CONNECTED); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.2 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.2 + * @status APPROVED (LTE_A) */ function f_TC_17_4_2_EUTRA () runs on EUTRA_PTC - { /* Cell reselection to inter- frequency cell to start MBMS service reception */ - f_TC_17_4_2_Common( eutra_Cell3); + { /* Cell reselection to inter-frequency cell to start MBMS service reception */ + f_TC_17_4_2_Common(eutra_Cell23); //@sic R5s140840 sic@ } - - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.2a - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.2a + * @status APPROVED (LTE_A) */ - function f_TC_17_4_2a_EUTRA () runs on EUTRA_PTC - { /* Cell reselection to inter- band cell to start MBMS service reception */ - f_TC_17_4_2_Common( eutra_Cell10); + function f_TC_17_4_2a_EUTRA() runs on EUTRA_PTC + { /* Cell reselection to inter-band cell to start MBMS service reception */ + f_TC_17_4_2_Common(eutra_Cell10); } - /* - * @desc REFERENCE TS 36.523-1 clause 17.4.3/3A - * @status + /* + * @desc Handover to inter-frequency/Inter Band cell to start MBMS service reception + * @param p_CellId + * @status APPROVED (LTE_A) */ function f_TC_17_4_3_Common(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC - { /* Handover to inter-frequency/Inter Band cell to start MBMS service reception */ + { var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - //var GutiParameters_Type v_Guti_Params; - var Frequency_IE_Type v_Frequency_Cell1, v_Frequency_CellX; - var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1, v_ChBandDependency_CellX; + var Frequency_IE_Type v_Frequency_Cell1; + var Frequency_IE_Type v_Frequency_CellX; + var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; + var ChannelBandwidthDependency_Type v_ChBandDependency_CellX; var PhysCellId v_PhysCellId_CellX; var integer v_MBMS_CounterValue; var MeasObjectId v_MeasObjectId; @@ -328,16 +361,34 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { cs_CellPower(p_CellId, -79) }; - + f_EUTRA_Init(c1); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c16); f_EUTRA_SetSysinfoCombination_MBMS(p_CellId,c16); + //@sic R5s150230 sic@ + if (p_CellId == eutra_Cell10) { //Test case 17.4.3a + f_EUTRA_InitSIB5_Multiband (eutra_Cell1); + f_EUTRA_InitSIB5_Multiband (p_CellId); + } + + //@sic R5-153741 sic@ + f_EUTRA_CellInfo_SetSib3_NeighCellConfig ( eutra_Cell1, + tsc_NeighCellConfig_NeighbourMBSFN); + f_EUTRA_CellInfo_SetSib5_NeighCellConfig ( eutra_Cell1, + tsc_NeighCellConfig_NeighbourMBSFN); + f_EUTRA_CellInfo_SetSib3_NeighCellConfig ( p_CellId, + tsc_NeighCellConfig_NeighbourMBSFN); + f_EUTRA_CellInfo_SetSib5_NeighCellConfig ( p_CellId, + tsc_NeighCellConfig_NeighbourMBSFN); + + // Cell 1 and p_CellId are part of the same MBSFN area @sic R5s140757 sic@ + f_EUTRA_InitialiseWithSameCellTiming ( {eutra_Cell1, p_CellId} ); f_EUTRA_CellInfo_InitMaxReferencePower(p_CellId, -79); f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - + f_EUTRA_CellConfig_Def(p_CellId); f_EUTRA_CellConfig_MBMS_Def(p_CellId); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration @@ -355,47 +406,39 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu v_ChBandDependency_CellX := f_EUTRA_BandDependentParam(v_Frequency_CellX.DL_ChBandwidth, v_Frequency_CellX.UL_ChBandwidth); v_Frequency_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_Cell1.DL_ChBandwidth, v_Frequency_Cell1.UL_ChBandwidth); - if (p_CellId == eutra_Cell3) { ///17.4.3 v_MeasObjectId := tsc_IdMeasObject_f2; } else { //17.4.3a v_MeasObjectId := tsc_IdMeasObject_f5; } - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true); //@siclog "Step 0-1" siclog@ - f_ModifySysinfoCombinationC16_ToC20(eutra_Cell1, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_CellX.UL_DL_Earfcn.dl_CarrierFreq, - 1)}); + f_ModifySysinfoCombinationC16_ToC20(eutra_Cell1, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_CellX.UL_DL_Earfcn.dl_CarrierFreq, 1)}, -, 2);//@sic R5s140821 sic@ f_EUTRA_ModifySysinfo(eutra_Cell1, true, RRC_CONNECTED); - f_ModifySysinfoCombinationC16_ToC20(p_CellId, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq, - 2)}); + f_ModifySysinfoCombinationC16_ToC20(p_CellId, {cs_508_MBMS_SAI_InterFreq_r11_Def(v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq, 2)}, -, 1); //@sic R5s140821 sic@ //@siclog "Step 1" siclog@ - f_EUTRA_ModifySysinfo ( p_CellId, true, RRC_CONNECTED ); - + f_EUTRA_ModifySysinfo(p_CellId, true, RRC_CONNECTED); //@siclog "Step 2" siclog@ //Check: Does the UE transmit MBMSInterestIndication message? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_CellX.UL_DL_Earfcn.dl_CarrierFreq})))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2: Does the UE transmit MBMSInterestIndication message"); - + //@siclog "Steps 3-4" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to setup intra frequency measurement and //receives an RCConnectionReconfigurationComplete message. - - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, - cs_508_RRCConnectionReconfiguration_ConditionMEAS (v_RRC_TI, - cs_Measurement_Config_A3_InterFreq_17_4_x( - v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Cell1.AllowedMeasBandwidth, - v_Frequency_CellX.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_CellX.AllowedMeasBandwidth, - v_MeasObjectId))); - - + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, + cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, + cs_Measurement_Config_A3_InterFreq_17_4_x(v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_Cell1.AllowedMeasBandwidth, + v_Frequency_CellX.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_CellX.AllowedMeasBandwidth, + v_MeasObjectId, + -, + tsc_NeighCellConfig_NeighbourMBSFN))); //@sic R5-153741 sic@ //@siclog "Step 5" siclog@ //The SS changes Cell 1 and Cell 2 level according to the row "T1" in table 17.4.5.3.2-1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -410,14 +453,13 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu // The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform intra-frequency handover to Cell 2 less than [600ms] after reception of the MBMSInterestIndication message in step 8 (Note1). // The UE transmit an RRCConnectionReconfigurationComplete message on Cell 2? f_EUTRA_508RRC_IntraLTE_HO_InterCell(eutra_Cell1, p_CellId); - + //@siclog "Steps 9-10" siclog@ // Send 10 MTCH packets - f_EUTRA_Send_MTCH_Data (p_CellId, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + f_EUTRA_Send_MTCH_Data(p_CellId, cs_MRB_Identity_Def, + 10, + -, + rf8); //@sic R5s140026 sic@ f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Steps 11 - 12" siclog@ @@ -429,43 +471,38 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 12: MBMS Counter value not greater than 0"); } - f_EUTRA_TestBody_Set(false); - //test body ends - - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off f_EUTRA_Postamble(p_CellId, E2_CONNECTED); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.3 - * @status + + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.3 + * @status APPROVED (LTE_A) */ function f_TC_17_4_3_EUTRA () runs on EUTRA_PTC { /* Handover to inter-frequency cell to start MBMS service reception */ - f_TC_17_4_3_Common( eutra_Cell23); + f_TC_17_4_3_Common( eutra_Cell3); //@sic R5s141352 sic@ } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 17.4.3a - * @status + /* + * @desc REFERENCE TS 36.523-1 clause 17.4.3a + * @status APPROVED (LTE_A) */ function f_TC_17_4_3a_EUTRA () runs on EUTRA_PTC { /* Handover to inter-band cell to start MBMS service reception */ f_TC_17_4_3_Common( eutra_Cell10); } + /* * @desc REFERENCE TS 36.523-1 clause 17.4.4 - * @status + * @status APPROVED (LTE_A) */ function f_TC_17_4_4_EUTRA() runs on EUTRA_PTC - { - /* Handover to intra-frequency cell to continue MBMS service reception */ - //var GutiParameters_Type v_Guti_Params; + { /* Handover to intra-frequency cell to continue MBMS service reception */ var Frequency_IE_Type v_Frequency_Cell1, v_Frequency_Cell2; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell2; var PhysCellId v_PhysCellId_Cell2; @@ -478,11 +515,12 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu cs_CellPower(eutra_Cell2, tsc_ServingCellRS_EPRE) }; var integer v_MBMS_CounterValue, v_MBMS_CounterValue2; - f_EUTRA_Init(c1); - f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c15); - f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell2,c15); + f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1, c15); + f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell2, c15); + // Cell 1 and Cell 2 are part of the same MBSFN area @sic R5s140757 sic@ + f_EUTRA_InitialiseWithSameCellTiming({eutra_Cell1, eutra_Cell2}); f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration @@ -492,18 +530,14 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //Perform Idle updated procedure to make sure UE is in a known state before test case starts //Bring UE to initial state - f_EUTRA_Preamble(eutra_Cell1, STATE2A_TESTLOOP_ModeC); + f_EUTRA_Preamble(eutra_Cell1, STATE2A_TESTLOOP_ModeC); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); f_EUTRA_RbEst_Def(eutra_Cell1); // Default RB establishment f_EUTRA_CloseUE_TestLoopModeC(eutra_Cell1, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_TestBody_Set(true); //@siclog "Steps 1" siclog@ @@ -514,20 +548,17 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_ModifySysinfoCombinationC15_ToC19(eutra_Cell2); f_EUTRA_ModifySysinfo(eutra_Cell1, true, RRC_CONNECTED); f_EUTRA_ModifySysinfo(eutra_Cell2, true, RRC_CONNECTED); - + //@siclog "Step 1B" siclog@ //Check: Does the UE transmit MBMSInterestIndication message. v_Frequency_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( { v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq} )))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 1B: Does the UE transmit MBMSInterestIndication message?"); - + //@siclog "Steps 2-3" siclog@ // Send 10 MTCH packets f_EUTRA_Send_MTCH_Data (eutra_Cell1, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + rf8); //@sic R5s140026 sic@ f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Steps 4 - 6" siclog@ @@ -538,7 +569,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 6: MBMS Counter value not greater than 0"); } - //@siclog "Steps 7-8" siclog@ + //@siclog "Steps 7-8" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup intra frequency measurement on Cell 2. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 2 to confirm the setup of intra frequency measurement. v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); @@ -556,7 +587,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, cs_508_RRCConnectionReconfiguration_ConditionMEAS(tsc_RRC_TI_Def,v_MeasConfig)); - + //@siclog "Step 9" siclog@ //The SS changes Cell 1 and Cell 2 level according to the row "T1" in table 17.4.6.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -570,14 +601,11 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform inter-frequency handover to Cell 2. //The UE transmit an RRCConnectionReconfigurationComplete message on Cell 2 f_EUTRA_508RRC_IntraLTE_HO_InterCell(eutra_Cell1, eutra_Cell2); - + ///@siclog "Steps 13-14" siclog@ // Send 10 MTCH packets f_EUTRA_Send_MTCH_Data (eutra_Cell2, cs_MRB_Identity_Def,10, -, - rf8, // Scheduling Period - -, // Stop MTCH =1 - 7, // transmit 1 MTCH and skip 7 occasions - 1); // p_FirstPacketOffset =1 => SFN Mod 32[SP] = 1 *4[RFAllPer] +radioframeAllocationOffset the first packet will be scheduled + rf8); //@sic R5s140026 sic@ f_Delay (6.0); //> 300ms + 15 * 320ms //@siclog "Steps 15 - 17" siclog@ @@ -588,12 +616,9 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 17: MBMS Counter value not greater than 0"); } - + f_EUTRA_TestBody_Set(false); - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off @@ -602,11 +627,10 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu /* * @desc REFERENCE TS 36.523-1 clause 17.4.5 - * @status + * @status APPROVED (LTE_A) */ function f_TC_17_4_5_EUTRA() runs on EUTRA_PTC - { - /* Conditional retransmission of MBMS Interest Indication after handover */ + { /* Conditional retransmission of MBMS Interest Indication after handover */ var integer v_MCCH_RepPer; var float v_Wait; var GutiParameters_Type v_Guti_Params; @@ -620,16 +644,25 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu var template (value) CellPowerList_Type v_CellPowerList_AtT1 := { cs_CellPower(eutra_Cell2, -79) }; - + f_EUTRA_Init(c1); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c19); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell2,c19); + + //Cell 1 and Cell 2 belong to same MBSFN area. @sic R5s140757 sic@ + f_EUTRA_InitialiseWithSameCellTiming ( {eutra_Cell1, eutra_Cell2} ); f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, -79); - + + //Initialise SIB3 for cell1 and cell2 acc to Table 17.4.5.3.3-1A: SystemInformationBlockType3 for Cells 1 and 2 + //@sic R5-153740 sic@ + f_EUTRA_CellInfo_SetSib3_NeighCellConfig ( eutra_Cell1, + tsc_NeighCellConfig_NeighbourMBSFN); + f_EUTRA_CellInfo_SetSib3_NeighCellConfig ( eutra_Cell2, + tsc_NeighCellConfig_NeighbourMBSFN); f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - + f_EUTRA_CellConfig_Def(eutra_Cell2); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell2); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration @@ -641,9 +674,6 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_TestBody_Set(true); //@siclog "Step 1" siclog@ @@ -662,19 +692,21 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); v_Frequency_Cell2 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); v_ChBandDependency_Cell2 := f_EUTRA_BandDependentParam(v_Frequency_Cell2.DL_ChBandwidth, v_Frequency_Cell2.UL_ChBandwidth); - - v_MeasConfig := cs_MeasConfig(omit, + + //@sic R5-153740 R5s150764 sic@ + v_MeasConfig := cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, - cs_MeasObject_measObjectEUTRA_Common(v_Frequency_Cell2.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell2.AllowedMeasBandwidth)), + cs_MeasObject_measObjectEUTRA_Common(v_Frequency_Cell2.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell2.AllowedMeasBandwidth,omit,omit,omit,omit,omit,tsc_NeighCellConfig_NeighbourMBSFN)), omit, cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, cs_508_ReportConfigEUTRA_A3), omit, cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)); - + + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, cs_508_RRCConnectionReconfiguration_ConditionMEAS(tsc_RRC_TI_Def,v_MeasConfig)); - + //@siclog "Step 5" siclog@ //The SS changes Cell 1 and Cell 2 level according to the row "T1" in table 17.4.5.3.2-1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -688,18 +720,17 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu // The UE is made interested in receiving MBMS service with MBMS Service ID=0 associated with the MBMS SAI (1) broadcasted in SIB15 mbms-SAI-IntraFreq list on Cell 1 and Cell 2 v_Guti_Params := f_EUTRA_CellInfo_GetGuti(eutra_Cell1); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); - - + //@siclog "Step 8" siclog@ //Check: Does the UE transmit MBMSInterestIndication message? - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({ v_Frequency_Cell2.UL_DL_Earfcn.dl_CarrierFreq} )))); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_Cell2.UL_DL_Earfcn.dl_CarrierFreq})))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 8: Does the UE transmit MBMSInterestIndication message?"); - + //@siclog "Steps 9-10" siclog@ // The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform intra-frequency handover to Cell 2 less than [600ms] after reception of the MBMSInterestIndication message in step 8 (Note1). // The UE transmit an RRCConnectionReconfigurationComplete message on Cell 2? f_EUTRA_508RRC_IntraLTE_HO_InterCell(eutra_Cell1, eutra_Cell2); - + //@siclog "Step 11" siclog@ //Check: Does the UE transmit MBMSInterestIndication message? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({ v_Frequency_Cell2.UL_DL_Earfcn.dl_CarrierFreq})))); @@ -707,10 +738,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_TestBody_Set(false); - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); @@ -718,14 +746,16 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu /* * @desc REFERENCE TS 36.523-1 clause 17.4.6 - * @status + * @status APPROVED (LTE_A) */ function f_TC_17_4_6_EUTRA() runs on EUTRA_PTC - { - /* MBMS Interest Indication retransmission after returning from cell not broadcasting SIB15 */ - var Frequency_IE_Type v_Frequency_Cell1, v_Frequency_Cell2; - var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1, v_ChBandDependency_Cell2; - var PhysCellId v_PhysCellId_Cell1, v_PhysCellId_Cell2; + { /* MBMS Interest Indication retransmission after returning from cell not broadcasting SIB15 */ + var Frequency_IE_Type v_Frequency_Cell1; + var Frequency_IE_Type v_Frequency_Cell2; + var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; + var ChannelBandwidthDependency_Type v_ChBandDependency_Cell2; + var PhysCellId v_PhysCellId_Cell1; + var PhysCellId v_PhysCellId_Cell2; var template (value) MeasConfig v_MeasConfig; var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell2, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE) @@ -744,7 +774,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - + f_EUTRA_CellConfig_Def(eutra_Cell2); //Perform Idle updated procedure to make sure UE is in a known state before test case starts @@ -759,10 +789,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true); //@siclog "Steps 0-1" siclog@ @@ -770,13 +797,13 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu // From the beginning of the next modification period the SS starts broadcast of SystemInformationBlockType15 (according to System information combination 19) on Cell 1 including mbms-SAI-IntraFreq-r11 list indicating MBMS SAI=1. f_ModifySysinfoCombinationC15_ToC19(eutra_Cell1); f_EUTRA_ModifySysinfo( eutra_Cell1, true, RRC_CONNECTED ); - + //@siclog "Step 2" siclog@ //Check: Does the UE transmit MBMSInterestIndication message. v_Frequency_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( { v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq} )))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2: Does the UE transmit MBMSInterestIndication message?"); - + //@siclog "Steps 3-4" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup intra-frequency measurement. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1 to confirm the setup of intra-frequency measurement. @@ -795,7 +822,7 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, cs_508_RRCConnectionReconfiguration_ConditionMEAS(tsc_RRC_TI_Def,v_MeasConfig)); - + //@siclog "Step 5" siclog@ //The SS changes Cell 1 and Cell 2 level according to the row "T1" in table 17.4.6.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -823,11 +850,11 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, cs_508_ReportConfigEUTRA_A3), omit, - cs_MeasIdToAddModList_1Entry(2, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)); + cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)); //@sic R5s140838 sic@ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell2, cs_508_RRCConnectionReconfiguration_ConditionMEAS(tsc_RRC_TI_Def,v_MeasConfig)); - + //@siclog "Step 11" siclog@ //The SS changes Cell 1 and Cell 2 levels according to the row "T2" in table 17.4.6.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); @@ -835,24 +862,18 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //@siclog "Step 12" siclog@ //The UE transmits a MeasurementReport message to report event A3 on Cell 2 with the measured RSRP, RSRQ value for Cell 1. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, - cr_MeasurementReport(2, ?, ?, cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysCellId_Cell1, omit, ?, ?)))); - - + cr_MeasurementReport(1, ?, ?, cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysCellId_Cell1, omit, ?, ?)))); //@sic R5s140838 sic@ //@siclog "Steps 13-14" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 2 to order the UE to perform intra-frequency handover to Cell 1. //The UE transmit an RRCConnectionReconfigurationComplete message on Cell 1? f_EUTRA_508RRC_IntraLTE_HO_InterCell(eutra_Cell2, eutra_Cell1); - + //@siclog "Step 15" siclog@ //Check: Does the UE transmit MBMSInterestIndication message. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( { v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq} )))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 15: Does the UE transmit MBMSInterestIndication message?"); - - f_EUTRA_TestBody_Set(false); - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(false); f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); @@ -862,13 +883,12 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu /* * @desc REFERENCE TS 36.523-1 clause 17.4.7 - * @status + * @status APPROVED (LTE_A) */ function f_TC_17_4_7_EUTRA() runs on EUTRA_PTC - { - /* MBMS Interest Indication after Radio Link Failure */ - var Frequency_IE_Type v_Frequency_Cell1; + { /* MBMS Interest Indication after Radio Link Failure */ var EUTRA_SecurityParams_Type v_Auth_Params; + var float v_ModificationPeriod_s; // Modification period in second var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell2, tsc_NonSuitableCellRS_EPRE) }; @@ -876,17 +896,43 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), cs_CellPower(eutra_Cell2, tsc_ServingCellRS_EPRE) }; - + var default v_DefaultRef; + //@sic R5s141018 sic@ + var template (value) MAC_MainConfig_Type v_MAC_MainConfig; + var template (omit) DRX_Config v_DRX_Config; + var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo_Cell2; + var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo_Cell2; + var SR_PUCCH_ResourceIndex_Type v_SR_PUCCH_ResourceIndex_Cell2; + var SR_ConfigIndex_Type v_SR_ConfigIndex_Cell2; + var SRB_COMMON_IND v_ReceivedASP; //@sic R5s150090 sic@ + var Frequency_IE_Type v_Frequency_CellId; //@sic R5s150090 sic@ + var GutiParameters_Type v_GutiParameters; //@sic R5s150075 sic@ + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; //@sic R5s150075 sic@ + var NAS_MSG_Indication_Type v_NasInd; //@sic R5s150075 sic@ + var NAS_KsiValue v_KsiValue; //@sic R5s150075 sic@ + timer t_Wait2S := 2.0; //@sic R5s150075 R5-151779 sic@ + f_EUTRA_Init(c1); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c15); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell2,c15); + f_EUTRA_CellInfo_SetSysInfo_T310(eutra_Cell1, ms200); //@sic R5s141018 sic@ + f_EUTRA_CellInfo_SetSysInfo_T310(eutra_Cell2, ms200); //@sic R5s141018 sic@ + + //Cell 1 and Cell 2 belong to same MBSFN area. @sic R5s140757 sic@ + f_EUTRA_InitialiseWithSameCellTiming ( {eutra_Cell1, eutra_Cell2} ); f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - + f_EUTRA_CellConfig_Def(eutra_Cell2); f_EUTRA_CellConfig_MBMS_Def(eutra_Cell2); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration + //@sic R5s141018 sic@ + v_EUTRA_FDD_TDD_CellInfo_Cell2 := f_EUTRA_CellInfo_GetFDD_TDD_Info( eutra_Cell2); + v_SR_PUCCH_ResourceIndex_Cell2 := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex(eutra_Cell2); + v_SR_ConfigIndex_Cell2 := f_EUTRA_CellInfo_GetSR_ConfigIndex(eutra_Cell2); + v_AntennaInfo_Cell2 := f_EUTRA_CellInfo_GetAntennaInfoDedicated (eutra_Cell2); + //Bring UE to initial state //The UE is in state Registered, Idle Mode (state 2) on Cell 1 according to [18]. f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); @@ -894,40 +940,96 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //TThe UE is made interested in receiving MBMS service with MBMS Service ID=0 with the MBMS SAI (1) broadcasted in SIB15 mbms-SAI-IntraFreq list on Cell 1 and Cell 2 f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def); //The UE is made aware that the MBMS service is active. - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def), true, tsc_MBMS_SAI_Def ); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true); //@siclog "Steps 0A-0B" siclog@ // The SS transmits a Paging message including a systemInfoModification for Cell1 and Cell 2 // From the beginning of the next modification period the SS starts broadcast of SystemInformationBlockType15 according to System information combination 19 as defined in TS 36.508[18] clause 4.4.3.1 on Cell 1 and Cell 2 including mbms-SAI-IntraFreq-r11 list indicating MBMS SAI=1. f_ModifySysinfoCombinationC15_ToC19(eutra_Cell1); - f_EUTRA_ModifySysinfo( eutra_Cell1, true, RRC_CONNECTED ); + f_EUTRA_ModifySysinfo( eutra_Cell1 ); //@sic R5s141018 sic@ f_ModifySysinfoCombinationC15_ToC19(eutra_Cell2); - f_EUTRA_ModifySysinfo( eutra_Cell2, false); + f_EUTRA_ModifySysinfo( eutra_Cell2); //@sic R5s150075 sic@ - //@siclog "Step 1" siclog@ - //Generic test procedure Generic Radio Bearer Establishment as described in TS 36.508 subclause 4.5.3 is executed. - f_EUTRA_RbEst_Def(eutra_Cell1); + //Wait 2.1*modification period to allow new system information to take effect + v_ModificationPeriod_s := int2float(f_CalculateModificationPeriod (eutra_Cell1))/100.0; + f_Delay (2.5*v_ModificationPeriod_s); //@sic R5s141018 R5s150075 sic@ + // receive any MBMSInterestIndi message + // In parallel to the events described in step 1 the steps specified in Table 17.4.7.3.2-3 take place. + //@sic R5s141018 sic@ + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(eutra_Cell1)); + + //@siclog "Steps 1-1D " siclog@ + //Generic test procedure Generic Radio Bearer Establishment as described in TS 36.508 subclause 4.5.3 is executed. + //@sic R5s141018 sic@ + v_DRX_Config := f_GetUeDrxConfig(DRX_S); + v_MAC_MainConfig := cs_MAC_MainConfig_Explicit(cs_MAC_MainConfig_Common(-, v_DRX_Config)); + + //@sic R5s150075 sic@ + //Generic RB establishment procedure expended to be able to receive the MBMS interest indication before the security procedure + v_GutiParameters := f_EUTRA_CellInfo_GetGuti(eutra_Cell1); + f_EUTRA_UE_Page(eutra_Cell1, + cs_NasPaging_OneRecord(cs_PagingUE_Identity_S_TMSI(v_GutiParameters.MME_Code, v_GutiParameters.M_TMSI))); + + // Step 3 - 5 of Generic RB establishment procedure + //Check the Service Request message + v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_Cell1, + v_RRC_TI, + ?, + cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_508_SERVICE_REQUEST(v_KsiValue))); + v_Frequency_CellId := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); + //@siclog "Step 1E " siclog@ + t_Wait2S.start; //@sic R5-151779 sic@ + alt { + [] t_Wait2S.timeout {} + []SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_CellId.UL_DL_Earfcn.dl_CarrierFreq})))) -> value v_ReceivedASP + { + t_Wait2S.stop; + f_EUTRA_MsgReceivedInDefault_SetSRB(v_ReceivedASP); + } + } + + //@siclog "Steps 1F-1J " siclog@ + /* Step 6 - 9 of Generic RB establishment procedure */ + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, + tsc_RRC_TI_Def, + v_NasInd.SecurityProtection.NasCount, + 0, + 0, + -, + -, /* @sic R5s150338 sic@ */ + v_MAC_MainConfig); + + /* Step 9 - 10 of Generic RB establishment procedure */ + f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(eutra_Cell1, + tsc_RRC_TI_Def, + 0, + 0); + //@siclog "Step 2" siclog@ //UE transmits MBMSInterestIndication message. - v_Frequency_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( { v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq} )))); - + //@sic R5s141018 sic@ + deactivate(v_DefaultRef); + if ( not(isvalue(f_EUTRA_MsgReceivedInDefault_Retreive()))) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2: UE did not transmit MBMSInterestIndication message") } + else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2: UE transmitted MBMSInterestIndication message"); + } + //@siclog "Step 3" siclog@ //SS re-adjusts the cell-specific reference signal level according to row "T1" in table 17.4.7.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + // Activate RRC security at SS target cell (Cell2) for SRB 1, 2 and 1 AM DRB v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell2, f_EUTRA_Security_Get(), 0); f_EUTRA_Security_Set(v_Auth_Params); - + //@siclog "Step 4" siclog@ //UE transmits RRCConnectionReestablishmentRequest message SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell2, @@ -935,7 +1037,6 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu ?, ?, ?))); - //@siclog "Step 5 " siclog@ //SS transmits RRCConnectionReestablishment message. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell2); @@ -943,62 +1044,89 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //@siclog "Step 6" siclog@ //UE transmits RRCConnectionReestablishmentComplete message. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def))); - + //@siclog "Steps 7-8" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1. + //@sic R5s141018 sic@ + v_DefaultRef := activate (a_MBMS_ReceiveMBMSInterestInd(eutra_Cell2)); + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, + cs_TimingInfo_Now, + cs_RRCConnReconfig_Resume_SRB2_DRBs(tsc_RRC_TI_Def, + v_EUTRA_FDD_TDD_CellInfo_Cell2.cqi_ReportConfig, + v_EUTRA_FDD_TDD_CellInfo_Cell2.soundingRS_UL_Config, + v_AntennaInfo_Cell2, + v_SR_PUCCH_ResourceIndex_Cell2, + v_SR_ConfigIndex_Cell2))); + //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. - f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs(eutra_Cell2, tsc_RRC_TI_Def); + //@sic R5s141354 sic@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - //@siclog "Step 9" siclog@ + deactivate(v_DefaultRef); //Check: Does the UE transmit MBMSInterestIndication message. - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( { v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq} )))); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 9: Does the UE transmit MBMSInterestIndication message?"); - + // MBMSInterest Indication not yet received @sic R5s150090 sic@ + if ( not(isvalue(f_EUTRA_MsgReceivedInDefault_Retreive()))) { + v_Frequency_CellId := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication({v_Frequency_CellId.UL_DL_Earfcn.dl_CarrierFreq})))) -> value v_ReceivedASP; + f_EUTRA_MsgReceivedInDefault_SetSRB(v_ReceivedASP); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7a: UE transmitted MBMSInterestIndication message"); + } else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 7a: UE transmitted MBMSInterestIndication message"); + } + f_EUTRA_TestBody_Set(false); - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); - } + } /* * @desc REFERENCE TS 36.523-1 clause 17.4.8 - * @status + * @status APPROVED (LTE_A) */ function f_TC_17_4_8_EUTRA() runs on EUTRA_PTC - { - /* Continued MBMS service reception after E-UTRAN release of unicast bearer */ + { /* Continued MBMS service reception after E-UTRAN release of unicast bearer */ var Frequency_IE_Type v_Frequency_Cell1; var integer v_MBMS_CounterValue1 := 0; var integer v_MBMS_CounterValue2 := 0; var integer v_MCCH_RepPer; var float v_Wait; - + var ProcedureTransactionIdentifier v_EPS_TI := '00'O; //@sic R5s140836 sic@ f_EUTRA_Init(c1); f_EUTRA_SetSysinfoCombination_MBMS(eutra_Cell1,c15); - f_EUTRA_CellConfig_Def(eutra_Cell1); + f_EUTRA_CellConfig_Def(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DRB_Common replaced by f_EUTRA_CellConfig_Def sic@ */ f_EUTRA_CellConfig_MBMS_Def(eutra_Cell1); // Configured MBSFN + MTCH + transmit MBSFNAreaConfiguration - + //Bring UE to initial state //UE is in state Loopback Activated (State 4) with UE TEST LOOP MODE C on Cell 1 f_EUTRA_Preamble(eutra_Cell1, STATE2A_TESTLOOP_ModeC); f_EUTRA_RbEst_Def(eutra_Cell1); // Default RB establishment f_EUTRA_CloseUE_TestLoopModeC(eutra_Cell1, cs_UE_TestLoopModeC_LB_Setup); // Bring UE in test loop mode C + //Activate the second DRB @sic R5s140836 sic@ + f_EUTRA_TxDedicatedEpsBearerCtxtReq(eutra_Cell1, + tsc_DRB2, + tsc_EpsDedicatedBearerId, + v_EPS_TI, + cs_LinkedId(hex2bit(tsc_EpsDefaultBearerId)), + cs_508_EPS_QoS_Dedicated_1, // According to Context#1 in TS 36.508 + f_EUTRA_Get_508_TrafficFlowTemplate(1)); // According to Context#1 in TS 36.508 + + //The UE transmits an ACTIVATE DEDICATE EPS BEARER CONTEXT ACCEPT message. + //@sic R5s140836 sic@ + SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell1, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActDedicatedEPSBearerCxtAccept(tsc_EpsDedicatedBearerId)))); + //The UE is made interested in receiving MBMS service with MBMS Service ID=0 in the PLMN associated with the MBMS SAI (1) broadcasted in SIB15 on Cell 1. f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), true); //The UE is configured to prioritise reception of MBMS frequencies above reception of any unicast bearers f_UT_MBMS_Unicast( UT, true) ; //The UE is made aware that the MBMS service is active f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),true, tsc_MBMS_SAI_Def ); - - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true); //@siclog "Steps 1-3" siclog@ @@ -1006,33 +1134,33 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //From the beginning of the next modification period the SS transmits SystemInformationBlockType15 including mbms-SAI-IntraFreq-r11 list indicating MBMS SAI=1. f_ModifySysinfoCombinationC15_ToC19 (eutra_Cell1); f_EUTRA_ModifySysinfo(eutra_Cell1, true, RRC_CONNECTED ); - + //Check: Does UE transmit a MBMSInterestIndication message including the mbms-Priority IE set to True? v_Frequency_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MbmsInterestIndication_Common(cr_MbmsInterestIndication( { v_Frequency_Cell1.UL_DL_Earfcn.dl_CarrierFreq}, true_ )))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2: Does the UE transmit MBMSInterestIndication message?"); - + //@siclog "Step 4" siclog@ //Wait for a period equal to the MCCH repetition period for the UE to receive MBSFNAreaConfiguration message - v_MCCH_RepPer := f_EUTRA_Convert_MCCH_RepPeriodToInt(f_EUTRA_CellInfo_GetMCCH_RepPeriod(eutra_Cell2)); + v_MCCH_RepPer := f_EUTRA_Convert_MCCH_RepPeriodToInt(f_EUTRA_CellInfo_GetMCCH_RepPeriod(eutra_Cell1)); //@sic R5s140836 sic@ v_Wait := int2float(v_MCCH_RepPer)/100.0; // Rep Period is in frame = 10 ms; f_Delay(v_Wait); //@siclog "Steps 6-7" siclog@ //The SS transmits a valid MAC PDU including 'MCH Scheduling Information MAC Control Element with LCID='00001', Stop MTCH= '00000000001' //The SS transmits 10 MBMS Packets on the MTCH. - f_EUTRA_Send_MTCH_Data(eutra_Cell2, cs_MRB_Identity_Def(tsc_Mbsfn_AreaId_1), 10, -, rf8); // transmit 10 MTCH @sic R5s140192 sic@ + f_EUTRA_Send_MTCH_Data(eutra_Cell1, cs_MRB_Identity_Def(tsc_Mbsfn_AreaId_Def), 10, -, rf8); // transmit 10 MTCH @sic R5s140192 R5s140836 sic@ f_Delay(1.0); //> 300ms + 10 * 4 SFN - + //@siclog "Steps 8-9" siclog@ //The SS transmits an UE TEST LOOP MODE C MBMS PACKET COUNTER REQUEST message. //UE responds with UE TEST LOOP MODE C MBMS PACKET COUNTER RESPONSE. - v_MBMS_CounterValue1:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell1); + v_MBMS_CounterValue1:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell1); - //@siclog "Steps 10" siclog@ + //@siclog "Steps 10" siclog@ //Check: Is the number of reported MBMS Packets received on the MTCH in step 9 greater than zero? - if (v_MBMS_CounterValue1>0) { + if (v_MBMS_CounterValue1 > 0) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 10: MBMS Counter value greater than 0"); } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 10: MBMS Counter value not greater than 0"); @@ -1041,22 +1169,20 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu //@siclog "Steps 11-12" siclog@ //The SS transmits an RRCConnectionReconfiguration message to release the unicast bearer due to congestion on the MBMS carrier(s) //The UE transmits an RRCConnectionReconfigurationComplete message to confirm the release. - f_EUTRA_RRCConnectionReconfiguration_DRB_Release( eutra_Cell1, - tsc_RRC_TI_Def, - tsc_DRB2); + f_EUTRA_RRCConnectionReconfiguration_DRB_Release(eutra_Cell1, tsc_RRC_TI_Def, tsc_DRB2); //@siclog "Steps 13-14" siclog@ //The SS transmits a valid MAC PDU including 'MCH Scheduling Information MAC Control Element with LCID='00001', Stop MTCH= '00000000001' //The SS transmits 10 MBMS Packets on the MTCH. - f_EUTRA_Send_MTCH_Data(eutra_Cell2, cs_MRB_Identity_Def(tsc_Mbsfn_AreaId_1), 10, -, rf8); // transmit 10 MTCH @sic R5s140192 sic@ + f_EUTRA_Send_MTCH_Data(eutra_Cell1, cs_MRB_Identity_Def(tsc_Mbsfn_AreaId_Def), 10, -, rf8); // transmit 10 MTCH @sic R5s140192 R5s140836 sic@ f_Delay(1.0); //> 300ms + 10 * 4 SFN - + //@siclog "Steps 15-16" siclog@ //The SS transmits an UE TEST LOOP MODE C MBMS PACKET COUNTER REQUEST message. //UE responds with UE TEST LOOP MODE C MBMS PACKET COUNTER RESPONSE. - v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell1); - + v_MBMS_CounterValue2:=f_EUTRA_MBMS_CounterProcedure(eutra_Cell1); + //@siclog "Steps 17" siclog@ //Does the number of reported MBMS Packets received on the MTCH is greater than the number of MBMS Packets reported in step10? if (v_MBMS_CounterValue2>v_MBMS_CounterValue1) { @@ -1064,16 +1190,13 @@ template (value) MeasConfig cs_Measurement_Config_A3_InterFreq_17_4_x(ARFCN_Valu } else { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 17: "); } - + f_EUTRA_TestBody_Set(false); - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// - f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def),false, tsc_MBMS_SAI_Def ); + f_UT_MBMS_SERVICE_Active(UT, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); f_UT_MBMS_Unicast( UT, false) ; f_UT_MBMS_SERVICE_Interest(UT, omit, oct2str(tsc_ServiceId_Def), false, tsc_MBMS_SAI_Def); // Release RRC Connection and Switch off - f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); //@sic R5s140836 sic@ } } diff --git a/LTE_A_IWD_14wk37/LTE_A/6_1/Idle_PLMNSelection_A.ttcn b/LTE_A_IWD_15wk38/LTE_A/6_1/Idle_PLMNSelection_A.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/LTE_A/6_1/Idle_PLMNSelection_A.ttcn rename to LTE_A_IWD_15wk38/LTE_A/6_1/Idle_PLMNSelection_A.ttcn index 6a00672..8b6465b 100644 --- a/LTE_A_IWD_14wk37/LTE_A/6_1/Idle_PLMNSelection_A.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/6_1/Idle_PLMNSelection_A.ttcn @@ -2,18 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-06 19:54:44 +0200 (Fri, 06 Jun 2014) $ -// $Rev: 11662 $ +// @version: IWD_15wk38 +// $Date: 2015-06-04 14:31:40 +0200 (Thu, 04 Jun 2015) $ +// $Rev: 13650 $ /******************************************************************************/ module Idle_PLMNSelection_A { - -//========================================================================= -// Imports -//========================================================================= import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_Component all; import from EUTRA_CellInfo all; @@ -23,6 +19,7 @@ module Idle_PLMNSelection_A { import from EUTRA_SRB_Templates all; import from EUTRA_AspCommon_Templates all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from NAS_CommonTypeDefs all; import from EPS_NAS_TypeDefs all; import from EPS_NAS_Constants all; @@ -104,7 +101,7 @@ module Idle_PLMNSelection_A { //Equip UE with a USIM containing default values except for those shown in Table 6.1.1.7.3.1-2 f_UT_USIM_Insert(UT, "36.523-1 Table 6.1.1.7.3.1-2"); - //Preamble to ensure UE is in known state + //Preamble to ensure UE is in known state - EF EPSLOCI=PLMN1 f_EUTRA_Preamble(eutra_Cell12, STATE2_IDLEUPDATE); f_EUTRA_UE_Detach_SwitchOffUe(eutra_Cell12, RRC_IDLE); @@ -239,13 +236,14 @@ module Idle_PLMNSelection_A { //============================================================================ /* * @desc REFERENCE TS 36.523-1 clause 6.1.1.7a - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_1_1_7a_EUTRA() runs on EUTRA_PTC { /* PLMN selection / Periodic reselection / MinimumPeriodicSearchTimer / Single Frequency operation */ var template (value) CellPowerList_Type v_CellPowerList_AtT1; var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var template (value) CellPowerList_Type v_CellPowerList_AtT3; // @sic R5s141214 sic@ var EUTRA_CellId_Type v_CellId := eutra_Cell4; var EUTRA_ATTACH_Type v_ForcedAttach := NORMAL; @@ -267,10 +265,15 @@ module Idle_PLMNSelection_A { timer t_HpPlmn_upper; timer t_IdleMode_GenericTimer := tsc_IdleMode_GenericTimer; - v_CellPowerList_AtT1 := { - cs_CellPower(eutra_Cell4, -79) + v_CellPowerList_AtT1 := { // @sic R5s141214 sic@ + cs_CellPower(eutra_Cell2, -79), + cs_CellPower(eutra_Cell4, tsc_ServingCellRS_EPRE) }; v_CellPowerList_AtT2 := { + cs_CellPower(eutra_Cell2, tsc_ServingCellRS_EPRE), + cs_CellPower(eutra_Cell4, -79) + }; + v_CellPowerList_AtT3 := { cs_CellPower(eutra_Cell1, -79), cs_CellPower(eutra_Cell2, tsc_NonSuitableOffCellRS_EPRE), cs_CellPower(eutra_Cell4, tsc_ServingCellRS_EPRE) @@ -279,14 +282,15 @@ module Idle_PLMNSelection_A { //Initialise all cell, security and mobile parameters f_EUTRA_Init(c1); - //Set maximum cell powel level for Cell 1 & 4 to be used in creation - f_EUTRA_CellInfo_InitMaxReferencePower ( eutra_Cell1, -79 ); - f_EUTRA_CellInfo_InitMaxReferencePower ( eutra_Cell4, -79 ); - + //Set maximum cell powel level for Cell 1, 2 & 4 to be used in creation + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -79); + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, -79); // @sic R5s141214 sic@ + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell4, -79); + //Set Sys info and cell info for cell 2, &4 to be used @ creation f_EUTRA_CellInfo_SetPLMN_1Entry(eutra_Cell2, cs_HPLMN_001_11); //PLMN1 f_EUTRA_CellInfo_SetPLMN_1Entry(eutra_Cell4, cs_HPLMN_001_21); //PLMN2 - + //Set TAC for Cell2, &Cell4 //TAC for Cell1 is set to 1 in f_EUTRA_Init f_EUTRA_CellInfo_SetTAC(eutra_Cell2, tsc_IdleMode_TAC_Cell2); @@ -309,7 +313,7 @@ module Idle_PLMNSelection_A { //Equip UE with a USIM containing default values except for those shown in Table 6.1.1.7a.3.1-2 f_UT_USIM_Insert(UT, "36.523-1 Table 6.1.1.7a.3.1-2"); - //Preamble to ensure UE is in known state + //Preamble to ensure UE is in known state - EF EPSLOCI=PLMN1 f_EUTRA_Preamble(eutra_Cell2, STATE2_IDLEUPDATE); f_EUTRA_UE_Detach_SwitchOffUe(eutra_Cell2, RRC_IDLE); @@ -334,6 +338,9 @@ module Idle_PLMNSelection_A { //UE selects PLMN1 f_UT_PLMN_Check(UT, "00111"); + //@siclog "Step 19A" siclog@ + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); // @sic R5s141214 sic@ + //@siclog "Step 20" siclog@ //Check: Does the UE send an RRCConnectionRequest on Cell 4 after 120 seconds, but before 420 seconds from power on? alt { @@ -389,8 +396,6 @@ module Idle_PLMNSelection_A { v_LAI, v_MSId, f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, v_ForcedAttach))))); - - /* Step24: receive TAU COMPLETE */ SRB.receive(car_SRB1_NasPdu_IND(v_CellId, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, @@ -406,8 +411,8 @@ module Idle_PLMNSelection_A { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 6.1.1.7a Step 26"); //@siclog "Step 27" siclog@ - //Adjust cell power level according to T2 - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); + //Adjust cell power level according to T3 + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); // @sic R5s141214 sic@ //@siclog "Step 28" siclog@ //Check for RRCConnectionRequest on Cell1 / PLMN4 @@ -426,7 +431,7 @@ module Idle_PLMNSelection_A { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 6.1.1.7a Step 28"); } } - + //@siclog "Step 29 - 33" siclog@ //Steps 2 to 6 of the generic test procedure in TS 36.508 subclause 6.4.2.7 are performed on Cell 1. //NOTE: The UE performs a TAU procedure and the RRC connection is released. diff --git a/LTE_A_IWD_14wk37/LTE_A/6_2/FeFACH_EU.ttcn b/LTE_A_IWD_15wk38/LTE_A/6_2/FeFACH_EU.ttcn similarity index 68% rename from LTE_A_IWD_14wk37/LTE_A/6_2/FeFACH_EU.ttcn rename to LTE_A_IWD_15wk38/LTE_A/6_2/FeFACH_EU.ttcn index 93408de..83e640f 100644 --- a/LTE_A_IWD_14wk37/LTE_A/6_2/FeFACH_EU.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/6_2/FeFACH_EU.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-08-10 13:51:31 +0200 (Mon, 10 Aug 2015) $ +// $Rev: 14073 $ /******************************************************************************/ module FeFACH_EU @@ -23,8 +23,14 @@ module FeFACH_EU import from EUTRA_IdleMode all; import from EUTRA_RSRQ_Functions all; import from EUTRA_NASCommonFunctions all; + import from EUTRA_Timing all; + import from EUTRA_RRC_Templates all; + import from EUTRA_SRB_Templates all; - + /* + * @desc REFERENCE TS 36.523-1 clause 6.2.4.X + * @status APPROVED (LTE_A) + */ function f_TC_6_2_4_X_EUTRA() runs on EUTRA_PTC { var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; @@ -40,10 +46,11 @@ module FeFACH_EU f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); - + //Create and configure Cell 1 f_EUTRA_CellConfig_Def(eutra_Cell1); + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); //@sic R5s150300 sic@ //Since Authentication parameters were updated in the idle updated procedure... //...receive updated parameters... v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); @@ -59,7 +66,7 @@ module FeFACH_EU //@siclog "Step 2" siclog@ //Check that UE camps on Cell 1 with the generic test procedure TS 36.508 table 6.4.2.7A-1 f_EUTRA_IdleMode_TAU_UponMobility_FromOtherRAT(eutra_Cell1, v_CSInOtherRAT, true, false, v_IRAT_Coordination_MSG.OctetData); - + //Tell the UTRAN component that the test case is over f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); @@ -67,12 +74,11 @@ module FeFACH_EU //Switch/Power off UE f_EUTRA_Postamble(eutra_Cell1, E1_IDLE); - }//end of f_TC_6_2_4_X_EUTRA - + } - /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.1 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_1_EUTRA() runs on EUTRA_PTC { @@ -81,55 +87,65 @@ module FeFACH_EU /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_2_EUTRA() runs on EUTRA_PTC { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (Higher Priority Layers, no cell reselection to E-UTRA RRC_IDLE when Srxlev,serv < Sprioritysearch1) //Initialise all cells, security and mobile parameters + var boolean v_CSInOtherRAT := false; //@sic R5s150302 sic@ + f_EUTRA_Init(c4); - + //Send the cell info to the UTRAN component to initialise SIB19 f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); - + //Create and configure Cell 1 f_EUTRA_CellConfig_Def(eutra_Cell1); - + //Set cell paramters according to T0 f_EUTRA_SetCellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE); - + + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN);//@sic R5s150302 sic@ + //Since Authentication parameters were updated in the idle updated procedure... + //...receive updated parameters... + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); + f_EUTRA_TestBody_Set(true); - + f_IRAT_WaitForCoOrd_Trigger(UTRAN); //@siclog "Step 1" siclog@ //The SS change Cell 1 level according to the row "T1" in table 6.2.4.2.3.2-1. f_EUTRA_SetCellPower(eutra_Cell1, tsc_ServingCellRS_EPRE); - + //@siclog "Step 2" siclog@ //Check: Does the UE send an RRCConnectionRequest on Cell 1 within the next 10s? f_EUTRA_CheckNoAttachOn1Cell (eutra_Cell1, 10.0, "Test Case 6.2.4.2 Step 2 : RRCConnectionRequest message received on Cell 1 within wait time"); - + //Tell the UTRAN component that the test case is over f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); - + f_EUTRA_TestBody_Set(false); - + //And now remove the cell(s) f_EUTRA_ReleaseAllCells(); - }//end of f_TC_6_2_4_2_EUTRA + } /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.3 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_3_EUTRA() runs on EUTRA_PTC { f_TC_6_2_4_X_EUTRA(); } + /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.4 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_4_EUTRA() runs on EUTRA_PTC { @@ -138,63 +154,86 @@ module FeFACH_EU /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.5 - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_5_EUTRA() runs on EUTRA_PTC - { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (lower priority) to E-UTRA RRC_IDLE (higher priority) (All Layers, Squal,x >ThreshX,high2) + { // Inter-RAT absolute priority based reselection in UTRA CELL_FACH (lower priority) to E-UTRA RRC_IDLE (higher priority) (All Layers, Squal,x >ThreshX,high2) var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; var boolean v_CSInOtherRAT := false; var IRAT_Coordination_MSG v_IRAT_Coordination_MSG; - + timer t_Localtimer; // @sic R5-145950 sic@ + //Initialise all cells, security and mobile parameters f_EUTRA_Init(c4); - + //Coordinate with UTRAN component to receive UTRAN frequencies v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(UTRAN); //Send the cell info to the UTRAN component to initialise SIB19 f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); - + //Set SIB1 of cell 1 according to table 6.2.4.5.3.2-1 - f_EUTRA_CellInfo_SetSysInfo_NCEinSIB1(eutra_Cell1, cs_SystemInformationBlockType1_v890_CellSelInfo(cs_CellSelectionInfo_v920(-18))); - + f_EUTRA_CellInfo_SetSysInfo_NCEinSIB1(eutra_Cell1, cs_SystemInformationBlockType1_v890_CellSelInfo(cs_CellSelectionInfo_v920(-22))); //@sic R5s150334 sic@ + + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -65); //@sic R5s150334 sic@ //Create and configure Cell 1 f_EUTRA_CellConfig_Def(eutra_Cell1); - f_EUTRA_ConfigureVNG (eutra_Cell1, -75 ); - + f_EUTRA_ConfigureVNG(eutra_Cell1, -90); //@sic R5s150334 sic@ + //Set cell paramters according to T0 f_EUTRA_SetCellPower(eutra_Cell1, -95); - f_EUTRA_ActivateVNG (eutra_Cell1); - + f_EUTRA_ActivateVNG(eutra_Cell1); + //Since Authentication parameters were updated in the idle updated procedure... //...receive updated parameters... + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); //@sic R5s150334 sic@ + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); UTRAN.receive(cmr_IRAT_OctetData) -> value v_IRAT_Coordination_MSG; - + f_EUTRA_TestBody_Set(true); - - f_IRAT_WaitForCoOrd_Trigger(UTRAN); + + //@siclog "Step 0" siclog@ + //Check: Does the UE send an RRCConnectionRequest on Cell 1 within the next 60 s? + // @sic R5-145950 sic@ + t_Localtimer.start(f_EUTRA_SetTimerToleranceMin(eutra_Cell1, nonProtocolTimer, 60.0)); + alt { + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) + { + t_Localtimer.stop; + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Test Case 6.2.4.5 Step 0"); + } + [] t_Localtimer.timeout + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 6.2.4.5 Step 0"); + } + } + + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + //@siclog "Step 1" siclog@ - //Set cell paramters according to T1 - f_EUTRA_SetCellPower(eutra_Cell1, -75); - + //The SS change Cell 1 level according to the row "T1" in table 6.2.4.5.3.2-1. + f_EUTRA_SetCellPower(eutra_Cell1, -65); + //@siclog "Step 2" siclog@ //Check that UE camps on Cell 1 with the generic test procedure TS 36.508 table 6.4.2.7A-1 //NOTE: The UE performs a TAU procedure and the RRC Connection is released. f_EUTRA_IdleMode_TAU_UponMobility_FromOtherRAT(eutra_Cell1, v_CSInOtherRAT, true, false, v_IRAT_Coordination_MSG.OctetData); - + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 6.2.4.5 Step 2");// @sic R5-145950 sic@ + //Tell the UTRAN component that the test case is over f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); - + f_EUTRA_TestBody_Set(false); //Switch/Power off UE f_EUTRA_Postamble(eutra_Cell1, E1_IDLE); - }//end of f_TC_6_2_4_5_EUTRA + } /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.6 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_6_EUTRA() runs on EUTRA_PTC { @@ -203,51 +242,74 @@ module FeFACH_EU /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.7 - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_7_EUTRA() runs on EUTRA_PTC - { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (higher priority) to E-UTRA RRC_IDLE (lower priority) (All Layers, Srxlev,serv < Sprioritysearch1 , Squal,serv ThreshX,low2) + { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (higher priority) to E-UTRA RRC_IDLE (lower priority) (All Layers, Srxlev,serv < Sprioritysearch1, Squal,serv ThreshX,low2) var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; var boolean v_CSInOtherRAT := false; var IRAT_Coordination_MSG v_IRAT_Coordination_MSG; - + timer t_Localtimer; // @sic R5-145951 sic@ + //Initialise all cells, security and mobile parameters f_EUTRA_Init(c4); - + //Coordinate with UTRAN component to receive UTRAN frequencies v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(UTRAN); //Send the cell info to the UTRAN component to initialise SIB19 f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); - + //Set SIB1 of cell 1 according to table 6.2.4.7.3.2-1 - f_EUTRA_CellInfo_SetSysInfo_NCEinSIB1(eutra_Cell1, cs_SystemInformationBlockType1_v890_CellSelInfo(cs_CellSelectionInfo_v920(-18))); + f_EUTRA_CellInfo_SetSysInfo_NCEinSIB1(eutra_Cell1, cs_SystemInformationBlockType1_v890_CellSelInfo(cs_CellSelectionInfo_v920(-22)));//@sic R5-152107 sic@ + //Set maximum cell powel level for Cell 1 to be used in creation + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -65);//@sic R5s150654 sic@ + //Create and configure Cell 1 f_EUTRA_CellConfig_Def(eutra_Cell1); - f_EUTRA_ConfigureVNG (eutra_Cell1, -75 ); - + f_EUTRA_ConfigureVNG(eutra_Cell1, -80);//@sic R5-152107 sic@ + //Set cell paramters according to T0 - f_EUTRA_SetCellPower(eutra_Cell1, -95); - f_EUTRA_ActivateVNG (eutra_Cell1); - + f_EUTRA_SetCellPower(eutra_Cell1, -85);//@sic R5-152107 sic@ + f_EUTRA_ActivateVNG(eutra_Cell1); + //Since Authentication parameters were updated in the idle updated procedure... //...receive updated parameters... + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN);//@sic R5s150654 sic@ + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); UTRAN.receive(cmr_IRAT_OctetData) -> value v_IRAT_Coordination_MSG; f_EUTRA_TestBody_Set(true); - - f_IRAT_WaitForCoOrd_Trigger(UTRAN); + + //@siclog "Step 0" siclog@ + //Check: Does the UE send an RRCConnectionRequest on Cell 1 within the next 60 s? + // @sic R5-145951 sic@ + t_Localtimer.start(f_EUTRA_SetTimerToleranceMin(eutra_Cell1, nonProtocolTimer, 60.0)); + alt { + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) + { + t_Localtimer.stop; + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Test Case 6.2.4.7 Step 0"); + } + [] t_Localtimer.timeout + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 6.2.4.7 Step 0"); + } + } + + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); //@siclog "Step 1" siclog@ - //Set cell paramters according to T1 - f_EUTRA_SetCellPower(eutra_Cell1, -75); - + //The SS change Cell 1 and Cell 5 level according to the row "T1" in table 6.2.4.7.3.2-1. + f_EUTRA_SetCellPower(eutra_Cell1, -65); + //@siclog "Step 2" siclog@ //Check that UE camps on Cell 1 with the generic test procedure TS 36.508 table 6.4.2.7A-1 //NOTE: The UE performs a TAU procedure and the RRC Connection is released. f_EUTRA_IdleMode_TAU_UponMobility_FromOtherRAT(eutra_Cell1, v_CSInOtherRAT, true, false, v_IRAT_Coordination_MSG.OctetData); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 6.2.4.7 Step 2"); //@sic R5-145951 sic@ //Tell the UTRAN component that the test case is over f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); @@ -256,6 +318,6 @@ module FeFACH_EU //Switch/Power off UE f_EUTRA_Postamble(eutra_Cell1, E1_IDLE); - }//end of f_TC_6_2_4_7_EUTRA + } } diff --git a/LTE_A_IWD_14wk37/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn similarity index 70% rename from LTE_A_IWD_14wk37/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn index a876011..ac3c3d3 100644 --- a/LTE_A_IWD_14wk37/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/6_2/FeFACH_EU_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module FeFACH_EU_UTRAN { @@ -18,73 +18,48 @@ module FeFACH_EU_UTRAN import from UTRAN_Component all; import from UTRAN_CellInfo all; import from UTRAN_CommonFunctions all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_ConfigurationSteps all; import from UTRAN_RAB_Functions all; import from UTRAN_CommonDefs all; import from EUTRA_CapabilityFunctions all; //f_ConvertDL_BandwidthPIXITToInteger + import from UTRAN_RSRQ_Functions all; + import from UTRAN_RRC_SysInfo_Templates all; - //============================================================================== - // Templates - //============================================================================== - template (value) SIB19_v920NonCriticalExtensions_Type cs_SIB19_v920NonCriticalExtensions (integer p_ThreshServingLow2 := 7, - integer p_QqualminEUTRA := -20, - integer p_TreshXhigh2 := 5, - integer p_ThreshXlow2 := 5, - template (value) SIB19_sysInfoType19_vb30ext.cell_fach_meas_ind p_Cell_FeachMeasInd:= high_priority_layers) := - { // SIB19 acc. to Table 6.2.4.x.3.3-1: System Information Block type 19 for Cell 5 (Pre-test conditions and all steps) - sysInfoType19_v920ext:= { - utra_PriorityInfoList_v920ext:={ threshServingLow2:= p_ThreshServingLow2 }, - eutra_FrequencyAndPriorityInfoList_v920ext := {{ - qqualMinEUTRA := p_QqualminEUTRA, - threshXhigh2 := p_TreshXhigh2, - threshXlow2:= p_ThreshXlow2 - }} - }, - va80NonCriticalExtensions := { - sysInfoType19_va80ext := { - multipleEutraFrequencyInfoList := omit - }, - vb30NonCriticalExtensions := { - sysInfoType19_vb30ext := { - cell_fach_meas_ind := p_Cell_FeachMeasInd - }, - vb50NonCriticalExtensions := omit - } - } - }; //============================================================================== // Functions //============================================================================== - //Common function for TC6.2.4.1, TC6.2.4.3, TC6.2.4.4 and TC6.2.4.6 + /* + * @desc REFERENCE TS 36.523-1 clause 6.2.4.X + * @param p_TestCaseNumber + * @status APPROVED (LTE_A) + */ function f_TC_6_2_4_X_UTRAN(integer p_TestCaseNumber) runs on UTRAN_PTC { var integer v_T0_CPICH_Cell5 := -60; var integer v_T0_PCCPCH_Cell5 := -62; var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; - var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth( - f_ConvertDL_BandwidthPIXITToInteger()); + var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); //Initialise all cells f_UTRAN_Init(EUTRA_UTRAN); - + //Send the cell info to the EUTRA component f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); - + //Get Cell Parameters for EUTRA cell v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); - select (p_TestCaseNumber) - { + select (p_TestCaseNumber) { case (1) { //Update SIB19 of cell 5 according to Table 6.2.4.1.3.2-3 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, cs_SIB19_Common(cs_Utra_PriorityInfoList_Def, omit, cs_Eutra_FreqAndPriList_OneEntry_Def( v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth), - cs_SIB19_v920NonCriticalExtensions() //high_priority_layers condition - )); - } case (3) { + cs_SIB19_v920NonCriticalExtensions_Params(-, -, 31, omit))); //high_priority_layers condition @sic R5s150300 R5-152107 sic@ + } + case (3) { //Update SIB19 of cell 5 according to Table 6.2.4.3.3.2-3 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, cs_SIB19_Common(cs_Utra_PriorityInfoList_Def, @@ -92,61 +67,64 @@ module FeFACH_EU_UTRAN cs_Eutra_FreqAndPriList_OneEntry_Common(v_EUTRASysInfo.Eutra[0].Arfcn, // Earfcn omit, // MeasurementBandwidth 4, // E-UTRA Priority - -53, // QrxLevMinEutra + -53, // QrxLevMinEutra 31, // ThreshXhigh --62-- 1, // ThreshXlow omit, // Eutra-blackListedCellList true), // EutraDetection - cs_SIB19_v920NonCriticalExtensions() //high_priority_layers condition - )); //ThreshXlow2 + cs_SIB19_v920NonCriticalExtensions_Params())); //high_priority_layers condition @sic R5-152107 R5s150636 sic@ + } case (4) { //Update SIB19 of cell 5 according to Table 6.2.4.4.3.2-3 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, cs_SIB19_Common(cs_Utra_PriorityInfoList_Def, omit, cs_Eutra_FreqAndPriList_OneEntry_Def( v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth), - cs_SIB19_v920NonCriticalExtensions(-, -, -, -, all_layers) //all_layers condition - )); - } case (6) { - //Update SIB19 of cell 5 according to Table 6.2.4.6.3.2-3 + cs_SIB19_v920NonCriticalExtensions_Params(-, -, 31, omit, all_layers))); //all_layers condition @sic R5-152107 sic@ + + } + case (6) { + //Update SIB19 of cell 5 according to Table 6.2.4.6.3.2-3 @sic R5s150300 R5-152107 sic@ f_UTRAN_SysInfo_SetSIB19(utran_Cell5, - cs_SIB19_Common(cs_Utra_PriorityInfoList_Common( 3, // UtraPriorityValue - 11, // S_PrioritySearch1 - 0, // S_PrioritySearch2 - 11), // ThreshServingLow + cs_SIB19_Common(cs_Utra_PriorityInfoList_Common(3, // UtraPriorityValue @sic R5-152107 sic@ + 13, // S_PrioritySearch1 @sic R5-152107 sic@ + omit, // S_PrioritySearch2 + 13), // ThreshServingLow @sic R5-152107 sic@ omit, - cs_Eutra_FreqAndPriList_OneEntry_Common(v_EUTRASysInfo.Eutra[0].Arfcn, // Earfcn - v_EUTRA_MeasurementBandwidth,// MeasurementBW - 2, // E-UTRA Priority - -53, // QrxLevMinEutra - 2, // ThreshXhigh @sic R5-140749 sic@ - 1, // ThreshXlow - omit, // Eutra-blackListedCellList - true), // EutraDetection - omit)); + cs_Eutra_FreqAndPriList_OneEntry_Common(v_EUTRASysInfo.Eutra[0].Arfcn, // Earfcn @sic R5-152107 sic@ + omit,// MeasurementBW @sic R5-152107 sic@ + 2, // E-UTRA Priority + -53, // QrxLevMinEutra @sic R5-152107 sic@ + 31, // ThreshXhigh @sic R5-140749 R5-152107 sic@ + 1, // ThreshXlow @sic R5-152107 sic@ + omit, // Eutra-blackListedCellList + true), // EutraDetection @sic R5-152107 sic@ + cs_SIB19_v920NonCriticalExtensions_Params(-, -, omit, -, all_layers))); //@sic R5-152107 sic@ } case else { FatalError (__FILE__, __LINE__, "Invalid Test Case Number"); } } - + //Set FACH measurement occasions in SIB11 @sic R5s150300 R5-152107 sic@ + f_UTRAN_SysInfo_SetSIB11_FACHMeasurementOccasionInfo(utran_Cell5, cs_FACH_MeasurementOccasionInfo_FDD(3,false)); + //Create and configure Cell 5 //Cell started switched on with default power level, -60 and max attenuation f_UTRAN_SS_CreateCellFACH(utran_Cell5); - + //Start sending System Information f_UTRAN_SendDefSysInfo(utran_Cell5); - + //Initial conditions: the UE is in state PS-DCCH+DTCH FACH (state 6-11) on Cell 5 - /*Bring UE to initial state by - 1. Bring UE to Idle updated - 2. Bring UE to state 6-11 */ + /* Bring UE to initial state by + 1. Bring UE to Idle updated + 2. Bring UE to state 6-11 */ f_UTRAN_Preamble(utran_Cell5); f_UTRAN_UE_FACH_PS_Rb_Est(utran_Cell5, waitForIP); //Set cell power level according to T0 f_UTRAN_SetCellPower(utran_Cell5,v_T0_CPICH_Cell5,v_T0_PCCPCH_Cell5); - + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_OctetData(f_UTRAN_MobileInfo_EUTRACapability_Get())); - + f_UTRAN_TestBody_Set(true); // Test case now finished on UTRAN side, Finished here for now f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); @@ -154,13 +132,14 @@ module FeFACH_EU_UTRAN // Test case finished, so take cell down f_IRAT_WaitForCoOrd_Trigger(EUTRA); - + //Release UTRAN Cell 5 f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); } /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.1 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_1_UTRAN() runs on UTRAN_PTC { @@ -169,64 +148,69 @@ module FeFACH_EU_UTRAN /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_2_UTRAN() runs on UTRAN_PTC - { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (Higher Priority Layers, no cell reselection to E-UTRA RRC_IDLE when Srxlev,serv < Sprioritysearch1) + { // Inter-RAT absolute priority based reselection in UTRA CELL_FACH (Higher Priority Layers, no cell reselection to E-UTRA RRC_IDLE when Srxlev,serv < Sprioritysearch1) var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); //Initialise all cells f_UTRAN_Init(EUTRA_UTRAN); - + //Get Cell Parameters for EUTRA cell v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); - + //Update SIB19 of cell 5 according to table 6.2.4.2.3.3-1 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, - cs_SIB19_Common(cs_Utra_PriorityInfoList_Def(-, 31), + cs_SIB19_Common(cs_Utra_PriorityInfoList_Def(-, 31), //@sic R5-152107 sic@ omit, cs_Eutra_FreqAndPriList_OneEntry_Def( v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth), - cs_SIB19_v920NonCriticalExtensions)); - + cs_SIB19_v920NonCriticalExtensions_Params)); + //Set FACH measurement occasion in SIB11 @sic R5s150302 sic@ + f_UTRAN_SysInfo_SetSIB11_FACHMeasurementOccasionInfo(utran_Cell5, cs_FACH_MeasurementOccasionInfo_FDD(3,false)); //@sic R5-152107 sic@ + //Create and configure Cell 5 //Cell started switched on with default power level, -60 and max attenuation f_UTRAN_SS_CreateCellFACH(utran_Cell5); - + //Start sending System Information f_UTRAN_SendDefSysInfo(utran_Cell5); - + //Initial conditions: the UE is in state PS-DCCH+DTCH FACH (state 6-11) on Cell 5 /*Bring UE to initial state by 1. Bring UE to Idle updated 2. Bring UE to state 6-11 */ f_UTRAN_Preamble(utran_Cell5); f_UTRAN_UE_FACH_PS_Rb_Est(utran_Cell5, waitForIP); - + f_UTRAN_TestBody_Set(true); - + //@siclog "Step 1" siclog@ //The SS change Cell 1 level according to the row "T1" in table 6.2.4.2.3.2-1. f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); - + // Test case finished, so take cell down f_IRAT_WaitForCoOrd_Trigger(EUTRA); - + f_UTRAN_TestBody_Set(false); - + //Switch/Power off UE and release cell f_UTRAN_Postamble(utran_Cell5, U2_CONNECTED); } - + /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.3 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_3_UTRAN() runs on UTRAN_PTC { f_TC_6_2_4_X_UTRAN(3); } + /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.4 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_4_UTRAN() runs on UTRAN_PTC { @@ -235,60 +219,72 @@ module FeFACH_EU_UTRAN /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.5 - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_5_UTRAN() runs on UTRAN_PTC - { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (lower priority) to E-UTRA RRC_IDLE (higher priority) (All Layers, Squal,x >ThreshX,high2) + { // Inter-RAT absolute priority based reselection in UTRA CELL_FACH (lower priority) to E-UTRA RRC_IDLE (higher priority) (All Layers, Squal,x >ThreshX,high2) var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); - + //Initialise all cells f_UTRAN_Init(EUTRA_UTRAN); - + //Send the cell info to the EUTRA component f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); - + //Get Cell Parameters for EUTRA cell v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); - + //Update SIB19 of cell 5 according to table 6.2.4.5.3.2-1 and table 6.2.4.5.3.2-2 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, cs_SIB19_Common(cs_Utra_PriorityInfoList_Def, omit, - cs_Eutra_FreqAndPriList_OneEntry_Def( v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth), - cs_SIB19_v920NonCriticalExtensions( -, -18, -, -, all_layers))); - + cs_Eutra_FreqAndPriList_OneEntry_Common(v_EUTRASysInfo.Eutra[0].Arfcn, // @sic R5-145950 sic@ + v_EUTRA_MeasurementBandwidth, + 4, + -53, + 31, + 1, + omit, + true), + cs_SIB19_v920NonCriticalExtensions_Params(-, -22, 10, -, all_layers))); //@sic R5s150334 R5-152107sic@ + + //Set FACH measurement occasion @sic R5s150334 sic@ + f_UTRAN_SysInfo_SetSIB11_FACHMeasurementOccasionInfo(utran_Cell5, cs_FACH_MeasurementOccasionInfo_FDD(3,false)); + //Create and configure Cell 5 //Cell started switched on with default power level, -60 and max attenuation f_UTRAN_SS_CreateCellFACH(utran_Cell5); - + //Start sending System Information f_UTRAN_SendDefSysInfo(utran_Cell5); - + //Initial conditions: the UE is in state PS-DCCH+DTCH FACH (state 6-11) on Cell 5 - /*Bring UE to initial state by - 1. Bring UE to Idle updated - 2. Bring UE to state 6-11 */ + /* Bring UE to initial state by + 1. Bring UE to Idle updated + 2. Bring UE to state 6-11 */ f_UTRAN_Preamble(utran_Cell5); f_UTRAN_UE_FACH_PS_Rb_Est(utran_Cell5, waitForIP); - + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_OctetData(f_UTRAN_MobileInfo_EUTRACapability_Get())); - + f_UTRAN_TestBody_Set(true); - // Test case now finished on UTRAN side, Finished here for now - f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); - + + //wait until finish step0 + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + // Test case finished, so take cell down f_IRAT_WaitForCoOrd_Trigger(EUTRA); - + f_UTRAN_TestBody_Set(false); - + //Release UTRAN Cell 5 f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); } - + /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.6 + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_6_UTRAN() runs on UTRAN_PTC { @@ -297,54 +293,71 @@ module FeFACH_EU_UTRAN /* * @desc REFERENCE TS 36.523-1 clause 6.2.4.7 - * @status + * @status APPROVED (LTE_A) */ function f_TC_6_2_4_7_UTRAN() runs on UTRAN_PTC - { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (higher priority) to E-UTRA RRC_IDLE (lower priority) (All Layers, Srxlev,serv < Sprioritysearch1 , Squal,serv ThreshX,low2) + { //Inter-RAT absolute priority based reselection in UTRA CELL_FACH (higher priority) to E-UTRA RRC_IDLE (lower priority) (All Layers, Srxlev,serv < Sprioritysearch1, Squal,serv ThreshX,low2) var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); - + //Initialise all cells f_UTRAN_Init(EUTRA_UTRAN); - + //Send the cell info to the EUTRA component f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); - + //Get Cell Parameters for EUTRA cell v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); - + //Update SIB19 of cell 5 according to table 6.2.4.7.3.2-1 and table 6.2.4.7.3.2-2 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, - cs_SIB19_Common(cs_Utra_PriorityInfoList_Def(-, -, 25), + cs_SIB19_Common(cs_Utra_PriorityInfoList_Def(5, 12), //@sic R5-145951 sic@ @sic R5s150654 sic@ omit, - cs_Eutra_FreqAndPriList_OneEntry_Def( v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth), - cs_SIB19_v920NonCriticalExtensions( -, -18, 15, -, all_layers))); - + cs_Eutra_FreqAndPriList_OneEntry_Def(v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth), + cs_SIB19_v920NonCriticalExtensions_Params(12, -22, 31, 10, all_layers))); //@sic R5-152107 sic@ + + + //Set FACH measurement occasion @sic R5-152107 sic@ + f_UTRAN_SysInfo_SetSIB11_FACHMeasurementOccasionInfo(utran_Cell5, cs_FACH_MeasurementOccasionInfo_FDD(3,false)); + //Create and configure Cell 5 //Cell started switched on with default power level, -60 and max attenuation f_UTRAN_SS_CreateCellFACH(utran_Cell5); - + //Start sending System Information f_UTRAN_SendDefSysInfo(utran_Cell5); - + + //@sic R5-145951 sic@ + if (f_UTRAN_CellInfo_GetFDD_TDD(utran_Cell5) == UTRAN_FDD) { + f_UTRAN_ConfigureVNG(utran_Cell5, -55); + } else { + f_UTRAN_ConfigureVNG(utran_Cell5, -57); + } + f_UTRAN_ActivateVNG(utran_Cell5); + //Initial conditions: the UE is in state PS-DCCH+DTCH FACH (state 6-11) on Cell 5 /*Bring UE to initial state by 1. Bring UE to Idle updated 2. Bring UE to state 6-11 */ f_UTRAN_Preamble(utran_Cell5); f_UTRAN_UE_FACH_PS_Rb_Est(utran_Cell5, waitForIP); - + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_OctetData(f_UTRAN_MobileInfo_EUTRACapability_Get())); - + f_UTRAN_TestBody_Set(true); - // Test case now finished on UTRAN side, Finished here for now - f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); - + //wait until finish step0 + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + + //@siclog "Step 1" siclog@ + //@sic R5-145951 sic@ + //The SS change Cell 1 and Cell 5 level according to the row "T1" in table 6.2.4.7.3.2-1. + f_UTRAN_SetCellPower(utran_Cell5, -73, -75); + // Test case finished, so take cell down f_IRAT_WaitForCoOrd_Trigger(EUTRA); - + f_UTRAN_TestBody_Set(false); - + //Release UTRAN Cell 5 f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); } diff --git a/LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE.ttcn b/LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE.ttcn new file mode 100644 index 0000000..d771594 --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE.ttcn @@ -0,0 +1,86 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-06-26 08:26:54 +0200 (Fri, 26 Jun 2015) $ +// $Rev: 13961 $ +/******************************************************************************/ +module InterRat_CellReSelection_A_UtoE +{ + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from CommonIratDefs all; + import from CommonDefs all; + + import from EUTRA_Component all; + import from EUTRA_CommonDefs all; + import from EUTRA_CellInfo all; + import from EUTRA_ConfigurationSteps all; + import from EUTRA_CommonProcedures all; + import from EUTRA_IdleMode all; + import from EUTRA_IRATFunctions all; + import from EUTRA_AuxiliaryFunctions all; + import from EUTRA_Parameters all; + import from EUTRA_CellInfoInit_MFBI all; + import from EUTRA_SysInfo_Templates all; + + /* + * @desc REFERENCE TS 36.523-1 clause 6.2.3.35 + * @status APPROVED (LTE_A) + */ + function f_TC_6_2_3_35_EUTRA() runs on EUTRA_PTC + { //Inter-RAT cell reselection from UTRA to E-UTRA / MFBI + var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; + var boolean v_CSInOtherRAT := false; + var IRAT_Coordination_MSG v_IRAT_Coordination_MSG; + + //Initialise all cells, security and mobile parameters + f_EUTRA_Init(c4); + + f_EUTRA_InitBandFrequency_MFBI(eutra_Cell1, px_OverlappingNotSupportedFrequencyBand_MFBI, px_MFBI_FrequencyBand, px_MFBI_BandChannelBandwidth, f_ConvertDL_BandwidthToUL(px_MFBI_BandChannelBandwidth)); + f_EUTRA_CellInfo_SetSysInfo_SIB2_v8h0_IEs(eutra_Cell1,cs_SystemInformationBlockType2_v8h0_IEs({1})); //@sic R5s150092 R5-150607 sic@ + + //Coordinate with UTRAN component to receive UTRAN frequencies for cell 5 + v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(UTRAN); + + //Send the cell info to the UTRAN component to initialise SIB19 + f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, + f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), + f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1)), + -, + -, + -, + -, + -, + px_MFBI_FrequencyBand); // @sic R5s150092 sic@ + + //Create and configure Cell 1 + f_EUTRA_CellConfig_Def(eutra_Cell1); + + v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); + UTRAN.receive(cmr_IRAT_OctetData) -> value v_IRAT_Coordination_MSG; + //UE does not support the px_OverlappingNotSupportedFrequencyBandMFBI band + // @sic R5-151748 sic@ + f_EUTRA_CheckNotSupportedBand( px_OverlappingNotSupportedFrequencyBand_MFBI, v_IRAT_Coordination_MSG.OctetData ); //@sic R5s150635 change 1 sic@ + + f_EUTRA_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + //The SS change power levels according to the row "T1" in tables 6.2.3.35.3.2-1 + f_IRAT_WaitForCoOrd_Trigger(UTRAN); + f_EUTRA_SetCellPower(eutra_Cell1, tsc_ServingCellRS_EPRE); + + //@siclog "Step 2" siclog@ + //Check: Does the test result of the generic test procedure in TS 36.508 Table 6.4.2.7A-2 indicate that the UE is camped on E-UTRAN Cell 1? + f_EUTRA_IdleMode_TAU_UponMobility_FromOtherRAT(eutra_Cell1, v_CSInOtherRAT, false, false, v_IRAT_Coordination_MSG.OctetData); + + //Tell the UTRAN component that the test case is over + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_EUTRA_TestBody_Set(false); + + //Switch/Power off UE + f_EUTRA_Postamble(eutra_Cell1, E1_IDLE); + } +} diff --git a/LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE_UTRAN.ttcn new file mode 100644 index 0000000..860558c --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/6_2/InterRat_CellReSelection_A_UtoE_UTRAN.ttcn @@ -0,0 +1,90 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ +/******************************************************************************/ +module InterRat_CellReSelection_A_UtoE_UTRAN +{ + import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from UTRAN_ASP_Definitions language "ASN.1:2002" all; + import from CommonIratDefs all; + import from CommonDefs all; + import from UTRAN_CommonDefs all; + import from UTRAN_RRC_SysInfo_Templates all; + import from UTRAN_Component all; + import from UTRAN_CellInfo all; + import from UTRAN_CommonFunctions all; + import from UTRAN_IRAT_CommonProcedures all; + import from UTRAN_ConfigurationSteps all; + + //============================================================================== + // Test cases + //============================================================================== + /* + * @desc REFERENCE TS 36.523-1 clause 6.2.3.35 + * @status APPROVED (LTE_A) + */ + function f_TC_6_2_3_35_UTRAN() runs on UTRAN_PTC + { //Inter-RAT cell reselection from UTRA to E-UTRA / MFBI + + var integer v_T0_CPICH_Cell5 := -60; + var integer v_T0_PCCPCH_Cell5 := -62; + var integer v_T1_CPICH_Cell5 := -90; + var integer v_T1_PCCPCH_Cell5 := -92; + var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; + + //Initialise all cells + f_UTRAN_Init(EUTRA_UTRAN); + + //Send System Information of UTRAN cell to EUTRA component + f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); + + //Get Cell Parameters for EUTRA cell + v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo(EUTRA); + + //Update SIB19 of cell 5 according to Table Table 6.2.3.35.3.3-1 + f_UTRAN_SysInfo_SetSIB19(utran_Cell5, cs_SIB19_Common(cs_Utra_PriorityInfoList_Def, + omit, + cs_Eutra_FreqAndPriList_OneEntry_Def( v_EUTRASysInfo.Eutra[0].Arfcn, + f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(v_EUTRASysInfo.Eutra[0].DL_Bandwidth)), + cs_SIB19_v920NonCriticalExtensions( cs_SysInfoType19V920ext(7, // ThreshServingLow2 + -20, // QqualMinEUTRA + 5, // ThreshXhigh2 + 5), // ThreshXlow2 + // @sic R5s150092 sic@ + cs_SIB19_va80NonCriticalExtensions(cs_SysInfoType19_va80ext_1Entry({v_EUTRASysInfo.Eutra[0].freqBandIndicator}))))); + + //Create and configure Cell 5 (cell started switched on but with max attenuation) + f_UTRAN_SS_CreateCellFACH(utran_Cell5); + + //Start sending System Information + f_UTRAN_SendDefSysInfo(utran_Cell5); + + //Set cell power level according to T0 + f_UTRAN_SetCellPower(utran_Cell5, v_T0_CPICH_Cell5, v_T0_PCCPCH_Cell5); + + //Preamble to ensure USIM is updated with valid TAI and to bring UE to initial state + f_UTRAN_Preamble(utran_Cell5); + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_OctetData(f_UTRAN_MobileInfo_EUTRACapability_Get())); + + f_UTRAN_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + //The SS change power levels according to the row "T1" in tables 6.2.3.35.3.2-2. + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_Trigger); + f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_PCCPCH_Cell5); + + //Wait for the end of the test case + f_IRAT_WaitForCoOrd_Trigger(EUTRA); + + f_UTRAN_TestBody_Set(false); + + //Release UTRAN Cell 5 + f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/7_1/MAC_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_CA.ttcn similarity index 79% rename from LTE_A_IWD_14wk37/LTE_A/7_1/MAC_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/7_1/MAC_CA.ttcn index 44da9b1..ad68f4d 100644 --- a/LTE_A_IWD_14wk37/LTE_A/7_1/MAC_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:15:34 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12147 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 17:38:56 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14503 $ /******************************************************************************/ module MAC_CA { import from EUTRA_CellInfo all; @@ -26,7 +26,6 @@ module MAC_CA { import from L2_CommonFunctions all; import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_Timing all; -// import from EUTRA_DRB_Templates all; import from CommonDefs all; import from EUTRA_CellInfoInit_CA all; import from EUTRA_RRC_Templates_CA all; @@ -34,12 +33,13 @@ module MAC_CA { import from EUTRA_SysInfo_Templates all; import from Parameters all; import from EUTRA_SecuritySteps all; + import from EUTRA_NASSteps all; //========================================================================= // Constants //========================================================================= - const B7_Type tsc_Scell1_Activate := '0000001'B; /* @status APPROVED (LTE_A) */ + const B7_Type tsc_DeactivateAll := '0000000'B; /* @status APPROVED (LTE_A) */ const SRSInd_Type tsc_SRS_Start := SRS_Start; const SRSInd_Type tsc_SRS_Stop := SRS_Stop; @@ -66,8 +66,8 @@ module MAC_CA { TimingAdvance := omit, PowerHeadRoom := omit, /* UL only */ ScellActDeact := { - Reserved := '0'B, - Value := p_ScellBitMap + Value := p_ScellBitMap, + Reserved := '0'B //@sic R5s141373 sic@ }, ExtPowerHeadRoom := omit }; @@ -123,30 +123,10 @@ module MAC_CA { Padding := p_Padding /* padding bytes apart from the last subheader byte */ }; - template (value) ScellBitMap_Type cs_ScellBitMap(B7_Type p_ScellBitMap) := - { /* @status APPROVED (LTE_A) */ - Reserved := '0'B, /* LSBit Reserved. Shall be set to 0 */ - Value := p_ScellBitMap /* 7 MSB bits the C Fields C7 to C1. 1 => the corresponding Scell is Active 0 => Inactive */ - }; - template (value) ActivateScell_Type cs_ActivateScell(B7_Type p_ScellBitMap, - boolean p_SendMCE := false) := - { /* @status APPROVED (LTE_A) */ - ScellActivation := cs_ScellBitMap (p_ScellBitMap), /* 36.321 clause 6.1.3.8; B0=C7, B1=C6 .. B6=C1, B7 is reserved. - * B0 to B6, 1 means Activate associated Scell */ - SendMCE := p_SendMCE /* If true the SS sends a MAC Control Element to the UE */ - }; - template (value) SYSTEM_CTRL_REQ cas_ScellActivate_REQ(EUTRA_CellId_Type p_CellId, - B7_Type p_ScellBitMap, - boolean p_SendMCE := false, //@sic R5s140693 sic@ - template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) := - { /* @status APPROVED (LTE_A) */ - Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), - Request := { - ActivateScell := cs_ActivateScell(p_ScellBitMap, p_SendMCE) - } - }; + + //---------------------------------------------------------------------------- @@ -163,14 +143,14 @@ module MAC_CA { template (value) MAC_MainConfig_v1020_Type cs_508_MAC_MainConfig_EPHR_v1020 (template (omit) MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer :=omit) := { /* @status APPROVED (LTE_A) */ - sCellDeactivationTimer_r10 := p_ScellDeactivationTimer, /* FFS in TS 36.508 V10.0.0 (2012-03) */ + sCellDeactivationTimer_r10 := p_ScellDeactivationTimer, //@sic R5s140295 sic@ extendedBSR_Sizes_r10 := omit, extendedPHR_r10 := setup }; template (value) MAC_MainConfig_v1020_Type cs_508_MAC_MainConfig_SCellDeactTimer_v1020 (template (omit) MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer :=omit) := { /* @status */ - sCellDeactivationTimer_r10 := p_ScellDeactivationTimer, /* FFS in TS 36.508 V10.0.0 (2012-03) */ + sCellDeactivationTimer_r10 := p_ScellDeactivationTimer, //@sic R5s140295 sic@ extendedBSR_Sizes_r10 := omit, extendedPHR_r10 := omit @@ -178,11 +158,16 @@ module MAC_CA { template (value) MAC_MainConfig cs_MAC_MainConfig_EPHR_Config(template (value) PHR_Config_Type p_PHR_Config, template (omit) MAC_MainConfig_v1020_Type p_MAC_MainConfig_v1020 := omit) := /* @status APPROVED (LTE_A) */ - cds_MAC_MainConfig_Common_V1020(omit, omit, sf750, p_PHR_Config, -, p_MAC_MainConfig_v1020); + cs_MAC_MainConfig_Common(omit, omit, sf750, p_PHR_Config, -, p_MAC_MainConfig_v1020); - template (value) MAC_MainConfig cs_MAC_MainConfiguration_EPHR_Enable (template (omit) MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer :=omit):= + template (value) MAC_MainConfig cs_MAC_MainConfiguration_EPHR_Enable_71419 (template (omit) MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer := omit) := /* @status APPROVED (LTE_A) */ //@sic R5s140295 sic@ + cs_MAC_MainConfig_EPHR_Config(cs_PHR_Config_Setup(infinity_, sf1000, dB3), cs_508_MAC_MainConfig_EPHR_v1020(p_ScellDeactivationTimer)); + + template (value) MAC_MainConfig cs_MAC_MainConfiguration_EPHR_Enable (template (omit) MAC_MainConfig_ScellDeactivationTimer_Type p_ScellDeactivationTimer := omit) := + /* @status APPROVED (LTE_A) */ + //@sic R5s150787 sic@ cs_MAC_MainConfig_EPHR_Config(cs_PHR_Config_Setup(sf200, sf1000, infinity_), cs_508_MAC_MainConfig_EPHR_v1020(p_ScellDeactivationTimer)); template (present) SYSTEM_IND car_EPHR_IND(EUTRA_CellId_Type p_CellId, @@ -217,54 +202,11 @@ module MAC_CA { Padding := omit /* Octet aligned Padding if more than or equal to 2 bytes */ }; - template (present) SYSTEM_CTRL_CNF car_SYSTEM_CTRL_ActivateScell_CNF(EUTRA_CellId_Type p_CellId) := - { /* @status APPROVED (LTE_A) */ - Common := cr_CnfAspCommonPart_CellCfg(p_CellId), - Confirm := { - ActivateScell := true - } - }; + + - template (present) RLC_PDU_Type cr_RLC_AMD_2PDU_713x(template (present) B1_Type p_Poll, - template (present) B10_Type p_SN, - template (present) RLC_DataField_Type p_RLC_SDU, - template (present) RLC_DataField_Type p_RLC_SDU2) := - { /* @status APPROVED (LTE_A) */ - //@sic R5s140498 sic@ - AMD := { - Header := cr_RLC_AMD_Header_1SDU_713x(p_Poll, p_SN), - Data := {p_RLC_SDU, p_RLC_SDU2} - } - }; - template (present) RLC_AMD_Header_Type cr_RLC_AMD_Header_1SDU_713x(template (present) B1_Type p_Poll, - template (present) B10_Type p_SN) := - { /* @status APPROVED (LTE_A) */ - //@sic R5s140498 sic@ - FixPart := cr_RLC_AMD_Header_FixPart_713x(p_Poll, p_SN), - SegmentPart := omit, - FlexPart := { - LengthIndicator := { - { - Extension := tsc_E_Data, - LengthIndicator := int2bit (38, 11) - } - }, - Padding := '????'B // - } - }; - template (present) RLC_AMD_Header_FixPart_Type cr_RLC_AMD_Header_FixPart_713x(template (present) B1_Type p_Poll, - template (present) B10_Type p_SN) := - { /* @status APPROVED (LTE_A) */ - //@sic R5s140498 sic@ - D_C := tsc_D_C_DataPDU, /* 1 ... Data PDU */ - ReSeg := '0'B, /* 0 ... AMD PDU */ - Poll := p_Poll, - FramingInfo := tsc_Framing00, /* 2 bit FI */ - Extension := tsc_ExtensionMoreHeaders, /* 1 bit E */ - SN := p_SN /* Sequence numbers */ - }; //========================================================================= // functions @@ -301,25 +243,13 @@ module MAC_CA { { f_EUTRA_SS_CommonL1MacIndCtrlConfig(p_CellId, cas_EPHR_IndConfig_REQ(p_CellId, p_EPHR_Mode)); } - /* - * @desc Cell Configuration: Activate/Deactivate Scell - * @param p_CellId - * @param p_SYSTEM_CTRL_REQ - * @status APPROVED (LTE_A) - */ - function f_EUTRA_SS_CommonActivateScellConfig(EUTRA_CellId_Type p_CellId, - template (value) SYSTEM_CTRL_REQ p_SYSTEM_CTRL_REQ) runs on EUTRA_PTC - {//@sic R5s140295 sic@ - SYS.send(p_SYSTEM_CTRL_REQ); - if (valueof(p_SYSTEM_CTRL_REQ.Common.ControlInfo.CnfFlag) == true) { - SYS.receive(car_SYSTEM_CTRL_ActivateScell_CNF(p_CellId)); - } - } + /* - * @desc To send MCE to Activate/Deativate a scell + * @desc To send MCE to Activate/Deativate a scell * @param p_CellId * @param p_ScellBitMap + * @param p_TimingInfo (default value: cs_TimingInfo_Now) * @status APPROVED (LTE_A) */ function f_EUTRA_ScellActivate_Deactivate(EUTRA_CellId_Type p_CellId, @@ -333,369 +263,7 @@ module MAC_CA { f_EUTRA_SS_CommonActivateScellConfig(p_CellId, cas_ScellActivate_REQ(p_CellId, p_ScellBitMap,false, p_TimingInfo)); //@sic R5s140295 R5s140693 sic@ } - /* - * @desc to Send and receive PDCP PDU in one cell - * @param p_TxCellId - * @param p_RxCellId - * @param p_SQN - * @status APPROVED (LTE_A) - */ - function fl_EUTRA_SendAndReceiveDL_PDCP_PDU_OneCell(EUTRA_CellId_Type p_TxCellId, - EUTRA_CellId_Type p_RxCellId, - integer p_SQN) runs on EUTRA_PTC - { //@sic R5s140498 sic@ - var MAC_SDU_Type v_EncodedRlcPdu1; - var octetstring v_EncodedPdcpPdu; - var integer v_Nack_Count := 0; - var SubFrameTiming_Type v_SubFrameInfo, v_SubFrameInfo2, v_SubFrameInfo3; - var Dl_Bandwidth_Type v_DL_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth(p_TxCellId); - - timer t_Watchdog := 5.0; - // Configure for explicit grant in DL - f_EUTRA_SS_CommonCellConfig(p_TxCellId, cas_CcchDcchDtchDL_Config_REQ(p_TxCellId, - cs_TimingInfo_Now, - cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, - dci_1A, - ra_2_Localised, - 1, - 5)))); // p_FirstRbIndex =5 - - //@siclog "Step 1" siclog@ - // Send DL MAC PDU - // PDCP SDU =36B => PDCP PDU =38 Bytes => RLC AM PDU =40 Bytes => MAC PDU =1BH +40 B Payload=41B=328 - v_EncodedPdcpPdu:= f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(p_SQN, 12), crs_PDCP_SDU_36B))); - v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, int2bit(p_SQN, 10), v_EncodedPdcpPdu)); - v_SubFrameInfo := f_EUTRA_GetNextSendOccasion(p_TxCellId); - v_SubFrameInfo2 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 100) ; //100 ms in future to configure back the DL grant as normal - //@sic R5s140531 sic@ - v_SubFrameInfo3 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 110) ; //110 ms in future for status PDU transmission - DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_TxCellId, - tsc_RbId_DRB1, - cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), - cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); - f_EUTRA_SS_CommonCellConfig(p_TxCellId, - cas_CcchDcchDtchDL_Config_REQ(p_TxCellId, - cs_TimingInfo(v_SubFrameInfo2.SFN.Number, v_SubFrameInfo2.Subframe.Number), - cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_DL_Bandwidth)))); - t_Watchdog.start; - //@siclog "Step 2" siclog@ - SYSIND.receive(car_UL_HARQ_IND(p_RxCellId, ?, nack)); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2"); - - //@siclog "Step 3" siclog@ - // MAC PDU retransmision automatically performed by SS - //@siclog "Step 4" siclog@ - alt { - [] SYSIND.receive(car_UL_HARQ_IND(p_RxCellId, ?, ack)) - { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "HARQ ACK Received"); - } - [v_Nack_Count<3] SYSIND.receive(car_UL_HARQ_IND(p_RxCellId, ?, nack)) - { - v_Nack_Count := v_Nack_Count +1; - repeat; - } - [] t_Watchdog.timeout - { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 4: UE did not send HARQ ACK"); - } - } - - //@siclog "Step5" siclog@ - //Taken care by SS - - //@siclog "Step 6" siclog@ - // Send UL Grant automatically taken care of - //@siclog "Step 7" siclog@ - t_Watchdog.start; - DRB.receive(car_DRB_COMMON_IND_RLC_PDUList(p_RxCellId, - tsc_RbId_DRB1, - cr_TimingInfo_Any, - {cr_RLC_AMD_1PDU(?, int2bit(p_SQN, 10), v_EncodedPdcpPdu)})); - - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Loop Back PDU"); - t_Watchdog.stop; - // Send RLC Status PDU - //@sic R5s140531 sic@ - f_RLC_Status_PDU_Tx(tsc_LchId_DRB1, p_SQN + 1, p_TxCellId, cs_TimingInfo(v_SubFrameInfo3.SFN.Number, v_SubFrameInfo3.Subframe.Number)); //Change 1 - - SYSIND.receive ( car_UL_HARQ_IND (p_RxCellId, ?, ack ));//Change 2 - - } - - /* - * @desc to Send and receive PDCP PDU in two cell - * @param p_PCellId - * @param p_SCellId - * @param p_SQNStart - * @param p_HARQProcess - * @param p_RLCsn - * @status APPROVED (LTE_A) - */ - function fl_EUTRA_SendAndReceiveDL_PDCP_PDU_TwoCell(EUTRA_CellId_Type p_PCellId, - EUTRA_CellId_Type p_SCellId, - integer p_SQNStart, - integer p_HARQProcess, - integer p_RLCsn) runs on EUTRA_PTC - {//@sic R5s140498 sic@ - var MAC_SDU_Type v_EncodedRlcPdu1; - var MAC_SDU_Type v_EncodedRlcPdu2; - var integer v_Nack_Count := 0; - var integer v_Ack_Count := 0; - var integer v_SQN := p_SQNStart; - var SubFrameTiming_Type v_SubFrameInfo, v_SubFrameInfo2, v_SubFrameInfo3; - var octetstring v_EncodedPdcpPdu1, v_EncodedPdcpPdu2; - var Dl_Bandwidth_Type v_DL_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth(p_PCellId); - - timer t_Watchdog := 5.0; - //@siclog "Step 1" siclog@ - // Send DL MAC PDU - // PDCP SDU =36B => PDCP PDU =38 Bytes => RLC AM PDU =40 Bytes => MAC PDU =1BH +40 B Payload=41B=328 - v_EncodedPdcpPdu1 := f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(v_SQN,12), crs_PDCP_SDU_36B))); - v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, - int2bit(v_SQN,10), - v_EncodedPdcpPdu1 )); - v_SQN := v_SQN + 1; - v_EncodedPdcpPdu2:=f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(v_SQN,12), crs_PDCP_SDU_36B1))); - v_EncodedRlcPdu2 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, - int2bit(v_SQN,10), - v_EncodedPdcpPdu2 )); - f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_CcchDcchDtchDL_Config_REQ(p_PCellId, - cs_TimingInfo_Now, - cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, - dci_1A, - ra_2_Localised, - 1, - 5)))); // p_FirstRbIndex =5 - f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_CcchDcchDtchDL_Config_REQ(p_SCellId, - cs_TimingInfo_Now, - cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, - dci_1A, - ra_2_Localised, - 1, - 5)))); // p_FirstRbIndex =5 - - // Scehdule one MAC PDU each on each Active Cell in same TTI - v_SubFrameInfo := f_EUTRA_GetNextSendOccasion(p_PCellId); // - v_SubFrameInfo2 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo,100) ; //100 ms in future to configure back the DL grant as normal - //@sic R5s140531 sic@ - v_SubFrameInfo3 := f_EUTRA_TimingInfoAdd(v_SubFrameInfo,110) ; //110 ms in future for status PDU transmission - - DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_PCellId, - tsc_RbId_DRB1, - cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), - cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu1)), - cs_HarqProcessAssignment_Specific(p_HARQProcess))); - DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_SCellId, - tsc_RbId_DRB1, - cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), - cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu2)), - cs_HarqProcessAssignment_Specific(p_HARQProcess))); - f_EUTRA_SS_CommonCellConfig(p_PCellId, - cas_CcchDcchDtchDL_Config_REQ(p_PCellId, - cs_TimingInfo(v_SubFrameInfo2.SFN.Number, v_SubFrameInfo2.Subframe.Number), - cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_DL_Bandwidth)))); - f_EUTRA_SS_CommonCellConfig(p_SCellId, - cas_CcchDcchDtchDL_Config_REQ(p_SCellId, - cs_TimingInfo(v_SubFrameInfo2.SFN.Number, v_SubFrameInfo2.Subframe.Number), - cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_DL_Bandwidth)))); - - t_Watchdog.start; - //@siclog "Step 2" siclog@ - SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, nack)); - SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, nack)); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2"); - - //@siclog "Step 3" siclog@ - // MAC PDU retransmision automatically performed by SS - //@siclog "Step 4" siclog@ - alt { - [] SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, ack)) - { - v_Ack_Count := v_Ack_Count +1; - if ((v_Ack_Count) < 2) { - repeat; - } - else { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 21: UE sent HARQ ACK for DL data corresponding to DL CC1 and DL CC2"); - t_Watchdog.stop; - } - } - - [v_Nack_Count<6]SYSIND.receive(car_UL_HARQ_IND(p_PCellId, ?, nack)) - { - v_Nack_Count := v_Nack_Count +1; - repeat; - } - - [] t_Watchdog.timeout - { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 21: UE did not send HARQ ACK"); - } - } - - //@siclog "Step5" siclog@ - //Taken care by SS - - //@siclog "Step 6" siclog@ - // Send UL Grant automatically taken care of - //@siclog "Step 7" siclog@ - // Note due to insequence delivery in RLC and PDCP Scell PDCP PDU cannot come before Pcell PDU - // UL grant is allocated only in Pcell as SR is received only in Pcell - - DRB.receive (car_DRB_COMMON_IND_RLC_PDUList (p_PCellId, - tsc_RbId_DRB1, - cr_TimingInfo_Any, - {cr_RLC_AMD_2PDU_713x(?, int2bit(p_RLCsn, 10), v_EncodedPdcpPdu1,v_EncodedPdcpPdu2)})); - - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Loop Back PDU"); - t_Watchdog.stop; - - // Send RLC Status PDU - f_RLC_Status_PDU_Tx(tsc_LchId_DRB1, p_RLCsn+1, p_PCellId, cs_TimingInfo(v_SubFrameInfo3.SFN.Number, v_SubFrameInfo3.Subframe.Number)); //@sic R5s140531 sic@ - SYSIND.receive ( car_UL_HARQ_IND (p_PCellId, ?, ack ));//@sic R5s140531 sic@ - - } - - //========================================================== - // L2/MAC/7.1 - //========================================================== - /* - * @desc REFERENCE TS 36.523-1 clause 7.1.3.11 - * @param p_PCellId - * @param p_SCellId - * @param p_CA_Type - * @status APPROVED (LTE_A) - */ - function f_TC_7_1_3_11_Common(EUTRA_CellId_Type p_PCellId, - EUTRA_CellId_Type p_SCellId, - CA_Tested_Type p_CA_Type) runs on EUTRA_PTC - { /* 7.1.3.11 : CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell */ - //@sic R5s140498 sic@ - var integer j := 0; - var integer k := 0; - var integer m := 0; - var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; - var Dl_Bandwidth_Type v_Dl_Bandwidth; - var PhysCellId v_PhysicalCellIdentity_Scell; - var Frequency_IE_Type v_Frequency_IE_PCell; - var Frequency_IE_Type v_Frequency_IE_Scell; - var ChannelBandwidthDependency_Type v_ChBandDependency_PCell; - var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; - var boolean v_UL_CA := pc_UL_CA; - var integer v_SQN := 0; - var CarrierFreqEUTRA v_CarrierFreq_Scell; - - /////////////////////////////////////////////////////////////////////////////////// - // PREAMBLE - ////////////////////////////////////////////////////////////////////////////////// - f_EUTRA_Init(c3); - f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); - //Get cell dependant parameters - v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); - v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); - v_ChBandDependency_Scell := f_EUTRA_BandDependentParam(v_Frequency_IE_Scell.DL_ChBandwidth, - v_Frequency_IE_Scell.UL_ChBandwidth); - v_Frequency_IE_PCell := f_EUTRA_CellInfo_GetFrequencyIEs(p_PCellId); - v_ChBandDependency_PCell := f_EUTRA_BandDependentParam(v_Frequency_IE_PCell.DL_ChBandwidth, - v_Frequency_IE_PCell.UL_ChBandwidth); - v_CarrierFreq_Scell := f_EUTRA_CellInfo_GetEARFCN(p_SCellId); - - - //Set C-RNTI to be used in s-cell creation - f_EUTRA_CellInfo_SetC_RNTI(p_SCellId, tsc_C_RNTI_Def); - - //Create and configure all cells - f_EUTRA_CellConfig_Pcell_Def(p_PCellId); - f_EUTRA_CellConfig_Scell(p_SCellId, Scell_Active); //No DRB's created @sic R5-132022 sic@ - - // bring UE to initial state - f_EUTRA_Preamble(p_PCellId, STATE2A_TESTLOOP_ModeA); - // creates cell and performs registration - f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm - f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(-, -, p_PCellId,n8); - //@sic R5-101183 sic@ - f_Delay(0.660); // 600 ms previous time alignment timer - // Go to state 4 - f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(p_PCellId, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); - - //f_EUTRA_SS_CommonL1MacIndCtrlConfig(eutra_Cell1, cas_HarqErrorIndication_REQ(eutra_Cell1,tsc_L1Mac_IndicationMode_Disable));//@sic R5s100520 sic@ - // to configure SS to report reception of SR - //@sic R5s100021 sic@ - //f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); - /////////////////////////////////////////////////////////////////////////////////// - // Test Body - ////////////////////////////////////////////////////////////////////////////////// - f_EUTRA_TestBody_Set(true, layer2); // @sic R5-101050 sic@ - f_EUTRA_SetCellPower(p_SCellId, tsc_ServingCellRS_EPRE); - v_Dl_Bandwidth := f_EUTRA_CellInfo_GetDL_ChBandwidth(p_PCellId); - v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(p_PCellId); - if (v_EUTRA_FDD_TDD_Mode == FDD) { - k := 7; // HARQ process 0..7 - } - else if (v_EUTRA_FDD_TDD_Mode == TDD) { - k := 6; // HARQ process 0..6 - } - //@siclog "Step 1-2" siclog@ - //Transmit RRCConnectionReconfiguration - //Receive RRCConnectionReconfigurationComplete - f_EUTRA_508RRC_AddMod_1Scell(p_PCellId, - p_SCellId, - 1, //SCellIndex_r10 - p_CA_Type, // CA Type - v_UL_CA, // UL CA desired,, - -,// C_RNTI default := tsc_C_RNTI_Def, - omit, -, - -, - -, - -, - -, - -, - -, - -, - -, - -, - rf128); - //@siclog "Step 3" siclog@ - // Send Scell Activation Command - f_EUTRA_SS_CommonActivateScellConfig(p_PCellId, cas_ScellActivate_REQ(p_PCellId,tsc_Scell1_Activate,true));//@sic R5s140531 sic@ - - // Delay for completion of step activating Scell MCE transmission - f_Delay (0.5); //@sic R5s140624 sic@ - // to configure SS to report reception of HARQ ACK or NACK - f_SS_ConfigUL_HARQ_IndMode(p_PCellId, tsc_L1Mac_IndicationMode_Enable); - - f_SS_Config1TM_DRB_NoMACHeader(p_PCellId, tsc_RbId_DRB1, cs_MAC_TestMode_NoHeaderManipulationDLOnly); - // Configure SS for Explicit DL in grant in both S and P cell to use Nprb=1 and Itbs =6 and TBS=328, which cannot be decoded in first attempt. - // Note allocating single PRB is not possible in DCI format '1' for C-RTNI hence 1A needs to be used - - - //@siclog "Steps 4-10" siclog@ - fl_EUTRA_SendAndReceiveDL_PDCP_PDU_OneCell(p_PCellId, p_PCellId, v_SQN); - v_SQN := v_SQN + 1; - //@siclog "Steps 11-17" siclog@ - fl_EUTRA_SendAndReceiveDL_PDCP_PDU_OneCell(p_SCellId, p_PCellId, v_SQN); - v_SQN := v_SQN + 1; - m := v_SQN; - //@siclog "Steps 18-21" siclog@ - for (j := 0; j <= k; j := j+1) { - fl_EUTRA_SendAndReceiveDL_PDCP_PDU_TwoCell(p_PCellId, p_SCellId, v_SQN, j, m); - v_SQN := v_SQN + 2; - m := m + 1; - } - /////////////////////// - // Postamble - ///////// - f_EUTRA_TestBody_Set(false); - // to configure SS to stop report reception of HARQ ACK or NACK - f_SS_ConfigUL_HARQ_IndMode(p_PCellId, tsc_L1Mac_IndicationMode_Disable); - - f_SS_Config1TM_DRB_NoMACHeader(p_PCellId, tsc_RbId_DRB1, cs_MAC_TestMode_NormalMode); - - //Switch/power off UE - f_EUTRA_Postamble(p_PCellId, E2_CONNECTED); - } /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.11.1 @@ -703,6 +271,8 @@ module MAC_CA { */ function f_TC_7_1_3_11_1_EUTRA() runs on EUTRA_PTC { /* CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell / Intra-band Contiguous CA */ + f_EUTRA_Init(c3); + f_EUTRA_CA_InitCells({eutra_Cell1, eutra_Cell3}, CA_IntraBand, c3); f_TC_7_1_3_11_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); /* @sic R5-141113 sic@ */ } @@ -712,16 +282,31 @@ module MAC_CA { */ function f_TC_7_1_3_11_2_EUTRA() runs on EUTRA_PTC { /* CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell/ Inter-Band CA */ - f_TC_7_1_3_11_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_Mode_Pcell, v_EUTRA_Mode_Scell ; + f_EUTRA_Init(c3); + f_EUTRA_CA_InitCells({eutra_Cell1, eutra_Cell10}, CA_InterBand, c3); + v_EUTRA_Mode_Pcell := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell1); + v_EUTRA_Mode_Scell := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell10); + if (v_EUTRA_Mode_Pcell == v_EUTRA_Mode_Scell) //Test applicable as same mode + { + f_TC_7_1_3_11_Common(eutra_Cell1, eutra_Cell3,CA_InterBand); + } else + { + FatalError (__FILE__, __LINE__, "Invalid Band Combination, Test 7.1.3.11.2 not applicable to FDD-TDD Inter-band combination"); + } } /* - * @desc Common function : REFERENCE TS 36.523-1 clause 7.1.3.11.3 - * @status + * @desc REFERENCE TS 36.523-1 clause 7.1.3.11.3 + * @status APPROVED (LTE_A) */ function f_TC_7_1_3_11_3_EUTRA() runs on EUTRA_PTC { /* CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell / Intra-band non-Contiguous CA */ - f_TC_7_1_3_11_Common(eutra_Cell6, eutra_Cell3,CA_IntraBand); + + f_EUTRA_Init(c3); + f_EUTRA_CA_InitCells({eutra_Cell1, eutra_Cell3}, CA_IntraBandNonContiguous, c3); + f_TC_7_1_3_11_Common(eutra_Cell1, eutra_Cell3,CA_IntraBandNonContiguous); + } /* @@ -965,6 +550,10 @@ module MAC_CA { f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); + //@sic R5s150787 sic@ + f_EUTRA_CellInfo_InitMaxReferencePower(p_PCellId,-80); + f_EUTRA_CellInfo_InitMaxReferencePower(p_SCellId,-80); + //Get cell dependant parameters v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); @@ -989,8 +578,6 @@ module MAC_CA { // to configure SS to start report reception of Extended Power head room report //Set initial cell power level according to T0 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0_2_4); - - /////////////////////////////////////////////////////////////////////////////////// // Test Body @@ -1004,8 +591,7 @@ module MAC_CA { p_CA_Type, // CA Type v_UL_CA, // UL CA desired, -, // C_RNTI default := tsc_C_RNTI_Def, - omit// MeasGapConfig omit, no gap - ); + omit);// MeasGapConfig omit, no gap //@siclog "Step 3" siclog@ f_EUTRA_HarqErrorHandling_Set(raiseInconc); // Start 'Harq Errors not tolerant' if (v_EUTRA_FDD_TDD_Mode == FDD) { v_GrantPeriod := 1; } @@ -1022,7 +608,7 @@ module MAC_CA { SRB.send(cas_SRB1_RrcPdu_REQ(p_PCellId, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_RadioResConfig(tsc_RRC_TI_Def, - cs_RadioResourceConfigDedicated_MacPhy(cs_MAC_MainConfig_Explicit(cs_MAC_MainConfiguration_EPHR_Enable))))); //@sic R5s140295 sic@ + cs_RadioResourceConfigDedicated_MacPhy(cs_MAC_MainConfig_Explicit(cs_MAC_MainConfiguration_EPHR_Enable_71419))))); //@sic R5s140295 R5s150787 sic@ //@siclog "Steps 5 " siclog@ t_Watchdog.start; @@ -1052,7 +638,7 @@ module MAC_CA { // Calculate future timing info and set power level for Pcell v_Timing := f_EUTRA_GetNextSendOccasion(p_PCellId); // 100 ms in future //Set cell power level according to T1 - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number)); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), p_PCellId); //@sic R5s150787 sic@ //@siclog "Steps 10 - 11" siclog@ t_Watchdog.start; @@ -1071,7 +657,7 @@ module MAC_CA { // Calculate future timing info v_Timing := f_EUTRA_GetNextSendOccasion(p_PCellId); // 100 ms in future //Set cell power level according to T2 - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0_2_4, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number)); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0_2_4, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), p_PCellId);//@sic R5s150787 sic@ //@siclog "Steps 13 - 14" siclog@ @@ -1161,13 +747,13 @@ module MAC_CA { f_TC_7_1_4_19_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } - /* + /* * @desc Common function : REFERENCE TS 36.523-1 clause 7.1.4.19.3 * @status */ function f_TC_7_1_4_19_3_EUTRA() runs on EUTRA_PTC { /* CA / UE power headroom reporting / SCell activation and DL pathloss change reporting / Extended PHR / Intra-band non-Contiguous CA */ - f_TC_7_1_4_19_Common(eutra_Cell6, eutra_Cell3,CA_IntraBand); + f_TC_7_1_4_19_Common(eutra_Cell1, eutra_Cell3,CA_IntraBandNonContiguous); //@sic R5s150322 sic@ } /* @@ -1190,7 +776,7 @@ module MAC_CA { var Frequency_IE_Type v_Frequency_IE_Scell; var ChannelBandwidthDependency_Type v_ChBandDependency_PCell; var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; - var boolean v_UL_CA := pc_UL_CA; // TBD + var boolean v_UL_CA := pc_UL_CA; var integer v_Arfcn_SCell; var SCell_DL_Bandwidth_Type v_SCell_DL_Bandwidth; var template (omit) DedicatedSCell_UL_Configuration_Type v_DedicatedSCell_UL_Configuration := omit; @@ -1243,7 +829,7 @@ module MAC_CA { f_EUTRA_Preamble(p_PCellId, STATE2A_TESTLOOP_ModeA); // creates cell and performs registration f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm - f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(-, -, p_PCellId, n8); + f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(p_PCellId, n8); //@sic R5-101183 sic@ f_Delay(0.660); // 600 ms previous time alignment timer // Go to state 4 @@ -1273,12 +859,8 @@ module MAC_CA { } v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ + } v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_AddModRelease(tsc_RRC_TI_Def, cs_SCellToAddMod_r10(1, @@ -1419,7 +1001,7 @@ module MAC_CA { v_EncodedPdcpPdu2 := f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(3,12), crs_PDCP_SDU_36B1))); v_EncodedRlcPdu2 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, int2bit(3,10), - v_EncodedPdcpPdu1 )); + v_EncodedPdcpPdu2 )); v_SubFrameInfo := f_EUTRA_GetNextSendOccasion(p_PCellId, 300); // 300 ms in future @@ -1453,7 +1035,12 @@ module MAC_CA { //@siclog "Step 21" siclog@ // Deactivate Scells v_SubFrameInfo := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 100); // 100 ms later - f_EUTRA_ScellActivate_Deactivate(p_PCellId, tsc_DeactivateAll); + //@sic R5s150070 sic@ + DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_PCellId, + tsc_RbId_DRB1, + cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_ScellActDeact(tsc_DeactivateAll)))); + //@siclog "Step 22" siclog@ v_SubFrameInfo := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 100); // 100 ms later @@ -1522,13 +1109,13 @@ module MAC_CA { f_TC_7_1_9_1_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 7.1.9.1.3 - * @status + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.9.1.3 + * @status APPROVED (LTE_A) */ function f_TC_7_1_9_1_3_EUTRA() runs on EUTRA_PTC { /* CA / Activation/Deactivation of SCells / Activation/Deactivation MAC control element reception / sCellDeactivationTimer/ Intra-band non-Contiguous CA */ - f_TC_7_1_9_1_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_7_1_9_1_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150321 sic@ } /* @@ -1937,7 +1524,7 @@ module MAC_CA { */ function f_TC_7_1_4_20_3_EUTRA() runs on EUTRA_PTC { /* CA / Correct handling of MAC control information / Buffer status / Intra-band non-Contiguous CA*/ - f_TC_7_1_4_20_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_7_1_4_20_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150322 sic@ } ///////////////////////////////////////////////////////////////////////////////////////// @@ -1947,7 +1534,7 @@ module MAC_CA { template (value) RachProcedureConfig_Type cs_RachProcedureConfig_Dedicated_71210(RACH_TimingAdvance_Type p_RAR_TA, Dl_Bandwidth_Type p_Dl_Bandwidth) := { /* Rach Response config for test case 7.1.2.10 */ - /* @status */ + /* @status APPROVED (LTE_A) */ RACH_ConfigCommon := omit, RACH_ConfigDedicated := cs_RACH_ConfigDedicated_r8(cs_RACH_ConfigDedicated), RachProcedureList := { @@ -1972,19 +1559,23 @@ module MAC_CA { /* * @desc REFERENCE TS 36.523-1 clause 7.1.2.10 + * @param p_PCellId + * @param p_SCellId + * @param p_CA_Type + * @status APPROVED (LTE_A) */ function f_TC_7_1_2_10_Common(EUTRA_CellId_Type p_PCellId, EUTRA_CellId_Type p_SCellId, CA_Tested_Type p_CA_Type) runs on EUTRA_PTC - {/* L2/MAC - * 7.1.2.10 : CA / Random access procedure / SCell - */ + { /* CA / Random access procedure / SCell */ var boolean v_UL_CA := true; + var boolean v_SetFailVerdict := false; var boolean v_SendStatusPdu := false; var SubFrameTiming_Type v_SubFrameInfo; var MAC_SDU_Type v_EncodedRlcPdu1; var MAC_SDU_Type v_EncodedRlcPdu2; var octetstring v_EncodedPdcpPdu1, v_EncodedPdcpPdu2; + var boolean v_SR_Received := false; //@sic R5s150797 sic@ /////////////////////////////////////////////////////////////////////////////////// // PREAMBLE @@ -2005,7 +1596,7 @@ module MAC_CA { // creates cell and performs registration f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm // Go to state 4 - f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(-, -, p_PCellId,n8); + f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(p_PCellId, n8); //@sic R5-101183 sic@ f_Delay(0.660); // 600 ms previous time alignment timer @@ -2013,6 +1604,7 @@ module MAC_CA { // Test Body ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_TestBody_Set(true, layer2); // + f_EUTRA_SetCellPower(p_SCellId, tsc_ServingCellRS_EPRE); //@sic R5s150797 sic@ //@siclog "Step 1-2" siclog@ //Transmit RRCConnectionReconfiguration @@ -2027,31 +1619,29 @@ module MAC_CA { -, //p_RRCConnectionReconfiguration -, //p_DciUlInfo_SCell -, //p_UL_GrantConfig_SCell - -, //p_CnfFlag -, //p_STAG_ToReleaseList {cs_STAG_ToAddMod_Def(tsc_STAG_ID1, infinity_)},// p_STAG_ToAddModList cs_MAC_MainConfigSCell_Def(tsc_STAG_ID1),//p_MAC_MainConfigSCell_r11 cs_RACH_ConfigCommonSCell_r11_Def, - cs_PRACH_Config_Def(f_EUTRA_CellInfo_GetPrach_Config(p_SCellId)) - ); - - + cs_PRACH_Config_Def(f_EUTRA_CellInfo_GetPrach_Config(p_SCellId)), + infinity_, + rf128);//@sic R5s150797 sic@ f_SS_Config1TM_DRB_NoMACHeader(p_PCellId, tsc_RbId_DRB1, cs_MAC_TestMode_NoHeaderManipulationDLOnly); f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(p_PCellId, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); - + //@siclog "Step 3" siclog@ // Send Scell Activation Command f_EUTRA_ScellActivate_Deactivate(p_PCellId, tsc_Scell1_Activate); - - // config for PReamble reception indication in Scell + + // config for PReamble reception indication in Scell f_EUTRA_SS_ConfigRachPreambleIndMode(p_SCellId, tsc_L1Mac_IndicationMode_Enable); // to configure SS to report reception of Scheduling Request f_SS_ConfigSchedulingRequestIndMode(p_PCellId, tsc_L1Mac_IndicationMode_Enable); - + // Configure Scell for RACH procedure f_EUTRA_SS_ConfigRachProcedure(p_SCellId, tsc_C_RNTI_Def, cs_RachProcedureConfig_Dedicated_71210(f_EUTRA_CellInfo_GetRAR_TA(p_SCellId), - f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellId) )); + f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellId) )); // Precode RLC PDU's v_EncodedPdcpPdu1 := f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(int2bit(0,12), crs_PDCP_SDU_36B))); v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, @@ -2069,8 +1659,6 @@ module MAC_CA { tsc_RbId_DRB1, cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); - - //@siclog "Step 5" siclog@ // Send DL PDCCH order on CC2 f_Send_PDCCH_Order(p_SCellId, cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), cs_RA_PDCCH_Order(tsc_EUTRA_PrachPreambleIndex_Dedicated_Def)); @@ -2078,40 +1666,54 @@ module MAC_CA { //@siclog "Step 1-4 Parallel behaviour" siclog@ // Main behaviour step 9, Paralelle behaviour step 1-2 are taken care by SS interleave { - [] DRB.receive (car_DRB_COMMON_IND_RLC_PDUList (p_PCellId, - tsc_RbId_DRB1, - cr_TimingInfo_Any, - {cr_RLC_AMD_1PDU(?, int2bit(0, 10), v_EncodedPdcpPdu1)})) - { - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Parallel behaviour Step 3"); - v_SendStatusPdu:=true; + [] DRB.receive(car_DRB_COMMON_IND_RLC_PDUList(p_PCellId, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + {cr_RLC_AMD_1PDU(?, int2bit(0, 10), v_EncodedPdcpPdu1)})) + { //@sic R5s150797 sic@ + if (v_SR_Received){ //Change 4 + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Parallel behaviour Step 1 and 3"); + } + else { + //f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 SR not received before Step 3"); + v_SetFailVerdict := true; + } + + v_SendStatusPdu := true; //f_RLC_Status_PDU_Tx(tsc_LchId_DRB1,1,p_PCellId); } - [] SYSIND.receive ( car_PRACH_Preamble_IND (p_SCellId, cr_TimingInfo_Any)) + [] SYSIND.receive(car_PRACH_Preamble_IND(p_SCellId, cr_TimingInfo_Any)) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, " Step 6"); } - [] SYSIND.receive ( car_PRACH_Preamble_IND (p_SCellId, cr_TimingInfo_Any)) + [] SYSIND.receive(car_PRACH_Preamble_IND(p_SCellId, cr_TimingInfo_Any)) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, " Step 7"); } - [] SYSIND.receive ( car_PRACH_Preamble_IND (p_SCellId, cr_TimingInfo_Any)) + [] SYSIND.receive(car_PRACH_Preamble_IND(p_SCellId, cr_TimingInfo_Any)) { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, " Step 8"); } + [] SYSIND.receive(car_SchedulingReq_IND (p_PCellId, cr_TimingInfo_Any)) + { + v_SR_Received:= true; + } + } + if (v_SetFailVerdict) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 1 SR not received before Step 3"); } if (v_SendStatusPdu) { - f_RLC_Status_PDU_Tx(tsc_LchId_DRB1,1,p_PCellId); - v_SendStatusPdu:=false; + f_RLC_Status_PDU_Tx(tsc_LchId_DRB1,1,p_PCellId); + v_SendStatusPdu:=false; } // Stop UL Grant transmission on Pcell f_EUTRA_StopULGrantTransmission_No_PUCCH_Sync (p_PCellId,cs_TimingInfo_Now ); - // config for stop of PReamble reception indication in Scell + // config for stop of PReamble reception indication in Scell f_EUTRA_SS_ConfigRachPreambleIndMode(p_SCellId, tsc_L1Mac_IndicationMode_Disable); // to configure SS to stop of report reception of Scheduling Request f_SS_ConfigSchedulingRequestIndMode(p_PCellId, tsc_L1Mac_IndicationMode_Disable); - + v_SubFrameInfo := f_EUTRA_GetNextSendOccasion(p_SCellId); // @siclog "Step 10" siclog@ DRB.send(cas_DRB_COMMOM_REQ_MAC_PDU(p_SCellId, @@ -2121,9 +1723,9 @@ module MAC_CA { //@siclog "Step 11" siclog@ // Configure SS for 1 UL grant v_SubFrameInfo := f_EUTRA_TimingInfoAdd(v_SubFrameInfo, 60); // 60 ms later - f_EUTRA_OneULGrantTransmission( p_SCellId, - cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), - 7, 3); //results in a grant of 328 bits= 41 B + f_EUTRA_OneULGrantTransmission(p_SCellId, + cs_TimingInfo(v_SubFrameInfo.SFN.Number, v_SubFrameInfo.Subframe.Number), + 7, 3); //results in a grant of 328 bits= 41 B //@siclog "Step 12" siclog@ // Receive loop back PDU on CC2 DRB.receive (car_DRB_COMMON_IND_RLC_PDUList (p_SCellId, @@ -2154,8 +1756,8 @@ module MAC_CA { } /* - * @desc Common function : REFERENCE TS 36.523-1 clause 7.1.2.10.2 - * @status + * @desc REFERENCE TS 36.523-1 clause 7.1.2.10.2 + * @status APPROVED (LTE_A) */ function f_TC_7_1_2_10_2_EUTRA() runs on EUTRA_PTC { /* CA / Random access procedure / SCell / Inter-Band CA */ @@ -2168,7 +1770,7 @@ module MAC_CA { */ function f_TC_7_1_2_10_3_EUTRA() runs on EUTRA_PTC { /*CA / Random access procedure / SCell / Intra-band Non Contiguous CA */ - f_TC_7_1_2_10_Common(eutra_Cell6, eutra_Cell3,CA_IntraBand); + f_TC_7_1_2_10_Common(eutra_Cell1, eutra_Cell3,CA_IntraBand); //@sic R5s150322 sic@ } @@ -2234,21 +1836,19 @@ module MAC_CA { // creates cell and performs registration f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm // Go to state 4 - f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(-, -, p_PCellId,n8); + f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_DSR(p_PCellId, n8); //@sic R5-101183 sic@ f_Delay(0.660); // 600 ms previous time alignment timer /////////////////////////////////////////////////////////////////////////////////// // Test Body ////////////////////////////////////////////////////////////////////////////////// - f_EUTRA_TestBody_Set(true, layer2); // + f_EUTRA_TestBody_Set(true, layer2); v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(p_PCellId); - if (v_EUTRA_FDD_TDD_Mode == FDD) - { - v_RAR_TA := 600; - }else - { - v_RAR_TA := 160; + if (v_EUTRA_FDD_TDD_Mode == FDD) { + v_RAR_TA := 600; + } else { + v_RAR_TA := 160; } //@siclog "Step 1-2" siclog@ @@ -2264,7 +1864,6 @@ module MAC_CA { -, //p_RRCConnectionReconfiguration -, //p_DciUlInfo_SCell -, //p_UL_GrantConfig_SCell - -, //p_CnfFlag -, //p_STAG_ToReleaseList {cs_STAG_ToAddMod_Def(tsc_STAG_ID1)},// p_STAG_ToAddModList cs_MAC_MainConfigSCell_Def(tsc_STAG_ID1),//p_MAC_MainConfigSCell_r11 @@ -2506,6 +2105,6 @@ module MAC_CA { */ function f_TC_7_1_2_11_3_EUTRA() runs on EUTRA_PTC { /*CA / Maintenance of uplink time alignment / Multiple TA/ Intra-band Non Contiguous CA */ - f_TC_7_1_2_11_Common(eutra_Cell6, eutra_Cell3,CA_IntraBand); + f_TC_7_1_2_11_Common(eutra_Cell1, eutra_Cell3,CA_IntraBand);//@sic R5s150322 sic@ } } diff --git a/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_Rel11.ttcn b/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_Rel11.ttcn new file mode 100644 index 0000000..a2dd58d --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_Rel11.ttcn @@ -0,0 +1,1412 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-15 15:40:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14405 $ +/******************************************************************************/ + +module MAC_Rel11 { + import from EUTRA_CellInfo all; + import from EUTRA_ConfigurationSteps all; + import from EUTRA_CommonProcedures all; + import from EUTRA_ASP_TypeDefs all; + import from EUTRA_AspCommon_Templates all; + import from EUTRA_CommonDefs all; + import from EUTRA_CellCfg_Templates all; + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from EUTRA_RRC_Templates all; + import from EUTRA_Component all; + import from L2_CommonTemplates all; + import from L2_CommonFunctions all; + import from MAC_Common all; + import from EUTRA_Timing all; + import from CommonDefs all; + import from EUTRA_PdcchConfig all; + import from EUTRA_LoopBack all; + import from EUTRA_SecuritySteps all; + import from EUTRA_ASP_DrbDefs all; + import from EUTRA_DRB_Templates all; + import from EUTRA_RRC_Templates_CA all; + import from EUTRA_SRB_Templates all; + import from EPS_NAS_Templates all; + import from EUTRA_NASSteps all; + + type EPDCCH_SetConfig_r11.transmissionType_r11 TransmissionType_r11; + + template (value) PdcchCandidateList_Type cs_EPdcchCandidateList_TDD := + { + { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { + cs_CCE_StartIndex_DL_UL( 16, 0), // subframe 0 + cs_CCE_StartIndex_DL_UL( 0, 8), // subframe 1 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 3 + cs_CCE_StartIndex_DL_UL( 0, 16), // subframe 4 + cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 5 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 6 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 7 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 8 + cs_CCE_StartIndex_DL_UL( 8, 24) // subframe 9 + } + }, + { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 0 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 3 + cs_CCE_StartIndex_DL_UL( 24, 8), // subframe 4 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 5 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 6 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 7 + cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 8 + cs_CCE_StartIndex_DL_UL( 0, 16) // subframe 9 + } + } + }; + + template (value) PdcchCandidateList_Type cs_EPdcchCandidateList_FDD := + { + { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { + cs_CCE_StartIndex_DL_UL( 20, 4), // subframe 0 + cs_CCE_StartIndex_DL_UL( 2, 18), // subframe 1 + cs_CCE_StartIndex_DL_UL( 10, 26), // subframe 2 + cs_CCE_StartIndex_DL_UL( 28, 12), // subframe 3 + cs_CCE_StartIndex_DL_UL( 0, 16), // subframe 4 + cs_CCE_StartIndex_DL_UL( 26, 10), // subframe 5 + cs_CCE_StartIndex_DL_UL( 16, 0), // subframe 6 + cs_CCE_StartIndex_DL_UL( 8, 24), // subframe 7 + cs_CCE_StartIndex_DL_UL( 22, 6), // subframe 8 + cs_CCE_StartIndex_DL_UL( 2, 18) // subframe 9 + } + }, + { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { + cs_CCE_StartIndex_DL_UL( 8, 24), // subframe 0 + cs_CCE_StartIndex_DL_UL( 24, 8), // subframe 1 + cs_CCE_StartIndex_DL_UL( 4, 20), // subframe 2 + cs_CCE_StartIndex_DL_UL( 26, 10), // subframe 3 + cs_CCE_StartIndex_DL_UL( 14, 30), // subframe 4 + cs_CCE_StartIndex_DL_UL( 0, 16), // subframe 5 + cs_CCE_StartIndex_DL_UL( 4, 20), // subframe 6 + cs_CCE_StartIndex_DL_UL( 22, 6), // subframe 7 + cs_CCE_StartIndex_DL_UL( 26, 10), // subframe 8 + cs_CCE_StartIndex_DL_UL( 8, 24) // subframe 9 + } + } + } + + + template (value) MeasSubframePattern_r10 cs_MeasSubframePattern_r10_FDD := + { + subframePatternFDD_r10 := '0000000000000000000000000000000000000000'B + }; + template (value) MeasSubframePattern_r10 cs_MeasSubframePattern_r10_TDD := + { + subframePatternTDD_r10 := { + subframeConfig1_5_r10 := '00000000000000000000'B + } + }; + + + template (value) EPDCCH_Config_r11 cs_EPDCCH_Config_r11_Def(template (value) MeasSubframePattern_r10 p_MeasSubframePattern_r10, + template (value) TransmissionType_r11 p_TransmissionType_r11):= + { // Values according to 36.508 table 4.6.3-2B + config_r11 := { + setup := { + subframePatternConfig_r11 := { + setup := { + subframePattern_r11 := p_MeasSubframePattern_r10 + } + }, + startSymbol_r11 := 3, + setConfigToReleaseList_r11 := omit, + setConfigToAddModList_r11 := { + { + setConfigId_r11 := 0, + transmissionType_r11 := p_TransmissionType_r11, + resourceBlockAssignment_r11 := { + numberPRB_Pairs_r11 := n8, + resourceBlockAssignment_r11 := '11100100101110110011001101100'B + }, + dmrs_ScramblingSequenceInt_r11 := 0, + pucch_ResourceStartOffset_r11 := 0, + re_MappingQCL_ConfigId_r11 := omit, + csi_RS_ConfigZPId2_r12 := omit /* BASELINE MOVING 2015 sic@ */ + } + } + } + } + }; + + template (value) EPDCCH_Config_r11 cs_EPDCCH_Config_r11_Rel:= + { // Template to release EPDCCH + config_r11 := { + release := NULL + } + }; + + template (value) PUSCH_ConfigDedicated_v1130 cs_PUSCH_ConfigDedicated_v1130 := + { /* @status APPROVED (LTE_A) */ + pusch_DMRS_r11 := { + setup := { + nPUSCH_Identity_r11 := 3, + nDMRS_CSH_Identity_r11 :=4 + } + } + }; + + template (value) PUCCH_ConfigDedicated_v1130 cs_PUCCH_ConfigDedicated_v1130 := + { /* @status APPROVED (LTE_A) */ + n1PUCCH_AN_CS_v1130 := { + setup := { + n1PUCCH_AN_CS_ListP1_r11 := { 5, 6} + } + }, + nPUCCH_Param_r11 := { + setup := { + nPUCCH_Identity_r11 := 2, + n1PUCCH_AN_r11 := 3 + } + } + }; + + template (value) PhysicalConfigDedicated cds_508_PhysicalConfigDedicated_UL_Comp(template (omit) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020 := omit, + template (omit) PUCCH_ConfigDedicated_v1130 p_PUCCH_ConfigDedicated_v1130 := omit, + template (omit) PUSCH_ConfigDedicated_v1130 p_PUSCH_ConfigDedicated_v1130 := omit) + modifies cs_PhysicalConfigDedicated_Omit := + { /* @status APPROVED (LTE_A) */ + pucch_ConfigDedicated_v1020 := p_PUCCH_ConfigDedicated_v1020, + pucch_ConfigDedicated_v1130 := p_PUCCH_ConfigDedicated_v1130, + pusch_ConfigDedicated_v1130 := p_PUSCH_ConfigDedicated_v1130 + }; + + template (value) PhysicalConfigDedicated cds_508_PhysicalConfigDedicated_ePDCCH(template (omit) EPDCCH_Config_r11 p_EPDCCH_Config_r11) + modifies cs_PhysicalConfigDedicated_Omit := + { + epdcch_Config_r11 := p_EPDCCH_Config_r11 + }; + + + template (value) SYSTEM_CTRL_REQ cas_UL_Comp_REQ(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + EUTRA_CellInfo_Type p_CellInfo, + template (omit) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020 := omit, + template (omit) PUCCH_ConfigDedicated_v1130 p_PUCCH_ConfigDedicated_v1130 := omit, + template (omit) PUSCH_ConfigDedicated_v1020 p_PUSCH_ConfigDedicated_v1020 := omit, + template (omit) PUSCH_ConfigDedicated_v1130 p_PUSCH_ConfigDedicated_v1130 := omit) := + { /* @status APPROVED (LTE, LTE_A) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), + Request := { + Cell := { + AddOrReconfigure := { + Basic := omit, + Active := { + C_RNTI := omit, + PhysicalLayerConfigUL := { + Prach := omit, + Pucch := { + Common := omit, + Dedicated := cs_PUCCH_ConfigDedicated_r8( p_CellInfo.FDD_TDD_Info.pucch_Config, p_PUCCH_ConfigDedicated_v1020, p_PUCCH_ConfigDedicated_v1130) + }, + Pusch := { + Common := omit, // no change + Dedicated := cs_PUSCH_ConfigDedicated_r8(cs_508_PUSCH_ConfigDedicated_Default,p_PUSCH_ConfigDedicated_v1020, p_PUSCH_ConfigDedicated_v1130) //@sic R5s150423 sic@ + }, + TimingAdvance := omit, + SRS_UL_Config := omit, + SR_Config := omit, + CQI_ReportConfig := omit, + UplinkPowerControlCommon := omit, + UplinkPowerControlDedicated := omit + }, + RachProcedureConfig := omit, + CcchDcchDtchConfig := omit, + ServingCellConfig := omit + } + } + } + } + }; + template (value) PhysicalLayerConfigDL_Type cs_PhysicalLayerConfigDL_EPDCCH(template (omit) EpdcchConfig_Type p_EpdcchConfig_Type ) := + { /* @status */ + AntennaGroup := omit, + Pbch := omit, + Pcfich := omit, + Phich := omit, + Pdcch := omit, + Pdsch := omit, + Pss := omit, + Sss := omit, + CSI_RS_Config := omit, + Pmch := omit, + Epdcch := p_EpdcchConfig_Type + }; + + template (value) EpdcchConfig_Type cs_EpdcchConfig (template (omit) PdcchCandidateList_Type p_EPdcchCandidateList_Type, + template (omit) EPDCCH_Config_r11 p_EPDCCH_Config_r11) := //@sic R5w150211r1 sic@ + { + RelativeTxPower := cs_PowerRatios_Def, + ePdcchCandidateList := p_EPdcchCandidateList_Type, + EPDCCH_Config := p_EPDCCH_Config_r11 + }; + + /* + * @desc To Configure UL Comp on SS side + * @param p_CellId + * @param p_TimingInfo + * @param p_PUCCH_ConfigDedicated_v1020 (default value: omit) + * @param p_PUCCH_ConfigDedicated_v1130 (default value: omit) + * @param p_PUSCH_ConfigDedicated_v1020 (default value: omit) + * @param p_PUSCH_ConfigDedicated_v1130 (default value: omit) + * @status APPROVED (LTE_A) + */ + function f_SS_UL_Comp_Configure(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (omit) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020 := omit, + template (omit) PUCCH_ConfigDedicated_v1130 p_PUCCH_ConfigDedicated_v1130 := omit, + template (omit) PUSCH_ConfigDedicated_v1020 p_PUSCH_ConfigDedicated_v1020 := omit, + template (omit) PUSCH_ConfigDedicated_v1130 p_PUSCH_ConfigDedicated_v1130 := omit) + runs on EUTRA_PTC + { + var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); + f_EUTRA_SS_CommonCellConfig(p_CellId, cas_UL_Comp_REQ (p_CellId, p_TimingInfo, v_CellInfo, p_PUCCH_ConfigDedicated_v1020, p_PUCCH_ConfigDedicated_v1130, p_PUSCH_ConfigDedicated_v1020, p_PUSCH_ConfigDedicated_v1130)); + } + + /* + * @desc To Configure UL Comp on SS side + * @param p_CellId + * @param p_TimingInfo + * @param p_ePdcchCandidateList_Type + * @param p_EPDCCH_Config_r11 + * @param p_Use_ePDDCH + * @status + */ + function f_SS_ePDCCH_Configure(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo, + template (omit) PdcchCandidateList_Type p_EPdcchCandidateList_Type, + template (omit) EPDCCH_Config_r11 p_EPDCCH_Config_r11) //@sic R5w150211r1 sic@ + runs on EUTRA_PTC + { + f_EUTRA_SS_CommonCellConfig(p_CellId, cas_PhysicalLayerConfigDL_REQ(p_CellId, p_TimingInfo, cs_PhysicalLayerConfigDL_EPDCCH( cs_EpdcchConfig(p_EPdcchCandidateList_Type, p_EPDCCH_Config_r11)))); + } + + /* + * @desc Step to bring UE to state 4, for test case 7.1.3.14 + * @param p_CellId + * @param p_TransmissionType_r11 + * @status + */ + function f_EUTRA_LoopBackActivation_State4_71314(EUTRA_CellId_Type p_CellId, + template (value) TransmissionType_r11 p_TransmissionType_r11) runs on EUTRA_PTC + { + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cs_MAC_MainConfig_Explicit_DisableBSR_TA_Infinity; // time alignment timer is infinity + var EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_CellId); //Get FDD or TDD mode from Cell-configuration + var template (value)PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_CellId); // + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + v_AntennaInfo); + + var template (omit) DRB_ToAddModList v_DRB_ToAddModList:= omit; + var template (omit) PdcchCandidateList_Type v_EPdcchCandidateList := omit; + if ( v_EUTRA_FDD_TDD_Info.FDD_TDD == FDD) { + v_PhysicalConfigDedicated.epdcch_Config_r11 := cs_EPDCCH_Config_r11_Def(cs_MeasSubframePattern_r10_FDD, p_TransmissionType_r11); + v_EPdcchCandidateList := cs_EPdcchCandidateList_FDD; + } + else { + v_PhysicalConfigDedicated.epdcch_Config_r11 := cs_EPDCCH_Config_r11_Def(cs_MeasSubframePattern_r10_TDD, p_TransmissionType_r11); + v_EPdcchCandidateList := cs_EPdcchCandidateList_TDD; + } + f_EUTRA_GenericRbEst_DisableBSR_PHR(p_CellId, + 0, + 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ + v_DRB_ToAddModList, + v_MAC_MainConfig, + v_PhysicalConfigDedicated); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(eutra_Cell1, cs_UE_TestLoopModeA_LB_Setup_1DRB(0, tsc_DRB1)); // Step 1-2 + + f_SS_ePDCCH_Configure (p_CellId, cs_TimingInfo_Now,v_EPdcchCandidateList, v_PhysicalConfigDedicated.epdcch_Config_r11 ); //@sic R5w150211r1 sic@ + } + +/* + * @desc Step to bring UE to state 4, for test case 7.1.3.15 + * @param p_CellId + * @param p_TransmissionType_r11 + * @status + */ + function f_EUTRA_LoopBackActivation_State4_71315(EUTRA_CellId_Type p_CellId, + template (value) TransmissionType_r11 p_TransmissionType_r11) runs on EUTRA_PTC + { + var template (omit) MAC_MainConfig_Type v_MAC_MainConfig := cs_MAC_MainConfig_Explicit_RBC_LongOnTimer_DrxS(infinity_); + var EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_CellId); //Get FDD or TDD mode from Cell-configuration + var template (value)PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo := f_EUTRA_CellInfo_GetAntennaInfoDedicated (p_CellId); // + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + v_AntennaInfo); + var template (omit) PdcchCandidateList_Type v_EPdcchCandidateList := omit; + + if (v_EUTRA_FDD_TDD_Info.FDD_TDD == FDD) { + v_PhysicalConfigDedicated.epdcch_Config_r11 := cs_EPDCCH_Config_r11_Def(cs_MeasSubframePattern_r10_FDD, p_TransmissionType_r11); + v_EPdcchCandidateList := cs_EPdcchCandidateList_FDD; + } + else { + v_PhysicalConfigDedicated.epdcch_Config_r11 := cs_EPDCCH_Config_r11_Def(cs_MeasSubframePattern_r10_TDD, p_TransmissionType_r11); + v_EPdcchCandidateList := cs_EPdcchCandidateList_TDD; + } + f_EUTRA_GenericRbEst_Common(eutra_Cell1, + 0, + 1, + -, + -, + v_MAC_MainConfig, + v_PhysicalConfigDedicated, + {cs_508_EPS_QoS_Dedicated_1}, + {f_EUTRA_Get_508_TrafficFlowTemplate(1)}); // bring UE to State 3 + f_EUTRA_CloseUE_TestLoopModeA(eutra_Cell1, cs_UE_TestLoopModeA_LB_Setup_1DRB(0, tsc_DRB2) ); // Step 1-2 + //@sic R5w150211r1 sic@ + //f_SS_ePDCCH_Configure (p_CellId, cs_TimingInfo_Now,v_EPdcchCandidateList, v_PhysicalConfigDedicated.epdcch_Config_r11, false ); //ePDCCH usage not yet started + } + + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.3.14 + * @status + */ + function f_TC_7_1_3_14_EUTRA ( ) runs on EUTRA_PTC + { /* L2/MAC + 7.1.3.14 : Correct handling of DL assignment / Dynamic case / EPDCCH + */ + var C_RNTI v_C_RNTI; + var MAC_SDU_Type v_EncodedRlcPdu1; + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := cds_508_PhysicalConfigDedicated_ePDCCH(cs_EPDCCH_Config_r11_Def(cs_MeasSubframePattern_r10_TDD,distributed)); + var SubFrameTiming_Type v_Timing; + timer t_Watchdog := 1.0; + + /////////////////////////////////////////////////////////////////////////////////// + // PREAMBLE + ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_Init (c1); + f_EUTRA_CellConfig_Def (eutra_Cell1); + f_EUTRA_Preamble ( eutra_Cell1,STATE2A_TESTLOOP_ModeA ); + // creates cell and performs registration + f_EUTRA_LoopBackActivation_State4_71314(eutra_Cell1,localised); + // Go to state 4 to return no data in UL; + + f_Delay(0.660); // 600 ms previous time alignment timer + + f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB1, cs_MAC_TestMode_NoHeaderManipulationDLOnly); + // configure SS for default UL grant allocation at SR reception but no automatic PUCCH synch as time alignment timer is infinit; + f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(eutra_Cell1, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); + // to configure SS to report reception of HARQ ACK or NACK + f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Enable ); + /////////////////////////////////////////////////////////////////////////////////// + // Test Body + ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true, layer2); // + + //@siclog "Steps 1 - 2" siclog@ + // Note Step 1 automatically taken care by SS + // 16B PDCP SDU + 2B PDCP H + 2B RLC Header +1 B MAC SH +1B Pad SH = 22 B= 136 bits + //MAC PDU wi hh gth no padding + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_AMD_1PDU(tsc_NoPoll, + int2bit (0,10), + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN0, crs_PDCP_SDU_16B))))); + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, + tsc_RbId_DRB1, + cs_TimingInfo_Now, + cs_MAC_PDUList_1 (cs_MAC_PDU_1SubHeader_1Padding(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); + + + t_Watchdog.start; + //@siclog "Step 3" siclog@ + SYSIND.receive ( car_UL_HARQ_IND (eutra_Cell1, ?, ack )); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 3"); + t_Watchdog.stop; + + // store cell info parameters for C-RNTI + v_C_RNTI := f_EUTRA_CellInfo_GetC_RNTI(eutra_Cell1); + // To configure SS to use a different C-RNTI that available at UE + f_SS_ConfigActiveCellInfo(eutra_Cell1, cs_TimingInfo_Now, cs_NewC_RNTI_ConfigReq(tsc_C_RNTI_Def2)); + + //@siclog "Steps 4 - 5" siclog@ + // Note Step 4 automatically taken care by SS + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_AMD_1PDU(tsc_NoPoll, + int2bit (1, 10), + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN1, crs_PDCP_SDU_16B))))); + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, + tsc_RbId_DRB1, + cs_TimingInfo_Now, + cs_MAC_PDUList_1 (cs_MAC_PDU_1SubHeader_1Padding(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); + t_Watchdog.start(0.6); // 600 ms to avoid UE entering DRX + //@siclog "Step 6" siclog@ + alt { + []SYSIND.receive ( car_UL_HARQ_IND (eutra_Cell1, ?, ? )) + { + t_Watchdog.stop; + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 6: UE is sending HARQ ACK when sent addressed to different CRNTI"); + } + [] t_Watchdog.timeout + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 6"); + } + }; + + // To configure SS to use same C-RNTI that available at UE + f_SS_ConfigActiveCellInfo(eutra_Cell1, cs_TimingInfo_Now, cs_NewC_RNTI_ConfigReq(v_C_RNTI)); + + v_Timing := f_EUTRA_GetNextSendOccasion (eutra_Cell1); + //@siclog "Steps 7 " siclog@ + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + cs_RRCConnectionReconfiguration_Common( tsc_RRC_TI_Def, + omit, + omit, + cs_RadioResourceConfigDedicated_MacPhy (omit, -, v_PhysicalConfigDedicated), + omit) ) ); + v_Timing := f_EUTRA_TimingInfoAdd(v_Timing, 5); + //@sic R5w150211r1 sic@ + f_SS_ePDCCH_Configure (eutra_Cell1, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number),omit, v_PhysicalConfigDedicated.epdcch_Config_r11 ); + + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def ) ) ); + + //@siclog "Steps 8 - 9" siclog@ + // Note Step 1 automatically taken care by SS + // 16B PDCP SDU + 2B PDCP H + 2B RLC Header +1 B MAC SH +1B Pad SH = 22 B= 136 bits + //MAC PDU wi hh gth no padding + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_AMD_1PDU(tsc_NoPoll, + int2bit (1,10), + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN1, crs_PDCP_SDU_16B))))); + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, + tsc_RbId_DRB1, + cs_TimingInfo_Now, + cs_MAC_PDUList_1 (cs_MAC_PDU_1SubHeader_1Padding(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); + + + t_Watchdog.start; + //@siclog "Step 10" siclog@ + SYSIND.receive ( car_UL_HARQ_IND (eutra_Cell1, ?, ack )); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 9"); + t_Watchdog.stop; + + // store cell info parameters for C-RNTI + v_C_RNTI := f_EUTRA_CellInfo_GetC_RNTI(eutra_Cell1); + // To configure SS to use a different C-RNTI that available at UE + f_SS_ConfigActiveCellInfo(eutra_Cell1, cs_TimingInfo_Now, cs_NewC_RNTI_ConfigReq(tsc_C_RNTI_Def2)); + + //@siclog "Steps 11 - 12" siclog@ + // Note Step 4 automatically taken care by SS + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_AMD_1PDU(tsc_NoPoll, + int2bit (2, 10), + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN2, crs_PDCP_SDU_16B))))); + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, + tsc_RbId_DRB1, + cs_TimingInfo_Now, + cs_MAC_PDUList_1 (cs_MAC_PDU_1SubHeader_1Padding(tsc_LchId_DRB1, v_EncodedRlcPdu1)))); + t_Watchdog.start(0.6); // 600 ms to avoid UE entering DRX + //@siclog "Step 13" siclog@ + alt { + []SYSIND.receive ( car_UL_HARQ_IND (eutra_Cell1, ?, ? )) + { + t_Watchdog.stop; + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 13: UE is sending HARQ ACK when sent addressed to different CRNTI"); + } + [] t_Watchdog.timeout + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 13"); + } + }; + + + // stop ePDCCH usage + f_SS_ePDCCH_Configure (eutra_Cell1, cs_TimingInfo_Now, omit, cs_EPDCCH_Config_r11_Rel); //@sic R5w150211r1 sic@ + + //test body ends + f_EUTRA_TestBody_Set(false); + /////////////////////////////////////////////////////////////////////////////////// + // Post Amble + ////////////////////////////////////////////////////////////////////////////////// + // To configure SS to use same C-RNTI that available at UE + f_SS_ConfigActiveCellInfo(eutra_Cell1, cs_TimingInfo_Now, cs_NewC_RNTI_ConfigReq(v_C_RNTI)); + // to configure SS to stop report reception of HARQ ACK or NACK + f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Disable ); + f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB1,cs_MAC_TestMode_NormalMode); + + + // Release RRC Connection and Switch off + f_EUTRA_Postamble ( eutra_Cell1, E3_TESTMODE ); + + }; + + + + + + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.3.15 + * @status + */ + function f_TC_7_1_3_15_EUTRA ( ) runs on EUTRA_PTC + { /* L2/MAC + * 7.1.3.15 : Correct handling of DL assignment / Semi-persistent case / EPDCCH + */ + + const C_RNTI tsc_SPS_RNTI := tsc_C_RNTI_Def2; + const integer tsc_SPS_SchedInterval := 40; //40 Sf the SPS schedule interval + const integer tsc_SF_Before := 30; //30 Sub frames before + var integer v_Nack_Count := 0, v_Ack_Count := 0; + var SubFrameNumber_Type v_ULHARQ_SubFrame := 8; + var SubFrameNumber_Type v_ULHARQ_SubFrame1 := 3; + var integer v_RetransSchInt := 8; //suitable for FDD + var integer i; + var SubFrameTiming_Type v_Timing; + var SubFrameTiming_Type v_TimingY; + var SubFrameTiming_Type v_TimingP; + var SystemFrameNumber_Type v_ExpectFrameNumber1; + var SystemFrameNumber_Type v_ExpectFrameNumber2; + var SystemFrameNumber_Type v_ExpectFrameNumber3; + var SystemFrameNumber_Type v_ExpectFrameNumber4; + var SystemFrameNumber_Type v_ExpectFrameNumber5; + var SystemFrameNumber_Type v_ExpectFrameNumber6; + var SystemFrameNumber_Type v_ExpectFrameNumber7; + var SystemFrameNumber_Type v_ExpectFrameNumber8; + var SystemFrameNumber_Type v_ExpectFrameNumber9; + var SystemFrameNumber_Type v_ExpectFrameNumber10; + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := cds_508_PhysicalConfigDedicated_ePDCCH(cs_EPDCCH_Config_r11_Def(cs_MeasSubframePattern_r10_TDD,distributed)); + + var octetstring v_EncodedRlcPdu1; + var template (value) SpsConfigDL_Type v_SpsConfigDL; + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; + var RedundancyVersionListDL_Type v_RVList := {0, 2, 3, 1, 0}; + var integer v_ConfHarqProcess, v_HarqProcId; + + + timer t_Watchdog := 5.0; + + /////////////////////////////////////////////////////////////////////////////////// + // PREAMBLE + ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_Init (c1); + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD (eutra_Cell1); + f_EUTRA_CellConfig_Def(eutra_Cell1); /* @sic R5s150338: f_EUTRA_CellConfig_DefPlusUM replaced by f_EUTRA_CellConfig_Def sic@ */ + f_EUTRA_Preamble(eutra_Cell1, STATE2A_TESTLOOP_ModeA); + // creates cell and performs registration + f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm + f_EUTRA_LoopBackActivation_State4_71315(eutra_Cell1, localised); // Initialization, call setup, DRB loopback; + + //DRX is being effectively disabled to avoid interference with SPS scheduling + // Go to state 4 to return no data in UL + f_Delay(0.660); // 600 ms previous time alignment timer + f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(eutra_Cell1, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); // Default grant with no Auto TA timer. + f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB2,cs_MAC_TestMode_NoHeaderManipulationDLOnly); + + if (v_EUTRA_FDD_TDD_Mode == FDD) + { + v_SpsConfigDL := cs_SpsConfigDL_FDD; + v_ConfHarqProcess := 8; + } + else + { + v_SpsConfigDL := cds_SpsConfigDL_TDD; + v_RetransSchInt := 10; + v_ConfHarqProcess := 7; + } + + // Default SPS configuration as in specific message contents. + f_RRC_ConnectionReconfiguration_SPS_Config(eutra_Cell1, + tsc_RRC_TI_Def, + cs_TimingInfo_Now, + cs_SPS_Config_DL(tsc_SPS_RNTI, cs_SPS_ConfigDL_Setup(v_SpsConfigDL))); + // to configure SS to report reception of HARQ ACK or NACK + f_Delay(0.1); // 100 ms to complete + f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); + // start ePDCCH usage + f_SS_ePDCCH_Configure (eutra_Cell1, cs_TimingInfo_Now, omit, cs_EPDCCH_Config_r11_Rel ); //@sic R5w150211r1 sic@ + /////////////////////////////////////////////////////////////////////////////////// + // Test Body + ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_TestBody_Set(true, layer2); + + //@siclog "Steps 1 - 2" siclog@ + v_TimingY := f_EUTRA_GetNextSendOccasion(eutra_Cell1,480); //480 to 520 ms in advance + // v_UL_HARQ_SFN:= v_TimingY.SFN.Number; // Frame number of + v_TimingY.Subframe.Number := 4; // Will result in HARQ ack in Sub frame 8 for FDD and TDD default configuarations + v_ExpectFrameNumber1 := v_TimingY.SFN.Number; + f_SS_ActivateSPS_Grant (eutra_Cell1, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit (cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + //Nprb =8, Imcs =3=Itbs TBsize =55 bites =440 + // 50B PDCP SDU + 2B PDCP H + 2B RLC H + 1B MacSH = 55B =440 + // As GCF priority 2, then DCI format 1 RA 0 is used for UE specific. + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(0, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN0, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 4" siclog@ + v_TimingY.SFN.Number := (v_TimingY.SFN.Number + ((v_TimingY.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber2 := v_TimingY.SFN.Number; + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_UMD_1PDU(1, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN1, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant(eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Steps 6 - 7" siclog@ + v_TimingP.SFN.Number := (v_TimingY.SFN.Number + ((v_TimingY.Subframe.Number + tsc_SPS_SchedInterval- tsc_SF_Before)/10)) mod 1024; + + v_ExpectFrameNumber3 := v_TimingP.SFN.Number; + v_TimingP.Subframe.Number := v_TimingY.Subframe.Number; + f_SS_ActivateSPS_Grant (eutra_Cell1,cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit (cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(2, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN2, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 9" siclog@ + v_TimingY.SFN.Number := (v_TimingY.SFN.Number + ((v_TimingY.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(3, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN3, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 10a " siclog@ + // Automatically taken care by SS + //@siclog "Step 10a - 11" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber4 := v_TimingP.SFN.Number; + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(3, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN3, crs_PDCP_SDU_L50))))); + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + //@siclog "Step 13" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber5 := v_TimingP.SFN.Number; + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(4, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN4, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 15 - 16" siclog@ + v_TimingP.SFN.Number:= (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; // app 40 ms in future + v_ExpectFrameNumber6 := v_TimingP.SFN.Number; + // HARQ Process ID = [floor(CURRENT_TTI/(Downlink Semi-Persistent Scheduling Interval))] modulo Number of Configured SPS Processes, + v_HarqProcId := ( ( (v_TimingP.SFN.Number * 10) + v_TimingP.Subframe.Number) /tsc_SPS_SchedInterval ) mod v_ConfHarqProcess ; + + + f_SS_ActivateSPS_Grant (eutra_Cell1,cs_TimingInfo(v_TimingP.SFN.Number,v_TimingP.Subframe.Number ), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit (cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + // Nprb = 1, Imcs= Itbs =6; TBsize =328 =41 bytes + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(5, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN5, crs_PDCP_SDU_L36))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)), + cs_HarqProcessAssignment_Specific (v_HarqProcId))); + + //@siclog "Step 16b - 16c" siclog@ + for (i:=1; i< 4; i:=i+1) //Scheduled 3 retransmissions assuming worst case. + { + v_TimingY := f_EUTRA_TimingInfoAdd (v_TimingP, i * v_RetransSchInt); + f_SS_ActivateSPS_Grant(eutra_Cell1,cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5,{v_RVList[i]})), + v_SpsConfigDL, true))); //Set NDI bit as 1 + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)), + cs_HarqProcessAssignment_Specific(v_HarqProcId))); + } + //@siclog "Step 18" siclog@ + // SS PDCCH for dl_sps explicit release + v_TimingY.SFN.Number := (v_TimingP.SFN.Number + 3) mod 1024; // app 35 ms in future + v_ExpectFrameNumber7 := (v_TimingY.SFN.Number + 1) mod 1024; + v_TimingY.Subframe.Number := 9; + f_SS_SPS_PDCCH_ExplicitRelease(eutra_Cell1, cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), tsc_SPS_RNTI, dci_1A); + + //@siclog "Step 20" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + 2 *tsc_SPS_SchedInterval)/10)) mod 1024; // app 80 ms in future + + v_TimingP.Subframe.Number := (v_TimingP.Subframe.Number + tsc_SPS_SchedInterval) mod 10; + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(6, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN6, crs_PDCP_SDU_L36))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + + + + f_SS_DeactivateSPS_Grant(eutra_Cell1, cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number + 5)); + //@siclog "Steps 22 - 23" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; // app 40 ms in future + v_ExpectFrameNumber8:= v_TimingP.SFN.Number; + v_TimingP.Subframe.Number := (v_TimingP.Subframe.Number + tsc_SPS_SchedInterval) mod 10; + + f_SS_ActivateSPS_Grant (eutra_Cell1, + cs_TimingInfo(v_TimingP.SFN.Number,v_TimingP.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL(cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(6, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN6, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number ), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + //@siclog "Step 25" siclog@ + v_TimingY.SFN.Number := (v_TimingP.SFN.Number + 1) mod 1024; + v_ExpectFrameNumber9 := v_TimingY.SFN.Number; + v_TimingY.Subframe.Number := 4; + //This is to guarantee that HARQ ACK for RLC PDU containing the RLC ACK for RRC connection reconfiguration happens to be in the same frame as step 33 + f_SS_RB_Reconfig_NotAck_NextPDU(eutra_Cell1, tsc_RbId_SRB1); + f_SendRRC_ConnectionReconfiguration_SPS_Config(eutra_Cell1, + tsc_RRC_TI_Def, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_SPS_Config_DL(omit, cs_SPS_ConfigDL_Release)); + // Deactivate SPS Grant 10 ms after transmission of RRC Connection Reconfig releasing SPS grant. + f_SS_DeactivateSPS_Grant(eutra_Cell1, cs_TimingInfo( (v_TimingY.SFN.Number + 1) mod 1024, v_TimingY.Subframe.Number)); + //@siclog "Step 27" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + 2 *tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber10:= v_TimingP.SFN.Number; + v_TimingP.Subframe.Number := (v_TimingP.Subframe.Number + tsc_SPS_SchedInterval) mod 10; + + + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(7, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN7, crs_PDCP_SDU_L50))))); + // Note as UE has no configured SPS-RNTI, transmission of grant by SS will also be neglected by conforment UE + f_SS_ActivateSPS_Grant (eutra_Cell1, + cs_TimingInfo(v_TimingP.SFN.Number,v_TimingP.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL(cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + // Deactivate SPS Grant + v_TimingP := f_EUTRA_TimingInfoAdd (v_TimingP, 5); // + f_SS_DeactivateSPS_Grant(eutra_Cell1, cs_TimingInfo( v_TimingP.SFN.Number, v_TimingP.Subframe.Number)); + + + //@siclog "Step 3" siclog@ + t_Watchdog.start; + SYSIND.receive(car_UL_HARQ_IND(eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber1, v_ULHARQ_SubFrame), ack)); + // with DL sub frame 0, the Ack shall be receieved in same Frame + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 3"); + + + //@siclog "Step 5" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber2, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 5"); + + //@siclog "Step 8" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber3, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 8"); + + //@siclog "Step 10" siclog@ + // Taken care in default handler + + + //@siclog "Step 12" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber4, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 12: UE sent HARQ ACK "); + + //@siclog "Step 14" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber5, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 14: UE sent HARQ ACK "); + + //@siclog "Step 16a " siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber6, v_ULHARQ_SubFrame), nack)); + + + // MAC PDU retransmision and SPS grant retransmission automatically performed by SS + //@siclog "Step 17" siclog@ + alt { + []SYSIND.receive(car_UL_HARQ_IND(eutra_Cell1, ?, ack)) + { + v_Ack_Count := v_Ack_Count +1; + if ((v_Ack_Count + v_Nack_Count) < 3) { + repeat; + } + else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 17: UE sent HARQ ACK "); + } + } + []SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, ?, nack)) + { + v_Nack_Count := v_Nack_Count + 1; + if ((v_Ack_Count + v_Nack_Count) < 3) { + repeat; + } + else if (v_Ack_Count == 0) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 17: UE did not send HARQ ACK"); + } + else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 17: UE sent HARQ ACK "); + } + } + } + + //@siclog "Step 19" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber7,v_ULHARQ_SubFrame1), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 19: UE sent HARQ ACK "); + + //@siclog "Step 21" siclog@ + // taken care in default handler + + //@siclog "Step 24" siclog@ + + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber8,v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 24: UE sent HARQ ACK "); + + + //@siclog "Steps 26 - 28" siclog@ + + alt { + [] SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))) + { + + } + [] SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber9,v_ULHARQ_SubFrame), ack)) + { + // ack for RRC Connection Reconfiguration PDU. + repeat; + } + []SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber10,v_ULHARQ_SubFrame), ?)) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 28: UE is sending HARQ ACK or NACK"); + } + } + + alt { + []SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber10,v_ULHARQ_SubFrame), ?)) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 28: UE is sending HARQ ACK or NACK"); + t_Watchdog.stop; + } + [] SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, ?, ack)) + { + // ack for RLC status PDU for RRC Connection Reconfiguration completePDU. + repeat; + } + [] t_Watchdog.timeout + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 28: UE is not sending HARQ ACK or NACK "); + } + } + + v_Timing := f_EUTRA_GetNextSendOccasion (eutra_Cell1); + //@siclog "Steps 29 " siclog@ + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + cs_RRCConnectionReconfiguration_Common( tsc_RRC_TI_Def, + omit, + omit, + cs_RadioResourceConfigDedicated_MacPhy (omit,cs_SPS_Config_DL(tsc_SPS_RNTI, cs_SPS_ConfigDL_Setup(v_SpsConfigDL)), v_PhysicalConfigDedicated), + omit) ) ); + v_Timing := f_EUTRA_TimingInfoAdd(v_Timing, 5); + f_SS_ePDCCH_Configure (eutra_Cell1, cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number),omit, v_PhysicalConfigDedicated.epdcch_Config_r11 ); + + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def ) ) ); + + //@siclog "Steps 30 - 31" siclog@ + v_TimingY := f_EUTRA_GetNextSendOccasion(eutra_Cell1,480); //480 to 520 ms in advance + // v_UL_HARQ_SFN:= v_TimingY.SFN.Number; // Frame number of + v_TimingY.Subframe.Number := 4; // Will result in HARQ ack in Sub frame 8 for FDD and TDD default configuarations + v_ExpectFrameNumber1 := v_TimingY.SFN.Number; + f_SS_ActivateSPS_Grant (eutra_Cell1, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit (cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + //Nprb =8, Imcs =3=Itbs TBsize =55 bites =440 + // 50B PDCP SDU + 2B PDCP H + 2B RLC H + 1B MacSH = 55B =440 + // As GCF priority 2, then DCI format 1 RA 0 is used for UE specific. + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(7, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN7, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 33" siclog@ + v_TimingY.SFN.Number := (v_TimingY.SFN.Number + ((v_TimingY.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber2 := v_TimingY.SFN.Number; + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue(cs_RLC_UMD_1PDU(8, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN8, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant(eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Steps 35 - 36" siclog@ + v_TimingP.SFN.Number := (v_TimingY.SFN.Number + ((v_TimingY.Subframe.Number + tsc_SPS_SchedInterval- tsc_SF_Before)/10)) mod 1024; + + v_ExpectFrameNumber3 := v_TimingP.SFN.Number; + v_TimingP.Subframe.Number := v_TimingY.Subframe.Number; + f_SS_ActivateSPS_Grant (eutra_Cell1,cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit (cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(9, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN9, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 38" siclog@ + v_TimingY.SFN.Number := (v_TimingY.SFN.Number + ((v_TimingY.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(10, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN10, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 39a " siclog@ + // Automatically taken care by SS + //@siclog "Step 39a - 40" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber4 := v_TimingP.SFN.Number; + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(10, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN10, crs_PDCP_SDU_L50))))); + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + //@siclog "Step 42" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber5 := v_TimingP.SFN.Number; + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(11, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN11, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + //@siclog "Step 44 - 45" siclog@ + v_TimingP.SFN.Number:= (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; // app 40 ms in future + v_ExpectFrameNumber6 := v_TimingP.SFN.Number; + // HARQ Process ID = [floor(CURRENT_TTI/(Downlink Semi-Persistent Scheduling Interval))] modulo Number of Configured SPS Processes, + v_HarqProcId := ( ( (v_TimingP.SFN.Number * 10) + v_TimingP.Subframe.Number) /tsc_SPS_SchedInterval ) mod v_ConfHarqProcess ; + + + f_SS_ActivateSPS_Grant (eutra_Cell1,cs_TimingInfo(v_TimingP.SFN.Number,v_TimingP.Subframe.Number ), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit (cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + // Nprb = 1, Imcs= Itbs =6; TBsize =328 =41 bytes + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(12, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN12, crs_PDCP_SDU_L36))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)), + cs_HarqProcessAssignment_Specific (v_HarqProcId))); + + //@siclog "Step 45b - 45c" siclog@ + for (i:=1; i< 4; i:=i+1) //Scheduled 3 retransmissions assuming worst case. + { + v_TimingY := f_EUTRA_TimingInfoAdd (v_TimingP, i * v_RetransSchInt); + f_SS_ActivateSPS_Grant(eutra_Cell1,cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL (cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(6, + dci_1A, + ra_2_Localised, + 1, + 5,{v_RVList[i]})), + v_SpsConfigDL, true))); //Set NDI bit as 1 + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)), + cs_HarqProcessAssignment_Specific(v_HarqProcId))); + } + //@siclog "Step 47" siclog@ + // SS PDCCH for dl_sps explicit release + v_TimingY.SFN.Number := (v_TimingP.SFN.Number + 3) mod 1024; // app 35 ms in future + v_ExpectFrameNumber7 := (v_TimingY.SFN.Number + 1) mod 1024; + v_TimingY.Subframe.Number := 9; + f_SS_SPS_PDCCH_ExplicitRelease(eutra_Cell1, cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), tsc_SPS_RNTI, dci_1A); + + //@siclog "Step 49" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + 2 *tsc_SPS_SchedInterval)/10)) mod 1024; // app 80 ms in future + + v_TimingP.Subframe.Number := (v_TimingP.Subframe.Number + tsc_SPS_SchedInterval) mod 10; + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(13, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN13, crs_PDCP_SDU_L36))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + + + + + f_SS_DeactivateSPS_Grant(eutra_Cell1, cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number + 5)); + //@siclog "Steps 51 - 52" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + tsc_SPS_SchedInterval)/10)) mod 1024; // app 40 ms in future + v_ExpectFrameNumber8:= v_TimingP.SFN.Number; + v_TimingP.Subframe.Number := (v_TimingP.Subframe.Number + tsc_SPS_SchedInterval) mod 10; + + f_SS_ActivateSPS_Grant (eutra_Cell1, + cs_TimingInfo(v_TimingP.SFN.Number,v_TimingP.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL(cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(13, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN13, crs_PDCP_SDU_L50))))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number ), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + //@siclog "Step 54" siclog@ + v_TimingY.SFN.Number := (v_TimingP.SFN.Number + 1) mod 1024; + v_ExpectFrameNumber9 := v_TimingY.SFN.Number; + v_TimingY.Subframe.Number := 4; + //This is to guarantee that HARQ ACK for RLC PDU containing the RLC ACK for RRC connection reconfiguration happens to be in the same frame as step 33 + f_SS_RB_Reconfig_NotAck_NextPDU(eutra_Cell1, tsc_RbId_SRB1); + f_SendRRC_ConnectionReconfiguration_SPS_Config(eutra_Cell1, + tsc_RRC_TI_Def, + cs_TimingInfo(v_TimingY.SFN.Number, v_TimingY.Subframe.Number), + cs_SPS_Config_DL(omit, cs_SPS_ConfigDL_Release)); + // Deactivate SPS Grant 10 ms after transmission of RRC Connection Reconfig releasing SPS grant. + f_SS_DeactivateSPS_Grant(eutra_Cell1, cs_TimingInfo( (v_TimingY.SFN.Number + 1) mod 1024, v_TimingY.Subframe.Number)); + //@siclog "Step 56" siclog@ + v_TimingP.SFN.Number := (v_TimingP.SFN.Number + ((v_TimingP.Subframe.Number + 2 *tsc_SPS_SchedInterval)/10)) mod 1024; + v_ExpectFrameNumber10:= v_TimingP.SFN.Number; + v_TimingP.Subframe.Number := (v_TimingP.Subframe.Number + tsc_SPS_SchedInterval) mod 10; + + + + v_EncodedRlcPdu1 := f_RLC_PDU_Encvalue (cs_RLC_UMD_1PDU(14, + f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN14, crs_PDCP_SDU_L50))))); + // Note as UE has no configured SPS-RNTI, transmission of grant by SS will also be neglected by conforment UE + f_SS_ActivateSPS_Grant (eutra_Cell1, + cs_TimingInfo(v_TimingP.SFN.Number,v_TimingP.Subframe.Number), + cs_DL_SPSInfo (tsc_SPS_RNTI, + cs_SpsAssignmentDL(cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(3, + dci_1A, + ra_2_Localised, + 8, + 5,{v_RVList[0]})), + v_SpsConfigDL))); + DRB.send (cads_DRB_COMMOM_REQ_MAC_PDU_NoCRNTI_Grant (eutra_Cell1, + tsc_RbId_DRB2, + cs_TimingInfo(v_TimingP.SFN.Number, v_TimingP.Subframe.Number), + cs_MAC_PDUList_1(cs_MAC_PDU_NoPadding_RLCPDU_LCID( tsc_LchId_DRB2, v_EncodedRlcPdu1)))); + // Deactivate SPS Grant + v_TimingP := f_EUTRA_TimingInfoAdd (v_TimingP, 5); // + f_SS_DeactivateSPS_Grant(eutra_Cell1, cs_TimingInfo( v_TimingP.SFN.Number, v_TimingP.Subframe.Number)); + + + //@siclog "Step 32" siclog@ + t_Watchdog.start; + SYSIND.receive(car_UL_HARQ_IND(eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber1, v_ULHARQ_SubFrame), ack)); + // with DL sub frame 0, the Ack shall be receieved in same Frame + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 32"); + + + //@siclog "Step 34" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber2, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 34"); + + //@siclog "Step 37" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber3, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 37"); + + //@siclog "Step 39" siclog@ + // Taken care in default handler + + + //@siclog "Step 41" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber4, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 41: UE sent HARQ ACK "); + + //@siclog "Step 43" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber5, v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 43: UE sent HARQ ACK "); + + //@siclog "Step 45a " siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber6, v_ULHARQ_SubFrame), nack)); + + + // MAC PDU retransmision and SPS grant retransmission automatically performed by SS + //@siclog "Step 46" siclog@ + alt { + []SYSIND.receive(car_UL_HARQ_IND(eutra_Cell1, ?, ack)) + { + v_Ack_Count := v_Ack_Count +1; + if ((v_Ack_Count + v_Nack_Count) < 3) { + repeat; + } + else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 46: UE sent HARQ ACK "); + } + } + []SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, ?, nack)) + { + v_Nack_Count := v_Nack_Count + 1; + if ((v_Ack_Count + v_Nack_Count) < 3) { + repeat; + } + else if (v_Ack_Count == 0) { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 46: UE did not send HARQ ACK"); + } + else { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 46: UE sent HARQ ACK "); + } + } + } + + //@siclog "Step 48" siclog@ + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber7,v_ULHARQ_SubFrame1), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 48: UE sent HARQ ACK "); + + //@siclog "Step 50" siclog@ + // taken care in default handler + + //@siclog "Step 53" siclog@ + + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo(v_ExpectFrameNumber8,v_ULHARQ_SubFrame), ack)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 53: UE sent HARQ ACK "); + + + //@siclog "Steps 55 - 57" siclog@ + + alt { + [] SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))) + { + + } + [] SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber9,v_ULHARQ_SubFrame), ack)) + { + // ack for RRC Connection Reconfiguration PDU. + repeat; + } + []SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber10,v_ULHARQ_SubFrame), ?)) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 57: UE is sending HARQ ACK or NACK"); + } + } + + alt { + []SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, cr_TimingInfo( v_ExpectFrameNumber10,v_ULHARQ_SubFrame), ?)) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 57: UE is sending HARQ ACK or NACK"); + t_Watchdog.stop; + } + [] SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, ?, ack)) + { + // ack for RLC status PDU for RRC Connection Reconfiguration completePDU. + repeat; + } + [] t_Watchdog.timeout + { + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 57: UE is not sending HARQ ACK or NACK "); + } + } + // stop ePDCCH usage + f_SS_ePDCCH_Configure (eutra_Cell1, cs_TimingInfo_Now, omit, cs_EPDCCH_Config_r11_Rel ); //@sic R5w150211r1 sic@ + //test body ends + f_EUTRA_TestBody_Set(false); + /////////////////////////////////////////////////////////////////////////////////// + // Post Amble + ////////////////////////////////////////////////////////////////////////////////// + // to configure SS to stop report reception of HARQ ACK or NACK + f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1,tsc_L1Mac_IndicationMode_Disable); + f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB2,cs_MAC_TestMode_NormalMode); + + // Release RRC Connection and Switch off + f_EUTRA_Postamble(eutra_Cell1, E3_TESTMODE); + + } // end of 7.1.3.15 + + + + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.10.1/2 + * @param p_PUCCH_ConfigDedicated_v1020 (default value: omit) + * @param p_PUCCH_ConfigDedicated_v1130 (default value: omit) + * @param p_PUSCH_ConfigDedicated_v1130 (default value: omit) + * @status APPROVED (LTE_A) + */ + function f_TC_7_1_10_Common(template (omit) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020 := omit, + template (omit) PUCCH_ConfigDedicated_v1130 p_PUCCH_ConfigDedicated_v1130 := omit, + template (omit) PUSCH_ConfigDedicated_v1130 p_PUSCH_ConfigDedicated_v1130 := omit) runs on EUTRA_PTC + { /* L2/MAC + * 7.1.10.1 : Sending SR on PUCCH with DMRS generated by using virtual cell identity / nPUCCH-Identity + * 7.1.10.2 : Transmitting data on PUSCH with DMRS generated by using virtual cell identity / nPUSCH-Identity + */ + var template (value) CellPowerList_Type v_CellPowerList_AtT0 := { + cs_CellPower(eutra_Cell2, -97) + }; + var template (omit) PhysicalConfigDedicated v_PhysicalConfigDedicated := cds_508_PhysicalConfigDedicated_UL_Comp(p_PUCCH_ConfigDedicated_v1020, + p_PUCCH_ConfigDedicated_v1130, + p_PUSCH_ConfigDedicated_v1130); + var SubFrameTiming_Type v_Timing; + timer t_Watchdog := 1.0; + + /////////////////////////////////////////////////////////////////////////////////// + // PREAMBLE + ////////////////////////////////////////////////////////////////////////////////// + f_EUTRA_Init (c1); + f_EUTRA_CellConfig_Def (eutra_Cell1); + f_EUTRA_CellConfig_Def (eutra_Cell2); + f_EUTRA_Preamble ( eutra_Cell1,STATE2A_TESTLOOP_ModeA ); + + //Set initial cell power level according to T0 + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); + // creates cell and performs registration + f_EUTRA_RbEst_Def_DisableBSR_PHR( eutra_Cell1); + f_EUTRA_CloseUE_TestLoopModeA(eutra_Cell1, cs_UE_TestLoopModeA_LB_Setup_NoScaling); + + + f_EUTRA_TestBody_Set(true, layer2); + v_Timing := f_EUTRA_GetNextSendOccasion(eutra_Cell1); + //@siclog "Steps 0A " siclog@ + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, + omit, + omit, + cs_RadioResourceConfigDedicated_MacPhy (omit, -, v_PhysicalConfigDedicated), + omit))); + v_Timing := f_EUTRA_TimingInfoAdd(v_Timing, 5); + f_SS_UL_Comp_Configure(eutra_Cell1, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + p_PUCCH_ConfigDedicated_v1020, + p_PUCCH_ConfigDedicated_v1130, + omit, + p_PUSCH_ConfigDedicated_v1130); + + //@siclog "Steps 0B " siclog@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + + // to configure SS to report reception of SR + //@sic R5s150362 sic@ + f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); + //@siclog "Steps 1 - 2" siclog@ + // Note Step 1 automatically taken care by SS + DRB.send (cas_DRB_COMMON_REQ_PDCP_SDU(eutra_Cell1, + tsc_RbId_DRB1, + cs_TimingInfo_Now, + {crs_PDCP_SDU_L40} )); // SDU size of 40 arbitrarily selected + t_Watchdog.start; + //@siclog "Step 3" siclog@ + SYSIND.receive(car_SchedulingReq_IND (eutra_Cell1, ?)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 3"); + //@siclog "Step 4" siclog@ + DRB.receive(car_DRB_COMMON_IND_PDCP_SDUList(eutra_Cell1, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + {crs_PDCP_SDU_L40})); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 4"); + t_Watchdog.stop; + + f_EUTRA_TestBody_Set(false); + + // to configure SS to stop report of SR reception + f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Disable); + + // Release RRC Connection and Switch off + f_EUTRA_Postamble(eutra_Cell1, E3_TESTMODE); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.10.1 + * @status APPROVED (LTE_A) + */ + function f_TC_7_1_10_1_EUTRA ( ) runs on EUTRA_PTC + { /* Sending SR on PUCCH with DMRS generated by using virtual cell identity / nPUCCH-Identity */ + f_TC_7_1_10_Common(cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX), cs_PUCCH_ConfigDedicated_v1130); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 7.1.10.2 + * @status APPROVED (LTE_A) + */ + function f_TC_7_1_10_2_EUTRA ( ) runs on EUTRA_PTC + { /* Transmitting data on PUSCH with DMRS generated by using virtual cell identity / nPUSCH-Identity */ + f_TC_7_1_10_Common(-, -, cs_PUSCH_ConfigDedicated_v1130); + } + +} diff --git a/LTE_A_IWD_14wk37/LTE_A/7_1/MAC_SSC.ttcn b/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_SSC.ttcn similarity index 76% rename from LTE_A_IWD_14wk37/LTE_A/7_1/MAC_SSC.ttcn rename to LTE_A_IWD_15wk38/LTE_A/7_1/MAC_SSC.ttcn index 805b65d..35bc295 100644 --- a/LTE_A_IWD_14wk37/LTE_A/7_1/MAC_SSC.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/7_1/MAC_SSC.ttcn @@ -2,16 +2,17 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-05 11:28:00 +0200 (Thu, 05 Jun 2014) $ -// $Rev: 11552 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 23:23:45 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13930 $ /******************************************************************************/ module MAC_SSC { import from EUTRA_CellInfo all; import from EUTRA_ConfigurationSteps all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from EUTRA_CommonProcedures all; import from EUTRA_ASP_TypeDefs all; import from EUTRA_AspCommon_Templates all; @@ -19,30 +20,26 @@ module MAC_SSC { import from EUTRA_CellCfg_Templates all; import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_RRC_Templates all; - //import from EUTRA_SRB_Templates all; import from EUTRA_Component all; import from L2_CommonTemplates all; import from L2_CommonFunctions all; import from MAC_Common all; - //import from EUTRA_SecuritySteps all; import from EUTRA_Timing all; import from CommonDefs all; -// import from EUTRA_SecurityFunctions all; - import from EUTRA_SysInfo_Templates all; import from EUTRA_PdcchConfig all; import from EUTRA_LoopBack all; + import from EUTRA_SecuritySteps all; //===================================================================================================== //template and function //====================================================================================================== template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_SSC_5MHz := - { /* @status */ - + { /* @status APPROVED (LTE_A) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -56,8 +53,8 @@ module MAC_SSC { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -73,10 +70,10 @@ module MAC_SSC { } template (value) PdcchCandidateList_Type cs_PdcchCandidateList_TDD_SSC_20MHz := - { /* @status */ + { /* @status APPROVED (LTE_A) */ { - tsc_C_RNTI_Def, // 4097 ('1001'H) - { + RNTI := tsc_C_RNTI_Def, // 4097 ('1001'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 16), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -90,8 +87,8 @@ module MAC_SSC { } }, { - tsc_C_RNTI_Def2, // 4148 ('1034'H) - { + RNTI := tsc_C_RNTI_Def2, // 4148 ('1034'H) + CCE_StartIndexList := { cs_CCE_StartIndex_DL_UL(32, 0), // subframe 0 cs_CCE_StartIndex_DL_UL( 8, 0), // subframe 1 cs_CCE_StartIndex_DL_UL( 0, 0), // subframe 2 @@ -111,7 +108,7 @@ module MAC_SSC { template (omit) TDD_Config p_Tdd_Configuration, template (omit) TDD_Config_v1130 p_TDD_Config_v1130 := omit) := { /* Values according to broadcast SIB2 */ - /* @status */ + rach_ConfigCommon := p_RadioResourceConfigCommonSIB.rach_ConfigCommon, prach_Config := p_PRACH_Configuration, pdsch_ConfigCommon := p_RadioResourceConfigCommonSIB.pdsch_ConfigCommon, @@ -129,7 +126,7 @@ module MAC_SSC { }; template (value) PhysicalLayerConfigDL_Type cs_PhysicalLayerConfigDL_CCESpecialSubframe_TDD(Dl_Bandwidth_Type p_Dl_Bandwidth) := - { + { /* @status APPROVED (LTE_A) */ AntennaGroup := omit, Pbch := omit, //same as previous config Pcfich := omit,//same as previous config @@ -146,9 +143,9 @@ module MAC_SSC { /* * @desc set specialSubframePatterns parameter in EUTRA_CellInfo * @param p_CellId - * @param p_specialSubframePatterns + * @param p_SpecialSubframePatterns * @param p_SpecialSubframePatterns_v1130 - * @status + * @status APPROVED (LTE_A) */ function f_EUTRA_CellInfo_SetSysInfo_TDD_Config_v1130(EUTRA_CellId_Type p_CellId, TDD_Config.specialSubframePatterns p_SpecialSubframePatterns, @@ -157,11 +154,11 @@ module MAC_SSC { var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.tdd_Config.specialSubframePatterns := p_SpecialSubframePatterns; v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension := { - tdd_Config_v1130 := { - specialSubframePatterns_v1130 := p_SpecialSubframePatterns_v1130 - }, - cellSelectionInfo_v1130 := omit, - nonCriticalExtension := omit + tdd_Config_v1130 := { + specialSubframePatterns_v1130 := p_SpecialSubframePatterns_v1130 + }, + cellSelectionInfo_v1130 := omit, + nonCriticalExtension := omit }; f_EUTRA_CellInfo_Set (p_CellId, v_CellInfo); } @@ -170,7 +167,7 @@ module MAC_SSC { * @desc set UL_CyclicPrefixLength parameter in EUTRA_CellInfo * @param p_CellId * @param p_UL_CyclicPrefixLength - * @status + * @status APPROVED (LTE_A) */ function f_EUTRA_CellInfo_SetSysInfo_UL_CyclicPrefixLength(EUTRA_CellId_Type p_CellId, UL_CyclicPrefixLength p_UL_CyclicPrefixLength) runs on EUTRA_PTC @@ -185,7 +182,7 @@ module MAC_SSC { * @desc modify PDCCH configuration * @param p_Dl_Bandwidth * @return template (value) PdcchConfig_Type - * @status + * @status APPROVED (LTE_A) */ function f_EUTRA_PdcchConfig_ModifyCCESpecialSubframe_TDD(Dl_Bandwidth_Type p_Dl_Bandwidth) return template (value) PdcchConfig_Type { @@ -210,9 +207,8 @@ module MAC_SSC { PdcchCandidateList := v_PdcchCandidateList, RelativeTxPower := omit } - return v_PdcchConfig; - }; + } /* @desc Generates a MobilityControlInfo template with ALL parameters based on target cell. * @param p_TargetCellId @@ -223,10 +219,10 @@ module MAC_SSC { { var template (omit) TDD_Config_v1130 v_TDD_Config_v1130 := omit; var template (value) RadioResourceConfigCommon v_RadioResourceConfigCommon; - var Frequency_IE_Type v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs ( p_TargetCellId ); + var Frequency_IE_Type v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(p_TargetCellId ); var CarrierFreqEUTRA v_EUTRA_CarrierFreq := v_Frequency_IE.UL_DL_Earfcn; - var template (value) CarrierBandwidthEUTRA v_EUTRA_CarrierBandwidth := cs_CarrierBandwidthEUTRA ( v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth ); - var AdditionalSpectrumEmission_Type v_AdditionalSpectrumEmission := f_EUTRA_CellInfo_GetAddSpectrumEmission ( p_TargetCellId ); + var template (value) CarrierBandwidthEUTRA v_EUTRA_CarrierBandwidth := cs_CarrierBandwidthEUTRA(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth ); + var AdditionalSpectrumEmission_Type v_AdditionalSpectrumEmission := f_EUTRA_CellInfo_GetAddSpectrumEmission(p_TargetCellId ); var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_TargetCellId); var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB := v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon; @@ -253,77 +249,83 @@ module MAC_SSC { /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.12/12a - * @status + * @param p_SpecialSubframePatterns + * @param p_SpecialSubframePatterns_v1130 + * @param p_UL_CyclicPrefixLength + * @status APPROVED (LTE_A) */ - function f_TC_7_1_3_12_Common (TDD_Config.specialSubframePatterns p_SpecialSubframePatterns, - TDD_Config_v1130.specialSubframePatterns_v1130 p_SpecialSubframePatterns_v1130, - UL_CyclicPrefixLength p_UL_CyclicPrefixLength) runs on EUTRA_PTC - { /* L2/MAC - * 7.1.3.12/12a : - */ + function f_TC_7_1_3_12_Common(TDD_Config.specialSubframePatterns p_SpecialSubframePatterns, + TDD_Config_v1130.specialSubframePatterns_v1130 p_SpecialSubframePatterns_v1130, + UL_CyclicPrefixLength p_UL_CyclicPrefixLength) runs on EUTRA_PTC + { var Dl_Bandwidth_Type v_Dl_Bandwidth_Cell1; var SubFrameTiming_Type v_Timing; - //var EUTRA_SecurityParams_Type v_Auth_Params := f_EUTRA_Security_Get(); var octetstring v_EncodedPdcpPdu; var octetstring v_EncodedRlcPdu; - // var template (value) DciDlInfoCommon_Type v_DciDlInfoCommon; - + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; //@sic R5s141331 sic@ + var EUTRA_CyclicPrefix_Type v_CyclicPrefixLength := normal; //@sic R5s150252 sic@ + timer t_Watchdog := 5.0; - /////////////////////////////////////////////////////////////////////////////////// - // PREAMBLE - ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_Init (c1); + //Test applicable only for TDD + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell1); //@sic R5s141331 sic@ + if (v_EUTRA_FDD_TDD_Mode == FDD) { + FatalError(__FILE__, __LINE__, "Invalid operation mode"); + } + //@sic R5s150252 sic@ + if(p_UL_CyclicPrefixLength == len2) { + v_CyclicPrefixLength := extended ; + } + v_Dl_Bandwidth_Cell1 := f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1); - + //set specialSubframePatterns to ssp9 for normal cyclic prefix for cell 1 f_EUTRA_CellInfo_SetSysInfo_TDD_Config_v1130(eutra_Cell1,p_SpecialSubframePatterns,p_SpecialSubframePatterns_v1130); f_EUTRA_CellInfo_SetSysInfo_UL_CyclicPrefixLength(eutra_Cell1,p_UL_CyclicPrefixLength); - f_EUTRA_CellConfig_Def (eutra_Cell1); - + f_EUTRA_CellConfig_Def(eutra_Cell1, -, -, -, v_CyclicPrefixLength); //@sic R5s150252, R5s150338: formal parameter list sic@ + // configure SS for TDD candidates selection in special sub frames f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PhysicalLayerConfigDL_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PhysicalLayerConfigDL_CCESpecialSubframe_TDD(v_Dl_Bandwidth_Cell1))); - f_EUTRA_Preamble (eutra_Cell1, STATE2A_TESTLOOP_ModeA); - + f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm + f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling(); - + f_Delay(0.660); // 600 ms previous time alignment timer - + /////////////////////////////////////////////////////////////////////////////////// // Test Body ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_TestBody_Set(true, layer2); - + f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB1, cs_MAC_TestMode_NoHeaderManipulationDLOnly); - + // configure SS for default UL grant allocation at SR reception but no automatic PUCCH synch as time alignment timer is infinit; f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(eutra_Cell1, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); - + // to configure SS to report reception of HARQ ACK or NACK f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Enable ); - + // to configure SS to report reception of SR f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); - - - + //@siclog "Steps 1" siclog@ // The SS indicates a new transmission on PDCCH and transmits a MAC PDU in SF-Num 1 or 6 where the DwPTS belongs to. // 13B PDCP SDU + 2B PDCP H + 2B RLC Header +1 B MAC SH = 18 B= 144 bits v_EncodedPdcpPdu := f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN0, crs_PDCP_SDU_13B))); v_EncodedRlcPdu := f_RLC_PDU_Encvalue (cs_RLC_AMD_1PDU(tsc_NoPoll, int2bit(0, 10),v_EncodedPdcpPdu )); - + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(2,//Imcs=2,Nprb=3 dci_1, ra_0, 8))));//N'prb, Nprb=max{floor(N'prb*0.375),1} - v_Timing := f_EUTRA_GetNextSendOccasion(eutra_Cell2); + v_Timing := f_EUTRA_GetNextSendOccasion(eutra_Cell1); //@sic R5s140818 sic@ DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, tsc_RbId_DRB1, @@ -333,45 +335,41 @@ module MAC_SSC { // prepare for sending status PDU to avoid any retransmissions // MAC SH 2B(RLCSTATUS) + SH 1B(PADING) + RLC STATUS 2B + PADING 6B = 11B = 88bit - f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_CcchDcchDtchDL_Config_REQ(eutra_Cell2, + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_CcchDcchDtchDL_Config_REQ(eutra_Cell1, //@sic R5s140818 sic@ cs_TimingInfo(v_Timing.SFN.Number, 4), cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(1,//Imcs=1,Nprb=3 dci_1, ra_0, 8))));//N'prb, Nprb=max{floor(N'prb*0.375),1} - + //@siclog "Step 2" siclog@ //Check: Does the UE transmit a HARQ ACK? t_Watchdog.start; - SYSIND.receive ( car_UL_HARQ_IND (eutra_Cell1, ?, ack )); + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, ?, ack)); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2"); - + //@siclog "Step 3" siclog@ //The UE transmits a Scheduling Request on PUCCH - SYSIND.receive ( car_SchedulingReq_IND (eutra_Cell1, ?)); - + SYSIND.receive(car_SchedulingReq_IND (eutra_Cell1, ?)); + //@siclog "Step 4" siclog@ //The SS sends an UL grant suitable for the loop back PDU to be transmitted - + //@siclog "Step 5" siclog@ //The UE transmits a MAC PDU containing the loop back PDU corresponding to step 1 - DRB.receive (car_DRB_COMMON_IND_RLC_PDUList (eutra_Cell2, - tsc_RbId_DRB1, - cr_TimingInfo_Any, - {cr_RLC_AMD_1PDU(?, int2bit(0, 10), v_EncodedPdcpPdu)})); + DRB.receive (car_DRB_COMMON_IND_RLC_PDUList(eutra_Cell1, //@sic R5s140818 sic@ + tsc_RbId_DRB1, + cr_TimingInfo_Any, + {cr_RLC_AMD_1PDU(?, int2bit(0, 10), v_EncodedPdcpPdu)})); t_Watchdog.stop; - + //SS will schedule this in SSF only and tranmsits in sub frame 1 or 6 f_RLC_Status_PDU_Tx (tsc_LchId_DRB1, 1, eutra_Cell1, cs_TimingInfo_SubFrame(6)); - + SYSIND.receive( car_UL_HARQ_IND (eutra_Cell1, ?, ack )); //@sic R5s140818 sic@ f_EUTRA_TestBody_Set(false); - //test body ends - /////////////////////////////////////////////////////////////////////////////////// - // Post Amble - ////////////////////////////////////////////////////////////////////////////////// // configure SS in normal DL grant transmission f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB1,cs_MAC_TestMode_NormalMode); f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Disable ); @@ -380,86 +378,62 @@ module MAC_SSC { cas_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_Dl_Bandwidth_Cell1)))); - // Release RRC Connection and Switch off - f_EUTRA_Postamble ( eutra_Cell1, E3_TESTMODE ); - }; - -/* + f_EUTRA_Postamble(eutra_Cell1, E3_TESTMODE ); + } + + /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.12 - * @status + * @status APPROVED (LTE_A) */ - function f_TC_7_1_3_12_EUTRA ( ) runs on EUTRA_PTC - { /* L2/MAC - * 7.1.3.12 : TDD additional special subframe configuration / Special subframe pattern 9 with Normal Cyclic Prefix / CRS based transmission scheme - */ - f_TC_7_1_3_12_Common(ssp5, ssp9,len1) - }; + function f_TC_7_1_3_12_EUTRA() runs on EUTRA_PTC + { /* TDD additional special subframe configuration / Special subframe pattern 9 with Normal Cyclic Prefix / CRS based transmission scheme */ + f_TC_7_1_3_12_Common(ssp5, ssp9, len1) + } /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.12a - * @status + * @status APPROVED (LTE_A) */ - function f_TC_7_1_3_12a_EUTRA ( ) runs on EUTRA_PTC - { /* L2/MAC - * 7.1.3.12a : TDD additional special subframe configuration / Special subframe pattern 7 with Extended Cyclic Prefix / CRS based transmission scheme - */ + function f_TC_7_1_3_12a_EUTRA() runs on EUTRA_PTC + { /* TDD additional special subframe configuration / Special subframe pattern 7 with Extended Cyclic Prefix / CRS based transmission scheme */ f_TC_7_1_3_12_Common(ssp4, ssp7, len2) - }; + } -//============================================================================================================================================= - -//===================================================================================================== -//template and function -//====================================================================================================== - template (value) AntennaInfoDedicated cs_AntennaInfoDedicated_TransmissionMode(AntennaInfoDedicated.transmissionMode p_TransmissionMode) := - { /* @status */ - transmissionMode := p_TransmissionMode, - codebookSubsetRestriction := omit, - ue_TransmitAntennaSelection := { - release := NULL - } - }; + //===================================================================================================== + //template and function + //====================================================================================================== template (value) PhysicalConfigDedicated_AntennaInfo_Type cs_PhysicalConfigDedicated_AntennaInfo_TransmissionMode(AntennaInfoDedicated.transmissionMode p_TransmissionMode) := - { /* @status ) */ - explicitValue := cs_AntennaInfoDedicated_TransmissionMode(p_TransmissionMode) + { /* @status APPROVED (LTE_A) */ + explicitValue := cs_AntennaInfoDedicated(p_TransmissionMode) }; - template (value) DownlinkAntennaGroupConfig_Type cs_DownlinkAntennaGroupConfig (template (value) AntennaInfoCommon p_AntennaInfoCommon, - AntennaPortId_Type p_AntennaPortId_Type):= - { /* @status */ - AntennaInfoCommon := cs_AntennaInfoCommon_r8(p_AntennaInfoCommon), - AntennaPort := { - cs_AntennaPort_Configure(p_AntennaPortId_Type) - } - }; - /* * @desc Assign the CellInformation of the parameterized cell to the specific TM * @param p_CellId - * @status + * @param p_TransmissionMode + * @status APPROVED (LTE_A) */ - function f_EUTRA_CellInfo_SetAntennaInfo (EUTRA_CellId_Type p_CellId, - AntennaInfoDedicated.transmissionMode p_TransmissionMode) runs on EUTRA_PTC + function f_EUTRA_CellInfo_SetAntennaInfo(EUTRA_CellId_Type p_CellId, + AntennaInfoDedicated.transmissionMode p_TransmissionMode) runs on EUTRA_PTC { var template (value) EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); // Update the antenna information in the cell Array - v_CellInfo.AntennaInfo.SS_AntennaInfoDedicated := cs_AntennaInfoDedicated_TransmissionMode(p_TransmissionMode); + v_CellInfo.AntennaInfo.SS_AntennaInfoDedicated := cs_AntennaInfoDedicated(p_TransmissionMode); v_CellInfo.AntennaInfo.AntennaInfoDedicated := cs_PhysicalConfigDedicated_AntennaInfo_TransmissionMode(p_TransmissionMode); - + f_EUTRA_CellInfo_Set(p_CellId, v_CellInfo); } - - + /* * @desc To move to state 4 as required for test case 7.1.3.13 * @param p_PDCP_StatusReportRequired (default value: true) * @param p_DRB_ToAddModList (default value: omit) * @param p_SS_AntennaInfoCommon * @param p_AntennaPortId_Type - * @status + * @status APPROVED (LTE_A) */ function f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_AntennaInfo_ExplicitValue(boolean p_PDCP_StatusReportRequired := true , template (omit) DRB_ToAddModList p_DRB_ToAddModList := omit, @@ -474,6 +448,7 @@ module MAC_SSC { f_EUTRA_GenericRbEst_DisableBSR_PHR(eutra_Cell1, 0, 0, + tsc_DRB_ConfigurationAtSS_Default, // @sic R5s150338 sic@ v_DRB_ToAddModList, v_MAC_MainConfig, v_PhysicalConfigDedicated, @@ -487,165 +462,179 @@ module MAC_SSC { /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.13/13a - * @status + * @param p_SpecialSubframePatterns + * @param p_SpecialSubframePatterns_v1130 + * @param p_UL_CyclicPrefixLength + * @param p_TransmissionMode + * @param p_AntennaPortId_Type + * @param p_DciFomat + * @status APPROVED (LTE_A) */ - function f_TC_7_1_3_13_Common (TDD_Config.specialSubframePatterns p_SpecialSubframePatterns, + function f_TC_7_1_3_13_Common(TDD_Config.specialSubframePatterns p_SpecialSubframePatterns, TDD_Config_v1130.specialSubframePatterns_v1130 p_SpecialSubframePatterns_v1130, UL_CyclicPrefixLength p_UL_CyclicPrefixLength, AntennaInfoDedicated.transmissionMode p_TransmissionMode, - AntennaPortId_Type p_AntennaPortId_Type) runs on EUTRA_PTC + AntennaPortId_Type p_AntennaPortId_Type, + PdcchDciFormat_Type p_DciFomat) runs on EUTRA_PTC { /* L2/MAC * TDD additional special subframe configuration / Special subframe pattern 9/7 / UE-specific reference signals based transmission scheme */ var Dl_Bandwidth_Type v_Dl_Bandwidth_Cell1; var SubFrameTiming_Type v_Timing; - //var EUTRA_SecurityParams_Type v_Auth_Params := f_EUTRA_Security_Get(); var octetstring v_EncodedPdcpPdu; var octetstring v_EncodedRlcPdu; var EUTRA_CellInfo_Type v_CellInfo_Cell1; - // var template (value) DciDlInfoCommon_Type v_DciDlInfoCommon; - + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; //@sic R5s141331 sic@ + var EUTRA_CyclicPrefix_Type v_CyclicPrefixLength := normal; //@sic R5s150254 sic@ + timer t_Watchdog := 5.0; - /////////////////////////////////////////////////////////////////////////////////// - // PREAMBLE - ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_Init (c1); + //Test applicable only for TDD + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell1); //@sic R5s141331 sic@ + if (v_EUTRA_FDD_TDD_Mode == FDD) { + FatalError(__FILE__, __LINE__, "Invalid operation mode"); + } + //@sic R5s150254 sic@ + if(p_UL_CyclicPrefixLength == len2) { + v_CyclicPrefixLength := extended ; + } + + if (p_TransmissionMode == tm8_v920) {//@sic R5s150254 sic@ + f_EUTRA_CellInfo_SetMIMO_2TX(eutra_Cell1);//@sic R5s141239 sic@ + } + v_Dl_Bandwidth_Cell1 := f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1); - //set specialSubframePatterns to ssp9 for normal cyclic prefix for cell 1 f_EUTRA_CellInfo_SetSysInfo_TDD_Config_v1130(eutra_Cell1,p_SpecialSubframePatterns,p_SpecialSubframePatterns_v1130); f_EUTRA_CellInfo_SetSysInfo_UL_CyclicPrefixLength(eutra_Cell1,p_UL_CyclicPrefixLength); - - f_EUTRA_CellConfig_Def (eutra_Cell1); - + + f_EUTRA_CellConfig_Def(eutra_Cell1, -, -, -, v_CyclicPrefixLength); //@sic R5s150254, R5s150338: formal parameter list sic@ + // configure SS for TDD candidates selection in special sub frames f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PhysicalLayerConfigDL_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PhysicalLayerConfigDL_CCESpecialSubframe_TDD(v_Dl_Bandwidth_Cell1))); - + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); - + f_EUTRA_Preamble (eutra_Cell1, STATE2A_TESTLOOP_ModeA); - - f_EUTRA_CellInfo_SetAntennaInfo(eutra_Cell1,p_TransmissionMode); + f_EUTRA_AS_CipheringAlgorithm_Set(eea0); // set null AS ciphering algorithm + + + f_EUTRA_CellInfo_SetAntennaInfo(eutra_Cell1, p_TransmissionMode); //f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PhysicalLayerConfigDL_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PhysicalLayerConfigDL_AntennaInfo(cs_DownlinkAntennaGroupConfig(v_CellInfo_Cell1.AntennaInfo.SS_AntennaInfoCommon, 5)))); - + f_EUTRA_LoopBackActivation_State4_TA_Infinity_LB_NoScaling_AntennaInfo_ExplicitValue(-, -, v_CellInfo_Cell1.AntennaInfo.SS_AntennaInfoCommon, p_AntennaPortId_Type); - + f_Delay(0.660); // 600 ms previous time alignment timer /////////////////////////////////////////////////////////////////////////////////// // Test Body ////////////////////////////////////////////////////////////////////////////////// f_EUTRA_TestBody_Set(true, layer2); - + f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB1, cs_MAC_TestMode_NoHeaderManipulationDLOnly); - + // configure SS for default UL grant allocation at SR reception but no automatic PUCCH synch as time alignment timer is infinit; f_EUTRA_StartULGrantTransmissionOnSR_Reception_No_PUCCH_Sync(eutra_Cell1, cs_TimingInfo_Now, cs_DciInfo_CcchDcchDtchUL_Def); - + // to configure SS to report reception of HARQ ACK or NACK - f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Enable ); - + f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); + // to configure SS to report reception of SR f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Enable); - + //@siclog "Steps 1" siclog@ // The SS indicates a new transmission on PDCCH and transmits a MAC PDU in SF-Num 1 or 6 where the DwPTS belongs to. // 13B PDCP SDU + 2B PDCP H + 2B RLC Header +1 B MAC SH = 18 B= 144 bits - v_EncodedPdcpPdu := f_PDCP_PDU_Encvalue (cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN0, crs_PDCP_SDU_13B))); - v_EncodedRlcPdu := f_RLC_PDU_Encvalue (cs_RLC_AMD_1PDU(tsc_NoPoll, int2bit(0, 10),v_EncodedPdcpPdu )); - + v_EncodedPdcpPdu := f_PDCP_PDU_Encvalue(cs_PDCP_PDU_LongSN(cs_PDCP_DataPdu_LongSN(tsc_B12_SQN0, crs_PDCP_SDU_13B))); + v_EncodedRlcPdu := f_RLC_PDU_Encvalue(cs_RLC_AMD_1PDU(tsc_NoPoll, int2bit(0, 10), v_EncodedPdcpPdu)); + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(2,//Imcs=2,Nprb=3 - dci_2B, + p_DciFomat, ra_0, - 8))));//N'prb, Nprb=max{floor(N'prb*0.375),1} + 8)))); //N'prb, Nprb=max{floor(N'prb*0.375),1} v_Timing := f_EUTRA_GetNextSendOccasion(eutra_Cell1); - - DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU (eutra_Cell1, - tsc_RbId_DRB1, - cs_TimingInfo(v_Timing.SFN.Number, 1), - cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, - v_EncodedRlcPdu)))); - + + DRB.send (cas_DRB_COMMOM_REQ_MAC_PDU(eutra_Cell1, + tsc_RbId_DRB1, + cs_TimingInfo(v_Timing.SFN.Number, 1), + cs_MAC_PDUList_1 (cs_MAC_PDU_NoPadding_RLCPDU_LCID(tsc_LchId_DRB1, + v_EncodedRlcPdu)))); + // prepare for sending status PDU to avoid any retransmissions // MAC SH 2B(RLCSTATUS) + SH 1B(PADING) + RLC STATUS 2B + PADING 6B = 11B = 88bit f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo(v_Timing.SFN.Number, 4), cs_DciDLInfo_Explicit(cs_DciDlInfoExplicit(1,//Imcs=1,Nprb=3 - dci_2B, + p_DciFomat, ra_0, - 8))));//N'prb, Nprb=max{floor(N'prb*0.375),1} - + 8)))); //N'prb, Nprb=max{floor(N'prb*0.375),1} + //@siclog "Step 2" siclog@ //Check: Does the UE transmit a HARQ ACK? t_Watchdog.start; - SYSIND.receive ( car_UL_HARQ_IND (eutra_Cell1, ?, ack )); + SYSIND.receive(car_UL_HARQ_IND (eutra_Cell1, ?, ack)); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 2"); - + //@siclog "Step 3" siclog@ //The UE transmits a Scheduling Request on PUCCH - SYSIND.receive ( car_SchedulingReq_IND (eutra_Cell1, ?)); - + SYSIND.receive(car_SchedulingReq_IND (eutra_Cell1, ?)); + //@siclog "Step 4" siclog@ //The SS sends an UL grant suitable for the loop back PDU to be transmitted - + //@siclog "Step 5" siclog@ //The UE transmits a MAC PDU containing the loop back PDU corresponding to step 1 - DRB.receive (car_DRB_COMMON_IND_RLC_PDUList (eutra_Cell1, - tsc_RbId_DRB1, - cr_TimingInfo_Any, - {cr_RLC_AMD_1PDU(?, int2bit(0, 10), v_EncodedPdcpPdu)})); + DRB.receive(car_DRB_COMMON_IND_RLC_PDUList(eutra_Cell1, + tsc_RbId_DRB1, + cr_TimingInfo_Any, + {cr_RLC_AMD_1PDU(?, int2bit(0, 10), v_EncodedPdcpPdu)})); t_Watchdog.stop; - + //SS will schedule this in SSF only and tranmsits in sub frame 1 or 6 - f_RLC_Status_PDU_Tx (tsc_LchId_DRB1, 1, eutra_Cell1, cs_TimingInfo_SubFrame(6)); - - + f_RLC_Status_PDU_Tx(tsc_LchId_DRB1, 1, eutra_Cell1, cs_TimingInfo_SubFrame(6)); + + SYSIND.receive(car_UL_HARQ_IND(eutra_Cell1, ?, ack)); f_EUTRA_TestBody_Set(false); - //test body ends - + /////////////////////////////////////////////////////////////////////////////////// // Post Amble ////////////////////////////////////////////////////////////////////////////////// f_SS_Config1TM_DRB_NoMACHeader(eutra_Cell1, tsc_RbId_DRB1,cs_MAC_TestMode_NormalMode); - f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Disable ); + f_SS_ConfigUL_HARQ_IndMode (eutra_Cell1, tsc_L1Mac_IndicationMode_Disable); f_SS_ConfigSchedulingRequestIndMode(eutra_Cell1, tsc_L1Mac_IndicationMode_Disable); // configure SS in normal DL grant transmission f_EUTRA_SS_CommonCellConfig(eutra_Cell1, - cas_CcchDcchDtchDL_Config_REQ(eutra_Cell2, + cas_CcchDcchDtchDL_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_DciDLInfo_Auto(cs_DciInfo_CcchDcchDtchDL(v_Dl_Bandwidth_Cell1)))); // Release RRC Connection and Switch off - f_EUTRA_Postamble ( eutra_Cell1, E3_TESTMODE );//@sic R5-103875 sic@; - }; + f_EUTRA_Postamble(eutra_Cell1, E3_TESTMODE);//@sic R5-103875 sic@; + } /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.13 - * @status + * @status APPROVED (LTE_A) */ - function f_TC_7_1_3_13_EUTRA ( ) runs on EUTRA_PTC - { /* L2/MAC - * 7.1.3.13 : TDD additional special subframe configuration / Special subframe pattern 9 with Normal Cyclic Prefix / UE-specific reference signals based transmission scheme - */ - f_TC_7_1_3_13_Common(ssp5, ssp9,len1,tm8_v920,5) - }; + function f_TC_7_1_3_13_EUTRA() runs on EUTRA_PTC + { /* TDD additional special subframe configuration / Special subframe pattern 9 with Normal Cyclic Prefix / UE-specific reference signals based transmission scheme */ + f_TC_7_1_3_13_Common(ssp5, ssp9,len1,tm8_v920,7,dci_2B) + } /* * @desc REFERENCE TS 36.523-1 clause 7.1.3.13a - * @status + * @status APPROVED (LTE_A) */ - function f_TC_7_1_3_13a_EUTRA ( ) runs on EUTRA_PTC - { /* L2/MAC - * 7.1.3.13a : TDD additional special subframe configuration / Special subframe pattern 7 with Extended Cyclic Prefix / UE-specific reference signals based transmission scheme - */ - f_TC_7_1_3_13_Common(ssp4, ssp7, len2, tm7, 7) + function f_TC_7_1_3_13a_EUTRA() runs on EUTRA_PTC + { /* TDD additional special subframe configuration / Special subframe pattern 7 with Extended Cyclic Prefix / UE-specific reference signals based transmission scheme */ + f_TC_7_1_3_13_Common(ssp4, ssp7, len2, tm7, 5, dci_1) }; } diff --git a/LTE_A_IWD_14wk37/LTE_A/7_3/PDCP_A_Security.ttcn b/LTE_A_IWD_15wk38/LTE_A/7_3/PDCP_A_Security.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/LTE_A/7_3/PDCP_A_Security.ttcn rename to LTE_A_IWD_15wk38/LTE_A/7_3/PDCP_A_Security.ttcn index b6cc3ca..272bf95 100644 --- a/LTE_A_IWD_14wk37/LTE_A/7_3/PDCP_A_Security.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/7_3/PDCP_A_Security.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2013-07-28 11:18:29 +0200 (Sun, 28 Jul 2013) $ // $Rev: 9194 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/LTE_A/8_1/RRC_Paging_A.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_1/RRC_Paging_A.ttcn similarity index 50% rename from LTE_A_IWD_14wk37/LTE_A/8_1/RRC_Paging_A.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_1/RRC_Paging_A.ttcn index de68841..0005b84 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_1/RRC_Paging_A.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_1/RRC_Paging_A.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-07 23:45:32 +0200 (Sat, 07 Jun 2014) $ -// $Rev: 11666 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 14:02:40 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14489 $ /******************************************************************************/ module RRC_Paging_A @@ -17,6 +17,7 @@ module RRC_Paging_A import from CommonDefs all; import from EUTRA_CommonDefs all; import from EUTRA_RRC_Templates all; + import from EUTRA_AspCommon_Templates all; import from EUTRA_CommonProcedures all; import from EPS_NAS_Constants all; import from EPS_NAS_Templates all; @@ -25,71 +26,108 @@ module RRC_Paging_A import from EUTRA_ConfigurationSteps all; import from UpperTesterFunctions all; import from EUTRA_Paging all; + import from EUTRA_Timing all; import from EUTRA_SysInfo_Templates all; - - //============================================================================ - - // SIB14 modified default configuration - - template (value) EAB_Config_r11 cs_EAB_Config_EabClass0 := - { // Acc. to 36.508 Table 4.4.3.3-13A:SystemInformationBlockType14 - eab_Category_r11 := a, - eab_BarringBitmap_r11 := '1000000000'B - }; - - template (value) SystemInformationBlockType14_r11 cds_SystemInformationBlockType14_EabClass0 - modifies cs_SystemInformationBlockType14_Def:= - { // Acc. to 36.508 Table 4.4.3.3-13A:SystemInformationBlockType14 - eab_Param_r11 := { - eab_Common_r11 := cs_EAB_Config_EabClass0 - }, - lateNonCriticalExtension := omit + + + template (value) Paging_v890_IEs cs_Paging_EabModification := + { /* @status APPROVED (LTE_A) */ + lateNonCriticalExtension := omit, + nonCriticalExtension := { + cmas_Indication_r9 := omit, + nonCriticalExtension := { + eab_ParamModification_r11 := true_, + nonCriticalExtension:= omit + } + } }; - - /*=========================================================================================== - * @desc Test case 8.1.1.7 RRC / RRC / Paging for connection in idle mode - * @status + + /* + * @desc Page UE and start broadcasting Sysinfo from the same frame i.e. at the start of the same modification period. + * - Paging is transmitted with EAB parameters only + * - The ValueTag is not incremented + * - UE state: RRC_IDLE + * @param p_CellId + * @status APPROVED (LTE_A) + */ + function f_EUTRA_ModifySysinfoEAB_PageSameModificationPeriod(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { /* @sic R5-152077 sic@ */ + var SubFrameTiming_Type v_Timing; + var SystemFrameNumber_Type v_StartNextModPeriod, v_Timing_SFN; + var integer v_ModificationPeriodFrames := f_CalculateModificationPeriod (p_CellId); + + //Get the current SFN and subframe + v_Timing := f_EUTRA_GetCurrentTiming(p_CellId); + + //Add processing delay to current SFN + v_Timing_SFN := (v_Timing.SFN.Number + tsc_SfnDelay) mod 1024; + // Calculate the next Modification Period + v_StartNextModPeriod := (v_Timing_SFN + (v_ModificationPeriodFrames -(v_Timing_SFN mod v_ModificationPeriodFrames)))mod 1024; + // Delay to ensure the sequencing of Scheduling of SIB modification and Paging + f_Delay(int2float((v_StartNextModPeriod-v_Timing.SFN.Number+1024) mod 1024)/1000.0); + + //Page UE from the start of the next modification period based on above calculation + f_EUTRA_UE_PageSysinfoMod(p_CellId, + v_StartNextModPeriod, + RRC_IDLE, + omit, //SystemInfoModification + omit, // EtwsIndication + cs_Paging_EabModification); //Paging_v890_IEs + //Configure SS to broadcast updated sysinfo from the start of the next modification period + //ValueTag shall not be incremented + f_EUTRA_SS_ConfigureSysinfo (p_CellId, cs_TimingInfo_SFN(v_StartNextModPeriod), false, omit); + } + + //=========================================================================================== + /* + * @desc REFERENCE TS 36.523-1 clause 8.1.1.7 + * @status APPROVED (LTE_A) */ function f_TC_8_1_1_7_EUTRA() runs on EUTRA_PTC - { + { /* RRC / RRC / Paging for connection in idle mode */ + var NAS_MSG_Indication_Type v_NasInd; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - + //(1)System information combination including SIB14 as defined in TS 36.508[18] f_EUTRA_Init(c21); // @sic R5-140959 sic@ - - // Modified sib14 according Table Table 8.1.1.7.3-1: SystemInformationBlockType14 - f_EUTRA_CellInfo_SetSIB14(eutra_Cell1, cds_SystemInformationBlockType14_EabClass0); - + + // Modified sib14 according Table Table 8.1.1.7.3-3: SystemInformationBlockType14 + f_EUTRA_CellInfo_SetSIB14(eutra_Cell1, cs_SystemInformationBlockType14_Def('0000000000'B)); // @sic R5-152077 sic@ + //Create and configure all cells f_EUTRA_CellConfig_Def(eutra_Cell1); - + //Equip UE with a USIM containing default values except for those shown in TC8.1.1.7 - f_UT_USIM_Insert(UT, "36.523-1 Table 8.1.1.7.3-1. USIM must be configured for Access Class 0");// @sic R5-140959 sic@ - + f_UT_USIM_Insert(UT, "36.523-1 Table 8.1.1.7.3-1. USIM must be configured for Access Class 0"); // @sic R5-140959 sic@ + //Bring UE to initial state f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - + f_EUTRA_TestBody_Set(true); - - + + //@siclog "Step 0" siclog@ + // The SS transmits a Paging message including eab-ParamModification. The SS start transmitting SystemInformationBlockType14 as defined in Table 8.1.1.7.3.3-1 in the same system information modification period. + f_EUTRA_CellInfo_SetSIB14(eutra_Cell1, cs_SystemInformationBlockType14_Def('1000000000'B)); // @sic R5-152077 sic@ + f_EUTRA_ModifySysinfoEAB_PageSameModificationPeriod(eutra_Cell1); // @sic R5-152077 sic@ + //@siclog "Step 1" siclog@ f_Delay(15.0); // Wait for 15s for the UE to receive system information - + //@siclog "Step 2" siclog@ f_EUTRA_UE_Page_Def(eutra_Cell1); - + //@siclog "Step 3" siclog@ //Receive RRCConnectionRequest f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1, cr_EstablishmentCause_mt_Access); - + //* @verdict pass RRCConnectionRequest received f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.1.1.7 Step 3"); - + //@siclog "Step 4" siclog@ //Transmit RRCConnectionSetup f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + //@siclog "Step 5" siclog@ //Receive RRCConnectionSetupComplete v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, @@ -98,7 +136,7 @@ module RRC_Paging_A cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); //* @verdict pass RRCConnectionSetupComplete received f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.1.1.7 Step 5"); - + //@siclog "Step 6-9" siclog@ //Steps 6 to 9 of the generic radio bearer establishment procedure (TS 36.508 4.5.3.3-1) are executed to successfully complete the service request procedure. f_EUTRA_ServiceReqPostamble_508Steps6_9( eutra_Cell1, v_NasInd); @@ -106,11 +144,10 @@ module RRC_Paging_A //@siclog "Step 10" siclog@ //Check RRC_Connected state f_EUTRA_508Check_ConnectedState(eutra_Cell1); - + f_EUTRA_TestBody_Set(false); - + //Switch/power off UE f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - - }//end of f_TC_8_1_1_7_EUTRA + } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_2/RRC_ConnReconfig_A.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_2/RRC_ConnReconfig_A.ttcn similarity index 79% rename from LTE_A_IWD_14wk37/LTE_A/8_2/RRC_ConnReconfig_A.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_2/RRC_ConnReconfig_A.ttcn index ad1a6a9..8e72b12 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_2/RRC_ConnReconfig_A.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_2/RRC_ConnReconfig_A.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-09 08:48:39 +0200 (Mon, 09 Jun 2014) $ -// $Rev: 11673 $ +// @version: IWD_15wk38 +// $Date: 2014-11-28 20:14:47 +0100 (Fri, 28 Nov 2014) $ +// $Rev: 12636 $ /******************************************************************************/ module RRC_ConnReconfig_A { @@ -31,100 +31,77 @@ module RRC_ConnReconfig_A import from EUTRA_NASSteps all; //Receive UEAssistanceInformation containing a value (normal, lowPowerConsumption) - template (present) UL_DCCH_Message cr_508_UeAssistanceInformation( - template(present) UEAssistanceInformation_r11.criticalExtensions.c1.ueAssistanceInformation_r11.powerPrefIndication_r11 p_PowerPrefIndication) := + template (present) UL_DCCH_Message cr_508_UeAssistanceInformation(template(present) UEAssistanceInformation_r11.criticalExtensions.c1.ueAssistanceInformation_r11.powerPrefIndication_r11 p_PowerPrefIndication) := { message_ := { - messageClassExtension := { - c2 := { - ueAssistanceInformation_r11 := { - criticalExtensions := { - c1 := { - ueAssistanceInformation_r11 := { - powerPrefIndication_r11 := p_PowerPrefIndication, - lateNonCriticalExtension := omit, - nonCriticalExtension := omit - } - } + messageClassExtension := { + c2 := { + ueAssistanceInformation_r11 := { + criticalExtensions := { + c1 := { + ueAssistanceInformation_r11 := { + powerPrefIndication_r11 := p_PowerPrefIndication, + lateNonCriticalExtension := omit, + nonCriticalExtension := omit } - } + } } - } + } } - }; - - - //Template to update the powerPrefIndicationConfig timer on setup mode - template (value) RRCConnectionReconfiguration_v920_IEs cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(template (value) PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer_r11) := + } + } + }; + + + template (value) PowerPrefIndicationConfig_r11 cs_PowerPrefIndicationConfig_r11_Setup(template (value) PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer_r11) := { - otherConfig_r9 := { - reportProximityConfig_r9 := omit, - idc_Config_r11 := omit, - powerPrefIndicationConfig_r11 := { - setup := { - powerPrefIndicationTimer_r11 := p_PowerPrefIndicationTimer_r11 - } - }, - obtainLocationConfig_r11 := omit - }, - fullConfig_r9 := omit, - nonCriticalExtension := omit + setup := { + powerPrefIndicationTimer_r11 := p_PowerPrefIndicationTimer_r11 + } }; - - //Template to release the PowerPrefIndication Feature - template (value) RRCConnectionReconfiguration_v920_IEs cs_PowerPrefIndicationConfig_r11_Release := + + template (value) PowerPrefIndicationConfig_r11 cs_PowerPrefIndicationConfig_r11_Release := { - otherConfig_r9 := { - reportProximityConfig_r9 := omit, - idc_Config_r11 := omit, - powerPrefIndicationConfig_r11 := { - release := NULL - }, - obtainLocationConfig_r11 := omit - }, - fullConfig_r9 := omit, - nonCriticalExtension := omit - }; - - - template (value) RRCConnectionReconfiguration_v890_IEs cs_RRCConnectionReconfiguration_v890_IEs (template (value) RRCConnectionReconfiguration_v920_IEs p_RRCConnectionReconfiguration_v920_IEs):= - { - lateNonCriticalExtension := omit, - nonCriticalExtension := p_RRCConnectionReconfiguration_v920_IEs - }; - - - template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_v890(RRC_TransactionIdentifier p_RRC_TI, - template (value) RRCConnectionReconfiguration_v920_IEs p_RRCConnectionReconfiguration_v920_IEs ) := - cs_RRCConnectionReconfiguration_Common( p_RRC_TI, omit, omit, omit, omit, - cs_RRCConnectionReconfiguration_v890_IEs(p_RRCConnectionReconfiguration_v920_IEs)); - - - template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_ConditionMEAS_PowerPreferenceIndication( - RRC_TransactionIdentifier p_RRC_TI, - template (value) MeasConfig p_MeasConfig, - template (value) RRCConnectionReconfiguration_v920_IEs p_RRCConnectionReconfiguration_v920_IEs ) := - cs_RRCConnectionReconfiguration_Common( p_RRC_TI, p_MeasConfig, omit, omit, omit, cs_RRCConnectionReconfiguration_v890_IEs(p_RRCConnectionReconfiguration_v920_IEs )); - - + release := NULL + }; + + //Template to update the powerPrefIndicationConfig timer on setup mode + template (value) RRCConnectionReconfiguration_v920_IEs cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(template (value) PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer_r11) := + cs_RRCConnectionReconfiguration_v920_IEs(cs_OtherConfig_r9(-, cs_PowerPrefIndicationConfig_r11_Setup(p_PowerPrefIndicationTimer_r11))); + + //Template to release the PowerPrefIndication Feature + template (value) RRCConnectionReconfiguration_v920_IEs cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Release := + cs_RRCConnectionReconfiguration_v920_IEs(cs_OtherConfig_r9(-, cs_PowerPrefIndicationConfig_r11_Release)); + + template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_v890(RRC_TransactionIdentifier p_RRC_TI, + template (omit) MeasConfig p_MeasConfig := omit, + template (value) RRCConnectionReconfiguration_v920_IEs p_RRCConnectionReconfiguration_v920_IEs) := + cs_RRCConnectionReconfiguration_Common(p_RRC_TI, p_MeasConfig, omit, omit, omit, cs_RRCConnectionReconfiguration_v890_IEs(p_RRCConnectionReconfiguration_v920_IEs)); + + + template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_ConditionMEAS_PowerPreferenceIndication(RRC_TransactionIdentifier p_RRC_TI, + template (value) MeasConfig p_MeasConfig, + template (value) RRCConnectionReconfiguration_v920_IEs p_RRCConnectionReconfiguration_v920_IEs ) := + cs_RRCConnectionReconfiguration_Common(p_RRC_TI, p_MeasConfig, omit, omit, omit, cs_RRCConnectionReconfiguration_v890_IEs(p_RRCConnectionReconfiguration_v920_IEs )); + + //------------------------------------------------ //TC8.2.2.6.2, Step1 template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_2_2_6_2_Step1(RRC_TransactionIdentifier p_RRC_TI, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, AllowedMeasBandwidth p_MeasurementBandwidth, - PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer - ) := - cs_508_RRCConnectionReconfiguration_ConditionMEAS_PowerPreferenceIndication(p_RRC_TI, - cs_MeasConfig(omit, - cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, - cs_508_MeasObjectEUTRA_GENERIC(p_EUTRA_DL_CarrierFreq, p_MeasurementBandwidth)), - omit, - cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, - cs_508_ReportConfigEUTRA_A3), - omit, - cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)), - cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(p_PowerPrefIndicationTimer)); - + PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer) := + cs_RRCConnectionReconfiguration_v890(p_RRC_TI, + cs_MeasConfig(omit, + cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, + cs_508_MeasObjectEUTRA_GENERIC(p_EUTRA_DL_CarrierFreq, p_MeasurementBandwidth)), + omit, + cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, + cs_508_ReportConfigEUTRA_A3), + omit, + cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)), + cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(p_PowerPrefIndicationTimer)); + //------------------------------------------------ //TC8.2.2.6.2, Step8 template (present) UL_DCCH_Message cr_MeasurementReport_8_2_2_6_2_Step8(PhysCellId p_PhysCellId) := @@ -132,17 +109,17 @@ module RRC_ConnReconfig_A ?, ?, cr_MeasResultNeighCells_measResultListEUTRA_1Entry(p_PhysCellId, omit,?, ?)); - + //TC8.2.2.6.2, Step16 template (value) DL_DCCH_Message cs_RRCConnReconfig_Resume_SRB2_DRBs_ConfigurePowerPreferenceIndication(RRC_TransactionIdentifier p_RRC_TI, - template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, - template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, - template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, - SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, - SR_ConfigIndex_Type p_SR_ConfigIndex, - template (omit) MeasConfig p_MeasConfig := omit, - template (omit) PUCCH_ConfigDedicated p_PUCCH_Config := omit, - PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer) := + template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, + template (omit) SoundingRS_UL_ConfigDedicated p_SoundingRsUl_ConfigDedicated, + template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, + SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, + SR_ConfigIndex_Type p_SR_ConfigIndex, + template (omit) MeasConfig p_MeasConfig := omit, + template (omit) PUCCH_ConfigDedicated p_PUCCH_Config := omit, + PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 p_PowerPrefIndicationTimer) := cs_RRCConnectionReconfiguration_Common(p_RRC_TI, p_MeasConfig, omit, @@ -154,62 +131,36 @@ module RRC_ConnReconfig_A p_SR_ConfigIndex), omit, cs_RRCConnectionReconfiguration_v890_IEs(cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(p_PowerPrefIndicationTimer))); - + //--------------------------------------------------------------------------------------- //TC8.2.2.8 - template (value) RRCConnectionReconfiguration_v920_IEs cs_RRCConnectionReconfiguration_v920_IEs(template (value) RRCConnectionReconfiguration_v1020_IEs p_RRCConnectionReconfiguration_v1020_IEs) := - { /* @status */ - otherConfig_r9 := omit, - fullConfig_r9 := omit, - nonCriticalExtension := p_RRCConnectionReconfiguration_v1020_IEs - }; - - template (value) RRCConnectionReconfiguration_v1020_IEs cs_RRCConnectionReconfiguration_v1020_IEs(template (value) RRCConnectionReconfiguration_v1130_IEs p_RRCConnectionReconfiguration_v1130_IEs) := - { /* @status */ - sCellToReleaseList_r10 := omit, - sCellToAddModList_r10 := omit, - nonCriticalExtension := p_RRCConnectionReconfiguration_v1130_IEs - }; - + template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_v1130(RRC_TransactionIdentifier p_RRC_TI, - template (value) RRCConnectionReconfiguration_v1130_IEs p_RRCConnectionReconfiguration_v1130_IEs ) := - /* @status */ - cs_RRCConnectionReconfiguration_Common( p_RRC_TI, - omit, - omit, - omit, - omit, - cs_RRCConnectionReconfiguration_v890_IEs(cs_RRCConnectionReconfiguration_v920_IEs(cs_RRCConnectionReconfiguration_v1020_IEs(p_RRCConnectionReconfiguration_v1130_IEs)))); - - - + template (value) RRCConnectionReconfiguration_v1130_IEs p_RRCConnectionReconfiguration_v1130_IEs) := + /* @status APPROVED (LTE_A) */ + cs_RRCConnectionReconfiguration_Common(p_RRC_TI, + omit, + omit, + omit, + omit, + cs_RRCConnectionReconfiguration_v890_IEs(cs_RRCConnectionReconfiguration_v920_IEs(-, -, cs_RRCConnectionReconfiguration_v1020_IEs(-, -, p_RRCConnectionReconfiguration_v1130_IEs)))); + + + template (value) RRCConnectionReconfiguration_v1130_IEs cs_SystemInfomationBlockType1Dedicated_r11(template (value) octetstring p_SystemInfomationBlockType1Dedicated_r11) := - { /* @status */ + { /* @status APPROVED (LTE_A) */ systemInfomationBlockType1Dedicated_r11 := p_SystemInfomationBlockType1Dedicated_r11, nonCriticalExtension := omit }; - - // Functions ********************************************************************************************** - /* - * @desc return the SystemInformationBlockType1 stored in EUTRA_CellInfo - * @param p_CellId - * @return SystemInformationBlockType1 - * @status - */ - function f_EUTRA_CellInfo_GetSIB1(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC return template (value) SystemInformationBlockType1 - { - var EUTRA_CellInfo_Type v_CellInfo := f_EUTRA_CellInfo_Get(p_CellId); - return v_CellInfo.Sysinfo.BCCH_Info.SIB1.message_.c1.systemInformationBlockType1; - } - + // Test Cases ********************************************************************************************** /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.6.1 * @status */ function f_TC_8_2_2_6_1_EUTRA() runs on EUTRA_PTC - {/* @desc Test case 8.2.2.6.1 RRC connection reconfiguration/ UE Assistance Information/power preference indication setup and release */ - + { /* @desc Test case 8.2.2.6.1 RRC connection reconfiguration/ UE Assistance Information/power preference indication setup and release */ + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; //Table 8.2.2.6.1.3.3-2: OtherConfig-r9 (step 3, Table 8.2.2.6.1.3.2-1) var PowerPrefIndicationConfig_r11.setup.powerPrefIndicationTimer_r11 v_PowerPrefIndicationTimer := s0; @@ -248,7 +199,7 @@ module RRC_ConnReconfig_A //The SS transmits an RRCConnectionReconfiguration message containing a otherConfig includes the powerPrefIndicationConfig set to Setup SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_v890(v_RRC_TI, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(v_PowerPrefIndicationTimer)))); + cs_RRCConnectionReconfiguration_v890(v_RRC_TI, -, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(v_PowerPrefIndicationTimer)))); //@siclog "Step 4" siclog@ @@ -289,7 +240,7 @@ module RRC_ConnReconfig_A //The SS transmits an RRCConnectionReconfiguration message containing a otherConfig includes the powerPrefIndicationConfig set to Release SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_v890(v_RRC_TI, cs_PowerPrefIndicationConfig_r11_Release))); + cs_RRCConnectionReconfiguration_v890(v_RRC_TI, -, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Release))); @@ -595,7 +546,7 @@ module RRC_ConnReconfig_A //The SS transmits an RRCConnectionReconfiguration message containing a otherConfig includes the powerPrefIndicationConfig set to Setup SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_v890(v_RRC_TI, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(v_PowerPrefIndicationTimer)))); + cs_RRCConnectionReconfiguration_v890(v_RRC_TI, -, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(v_PowerPrefIndicationTimer)))); //@siclog "Step 2" siclog@ @@ -655,7 +606,7 @@ module RRC_ConnReconfig_A v_PowerPrefIndicationTimer := s30; SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_v890(v_RRC_TI, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(v_PowerPrefIndicationTimer)))); + cs_RRCConnectionReconfiguration_v890(v_RRC_TI, -, cs_RRCConnectionReconfiguration_PowerPrefIndicationConfig_Setup(v_PowerPrefIndicationTimer)))); //@siclog "Step 12" siclog@ @@ -693,66 +644,67 @@ module RRC_ConnReconfig_A /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.8 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_8_EUTRA() runs on EUTRA_PTC - { //feICIC/ RRC connection reconfiguration / SIB1 information / Success - + { // RRC connection reconfiguration / SIB1 information / Success + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var template (value) SystemInformationBlockType1 v_SystemInformationBlockType1; var template (value) octetstring v_SystemInfomationBlockType1Dedicated_r11; var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode ; var Null_Type v_StopSib1Transmission := true ; - + //Initialize testcase f_EUTRA_Init(c1); - + //Get FDD/TDD mode from Cell-configuration - v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD (eutra_Cell1); - + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell1); + //Create and configure Cell1 f_EUTRA_CellConfig_Def(eutra_Cell1); - + //Preamble: The UE is in state Generic RB Established (state 3) on Cell 1 f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(eutra_Cell1); - + //Start TestBody f_EUTRA_TestBody_Set(true); - + //@siclog "Step 0" siclog@ //The SS stops transmitting SIB1 information on Cell 1. - f_EUTRA_ModifySysinfoUE_Off( eutra_Cell1, v_StopSib1Transmission); - + f_EUTRA_ModifySysinfoUE_Off(eutra_Cell1, v_StopSib1Transmission); + //@siclog "Step 1" siclog@ //The SS transmits an RRConnectionReconfiguration message containing SIB1 information. f_EUTRA_CellInfo_SetTAC(eutra_Cell1, oct2bit('0002'O)); v_SystemInformationBlockType1 := f_EUTRA_CellInfo_GetSIB1(eutra_Cell1); - v_SystemInfomationBlockType1Dedicated_r11:= bit2oct(encvalue(v_SystemInformationBlockType1)); + //@sic R5s141014 sic@ + v_SystemInfomationBlockType1Dedicated_r11:= bit2oct(f_OctetAlignedBitString(encvalue(v_SystemInformationBlockType1))); SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_v1130(v_RRC_TI, cs_SystemInfomationBlockType1Dedicated_r11(v_SystemInfomationBlockType1Dedicated_r11)))); - + //@siclog "Step 2" siclog@ //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message? - SRB.receive( car_SRB1_RrcPdu_IND( eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.2.2.8 Step 2"); - + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.8 Step 2"); + //@siclog "Step 3" siclog@ //Check: Does UE transmit a TRACKING AREA UPDATE REQUEST message to update the registration of the actual tracking area? //@siclog "Step 4" siclog@ //SS responds with TRACKING AREA UPDATE ACCEPT message. //@siclog "Step 5" siclog@ //The UE send a TRACKING AREA UPDATE COMPLETE message. - f_EUTRA_ConnectedMode_TAU (eutra_Cell1); + f_EUTRA_ConnectedMode_TAU(eutra_Cell1); //@siclog "Step 6" siclog@ //The SS resumes transmitting SIB1 information. - f_EUTRA_ModifySysinfoUE_Off( eutra_Cell1); - + f_EUTRA_ModifySysinfoUE_Off(eutra_Cell1); + //End TestBody f_EUTRA_TestBody_Set(false); - + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); }//end of TC8.2.2.8 } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn similarity index 64% rename from LTE_A_IWD_14wk37/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn index 76502c6..cf3ce43 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_2/RRC_ConnReconfig_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 15:05:20 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14458 $ /******************************************************************************/ module RRC_ConnReconfig_CA { @@ -16,13 +16,14 @@ module RRC_ConnReconfig_CA import from EUTRA_Component all; import from EUTRA_ConfigurationSteps all; import from EUTRA_CommonProcedures all; - import from EUTRA_RRCSteps all; +// import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from EUTRA_BandDependentParam all; import from EUTRA_SysInfo_Templates all; import from EUTRA_SRB_Templates all; import from EUTRA_AspCommon_Templates all; import from EUTRA_Measurement_Templates all; - import from EUTRA_Measurement_Templates_CA all; + //import from EUTRA_Measurement_Templates_CA all; import from CommonDefs all; import from Parameters all; import from EUTRA_CommonFunctions_CA all; @@ -30,8 +31,10 @@ module RRC_ConnReconfig_CA import from EUTRA_CellInfoInit_CA all; import from EUTRA_RRC_Templates_CA all; import from EUTRA_RRC_Templates all; - - + import from EUTRA_CellCfg_Templates all; + import from EUTRA_ASP_TypeDefs all; + import from EUTRA_Timing all; +// import from EUTRA_Measurement_Templates_CA all; template (value) SoundingRS_UL_ConfigDedicated cs_SoundingRsUl_ConfigDedicated_8223_FDD := { /* 36.523-1 Table 8.2.2.3.1.3.3-11A */ @@ -60,6 +63,48 @@ module RRC_ConnReconfig_CA srs_AntennaPort_r10 := an1 }; + /* + * @desc Function to Configure Pcell&Scell before Adding 1 or more Scell + * @param p_PCellId + * @param p_SCellIdAddList (default value: tsc_EUTRA_NullCellIdList) + * @param p_RRC_ConnRecongMsg + * @param p_Scell_Capability (default value: UL_DL) + * @param p_RachProcedureConfig + * @param p_C_RNTI (default value: tsc_C_RNTI_Def) + * @param p_MeasGapConfig (default value: omit) + * @param p_DciUlInfo_SCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) + * @param p_UL_GrantConfig_SCell (default value: cs_UL_GrantConfig_Stop) + * @param p_TimingInfo + * @status APPROVED (LTE_A) + */ + function f_EUTRA_Configure_Before_AddScell(EUTRA_CellId_Type p_PCellId, + EUTRA_CellIdList_Type p_SCellIdAddList := tsc_EUTRA_NullCellIdList, + template (value) DL_DCCH_Message p_RRC_ConnRecongMsg, + template (value) Scell_Capability_Type p_Scell_Capability := UL_DL, + template (value) RachProcedureConfig_Type p_RachProcedureConfig, + C_RNTI p_C_RNTI := tsc_C_RNTI_Def, + template (omit) MeasGapConfig p_MeasGapConfig := omit, + template (omit) DciUlInfo_Type p_DciUlInfo_SCell := cs_DciInfo_CcchDcchDtchUL_Def, + template (value) UL_GrantConfig_Type p_UL_GrantConfig_SCell := cs_UL_GrantConfig_Stop, + template (value) TimingInfo_Type p_TimingInfo) + runs on EUTRA_PTC + { + f_EUTRA_ConfigPcell_AddScells(p_PCellId, + p_SCellIdAddList, + //p_RRC_ConnRecongMsg, + p_RachProcedureConfig, + p_C_RNTI, + p_MeasGapConfig); + + f_EUTRA_ConfigPcell_ConfigScells(p_PCellId, + p_SCellIdAddList, + p_RRC_ConnRecongMsg, + p_Scell_Capability, + p_DciUlInfo_SCell, + p_UL_GrantConfig_SCell, + p_TimingInfo); + }; + /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.3.1/2 * @param p_PCellId @@ -70,16 +115,14 @@ module RRC_ConnReconfig_CA function f_TC_8_2_2_3_Common(EUTRA_CellId_Type p_PCellId, EUTRA_CellId_Type p_SCellId, CA_Tested_Type p_CA_Type) runs on EUTRA_PTC - { - var PhysCellId v_PhysicalCellIdentity_Scell; - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + { //@sic R5-153722 sic@ + var PhysCellId v_PhysicalCellIdentity_Scell; + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; +// var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var Frequency_IE_Type v_Frequency_IE_PCell; var Frequency_IE_Type v_Frequency_IE_Scell; var ChannelBandwidthDependency_Type v_ChBandDependency_PCell; - var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; - var template (value) CellPowerList_Type v_CellPowerList_AtT0; - var template (value) CellPowerList_Type v_CellPowerList_AtT1; - var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var ChannelBandwidthDependency_Type v_ChBandDependency_SCell; var boolean v_UL_CA := pc_UL_CA; var template (value) DL_DCCH_Message v_RRCConnectionReconfiguration; var integer v_Arfcn_SCell; @@ -90,46 +133,37 @@ module RRC_ConnReconfig_CA var CarrierFreqEUTRA v_CarrierFreq_Scell; var template (value) PUCCH_ConfigDedicated_v1020 v_PUCCH_ConfigDedicated; var template (omit) AdditionalSpectrumEmissionCA_r10_Type v_AdditionalSpectrumEmissionCA_r10 := omit; - var MeasObjectId v_MeasObjectId ; - var MeasObjectId v_MeasObjectId_PCell :=tsc_IdMeasObject_f1 ; //@sic R5s144683 sic@ - var default v_DefaultRef; - - v_CellPowerList_AtT0 := { - cs_CellPower(p_PCellId, -79) - }; - v_CellPowerList_AtT1 := { - cs_CellPower(p_SCellId, -85) //@sic R5s130404 sic@ - }; - v_CellPowerList_AtT2 := { - cs_CellPower(p_SCellId, -97) - }; + var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB; + var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type; + var template (value) Scell_Capability_Type v_Scell_Capability := DlOnly; + var integer v_N; + var boolean v_IsFDD; + var template (value) RachProcedureConfig_Type v_RachProcedureConfig; + var template (omit) CommonSCell_UL_Configuration_Type v_CommonSCell_UL_Configuration := omit; + var template (value) SCellToAddMod_r10 v_SCellToAddMod; + var SubFrameTiming_Type v_Timing; + var SubFrameTiming_Type v_TimingInfo2; + var integer v_UE_CategoryExtn; // @sic R5s150734 sic@ + var boolean v_FeatrGrp_113 ; //@sic R5-150557 sic@ + var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo_PCell ; + f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); - if (p_CA_Type == CA_IntraBand) /* @sic R5-141113 sic@ */ - { - v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144683 sic@ - { - v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } - } else - { - v_MeasObjectId := tsc_IdMeasObject_f5; - } - //Get cell dependant parameters v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); - v_ChBandDependency_Scell := f_EUTRA_BandDependentParam(v_Frequency_IE_Scell.DL_ChBandwidth, + v_ChBandDependency_SCell := f_EUTRA_BandDependentParam(v_Frequency_IE_Scell.DL_ChBandwidth, v_Frequency_IE_Scell.UL_ChBandwidth); v_Frequency_IE_PCell := f_EUTRA_CellInfo_GetFrequencyIEs(p_PCellId); v_ChBandDependency_PCell := f_EUTRA_BandDependentParam(v_Frequency_IE_PCell.DL_ChBandwidth, v_Frequency_IE_PCell.UL_ChBandwidth); v_CarrierFreq_Scell := f_EUTRA_CellInfo_GetEARFCN(p_SCellId); - //Set maximim cell powel level for cell P be used in creation - f_EUTRA_CellInfo_InitMaxReferencePower(p_PCellId, -79); + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD (p_PCellId); + v_IsFDD := (v_EUTRA_FDD_TDD_Mode == FDD); + + //Set C-RNTI to be used in s-cell creation f_EUTRA_CellInfo_SetC_RNTI(p_SCellId, tsc_C_RNTI_Def); @@ -141,55 +175,84 @@ module RRC_ConnReconfig_CA // ring UE to initial state f_EUTRA_Preamble(p_PCellId, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(p_PCellId); - - //Set initial cell power level according to T0 - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); + + //Get extended UE category + v_UE_CategoryExtn := f_EUTRA_MobileInfo_GetUECapability_UECategoryExtn();// @sic R5s150734 sic@ + f_EUTRA_TestBody_Set(true); - //@siclog "Step 1-2" siclog@ - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, - cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, - cs_Measurement_Config_A3_InterFreq_CA(v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_PCell.AllowedMeasBandwidth, - v_Frequency_IE_Scell.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Scell.AllowedMeasBandwidth, - v_MeasObjectId, - cs_508_MeasGapConfig_GP1, //@sic R5s144683 sic@ - v_MeasObjectId_PCell))); - //@siclog "Step 3" siclog@ - //Set cell power level according to T1 - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - - //@siclog "Step 4" siclog@ - //Receive MeasurementReport - SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(1, //Meas id - ?, //RSRP result - ?, //RSRQ result - cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysicalCellIdentity_Scell, - omit, //CGI info - ?, //RSRP result - ?))));//RSRQ result - - //Activate the default to receive further measurement reports for cell 2 on cell 1 - v_DefaultRef := activate(a_EUTRA_AddDefault_PeriodicalMeasurmentReport(p_PCellId, - cr_MeasurementReport(1, ?, ?, - cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysicalCellIdentity_Scell, omit, ?, ?), - ?))); + //@siclog "Step 1-4 Void" siclog@ + + //@siclog "Step 5 - 6" siclog@ - //Transmit RRCConnectionReconfiguration - //Receive RRCConnectionReconfigurationComplete - f_EUTRA_508RRC_AddMod_1Scell(p_PCellId, - p_SCellId, - 1, //SCellIndex_r10 - p_CA_Type, // CA Type - v_UL_CA,// UL CA desired - -, //C-RNTI - cs_508_MeasGapConfig_GP1 // @sic R5s130503 sic@ - ); + //The SS transmits an RRCConnectionReconfiguration message containing an sCellToAddModList with SCell Cell 3 addition. + //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message within 25 (FDD)/28 (TDD) subframes ? + v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); + v_SCell_DL_Bandwidth := f_EUTRA_CellInfo_GetSCell_DL_ChBandwidth(p_SCellId); + v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_SCellId); + v_RadioResourceConfigCommonSIB := v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon; + + v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_SCellId); + if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in + v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD + v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX); + } else { //FDD + v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); + } + + if (v_UL_CA) { + if (p_CA_Type == CA_InterBand) { // 36.508 Table 4.8.2.1.6-1 + v_AdditionalSpectrumEmissionCA_r10 := cs_AdditionalSpectrumEmissionCA_r10_Def; + } + v_Scell_Capability := UL_DL; + v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChBandDependency_SCell.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(); + } + + v_SCellToAddMod := cs_SCellToAddMod_r10(1, + v_PhysicalCellIdentity_Scell, + v_Arfcn_SCell, + cs_508_RadioResourceConfigCommonSCell_r10_DEFAULT(v_SCell_DL_Bandwidth, tsc_P_b_1Tx, v_CommonSCell_UL_Configuration, v_TDD_Config), + cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration))); + + v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_AddModRelease(tsc_RRC_TI_Def, v_SCellToAddMod, v_PUCCH_ConfigDedicated, -, infinity_, v_AdditionalSpectrumEmissionCA_r10); + + v_RachProcedureConfig := cs_RachProcedureConfig_CRNTI(f_EUTRA_CellInfo_GetRAR_TA(p_SCellId), + f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellId)); + + v_Timing := f_EUTRA_GetNextSendOccasion(p_PCellId, 500); // 500 ms later to send RRC message + v_TimingInfo2 := f_EUTRA_TimingInfoAdd(v_Timing, 15); // 15 ms later for configuration + + f_EUTRA_Configure_Before_AddScell(p_PCellId, + {p_SCellId}, + v_RRCConnectionReconfiguration, + v_Scell_Capability, + v_RachProcedureConfig, + -, + cs_508_MeasGapConfig_GP1, + cs_DciInfo_CcchDcchDtchUL_Def, + cs_UL_GrantConfig_Def, + cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number)); + + v_N := 20; + f_EUTRA_RRC_Procedure_Latency(p_PCellId, + cas_SRB1_RrcPdu_REQ(p_PCellId, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + v_RRCConnectionReconfiguration), + -, + car_SRB1_RrcPdu_IND(p_PCellId, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def)), + -, + v_IsFDD, + v_N, + "Test Case 8.2.2.3.x Step 6", + v_UE_CategoryExtn);// @sic R5s150734 sic@ + + //Start Default grant for rest of test case + //@sic R5s150680 sic@ + f_EUTRA_StartDefULGrantTransmission(p_PCellId); - //* @verdict RRCConnectionReconfigurationComplete received on Cell 3 - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.3 Step 6"); v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_SCell_DL_Bandwidth := f_EUTRA_CellInfo_GetSCell_DL_ChBandwidth(p_SCellId); @@ -197,8 +260,10 @@ module RRC_ConnReconfig_CA if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX); //@sic R5-133275 sic@ + v_FeatrGrp_113 := pc_FeatrGrp_113_T; //@sic R5-150557 sic@ } else { //FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); + v_FeatrGrp_113 := pc_FeatrGrp_113_F; //@sic R5-150557 sic@ } if (v_UL_CA) { @@ -206,27 +271,27 @@ module RRC_ConnReconfig_CA v_AdditionalSpectrumEmissionCA_r10 := cs_AdditionalSpectrumEmissionCA_r10_Def; } if (v_FDD_TDDInfo.FDD_TDD == TDD) { - if (pc_FeatrGrp_113) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD, + if (v_FeatrGrp_113) { //@sic R5-150557 sic@ + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(-,//@sic R5s150070 sic@ cs_AntennaInfoUL_r10, cds_SoundingRsUl_ConfigDedicated_8223_TDD, cs_SoundingRS_UL_ConfigDedicated_v1020_8223); } else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD, + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(-,//@sic R5s150070 sic@ cs_AntennaInfoUL_r10); } } else { - if (pc_FeatrGrp_113) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD, + if (v_FeatrGrp_113) { //@sic R5-150557 sic@ + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(-,//@sic R5s150070 sic@ cs_AntennaInfoUL_r10, cs_SoundingRsUl_ConfigDedicated_8223_FDD, cs_SoundingRS_UL_ConfigDedicated_v1020_8223); } else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD, + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(-,//@sic R5s150070 sic@ cs_AntennaInfoUL_r10); } } @@ -242,7 +307,7 @@ module RRC_ConnReconfig_CA ); if (v_UL_CA) { - if (pc_FeatrGrp_113) { + if (v_FeatrGrp_113) {//@sic R5-150557 sic@ f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_CellConfig_ScellModSRS_AntennaInfo_REQ(p_SCellId, cs_TimingInfo_Now, f_EUTRA_CellInfo_GetSounding_ConfigCommon(p_SCellId))); } else { @@ -252,6 +317,7 @@ module RRC_ConnReconfig_CA //@siclog "Step 7 - 8" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete + f_EUTRA_508RRC_AddMod_1Scell(p_PCellId, p_SCellId, 1, // SCellIndex_r10 @@ -264,27 +330,47 @@ module RRC_ConnReconfig_CA // RRCConnectionReconfigurationComplete received on Cell 3 f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.3 Step 8"); - //@siclog "Step 9" siclog@ - //Set cell power level according to T2 - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - //@siclog "Step 10" siclog@ - //Receive MeasurementReport - SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(1, //Meas id - ?, //RSRP result - ?, //RSRQ result - omit, //@sic R5-133621 sic@ - cr_MeasResultServFreqList(1, ?, ?))));//RSRQ result - //Deactivate the default to stop receiving measurement reports for cell 3 on cell 1 - deactivate(v_DefaultRef); + //@siclog "Step 9-10 Void" siclog@ + //@sic R5-153722 sic@ + + + v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_Release(tsc_RRC_TI_Def, + {1}); //Scell Rel + v_Timing := f_EUTRA_GetNextSendOccasion(p_PCellId, 200); // 200 ms later to send RRC message + v_TimingInfo2 := f_EUTRA_TimingInfoAdd(v_Timing, 5); // 5 ms later for configuration + v_FDD_TDDInfo_PCell := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + // Pre configure Pcell as a normal serving cell + f_EUTRA_ConfigPcellAsNormalServingCell (p_PCellId, + cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number), + v_FDD_TDDInfo_PCell.pucch_Config, + tsc_NoCnfReq); + // Pre configure Scell as a normal non serving cell + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ServingCellRelease_REQ(p_SCellId, cs_TimingInfo(v_TimingInfo2.SFN.Number, v_TimingInfo2.Subframe.Number),tsc_NoCnfReq)); //@siclog "Step 11 - 12" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete - f_EUTRA_508RRC_Rel_1Scell(p_PCellId, - p_SCellId, - 1); //SCellIndex_r10 + v_N := 20; + f_EUTRA_RRC_Procedure_Latency(p_PCellId, + cas_SRB1_RrcPdu_REQ(p_PCellId, + cs_TimingInfo(v_Timing.SFN.Number, v_Timing.Subframe.Number), + v_RRCConnectionReconfiguration), + -, + car_SRB1_RrcPdu_IND(p_PCellId, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def)), + -, + v_IsFDD, + v_N, + "Test Case 8.2.2.3.x Step 12", + v_UE_CategoryExtn);// + // Release DRX and Measurement config on Scell + //Configure for default grant + f_EUTRA_ConfigScellAsNormalCell(p_SCellId,tsc_NoCnfReq); + //@siclog "Step 13" siclog@ //Check if UE is in state RRC_Connected f_EUTRA_508Check_ConnectedState(p_PCellId); + + /////////////////////// // Postamble /////////////////////// @@ -306,7 +392,7 @@ module RRC_ConnReconfig_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.3.2 * @status APPROVED (LTE_A) - v_MeasObjectId_PCell + */ function f_TC_8_2_2_3_2_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / SCell addition/modification/release / Success / Inter-Band CA */ @@ -315,11 +401,11 @@ module RRC_ConnReconfig_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.3.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_3_3_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / SCell addition/modification/release / Success / Intra-band non-contiguous CA */ - f_TC_8_2_2_3_Common(eutra_Cell6, eutra_Cell10, CA_InterBand); + f_TC_8_2_2_3_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } /* @@ -379,11 +465,7 @@ module RRC_ConnReconfig_CA p_CA_Type, // CA Type v_UL_CA , // UL CA desired -, // C_RNTI default := tsc_C_RNTI_Def, - omit, // MeasGapConfig omit, no gap, - -, // Reconfig message omit - -, // DciUlInfo_Type default cs_DciInfo_CcchDcchDtchUL_Def, - -, // UL_GrantConfig_Type default := cs_UL_GrantConfig_Def, - -); // p_CnfFlag := tsc_NoCnfReq + omit); // MeasGapConfig omit, no gap, //@siclog "Step 3-4" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete @@ -396,10 +478,7 @@ module RRC_ConnReconfig_CA p_CA_Type,// CA Type v_UL_CA , // UL CA desired, -, // C_RNTI default := tsc_C_RNTI_Def, - omit, // MeasGapConfig omit, no gap, - -, // DciUlInfo_Type default cs_DciInfo_CcchDcchDtchUL_Def, - -, // UL_GrantConfig_Type default := cs_UL_GrantConfig_Def, - -); // p_CnfFlag := tsc_NoCnfReq + omit); // MeasGapConfig omit, no gap //* @verdict RRCConnectionReconfigurationComplete received on PCell f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.4 Step 4"); @@ -426,13 +505,14 @@ module RRC_ConnReconfig_CA { /* CA / RRC connection reconfiguration / SCell SI change / Success / Inter-Band CA */ f_TC_8_2_2_4_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } + /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.4.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_4_3_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / SCell SI change / Success / Intra-band non-contiguous CA */ - f_TC_8_2_2_4_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); + f_TC_8_2_2_4_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous);//@sic R5s150323 sic@ } /* @@ -486,17 +566,12 @@ module RRC_ConnReconfig_CA //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete f_EUTRA_508RRC_AddMod_1Scell(p_PCellId, - p_SCellId, - 1, //SCellIndex_r10 - p_CA_Type, // CA Type - false , // UL CA Not desired - -, // C_RNTI default := tsc_C_RNTI_Def, - omit, // MeasGapConfig omit, no gap, - -, // Reconfig message omit - -, // DciUlInfo_Type default cs_DciInfo_CcchDcchDtchUL_Def, - -, // UL_GrantConfig_Type default := cs_UL_GrantConfig_Def, - -); // p_CnfFlag := tsc_NoCnfReq - + p_SCellId, + 1, //SCellIndex_r10 + p_CA_Type, // CA Type + false , // UL CA Not desired + -, // C_RNTI default := tsc_C_RNTI_Def, + omit); // MeasGapConfig omit, no gap //* @verdict RRCConnectionReconfigurationComplete received on PCell f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.5 Step 2"); @@ -524,13 +599,14 @@ module RRC_ConnReconfig_CA { /* CA / RRC connection reconfiguration / SCell SI change / Success / Inter-Band CA */ f_TC_8_2_2_5_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } + /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.5.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_5_3_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / SCell SI change / Success / Intra-band non-Contiguous CA */ - f_TC_8_2_2_5_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_8_2_2_5_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } ///////////////////////////////////////////////////////////////////////////////////////// @@ -541,7 +617,7 @@ module RRC_ConnReconfig_CA * @param p_PCellId * @param p_SCellId * @param p_CA_Type - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_7_Common(EUTRA_CellId_Type p_PCellId, EUTRA_CellId_Type p_SCellId, @@ -552,7 +628,7 @@ module RRC_ConnReconfig_CA f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); - + //Set C-RNTI to be used in s-cell creation f_EUTRA_CellInfo_SetC_RNTI(p_SCellId, tsc_C_RNTI_Def); @@ -564,12 +640,10 @@ module RRC_ConnReconfig_CA f_EUTRA_Preamble(p_PCellId, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(p_PCellId); - f_EUTRA_SetCellPower(p_SCellId, -91);//Make S Cell on - + f_EUTRA_TestBody_Set(true); - //@siclog "Step 1 - 2" siclog@ // No SS configuration with Scell Time Alignment timer as Scell is not being activated. //Transmit RRCConnectionReconfiguration @@ -584,38 +658,31 @@ module RRC_ConnReconfig_CA -, //p_RRCConnectionReconfiguration -, //p_DciUlInfo_SCell -, //p_UL_GrantConfig_SCell - -, //p_CnfFlag -, //p_STAG_ToReleaseList {cs_STAG_ToAddMod_Def(tsc_STAG_ID1, infinity_)},// p_STAG_ToAddModList - cs_MAC_MainConfigSCell_Def(tsc_STAG_ID1)//p_MAC_MainConfigSCell_r11 - ); - + cs_MAC_MainConfigSCell_Def(tsc_STAG_ID1));//p_MAC_MainConfigSCell_r11 //* @verdict RRCConnectionReconfigurationComplete received f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.7 Step 2"); - - v_RRCConnectionReconfiguration := cs_RRCConnectionReconfiguration_StagParamModify(tsc_RRC_TI_Def, - -,//p_TimeAlignmentTimer - -, //STAG_ToReleaseList_r11 - {cs_STAG_ToAddMod_Def(tsc_STAG_ID1, infinity_)}// p_STAG_ToAddModList - ); - + v_RRCConnectionReconfiguration := cs_RRCConnectionReconfiguration_StagParamModify(tsc_RRC_TI_Def, + -,//p_TimeAlignmentTimer + -, //STAG_ToReleaseList_r11 + {cs_STAG_ToAddMod_Def(tsc_STAG_ID1, infinity_)});// p_STAG_ToAddModList //@siclog "Step 3 - 4" siclog@ // No SS configuration is being done as the Scell is not being activated. No need to configure SS with Scell Time Alignment timer. // Generic function f_EUTRA_508RRC_AddMod_1Scell usage may result in redundent SS configurations //Transmit RRCConnectionReconfiguration SRB.send(cas_SRB1_RrcPdu_REQ(p_PCellId, - cs_TimingInfo_Now, - v_RRCConnectionReconfiguration)); - + cs_TimingInfo_Now, + v_RRCConnectionReconfiguration)); + // receive RRCConnectionReconfigurationComplete SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, - cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.7 Step 4"); - + // RRCConnectionReconfigurationComplete received on Cell 3 f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.7 Step 4"); - //@siclog "Step 5 - 6" siclog@ //Transmit RRCConnectionReconfiguration @@ -623,19 +690,21 @@ module RRC_ConnReconfig_CA f_EUTRA_508RRC_Rel_1Scell(p_PCellId, p_SCellId, 1); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.7 Step 6"); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.2.7 Step 6"); //@siclog "Step 7" siclog@ //Check if UE is in state RRC_Connected f_EUTRA_508Check_ConnectedState(p_PCellId); - /////////////////////// - // Postamble - /////////////////////// + f_EUTRA_TestBody_Set(false); //Switch/power off UE f_EUTRA_Postamble(p_PCellId, E2_CONNECTED); } + /* + * @desc REFERENCE TS 36.523-1 clause 8.2.2.7.1 + * @status APPROVED (LTE_A) + */ function f_TC_8_2_2_7_1_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / sTAG addition/modification/release / Success / Intra-band Contiguous CA */ f_TC_8_2_2_7_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); @@ -643,7 +712,7 @@ module RRC_ConnReconfig_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.7.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_7_2_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / sTAG addition/modification/release / Success / Inter-Band CA */ @@ -652,11 +721,17 @@ module RRC_ConnReconfig_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.2.7.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_2_7_3_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / sTAG addition/modification/release / Success / Intra-band non-contiguous CA */ - f_TC_8_2_2_7_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_8_2_2_7_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150329 sic@ } + + + + + + } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_2/RRC_Handover_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_2/RRC_Handover_CA.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/LTE_A/8_2/RRC_Handover_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_2/RRC_Handover_CA.ttcn index e9b6df5..fece0c9 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_2/RRC_Handover_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_2/RRC_Handover_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 12:15:34 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12147 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 15:40:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14405 $ /******************************************************************************/ module RRC_Handover_CA { @@ -43,7 +43,7 @@ module RRC_Handover_CA import from EUTRA_RRC_Templates all; import from EUTRA_Timing all; - template (value) MeasObjectToRemoveList cs_MeasObjectToRemoveList_3Entry( MeasObjectId p_MeasObjectId, + template (value) MeasObjectToRemoveList cs_MeasObjectToRemoveList_3Entry(MeasObjectId p_MeasObjectId, MeasObjectId p_MeasObjectId2, MeasObjectId p_MeasObjectId3) := { @@ -74,7 +74,7 @@ module RRC_Handover_CA function fl_CheckSecondryBandSupportsF6() return boolean { //@sic R5-133081 sic@ - var Frequency_fList_CAInterBand_Type v_FreqInterCA := f_EUTRA_CA_InitFrequenciesInterBand ( px_ePrimaryFrequencyBand, px_eSecondaryFrequencyBand ); + var Frequency_fList_CAInterBand_Type v_FreqInterCA := f_EUTRA_CA_InitFrequenciesInterBand(px_ePrimaryFrequencyBand, px_eSecondaryFrequencyBand); var boolean v_F6_Supported := (v_FreqInterCA.f6.dl_CarrierFreq != tsc_DummyFrequency); return v_F6_Supported; @@ -97,7 +97,7 @@ module RRC_Handover_CA * @param p_SCellIdRel * @param p_SCellIndexRel * @param p_TargetCellId - * @param p_DrbConfigList (default value: cs_DrbConfigList_Def) + * @param p_DrbConfigList (default value: cs_DrbConfigList_DRB1) * @param p_C_RNTI (default value: tsc_C_RNTI_Def2) * @param p_MeasConfig (default value: omit) * @param p_DciUlInfo_TargetCell (default value: cs_DciInfo_CcchDcchDtchUL_Def) @@ -113,7 +113,7 @@ module RRC_Handover_CA EUTRA_CellId_Type p_SCellIdRel, //Scell to release SCellIndex_r10 p_SCellIndexRel, //Scell to release EUTRA_CellId_Type p_TargetCellId, - template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_Def, + template (value) RadioBearerList_Type p_DrbConfigList := cs_DrbConfigList_DRB1, C_RNTI p_C_RNTI := tsc_C_RNTI_Def2, template (omit) MeasConfig p_MeasConfig := omit, template (omit) DciUlInfo_Type p_DciUlInfo_TargetCell := cs_DciInfo_CcchDcchDtchUL_Def, @@ -137,7 +137,12 @@ module RRC_Handover_CA p_Dsr_TransMax, p_CarrierFreqEutra, p_AddAdditionalSpectrumEmission, - cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(omit, {p_SCellIndexRel} )); + cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(omit, {p_SCellIndexRel})); + //@sic R5s150447 sic@ + //Based on 36.331 cl. 5.3.1.1, release 11 or higher compliant UE may invalidate a handover message which reconfigures a critically extended field of elements to original version if such message doesn't include full configuration + v_RRCConnectionReconfiguration.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated.physicalConfigDedicated.cqi_ReportConfig := omit; + v_RRCConnectionReconfiguration.message_.c1.rrcConnectionReconfiguration.criticalExtensions.c1.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated.physicalConfigDedicated.cqi_ReportConfig_r10 := cs_CQI_ReportConfig_r10_DEFAULT; + f_EUTRA_508RRC_IntraLTE_HO_InterCell_Common(p_SourcePCellId, p_TargetCellId, v_RRCConnectionReconfiguration, @@ -225,12 +230,12 @@ module RRC_Handover_CA v_CellPowerList_AtT1 := { cs_CellPower(p_SCellId, -79) }; - if (p_CA_Type == CA_IntraBand) { /* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) { /* @sic R5-141113 R5s150037 sic@ */ v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144683 sic@ + /* if (p_PCellId == eutra_Cell6) //@sic R5s144683 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; } @@ -273,14 +278,7 @@ module RRC_Handover_CA p_SCellId, 1, //SCellIndex_r10 p_CA_Type, // CA Type - v_UL_CA , // UL CA desired, - -, // C_RNTI default := tsc_C_RNTI_Def, - -, // MeasGapConfig default cs_508_MeasGapConfig_GP1 - -, // Reconfig message omit - -, // DciUlInfo_Type default cs_DciInfo_CcchDcchDtchUL_Def, - -, // UL_GrantConfig_Type default := cs_UL_GrantConfig_Def, - -); // p_CnfFlag := tsc_NoCnfReq - + v_UL_CA); // UL CA desired //@siclog "Step 3-4" siclog@ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, @@ -291,7 +289,7 @@ module RRC_Handover_CA v_MeasObjectId, omit,//@sic R5s144683 sic@ v_MeasObjectId_PCell, - cs_ReportConfig_reportConfigEUTRA_eventA3( 0, true, 0, ms640, rsrp, both, 1, ms1024, r1)))); + cs_ReportConfig_reportConfigEUTRA_eventA3(0, true, 0, ms640, rsrp, both, 1, ms1024, r1)))); //@siclog "Step 5" siclog@ //Set cell power level according to T1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -324,14 +322,14 @@ module RRC_Handover_CA v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(v_DL_Bandwidth, v_UL_Bandwidth); v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_PCellId); v_RadioResourceConfigCommonSIB := v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon; - v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_SCellId);//@sic R5-150432 sic@ if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX); //@sic R5-133275 sic@ } else { //FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); - // TBD for 2TX + // Not Addressed for 2TX } if (v_UL_CA) { @@ -340,12 +338,8 @@ module RRC_Handover_CA } v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ + } v_SCellToAddMod := cs_SCellToAddMod_r10(1, v_PhysicalCellIdentity_Pcell, @@ -389,11 +383,11 @@ module RRC_Handover_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.17.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_17_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Success / PCell Change and SCell addition / Intra-band non-Contiguous CA - f_TC_8_2_4_17_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_8_2_4_17_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } /* @@ -431,12 +425,12 @@ module RRC_Handover_CA cs_CellPower(p_NeighCell, -79), cs_CellPower(p_SCellId, -85) }; - if (p_CA_Type == CA_IntraBand) { /* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) { /* @sic R5-141113 R5s150037 sic@ */ v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144680 sic@ + /* if (p_PCellId == eutra_Cell6) //@sic R5s144680 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; } @@ -445,7 +439,7 @@ module RRC_Handover_CA f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); //@sic R5-144655, R5-144681 sic@ // Only needed for the case of non contigious as cell 13 PLMN as per table 4.4.2-2 is PLMN 3 - f_EUTRA_CellInfo_SetPLMN_1Entry ( p_NeighCell, cs_HPLMN_Def );//Home PLMN + f_EUTRA_CellInfo_SetPLMN_1Entry(p_NeighCell, cs_HPLMN_Def);//Home PLMN f_EUTRA_CellInfo_SetTAC(p_NeighCell, oct2bit(tsc_TAC1)); //Set maximim cell powel level for intra freq cell to be used in creation f_EUTRA_CellInfo_InitMaxReferencePower(p_NeighCell, -79); @@ -488,7 +482,6 @@ module RRC_Handover_CA 1, //SCellIndex_r10 p_CA_Type, // CA Type v_UL_CA); - //@siclog "Step 3-4" siclog@ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, @@ -499,7 +492,7 @@ module RRC_Handover_CA v_MeasObjectId, omit,//@sic R5s144680 sic@ v_MeasObjectId_PCell, - cs_ReportConfig_reportConfigEUTRA_eventA3( 0, true, 0, ms2560, rsrp, both, 1, ms1024, r1)))); //@sic R5-140756 sic@ + cs_ReportConfig_reportConfigEUTRA_eventA3(0, true, 0, ms2560, rsrp, both, 1, ms1024, r1)))); //@sic R5-140756 sic@ //@siclog "Step 5" siclog@ //Set cell power level according to T1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -561,16 +554,15 @@ module RRC_Handover_CA f_TC_8_2_4_18_Common(eutra_Cell1,eutra_Cell2, eutra_Cell10, CA_InterBand); } - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.18.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_18_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Success / SCell release / Intra-Band non-contagious CA - f_TC_8_2_4_18_Common(eutra_Cell6,eutra_Cell13, eutra_Cell13, CA_InterBand); + f_TC_8_2_4_18_Common(eutra_Cell1,eutra_Cell2, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150329 R5s150215 sic@ } - /* * @desc Common function: REFERENCE TS 36.523-1 clause 8.2.4.19.1/2 * @param p_PCellId @@ -608,7 +600,7 @@ module RRC_Handover_CA v_CellPowerList_AtT1 := { cs_CellPower(p_PCellId2, -79) }; - if (p_CA_Type == CA_IntraBand) { /* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) { /* @sic R5-141113 R5s150037 sic@ */ v_MeasObjectId := tsc_IdMeasObject_f1; v_MeasObjectId2 := tsc_IdMeasObject_f3; } else { @@ -660,13 +652,7 @@ module RRC_Handover_CA p_SCellId, 1, //SCellIndex_r10 p_CA_Type, // CA Type - v_UL_CA , // UL CA desired, - -, // C_RNTI default := tsc_C_RNTI_Def, - -, // MeasGapConfig default cs_508_MeasGapConfig_GP1 - -, // Reconfig message omit - -, // DciUlInfo_Type default cs_DciInfo_CcchDcchDtchUL_Def, - -, // UL_GrantConfig_Type default := cs_UL_GrantConfig_Def, - -); // p_CnfFlag := tsc_NoCnfReq + v_UL_CA); // UL CA desired //@siclog "Step 3-4" siclog@ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, @@ -739,14 +725,11 @@ module RRC_Handover_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.19.3 - * @status + * @status APPROVED (LTE_A) */ - // The prose configures cell 1, cell 10 and cell 6, with cell 1 and cell 10 [inter band cells] in CA, which does not meat the test purpose. - // The test case needs 4 frequencies in a band to acvieve the test purpose and currently only 3 frequencies are defined. - // Test case is not ready for validation. function f_TC_8_2_4_19_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Success / PCell Change / SCell no Change / Intra-band non-Contiguous CA - f_TC_8_2_4_19_Common(eutra_Cell1, eutra_Cell10, eutra_Cell6, CA_IntraBand); + f_TC_8_2_4_19_Common(eutra_Cell3, eutra_Cell1, eutra_Cell6, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } /* @@ -793,6 +776,7 @@ module RRC_Handover_CA var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency; var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB; var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type; + var boolean v_FeatrGrp_111 ; //@sic R5-150557 sic@ var default v_DefaultRef; @@ -805,20 +789,20 @@ module RRC_Handover_CA cs_CellPower(p_PCellId2, -79) }; - if (p_CA_Type == CA_IntraBand) { /* @sic R5-141113 R5s140258 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) { /* @sic R5-141113 R5s140258 R5s150037 sic@ */ v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144680 sic@ + /* if (p_PCellId == eutra_Cell6) //@sic R5s144680 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; } f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId, p_PCellId2}, p_CA_Type, c3); //@sic R5-144655, R5-144656 sic@ - f_EUTRA_CellInfo_SetPLMN_1Entry ( p_PCellId2, cs_HPLMN_Def );//Home PLMN - f_EUTRA_CellInfo_SetTAC(p_PCellId, oct2bit(tsc_TAC1)); + f_EUTRA_CellInfo_SetPLMN_1Entry(p_PCellId2, cs_HPLMN_Def);//Home PLMN + f_EUTRA_CellInfo_SetTAC(p_PCellId2, oct2bit(tsc_TAC2)); //Get cell dependant parameters v_PhysicalCellIdentity_Pcell := f_EUTRA_CellInfo_GetPhyCellId(p_PCellId); @@ -867,17 +851,22 @@ module RRC_Handover_CA p_SCellId, 1, //SCellIndex_r10 p_CA_Type, // CA Type - v_UL_CA , // UL CA desired, - -, // C_RNTI default := tsc_C_RNTI_Def, - -, // MeasGapConfig default cs_508_MeasGapConfig_GP1 - -, // Reconfig message omit - -, // DciUlInfo_Type default cs_DciInfo_CcchDcchDtchUL_Def, - -, // UL_GrantConfig_Type default := cs_UL_GrantConfig_Def, - -); // p_CnfFlag := tsc_NoCnfReq - - //@siclog "Step 4-5" siclog@ - if (pc_FeatrGrp_111) // EXCEPTION: If UE does not support FGI bit 111, i.e. Event A6, the following step 4 to step 7 except step 6 should not be executed - { + v_UL_CA); // UL CA desired + + v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_SCellId); //@sic R5-150432 R5-150557 sic@ + if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in + v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD + v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX); //@sic R5-133275 sic@ + v_FeatrGrp_111 := pc_FeatrGrp_111_T;//@sic R5-150577 sic@ + } + else { //FDD + v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); + // Not Addressed for 2TX + v_FeatrGrp_111 := pc_FeatrGrp_111_F;//@sic R5-150577 sic@ + } + //@siclog "Step 4-5" siclog@ + if (v_FeatrGrp_111) // EXCEPTION: If UE does not support FGI bit 111, i.e. Event A6, the following step 4 to step 7 except step 6 should not be executed + {//@sic R5-150577 sic@ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, @@ -895,8 +884,8 @@ module RRC_Handover_CA //@siclog "Step 7" siclog@ //Receive MeasurementReport - if (pc_FeatrGrp_111) // EXCEPTION: If UE does not support FGI bit 111, i.e. Event A6, the following step 4 to step 7 except step 6 should not be executed - { + if (v_FeatrGrp_111) // EXCEPTION: If UE does not support FGI bit 111, i.e. Event A6, the following step 4 to step 7 except step 6 should not be executed + {//@sic R5-150577 sic@ SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(1, //Meas id ?, //RSRP result @@ -927,15 +916,8 @@ module RRC_Handover_CA v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(v_DL_Bandwidth, v_UL_Bandwidth); v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_PCellId); v_RadioResourceConfigCommonSIB := v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon; - v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in - v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD - v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX, cs_N1PUCCH_AN_CS_r10_FDD_2TX); //@sic R5-133275 sic@ - } - else { //FDD - v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); - // TBD for 2TX - } + + if (v_UL_CA) { if (p_CA_Type == CA_InterBand) { // 36.508 Table 4.8.2.1.6-1 @@ -943,12 +925,8 @@ module RRC_Handover_CA } v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ + } v_SCellToAddMod := cs_SCellToAddMod_r10(1, v_PhysicalCellIdentity_Pcell, @@ -958,7 +936,7 @@ module RRC_Handover_CA //@siclog "Step 8 - 9" siclog@ f_EUTRA_508RRC_IntraLTE_CA_HO_InterCell(p_PCellId, p_SCellId,p_PCellId2, p_PCellId,{v_SCellToAddMod}, {1}, v_UL_CA); - if (pc_FeatrGrp_111) + if (v_FeatrGrp_111) //@sic R5-150577 sic@ { deactivate(v_DefaultRef); @@ -992,14 +970,15 @@ module RRC_Handover_CA { // CA / RRC connection reconfiguration / Handover / Success / SCell Change/ Inter-Band CA f_TC_8_2_4_20_Common(eutra_Cell1, eutra_Cell10,eutra_Cell30, CA_InterBand); //@sic R5s130784 sic@ } - /* + + /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.20.3 - * @status + * @status APPROVED (LTE_A) */ - // Prose needs correction for cell Identies function f_TC_8_2_4_20_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Success / SCell Change / Intra-band non-contiguous CA - f_TC_8_2_4_20_Common(eutra_Cell6, eutra_Cell3, eutra_Cell12, CA_IntraBand); + // Prose needs correction for cell Identies + f_TC_8_2_4_20_Common(eutra_Cell1, eutra_Cell3, eutra_Cell12, CA_IntraBandNonContiguous); //@sic R5s150329 sic@ } @@ -1042,14 +1021,14 @@ module RRC_Handover_CA cs_CellPower(p_NeighCell, -79), cs_CellPower(p_SCellId, -85) }; - if (p_CA_Type == CA_IntraBand) {/* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) {/* @sic R5-141113 R5s150037 sic@ */ v_MeasObjectId2 := tsc_IdMeasObject_f2; v_MeasObjectId3 := tsc_IdMeasObject_f3; - if (p_PCellId == eutra_Cell6) //@sic R5s144517 sic@ + /*if (p_PCellId == eutra_Cell6) //@sic R5s144517 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; v_MeasObjectId3 := tsc_IdMeasObject_f1; - } + } */ } else { v_MeasObjectId2 := tsc_IdMeasObject_f5; v_MeasObjectId3 := tsc_IdMeasObject_f6; @@ -1057,7 +1036,7 @@ module RRC_Handover_CA f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); - f_EUTRA_CellInfo_SetPLMN_1Entry ( p_NeighCell, cs_HPLMN_Def ); //@sic R5s130731 sic@ + f_EUTRA_CellInfo_SetPLMN_1Entry(p_NeighCell, cs_HPLMN_Def); //@sic R5s130731 sic@ f_EUTRA_CellInfo_SetTAC(p_NeighCell, oct2bit(tsc_TAC1)); //Set maximim cell powel level for intra freq cell to be used in creation f_EUTRA_CellInfo_InitMaxReferencePower(p_NeighCell, -79); @@ -1144,7 +1123,7 @@ module RRC_Handover_CA f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.4.18 or 8.2.4.21 Step 6"); //@siclog "Step 7-8" siclog@ - f_EUTRA_508RRC_IntraLTE_CA_HO_ToNormalInterCell(p_PCellId, p_SCellId, 1, p_NeighCell,-,-,cs_MeasRelease_82421_step7 ); + f_EUTRA_508RRC_IntraLTE_CA_HO_ToNormalInterCell(p_PCellId, p_SCellId, 1, p_NeighCell,-,-,cs_MeasRelease_82421_step7); deactivate(v_DefaultRef); @@ -1185,22 +1164,22 @@ module RRC_Handover_CA f_TC_8_2_4_21_Common(eutra_Cell1, v_Cell3, eutra_Cell10, CA_InterBand); } - /* + /* + * * @desc REFERENCE TS 36.523-1 clause 8.2.4.21.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_21_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Success / SCell release / Intra-band non-contiguous CA - f_TC_8_2_4_21_Common(eutra_Cell6, eutra_Cell1, eutra_Cell3, CA_IntraBand); + f_TC_8_2_4_21_Common(eutra_Cell1, eutra_Cell6, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } - - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.23.1/2/3 * @param p_PCellId * @param p_SCellId * @param p_CA_Type - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_23_Common(EUTRA_CellId_Type p_PCellId, EUTRA_CellId_Type p_SCellId, @@ -1222,16 +1201,13 @@ module RRC_Handover_CA var CarrierFreqEUTRA v_CarrierFreq_Scell; var MeasObjectId v_MeasObjectId; var MeasObjectId v_MeasObjectId_PCell :=tsc_IdMeasObject_f1 ; - var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo_Scell; + //var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo_Scell; var EUTRA_SecurityParams_Type v_Auth_Params; var ShortMAC_I v_ShortMAC_I; - var float v_T304Max; - //var default v_DefaultRef; + var float v_T304Max, v_T304Min;//@sic R5s141245 sic@ var NextHopChainingCount v_Ncc0 := 0; - var NextHopChainingCount v_Ncc2 := 2; var Ra_PreambleIndex_Type v_Ra_PreambleIndex := 63; - timer t_T304Max; - + timer t_T304; v_CellPowerList_AtT0 := { cs_CellPower(p_SCellId, -91) @@ -1246,12 +1222,12 @@ module RRC_Handover_CA v_CellPowerList_AtT4 := { cs_CellPower(p_PCellId, tsc_NonSuitableOffCellRS_EPRE) }; - if (p_CA_Type == CA_IntraBand) {/* @sic R5-141113 sic@ */ + + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) {/* @sic R5-141113 R5s150037 sic@ */ v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144517 sic@ - { - v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + /* if (p_PCellId == eutra_Cell6) { //@sic R5s144517 sic@ + v_MeasObjectId_PCell := tsc_IdMeasObject_f3; + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; } @@ -1264,7 +1240,6 @@ module RRC_Handover_CA f_EUTRA_CellInfo_SetPreambleTransMax(p_PCellId, n50); f_EUTRA_CellInfo_SetPreambleTransMax(p_SCellId, n50); - //Get cell dependant parameters v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_PhysicalCellIdentity_Pcell := f_EUTRA_CellInfo_GetPhyCellId(p_PCellId); @@ -1275,21 +1250,22 @@ module RRC_Handover_CA v_Frequency_IE_PCell := f_EUTRA_CellInfo_GetFrequencyIEs(p_PCellId); v_ChBandDependency_PCell := f_EUTRA_BandDependentParam(v_Frequency_IE_PCell.DL_ChBandwidth, v_Frequency_IE_PCell.UL_ChBandwidth); - + v_CarrierFreq_Scell := f_EUTRA_CellInfo_GetEARFCN(p_SCellId); //Get FDD or TDD mode for Cell 1 - v_EUTRA_FDD_TDD_CellInfo_Scell := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_SCellId); + //v_EUTRA_FDD_TDD_CellInfo_Scell := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_SCellId); //Set C-RNTI to be used in s-cell creation f_EUTRA_CellInfo_SetC_RNTI(p_SCellId, tsc_C_RNTI_Def); v_T304Max := f_EUTRA_SetTimerToleranceMax (p_PCellId, rrcTimer, 1.0); + v_T304Min := f_EUTRA_SetTimerToleranceMin (p_PCellId, rrcTimer, 1.0); //Create and configure all cells f_EUTRA_CellConfig_Pcell_Def(p_PCellId); f_EUTRA_CellConfig_Scell(p_SCellId); //No DRB's created - + // ring UE to initial state f_EUTRA_Preamble(p_PCellId, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(p_PCellId); - + //Set cell power level according to T0 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); @@ -1303,9 +1279,7 @@ module RRC_Handover_CA 1, //SCellIndex_r10 p_CA_Type, // CA Type v_UL_CA); - - - //@siclog "Step 3-4" siclog@ + //@siclog "Step 3-4" siclog@ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(p_PCellId, cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, cs_Measurement_Config_A3_InterFreq_CA(v_Frequency_IE_PCell.UL_DL_Earfcn.dl_CarrierFreq, @@ -1316,11 +1290,11 @@ module RRC_Handover_CA -, // Gap omitted as measurement of scell does not need gaps v_MeasObjectId_PCell, cs_ReportConfigEUTRA_A3_82423))); - //@siclog "Step 5" siclog@ - //Set cell power level according to T1 + //@siclog "Step 5" siclog@ + //Set cell power level according to T1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - //@siclog "Step 6" siclog@ + //@siclog "Step 6" siclog@ //Receive MeasurementReport SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(1, //Meas id ?, //RSRP result @@ -1328,73 +1302,75 @@ module RRC_Handover_CA cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysicalCellIdentity_Scell, omit, //CGI info ?, //RSRP result - ?))));//RSRQ result - // Preconfig target cell for no RACH response - f_EUTRA_SS_ConfigRachProcedure (p_SCellId, - omit, - cs_RachProcedureConfig_NoResponse (f_EUTRA_CellInfo_GetDL_ChBandwidth (p_SCellId))); - - //@siclog "Step 7" siclog@ + ?), //RSRQ result + cr_MeasResultServFreqList(1, ?, ?)))); //@sic R5s141245 sic@ + // Preconfig target cell for no RACH response + //@sic R5s141245 sic@ + f_EUTRA_SS_ConfigRachProcedure(p_SCellId, //@sic R5s150188 sic@ + omit, + cs_RachProcedureConfig_NoResponse (f_EUTRA_CellInfo_GetDL_ChBandwidth (p_SCellId))); + //@siclog "Step 7" siclog@ //Send RRCConnectionReconfiguration to order UE to perform inter freq. HO to S-Cell - f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility ( p_PCellId, - p_SCellId, - f_Generate_cs_MobilityControlInfo_HO_RACH ( p_SCellId, - omit, - cs_RACH_ConfigDedicated (v_Ra_PreambleIndex))); - - t_T304Max.start(v_T304Max); - + f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility(p_PCellId, + p_SCellId, + f_Generate_cs_MobilityControlInfo_HO_RACH(p_SCellId, + v_CarrierFreq_Scell, //@sic R5s141245 sic@ + cs_RACH_ConfigDedicated (v_Ra_PreambleIndex)), + -, //@sic R5s141319 sic@ + cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(omit, {1})); + + t_T304.start(v_T304Min); //@sic R5s141245 sic@ + //Reset SRBs and DRBs of source cell ( P cell ) - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync ( p_PCellId, 100 ); /* stop default UL grant transmission, stop transmission of TA commands & - reset SRBs and DRB1 after 100ms. note: it does not matter when exactly the SRBs are reset as long as it is not less than 100ms */ + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(p_PCellId); /* stop default UL grant transmission, stop transmission of TA commands & + reset SRBs and DRB1 after 100ms. note: it does not matter when exactly the SRBs are reset as long as it is not less than 100ms */ f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ServingCellRelease_REQ(p_PCellId, cs_TimingInfo_Now)); - f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ServingCellRelease_REQ(p_SCellId, cs_TimingInfo_Now)); + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ServingCellRelease_REQ(p_SCellId, cs_TimingInfo_Now)); //@siclog "Step 8" siclog@ //Set cell power level according to T2 - f_EUTRA_SetCellPowerList ( v_CellPowerList_AtT2 ); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 7 - v_ShortMAC_I := f_Calculate_ShortMAC ( p_PCellId, p_PCellId ); + v_ShortMAC_I := f_Calculate_ShortMAC(p_PCellId, p_PCellId); //Wait T304 + tolerance to fail "Criterion for successful completion of handover" - t_T304Max.timeout; - - //Configure Cell 4 for normal PRACH operation - //f_EUTRA_SS_ConfigRachProcedure_Def(p_PCellId, tsc_C_RNTI_Def); - + t_T304.timeout; //@sic R5s141245 sic@ + + //Configure PCell for normal PRACH operation + f_EUTRA_SS_ConfigRachProcedure_Def(p_PCellId, tsc_C_RNTI_Def); + //@siclog "Step 9" siclog@ //Receive RRCConnectionReestablishmentRequest on Cell 4 - SRB.receive ( car_SRB0_RrcPdu_IND ( p_PCellId, - cr_508_RRCConnectionReestablishmentRequest ( tsc_C_RNTI_Def, - v_PhysicalCellIdentity_Pcell, - cr_ReestablishmentCause_HandoverFailure, - v_ShortMAC_I ) ) ); + SRB.receive(car_SRB0_RrcPdu_IND(p_PCellId, + cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, + v_PhysicalCellIdentity_Pcell, + cr_ReestablishmentCause_HandoverFailure, + v_ShortMAC_I))); //@verdict RRCConnectionReestablishmentRequest received on P Cell - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.2.4.23 Step 9"); - + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.4.23 Step 9"); //Activate RRC security at SS[SRB 1,2 and DRB 1] - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest ( p_PCellId, f_EUTRA_Security_Get ( ), v_Ncc0 ); - f_EUTRA_Security_Set ( v_Auth_Params ); - + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(p_PCellId, f_EUTRA_Security_Get(), v_Ncc0); + f_EUTRA_Security_Set(v_Auth_Params); + //@siclog "Step 10" siclog@ //Transmit RRConnectionReestablishment to resume SRB1 and re-activate security - f_EUTRA_RRC_RRCConnectionReestablishment_Def ( p_PCellId, v_RRC_TI, v_Ncc0 ); + f_EUTRA_RRC_RRCConnectionReestablishment_Def(p_PCellId, v_RRC_TI, v_Ncc0); //@siclog "Step 11" siclog@ //Receive RRCConnectionReestablishmentComplete - SRB.receive ( car_SRB1_RrcPdu_IND ( p_PCellId, cr_508_RRCConnectionReestablishmentComplete( v_RRC_TI ) ) ); + SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_508_RRCConnectionReestablishmentComplete(v_RRC_TI))); //SS automatically checks that UE transmit the RRCConnectionReestablishmentComplete using the security key derived from the currently active KeNB //* @verdict RRCConnectionReestablishmentComplete received on P Cell - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.2.4.23 Step 11"); - + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.4.23 Step 11"); + //@siclog "Step 12 - 13" siclog@ //RRCConnectionReconfiguration to resume SRB2 and existing DRBs and //Transmit RRCConnectionReconfiguration to add Scell //Receive RRCConnectionReconfigurationComplete - //f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs ( p_PCellId, v_RRC_TI ); + //f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs(p_PCellId, v_RRC_TI); f_EUTRA_508RRC_AddMod_1Scell(p_PCellId, p_SCellId, 1, //SCellIndex_r10 @@ -1411,11 +1387,11 @@ module RRC_Handover_CA -, // Gap omitted as measurement of scell does not need gaps v_MeasObjectId_PCell, cs_ReportConfigEUTRA_A3_82423))); - //@siclog "Step 16" siclog@ - //Set cell power level according to T3 + //@siclog "Step 16" siclog@ + //Set cell power level according to T3 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); - //@siclog "Step 17" siclog@ + //@siclog "Step 17" siclog@ //Receive MeasurementReport SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(1, //Meas id ?, //RSRP result @@ -1423,131 +1399,123 @@ module RRC_Handover_CA cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysicalCellIdentity_Scell, omit, //CGI info ?, //RSRP result - ?))));//RSRQ result - // Preconfig source cell for no RACH response - f_EUTRA_SS_ConfigRachProcedure (p_SCellId, - omit, - cs_RachProcedureConfig_NoResponse (f_EUTRA_CellInfo_GetDL_ChBandwidth (p_PCellId))); - - //@siclog "Step 18" siclog@ + ?),//RSRQ result + cr_MeasResultServFreqList(1, ?, ?))));//@sic R5s141245 sic@ + // Preconfig cell for no RACH response + f_EUTRA_SS_ConfigRachProcedure(p_SCellId, + omit, + cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellId))); + + //@siclog "Step 18" siclog@ //Send RRCConnectionReconfiguration to order UE to perform inter freq. HO to S-Cell - f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility ( p_PCellId, - p_SCellId, - f_Generate_cs_MobilityControlInfo_HO_RACH ( p_SCellId, - omit, - cs_RACH_ConfigDedicated (v_Ra_PreambleIndex))); - - t_T304Max.start(v_T304Max); - + f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility(p_PCellId, + p_SCellId, + f_Generate_cs_MobilityControlInfo_HO_RACH(p_SCellId, + v_CarrierFreq_Scell, + cs_RACH_ConfigDedicated(v_Ra_PreambleIndex)), + -, //@sic R5s141319 sic@ + cs_RRCConnectionReconfiguration_SCell_AddMod_IEs(omit, {1})); + + t_T304.start(v_T304Max); //@sic R5s141245 sic@ + //Reset SRBs and DRBs of source cell ( P cell ) - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync ( p_PCellId, 100 ); /* stop default UL grant transmission, stop transmission of TA commands & - reset SRBs and DRB1 after 100ms. note: it does not matter when exactly the SRBs are reset as long as it is not less than 100ms */ + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(p_PCellId); /* stop default UL grant transmission, stop transmission of TA commands & + reset SRBs and DRB1 after 100ms. note: it does not matter when exactly the SRBs are reset as long as it is not less than 100ms */ f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ServingCellRelease_REQ(p_PCellId, cs_TimingInfo_Now)); - f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ServingCellRelease_REQ(p_SCellId, cs_TimingInfo_Now)); + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ServingCellRelease_REQ(p_SCellId, cs_TimingInfo_Now)); // Prepeare scell with previously no SRB/DRB configured to SRB/DRB configured f_EUTRA_CellConfig_ScellToPcell_Def(p_SCellId, cs_TimingInfo_Now); //@siclog "Step 19" siclog@ //Set cell power level according to T2 - f_EUTRA_SetCellPowerList ( v_CellPowerList_AtT4 ); + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT4); //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 20 - v_ShortMAC_I := f_Calculate_ShortMAC ( p_PCellId, p_SCellId ); + v_ShortMAC_I := f_Calculate_ShortMAC(p_PCellId, p_SCellId); //Wait T304 + tolerance to fail "Criterion for successful completion of handover" - t_T304Max.timeout; - - // Preconfigure target cell for normal RACH operation - f_EUTRA_SS_ConfigRachProcedure_Def(p_SCellId, tsc_C_RNTI_Def); - + t_T304.timeout; //@sic R5s141245 sic@ + + // Preconfigure target cell for normal RACH operation + f_EUTRA_SS_ConfigRachProcedure_Def(p_SCellId, tsc_C_RNTI_Def); + //@siclog "Step 20" siclog@ //Receive RRCConnectionReestablishmentRequest on Cell 4 - SRB.receive ( car_SRB0_RrcPdu_IND ( p_SCellId, - cr_508_RRCConnectionReestablishmentRequest ( tsc_C_RNTI_Def, - v_PhysicalCellIdentity_Pcell, - cr_ReestablishmentCause_HandoverFailure, - v_ShortMAC_I ) ) ); + SRB.receive(car_SRB0_RrcPdu_IND(p_SCellId, + cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, + v_PhysicalCellIdentity_Pcell, + cr_ReestablishmentCause_HandoverFailure, + v_ShortMAC_I))); //@verdict RRCConnectionReestablishmentRequest received on P Cell f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.2.4.23 Step 20"); - //Activate RRC security at SS[SRB 1,2 and DRB 1] - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest ( p_SCellId, f_EUTRA_Security_Get ( ), v_Ncc2 ); - f_EUTRA_Security_Set ( v_Auth_Params ); - + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(p_SCellId, f_EUTRA_Security_Get(), v_Ncc0);//@sic R5s141245 sic@ + f_EUTRA_Security_Set(v_Auth_Params); + //@siclog "Step 21" siclog@ //Transmit RRConnectionReestablishment to resume SRB1 and re-activate security - f_EUTRA_RRC_RRCConnectionReestablishment_Def ( p_SCellId, v_RRC_TI, v_Ncc2 ); - + f_EUTRA_RRC_RRCConnectionReestablishment_Def(p_SCellId, v_RRC_TI, v_Ncc0); //@sic R5s141245 sic@ + //@siclog "Step 22" siclog@ //Receive RRCConnectionReestablishmentComplete - SRB.receive ( car_SRB1_RrcPdu_IND ( p_SCellId, cr_508_RRCConnectionReestablishmentComplete( v_RRC_TI ) ) ); + SRB.receive(car_SRB1_RrcPdu_IND(p_SCellId, cr_508_RRCConnectionReestablishmentComplete(v_RRC_TI))); //SS automatically checks that UE transmit the RRCConnectionReestablishmentComplete using the security key derived from the currently active KeNB //* @verdict RRCConnectionReestablishmentComplete received on P Cell - f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.2.4.23 Step 22"); - + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.4.23 Step 22"); + //@siclog "Step 23-24" siclog@ // resume existing radio bearer on s Cell - f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs ( p_SCellId, v_RRC_TI ); - - /////////////////////// - // Postamble - ///////// + f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs(p_SCellId, v_RRC_TI); + f_EUTRA_TestBody_Set(false); //Switch/power off UE f_EUTRA_Postamble(p_SCellId, E2_CONNECTED); - - }; - - /* + } + + /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.23.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_23_1_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Failure / Re-establishment successful / Intra-band Contiguous CA - f_TC_8_2_4_23_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); + f_TC_8_2_4_23_Common(eutra_Cell1, eutra_Cell3, CA_IntraBand); } /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.23.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_23_2_EUTRA() runs on EUTRA_PTC - { /*CA / RRC connection reconfiguration / Handover / Failure / Re-establishment successful / Inter-Band CA */ - - f_TC_8_2_4_23_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); + { /* CA / RRC connection reconfiguration / Handover / Failure / Re-establishment successful / Inter-Band CA */ + f_TC_8_2_4_23_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.23.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_23_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover / Failure / Re-establishment successful / Intra-band non-contiguous CA - f_TC_8_2_4_23_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_8_2_4_23_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } - - - /* + + /* * @desc Common function : REFERENCE TS 36.523-1 clause 8.2.4.16.x * @param p_PCellId * @param p_SCellId * @param p_CA_Type - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_16_Common(EUTRA_CellId_Type p_PCellId, - EUTRA_CellId_Type p_SCellId, - CA_Tested_Type p_CA_Type) runs on EUTRA_PTC + EUTRA_CellId_Type p_SCellId, + CA_Tested_Type p_CA_Type) runs on EUTRA_PTC { var PhysCellId v_PhysicalCellIdentity_Scell; - //var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var Frequency_IE_Type v_Frequency_IE_PCell; var Frequency_IE_Type v_Frequency_IE_Scell; var ChannelBandwidthDependency_Type v_ChBandDependency_PCell; var ChannelBandwidthDependency_Type v_ChBandDependency_Scell; - //var template (value) CellPowerList_Type v_CellPowerList_AtT0; - //var template (value) CellPowerList_Type v_CellPowerList_AtT1; - //var template (value) CellPowerList_Type v_CellPowerList_AtT2; var boolean v_UL_CA := pc_UL_CA; var template (value) DL_DCCH_Message v_RRCConnectionReconfiguration; var integer v_Arfcn_SCell; @@ -1556,28 +1524,28 @@ module RRC_Handover_CA var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo; var template(omit) TDD_Config v_TDD_Config := omit; // omitted in FDD var CarrierFreqEUTRA v_CarrierFreq_Scell; - //var ChannelBandwidthDependency_Type v_ChannelBandwidthDependency := f_EUTRA_BandDependentParam(v_DL_Bandwidth, v_UL_Bandwidth); - var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_SCellId); - var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB := v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon; + var EUTRA_CellSysInfo_Type v_EUTRA_CellSysInfo_Type ; + var RadioResourceConfigCommonSIB v_RadioResourceConfigCommonSIB ; var template (value) PUCCH_ConfigDedicated_v1020 v_PUCCH_ConfigDedicated; var template (omit) AdditionalSpectrumEmissionCA_r10_Type v_AdditionalSpectrumEmissionCA_r10 := omit; var template (omit) CommonSCell_UL_Configuration_Type v_CommonSCell_UL_Configuration := omit; var template (value) Scell_Capability_Type v_Scell_Capability := DlOnly; - f_EUTRA_Init(c3); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type, c3); - f_EUTRA_CellInfo_SetMIMO_2TX(p_PCellId); - f_EUTRA_CellInfo_SetMIMO_2TX(p_SCellId); - + //@sic R5-150657 sic@ + f_EUTRA_CellInfo_SetMIMO_2TX(p_PCellId, cs_AntennaInfoDedicated_2TX_TM2, cs_PhysicalConfigDedicated_AntennaInfo_2TX_TM2); // TM2 + f_EUTRA_CellInfo_SetMIMO_2TX(p_SCellId); //TM3 + v_EUTRA_CellSysInfo_Type := f_EUTRA_CellInfo_GetSYSINFO(p_SCellId); + v_RadioResourceConfigCommonSIB := v_EUTRA_CellSysInfo_Type.BCCH_Info.SIs[0].message_.c1.systemInformation.criticalExtensions.systemInformation_r8.sib_TypeAndInfo[0].sib2.radioResourceConfigCommon; //Get cell dependant parameters v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_Frequency_IE_Scell := f_EUTRA_CellInfo_GetFrequencyIEs(p_SCellId); v_ChBandDependency_Scell := f_EUTRA_BandDependentParam(v_Frequency_IE_Scell.DL_ChBandwidth, - v_Frequency_IE_Scell.UL_ChBandwidth); + v_Frequency_IE_Scell.UL_ChBandwidth); v_Frequency_IE_PCell := f_EUTRA_CellInfo_GetFrequencyIEs(p_PCellId); v_ChBandDependency_PCell := f_EUTRA_BandDependentParam(v_Frequency_IE_PCell.DL_ChBandwidth, - v_Frequency_IE_PCell.UL_ChBandwidth); + v_Frequency_IE_PCell.UL_ChBandwidth); v_CarrierFreq_Scell := f_EUTRA_CellInfo_GetEARFCN(p_SCellId); //Set C-RNTI to be used in s-cell creation @@ -1586,77 +1554,72 @@ module RRC_Handover_CA //Create and configure all cells f_EUTRA_CellConfig_Pcell_Def(p_PCellId); f_EUTRA_CellConfig_Scell(p_SCellId); //No DRB's created - + // bring UE to initial state f_EUTRA_Preamble(p_PCellId, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(p_PCellId); - - - f_EUTRA_TestBody_Set(true); //@siclog "step 1" siclog@ - f_EUTRA_SetCellPower(p_SCellId, -91);//Make S Cell on - + f_EUTRA_SetCellPower(p_SCellId, -91);//Make S Cell on + v_Arfcn_SCell := f_EUTRA_CellInfo_GetEARFCN_DL(p_SCellId); v_PhysicalCellIdentity_Scell := f_EUTRA_CellInfo_GetPhyCellId(p_SCellId); v_SCell_DL_Bandwidth := f_EUTRA_CellInfo_GetSCell_DL_ChBandwidth(p_SCellId); v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_SCellId); if (v_FDD_TDDInfo.FDD_TDD == TDD) { // initialise tdd-Configuration to be used in v_TDD_Config := cs_TDD_ConfigDef(v_FDD_TDDInfo.TDD_SubframeAssignment); // Value omitted in FDD - } + } // Both FDD and TDD as 2 TX v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_2TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX,cs_N1PUCCH_AN_CS_r10_FDD_2TX); - if (v_UL_CA) { - v_Scell_Capability := UL_DL; + v_Scell_Capability := UL_DL; if (p_CA_Type == CA_InterBand) { // 36.508 Table 4.8.2.1.6-1 v_AdditionalSpectrumEmissionCA_r10 := cs_AdditionalSpectrumEmissionCA_r10_Def; } - v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChBandDependency_Scell.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); - if (v_FDD_TDDInfo.FDD_TDD == TDD) - { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); - } - else - { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); - } - + v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChBandDependency_Scell.Pusch_HoppingOffset, v_RadioResourceConfigCommonSIB.soundingRS_UL_ConfigCommon); + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ + } v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_AddModRelease(tsc_RRC_TI_Def, - cs_SCellToMod_r10(1,cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration, cds_AntennaInfoDedicated_TM2_r10))), + cs_SCellToAddMod_r10(1, //@sic R5s150263 sic@ + v_PhysicalCellIdentity_Scell, + v_Arfcn_SCell, + cs_508_RadioResourceConfigCommonSCell_r10_DEFAULT(v_SCell_DL_Bandwidth, tsc_P_b_1Tx,v_CommonSCell_UL_Configuration,v_TDD_Config, -,omit,omit), + cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration, cds_AntennaInfoDedicated_TM2_r10))), + v_PUCCH_ConfigDedicated, -, -, v_AdditionalSpectrumEmissionCA_r10, - cs_MeasConfig(omit,omit,omit,omit,omit,omit,omit,cs_MeasGapConfig_release),//release GAP @sic R5s140010 R5s140205 sic@ + cs_MeasConfig(omit, omit, omit, omit, omit, omit, omit, cs_MeasGapConfig_release), //release GAP @sic R5s140010 R5s140205 sic@ -, -, -, -, -, cs_AntennaInfo_r10_Explicit(cds_AntennaInfoDedicated_TM3_r10)); - - //@siclog "Step 2 - 3" siclog@ //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete f_EUTRA_508RRC_AddModRel_Scell_MIMO(p_PCellId, - p_SCellId, - v_RRCConnectionReconfiguration, - v_Scell_Capability // UL CA desired, - ); - //* @verdict RRCConnectionReconfigurationComplete received on PCell + p_SCellId, + v_RRCConnectionReconfiguration, + v_Scell_Capability); // UL CA desired + //* @verdict RRCConnectionReconfigurationComplete received on PCell f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.4.16 Step 3"); v_RRCConnectionReconfiguration := cs_508_RRCConnectionReconfiguration_SCell_AddModRelease(tsc_RRC_TI_Def, - cs_SCellToMod_r10(1,cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration, cds_AntennaInfoDedicated_TM3_r10))), + cs_SCellToAddMod_r10(1, //@sic R5s150263 sic@ + v_PhysicalCellIdentity_Scell, + v_Arfcn_SCell, + cs_508_RadioResourceConfigCommonSCell_r10_DEFAULT(v_SCell_DL_Bandwidth,tsc_P_b_1Tx,v_CommonSCell_UL_Configuration,v_TDD_Config,-,omit,omit), + cs_RadioResourceConfigDedicatedSCell_r10(cs_PhysicalConfigDedicatedSCell_r10_DEFAULT(v_DedicatedSCell_UL_Configuration, cds_AntennaInfoDedicated_TM3_r10))), v_PUCCH_ConfigDedicated, -, -, v_AdditionalSpectrumEmissionCA_r10, - cs_MeasConfig(omit,omit,omit,omit,omit,omit,omit,cs_MeasGapConfig_release),//release GAP @sic R5s140010 R5s140205 sic@ + cs_MeasConfig(omit, omit, omit, omit, omit, omit, omit, cs_MeasGapConfig_release), //release GAP @sic R5s140010 R5s140205 sic@ -, -, -, @@ -1669,12 +1632,9 @@ module RRC_Handover_CA //Transmit RRCConnectionReconfiguration //Receive RRCConnectionReconfigurationComplete f_EUTRA_508RRC_AddModRel_Scell_MIMO(p_PCellId, - p_SCellId, - v_RRCConnectionReconfiguration, - v_Scell_Capability // UL CA desired, - ); - - + p_SCellId, + v_RRCConnectionReconfiguration, + v_Scell_Capability); // UL CA desired //* @verdict RRCConnectionReconfigurationComplete received on PCell f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.2.4.16 Step 5"); @@ -1686,7 +1646,7 @@ module RRC_Handover_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.16.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_16_1_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / Setup and Change of MIMO / Intra-band Contiguous CA/ Intra-band Contiguous CA */ @@ -1695,19 +1655,20 @@ module RRC_Handover_CA /* * @desc REFERENCE TS 36.523-1 clause 8.2.4.16.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_16_2_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / Setup and Change of MIMO / Intra-band Contiguous CA / Inter-Band CA */ f_TC_8_2_4_16_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } + /* - * @desc REFERENCE TS 36.523-1 clause 8.2.2.5.3 - * @status + * @desc REFERENCE TS 36.523-1 clause 8.2.4.16.3 + * @status APPROVED (LTE_A) */ function f_TC_8_2_4_16_3_EUTRA() runs on EUTRA_PTC { /* CA / RRC connection reconfiguration / Setup and Change of MIMO / Intra-band Contiguous CA/ Intra-band non-Contiguous CA */ - f_TC_8_2_4_16_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_8_2_4_16_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150323 sic@ } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_3/EUTRA_Measurements_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_3/EUTRA_Measurements_CA.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/LTE_A/8_3/EUTRA_Measurements_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_3/EUTRA_Measurements_CA.ttcn index 287bc97..9022b6b 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_3/EUTRA_Measurements_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_3/EUTRA_Measurements_CA.ttcn @@ -2,15 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-02-17 12:48:41 +0100 (Tue, 17 Feb 2015) $ +// $Rev: 12934 $ /******************************************************************************/ -module EUTRA_Measurements_CA -{ +module EUTRA_Measurements_CA { import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_CommonDefs all; import from EUTRA_ASP_TypeDefs all; @@ -19,6 +18,7 @@ module EUTRA_Measurements_CA import from EUTRA_ConfigurationSteps all; import from EUTRA_CommonProcedures all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from EUTRA_BandDependentParam all; import from EUTRA_SRB_Templates all; import from EUTRA_Measurement_Templates all; @@ -149,13 +149,13 @@ module EUTRA_Measurements_CA v_CellPowerList_AtT1 := { cs_CellPower (p_NeighborCellId, -73) }; - if (p_CA_Type == CA_IntraBand) /* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) /* @sic R5-141113 R5s150037 sic@ */ { v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144680 sic@ + /*if (p_PCellId == eutra_Cell6) //@sic R5s144680 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; @@ -270,13 +270,13 @@ module EUTRA_Measurements_CA f_TC_8_3_1_17_Common (eutra_Cell1, eutra_Cell10, eutra_Cell30, CA_InterBand); } - /* - * @desc Common function : REFERENCE TS 36.523-1 clause 8.3.1.17.3 - * @status + /* + * @desc REFERENCE TS 36.523-1 clause 8.3.1.17.3 + * @status APPROVED (LTE_A) */ function f_TC_8_3_1_17_3_EUTRA () runs on EUTRA_PTC { /* CA / Measurement configuration control and reporting / Intra E-UTRAN measurements / Event A6 / Intra-band non-Contiguous CA */ - f_TC_8_3_1_17_Common (eutra_Cell6, eutra_Cell3,eutra_Cell12, CA_IntraBand); + f_TC_8_3_1_17_Common (eutra_Cell1, eutra_Cell3,eutra_Cell12, CA_IntraBandNonContiguous); //@sic R5s150330 sic@ } /* @@ -328,13 +328,13 @@ module EUTRA_Measurements_CA }; //@sic R5s130397 sic@ - if (p_CA_Type == CA_IntraBand) /* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) /* @sic R5-141113 R5s150037 sic@ */ { v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144517 sic@ + /* if (p_PCellId == eutra_Cell6) //@sic R5s144517 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; @@ -408,7 +408,7 @@ module EUTRA_Measurements_CA //@siclog "Step 6" siclog@ //Receive MeasurementReport //@sic R5s130690 sic@ - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport(2,//Meas id //@sic R5s130960 sic@ + SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(2,//Meas id //@sic R5s130960 R5s141338 sic@ ?,//RSRP result ?,//RSRQ result @@ -423,7 +423,7 @@ module EUTRA_Measurements_CA f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); //@siclog "Step 8" siclog@ //Receive MeasurementReport - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport(1,//Meas id + SRB.receive(car_SRB1_RrcPdu_IND(p_PCellId, cr_MeasurementReport(1,//Meas id //@sic R5s141338 sic@ ?,//RSRP result ?,//RSRQ result omit, @@ -456,13 +456,13 @@ module EUTRA_Measurements_CA f_TC_8_3_1_18_Common(eutra_Cell1, eutra_Cell10, eutra_Cell30, eutra_Cell31,CA_InterBand); } - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.3.1.18.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_3_1_18_3_EUTRA () runs on EUTRA_PTC { /* CA / Measurement configuration control and reporting / Intra E-UTRAN measurements / Event A6 / Intra-band Contiguous CA */ - f_TC_8_3_1_18_Common (eutra_Cell1, eutra_Cell3,eutra_Cell12,eutra_Cell23, CA_IntraBand); + f_TC_8_3_1_18_Common (eutra_Cell1, eutra_Cell3,eutra_Cell12,eutra_Cell23, CA_IntraBandNonContiguous); //@sic R5s141338 R5s150330 sic@ } /* @@ -507,13 +507,13 @@ module EUTRA_Measurements_CA cs_CellPower (p_SCellId, -96) }; //@sic R5s130402 sic@ - if (p_CA_Type == CA_IntraBand) /* @sic R5-141113 sic@ */ + if (p_CA_Type == CA_IntraBand or p_CA_Type == CA_IntraBandNonContiguous ) /* @sic R5-141113 R5s150037 sic@ */ { v_MeasObjectId := tsc_IdMeasObject_f2; - if (p_PCellId == eutra_Cell6) //@sic R5s144684 sic@ + /* if (p_PCellId == eutra_Cell6) //@sic R5s144684 sic@ { v_MeasObjectId_PCell := tsc_IdMeasObject_f3; - } + } */ } else { v_MeasObjectId := tsc_IdMeasObject_f5; @@ -665,11 +665,11 @@ module EUTRA_Measurements_CA } /* - * @desc Common function : REFERENCE TS 36.523-1 clause 8.3.1.22.3 - * @status + * @desc REFERENCE TS 36.523-1 clause 8.3.1.22.3 + * @status APPROVED (LTE_A) */ function f_TC_8_3_1_22_3_EUTRA () runs on EUTRA_PTC { /* CA / Measurement configuration control and reporting / Intra E-UTRAN measurements / Event A1 / Event A2 / Intra-band Contiguous CA*/ - f_TC_8_3_1_22_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); + f_TC_8_3_1_22_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); //@sic R5s150330 sic@ } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn similarity index 63% rename from LTE_A_IWD_14wk37/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn index 1e41001..317374c 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_3/EUTRA_Measurements_eICIC.ttcn @@ -2,14 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 19:05:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14431 $ /******************************************************************************/ -module RRC_Measurement_eICIC +module EUTRA_Measurements_eICIC { import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_Component all; @@ -18,54 +18,25 @@ module RRC_Measurement_eICIC import from EUTRA_RRC_Templates all; import from EUTRA_SRB_Templates all; import from EUTRA_AspCommon_Templates all; + import from EUTRA_CellCfg_Templates all; import from EUTRA_CellInfo all; import from EUTRA_CommonProcedures all; import from EUTRA_ConfigurationSteps all; import from EUTRA_Measurement_Templates all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from EUTRA_ASP_TypeDefs all; - import from EUTRA_ASP_SrbDefs all; import from EUTRA_BandDependentParam all; + import from EUTRA_Timing all; //=================================================================================================== // TEMPLATES //================================================================================================== - template (value) PhysicalConfigDedicated cs_PhysicalConfigDedicated_CSIConfig(template (omit) CQI_ReportConfig_r10 p_CQI_ReportConfig_r10_CSIConfig := omit) := + template (value) PhysicalConfigDedicated cds_PhysicalConfigDedicated_CSIConfig(template (omit) CQI_ReportConfig_r10 p_CQI_ReportConfig_r10_CSIConfig := omit) + modifies cs_PhysicalConfigDedicated_Omit := { /* @status APPROVED (LTE_A) */ - pdsch_ConfigDedicated := omit, - pucch_ConfigDedicated := omit, - pusch_ConfigDedicated := omit, - uplinkPowerControlDedicated := omit, - tpc_PDCCH_ConfigPUCCH := omit, - tpc_PDCCH_ConfigPUSCH := omit, - cqi_ReportConfig := omit, - soundingRS_UL_ConfigDedicated := omit, - antennaInfo := omit, - schedulingRequestConfig := omit, - cqi_ReportConfig_v920 := omit, - antennaInfo_v920 := omit, - antennaInfo_r10 := omit, - antennaInfoUL_r10 := omit, - cif_Presence_r10 := omit, - cqi_ReportConfig_r10 := p_CQI_ReportConfig_r10_CSIConfig, - csi_RS_Config_r10 := omit, - pucch_ConfigDedicated_v1020 := omit, - pusch_ConfigDedicated_v1020 := omit, - schedulingRequestConfig_v1020 := omit, - soundingRS_UL_ConfigDedicated_v1020 := omit, - soundingRS_UL_ConfigDedicatedAperiodic_r10 := omit, - uplinkPowerControlDedicated_v1020 := omit, - additionalSpectrumEmissionCA_r10 := omit, - csi_RS_ConfigNZPToReleaseList_r11 := omit, - csi_RS_ConfigNZPToAddModList_r11 := omit, - csi_RS_ConfigZPToReleaseList_r11 := omit, - csi_RS_ConfigZPToAddModList_r11 := omit, - epdcch_Config_r11 := omit, - pdsch_ConfigDedicated_v1130 := omit, - cqi_ReportConfig_v1130 := omit, - pucch_ConfigDedicated_v1130 := omit, - pusch_ConfigDedicated_v1130 := omit, - uplinkPowerControlDedicated_v1130 := omit + /* @sic R5s150362 - Additional change: modifies cs_PhysicalConfigDedicated_Omit sic@ */ + cqi_ReportConfig_r10 := p_CQI_ReportConfig_r10_CSIConfig }; template (value) CQI_ReportConfig_r10 cs_CQI_ReportConfig_r10_CSIConfig(template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10_RECONFIG := omit, @@ -73,7 +44,7 @@ module RRC_Measurement_eICIC template (value) MeasSubframePattern_r10 p_Csi_MeasSubframeSet2_r10 ) := { /* @status APPROVED (LTE_A) */ cqi_ReportAperiodic_r10 := omit, - nomPDSCH_RS_EPRE_Offset := 0, //FFS + nomPDSCH_RS_EPRE_Offset := 0, cqi_ReportPeriodic_r10 := p_CQI_ReportPeriodic_r10_RECONFIG, pmi_RI_Report_r9 := omit, csi_SubframePatternConfig_r10 := { @@ -93,7 +64,7 @@ module RRC_Measurement_eICIC cqi_pmi_ConfigIndex := p_Cqi_pmi_ConfigIndex, cqi_FormatIndicatorPeriodic_r10 := { widebandCQI_r10 := { - csi_ReportMode_r10 := submode1 + csi_ReportMode_r10 := omit //@sic R5-150730 sic@ } }, ri_ConfigIndex := omit, @@ -143,44 +114,8 @@ module RRC_Measurement_eICIC } }; - template (value) SYSTEM_CTRL_REQ cas_CellConfig_CQI_ReportConfig_r10(EUTRA_CellId_Type p_CellId, - template (value) TimingInfo_Type p_TimingInfo, - template (value) CQI_ReportConfig_r10 p_CQI_ReportConfig_r10) := - { /* @status APPROVED (LTE_A) */ - Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo), - Request := { - Cell := { - AddOrReconfigure := { - Basic := omit, - Active := { - C_RNTI := omit, - PhysicalLayerConfigUL := { - Prach := omit, - Pucch := omit, - Pusch := omit, - TimingAdvance := omit, - SRS_UL_Config := omit, - SR_Config := omit, - CQI_ReportConfig := { - R10andLater := { - cqi_ReportConfig_r10 := p_CQI_ReportConfig_r10, - cqi_ReportConfig_v1130 := omit - } - }, - UplinkPowerControlCommon := omit, - UplinkPowerControlDedicated := omit - }, - RachProcedureConfig := omit, - CcchDcchDtchConfig := omit, - ServingCellConfig := omit - } - } - } - } - }; - template (value) RadioResourceConfigDedicated cs_RadioResourceConfigDedicated_MeasSfPtnPCell_r10(template (omit) RadioResourceConfigDedicated.measSubframePatternPCell_r10 p_MeasSubframePatternPCell_r10 ) := - { /* @status */ + { /* @status APPROVED (LTE_A) */ srb_ToAddModList := omit, drb_ToAddModList := omit, drb_ToReleaseList := omit, @@ -189,29 +124,136 @@ module RRC_Measurement_eICIC physicalConfigDedicated := omit, rlf_TimersAndConstants_r9 := omit, measSubframePatternPCell_r10 := p_MeasSubframePatternPCell_r10, - neighCellsCRS_Info_r11 := omit + neighCellsCRS_Info_r11 := omit, + naics_Info_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ }; - template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_ConditionMEAS_PCellPattern(RRC_TransactionIdentifier p_RRC_TI, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, - AllowedMeasBandwidth p_MeasurementBandwidth, - template (omit) RadioResourceConfigDedicated.measSubframePatternPCell_r10 p_MeasSubframePatternPCell_r10) := - /* @status */ + template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_ConditionMEASA1_PCellPattern(RRC_TransactionIdentifier p_RRC_TI, + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, + AllowedMeasBandwidth p_MeasurementBandwidth, + template (omit) RadioResourceConfigDedicated.measSubframePatternPCell_r10 p_MeasSubframePatternPCell_r10) := + /* @status APPROVED (LTE_A) */ cs_RRCConnectionReconfiguration_Common(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq, p_MeasurementBandwidth)), omit, - cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, - cs_ReportConfig_reportConfigEUTRA_eventA3(0, false, 0, ms0, rsrp, sameAsTriggerQuantity, 1, ms1024, r1)), + cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A1, + cs_ReportConfig_reportConfigEUTRA_eventA1_RSRQ(-10, 0, ms320, rsrq, both, 1, ms1024, infinity_)), omit, - cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)), + cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A1)), omit, cs_RadioResourceConfigDedicated_MeasSfPtnPCell_r10(p_MeasSubframePatternPCell_r10), omit, omit); - + + template (value) ReportConfigEUTRA.triggerType.event.eventId cs_ReportConfigEUTRA_eventA1_RSRQ(integer p_Threshold) := + { /* @status APPROVED (LTE_A) */ + eventA1 := { + a1_Threshold := { + threshold_RSRQ := p_Threshold * 2 + 40 + } + } + }; + + template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigEUTRA_eventA1_RSRQ(integer p_Threshold, + 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 (LTE_A) */ + cs_ReportConfig_reportConfigEUTRA_event(cs_ReportConfigEUTRA_eventA1_RSRQ(p_Threshold), + p_Hysteresis, + p_TimeToTrigger, + p_TriggerQuantity, + p_ReportQuantity, + p_MaxReportCells, + p_ReportInterval, + p_ReportAmount); + + template (value) ReportConfigEUTRA.triggerType.event.eventId cs_ReportConfigEUTRA_eventA4_RSRQ(integer p_Threshold) := + { /* @status APPROVED (LTE_A) */ + eventA4 := { + a4_Threshold := {threshold_RSRQ := p_Threshold * 2 + 40} + } + }; + + template (value) ReportConfigToAddMod.reportConfig cs_ReportConfig_reportConfigEUTRA_eventA4_RSRQ(integer p_Threshold, + 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 (LTE_A) */ + cs_ReportConfig_reportConfigEUTRA_event(cs_ReportConfigEUTRA_eventA4_RSRQ(p_Threshold), + p_Hysteresis, + p_TimeToTrigger, + p_TriggerQuantity, + p_ReportQuantity, + p_MaxReportCells, + p_ReportInterval, + p_ReportAmount); + + template (value) ToRS_EPRE_Ratios_Type cs_PowerRatiosPDSCH_RelativeTxPower_Ocng := cs_PowerRatios_Def; /* @status APPROVED (LTE_A) */ + + template (value) PhysicalLayerConfigDL_Type cs_PhysicalLayerConfigDL_PDSCH_RelativeTxPower_Ocng(template(value) ToRS_EPRE_Ratios_Type p_OcngOnPdsch := cs_PowerRatiosPDSCH_RelativeTxPower_Ocng) := + { /* @status APPROVED (LTE_A) */ + AntennaGroup := omit, //same as previous config + Pbch := omit, //same as previous config + Pcfich := omit,//same as previous config + Phich := omit,//same as previous config + Pdcch := omit,//same as previous config + Pdsch := { + RelativeTxPower := { + RachResponse := omit, + BcchOnPdsch := omit, + PcchOnPdsch := omit, + CcchOnPdsch := omit, + DcchDtchOnPdsch := omit, + OcngOnPdsch := p_OcngOnPdsch + } + }, + Pss := omit, //same as previous config + Sss := omit, //same as previous config + CSI_RS_Config := omit, + Pmch := omit, + Epdcch := omit + }; + + template (value) SYSTEM_CTRL_REQ cs_OCNG_Config_Activate(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now, + template (value) MeasSubframePattern_r10 p_MeasSubFramePattern) := + { /* @status APPROVED (LTE_A) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo, false), + Request := { + OCNG_Config := { + Activate := { + MeasSubFramePattern := p_MeasSubFramePattern + } + } + } + }; + + template (value) SYSTEM_CTRL_REQ cs_OCNG_Config_Deactivate(EUTRA_CellId_Type p_CellId, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) := + { /* @status APPROVED (LTE_A) */ + Common := cs_ReqAspCommonPart_CellCfg(p_CellId, p_TimingInfo, false), + Request := { + OCNG_Config := { + Deactivate := true + } + } + }; + + //=================================================================================================== + // Function + //=================================================================================================== /***************************************************************************************************/ /* * @desc To configure Periodic CQI indication Mode @@ -229,7 +271,7 @@ module RRC_Measurement_eICIC /***************************************************************************************************/ /* - * @desc + * @desc Default to receive Periodic CQI reports * @param p_CellId * @status APPROVED (LTE_A) */ @@ -240,7 +282,31 @@ module RRC_Measurement_eICIC repeat; } }; - + + /* + * @desc Activate OCNG for the given cell + * @param p_CellId + * @param p_MeasSubframePattern_r10 + * @param p_TimingInfo (default value: cs_TimingInfo_Now) + * @status APPROVED (LTE_A) + */ + function f_EUTRA_ActivateOCNG(EUTRA_CellId_Type p_CellId, + template(value) MeasSubframePattern_r10 p_MeasSubframePattern_r10, + template (value) TimingInfo_Type p_TimingInfo := cs_TimingInfo_Now) runs on EUTRA_PTC + { + SYS.send(cs_OCNG_Config_Activate(p_CellId, p_TimingInfo, p_MeasSubframePattern_r10)); + } + + /* + * @desc Deactivate OCNG for the given cell + * @param p_CellId + * @status APPROVED (LTE_A) + */ + function f_EUTRA_DeactivateOCNG ( EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + SYS.send(cs_OCNG_Config_Deactivate(p_CellId, cs_TimingInfo_Now)); + } + //=================================================================================================== // TEST CASES //=================================================================================================== @@ -317,7 +383,9 @@ module RRC_Measurement_eICIC cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, omit, omit, - cs_RadioResourceConfigDedicated_PhyConfig( cs_PhysicalConfigDedicated_CSIConfig(cs_CQI_ReportConfig_r10_CSIConfig(v_CQI_ReportPeriodic_r10_RECONFIG, v_Csi_MeasSubframeSet1_r10, v_Csi_MeasSubframeSet2_r10 ))), + cs_RadioResourceConfigDedicated_PhyConfig(cds_PhysicalConfigDedicated_CSIConfig(cs_CQI_ReportConfig_r10_CSIConfig(v_CQI_ReportPeriodic_r10_RECONFIG, + v_Csi_MeasSubframeSet1_r10, + v_Csi_MeasSubframeSet2_r10))), omit))); //@siclog "Step 2" siclog@ //The UE transmits an RRCConnectionReconfigurationComplete message. @@ -396,154 +464,37 @@ module RRC_Measurement_eICIC } //end of testcase 8.3.1.19 - //================================================================ - /* - * @desc REFERENCE TS 36.523-1 clause 8.3.1.20 - * @status - */ - function f_TC_8_3_1_20_EUTRA() runs on EUTRA_PTC - { // eICIC / Measurement configuration control and reporting / Event A3 / RSRP and RSRQ measurement / Neighbour ABS - - var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; - var PhysCellId v_PhysCellId_Cell2; - var Frequency_IE_Type v_Frequency_IE; - var ChannelBandwidthDependency_Type v_ChBandDependency; - var SRB_COMMON_IND v_SRB_COMMON_IND; - var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo; - var template (value) MeasSubframePattern_r10 v_MeasSubframePatternNeigh_r10; - var template (value) MeasSubframePatternConfigNeigh_r10 v_MeasSubframePatternConfigNeigh_r10; - - var integer v_T0_RS_EPRE_Cell2 := -91; - var integer v_T1_RS_EPRE_Cell2 := -79; - var template(value) CellPowerList_Type v_CellPowerListT0, v_CellPowerListT1; - - //Initialize testcase - f_EUTRA_Init(c1); - - //Set EPRE for T0 - v_CellPowerListT0 := { - cs_CellPower(eutra_Cell2, v_T0_RS_EPRE_Cell2) - }; - //Set EPRE for T1 - v_CellPowerListT1 := { - cs_CellPower(eutra_Cell2, v_T1_RS_EPRE_Cell2) - }; - //Set EPRE for RF Initial - f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, v_T1_RS_EPRE_Cell2); - v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (eutra_Cell1); - - //Create and configure Cell1, Cell2 - f_EUTRA_CellConfig_Def(eutra_Cell1); - f_EUTRA_CellConfig_Def(eutra_Cell2); - - //Preamble: The UE is in state Generic RB Established (state 3) on Cell 1 - f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - f_EUTRA_RbEst_Def(eutra_Cell1); - - f_EUTRA_SetCellPowerList(v_CellPowerListT0); - - f_EUTRA_TestBody_Set(true); - - //------------------------------------------------ - //Start TestBody - - //@siclog "Step 1-2" siclog@ - //The SS transmits an RRCConnectionReconfiguration message to setup CSI measurement patterns on Cell1. - //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1 to confirm the setup of intra frequency measurement. - if (v_FDD_TDDInfo.FDD_TDD == FDD) { - v_MeasSubframePatternNeigh_r10 := { - subframePatternFDD_r10 := '0011001100110011001100110011001100110011'B } - } - else { - v_MeasSubframePatternNeigh_r10 := { - subframePatternTDD_r10 := { - subframeConfig1_5_r10:= '11001110011100111001'B }//FFS - } - } - v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); - v_ChBandDependency := f_EUTRA_BandDependentParam(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth); - v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); - - v_MeasSubframePatternConfigNeigh_r10 := { - setup := { - measSubframePatternNeigh_r10 := v_MeasSubframePatternNeigh_r10, - measSubframeCellList_r10 := { - { - start_ := v_PhysCellId_Cell2, - range := omit - } - } - } - } - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, - cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, - cs_MeasConfig(omit, - cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, - cs_MeasObject_measObjectEUTRA_Common(v_Frequency_IE.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency.AllowedMeasBandwidth, -, -, -, v_MeasSubframePatternConfigNeigh_r10)), - omit, - cs_ReportConfigToAddModList_1Entry(1, - cs_ReportConfig_reportConfigEUTRA_eventA3(-20, false, 0, ms0, rsrp, sameAsTriggerQuantity, 1, ms1024, r1)), //FFS - omit, - cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, 1)))); - - //@siclog "Step 3" siclog@ - //The SS changes Cell 1 and Cell 2 parameters according to the row "T1" in table8.3.1.20.3.2-1. - f_EUTRA_SetCellPowerList(v_CellPowerListT1); - - //@siclog "Step 4" siclog@ - //The UE transmits a MeasurementReport message on Cell 1 to report event A3 with the measured RSRP and RSRQ values for Cell 2. - // @sic R5-134914 sic@ - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell2)))-> value v_SRB_COMMON_IND; - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.20 Step 5"); - - //@siclog "Step 5" siclog@ - //Check: Does the UE transmit RSRP and RSRQ measurements in neighbour cell measurement restriction pattern? - //FFS - - //End TestBody - f_EUTRA_TestBody_Set(false); - - f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - } //end of testcase 8.3.1.20 - //================================================================ /* * @desc REFERENCE TS 36.523-1 clause 8.3.1.21 * @status APPROVED (LTE_A) */ function f_TC_8_3_1_21_EUTRA() runs on EUTRA_PTC - { /* eICIC / Measurement configuration control and reporting / Event A3 Handover / Neighbour RSRP measurement configuration change */ + { /* eICIC / Measurement configuration control and reporting / Event A4 Handover / Neighbour RSRP and RSRQ measurement configuration change */ var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var PhysCellId v_PhysCellId_Cell2; var Frequency_IE_Type v_Frequency_IE; var ChannelBandwidthDependency_Type v_ChBandDependency; - var SRB_COMMON_IND v_SRB_COMMON_IND; var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo; var template (value) MeasSubframePattern_r10 v_MeasSubframePatternNeigh_r10; var template (value) MeasSubframePatternConfigNeigh_r10 v_MeasSubframePatternConfigNeigh_r10; + var SubFrameTiming_Type v_TimingInfo; - var integer v_T0_RS_EPRE_Cell2 := -91; - var integer v_T1_RS_EPRE_Cell2 := -79; - var template(value) CellPowerList_Type v_CellPowerListT0; - var template(value) CellPowerList_Type v_CellPowerListT1; + var template(value) CellPowerList_Type v_CellPowerListT1:= { + cs_CellPower(eutra_Cell2, -91)// @sic R5-151752 sic@ + }; - //Initialize testcase + //Initialise variables f_EUTRA_Init(c1); v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(eutra_Cell1); - - //Set EPRE for T0 - v_CellPowerListT0 := { - cs_CellPower(eutra_Cell2, v_T0_RS_EPRE_Cell2) - }; - //Set EPRE for T1 - v_CellPowerListT1 := { - cs_CellPower(eutra_Cell2, v_T1_RS_EPRE_Cell2) - }; - //Set EPRE for RF Initial - f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, v_T1_RS_EPRE_Cell2); + v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); + v_ChBandDependency := f_EUTRA_BandDependentParam(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth); + v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); + + //Cell 1 and Cell 2 are time & SFN synchronous cells + f_EUTRA_InitialiseWithSameCellTiming ({eutra_Cell1, eutra_Cell2}); //Create and configure Cell1, Cell2 f_EUTRA_CellConfig_Def(eutra_Cell1); @@ -552,31 +503,27 @@ module RRC_Measurement_eICIC //Preamble: The UE is in state Generic RB Established (state 3) on Cell 1 f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(eutra_Cell1); - - f_EUTRA_SetCellPowerList(v_CellPowerListT0); - + f_EUTRA_TestBody_Set(true); //------------------------------------------------ //Start TestBody //@siclog "Step 1-2" siclog@ - //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to setup intra frequency measurement. + //@sic R5-151752 sic@ + //The SS transmits an RRCConnectionReconfiguration message including measConfig and neighbour cell measurement restriction pattern on Cell 1 to setup intra frequency measurement reporting for event A4. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1 to confirm the setup of intra frequency measurement. if (v_FDD_TDDInfo.FDD_TDD == FDD) { v_MeasSubframePatternNeigh_r10 := { - subframePatternFDD_r10 := '1011010110101101011010110101101011010110'B + subframePatternFDD_r10 := '1000000010000000100000001000000010000000'B //@sic R5-151752 sic@ }; } else { v_MeasSubframePatternNeigh_r10 := { subframePatternTDD_r10 := { - subframeConfig1_5_r10:= '11001110011100111001'B + subframeConfig1_5_r10:= '00001000010000100001'B //@sic R5-151752 sic@ } }; } - v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); - v_ChBandDependency := f_EUTRA_BandDependentParam(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth); - v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); v_MeasSubframePatternConfigNeigh_r10 := { setup := { @@ -589,137 +536,147 @@ module RRC_Measurement_eICIC } } } + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, cs_508_RRCConnectionReconfiguration_ConditionMEAS(v_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, cs_MeasObject_measObjectEUTRA_Common(v_Frequency_IE.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency.AllowedMeasBandwidth, -, -, -, v_MeasSubframePatternConfigNeigh_r10)), omit, - cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, - cs_ReportConfig_reportConfigEUTRA_eventA3(0, false, 0, ms0, rsrp, sameAsTriggerQuantity, 1, ms1024, r1)), + cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A4,//@sic R5-151752 sic@ + cs_ReportConfig_reportConfigEUTRA_eventA4_RSRQ(-10, 0, ms320, rsrq, both, 1, ms1024, infinity_)), omit, - cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3)))); + cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A4)))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.21 Step 2"); //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 2 parameters according to the row "T1" in Table 8.3.1.21.3.2-1. + //@sic R5s150658 sic@ f_EUTRA_SetCellPowerList(v_CellPowerListT1); + v_TimingInfo := f_EUTRA_GetNextSendOccasion(eutra_Cell2); + //OFDMA Channel Noise Generator (OCNG) is required to populate Cell 2. The Cell will be populated in all sub-frames specified in measSubframePatternNeigh as '0' and will be removed where defined as '1'. + f_EUTRA_SS_CommonCellConfig(eutra_Cell2, cas_PhysicalLayerConfigDL_REQ(eutra_Cell2, cs_TimingInfo(v_TimingInfo.SFN.Number, v_TimingInfo.Subframe.Number), cs_PhysicalLayerConfigDL_PDSCH_RelativeTxPower_Ocng)); + f_EUTRA_ActivateOCNG ( eutra_Cell2, v_MeasSubframePatternNeigh_r10, cs_TimingInfo(v_TimingInfo.SFN.Number, v_TimingInfo.Subframe.Number)); //@siclog "Step 4" siclog@ - //The UE transmits a MeasurementReport message on Cell 1 to report event A3 with the measured RSRP values for Cell 2. - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_rsrp(1, v_PhysCellId_Cell2)))-> value v_SRB_COMMON_IND; + //@sic R5-151752 sic@ + //Check: Does the UE transmit a MeasurementReport message on Cell 1 to report event A4 with the measured RSRP and RSRQ values for Cell 2? + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell2))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.21 Step 4"); //@siclog "Step 5-6" siclog@ //The SS transmits an RRCConnectionReconfiguration message to order the UE to perform intra frequency handover to Cell 2. //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message on Cell 2 using common preamble to confirm the successful completion of the intra frequency handover? - f_EUTRA_508RRC_IntraLTE_HO_InterCell ( eutra_Cell1, eutra_Cell2 ); - + //According to Table 8.3.1.21.3.3-6A + //@sic R5s150658 R5-153549 sic@ + f_EUTRA_508RRC_IntraLTE_HO_InterCell ( eutra_Cell1, eutra_Cell2, -, -, cs_MeasConfig(cs_MeasObjectToRemoveList_1Entry(1), omit, cs_ReportConfigToRemoveList_1Entry(6), omit, cs_MeasIdToRemoveList_1Entry(1), omit)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.21 Step 6"); + //End TestBody f_EUTRA_TestBody_Set(false); + f_EUTRA_DeactivateOCNG (eutra_Cell2); + f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); } //end of testcase 8.3.1.21 //================================================================ /* * @desc REFERENCE TS 36.523-1 clause 8.3.1.28 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_3_1_28_EUTRA() runs on EUTRA_PTC - { //eICIC / Measurement configuration control and reporting / Event A3 / RSRP and RSRQ measurement / Serving ABS + { /* eICIC / Measurement configuration control and reporting / Event A1 / RSRP and RSRQ measurement / Serving ABS */ var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var PhysCellId v_PhysCellId_Cell2; var Frequency_IE_Type v_Frequency_IE; var ChannelBandwidthDependency_Type v_ChBandDependency; - var SRB_COMMON_IND v_SRB_COMMON_IND; var EUTRA_FDD_TDD_CellInfo_Type v_FDD_TDDInfo; var template (value) RadioResourceConfigDedicated.measSubframePatternPCell_r10 v_MeasSubframePatternPCell_r10; + var default v_DefaultRef; + + var template(value) CellPowerList_Type v_CellPowerListT1 := { //@sic R5-151753 sic@ + cs_CellPower(eutra_Cell1, -87), + cs_CellPower(eutra_Cell2, -91) + }; - var integer v_T0_RS_EPRE_Cell2 := -91; - var integer v_T1_RS_EPRE_Cell2 := -79; - var template(value) CellPowerList_Type v_CellPowerListT0, v_CellPowerListT1; - //Initialize testcase f_EUTRA_Init(c1); - v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (eutra_Cell1); + //Cell 1 and Cell 2 are time & SFN synchronous cells + f_EUTRA_InitialiseWithSameCellTiming({eutra_Cell1, eutra_Cell2}); - //Set EPRE for T0 - v_CellPowerListT0 := { - cs_CellPower(eutra_Cell2, v_T0_RS_EPRE_Cell2) - }; - //Set EPRE for T1 - v_CellPowerListT1 := { - cs_CellPower(eutra_Cell2, v_T1_RS_EPRE_Cell2) - }; - //Set EPRE for RF Initial - f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, v_T1_RS_EPRE_Cell2); + v_FDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (eutra_Cell2); + v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); + v_ChBandDependency := f_EUTRA_BandDependentParam(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth); + v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); //Create and configure Cell1, Cell2 f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell2); //Preamble: The UE is in state Generic RB Established (state 3) on Cell 1 - f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - f_EUTRA_RbEst_Def(eutra_Cell1); + f_EUTRA_Preamble(eutra_Cell2, STATE2_IDLEUPDATE); + f_EUTRA_RbEst_Def(eutra_Cell2); - f_EUTRA_SetCellPowerList(v_CellPowerListT0); - - f_EUTRA_TestBody_Set(true); - - //------------------------------------------------ - //Start TestBody - - //@siclog "Step 1-2" siclog@ - //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to setup intra frequency measurement. - //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1 to confirm the setup of intra frequency measurement. + //OFDMA Channel Noise Generator (OCNG) is required to populate Cell 2. The Cell will be populated in all sub-frames specified in measSubframePatternNeigh as '0' and will be removed where defined as '1'. + //@sic R5-151753 sic@ if (v_FDD_TDDInfo.FDD_TDD == FDD) { v_MeasSubframePatternPCell_r10 := { setup := { - subframePatternFDD_r10 := '1011010110101101011010110101101011010110'B }//FFS + subframePatternFDD_r10 := '1000000010000000100000001000000010000000'B }// @sic R5-151753 sic@ } } else { v_MeasSubframePatternPCell_r10 := { setup := { subframePatternTDD_r10 := { - subframeConfig1_5_r10:= '11001110011100111001'B }//FFS + subframeConfig1_5_r10:= '00001000010000100001'B }// @sic R5-151753 sic@ } } } - v_Frequency_IE := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); - v_ChBandDependency := f_EUTRA_BandDependentParam(v_Frequency_IE.DL_ChBandwidth, v_Frequency_IE.UL_ChBandwidth); - v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); - - - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, - cs_508_RRCConnectionReconfiguration_ConditionMEAS_PCellPattern(v_RRC_TI, v_Frequency_IE.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency.AllowedMeasBandwidth, v_MeasSubframePatternPCell_r10)); + f_EUTRA_SS_CommonCellConfig(eutra_Cell2, cas_PhysicalLayerConfigDL_REQ(eutra_Cell2, cs_TimingInfo_Now, cs_PhysicalLayerConfigDL_PDSCH_RelativeTxPower_Ocng)); + f_EUTRA_ActivateOCNG ( eutra_Cell2, v_MeasSubframePatternPCell_r10.setup); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.28 Step 2"); - - //@siclog "Step 3" siclog@ + f_EUTRA_TestBody_Set(true); + + //@siclog "Step 0" siclog@ + //@sic R5-151753 sic@ //The SS changes Cell 1 and Cell 2 parameters according to the row "T1" in table 8.3.1.28.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerListT1); + //@siclog "Step 1-2" siclog@ + //@sic R5-151753 sic@ + //The SS transmits an RRCConnectionReconfiguration message including measConfig and serving cell measurement restriction pattern on Cell 2 to setup intra frequency measurement reporting for event A1. + //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 2 to confirm the setup of intra frequency measurement. + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell2, + cs_508_RRCConnectionReconfiguration_ConditionMEASA1_PCellPattern(v_RRC_TI, + v_Frequency_IE.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency.AllowedMeasBandwidth, + v_MeasSubframePatternPCell_r10)); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.28 Step 2"); + + //@siclog "Step 3" siclog@ + //@sic R5-151753 sic@ + //Void + //@siclog "Step 4" siclog@ - //Check: Does the UE transmit a MeasurementReport message on Cell 1 to report event A3 with the measured expected RSRP and RSRQ values for Cell 2? - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell2)))-> value v_SRB_COMMON_IND; //@sic R5-140935 sic@ - + //@sic R5-151753 sic@ + //Check: Does the UE transmit a MeasurementReport message on Cell 2 to report event A1 with the measured RSRP and RSRQ values for Cell 2? + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_MeasurementReport(1, ?, ?, omit))); //@sic R5-140935, R5-151753 sic@ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.3.1.28 Step 4"); - - //@siclog "Step 5" siclog@ - //Check: Does the UE transmit RSRP and RSRQ measurements in serving cell measurement restriction pattern? -//FFS - //End TestBody f_EUTRA_TestBody_Set(false); - - f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - } //end of testcase 8.3.1.28 + //MeasurementReport messages may be received also during the postamble. + //@sic R5s150696 R5-153667 sic@ + v_DefaultRef := activate(a_EUTRA_AddDefault_PeriodicalMeasurmentReport(eutra_Cell2, cr_MeasurementReport_CheckAny)); + f_EUTRA_DeactivateOCNG (eutra_Cell2); + + f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); + } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn similarity index 83% rename from LTE_A_IWD_14wk37/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn index f530df3..25ec548 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_4/InterRat_Handover_UtoE_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 15:40:27 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14405 $ /******************************************************************************/ module InterRat_Handover_UtoE_CA { @@ -47,7 +47,7 @@ module InterRat_Handover_UtoE_CA { var integer v_CA_Type ; select (p_CA_Type) { - case (CA_IntraBand) { v_CA_Type := 1; } /* @sic R5-141113 sic@ */ + case (CA_IntraBand, CA_IntraBandNonContiguous) { v_CA_Type := 1; } /* @sic R5-141113 R5-141288 sic@ */ case (CA_InterBand) { v_CA_Type := 2; } case else { FatalError (__FILE__, __LINE__, "invalid BandWidth"); } } @@ -75,12 +75,17 @@ module InterRat_Handover_UtoE_CA var template (omit) CarrierFreqListUTRA_TDD v_CarrierFreqListUTRA_TDD := omit; var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; - var EUTRA_SecurityParams_Type v_Auth_Params, v_Auth_Params_Native; + var EUTRA_SecurityParams_Type v_Auth_Params_Native; var NasCountInfo_Type v_NasCountInfo; var boolean v_UL_CA := pc_UL_CA; var template (value) Scell_Capability_Type v_Scell_Capability := DlOnly; var DRX_Config v_DRX_Config; var boolean v_NoUL_SCell; + //@sic R5w150205 sic@ + var template (omit)Pcell_Mode_Type v_Pcell_Mode := omit; + var EUTRA_FDD_TDD_CellInfo_Type v_SCellFDD_TDDInfo ; + var EUTRA_FDD_TDD_CellInfo_Type v_PcellFDD_TDDInfo ; + f_EUTRA_Init ( c4 ); f_EUTRA_CA_InitCells({p_PCellId, p_SCellId}, p_CA_Type,c4); @@ -110,6 +115,19 @@ module InterRat_Handover_UtoE_CA cs_CellPower (p_PCellId, -70), cs_CellPower (p_SCellId, -70) } + //@sic R5w150205 sic@ + v_SCellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info (p_SCellId); + v_PcellFDD_TDDInfo := f_EUTRA_CellInfo_GetFDD_TDD_Info(p_PCellId); + if (v_PcellFDD_TDDInfo.FDD_TDD != v_SCellFDD_TDDInfo.FDD_TDD) //Scell mode is different than Pcell + { + if (v_PcellFDD_TDDInfo.FDD_TDD == FDD) //Pcell is FDD + { + v_Pcell_Mode := cs_Pcell_Mode_FDD + } else //Pcell is TDD + { + v_Pcell_Mode := cs_Pcell_Mode_TDD (v_PcellFDD_TDDInfo.TDD_SubframeAssignment); + } + }; v_NoUL_SCell:= f_EUTRA_CellInfo_GetNoUL_Frequency(p_SCellId);//@sic R5s140775 sic@ //* @desc Create and configure cell f_EUTRA_CellConfig_Pcell_Def (p_PCellId); @@ -145,9 +163,8 @@ module InterRat_Handover_UtoE_CA f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); // Backup Auth params and NAS count. //@sic R5s120535 sic@ - v_Auth_Params := f_EUTRA_Security_Get (); - v_Auth_Params_Native := v_Auth_Params; - v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); // + v_Auth_Params_Native := f_EUTRA_Security_Get(); + v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); // Update security params when authentication done on UTRAN side f_EUTRA_InterRAT_InitialiseAuthParams (UTRAN); @@ -168,38 +185,30 @@ module InterRat_Handover_UtoE_CA f_EUTRA_CellInfo_SetC_RNTI ( p_PCellId, tsc_C_RNTI_Def2 ); // activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB - - v_Auth_Params := f_EUTRA_Security_Get(); - v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams);//@sic R5s130010 sic@ - v_Auth_Params.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetForHO (p_PCellId, tsc_DrbList_Def); // - f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); // - f_EUTRA_SS_NAS_CountSet ('00000000'O, omit); // - f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL(p_PCellId, - v_Auth_Params.AS_Integrity, - v_Auth_Params.AS_Ciphering, - cs_TimingInfo_Now); - - f_EUTRA_Security_Set(v_Auth_Params); + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(p_PCellId); // @sic R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ + f_EUTRA_CellInfo_SetC_RNTI ( p_SCellId, tsc_C_RNTI_Def2 ); //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 1) f_EUTRA_SS_CommonCellConfig(p_PCellId, cas_ULGrantAllocation_Def_REQ(p_PCellId, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - if (v_NoUL_SCell) //@sic R5s140775 sic@ - { - - f_EUTRA_SS_ConfigRachProcedure(p_SCellId, tsc_C_RNTI_Def2, cs_RachProcedureConfig_CRNTI(f_EUTRA_CellInfo_GetRAR_TA(p_SCellId), - f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellId))); - - f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ULGrantAllocation_REQ(p_SCellId, cs_TimingInfo_Now, -, cs_PUCCH_Synch_None)); + if (not v_NoUL_SCell) { //@sic R5s140775 sic@ + f_EUTRA_SS_ConfigRachProcedure(p_SCellId, tsc_C_RNTI_Def2, cs_RachProcedureConfig_CRNTI(f_EUTRA_CellInfo_GetRAR_TA(p_SCellId), + f_EUTRA_CellInfo_GetDL_ChBandwidth(p_SCellId))); + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_ULGrantAllocation_REQ(p_SCellId, cs_TimingInfo_Now, -, cs_PUCCH_Synch_None)); } - f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_SCellConfig_REQ(p_SCellId, cs_TimingInfo_Now, cs_SCellConfig(p_PCellId, 1, v_Scell_Capability, rf32))); - + f_EUTRA_SS_CommonCellConfig(p_SCellId, cas_SCellConfig_REQ(p_SCellId, cs_TimingInfo_Now, cs_SCellConfig(p_PCellId, 1, v_Scell_Capability, rf32,-,-, v_Pcell_Mode))); //@sic R5w150205 sic@ + // Configure default DRX on SS for Pcell and Scell + //@sic R5s140849 sic@ + v_DRX_Config := valueof(f_GetUeDrxConfig(DRX_L)); + f_EUTRA_SS_DrxCtrlConfig(p_PCellId, cs_DrxCtrl_Config(v_DRX_Config)); + f_EUTRA_SS_DrxCtrlConfig(p_SCellId, cs_DrxCtrl_Config(v_DRX_Config)); + // Send trigger to UTRAN to send the handover message as SS configuration for Pcell and Scell is complete f_IRAT_SendCoOrd (UTRAN, cms_IRAT_Trigger); // UTRAN side will do steps10&11 - //@siclog "Step 12" siclog@ + //@siclog "Step 13" siclog@ //check: does the UE tx a rrcconnectionreconfigurationcomplete message on cell1 using security key derived from new kENB? SRB.receive( car_SRB1_RrcPdu_IND( p_PCellId, cr_508_RRCConnectionReconfigurationComplete( v_RRC_TI ) ) ); /* SS automatically checks that UE transmit an RRCConnectionReconfigurationComplete using the indicated @@ -211,16 +220,12 @@ module InterRat_Handover_UtoE_CA // configure RACH procedure for target cell back to default f_EUTRA_SS_ConfigRachProcedure_Def(p_PCellId, -, -, -, -, -, false); - // Configure default DRX on SS for Pcell and Scell - v_DRX_Config := valueof(f_GetUeDrxConfig(DRX_L)); - f_EUTRA_SS_DrxCtrlConfig(p_PCellId, cs_DrxCtrl_Config(v_DRX_Config)); - f_EUTRA_SS_DrxCtrlConfig(p_SCellId, cs_DrxCtrl_Config(v_DRX_Config)); - //@siclog "Step 12A" siclog@ + //@siclog "Step 13A-13H" siclog@ //generic procedure in 36.508 subclause 6.4.2.10 on cell1 - f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(p_PCellId, v_Auth_Params_Native, v_NasCountInfo); + f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(p_PCellId, v_Auth_Params_Native, v_NasCountInfo, -, -, true); //@sic R5s150650 sic@ - //@siclog "Step 20" siclog@ + //@siclog "Step 14" siclog@ //check: does the test result of generic test procedure in TS 36.508 subclause 6.4.2.3 indicate that the UE is in E-UTRA RRC_CONNECTED state on Cell1? f_EUTRA_508Check_ConnectedState(p_PCellId); @@ -252,13 +257,13 @@ module InterRat_Handover_UtoE_CA f_TC_8_4_2_7_Common(eutra_Cell1, eutra_Cell10, CA_InterBand); } - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.4.2.7.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_4_2_7_3_EUTRA() runs on EUTRA_PTC { // CA / RRC connection reconfiguration / Handover UTRAN to E-UTRAN/ Success / SCell addition / Intra-band non-contiguous CA - f_TC_8_4_2_7_Common(eutra_Cell6, eutra_Cell3, CA_IntraBand); /* @sic R5-141113 sic@ */ + f_TC_8_4_2_7_Common(eutra_Cell1, eutra_Cell3, CA_IntraBandNonContiguous); /* @sic R5-141113 R5s150331 sic@ */ } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn index f4e6b77..5996d6c 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_4/InterRat_Handover_UtoE_CA_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module InterRat_Handover_UtoE_CA_UTRAN @@ -19,7 +19,7 @@ module InterRat_Handover_UtoE_CA_UTRAN import from UTRAN_Parameters all; import from UTRAN_Component all; import from UTRAN_CommonFunctions all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_CellInfo all; import from UTRAN_RRC_Templates all; import from UTRAN_RRC_Templates_r9 all; @@ -110,7 +110,7 @@ module InterRat_Handover_UtoE_CA_UTRAN //@sic R5-106560 sic@ //@siclog "Step 8a1 - 8a2" siclog@ if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired) { //Compressed mode only applicable in FDD @sic R5s120535 sic@ - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_842x(utran_Cell5); //@sic R5s120686 sic@ + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell5); //@sic R5s120686 sic@ v_CFNInfo := f_CalculateActTime(utran_Cell5); @@ -226,7 +226,7 @@ module InterRat_Handover_UtoE_CA_UTRAN //--------------------------- /* * @desc REFERENCE TS 36.523-1 clause 8.4.2.7.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_4_2_7_3_UTRAN() runs on UTRAN_PTC { /* CA / RRC connection reconfiguration / Handover UTRAN to E-UTRAN/ Success / SCell addition/ Intra-band non-contiguous CA*/ diff --git a/LTE_A_IWD_15wk38/LTE_A/8_5/RRC_Others_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_5/RRC_Others_CA.ttcn new file mode 100644 index 0000000..c451037 --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/8_5/RRC_Others_CA.ttcn @@ -0,0 +1,502 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ +/******************************************************************************/ + +module RRC_Others_CA +{ + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from EUTRA_CommonDefs all; + import from EUTRA_Component all; + import from EUTRA_ASP_SrbDefs all; + import from EUTRA_CommonProcedures all; + import from EUTRA_NASSteps all; + import from EUTRA_ConfigurationSteps all; + import from EUTRA_AspCommon_Templates all; + import from EUTRA_SRB_Templates all; + import from EUTRA_RRC_Templates all; + import from EUTRA_CellInfo all; + import from CommonDefs all; + import from EUTRA_CapabilityFunctions all; + + //========================================================================= + // Templates + //========================================================================= + type UECapabilityEnquiry_v1180_IEs.requestedFrequencyBands_r11 RequestedFrequencyBands_Type; + type RF_Parameters_v1180.requestedBands_r11 RequestedBands_Type; + type RF_Parameters_v1180.freqBandRetrieval_r11 FreqBandRetrieval_Type; + type RF_Parameters_v1180.supportedBandCombinationAdd_r11 SupportedBandCombinationAdd_Type; + + template (value) DL_DCCH_Message cs_UeCapabilityEnquiry_r11(RRC_TransactionIdentifier p_RRC_TI, + template (value) UE_CapabilityRequest p_UE_CapabilityRequest := cs_UE_CapabilityRequest_EUTRA, + template (omit) RequestedFrequencyBands_Type p_RequestedFrequencyBands_r11 := omit) := + { + message_ := { + c1 := { + ueCapabilityEnquiry := { + rrc_TransactionIdentifier := p_RRC_TI, + criticalExtensions := { + c1 := { + ueCapabilityEnquiry_r8 := { + ue_CapabilityRequest := p_UE_CapabilityRequest, + nonCriticalExtension := { + lateNonCriticalExtension := omit, + nonCriticalExtension := { + requestedFrequencyBands_r11 := p_RequestedFrequencyBands_r11, + nonCriticalExtension := omit + } + } + } + } + } + } + } + } + }; + + template UE_EUTRA_Capability cr_UeCapabilitiesRAT_Container_v1180( template FreqBandRetrieval_Type p_FreqBandRetrieval := supported, + template RequestedBands_Type p_RequestedBands := omit, + template SupportedBandCombinationAdd_Type p_SupportedBandCombinationAdd := omit) := + { + accessStratumRelease := ?, + ue_Category := ?, + pdcp_Parameters := ?, + phyLayerParameters := ?, + rf_Parameters := ?, + measParameters := ?, + featureGroupIndicators := *, + interRAT_Parameters := { + utraFDD := *, + utraTDD128 := *, + utraTDD384 := *, + utraTDD768 := *, + geran := *, + cdma2000_HRPD := *, + cdma2000_1xRTT := * + }, + nonCriticalExtension := { + phyLayerParameters_v920 := ?, + interRAT_ParametersGERAN_v920 := ?, + interRAT_ParametersUTRA_v920 := *, + interRAT_ParametersCDMA2000_v920 := *, + deviceType_r9 := *, + csg_ProximityIndicationParameters_r9 := ?, + neighCellSI_AcquisitionParameters_r9 := ?, + son_Parameters_r9 := ?, + nonCriticalExtension := { + lateNonCriticalExtension := *, + nonCriticalExtension := { + ue_Category_v1020 := *, + phyLayerParameters_v1020 := *, + rf_Parameters_v1020 := ?, + measParameters_v1020 := *, + featureGroupIndRel10_r10 := *, + interRAT_ParametersCDMA2000_v1020 := *, + ue_BasedNetwPerfMeasParameters_r10 := *, + interRAT_ParametersUTRA_TDD_v1020 := *, + nonCriticalExtension := { + fdd_Add_UE_EUTRA_Capabilities_v1060 := *, + tdd_Add_UE_EUTRA_Capabilities_v1060 := *, + rf_Parameters_v1060 := *, + nonCriticalExtension := { + rf_Parameters_v1090 := *, + nonCriticalExtension := { + pdcp_Parameters_v1130 := ?, + phyLayerParameters_v1130 := *, + rf_Parameters_v1130 := ?, + measParameters_v1130 := ?, + interRAT_ParametersCDMA2000_v1130 := ?, + otherParameters_r11 := ?, + fdd_Add_UE_EUTRA_Capabilities_v1130 := *, + tdd_Add_UE_EUTRA_Capabilities_v1130 := *, + nonCriticalExtension := { + phyLayerParameters_v1170 := *, + ue_Category_v1170 := *, + nonCriticalExtension := { + rf_Parameters_v1180 := { + freqBandRetrieval_r11 := p_FreqBandRetrieval, + requestedBands_r11 := p_RequestedBands, + supportedBandCombinationAdd_r11 := p_SupportedBandCombinationAdd + }, + mbms_Parameters_r11 := *, + fdd_Add_UE_EUTRA_Capabilities_v1180 := *, + tdd_Add_UE_EUTRA_Capabilities_v1180 := *, + nonCriticalExtension := * + } + } + } + } + } + } + } + } + }; + + /* + * @desc check the reported UE Category vs. UE Category PICS items. + * Inconsistency leads to verdict INCONCLUSIVE + * @param p_ReceivedCapabilityMsg + * @status + */ + function f_CheckUE_V1180 (UE_EUTRA_Capability p_ReceivedCapabilityMsg) + { + var template RF_Parameters_v1180 v_RF_Parameters_v1180; + + if (ispresent(p_ReceivedCapabilityMsg.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.rf_Parameters_v1180)) { + v_RF_Parameters_v1180 := p_ReceivedCapabilityMsg.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.rf_Parameters_v1180 ; + } + else { + f_SetVerdictInconc(__FILE__, __LINE__, "Rel 11 version supported does not provide the expected information (v1180) - test case stopped"); + } + } + + /* + * @desc Function to match the received UECapabilityInformation with the expected UECapabilityInformation. + * Reference 36.523-1 Table 8.5.4.2/3.3.3-2/4 + * @param p_ReceivedCapabilityMsg .. received ueCapabilitiesRAT-Container + * @param p_Expected_Ue_Eutra_Capability .. expected ueCapabilitiesRAT-Container (set by function f_EUTRA_SetExpectedUeEutraCap_v1180) + * @status + */ + function f_EUTRA_MatchEutraCapMsgs_v1180(UE_EUTRA_Capability p_ReceivedCapabilityMsg, + template UE_EUTRA_Capability p_Expected_Ue_Eutra_Capability) + { + var UE_EUTRA_Capability v_ReceivedCapabilityMsg; + var template UE_EUTRA_Capability v_Expected_Ue_Eutra_Capability; + + v_ReceivedCapabilityMsg := p_ReceivedCapabilityMsg; + v_Expected_Ue_Eutra_Capability := p_Expected_Ue_Eutra_Capability; + + f_CheckUE_V1180(v_ReceivedCapabilityMsg); + + // Match the received decoded template with the expected template + if (not match(v_ReceivedCapabilityMsg, v_Expected_Ue_Eutra_Capability)) { + f_SetVerdict(fail, __FILE__, __LINE__, "Test Case 8.5.4.2/3 Step 2/4 - Received decoded template (Rel 11) does not match with the expected template"); + } + } + + /* + * @desc Function to send/receive UECapabilitymessage and check the message received + * @param p_CellId + * @param p_UeCapabilityEnquiryMsg .. UeCapabilityEnquiry to be sent + * @param p_Expected_Ue_Eutra_Capability .. expected ueCapabilitiesRAT-Container + * @status + */ + function f_EUTRA_UECapabilityandCheckReceivedMessage_v1180(EUTRA_CellId_Type p_CellId, + template (value) DL_DCCH_Message p_UeCapabilityEnquiryMsg, + template UE_EUTRA_Capability p_Expected_Ue_Eutra_Capability) runs on EUTRA_PTC return UE_EUTRA_Capability + { + var UE_EUTRA_Capability v_ReceivedCapabilityMsg; + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var SRB_COMMON_IND v_ReceivedAspForUeCapabilityInfo; + + SRB.send(cas_SRB1_RrcPdu_REQ( p_CellId, cs_TimingInfo_Now, p_UeCapabilityEnquiryMsg)); + + //@siclog "Step 2" siclog@ + //UE transmits a UECapabilityInformation message. + SRB.receive(car_SRB1_RrcPdu_IND( p_CellId, cr_508_UeCapabilityInformation(v_RRC_TI, cr_EutraCapInfo))) -> value v_ReceivedAspForUeCapabilityInfo; + + v_ReceivedCapabilityMsg := f_EUTRA_DecodeEutraCapMsg(v_ReceivedAspForUeCapabilityInfo.Signalling.Rrc.Dcch.message_.c1.ueCapabilityInformation.criticalExtensions.c1.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList[0].ueCapabilityRAT_Container); + + select (v_ReceivedCapabilityMsg.accessStratumRelease) { + case (rel8, rel9, rel10) { + f_SetVerdictInconc (__FILE__, __LINE__, "Test Case not applicable for UE AccessStratumRelease "); + } + case else { + // Match the ueCapabilitiesRAT-Container + f_EUTRA_MatchEutraCapMsgs_v1180(v_ReceivedCapabilityMsg, p_Expected_Ue_Eutra_Capability); + } + } + return v_ReceivedCapabilityMsg; + } + + /* + * @desc Function to check if the first CA combination contains B3? + * @param p_Received_Ue_Eutra_Capability .. received uecapabilityinformation + * @param p_FreqBandIndicator3 .. expected B3 + * @status + */ + function f_EUTRA_CheckFirstCombination_ContainB3(UE_EUTRA_Capability p_Received_Ue_Eutra_Capability, + FreqBandIndicator p_FreqBandIndicator3) runs on EUTRA_PTC + { + var UE_EUTRA_Capability v_ReceivedCapabilityMsg := p_Received_Ue_Eutra_Capability; + var integer i, j, v_BandCombinationParametersCnt; + var boolean v_BreakFlag := false; + var FreqBandIndicator v_FreqBandIndicator3 := p_FreqBandIndicator3; + var RF_Parameters_v1020 v_RF_Parameters_v1020; + + v_RF_Parameters_v1020 := v_ReceivedCapabilityMsg.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.rf_Parameters_v1020; + + for(i := 0; i < 128; i := i+1) { + if(ispresent(v_RF_Parameters_v1020.supportedBandCombination_r10[i])){ + v_BandCombinationParametersCnt := lengthof(v_RF_Parameters_v1020.supportedBandCombination_r10[i]); + if(ispresent(v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandParametersDL_r10[0])){ + if((v_BandCombinationParametersCnt !=1) or((v_BandCombinationParametersCnt ==1) and (v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandParametersDL_r10[0].ca_BandwidthClassDL_r10 != a))) + { + for (j := 0; j < v_BandCombinationParametersCnt; j := j+1){ + if((v_FreqBandIndicator3 == v_RF_Parameters_v1020.supportedBandCombination_r10[i][j].bandEUTRA_r10)){ + v_BreakFlag := true; + break; + } + } + } + } + } + else + { + break; + } + } + + if( v_BreakFlag){ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "The first listed 2DL+1UL CA band combination contains a band equal to the band stored in test variable B3"); + }else{ + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "The first listed 2DL+1UL CA band combination does not contain a band equal to the band stored in test variable B3"); + } + } + + /* + * @desc Function to set the requestedbands which will be needed in step3/4 + * @param p_Received_Ue_Eutra_Capability .. received uecapabilityinformation + * @param p_RequestedFrequencyBands(out) .. used for uecapabilityEquiry + * @param p_RequestedBands (out) .. used for checking received uecapabilityinformation + * @param p_FreqBandIndicator3 (out) .. used for checking B3 is in first combination + * @status + */ + function f_EUTRA_SetRequestedBands(UE_EUTRA_Capability p_Received_Ue_Eutra_Capability, + out RequestedFrequencyBands_Type p_RequestedFrequencyBands, + out RequestedBands_Type p_RequestedBands, + out FreqBandIndicator p_FreqBandIndicator3) runs on EUTRA_PTC + { + var UE_EUTRA_Capability v_ReceivedCapabilityMsg := p_Received_Ue_Eutra_Capability; + var boolean v_BreakFlag := false; + var FreqBandIndicator v_FreqBandIndicator1, v_FreqBandIndicator2, v_FreqBandIndicator3; + var RF_Parameters_v1020 v_RF_Parameters_v1020; + var RequestedFrequencyBands_Type v_RequestedFrequencyBands; + var RequestedBands_Type v_RequestedBands; + var integer i, j, v_BandCombinationParametersCnt, v_SupportedBandListEUTRACnt, v_RequestedBandCnt; + + v_RF_Parameters_v1020 := v_ReceivedCapabilityMsg.nonCriticalExtension.nonCriticalExtension.nonCriticalExtension.rf_Parameters_v1020; + + for(i := 0; i < 128; i := i+1) { + if(ispresent(v_RF_Parameters_v1020.supportedBandCombination_r10[i])){ + v_BandCombinationParametersCnt := lengthof(v_RF_Parameters_v1020.supportedBandCombination_r10[i]); + if(ispresent(v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandParametersDL_r10[0])){ + if((v_BandCombinationParametersCnt !=1) or((v_BandCombinationParametersCnt ==1) and (v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandParametersDL_r10[0].ca_BandwidthClassDL_r10 != a))) + { + //set variables B1 + v_FreqBandIndicator1 := v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandEUTRA_r10; + if(v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandParametersDL_r10[0].ca_BandwidthClassDL_r10 != a){ //one band at least two CCs + v_FreqBandIndicator2 := v_FreqBandIndicator1; + } + else{// one band one CC + if(ispresent(v_RF_Parameters_v1020.supportedBandCombination_r10[i][1].bandEUTRA_r10)){ + v_FreqBandIndicator2 := v_RF_Parameters_v1020.supportedBandCombination_r10[i][1].bandEUTRA_r10; + } + else { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "f_EUTRA_SetRequestedBands: RF_Parameters_v1020.supportedBandCombination_r10[0][1].bandEUTRA_r10 not present"); + } + } + v_BreakFlag := true; + break; + } + } + } + } + //if no B1, B2, set fail + if( not v_BreakFlag) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Test Case 8.5.4.2/3 Step 2 - There're no CA bands for B1, B2"); + } + + //if ca_BandwidthClassDL_r10 == a, which means one band one CC, otherwise there will be at least two CCs in one band for intra-band combinations. + //set variables B2 + + v_BreakFlag := false; + //set variables B3 + for(i := 0; i < 128; i := i+1) { + if(ispresent(v_RF_Parameters_v1020.supportedBandCombination_r10[i])){ + v_BandCombinationParametersCnt := lengthof(v_RF_Parameters_v1020.supportedBandCombination_r10[i]); + if((v_BandCombinationParametersCnt !=1) or((v_BandCombinationParametersCnt ==1) and (v_RF_Parameters_v1020.supportedBandCombination_r10[i][0].bandParametersDL_r10[0].ca_BandwidthClassDL_r10 != a))) + { + for (j := 0; j < v_BandCombinationParametersCnt; j := j+1){ + if((v_FreqBandIndicator1 != v_RF_Parameters_v1020.supportedBandCombination_r10[i][j].bandEUTRA_r10) + and (v_FreqBandIndicator2 != v_RF_Parameters_v1020.supportedBandCombination_r10[i][j].bandEUTRA_r10)){ + v_FreqBandIndicator3 := v_RF_Parameters_v1020.supportedBandCombination_r10[i][j].bandEUTRA_r10; + v_BreakFlag := true; + break; + } + } + } + } + if(v_BreakFlag == true){ + break; + } + } + //if no B3, set fail + if( not v_BreakFlag) + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Test Case 8.5.4.2/3 Step 2 - There're no other bands which are not equal to B1&B2"); + } + + //set parameters used in step3 and step4 + //set B3 as the first requestedFrequencyBands, B1 as the second one + v_RequestedFrequencyBands[0] := v_FreqBandIndicator3; + v_RequestedFrequencyBands[1] := v_FreqBandIndicator1; + v_RequestedBands[0] := v_FreqBandIndicator3; + v_RequestedBands[1] := v_FreqBandIndicator1; + + //then set other bands + v_SupportedBandListEUTRACnt := lengthof( v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA); + + if(v_SupportedBandListEUTRACnt > 16){ + v_RequestedBandCnt := 16; + } + else{ + v_RequestedBandCnt := v_SupportedBandListEUTRACnt; + } + + j := 0; + for(i := 0; i < v_RequestedBandCnt; i := i+1 ){ + if(( v_FreqBandIndicator1 != v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[i].bandEUTRA) + and (v_FreqBandIndicator3 != v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[i].bandEUTRA)){ + v_RequestedFrequencyBands[j+2] := v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[i].bandEUTRA; + v_RequestedBands[j+2] := v_ReceivedCapabilityMsg.rf_Parameters.supportedBandListEUTRA[i].bandEUTRA; + j := j + 1; + } + } + + p_RequestedFrequencyBands := v_RequestedFrequencyBands; + p_RequestedBands := v_RequestedBands; + p_FreqBandIndicator3 := v_FreqBandIndicator3; + } + + /* + * @desc REFERENCE TS 36.523-1 clause 8.5.4.2 + * @status + */ + function f_TC_8_5_4_2_EUTRA() runs on EUTRA_PTC + {//Network-requested CA Band Combination Capability Signalling / Number of UE supported CA band combinations less than or equal to 128 + + f_EUTRA_Init(c1); + + //Create and configure all cells + f_EUTRA_CellConfig_Def ( eutra_Cell1 ); + + //Bring UE to initial state + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + f_EUTRA_RbEst_Def (eutra_Cell1); + + f_EUTRA_TestBody_Set ( true ); + + fl_TC_8_5_4_2_Body(); + + f_EUTRA_TestBody_Set ( false ); + + f_EUTRA_Postamble ( eutra_Cell1, E2_CONNECTED ); + } + + /* + * @desc test body of TC_8_5_4_2 + * @status + */ + function fl_TC_8_5_4_2_Body() runs on EUTRA_PTC + { + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var UE_EUTRA_Capability v_ReceivedCapabilityMsg; + var RequestedFrequencyBands_Type v_RequestedFrequencyBands; + var RequestedBands_Type v_RequestedBands; + var FreqBandIndicator v_FreqBandIndicator3; + + //@siclog "Step 1 - 2" siclog@ + //The SS transmits a UECapabilityEnquiry message to request UE radio access capability information for E UTRA only. The IE requestedFrequencyBands is not included + //UE transmits a UECapabilityInformation message. + v_ReceivedCapabilityMsg := f_EUTRA_UECapabilityandCheckReceivedMessage_v1180(eutra_Cell1, cs_508_UeCapabilityEnquiry(v_RRC_TI), cr_UeCapabilitiesRAT_Container_v1180); + + //The reference to supportedBandCombinations and supportedBandListEUTRA below refers to the IEs received by the SS in the UECapabilityInformation message in step 2. + //The SS locates the first 2DL+1UL CA band combination in the supportedBandCombinations. + //If the first CA band combination is an intra-band combination the SS stores the value of the IE bandEUTRA-r10 in the test variables B1 and B2. + //If the first CA band combination is an inter-band combination the SS stores the value of the IE bandEUTRA-r10 for each of the bands in the test variables B1 and B2 respectively. + //The SS searches in the supportedBandCombinations for a 2DL+1UL CA band combination where the band or bands are different from the bands stored in the test variables B1 and B2. + //The SS stores the value of the IE bandEUTRA-r10 of the band (intra-band case) or of one of the bands (inter-band case) in the test variable B3. + f_EUTRA_SetRequestedBands(v_ReceivedCapabilityMsg, v_RequestedFrequencyBands, v_RequestedBands, v_FreqBandIndicator3); + + //@siclog "Step 3 - 4" siclog@ + //The SS transmits a UECapabilityEnquiry message including the IE requestedFrequencyBands with the first requested frequency band entry set to the value of the test variable B3, + //the second entry to the value of the test variable B1 and the successive entries 3 to n set to frequency bands different from B1 and B3 derived from the UE indicated supported bands + //in IE supportedBandListEUTRA received by the SS in the UECapabilityInformation message in step 2 and where n is MIN(16, number of UE supported bands) + //Check: Does the UE transmit a UECapabilityInformation message with IE supportedBandCombination where the first listed 2DL+1UL CA band combination contains a band equal to the band stored in test variable B3; + //and where IE requestedBands have the same content as the IE requestedFrequencyBands sent by the SS in step 3? + v_ReceivedCapabilityMsg := f_EUTRA_UECapabilityandCheckReceivedMessage_v1180(eutra_Cell1, cs_UeCapabilityEnquiry_r11(v_RRC_TI, - , valueof(v_RequestedFrequencyBands)), cr_UeCapabilitiesRAT_Container_v1180(-, v_RequestedBands)); + + //check if the first CA combination contains B3? + f_EUTRA_CheckFirstCombination_ContainB3( v_ReceivedCapabilityMsg, v_FreqBandIndicator3); + } + + /* + * @desc REFERENCE TS 36.523-1 clause 8.5.4.3 + * @status + */ + function f_TC_8_5_4_3_EUTRA() runs on EUTRA_PTC + {//Network-requested CA Band Combination Capability Signalling / Number of UE supported CA band combinations exceeds 128 + + f_EUTRA_Init(c1); + + //Create and configure all cells + f_EUTRA_CellConfig_Def ( eutra_Cell1 ); + + //Bring UE to initial state + f_EUTRA_Preamble (eutra_Cell1, STATE2_IDLEUPDATE); + f_EUTRA_RbEst_Def (eutra_Cell1); + + f_EUTRA_TestBody_Set ( true ); + + fl_TC_8_5_4_3_Body(); + + f_EUTRA_TestBody_Set ( false ); + + f_EUTRA_Postamble ( eutra_Cell1, E2_CONNECTED ); + } + + /* + * @desc test body of TC_8_5_4_3 + * @status + */ + function fl_TC_8_5_4_3_Body() runs on EUTRA_PTC + { + var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; + var UE_EUTRA_Capability v_ReceivedCapabilityMsg; + var RequestedFrequencyBands_Type v_RequestedFrequencyBands; + var RequestedBands_Type v_RequestedBands; + var FreqBandIndicator v_FreqBandIndicator3; + + //@siclog "Step 1 - 2" siclog@ + //The SS transmits a UECapabilityEnquiry message to request UE radio access capability information for E UTRA only. The IE requestedFrequencyBands is not included + //Check: Does the UE transmit a UECapabilityInformation message including IE supportedBandCombination, but not including IE supportedBandCombinationAdd? + v_ReceivedCapabilityMsg := f_EUTRA_UECapabilityandCheckReceivedMessage_v1180(eutra_Cell1, cs_508_UeCapabilityEnquiry(v_RRC_TI), cr_UeCapabilitiesRAT_Container_v1180); + + //The reference to supportedBandCombinations and supportedBandListEUTRA below refers to the IEs received by the SS in the UECapabilityInformation message in step 2. + //The SS locates the first 2DL+1UL CA band combination in the supportedBandCombinations. + //If the first CA band combination is an intra-band combination the SS stores the value of the IE bandEUTRA-r10 in the test variables B1 and B2. + //If the first CA band combination is an inter-band combination the SS stores the value of the IE bandEUTRA-r10 for each of the bands in the test variables B1 and B2 respectively. + //The SS searches in the supportedBandCombinations for a 2DL+1UL CA band combination where the band or bands are different from the bands stored in the test variables B1 and B2. + //The SS stores the value of the IE bandEUTRA-r10 of the band (intra-band case) or of one of the bands (inter-band case) in the test variable B3. + f_EUTRA_SetRequestedBands(v_ReceivedCapabilityMsg, v_RequestedFrequencyBands, v_RequestedBands, v_FreqBandIndicator3); + + //@siclog "Step 3 - 4" siclog@ + //The SS transmits a UECapabilityEnquiry message including the IE requestedFrequencyBands with the first requested frequency band entry set to the value of the test variable B3, + //the second entry to the value of the test variable B1 and the successive entries 3 to n set to frequency bands different from B1 and B3 derived from the UE indicated supported bands + //in IE supportedBandListEUTRA received by the SS in the UECapabilityInformation message in step 2 and where n is MIN(16, number of UE supported bands) + //Check: Does the UE transmit a UECapabilityInformation message with IE supportedBandCombination where the first listed 2DL+1UL CA band combination contains a band equal to the band stored in test variable B3; and is including IEs supportedBandCombinationAdd and requestedBand; + //and where IE requestedBands have the same content as the IE requestedFrequencyBands sent by the SS in step 3? + v_ReceivedCapabilityMsg := f_EUTRA_UECapabilityandCheckReceivedMessage_v1180(eutra_Cell1, cs_UeCapabilityEnquiry_r11(v_RRC_TI, - , valueof(v_RequestedFrequencyBands)), cr_UeCapabilitiesRAT_Container_v1180(-, v_RequestedBands, ?)); + + //check if the first CA combination contains B3? + f_EUTRA_CheckFirstCombination_ContainB3( v_ReceivedCapabilityMsg, v_FreqBandIndicator3); + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn index 1ffdb61..71d9fae 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_5/RRC_RadioLinkFailure_CA.ttcn @@ -2,18 +2,14 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-03 08:56:48 +0200 (Tue, 03 Jun 2014) $ -// $Rev: 11462 $ +// @version: IWD_15wk38 +// $Date: 2015-02-17 10:55:08 +0100 (Tue, 17 Feb 2015) $ +// $Rev: 12932 $ /******************************************************************************/ module RRC_RadioLinkFailure_CA { -//========================================================================= -// Import Part -//========================================================================= - import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; import from EUTRA_CommonDefs all; import from EUTRA_CellInfo all; @@ -27,6 +23,7 @@ module RRC_RadioLinkFailure_CA import from EUTRA_CommonFunctions_CA all; import from EUTRA_CellInfoInit_CA all; import from EUTRA_RRC_Templates all; + import from EUTRA_NASSteps all; /* @@ -156,11 +153,11 @@ module RRC_RadioLinkFailure_CA /* * @desc REFERENCE TS 36.523-1 clause 8.5.1.7.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_5_1_7_3_EUTRA () runs on EUTRA_PTC { /* CA / No Radio Link Failure on SCell / RRC Connection Continues on PCell / Intra-band non-Contiguous CA */ - f_TC_8_5_1_7_Common (eutra_Cell6, eutra_Cell3,CA_IntraBand); /* @sic R5-141113 sic@ */ + f_TC_8_5_1_7_Common (eutra_Cell1, eutra_Cell3,CA_IntraBandNonContiguous); /* @sic R5-141113 R5s150332 sic@ */ } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn similarity index 92% rename from LTE_A_IWD_14wk37/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn index a23c046..d7a43e4 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/EUTRA_MDT_Specific_Templates.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 14:38:37 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14397 $ /******************************************************************************/ module EUTRA_MDT_Specific_Templates { @@ -30,16 +30,16 @@ module EUTRA_MDT_Specific_Templates { type RRCConnectionReconfigurationComplete_v1020_IEs.rlf_InfoAvailable_r10 RRCConnectionReconfigurationComplete_rlf_InfoAvailable_Type; /* @status APPROVED (LTE_A) */ type UEInformationResponse_r9_IEs.rach_Report_r9 UEInformationResponse_r9_IEs_rach_Report_Type; /* @status APPROVED (LTE_A) */ - type RLF_Report_r9.failedPCellId_v1090 RLF_Report_failedPCellId_v1090_Type; - type RLF_Report_r9.previousUTRA_CellId_r11 RLF_Report_previousUTRA_CellId_r11_Type; - type RLF_Report_r9.selectedUTRA_CellId_r11 RLF_Report_selectedUTRA_CellId_r11_Type; - type RLF_Report_r9.basicFields_r11.rlf_Cause_r11 RLF_Report_basicFields_r11_rlf_Cause_r11_Type; - type RLF_Report_r9.basicFields_r11 RLF_Report_basicFields_r11_Type; - type RRCConnectionReconfigurationComplete_v1130_IEs.connEstFailInfoAvailable_r11 RRCConnectionReconfigurationComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type; - type UEInformationRequest_v1020_IEs.logMeasReportReq_r10 UEInformationRequest_v1020_IEs_logMeasReportReq_r10_type; - type RRCConnectionSetupComplete_v1130_IEs.connEstFailInfoAvailable_r11 RRCConnectionSetupComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type; - type RRCConnectionReestablishmentComplete_v1130_IEs.connEstFailInfoAvailable_r11 RRCConnectionReestablishmentComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type; - type UEInformationRequest_v1130_IEs.connEstFailReportReq_r11 UEInformationRequest_v1130_IEs_connEstFailReportReq_r11_Type; + type RLF_Report_r9.failedPCellId_v1090 RLF_Report_failedPCellId_v1090_Type; /* @status APPROVED (LTE_A) */ + type RLF_Report_r9.previousUTRA_CellId_r11 RLF_Report_previousUTRA_CellId_r11_Type; /* @status APPROVED (LTE_A) */ + type RLF_Report_r9.selectedUTRA_CellId_r11 RLF_Report_selectedUTRA_CellId_r11_Type; /* @status APPROVED (LTE_A) */ + type RLF_Report_r9.basicFields_r11.rlf_Cause_r11 RLF_Report_basicFields_r11_rlf_Cause_r11_Type; /* @status APPROVED (LTE_A) */ + type RLF_Report_r9.basicFields_r11 RLF_Report_basicFields_r11_Type; /* @status APPROVED (LTE_A) */ + type RRCConnectionReconfigurationComplete_v1130_IEs.connEstFailInfoAvailable_r11 RRCConnectionReconfigurationComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type; /* @status APPROVED (LTE_A) */ + type UEInformationRequest_v1020_IEs.logMeasReportReq_r10 UEInformationRequest_v1020_IEs_logMeasReportReq_r10_type; /* @status APPROVED (LTE_A) */ + type RRCConnectionSetupComplete_v1130_IEs.connEstFailInfoAvailable_r11 RRCConnectionSetupComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type; /* @status APPROVED (LTE_A) */ + type RRCConnectionReestablishmentComplete_v1130_IEs.connEstFailInfoAvailable_r11 RRCConnectionReestablishmentComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type; /* @status APPROVED (LTE_A) */ + type UEInformationRequest_v1130_IEs.connEstFailReportReq_r11 UEInformationRequest_v1130_IEs_connEstFailReportReq_r11_Type; /* @status APPROVED (LTE_A) */ //**************************************************************** //Specific Templates @@ -52,23 +52,15 @@ module EUTRA_MDT_Specific_Templates { cellIdentity := p_CellIdentity }; - template (value) RRCConnectionReconfiguration_v890_IEs cs_RRCConnectionReconfiguration_ObtainLocationSetup_IEs := - { - lateNonCriticalExtension := omit, - nonCriticalExtension := { - otherConfig_r9 := { - reportProximityConfig_r9 := omit, - idc_Config_r11 := omit, - powerPrefIndicationConfig_r11 := omit, - obtainLocationConfig_r11 := { - obtainLocation_r11 := setup - } - }, - fullConfig_r9 := omit, - nonCriticalExtension := omit - } + template (value) ObtainLocationConfig_r11 cs_ObtainLocationConfig_r11 := + { /* @status APPROVED (LTE_A) */ + obtainLocation_r11 := setup }; + template (value) RRCConnectionReconfiguration_v890_IEs cs_RRCConnectionReconfiguration_ObtainLocationSetup_IEs := + /* @status APPROVED (LTE_A) */ + cs_RRCConnectionReconfiguration_v890_IEs(cs_RRCConnectionReconfiguration_v920_IEs(cs_OtherConfig_r9(-, -, cs_ObtainLocationConfig_r11))); + //**************************************************************************** // failedPCellId_r10 Templates //---------------------------------------------------------------------------- @@ -93,29 +85,30 @@ module EUTRA_MDT_Specific_Templates { template (present) RLF_Report_basicFields_r11_Type cr_RLF_Report_basicFields_r11(template C_RNTI p_Crnti := *, template RLF_Report_basicFields_r11_rlf_Cause_r11_Type p_Rlf_Cause_r11 := *, template TimeSinceFailure_r11 p_TimeSinceFailure_r11 := *) := - { - c_RNTI_r11 := p_Crnti, - rlf_Cause_r11 := p_Rlf_Cause_r11, - timeSinceFailure_r11 := p_TimeSinceFailure_r11 + { /* @status APPROVED (LTE_A) */ + c_RNTI_r11 := p_Crnti, + rlf_Cause_r11 := p_Rlf_Cause_r11, + timeSinceFailure_r11 := p_TimeSinceFailure_r11 }; - - template (present) RLF_Report_selectedUTRA_CellId_r11_Type cr_RLF_Report_selectedUTRA_CellId_r11_FDD(template ARFCN_ValueUTRA p_Arfcn:= *, + + template (present) RLF_Report_selectedUTRA_CellId_r11_Type cr_RLF_Report_selectedUTRA_CellId_r11_FDD(template ARFCN_ValueUTRA p_Arfcn:= *, template PhysCellIdUTRA_FDD p_PhysCellid:= *) := { - carrierFreq_r11 := p_Arfcn, - physCellId_r11 :={ - fdd_r11 := p_PhysCellid - } - } - + carrierFreq_r11 := p_Arfcn, + physCellId_r11 :={ + fdd_r11 := p_PhysCellid + } + }; + template (present) RLF_Report_selectedUTRA_CellId_r11_Type cr_RLF_Report_selectedUTRA_CellId_r11_TDD(template ARFCN_ValueUTRA p_Arfcn:= *, template PhysCellIdUTRA_TDD p_PhysCellid:= *) := { - carrierFreq_r11 := p_Arfcn, - physCellId_r11 :={ - tdd_r11 := p_PhysCellid - } - } + carrierFreq_r11 := p_Arfcn, + physCellId_r11 :={ + tdd_r11 := p_PhysCellid + } + }; + //**************************************************************************** // AreaConfiguration Templates //---------------------------------------------------------------------------- @@ -140,12 +133,12 @@ module EUTRA_MDT_Specific_Templates { }; template (value) AreaConfiguration_v1130 cs_AreaConfiguration_v1130(TrackingAreaCodeList_v1130.plmn_Identity_perTAC_List_r11 p_PLMN_Identity_perTAC_List_r11) := - { + { /* @status APPROVED (LTE_A) */ trackingAreaCodeList_v1130 := { plmn_Identity_perTAC_List_r11 := p_PLMN_Identity_perTAC_List_r11 } }; - + //**************************************************************************** // LocationInfo_r10 Templates //---------------------------------------------------------------------------- @@ -174,27 +167,27 @@ module EUTRA_MDT_Specific_Templates { //---------------------------------------------------------------------------- template (present) LocationInfo_r10.locationCoordinates_r10 cr_EllipsoidPointWithUncertaintyCircle_r11(template octetstring p_EllipsoidPointWithUncertaintyCircle_r11) := - { + { /* @status APPROVED (LTE_A) */ ellipsoidPointWithUncertaintyCircle_r11 := p_EllipsoidPointWithUncertaintyCircle_r11 }; template (present) LocationInfo_r10.locationCoordinates_r10 cr_EllipsoidPointWithUncertaintyEllipse_r11(template octetstring p_EllipsoidPointWithUncertaintyEllipse_r11) := - { + { /* @status APPROVED (LTE_A) */ ellipsoidPointWithUncertaintyEllipse_r11 := p_EllipsoidPointWithUncertaintyEllipse_r11 }; template (present) LocationInfo_r10.locationCoordinates_r10 cr_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11(template octetstring p_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11) := - { + { /* @status APPROVED (LTE_A) */ ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11 := p_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11 }; template (present) LocationInfo_r10.locationCoordinates_r10 cr_EllipsoidArc_r11(template octetstring p_EllipsoidArc_r11) := - { + { /* @status APPROVED (LTE_A) */ ellipsoidArc_r11 := p_EllipsoidArc_r11 }; template (present) LocationInfo_r10.locationCoordinates_r10 cr_Polygon_r11(template octetstring p_Polygon_r11) := - { + { /* @status APPROVED (LTE_A) */ polygon_r11 := p_Polygon_r11 }; @@ -218,7 +211,9 @@ module EUTRA_MDT_Specific_Templates { measResult := { rsrpResult := p_RsrpResult, rsrqResult := p_RsrqResult, - additionalSI_Info_r9 := p_AdditionalSI_Info_r9 + additionalSI_Info_r9 := p_AdditionalSI_Info_r9, + primaryPLMN_Suitable_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResult_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ } } } @@ -245,7 +240,8 @@ module EUTRA_MDT_Specific_Templates { measResult := { utra_RSCP := p_UTRA_RSCP, utra_EcN0 := p_UTRA_EcN0, - additionalSI_Info_r9 := p_AdditionalSI_Info_r9 + additionalSI_Info_r9 := p_AdditionalSI_Info_r9, + primaryPLMN_Suitable_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ } } } @@ -306,7 +302,7 @@ module EUTRA_MDT_Specific_Templates { template MeasResultList2UTRA_r9 p_MeasResultListUTRA_r9 := omit, template MeasResultListGERAN p_MeasResultListGERAN := omit, template MeasResultList2CDMA2000_r9 p_MeasResultListCDMA2000_r9 := omit) := - { + { /* @status APPROVED (LTE_A) */ measResultListEUTRA_r11 := p_MeasResultListEUTRA_r9, measResultListUTRA_r11 := p_MeasResultListUTRA_r9, measResultListGERAN_r11 := p_MeasResultListGERAN, @@ -332,7 +328,11 @@ module EUTRA_MDT_Specific_Templates { rsrqResult_r10 := p_RsrqResult }, measResultNeighCells_r10 := p_MeasResultNeighCells, - measResultListEUTRA_v1090 := * /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + measResultListEUTRA_v1090 := *, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + measResultListMBSFN_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultServCell_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + servCellRSRQ_Type_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultListEUTRA_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ }; template (present) LogMeasInfoList_r10 cr_LogMeasInfo_1Entry(template (present) LogMeasInfo_r10 p_LogMeasInfo) := @@ -349,8 +349,7 @@ module EUTRA_MDT_Specific_Templates { template (value) LoggedMeasurementConfiguration_v1080_IEs cs_LoggedMeasurementConfiguration_v1080_IEs(template (omit) PLMN_IdentityList3_r11 p_PLMN_IdentityList3_r11 := omit, template (omit) AreaConfiguration_v1130 p_AreaConfiguration_v1130 := omit) := - { - /* @status */ + { /* @status APPROVED (LTE_A) */ lateNonCriticalExtension_r10 := omit, nonCriticalExtension := { plmn_IdentityList_r11 := p_PLMN_IdentityList3_r11, @@ -371,7 +370,11 @@ module EUTRA_MDT_Specific_Templates { template CellGlobalIdEUTRA p_Cgi_Info_ReestablishmentCellId_r10, template integer p_TimeConnFailure_r10, template RLF_Report_r9.connectionFailureType_r10 p_ConnectionFailureType_r10, - template CellGlobalIdEUTRA p_Cgi_Info_PreviousPCellId_r10) := + template CellGlobalIdEUTRA p_Cgi_Info_PreviousPCellId_r10, + template RLF_Report_failedPCellId_v1090_Type p_FailedPCellId_v1090 := *, + template RLF_Report_basicFields_r11_Type p_BasicFields_r11 := *, + template RLF_Report_previousUTRA_CellId_r11_Type p_PreviousUTRA_CellId_r11 := *, + template RLF_Report_selectedUTRA_CellId_r11_Type p_SelectedUTRA_CellId_r11 := *) := { /* @status APPROVED (LTE_A) */ measResultLastServCell_r9 := { rsrpResult_r9 := p_RsrpResult, @@ -385,46 +388,14 @@ module EUTRA_MDT_Specific_Templates { connectionFailureType_r10 := p_ConnectionFailureType_r10, previousPCellId_r10 := p_Cgi_Info_PreviousPCellId_r10, - failedPCellId_v1090 := *, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - basicFields_r11 := *, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - previousUTRA_CellId_r11 := *, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - selectedUTRA_CellId_r11 := * /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - }; - - //**************************************************************************** - // RLF_Report_r11 Templates - //---------------------------------------------------------------------------- - - template (present) RLF_Report_r9 cr_RLF_Report_1Entry_r11(template RSRP_Range p_RsrpResult, - template RSRQ_Range p_RsrqResult, - template RLF_Report_r9.measResultNeighCells_r9 p_MeasResultNeighCells := *, - template LocationInfo_r10 p_LocationInfo_r10, - template RLF_Report_r9.failedPCellId_r10 p_FailedPCellId_r10, - template CellGlobalIdEUTRA p_Cgi_Info_ReestablishmentCellId_r10, - template integer p_TimeConnFailure_r10, - template RLF_Report_r9.connectionFailureType_r10 p_ConnectionFailureType_r10, - template CellGlobalIdEUTRA p_Cgi_Info_PreviousPCellId_r10, - template RLF_Report_failedPCellId_v1090_Type p_FailedPCellId_v1090 := *, - template RLF_Report_basicFields_r11_Type p_BasicFields_r11 := *, - template RLF_Report_previousUTRA_CellId_r11_Type p_PreviousUTRA_CellId_r11 := *, - template RLF_Report_selectedUTRA_CellId_r11_Type p_SelectedUTRA_CellId_r11 := *) := - { - measResultLastServCell_r9 := { - rsrpResult_r9 := p_RsrpResult, - rsrqResult_r9 := p_RsrqResult - }, - measResultNeighCells_r9 := p_MeasResultNeighCells, - locationInfo_r10 := p_LocationInfo_r10, - failedPCellId_r10 := p_FailedPCellId_r10, - reestablishmentCellId_r10 := p_Cgi_Info_ReestablishmentCellId_r10, - timeConnFailure_r10 := p_TimeConnFailure_r10, - connectionFailureType_r10 := p_ConnectionFailureType_r10, - previousPCellId_r10 := p_Cgi_Info_PreviousPCellId_r10, - failedPCellId_v1090 := p_FailedPCellId_v1090, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ basicFields_r11 := p_BasicFields_r11, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ previousUTRA_CellId_r11 := p_PreviousUTRA_CellId_r11, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - selectedUTRA_CellId_r11 := p_SelectedUTRA_CellId_r11 /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + selectedUTRA_CellId_r11 := p_SelectedUTRA_CellId_r11, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + failedPCellId_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultLastServCell_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + lastServCellRSRQ_Type_r12 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultListEUTRA_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ }; //**************************************************************************** @@ -461,7 +432,7 @@ module EUTRA_MDT_Specific_Templates { template boolean p_MaxTxPowerReached_r11 := ?, template TimeSinceFailure_r11 p_TimeSinceFailure_r11 := ?, template MeasResultList2EUTRA_v9e0 p_MeasResultListEUTRA_v1130 := omit) := - { + { /* @status APPROVED (LTE_A) */ connEstFailReport_r11 := { failedCellId_r11 := p_FailedCellId_r11, locationInfo_r11 := p_LocationInfo_r10, @@ -474,7 +445,10 @@ module EUTRA_MDT_Specific_Templates { contentionDetected_r11 := p_ContentionDetected_r11, maxTxPowerReached_r11 := p_MaxTxPowerReached_r11, timeSinceFailure_r11 := p_TimeSinceFailure_r11, - measResultListEUTRA_v1130 := p_MeasResultListEUTRA_v1130 + measResultListEUTRA_v1130 := p_MeasResultListEUTRA_v1130, + measResultFailedCell_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + failedCellRSRQ_Type_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + measResultListEUTRA_v1250 := omit /* @sic BASELINE MOVING 2015 sic@ */ }, nonCriticalExtension := * }; @@ -578,7 +552,8 @@ module EUTRA_MDT_Specific_Templates { B48_Type p_AbsoluteTimeInfo_r10, template (omit) AreaConfiguration_r10 p_AreaConfiguration_r10 := omit, LoggingDuration_r10 p_LoggingDuration_r10 := min120, - LoggingInterval_r10 p_LoggingInterval_r10 := ms10240) := + LoggingInterval_r10 p_LoggingInterval_r10 := ms10240, + template (omit) LoggedMeasurementConfiguration_v1080_IEs p_LoggedMeasurementConfiguration_v1080_IEs := omit) := { /* @status APPROVED (LTE_A) */ message_ := { c1 := { @@ -596,41 +571,6 @@ module EUTRA_MDT_Specific_Templates { areaConfiguration_r10 := p_AreaConfiguration_r10, loggingDuration_r10 := p_LoggingDuration_r10, loggingInterval_r10 := p_LoggingInterval_r10, - nonCriticalExtension := omit - } - } - } - } - } - } - }; - - template (value) DL_DCCH_Message cs_LoggedMeasurementConfiguration_with_v1080_IEs(PLMN_Identity p_PLMN_Identity_r10, - O3_Type p_TraceId_r10, - O2_Type p_TraceRecordingSessionRef_r10 :='001A'O, - O1_Type p_Tce_Id_r10, - B48_Type p_AbsoluteTimeInfo_r10, - template (omit) AreaConfiguration_r10 p_AreaConfiguration_r10 := omit, - LoggingDuration_r10 p_LoggingDuration_r10 := min120, - LoggingInterval_r10 p_LoggingInterval_r10 := ms10240, - template (omit) LoggedMeasurementConfiguration_v1080_IEs p_LoggedMeasurementConfiguration_v1080_IEs) := - { /* @status */ - message_ := { - c1 := { - loggedMeasurementConfiguration_r10 := { - criticalExtensions := { - c1 := { - loggedMeasurementConfiguration_r10 := { - traceReference_r10 := { - plmn_Identity_r10 := p_PLMN_Identity_r10, - traceId_r10 := p_TraceId_r10 - }, - traceRecordingSessionRef_r10 := p_TraceRecordingSessionRef_r10, - tce_Id_r10 := p_Tce_Id_r10, - absoluteTimeInfo_r10 := p_AbsoluteTimeInfo_r10, - areaConfiguration_r10 := p_AreaConfiguration_r10, - loggingDuration_r10 := p_LoggingDuration_r10, - loggingInterval_r10 := p_LoggingInterval_r10, nonCriticalExtension := p_LoggedMeasurementConfiguration_v1080_IEs } } @@ -639,7 +579,7 @@ module EUTRA_MDT_Specific_Templates { } } }; - + //---------------------------------------------------------------------------- // UEInformationRequest (36.331 cl. 6.2.2) @@ -673,8 +613,8 @@ module EUTRA_MDT_Specific_Templates { }; template (value) DL_DCCH_Message cs_508_UEInformationRequest_noLogMeasReport(RRC_TransactionIdentifier p_RRC_TI, - boolean p_Rach_ReportReq_r9 := false, - boolean p_Rlf_ReportReq_r9 := false) := + boolean p_Rach_ReportReq_r9 := false, + boolean p_Rlf_ReportReq_r9 := false) := { /* Ref 36.508 Table 4.6.1-23A */ /* @status APPROVED (LTE_A) */ message_ := { @@ -700,8 +640,8 @@ module EUTRA_MDT_Specific_Templates { boolean p_Rlf_ReportReq_r9 := false, template (omit) UEInformationRequest_v1020_IEs_logMeasReportReq_r10_type p_LogMeasReportReq_r10 := omit, template (omit) UEInformationRequest_v1130_IEs_connEstFailReportReq_r11_Type p_ConnEstFailInfoAvailable_r11 := true_) := - {/* Ref 36.508 Table 4.6.1-23A */ - /* status */ + { /* Ref 36.508 Table 4.6.1-23A */ + /* @status APPROVED (LTE_A) */ message_ := { c1 := { ueInformationRequest_r9 := { @@ -765,6 +705,7 @@ module EUTRA_MDT_Specific_Templates { template RRCConnectionReestablishmentComplete_rlf_InfoAvailable_Type p_Rlf_InfoAvailable_r9 := true_, template RRCConnectionReestablishmentComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type p_ConnEstFailInfoAvailable_r11 := true_) := { /* Default values according to 36.508 cl. 4.6.1 Table 4.6.1-11 */ + /* @status APPROVED (LTE_A) */ message_ := { c1 := { rrcConnectionReestablishmentComplete := { @@ -893,6 +834,7 @@ module EUTRA_MDT_Specific_Templates { template RRCConnectionSetupComplete_Rn_SubframeConfigReq_Type p_Rn_SubframeConfigReq_r10 :=*, template RRCConnectionSetupComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type p_ConnEstFailInfoAvailable_r11 := true_) := { /* Default values according to 36.508 cl. 4.6.1 Table 4.6.1-18 */ + /* @status APPROVED (LTE_A) */ message_ := { c1 := { rrcConnectionSetupComplete := { @@ -927,11 +869,11 @@ module EUTRA_MDT_Specific_Templates { //---------------------------------------------------------------------------- // RRCConnectionReconfigurationComplete (36.331 cl. 6.2.2) - template (present) UL_DCCH_Message cr_RRCConnectionReconfigurationComplete_r11 (RRC_TransactionIdentifier p_RRC_TI, + template (present) UL_DCCH_Message cr_RRCConnectionReconfigurationComplete_r11(RRC_TransactionIdentifier p_RRC_TI, template RRCConnectionReconfigurationComplete_rlf_InfoAvailable_Type p_Rlf_InfoAvailable_r10 := *, template RRCConnectionReconfigurationComplete_LogMeasAvailable_Type p_LogMeasAvailable_r10 := *, template RRCConnectionReconfigurationComplete_v1130_IEs_connEstFailInfoAvailable_r11_Type p_ConnEstFailInfoAvailable_r11 := true_) := - { + { /* @status APPROVED (LTE_A) */ message_ := { c1 := { rrcConnectionReconfigurationComplete := { @@ -958,7 +900,7 @@ module EUTRA_MDT_Specific_Templates { template (value) DL_DCCH_Message cs_508_RRCConnectionReconfiguration_ConditionMEAS_WithObtainLocation(RRC_TransactionIdentifier p_RRC_TI, template (value) MeasConfig p_MeasConfig ) := - /* @status */ + /* @status APPROVED (LTE_A) */ cs_RRCConnectionReconfiguration_Common(p_RRC_TI, p_MeasConfig, omit, omit, omit, cs_RRCConnectionReconfiguration_ObtainLocationSetup_IEs); template (present) UL_DCCH_Message cr_RRCConnectionReconfigurationComplete_r10(RRC_TransactionIdentifier p_RRC_TI, @@ -1007,6 +949,7 @@ module EUTRA_MDT_Specific_Templates { template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_6_1_2_Step1(RRC_TransactionIdentifier p_RRC_TI, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_1, AllowedMeasBandwidth p_MeasurementBandwidth_1) := + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, @@ -1016,11 +959,12 @@ module EUTRA_MDT_Specific_Templates { cs_ReportConfig_reportConfigEUTRA_eventA2_RSRP(-83, 6, ms320, rsrp, both, 1, ms1024, r1, true_)), omit, cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A2 ))); - + //8.6.1.2, Step7 template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_6_1_2_Step7(RRC_TransactionIdentifier p_RRC_TI, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_1, AllowedMeasBandwidth p_MeasurementBandwidth_1) := + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS_WithObtainLocation(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_1Entry(tsc_IdMeasObject_f1, @@ -1076,30 +1020,30 @@ module EUTRA_MDT_Specific_Templates { cs_508_MeasGapConfig_GP1)); //8.6.4.9, Step7 - template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_6_4_9_Step7 (RRC_TransactionIdentifier p_RRC_TI, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_1, - AllowedMeasBandwidth p_MeasurementBandwidth_1, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_2, - AllowedMeasBandwidth p_MeasurementBandwidth_2, - template (omit) RadioResourceConfigDedicated p_RadioResourceConfigDedicated) := - /* @status */ + template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_6_4_9_Step7(RRC_TransactionIdentifier p_RRC_TI, + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_1, + AllowedMeasBandwidth p_MeasurementBandwidth_1, + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_2, + AllowedMeasBandwidth p_MeasurementBandwidth_2, + template (omit) RadioResourceConfigDedicated p_RadioResourceConfigDedicated) := + /* @status APPROVED (LTE_A) */ cs_RRCConnectionReconfiguration_Common(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq_1, p_MeasurementBandwidth_1), tsc_IdMeasObject_f2, cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq_2, p_MeasurementBandwidth_2)), - omit, - cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, - cs_508_ReportConfigEUTRA_A3), - omit, - cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f2, tsc_IdReportConfig_A3), - cs_QuantityConfig_Def, - cs_508_MeasGapConfig_GP1), - omit, - p_RadioResourceConfigDedicated, - omit, - omit); + omit, + cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_A3, + cs_508_ReportConfigEUTRA_A3), + omit, + cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f2, tsc_IdReportConfig_A3), + cs_QuantityConfig_Def, + cs_508_MeasGapConfig_GP1), + omit, + p_RadioResourceConfigDedicated, + omit, + omit); //------------------------------------------------ //8.6.6.6, Step1 @@ -1108,6 +1052,7 @@ module EUTRA_MDT_Specific_Templates { AllowedMeasBandwidth p_MeasurementBandwidth_1, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_2, AllowedMeasBandwidth p_MeasurementBandwidth_2) := + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, @@ -1122,7 +1067,7 @@ module EUTRA_MDT_Specific_Templates { 2, tsc_IdMeasObject_f2, tsc_IdReportConfig_A3), cs_QuantityConfig_Def, cs_508_MeasGapConfig_GP1)); - + //------------------------------------------------ //8.6.6.2, Step1 template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_6_6_2_Step1(RRC_TransactionIdentifier p_RRC_TI, @@ -1209,7 +1154,7 @@ module EUTRA_MDT_Specific_Templates { AllowedMeasBandwidth p_MeasurementBandwidth_1, ARFCN_ValueUTRA p_CarrierFreq, PhysCellIdUTRA_FDD p_PhysCellIdUTRA_FDD) := - /* @status */ + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, @@ -1222,7 +1167,7 @@ module EUTRA_MDT_Specific_Templates { omit)), omit, cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_B2_UTRA, - cs_508_ReportConfigInterRAT_B2_UTRA_ConditionFDD_RSCP(-92, -82)), + cs_508_ReportConfigInterRAT_B2_UTRA_ConditionFDD_RSCP(-75, -82)), //@sic R5s150517 sic@ omit, cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f10, tsc_IdReportConfig_B2_UTRA), cs_QuantityConfig(omit, @@ -1238,7 +1183,7 @@ module EUTRA_MDT_Specific_Templates { AllowedMeasBandwidth p_MeasurementBandwidth_1, ARFCN_ValueUTRA p_CarrierFreq, PhysCellIdUTRA_TDD p_PhysCellIdUTRA_TDD) := - /* @status */ + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, @@ -1251,7 +1196,7 @@ module EUTRA_MDT_Specific_Templates { omit)), omit, cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_B2_UTRA, - cs_508_ReportConfigInterRAT_B2_UTRA_ConditionTDD(-92, -82)), + cs_508_ReportConfigInterRAT_B2_UTRA_ConditionTDD(-75, -82)), //@sic R5s150517 sic@ omit, cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f10, tsc_IdReportConfig_B2_UTRA), cs_QuantityConfig(omit, @@ -1283,6 +1228,7 @@ module EUTRA_MDT_Specific_Templates { AllowedMeasBandwidth p_MeasurementBandwidth_1, ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq_2, AllowedMeasBandwidth p_MeasurementBandwidth_2) := + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, @@ -1420,6 +1366,7 @@ module EUTRA_MDT_Specific_Templates { AllowedMeasBandwidth p_EUTRA_MeasurementBandwidth, ARFCN_ValueUTRA p_CarrierFreq, PhysCellIdUTRA_FDD p_PhysCellIdUTRA_FDD) := + /* @status APPROVED (LTE_A) */ cs_RRCConnectionReconfiguration_Common(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, @@ -1432,23 +1379,23 @@ module EUTRA_MDT_Specific_Templates { omit)), omit, cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_B2_UTRA, - cs_508_ReportConfigInterRAT_B2_UTRA_ConditionFDD_RSCP(-72, -76)), + cs_ReportConfig_reportConfigInterRAT_eventB2_UTRA_RSCP( -72, -76, 3, ms0, 6, ms1024, r1, true)), //@sic R5s150730 sic@ omit, cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f8, tsc_IdReportConfig_B2_UTRA), cs_QuantityConfig(cs_QuantityConfigEUTRA(omit, omit), cs_QuantityConfigUTRA(cpich_RSCP, pccpch_RSCP, fc0), omit, omit), - cs_508_MeasGapConfig_GP1), - omit, omit, omit); + cs_508_MeasGapConfig_GP1)); //------------------------------------------------ //8.6.10.1, Step1, condition UTRAN-TDD template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_8_6_10_1_Step1_TDD(RRC_TransactionIdentifier p_RRC_TI, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, - AllowedMeasBandwidth p_EUTRA_MeasurementBandwidth, - ARFCN_ValueUTRA p_CarrierFreq, - PhysCellIdUTRA_TDD p_PhysCellIdUTRA_TDD) := + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, + AllowedMeasBandwidth p_EUTRA_MeasurementBandwidth, + ARFCN_ValueUTRA p_CarrierFreq, + PhysCellIdUTRA_TDD p_PhysCellIdUTRA_TDD) := + /* @status APPROVED (LTE_A) */ cs_RRCConnectionReconfiguration_Common(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, @@ -1461,15 +1408,14 @@ module EUTRA_MDT_Specific_Templates { omit)), omit, cs_ReportConfigToAddModList_1Entry(tsc_IdReportConfig_B2_UTRA, - cs_508_ReportConfigInterRAT_B2_UTRA_ConditionTDD(-72, -76)), + cs_ReportConfig_reportConfigInterRAT_eventB2_UTRA_RSCP( -72, -76, 3, ms0, 6, ms1024, r1, true)), //@sic R5s150732 sic@ omit, cs_MeasIdToAddModList_1Entry(1, tsc_IdMeasObject_f8, tsc_IdReportConfig_B2_UTRA), cs_QuantityConfig(cs_QuantityConfigEUTRA(omit, omit), cs_QuantityConfigUTRA(cpich_RSCP, pccpch_RSCP, fc0), omit, omit), - cs_508_MeasGapConfig_GP1), - omit, omit, omit); + cs_508_MeasGapConfig_GP1)); //---------------------------------------------------------------------------- // MeasurementReport (36.331 cl. 6.2.2) @@ -1497,7 +1443,10 @@ module EUTRA_MDT_Specific_Templates { measResultNeighCells := p_MeasResultNeighCells, measResultForECID_r9 := p_MeasResultForECID_r9, locationInfo_r10 := p_LocationInfo_r10, - measResultServFreqList_r10 := p_MeasResultServFreqList_r10 + measResultServFreqList_r10 := p_MeasResultServFreqList_r10, + measId_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultPCell_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultCSI_RS_List_r12 := * /* @sic BASELINE MOVING 2015 sic@ */ }, nonCriticalExtension := * } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn similarity index 87% rename from LTE_A_IWD_14wk37/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn index b4ad7e7..2b5215a 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/Inter_RAT_Logged_MDT.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 11:17:20 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14367 $ /******************************************************************************/ module Inter_RAT_Logged_MDT @@ -50,10 +50,10 @@ module Inter_RAT_Logged_MDT template ARFCN_ValueCDMA2000 p_ARFCN_ValueCDMA2000, template boolean p_PreRegistrationStatusHRPD, template PhysCellIdCDMA2000 p_PhysCellIdCDMA2000, - template CellGlobalIdCDMA2000.cellGlobalIdHRPD p_CellGlobalIdHRPD, + template MeasResultCDMA2000.cgi_Info p_Cgi_Info, //@sic R5s150324 sic@ template integer p_PilotPnPhase := omit, template integer p_PilotStrength) := - { + { /* @status APPROVED (LTE_A) */ { carrierFreq_r9 := { bandClass := p_BandclassCDMA2000, @@ -62,11 +62,9 @@ module Inter_RAT_Logged_MDT measResultList_r9 := { preRegistrationStatusHRPD := p_PreRegistrationStatusHRPD, measResultListCDMA2000 := { - { + { physCellId := p_PhysCellIdCDMA2000, - cgi_Info := { - cellGlobalIdHRPD := p_CellGlobalIdHRPD - }, + cgi_Info := p_Cgi_Info, //@sic R5s150324 sic@ measResult := { pilotPnPhase := p_PilotPnPhase, pilotStrength := p_PilotStrength @@ -77,9 +75,8 @@ module Inter_RAT_Logged_MDT } }; - template (present) UL_DCCH_Message cr_MeasurementReport_CDMA2000_1Entry_PreRegistration( PhysCellIdCDMA2000 p_PhysCellId, - template CDMA2000_PilotPnPhase p_PilotPnPhase) := - /* @status */ + template (present) UL_DCCH_Message cr_MeasurementReport_CDMA2000_1Entry_PreRegistration(PhysCellIdCDMA2000 p_PhysCellId, + template CDMA2000_PilotPnPhase p_PilotPnPhase) := cr_MeasurementReport(1, ?, ?, cr_MeasResultNeighCells_measResultsCDMA2000_1Entry( true, p_PhysCellId, omit, p_PilotPnPhase, ? ) ); /* @@ -91,8 +88,8 @@ module Inter_RAT_Logged_MDT var integer v_T1_RS_EPRE_Cell1 := -60; var IRAT_CoOrd_SysInfo_Type v_CDMA2000SysInfo; var CDMA2000_Type v_CDMA2000_Type_Cell15; - var PhysCellIdCDMA2000 v_PNOffset_Cell15 ; - var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15 ; + var PhysCellIdCDMA2000 v_PNOffset_Cell15; + var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15; var BandclassCDMA2000 v_BandClass_CDMA2000_Cell15; var CellGlobalIdCDMA2000.cellGlobalIdHRPD v_CellGlobalIdHRPD_CDMA2000_Cell15; var EUTRA_CellInfo_Type v_CellInfo_Cell1; @@ -177,7 +174,7 @@ module Inter_RAT_Logged_MDT v_Arfcn_CDMA2000_Cell15, ?, v_PNOffset_Cell15, - v_CellGlobalIdHRPD_CDMA2000_Cell15, + { cellGlobalIdHRPD := v_CellGlobalIdHRPD_CDMA2000_Cell15 }, //@sic R5s150324 sic@ *, ?))))) { @@ -213,9 +210,9 @@ module Inter_RAT_Logged_MDT var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1, v_CellPowerList_AtT2; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var IRAT_CoOrd_SysInfo_Type v_CDMA2000SysInfo; - var CDMA2000_Type v_CDMA2000_Type_Cell15 ; - var PhysCellIdCDMA2000 v_PNOffset_Cell15 ; - var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15 ; + var CDMA2000_Type v_CDMA2000_Type_Cell15; + var PhysCellIdCDMA2000 v_PNOffset_Cell15; + var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15; var BandclassCDMA2000 v_BandClass_CDMA2000_Cell15; var SearchWindowSize_Type v_SearchWindowSize_Cell15 := 15; var CellGlobalIdCDMA2000.cellGlobalIdHRPD v_CellGlobalIdHRPD_CDMA2000_Cell15; @@ -360,7 +357,7 @@ module Inter_RAT_Logged_MDT v_Arfcn_CDMA2000_Cell15, true, v_PNOffset_Cell15, - v_CellGlobalIdHRPD_CDMA2000_Cell15, + { cellGlobalIdHRPD := v_CellGlobalIdHRPD_CDMA2000_Cell15 }, //@sic R5s150324 sic@ *, ?)), *, @@ -384,33 +381,32 @@ module Inter_RAT_Logged_MDT //------------------------------------------------ //8.6.7.3 Step1 - template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_IratMeasA3andB2_C2K (RRC_TransactionIdentifier p_RRC_TI, - ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, //@sic CR R5-112614 sic@ - AllowedMeasBandwidth p_EUTRA_MeasurementBandwidth, //@sic CR R5-112614 sic@ - CDMA2000_Type p_CDMA2000_Type, - ARFCN_ValueCDMA2000 p_ARFCNCDMA2000, - BandclassCDMA2000 p_BandClassCDMA2000, - SearchWindowSize_Type p_SearchWindowSize, - MeasObjectId p_MeasObjectId, - PhysCellId p_PhysCellId, - integer p_CellIndex := 1, - template (omit) PhysCellIdCDMA2000 p_CellForWhichToReportCGI, - QuantityConfigCDMA2000.measQuantityCDMA2000 p_MeasQuantity :=pilotStrength //@sic R5-120711 sic@ - ) := - /* @status */ + template (value) DL_DCCH_Message cs_RRCConnectionReconfiguration_IratMeasA3andB2_C2K(RRC_TransactionIdentifier p_RRC_TI, + ARFCN_ValueEUTRA p_EUTRA_DL_CarrierFreq, //@sic CR R5-112614 sic@ + AllowedMeasBandwidth p_EUTRA_MeasurementBandwidth, //@sic CR R5-112614 sic@ + CDMA2000_Type p_CDMA2000_Type, + ARFCN_ValueCDMA2000 p_ARFCNCDMA2000, + BandclassCDMA2000 p_BandClassCDMA2000, + SearchWindowSize_Type p_SearchWindowSize, + MeasObjectId p_MeasObjectId, + PhysCellId p_PhysCellId, + integer p_CellIndex := 1, + template (omit) PhysCellIdCDMA2000 p_CellForWhichToReportCGI, + QuantityConfigCDMA2000.measQuantityCDMA2000 p_MeasQuantity := pilotStrength) := //@sic R5-120711 sic@ + /* @status APPROVED (LTE_A) */ cs_508_RRCConnectionReconfiguration_ConditionMEAS(p_RRC_TI, cs_MeasConfig(omit, cs_MeasObjectToAddModList_2Entries(tsc_IdMeasObject_f1, cs_508_MeasObjectEUTRA_GENERIC( p_EUTRA_DL_CarrierFreq, p_EUTRA_MeasurementBandwidth ), p_MeasObjectId, - cs_MeasObject_measObjectCDMA2000(p_CDMA2000_Type, - p_ARFCNCDMA2000, - p_BandClassCDMA2000, - p_SearchWindowSize, - 0, - omit, - {cs_CellsToAddModCDMA2000 (p_CellIndex,p_PhysCellId)}, - p_CellForWhichToReportCGI ) ), + cs_MeasObject_measObjectCDMA2000(p_CDMA2000_Type, + p_ARFCNCDMA2000, + p_BandClassCDMA2000, + p_SearchWindowSize, + 0, + omit, + {cs_CellsToAddModCDMA2000 (p_CellIndex,p_PhysCellId)}, + p_CellForWhichToReportCGI ) ), omit, cs_ReportConfigToAddModList_2Entries(tsc_IdReportConfig_A3, cs_508_ReportConfigEUTRA_A3, @@ -419,34 +415,35 @@ module Inter_RAT_Logged_MDT omit, cs_MeasIdToAddModList_2Entries(1, tsc_IdMeasObject_f1, tsc_IdReportConfig_A3, 2, p_MeasObjectId, tsc_IdReportConfig_B2_CDMA2000), - cs_QuantityConfig( omit, omit, omit, cs_QuantityConfigCDMA2000( p_MeasQuantity ) ), - cs_508_MeasGapConfig_GP2 // currently using this since the MeasGapConfig for CDMA2000 is not defined and the MeasGapConfig given in 36523 in test case prose cannot be found - ) ); + cs_QuantityConfig(cs_QuantityConfigEUTRA(omit, omit), omit, omit, cs_QuantityConfigCDMA2000(p_MeasQuantity)), //@sic R5s150324 sic@ + cs_508_MeasGapConfig_GP2)); // currently using this since the MeasGapConfig for CDMA2000 is not defined and the MeasGapConfig given in 36523 in test case prose cannot be found template (present) UL_DCCH_Message cr_MeasurementReport_CDMA2000_1Entry_measId(template integer p_MeasId, PhysCellIdCDMA2000 p_PhysCellId, template CDMA2000_PilotPnPhase p_PilotPnPhase) := - /* @status */ - cr_MeasurementReport(p_MeasId, ?, ?, cr_MeasResultNeighCells_measResultsCDMA2000_1Entry( false, p_PhysCellId, omit, p_PilotPnPhase, ? ) ); - + /* @status APPROVED (LTE_A) */ + cr_MeasurementReport(p_MeasId, ?, ?, cr_MeasResultNeighCells_measResultsCDMA2000_1Entry( false, p_PhysCellId, omit, p_PilotPnPhase, ?)); /* * @desc REFERENCE TS 36.523-1 clause 8.6.7.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_7_3_EUTRA() runs on EUTRA_PTC - { //Handover Failure logging / Reporting of CDMA2000 Inter-RAT measurements - var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1, v_CellPowerList_AtT2, v_CellPowerList_AtT3; + { // Handover Failure logging / Reporting of CDMA2000 Inter-RAT measurements + var template (value) CellPowerList_Type v_CellPowerList_AtT0; + var template (value) CellPowerList_Type v_CellPowerList_AtT1; + var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var template (value) CellPowerList_Type v_CellPowerList_AtT3; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var IRAT_CoOrd_SysInfo_Type v_CDMA2000SysInfo; - var CDMA2000_Type v_CDMA2000_Type_Cell15 ; + var CDMA2000_Type v_CDMA2000_Type_Cell15; - var PhysCellIdCDMA2000 v_PNOffset_Cell15 ; - var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15 ; + var PhysCellIdCDMA2000 v_PNOffset_Cell15; + var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15; var BandclassCDMA2000 v_BandClass_CDMA2000_Cell15; var SearchWindowSize_Type v_SearchWindowSize_Cell15 := 15; var CellGlobalIdCDMA2000.cellGlobalIdHRPD v_CellGlobalIdHRPD_CDMA2000_Cell15; @@ -461,42 +458,41 @@ module Inter_RAT_Logged_MDT var ShortMAC_I v_ShortMAC_I; var EUTRA_SecurityParams_Type v_AuthParams; timer t_T304Max; - - + v_CellPowerList_AtT0 := { - cs_CellPower (eutra_Cell1, -60), - cs_CellPower (eutra_Cell2, -60) + cs_CellPower (eutra_Cell1, -60), + cs_CellPower (eutra_Cell2, -60) }; v_CellPowerList_AtT1 := { - cs_CellPower (eutra_Cell1, -80), - cs_CellPower (eutra_Cell2, -80) + cs_CellPower (eutra_Cell1, -80), + cs_CellPower (eutra_Cell2, -80) }; v_CellPowerList_AtT2 := { - cs_CellPower (eutra_Cell2, -74) + cs_CellPower (eutra_Cell2, -74) }; v_CellPowerList_AtT3 := { - cs_CellPower (eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE) + cs_CellPower (eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE) }; - + //Initialize testcase f_EUTRA_Init ( c6 ); v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId( eutra_Cell1 ); v_Frequency_IE_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs (eutra_Cell1); v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_Cell1.DL_ChBandwidth, v_Frequency_IE_Cell1.UL_ChBandwidth); - + v_CellInfo_Cell2 := f_EUTRA_CellInfo_Get(eutra_Cell2); v_CellIdentity_Cell2 := v_CellInfo_Cell2.CellIds.CellIdentity; v_PLMN_Identity_Cell2 := v_CellInfo_Cell2.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId( eutra_Cell2 ); - + //Set maximum cell powel level for Cell 1 and Cell 2 f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, -60); - + //Set PreambleTransMax to n50 for cell 2 cells f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell2, n50); v_T304 := f_EUTRA_SetTimerToleranceMax(eutra_Cell2, rrcTimer, 1.0); @@ -504,159 +500,160 @@ module Inter_RAT_Logged_MDT //Create and configure Cell 1 f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell2); - + //Preamble to bring UE to initial state f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(eutra_Cell1); - + //Get Cell Parameters for CDMA2000 cell v_CDMA2000SysInfo := f_IRAT_WaitForCoOrd_SysInfo(CDMA2000); - + //Initialise locol parameters for v_CDMA2000_Type_Cell15 := f_ConvertFromBoolToCDMA2000_Type(v_CDMA2000SysInfo.Cdma2000[0].IsHRPD); v_PNOffset_Cell15 := v_CDMA2000SysInfo.Cdma2000[0].PNOffset; v_Arfcn_CDMA2000_Cell15 := v_CDMA2000SysInfo.Cdma2000[0].Arfcn; v_BandClass_CDMA2000_Cell15 := f_ConvertFromIntegerToBandClass(v_CDMA2000SysInfo.Cdma2000[0].BandClass); v_CellGlobalIdHRPD_CDMA2000_Cell15 := v_CDMA2000SysInfo.Cdma2000[0].SectorID_HRPD; - + //The SS changes Cell 1 and Cell 15 levels according to the row "T0" in table 8.6.7.3.3.2-1. f_IRAT_SendCoOrd(CDMA2000, cms_IRAT_Trigger); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); f_EUTRA_TestBody_Set(true); - //------------------------------------------------ - //Start TestBody //@siclog "Step 1-2" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup inter-RAT measurement on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. - f_EUTRA_RRCConnectionReconfiguration_MeasConfig( eutra_Cell1,cs_RRCConnectionReconfiguration_IratMeasA3andB2_C2K(v_RRC_TI, - v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Cell1.AllowedMeasBandwidth, - v_CDMA2000_Type_Cell15, - v_Arfcn_CDMA2000_Cell15, - v_BandClass_CDMA2000_Cell15, - v_SearchWindowSize_Cell15, - tsc_IdMeasObject_f14, - v_PNOffset_Cell15, - 1, - 50)); - + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, + cs_RRCConnectionReconfiguration_IratMeasA3andB2_C2K(v_RRC_TI, + v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_Cell1.AllowedMeasBandwidth, + v_CDMA2000_Type_Cell15, + v_Arfcn_CDMA2000_Cell15, + v_BandClass_CDMA2000_Cell15, + v_SearchWindowSize_Cell15, + tsc_IdMeasObject_f14, + v_PNOffset_Cell15, + 1, + 50)); + //@siclog "Step 3" siclog@ //The SS changes Cell 1, Cell 2 and Cell 15 parameters according to the row "T1" in Table 8.6.7.3.3.2-1. f_IRAT_SendCoOrd(CDMA2000, cms_IRAT_Trigger); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 4" siclog@ //The UE transmits a MeasurementReport message on Cell 1. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_MeasurementReport_CDMA2000_1Entry_measId(2,v_PNOffset_Cell15,omit))); - + cr_MeasurementReport_CDMA2000_1Entry_measId(2, v_PNOffset_Cell15, omit))); + //@siclog "Step 5" siclog@ //The SS changes Cell 2 and Cell 15 parameters according to the row "T2" in Table 8.6.7.3.3.2-1. f_IRAT_SendCoOrd(CDMA2000, cms_IRAT_Trigger); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + //@siclog "Step 6" siclog@ //The UE transmits a MeasurementReport message on Cell 1. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell2))); - + //Configure Cell2 to not send response on RACH preamble reception on Cell 2 f_EUTRA_SS_ConfigRachProcedure(eutra_Cell2, omit, - cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell2))); - + cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell2))); + //@siclog "Step 7" siclog@ //The SS transmits an RRCConnectionReconfiguration message including mobilityControlInfo on Cell 1. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_RRCConnectionReconfiguration_Common(v_RRC_TI, omit, + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_Common(v_RRC_TI, + omit, f_Generate_cs_MobilityControlInfo_HO(eutra_Cell2), f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell2), cs_508SecurityConfigHO_IntraLTE))); - + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - + //EXCEPTION: In parallel to the events described in step 8 the steps specified in Table 8.6.7.3.3.2-3 should take place. //EXCEPTION: The steps 1 and 2 below are repeated for the duration of T304. //The UE attempts to perform handover using MAC Random Access Preamble on Cell 2. //The SS does not respond. t_T304Max.start(v_T304); - + //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 9 v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell2); - + //@siclog "Step 8" siclog@ //The SS changes Cell 1 parameter according to the row "T3" in Table 8.6.7.3.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); - + t_T304Max.timeout; - + //Configure Cell2 to normal PRACH operation mode f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell2, tsc_C_RNTI_Def); - + //@siclog "Step 9" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 2. SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell2, cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, v_PhysCellId_Cell1, - cr_ReestablishmentCause_OtherFailure, + cr_ReestablishmentCause_HandoverFailure, //@sic R5s150324 sic@ v_ShortMAC_I))); - + v_AuthParams := f_EUTRA_Security_Get(); v_AuthParams := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell2, v_AuthParams, 0); f_EUTRA_Security_Set(v_AuthParams); - + //@siclog "Step 10" siclog@ //The SS transmits an RRCConnectionReestablishment message on Cell 2. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell2); - + //@siclog "Step 11" siclog@ //The UE transmits an RRCConnectionReestablishmentComplete message with handover failure information on Cell 2. - SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell2, - cr_RRCConnectionReestablishmentComplete_r10(tsc_RRC_TI_Def, -, true_))); - + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, + cr_RRCConnectionReestablishmentComplete_RLF_r9(tsc_RRC_TI_Def, true_))); //@sic R5s150324 sic@ + //@siclog "Step 12 - 13" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 2. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 2. f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs ( eutra_Cell2, tsc_RRC_TI_Def ); - + //@siclog "Step 14" siclog@ //The SS transmits a UEInformationRequest message on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 15" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 2? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, -, - cr_RLF_Report_1Entry(?, *, - cr_MeasResultNeighCells_r9(cr_MeasResultList2EUTRA_r9_1Entry(v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, - v_PhysCellId_Cell2, - omit, - ?, - ?, - omit), - -, -, - cr_MeasResultList2CDMA2000_r9_1Entry_HRPD(v_BandClass_CDMA2000_Cell15, - v_Arfcn_CDMA2000_Cell15, - ?, - v_PNOffset_Cell15, - v_CellGlobalIdHRPD_CDMA2000_Cell15, - *, - ?)), - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell2, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2), ?, hof, - cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1))))); + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, -, + cr_RLF_Report_1Entry(?, + *, + cr_MeasResultNeighCells_r9(cr_MeasResultList2EUTRA_r9_1Entry(v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, + v_PhysCellId_Cell2, + omit, + ?, + ?, + omit), + -, + -, + cr_MeasResultList2CDMA2000_r9_1Entry_HRPD(v_BandClass_CDMA2000_Cell15, + v_Arfcn_CDMA2000_Cell15, + ?, + v_PNOffset_Cell15, + omit, //@sic R5s150324 sic@ + *, + ?)), + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell2, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2), ?, hof, + cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1))))); //@sic R5s150324 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.7.3 Step 12"); - + //@siclog "Step 16" siclog@ //Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.3 indicate that the UE is in E-UTRA RRC_CONNECTED state on Cell 2? f_EUTRA_508Check_ConnectedState(eutra_Cell2); - - //End TestBody - //------------------------------------------------ f_EUTRA_TestBody_Set(false); @@ -664,8 +661,8 @@ module Inter_RAT_Logged_MDT f_IRAT_SendCoOrd(CDMA2000, cms_IRAT_Trigger); f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); - - }; //end of testcase 8.6.7.3 + } + /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.4 * @status @@ -674,9 +671,9 @@ module Inter_RAT_Logged_MDT { //Connection Establishment Failure logging / Logging and reporting / Reporting of CDMA2000 Inter-RAT measurements var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1; var IRAT_CoOrd_SysInfo_Type v_CDMA2000SysInfo; - var CDMA2000_Type v_CDMA2000_Type_Cell15 ; - var PhysCellIdCDMA2000 v_PNOffset_Cell15 ; - var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15 ; + var CDMA2000_Type v_CDMA2000_Type_Cell15; + var PhysCellIdCDMA2000 v_PNOffset_Cell15; + var ARFCN_ValueCDMA2000 v_Arfcn_CDMA2000_Cell15; var BandclassCDMA2000 v_BandClass_CDMA2000_Cell15; var CellGlobalIdCDMA2000.cellGlobalIdHRPD v_CellGlobalIdHRPD_CDMA2000_Cell15; var EUTRA_CellInfo_Type v_CellInfo_Cell1; @@ -803,7 +800,7 @@ module Inter_RAT_Logged_MDT v_Arfcn_CDMA2000_Cell15, false, v_PNOffset_Cell15, - v_CellGlobalIdHRPD_CDMA2000_Cell15, + { cellGlobalIdHRPD := v_CellGlobalIdHRPD_CDMA2000_Cell15 }, //@sic R5s150324 sic@ *, ?))))))); diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn similarity index 91% rename from LTE_A_IWD_14wk37/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn index beaaa20..3891514 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/Inter_RAT_Logged_MDT_CDMA2000.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-06 11:18:42 +0200 (Fri, 06 Jun 2014) $ -// $Rev: 11617 $ +// @version: IWD_15wk38 +// $Date: 2015-04-24 01:24:08 +0200 (Fri, 24 Apr 2015) $ +// $Rev: 13497 $ /******************************************************************************/ module Inter_RAT_Logged_MDT_CDMA2000 @@ -109,15 +109,14 @@ module Inter_RAT_Logged_MDT_CDMA2000 f_CDMA2000_ReleaseCells(); //Delete all configured CDMA2000 cells - }; //end of testcase 8.6.5.3 + } - - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.6.7.3 - * @status + * @status APPROVED (LTE_A) */ - function f_TC_8_6_7_3_CDMA2000 () runs on CDMA2000_PTC - { //Handover Failure logging / Reporting of CDMA2000 Inter-RAT measurements + function f_TC_8_6_7_3_CDMA2000() runs on CDMA2000_PTC + { // Handover Failure logging / Reporting of CDMA2000 Inter-RAT measurements const PowerIor_Type tsc_Cell15_IorT0 := -75; const PowerIor_Type tsc_Cell15_IorT1 := -60; const PowerIor_Type tsc_Cell15_IorT2_T3 := -121; //cell is off @@ -132,31 +131,27 @@ module Inter_RAT_Logged_MDT_CDMA2000 //Create CDMA2000 cell15 and broadcast System Infomation f_CDMA2000CreateCell ( cdma2000_Cell15 ); - + //First Trigger: to Change cell power according to T0 after EUTRA Registration f_IRAT_WaitForCoOrd_Trigger (EUTRA); f_CDMA2000_SetCellPower( cdma2000_Cell15, tsc_Cell15_IorT0 ); - f_CDMA2000_TestBody_Set( true ); - //------------------------------------------------ - //Start TestBody - + f_CDMA2000_TestBody_Set( true ); + //@siclog "Step 3" siclog@ //The SS changes Cell 1, Cell 2 and Cell 15 parameters according to the row "T1" in Table 8.6.7.3.3.2-1. f_IRAT_WaitForCoOrd_Trigger (EUTRA); f_CDMA2000_SetCellPower( cdma2000_Cell15, tsc_Cell15_IorT1 ); - + //@siclog "Step 5" siclog@ //The SS changes Cell 2 and Cell 15 parameters according to the row "T2" in Table 8.6.7.3.3.2-1. f_IRAT_WaitForCoOrd_Trigger (EUTRA); - f_CDMA2000_SetCellPower( cdma2000_Cell15, tsc_Cell15_IorT2_T3 ); + f_CDMA2000_SetCellPower(cdma2000_Cell15, tsc_Cell15_IorT2_T3); //Wait for the end of the test f_IRAT_WaitForCoOrd_Trigger(EUTRA); - //End TestBody - //------------------------------------------------ f_CDMA2000_TestBody_Set(false); f_CDMA2000_ReleaseCells(); //Delete all configured CDMA2000 cells diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn similarity index 81% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn index 5df49b4..f7fe852 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-07 18:37:49 +0200 (Sun, 07 Sep 2014) $ -// $Rev: 12081 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 00:42:21 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13920 $ /******************************************************************************/ module RRC_Connection_Establishment_Failure @@ -46,113 +46,109 @@ module RRC_Connection_Establishment_Failure /* * @desc REFERENCE TS 36.523-1 clause 8.6.8.1 - * @status + * @status APPROVED (LTE_A) */ - function f_TC_8_6_8_1_EUTRA() runs on EUTRA_PTC - {//Connection Establishment Failure logging / Logging and reporting / T300 expiry - var EUTRA_CellInfo_Type v_CellInfo_Cell1; - var CellIdentity v_CellIdentity_Cell1; - var PLMN_Identity v_PLMN_Identity_Cell1; - var NAS_MSG_Indication_Type v_NasInd; - timer t_LocalTimer; - - //Init variables - f_EUTRA_Init(c1); + function f_TC_8_6_8_1_EUTRA() runs on EUTRA_PTC + { //Connection Establishment Failure logging / Logging and reporting / T300 expiry + var EUTRA_CellInfo_Type v_CellInfo_Cell1; + var CellIdentity v_CellIdentity_Cell1; + var PLMN_Identity v_PLMN_Identity_Cell1; + var NAS_MSG_Indication_Type v_NasInd; + timer t_LocalTimer; - v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); - v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; - v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - - //Create and configure Cells - f_EUTRA_CellConfig_Def(eutra_Cell1); - - //Preamble - f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - - f_EUTRA_TestBody_Set(true); - - //@siclog "Step 1" siclog@ - //The SS transmits a Paging message. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - - //@siclog "Step 2" siclog@ - //The UE transmits an RRCConnectionRequest message. - f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - - //@siclog "Step 3" siclog@ - //The SS waits for 2s - //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. - t_LocalTimer.start(2.0); - alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) - { - repeat; - } - [] t_LocalTimer.timeout {} - } - - //@siclog "Step 4" siclog@ - //The SS transmits a Paging message. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - - //@siclog "Step 5" siclog@ - //The UE transmits an RRCConnectionRequest message. - f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - - //@siclog "Step 6" siclog@ - //The SS transmits an RRCConnectionSetup message. - f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - - //@siclog "Step 7" siclog@ - //Check: Does the UE transmit an RRCConnectionSetupComplete message including connEstFailInfoAvailable IE set it to true - v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, - cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), - cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.1 Step 7"); - - //@siclog "Step 8-11" siclog@ - //Steps 6 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure. - f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1,tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); - - //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. - SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - - //@siclog "Step 12" siclog@ - //The SS sends a UEInformationRequest message to get connEstFailReportReq. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, - cs_TimingInfo_Now, - cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); - - //@siclog "Step 13" siclog@ - //Check: Does the UE send an UEInformationResponse message with connEstFailReport - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_UEInformationResponse_Common(tsc_RRC_TI_Def, - -, - -, - cr_UEInformationResponse_v930_IEs(-, - cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), - *, - ?, - *, - omit))))); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.1 Step 13"); - - //End TestBody - //------------------------------------------------ + //Init variables + f_EUTRA_Init(c1); - f_EUTRA_TestBody_Set(false); - - f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - - }//end of testcase 8.6.8.1 + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); + v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; + v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; + + //Create and configure Cells + f_EUTRA_CellConfig_Def(eutra_Cell1); + + //Preamble + f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); + + f_EUTRA_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + //The SS transmits a Paging message. + f_EUTRA_UE_Page_Def(eutra_Cell1); + + //@siclog "Step 2" siclog@ + //The UE transmits an RRCConnectionRequest message. + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); + + //@siclog "Step 3" siclog@ + //The SS waits for 2s + //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. + t_LocalTimer.start(2.0); + alt { + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) + { + repeat; + } + [] t_LocalTimer.timeout {} + } + + //@siclog "Step 4" siclog@ + //The SS transmits a Paging message. + f_EUTRA_UE_Page_Def(eutra_Cell1); + + //@siclog "Step 5" siclog@ + //The UE transmits an RRCConnectionRequest message. + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); + + //@siclog "Step 6" siclog@ + //The SS transmits an RRCConnectionSetup message. + f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); + + //@siclog "Step 7" siclog@ + //Check: Does the UE transmit an RRCConnectionSetupComplete message including connEstFailInfoAvailable IE set it to true + v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, + cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), + cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.1 Step 7"); + + //@siclog "Step 8-11" siclog@ + //Steps 6 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure. + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def, v_NasInd.SecurityProtection.NasCount); + + //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + + //@siclog "Step 12" siclog@ + //The SS sends a UEInformationRequest message to get connEstFailReportReq. + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo_Now, + cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); + //@siclog "Step 13" siclog@ + //Check: Does the UE send an UEInformationResponse message with connEstFailReport + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, + -, + -, + cr_UEInformationResponse_v930_IEs(-, + cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), + *, + ?, + *, + omit))))); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.1 Step 13"); + + f_EUTRA_TestBody_Set(false); + + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + + }//end of testcase 8.6.8.1 /* * @desc REFERENCE TS 36.523-1 clause 8.6.8.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_8_2_EUTRA() runs on EUTRA_PTC - {//Connection Establishment Failure logging / Logging and reporting / Reporting at intra-LTE handover + { //Connection Establishment Failure logging / Logging and reporting / Reporting at intra-LTE handover var NAS_MSG_Indication_Type v_NasInd; var EUTRA_CellInfo_Type v_CellInfo_Cell1; var CellIdentity v_CellIdentity_Cell1; @@ -168,49 +164,52 @@ module RRC_Connection_Establishment_Failure var NextHopChainingCount v_NextHopChainingCount := 0; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var NAS_KsiValue v_KsiValue; + var CarrierFreqEUTRA v_CarrierFreq_Cell3; //@sic R5s141171 sic@ timer t_LocalTimer; - + v_CellPowerList_AtT0 := { - cs_CellPower ( eutra_Cell3, tsc_SuitableCellRS_EPRE) + cs_CellPower(eutra_Cell3, tsc_SuitableCellRS_EPRE) }; - + v_CellPowerList_AtT1 := { - cs_CellPower ( eutra_Cell3, -73 ) + cs_CellPower(eutra_Cell3, -73) }; - + //Init cell array and security f_EUTRA_Init(c3); - + //Get cell specific parameters v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); v_Frequency_IE_f2 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell3); v_PhysCellId_Cell3 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell3); - + v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth); v_ChBandDependency_Cell3 := f_EUTRA_BandDependentParam(v_Frequency_IE_f2.DL_ChBandwidth, v_Frequency_IE_f2.UL_ChBandwidth); + + v_CarrierFreq_Cell3 := f_EUTRA_CellInfo_GetEARFCN (eutra_Cell3); //@sic R5s141171 sic@ - f_EUTRA_CellInfo_InitMaxReferencePower ( eutra_Cell3, -73); - + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell3, -73); + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell3); - + //Set initial cell power levels f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - + //Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - + f_EUTRA_TestBody_Set(true); - + //@siclog "Step 1" siclog@ //The SS transmits a Paging message. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 2" siclog@ //The UE transmits an RRCConnectionRequest message. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); @@ -220,25 +219,25 @@ module RRC_Connection_Establishment_Failure //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } [] t_LocalTimer.timeout {} } - + //@siclog "Step 4" siclog@ //SS sends a Paging message to the UE on the appropriate paging block, and including the UE identity in one entry of the IE pagingRecordLists. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 5" siclog@ //UE transmits an RRCConnectionRequest message. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - + //@siclog "Step 6" siclog@ //SS transmit an RRCConnectionSetup message. f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + //@siclog "Step 7" siclog@ //The UE transmits an RRCConnectionSetupComplete message to confirm the successful completion of the connection establishment and to initiate the session management procedure by including the SERVICE REQUEST message. (State3) v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); @@ -246,14 +245,14 @@ module RRC_Connection_Establishment_Failure cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue))); - + //@siclog "Step 8 - 11" siclog@ //Steps 6 to 9 the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure. f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); - + //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - + //@siclog "Step 12 - 13" siclog@ //The SS transmits a RRCConnectionReconfiguration message //The UE transmits a RRCConnectionReconfigurationComplete message @@ -263,46 +262,46 @@ module RRC_Connection_Establishment_Failure v_ChBandDependency_Cell1.AllowedMeasBandwidth, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell3.AllowedMeasBandwidth)); - - + + //@siclog "Step 14" siclog@ //The SS changes cell 1 and cell 3 parameters according to the row "T1"in table 8.6.8.2.3.2-1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 15" siclog@ //The UE transmits a MeasurementReport message. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell3))); - + //@siclog "Step 16" siclog@ //The SS transmits an RRCConnectionReconfiguration message to order the UE to perform handover to Cell 3. //Get security parameters - v_Auth_Params := f_EUTRA_Security_Get (); + v_Auth_Params := f_EUTRA_Security_Get(); //Inform the SS about the HO and about the source cell id f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell3, cas_PdcpHandoverInit_REQ(eutra_Cell1, eutra_Cell3)); //Configure C-RNTI based contention resolution in cell 3 - f_EUTRA_SS_ConfigRachProcedure_HO (eutra_Cell3, cs_TimingInfo_Now, tsc_C_RNTI_Def2); - + f_EUTRA_SS_ConfigRachProcedure_HO(eutra_Cell3, cs_TimingInfo_Now, tsc_C_RNTI_Def2); + //Activate RRC security at SS Cell 3 (SRB 1, 2 and 1 AM DRB) - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest (eutra_Cell3, v_Auth_Params, v_NextHopChainingCount); - f_EUTRA_Security_Set (v_Auth_Params); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell3, v_Auth_Params, v_NextHopChainingCount); + f_EUTRA_Security_Set(v_Auth_Params); //Stop periodic sending of TA command on source cell f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 3) f_EUTRA_SS_CommonCellConfig(eutra_Cell3, cas_ULGrantAllocation_Def_REQ(eutra_Cell3, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - - f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility (eutra_Cell1, - eutra_Cell3, - f_Generate_cs_MobilityControlInfo_HO_RACH (eutra_Cell3, - omit, - cs_RACH_ConfigDedicated)); - + + f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility(eutra_Cell1, + eutra_Cell3, + f_Generate_cs_MobilityControlInfo_HO_RACH(eutra_Cell3, + cs_CarrierFreqEUTRA (v_CarrierFreq_Cell3.dl_CarrierFreq, omit), //@sic R5s141171 sic@ + cs_RACH_ConfigDedicated)); + //@siclog "Step 17" siclog@ - SRB.receive (car_SRB1_RrcPdu_IND (eutra_Cell3, cr_RRCConnectionReconfigurationComplete_r11 (tsc_RRC_TI_Def))); + SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell3, cr_RRCConnectionReconfigurationComplete_r11 (tsc_RRC_TI_Def))); f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.6.8.2 Step 17"); //Start periodic sending of TA command in target cell @@ -312,20 +311,20 @@ module RRC_Connection_Establishment_Failure f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell3, cas_PdcpHandoverComplete_REQ(eutra_Cell3)); //Reset SRBs and DRBs of source cell (cell 1) - f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell1); - + f_EUTRA_SS_SRBs_DRBs_Reset(eutra_Cell1); //@sic R5s150402 sic@ + f_EUTRA_TestBody_Set(false); - + f_EUTRA_Postamble(eutra_Cell3, E2_CONNECTED); - }//end of testcase 8.6.8.2 - + }//end of testcase 8.6.8.2 + /* * @desc REFERENCE TS 36.523-1 clause 8.6.8.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_8_3_EUTRA() runs on EUTRA_PTC - {//Connection Establishment Failure logging / Logging and reporting / Reporting at RRC connection re-establishment + { //Connection Establishment Failure logging / Logging and reporting / Reporting at RRC connection re-establishment var template (value) CellPowerList_Type v_CellPowerList_AtT0; var template (value) CellPowerList_Type v_CellPowerList_AtT1; var EUTRA_SecurityParams_Type v_Auth_Params; @@ -336,29 +335,29 @@ module RRC_Connection_Establishment_Failure var NAS_MSG_Indication_Type v_NasInd; var NAS_KsiValue v_KsiValue; timer t_LocalTimer; - + v_CellPowerList_AtT0 :={ - cs_CellPower ( eutra_Cell1, -80) + cs_CellPower(eutra_Cell1, -80) }; v_CellPowerList_AtT1 :={ - cs_CellPower ( eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE ), - cs_CellPower ( eutra_Cell2, -80) + cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), + cs_CellPower(eutra_Cell2, -80) }; - + //Init cell array and security f_EUTRA_Init(c2); - + //Get cell specific parameters for Cell 1 v_Guti_Params := f_EUTRA_CellInfo_GetGuti(eutra_Cell1); - v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId ( eutra_Cell1 ); - - f_EUTRA_CellInfo_InitMaxReferencePower ( eutra_Cell1, -80 ); - f_EUTRA_CellInfo_InitMaxReferencePower ( eutra_Cell2, -80 ); - + v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); + + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -80); + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, -80); + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell2); - + //Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); @@ -366,11 +365,11 @@ module RRC_Connection_Establishment_Failure f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); f_EUTRA_TestBody_Set(true); - + //@siclog "Step 1" siclog@ //The SS transmits a Paging message. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 2" siclog@ //The UE transmits an RRCConnectionRequest message. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); @@ -380,69 +379,66 @@ module RRC_Connection_Establishment_Failure //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) - { - repeat; - } + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) + { + repeat; + } [] t_LocalTimer.timeout {} - }; - + } + //@siclog "Step 4 - 11" siclog@ //Steps 2 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 1. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue))); - + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1,tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); - + SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - + //@siclog "Step 12" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.8.3.3.2-1 f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + v_ShortMAC_I := f_Calculate_ShortMAC (eutra_Cell1, eutra_Cell2); - + //@siclog "Step 13" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 2. - SRB.receive( car_SRB0_RrcPdu_IND( eutra_Cell2, - cr_508_RRCConnectionReestablishmentRequest ( tsc_C_RNTI_Def, - v_PhysCellId_Cell1, - cr_ReestablishmentCause_OtherFailure, - v_ShortMAC_I ) ) ); - - v_Auth_Params := f_EUTRA_Security_Get ( ); - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest ( eutra_Cell2, v_Auth_Params, v_NextHopChainingCount ); - f_EUTRA_Security_Set ( v_Auth_Params ); - + SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell2, + cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, + v_PhysCellId_Cell1, + cr_ReestablishmentCause_OtherFailure, + v_ShortMAC_I))); + v_Auth_Params := f_EUTRA_Security_Get(); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell2, v_Auth_Params, v_NextHopChainingCount); + f_EUTRA_Security_Set(v_Auth_Params); + //@siclog "Step 14" siclog@ //The SS transmits an RRCConnectionReestablishment message on Cell 2. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell2); - + //@siclog "Step 15" siclog@ //Check: Does the UE send an RRCConnectionReestablishmentComplete message with connEstFailInfoAvailable on Cell 2? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_RRCConnectionReestablishmentComplete_r11(tsc_RRC_TI_Def))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.3 Step 15"); - + //@siclog "Step 16 - 17" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 2. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 2 f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs(eutra_Cell2, tsc_RRC_TI_Def); - //End TestBody - //------------------------------------------------ f_EUTRA_TestBody_Set(false); f_EUTRA_Postamble(eutra_Cell2, E2_CONNECTED); - };//end of testcase 8.6.8.3 + } //end of testcase 8.6.8.3 /* * @desc REFERENCE TS 36.523-1 clause 8.6.8.4 @@ -474,7 +470,7 @@ module RRC_Connection_Establishment_Failure //@siclog "Step 1" siclog@ //The SS transmits a Paging message. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); + f_EUTRA_UE_Page_Def(eutra_Cell1); //@siclog "Step 2" siclog@ //The UE transmits an RRCConnectionRequest message. @@ -484,7 +480,7 @@ module RRC_Connection_Establishment_Failure //The SS waits for 2s,the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } @@ -495,7 +491,7 @@ module RRC_Connection_Establishment_Failure //Steps 2 to 9 of the generic radio bearer establishment procedure (TS 36.508 4.5.3.3-1) are executed. //@siclog "Step 4" siclog@ //SS sends a Paging message to the UE on the appropriate paging block, and including the UE identity in one entry of the IE pagingRecordLists - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); + f_EUTRA_UE_Page_Def(eutra_Cell1); //@siclog "Step 5" siclog@ //UE transmits an RRCConnectionRequest message. @@ -503,7 +499,7 @@ module RRC_Connection_Establishment_Failure //@siclog "Step 6" siclog@ //The SS transmit a RRCConnectionSetup message. - f_EUTRA_RRC_ConnectionSetup_Def ( eutra_Cell1 ); + f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); //@siclog "Step 7" siclog@ //The UE transmits a RRCConnectionSetupComplete message including the SERVICE REQUEST message. @@ -515,7 +511,7 @@ module RRC_Connection_Establishment_Failure //@siclog "Step 8 - 10" siclog@ //RRC Security is activated //The SS transmits RRC Connection Reconfiguration message to configure SRB2 and 1 AM DRB - f_EUTRA_Activate_SRB2_DRB_SendRrcMsg ( eutra_Cell1, tsc_RRC_TI_Def, v_NasInd.SecurityProtection.NasCount ); + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def, v_NasInd.SecurityProtection.NasCount); //@siclog "Step 11" siclog@ //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. @@ -530,7 +526,7 @@ module RRC_Connection_Establishment_Failure //@siclog "Step 13" siclog@ //Check: Does the UE send an UEInformationResponse message with connEstFailReport SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_UEInformationResponse_Common( tsc_RRC_TI_Def, + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, -, -, cr_UEInformationResponse_v930_IEs(-, @@ -554,14 +550,14 @@ module RRC_Connection_Establishment_Failure f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - }//end of testcase 8.6.8.4 + }//end of testcase 8.6.8.4 /* * @desc REFERENCE TS 36.523-1 clause 8.6.8.5 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_8_5_EUTRA() runs on EUTRA_PTC - {//Connection Establishment Failure logging / Logging and reporting / Reporting of Intra-frequency measurements + { // Connection Establishment Failure logging / Logging and reporting / Reporting of Intra-frequency measurements var NAS_MSG_Indication_Type v_NasInd; var EUTRA_CellInfo_Type v_CellInfo_Cell1; var CellIdentity v_CellIdentity_Cell1; @@ -571,66 +567,66 @@ module RRC_Connection_Establishment_Failure var Frequency_IE_Type v_Frequency_IE_f1; var PhysCellId v_PhysCellId_Cell2; timer t_LocalTimer; - + v_CellPowerList_AtT1 := { - cs_CellPower ( eutra_Cell2, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE ) + cs_CellPower(eutra_Cell2, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE) }; - + //Init cell array and security f_EUTRA_Init(c2); - + //Get cell specific parameters for Cell 1 v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); - + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell2); - + //Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - + f_EUTRA_TestBody_Set(true); - + //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.8.5.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 2" siclog@ //The SS waits for 40s to ensure that the UE detects intra-frequency cell. f_Delay(40.0); //@siclog "Step 3" siclog@ //The SS transmits a Paging message on Cell 1 - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionRequest message on Cell 1. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - + //@siclog "Step 5" siclog@ //The SS waits for 2s. //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } [] t_LocalTimer.timeout {} } - + //@siclog "Step 6 - 13" siclog@ //Steps 2 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 1.. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), @@ -638,20 +634,20 @@ module RRC_Connection_Establishment_Failure cr_508_SERVICE_REQUEST(v_KsiValue))); f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - + //@siclog "Step 14" siclog@ //The SS sends a UEInformationRequest message to get connEstFailReportReq on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); - + //@siclog "Step 15" siclog@ //Check: Does the UE send an UEInformationResponse message with connEstFailReport on Cell 1? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_UEInformationResponse_Common( tsc_RRC_TI_Def, - -, - -, - cr_UEInformationResponse_v930_IEs(-, + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, + -, + -, + cr_UEInformationResponse_v930_IEs(-, cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), *, ?, @@ -662,20 +658,20 @@ module RRC_Connection_Establishment_Failure *, *, omit))))))); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.5 Step 15"); - + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.5 Step 15"); + f_EUTRA_TestBody_Set(false); - + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - - } //end of testcase 8.6.8.5 + + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.8.6 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_8_6_EUTRA() runs on EUTRA_PTC - {//Connection Establishment Failure logging / Logging and reporting / Reporting of Inter-frequency measurements + { // Connection Establishment Failure logging / Logging and reporting / Reporting of Inter-frequency measurements var NAS_MSG_Indication_Type v_NasInd; var EUTRA_CellInfo_Type v_CellInfo_Cell1; var CellIdentity v_CellIdentity_Cell1; @@ -685,115 +681,112 @@ module RRC_Connection_Establishment_Failure var Frequency_IE_Type v_Frequency_IE_f2; var PhysCellId v_PhysCellId_Cell3; timer t_LocalTimer; - + v_CellPowerList_AtT1 := { - cs_CellPower ( eutra_Cell3, tsc_SuitableCellRS_EPRE ) + cs_CellPower(eutra_Cell3, tsc_SuitableCellRS_EPRE) }; //Init cell array and security f_EUTRA_Init(c3); //@sic R5-134523 sic@ - + //Get cell specific parameters for Cells v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + v_Frequency_IE_f2 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell3); v_PhysCellId_Cell3 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell3); //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell3); - + //Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - + f_EUTRA_TestBody_Set(true); - + //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.8.6.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1, cs_TimingInfo_Now); - + //@siclog "Step 2" siclog@ //The SS waits for 40s to ensure that the UE detects inter-frequency cell. f_Delay(40.0); //@siclog "Step 3" siclog@ //The SS transmits a Paging message on Cell 1 - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionRequest message on Cell 1. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - + //@siclog "Step 5" siclog@ //The SS waits for 2s. //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } [] t_LocalTimer.timeout {} } - + //@siclog "Step 6 - 13" siclog@ //Steps 2 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 1.. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue))); - f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); - + SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); - + //@siclog "Step 14" siclog@ //The SS sends a UEInformationRequest message to get connEstFailReportReq on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); - //@siclog "Step 15" siclog@ //Check: Does the UE send an UEInformationResponse message with connEstFailReport on Cell 1? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_UEInformationResponse_Common(tsc_RRC_TI_Def, - -, - -, - cr_UEInformationResponse_v930_IEs(-, - cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), - *, - ?, - *, - cr_MeasResultNeighCells_r11(cr_MeasResultList2EUTRA_r9_1Entry(v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, - v_PhysCellId_Cell3, - omit, - *, - *, - omit))))))); + -, + -, + cr_UEInformationResponse_v930_IEs(-, + cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), + *, + ?, + *, + cr_MeasResultNeighCells_r11(cr_MeasResultList2EUTRA_r9_1Entry(v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, + v_PhysCellId_Cell3, + omit, + *, + *, + omit))))))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.8.6 Step 15"); - + f_EUTRA_TestBody_Set(false); f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - - }//end of testcase 8.6.8.6 + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_9_1_EUTRA() runs on EUTRA_PTC { //Connection Establishment Failure logging / Logging and reporting / Reporting at UTRAN Inter-RAT handover var integer v_T1_RS_EPRE_Cell1 := -90; var integer v_T2_RS_EPRE_Cell1 := -70; - var EUTRA_SecurityParams_Type v_Auth_Params, v_Auth_Params_Native; + var EUTRA_SecurityParams_Type v_Auth_Params_Native; //@sic R5s150448 sic@ var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; var UTRAN_FDD_TDD_Type v_UTRAN_FDD_TDD; var ARFCN_ValueUTRA v_UTRAN_ARFCN_f8; @@ -805,14 +798,13 @@ module RRC_Connection_Establishment_Failure var template (omit) CarrierFreqListUTRA_TDD v_CarrierFreqListUTRA_TDD := omit; var NasCountInfo_Type v_NasCountInfo; timer t_LocalTimer; - - //Init variables - f_EUTRA_Init ( c4 ); - + + f_EUTRA_Init(c4); + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + //Acquire information of UTRAN cells v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(UTRAN); if (ischosen(v_UTRANSysInfo.Utran[0].FDD)) { @@ -837,9 +829,9 @@ module RRC_Connection_Establishment_Failure else { v_CarrierFreqListUTRA_TDD := {cs_CarrierFreqUTRA_TDD_Common(v_UTRAN_ARFCN_f8, 5, -, -, -, 0)}; } - + f_EUTRA_CellInfo_SetSIB6(eutra_Cell1, cs_508_SystemInformationBlockType6_Def(v_CarrierFreqListUTRA_FDD, v_CarrierFreqListUTRA_TDD)); - + //@desc Send relevant EUTRA cell1 info to UTRAN PTC f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), @@ -847,121 +839,104 @@ module RRC_Connection_Establishment_Failure cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1))); - + //@desc Create and configure cell f_EUTRA_CellConfig_Def(eutra_Cell1); - - //Preamble + f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); //Get the security parameters and send them to UTRAN PTC f_EUTRA_SendAuthParameters(eutra_Cell1, UTRAN); f_EUTRA_TestBody_Set(true); - //------------------------------------------------ - //Start TestBody - + //@siclog "Step 1" siclog@ //The SS transmits a Paging message on Cell 1. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 2" siclog@ //The UE transmits an RRCConnectionRequest message on Cell 1. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - + //@siclog "Step 3" siclog@ //The SS waits for 2s. //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } [] t_LocalTimer.timeout {} } - + //@siclog "Step 4" siclog@ //The SS changes Cell 1 and Cell 5 level according to the row "T1" in table 8.6.9.1.3.2-1. f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_SetCellPower(eutra_Cell1, v_T1_RS_EPRE_Cell1); - + // Backup Auth params and NAS count. - v_Auth_Params := f_EUTRA_Security_Get (); - v_Auth_Params_Native := v_Auth_Params; + v_Auth_Params_Native := f_EUTRA_Security_Get(); //@sic R5s150448 sic@ v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); // Update security params when authentication done on UTRAN side f_EUTRA_InterRAT_InitialiseAuthParams (UTRAN); - + //@siclog "Step 13" siclog@ //The SS changes Cell 1 and Cell 5 level according to the row "T2" in table 8.6.9.1.3.2-1. f_IRAT_WaitForCoOrd_Trigger(UTRAN); f_EUTRA_SetCellPower(eutra_Cell1, v_T2_RS_EPRE_Cell1); - + //Make HO specific steps for interRAT HO // Configure C-RNTI based contention resolution in target cell f_EUTRA_SS_ConfigRachProcedure(eutra_Cell1, tsc_C_RNTI_Def2, cs_RachProcedureConfig_CRNTI_HO (f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell1), - f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1) )); + f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); //Save new C-RNTI in cell configuration for p_TargetCellId - f_EUTRA_CellInfo_SetC_RNTI ( eutra_Cell1, tsc_C_RNTI_Def2 ); - + f_EUTRA_CellInfo_SetC_RNTI(eutra_Cell1, tsc_C_RNTI_Def2); + // activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB - v_Auth_Params := f_EUTRA_Security_Get(); - v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams); - v_Auth_Params.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetForHO (eutra_Cell1, tsc_DrbList_Def); - f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); - f_EUTRA_SS_NAS_CountSet ('00000000'O, omit); - f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL (eutra_Cell1, - v_Auth_Params.AS_Integrity, - v_Auth_Params.AS_Ciphering, - cs_TimingInfo_Now); - - f_EUTRA_Security_Set(v_Auth_Params); + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(eutra_Cell1); // @sic R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 1) f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_ULGrantAllocation_Def_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - + //@siclog "Step 16" siclog@ //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message with connEstFailInfoAvailable on Cell 1 using the security key derived from the new KeNB? SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell1, cr_RRCConnectionReconfigurationComplete_r11(tsc_RRC_TI_Def))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.9.1 Step 16"); - + //Start periodic sending of TA command in target cell (cell 1) f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_Auto_Def, false)); // configure RACH procedure for target cell back to default f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1); - + //@siclog "Step 17" siclog@ //Generic test procedure in TS 36.508 subclause 6.4.2.10 is performed on Cell 1. //NOTE: The UE performs tracking area updating procedure without ISR and security reconfiguration after successful completion of handover from UTRA. - f_EUTRA_ConnectedMode_TAU(eutra_Cell1); - + f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell1, v_Auth_Params_Native, v_NasCountInfo); //@sic R5s150448 sic@ + //@siclog "Step 18" siclog@ //The SS transmits a UEInformationRequest message to get connEstFailReportReq on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); - + //@siclog "Step 19" siclog@ //Check: Does the UE transmit a UEInformationResponse message with connEstFailReport on Cell 1? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_UEInformationResponse_Common(tsc_RRC_TI_Def, - -, - -, - cr_UEInformationResponse_v930_IEs(-, - cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), - *, - ?, - *, - omit))))); - + -, + -, + cr_UEInformationResponse_v930_IEs(-, + cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), + *, + ?, + *, + omit))))); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.9.1 Step 19"); - - //End TestBody - //------------------------------------------------ f_EUTRA_TestBody_Set(false); @@ -970,14 +945,14 @@ module RRC_Connection_Establishment_Failure f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - }; //end of testcase 8.6.9.1 - + } + /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_9_2_EUTRA() runs on EUTRA_PTC - { //Connection Establishment Failure logging / Logging and reporting / Reporting of UTRAN Inter-RAT measurements + { // Connection Establishment Failure logging / Logging and reporting / Reporting of UTRAN Inter-RAT measurements var integer v_T1_RS_EPRE_Cell1 := -85; var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; var UTRAN_FDD_TDD_Type v_UTRAN_FDD_TDD; @@ -991,14 +966,14 @@ module RRC_Connection_Establishment_Failure var template(present) MeasResultList2UTRA_r9 v_MeasResList2UTRA_r9; var NAS_KsiValue v_KsiValue; timer t_LocalTimer; - + //Init variables - f_EUTRA_Init ( c4 ); - + f_EUTRA_Init(c4); + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + //Acquire information of UTRAN cells v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(UTRAN); if (ischosen(v_UTRANSysInfo.Utran[0].FDD)) { @@ -1011,68 +986,66 @@ module RRC_Connection_Establishment_Failure v_UTRAN_ARFCN_f8 := v_UTRANSysInfo.Utran[0].TDD.Freq; v_UTRAN_PhysChId_Cell5 := v_UTRANSysInfo.Utran[0].TDD.CellParametersID; } - + //@desc Create and configure cell f_EUTRA_CellConfig_Def(eutra_Cell1); - + //Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - + f_EUTRA_TestBody_Set(true); - //------------------------------------------------ - //Start TestBody - + //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.9.2.3.2-1. f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_SetCellPower(eutra_Cell1, v_T1_RS_EPRE_Cell1); - + //@siclog "Step 2" siclog@ //The SS waits for [30s] to ensure that the UE detects UTRA cell. f_Delay(30.0); - + //@siclog "Step 3" siclog@ //The SS transmits a Paging message on Cell 1. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionRequest message on Cell 1. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - + //@siclog "Step 5" siclog@ //The SS waits for 2s. //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } [] t_LocalTimer.timeout {} } - + //@siclog "Step 6 - 13" siclog@ //Steps 2 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 1. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue))); f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); - + f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(eutra_Cell1,tsc_RRC_TI_Def); - + //@siclog "Step 14" siclog@ //The SS sends a UEInformationRequest message to get connEstFailReportReq on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); - + //@siclog "Step 15" siclog@ //Check: Does the UE transmit a UEInformationResponse message with connEstFailReport on Cell 1? if (v_UTRAN_FDD_TDD == UTRAN_FDD) { @@ -1081,22 +1054,19 @@ module RRC_Connection_Establishment_Failure v_MeasResultUTRA_PhysCellId := cr_MeasResultUTRA_PhysCellId_TDD(v_UTRAN_PhysChId_Cell5); } v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, *); - + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_UEInformationResponse_Common(tsc_RRC_TI_Def, - -, - -, - cr_UEInformationResponse_v930_IEs(-, - cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), - *, - ?, - *, - cr_MeasResultNeighCells_r11(omit,v_MeasResList2UTRA_r9)))))); - + -, + -, + cr_UEInformationResponse_v930_IEs(-, + cr_UEInformationResponse_v1130_IEs(cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), + *, + ?, + *, + cr_MeasResultNeighCells_r11(omit,v_MeasResList2UTRA_r9)))))); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.9.2 Step 15"); - - //End TestBody - //------------------------------------------------ f_EUTRA_TestBody_Set(false); @@ -1104,12 +1074,11 @@ module RRC_Connection_Establishment_Failure f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - - }; //end of testcase 8.6.9.2 + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_9_3_EUTRA() runs on EUTRA_PTC { //Connection Establishment Failure logging / Logging and reporting / Reporting of GERAN Inter-RAT measurements @@ -1129,100 +1098,96 @@ module RRC_Connection_Establishment_Failure var NAS_MSG_Indication_Type v_NasInd; var NAS_KsiValue v_KsiValue; timer t_LocalTimer; - + //Initialise all cells, security and mobile parameters f_EUTRA_Init(c5); - - v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId( eutra_Cell1 ); - v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs( eutra_Cell1 ); - v_ChBandDependency_f1 := f_EUTRA_BandDependentParam( v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth ); - + + v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); + v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); + v_ChBandDependency_f1 := f_EUTRA_BandDependentParam(v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth); + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; - - //Acquire information of GERAN cells - v_GERANSysInfo := f_IRAT_WaitForCoOrd_SysInfo( GERAN ); + + //Acquire information of GERAN cells + v_GERANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(GERAN); v_GERAN_ARFCN_f11 := v_GERANSysInfo.Geran[0].Arfcn; v_GERAN_PhysChId_Cell24 := { networkColourCode := v_GERANSysInfo.Geran[0].Ncc, baseStationColourCode := v_GERANSysInfo.Geran[0].Bcc - } + }; - if( v_GERANSysInfo.Geran[0].BandIndicator == '0'B ) { + if (v_GERANSysInfo.Geran[0].BandIndicator == '0'B) { v_BandIndicatorGERAN_Cell24 := dcs1800; } else { v_BandIndicatorGERAN_Cell24 := pcs1900; } - + v_ListOfARFCNs[0] := v_GERANSysInfo.Geran[0].Arfcn; v_CarrierFreqGERAN_Cell24 := { arfcn := v_GERANSysInfo.Geran[0].Arfcn, bandIndicator := f_ConvertGERAN_Band(v_GERANSysInfo.Geran[0].BandIndicator) }; - + f_EUTRA_CellConfig_Def (eutra_Cell1); - - //Preamble + f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); - + f_EUTRA_TestBody_Set(true); - //------------------------------------------------ - //Start TestBody - + //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.9.3.3.2-1. - f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); //@sic R5s150452 sic@ f_EUTRA_SetCellPower(eutra_Cell1, v_T1_RS_EPRE_Cell1); - + //@siclog "Step 2" siclog@ //The SS waits for [30s] to ensure that the UE detects GERAN cell. f_Delay(30.0); //@siclog "Step 3" siclog@ //The SS transmits a Paging message on Cell 1. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); - + f_EUTRA_UE_Page_Def(eutra_Cell1); + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionRequest message on Cell 1. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); - + //@siclog "Step 5" siclog@ //The SS waits for 2s. //Note: the UE may transmit one or more RRCConnectionRequest messages but the SS does not answer to these messages. t_LocalTimer.start(2.0); alt { - [] SRB.receive( car_SRB0_RrcPdu_IND ( eutra_Cell1, cr_508_RRCConnectionRequest ) ) + [] SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, cr_508_RRCConnectionRequest)) { repeat; } [] t_LocalTimer.timeout {} } - + //@siclog "Step 6 - 13" siclog@ //Steps 2 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 1. - f_EUTRA_UE_Page_Def ( eutra_Cell1 ); + f_EUTRA_UE_Page_Def(eutra_Cell1); f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1); f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell1); - + v_KsiValue := f_EUTRA_SecurityKSIasme_Get(); v_NasInd := f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, cr_RRCConnectionSetupComplete_r11(tsc_RRC_TI_Def, ?), cr_NAS_Indication(tsc_SHT_IntegrityProtected, cr_508_SERVICE_REQUEST(v_KsiValue))); - f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def,v_NasInd.SecurityProtection.NasCount); - + f_EUTRA_Activate_SRB2_DRB_SendRrcMsg(eutra_Cell1, tsc_RRC_TI_Def, v_NasInd.SecurityProtection.NasCount); + f_EUTRA_Activate_SRB2_DRB_ReceiveRrcAndNasMsg(eutra_Cell1,tsc_RRC_TI_Def); - + //@siclog "Step 14" siclog@ //The SS sends a UEInformationRequest message to get connEstFailReportReq on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_508_UEInformationRequest_r11(tsc_RRC_TI_Def))); - //@siclog "Step 15" siclog@ //Check: Does the UE transmit a UEInformationResponse message with connEstFailReport on Cell 1? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, @@ -1240,19 +1205,14 @@ module RRC_Connection_Establishment_Failure v_GERAN_PhysChId_Cell24, omit, ?))))))); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.9.3 Step 15"); - - //End TestBody - //------------------------------------------------ f_EUTRA_TestBody_Set(false); //tell the UTRAN component that the test is over - f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + f_IRAT_SendCoOrd(GERAN, cms_IRAT_Trigger); //@sic R5s150452 sic@ f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - - }; //end of testcase 8.6.9.3 + } -} // end of Module +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn similarity index 74% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn index ae3c972..755d1a4 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure_GERAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-06 11:18:42 +0200 (Fri, 06 Jun 2014) $ -// $Rev: 11617 $ +// @version: IWD_15wk38 +// $Date: 2015-06-17 00:42:21 +0200 (Wed, 17 Jun 2015) $ +// $Rev: 13920 $ /******************************************************************************/ module RRC_Connection_Establishment_Failure_GERAN @@ -17,39 +17,34 @@ module RRC_Connection_Establishment_Failure_GERAN import from GERAN_CellInfo all; import from CommonDefs all; import from CommonIratDefs all; - import from GERAN_Templates all; //================================================================ - /* + /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.3 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_9_3_GERAN () runs on GERAN_PTC - {//Connection Establishment Failure logging / Logging and reporting / Reporting of GERAN Inter-RAT measurements + { //Connection Establishment Failure logging / Logging and reporting / Reporting of GERAN Inter-RAT measurements //Initialise test case f_GERAN_Init( EUTRA_GERAN ); //Send cell info to EUTRA PTC f_GERAN_Send_IR_SysInfoToEUTRA (geran_Cell24); - + f_GERAN_CreateCell (geran_Cell24); - - f_GERAN_SetCellPowerLevel (geran_Cell24, tsc_GERAN_ChPwrLvl_Off); - f_GERAN_TestBody_Set( true ); - + //@siclog "Step 3" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.9.3.3.2-1. f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); f_GERAN_SetCellPowerLevel (geran_Cell24, -85); - + //Now wait for the test to finish f_IRAT_WaitForCoOrd_Trigger ( EUTRA ); - + f_GERAN_TestBody_Set( false ); - + f_GERAN_SS_CellRelease ( geran_Cell24 ); - } // end of f_TC_8_6_9_3_GERAN - -} // end of Module + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn similarity index 70% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn index 3aae040..68d1a38 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Connection_Establishment_Failure_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module RRC_Connection_Establishment_Failure_UTRAN @@ -20,7 +20,7 @@ module RRC_Connection_Establishment_Failure_UTRAN import from UTRAN_CellInfo all; import from UTRAN_CommonDefs all; import from UTRAN_ConfigurationSteps all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_Parameters all; import from UTRAN_RAB_Functions all; import from UTRAN_RRC_Templates all; @@ -30,19 +30,20 @@ module RRC_Connection_Establishment_Failure_UTRAN import from UTRAN_ASN1_ASP_RAB_Templates all; import from UTRAN_ASN1_ASP_Templates all; import from UTRAN_RRC_Templates_r9 all; - import from UTRAN_MDT_Templates all; + import from UTRAN_RRC_Handover_Templates all; //@sic R5s150448 sic@ + import from UTRAN_RRC_RAB_Templates all; //@sic R5s150448 sic@ //================================================================ /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_9_1_UTRAN() runs on UTRAN_PTC { //Connection Establishment Failure logging / Logging and reporting / Reporting at UTRAN Inter-RAT handover var integer v_T1_PCCPCH_CPICH_Cell5 := -65; var integer v_T2_PCCPCH_CPICH_Cell5 := -85; var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode; - + var UTRAN_SecurityInfo_Type v_SecurityInfo; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI; var TGCFN v_TGCFN; @@ -53,124 +54,122 @@ module RRC_Connection_Establishment_Failure_UTRAN var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); - + // Initialise all cells - f_UTRAN_Init ( EUTRA_UTRAN ); + f_UTRAN_Init(EUTRA_UTRAN); + + v_SecurityInfo := f_UTRAN_Security_Get(); - v_SecurityInfo := f_UTRAN_Security_Get ( ); - //Send the cell info to the EUTRA component - f_UTRAN_Send_IR_SysInfoToEUTRA ( utran_Cell5 ); - + f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); + //Get Cell Parameters for EUTRA cell1 v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); v_EUTRA_FrequencyAndPriorityInfoList[0] := cs_EUTRA_FrequencyAndPriorityInfo(v_EUTRASysInfo.Eutra[0].Arfcn, f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(v_EUTRASysInfo.Eutra[0].DL_Bandwidth)); - + f_UTRAN_SysInfo_SetSIB19 (utran_Cell5, cs_SIB19_UtraAndOneEutraEntry(cs_Utra_PriorityInfoList_Def (5),v_EUTRA_FrequencyAndPriorityInfoList)); - + //Create and configure Cell 5 //Cell started switched on with default power level, -60 and max attenuation - f_UTRAN_SS_CreateCellDCH ( utran_Cell5 ); - + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + //Start sending System Information - f_UTRAN_SendDefSysInfo ( utran_Cell5 ); - + f_UTRAN_SendDefSysInfo(utran_Cell5); + //UE starts registered in EUTRA, wait its Auth Params f_UTRAN_InterRAT_InitialiseAuthParams(); - + //Get FDD or TDD mode - v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD ( utran_Cell5 ); - + v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(utran_Cell5); + f_UTRAN_TestBody_Set(true); - + //@siclog "Step 4" siclog@ //The SS changes Cell 1 and Cell 5 level according to the row "T1" in table 8.6.9.1.3.2-1. f_IRAT_WaitForCoOrd_Trigger(EUTRA); f_UTRAN_SetCellPower(utran_Cell5, v_T1_PCCPCH_CPICH_Cell5, v_T1_PCCPCH_CPICH_Cell5); - + //@siclog "Step 5" siclog@ //Generic test procedure in TS 36.508 subclause 6.4.2.8 is performed on Cell 5. //NOTE: The UE performs an RAU procedure and the RRC connection is released. f_UTRAN_508CheckCampOnNewUtranCell(utran_Cell5, cell_Dch); - + //@siclog "Step 6 - 10" siclog@ //Step 7 to 11 of test procedure in TS 34.123-1 subclause 12.9.14.4 is performed on Cell 5 using the UTRA reference radio bearer parameters and combination UTRA PS RB according to TS 36.508 subclause 4.8.3 and Table 4.8.3-1. //NOTE: The UE performs Network initiated RAB re-establishment in a UTRAN cell. f_UTRAN_MT_RAB_ReEst(utran_Cell5, cell_DCH_64kPS_RAB_SRB); - + // UE's re-done authentication in establishing the RAB so need to send the new params to EUTRA f_UTRAN_SendAuthCoOrdParameters (EUTRA, omit); - + //For UTRAN FDD, EXCEPTION: Steps 11a1 to 11a2 describe behaviour that depends on the UE capability; the "lower case letter" identifies a step sequence that takes place if a capability is supported. //For UTRAN TDD, goto step 12. - if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired ) - { + if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired) { //@siclog "Step 11a1 - 11a2" siclog@ //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common_r11(utran_Cell5, cs_TGPS_Status_r10_Deactive); - + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell5); //@sic R5s150448 sic@ @sic R5s150684: f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ + //Changed to use activation time test step and derive TGCFN from this test step - v_CFNInfo := f_CalculateActTime ( utran_Cell5 ); + v_CFNInfo := f_CalculateActTime(utran_Cell5); v_TGCFN := v_CFNInfo.tGCFN; v_Tgps_Reconfiguration_CFN := v_TGCFN; - + //refresh security info v_SecurityInfo := f_UTRAN_Security_Get(); - + //@siclog "Step 12" siclog@ //ss tx a measurement control to setup inter-RAT on cell 5 - U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - v_Tgps_Reconfiguration_CFN, - v_TGCFN))); - if ( pc_InterRAT_DL_CompressedModeRequired ) { - f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell5, - tsc_DL_DPCH1, - cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), - cs_ActivateCFN ( v_CFNInfo.actTime)) ); - - } - if ( pc_InterRAT_UL_CompressedModeRequired ) { - f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell5, - tsc_UL_DPCH1, - cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), - cs_ActivateCFN ( v_CFNInfo.actTime)) ); + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_MeasurementControl_InterRATMeasurement(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + v_Tgps_Reconfiguration_CFN, + v_TGCFN))); //@sic R5s150448 sic@ + if (pc_InterRAT_DL_CompressedModeRequired) { + f_UTRAN_CPHY_RL_Modify(cas_CompressedModeStatusInfo_REQ (utran_Cell5, + tsc_DL_DPCH1, + cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), + cs_ActivateCFN(v_CFNInfo.actTime))); + } - } else if (v_FDD_TDD_Mode == UTRAN_FDD and not pc_UTRA_CompressedModeRequired ) { + if (pc_InterRAT_UL_CompressedModeRequired) { + f_UTRAN_CPHY_RL_Modify(cas_CompressedModeStatusInfo_REQ (utran_Cell5, + tsc_UL_DPCH1, + cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), + cs_ActivateCFN(v_CFNInfo.actTime))); + } + } else if (v_FDD_TDD_Mode == UTRAN_FDD and not pc_UTRA_CompressedModeRequired) { //refresh security info v_SecurityInfo := f_UTRAN_Security_Get(); - + //@siclog "Step 12" siclog@ //ss tx a measurement control to setup inter-RAT on cell 5 - U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_NoCompMode_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth))); - - - }else{ - v_SecurityInfo := f_UTRAN_Security_Get(); - f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell5, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); - //@siclog "Step 12" siclog@ - //ss tx a measurement control to setup inter-RAT on cell 5 - U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - cs_CellDCHMeasOccasionInfo_TDD128_r9))); - - }; + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_MeasurementControl_InterRATMeasurement_NoCompMode(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth))); //@sic R5s150448 sic@ + + } else { + v_SecurityInfo := f_UTRAN_Security_Get(); + f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell5, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); + //@siclog "Step 12" siclog@ + //ss tx a measurement control to setup inter-RAT on cell 5 + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_MeasurementControl_InterRATMeasurement_TDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + cs_CellDCHMeasOccasionInfo_TDD128_r9))); //@sic R5s150448 sic@ + } + //@siclog "Step 13" siclog@ //The SS changes Cell 1 and Cell 5 level according to the row "T2" in table 8.6.9.1.3.2-1. f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); @@ -180,18 +179,18 @@ module RRC_Connection_Establishment_Failure_UTRAN //The UE transmits a MEASUREMENT REPORT message on Cell 5 including the E-UTRA event results. U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, tsc_RB2, cr_MeasurementReport_EUTRACell(v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRASysInfo.Eutra[0].HO.PhysCellId,?,?))); - - + + v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0]); - + //@siclog "Step 15" siclog@ //The SS transmits a HANDOVER FROM UTRAN COMMAND message on Cell 5. U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_RRCConnectionConfigurationMessage))); - + cs_HandoverFromUTRANCommand_EUTRA (v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_RRCConnectionConfigurationMessage))); //@sic R5s150448 sic@ + //Wait for the end of the test case f_IRAT_WaitForCoOrd_Trigger(EUTRA); @@ -200,51 +199,51 @@ module RRC_Connection_Establishment_Failure_UTRAN // Release UTRAN Cell 5 f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); - }//end of Test case 8.6.9.1 + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.9.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_9_2_UTRAN() runs on UTRAN_PTC - { //Connection Establishment Failure logging / Logging and reporting / Reporting of UTRAN Inter-RAT measurements + { // Connection Establishment Failure logging / Logging and reporting / Reporting of UTRAN Inter-RAT measurements var integer v_T1_CPICH_Cell5 := -90; var integer v_T1_PCCPCH_Cell5 := -92; var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode; - + var UTRAN_SecurityInfo_Type v_SecurityInfo; - + // Initialise all cells - f_UTRAN_Init ( EUTRA_UTRAN ); + f_UTRAN_Init(EUTRA_UTRAN); + + v_SecurityInfo := f_UTRAN_Security_Get(); - v_SecurityInfo := f_UTRAN_Security_Get ( ); - //Send the cell info to the EUTRA component - f_UTRAN_Send_IR_SysInfoToEUTRA ( utran_Cell5 ); - + f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); + //Create and configure Cell 5 //Cell started switched on with default power level, -60 and max attenuation - f_UTRAN_SS_CreateCellDCH ( utran_Cell5 ); - + f_UTRAN_SS_CreateCellDCH(utran_Cell5); + //Start sending System Information - f_UTRAN_SendDefSysInfo ( utran_Cell5 ); - + f_UTRAN_SendDefSysInfo(utran_Cell5); + f_UTRAN_SetCellPower(utran_Cell5, tsc_AttenuationCellOFF, tsc_AttenuationCellOFF); - + //Get FDD or TDD mode - v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD ( utran_Cell5 ); + v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD(utran_Cell5); f_UTRAN_TestBody_Set(true); - + //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.9.2.3.2-1. f_IRAT_WaitForCoOrd_Trigger(EUTRA); - if( v_FDD_TDD_Mode == UTRAN_TDD){ + if (v_FDD_TDD_Mode == UTRAN_TDD) { f_UTRAN_SetCellPower(utran_Cell5, v_T1_PCCPCH_Cell5, v_T1_PCCPCH_Cell5); - }else{ + } else { f_UTRAN_SetCellPower(utran_Cell5, v_T1_CPICH_Cell5, v_T1_CPICH_Cell5); } - + //Wait for the end of the test case f_IRAT_WaitForCoOrd_Trigger(EUTRA); @@ -253,6 +252,5 @@ module RRC_Connection_Establishment_Failure_UTRAN // Release UTRAN Cell 5 f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); - }//end of Test case 8.6.9.2 - -} // end of Module + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn index 7173580..966e958 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_ImediateMDT_UTRAN.ttcn @@ -2,20 +2,15 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-04 11:44:40 +0200 (Wed, 04 Jun 2014) $ -// $Rev: 11504 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module RRC_Immediate_MDT_UTRAN { - -///////////////// -// Import Part // -///////////////// - import from UTRAN_RRC_ASN1_Definitions language "ASN.1:2002" all; import from UTRAN_ASP_Definitions language "ASN.1:2002" all; import from CommonIratDefs all; @@ -28,35 +23,35 @@ module RRC_Immediate_MDT_UTRAN //================================================================ /* * @desc REFERENCE TS 36.523-1 clause 8.6.10.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_10_1_UTRAN() runs on UTRAN_PTC { //Inter-RAT Immediate MDT / Reporting / Location information / Event B2 var integer v_T0_PCCPCH_CPICH_Cell7 := -88; var integer v_T1_PCCPCH_CPICH_Cell7 := -64; - + // Initialise all cells f_UTRAN_Init ( EUTRA_UTRAN ); - + //Send the cell info to the EUTRA component f_UTRAN_Send_IR_SysInfoToEUTRA ( utran_Cell7 ); - + //Create and configure Cell 7 //Cell started switched on with default power level, -60 and max attenuation f_UTRAN_SS_CreateCellDCH ( utran_Cell7 ); - + //Start sending System Information f_UTRAN_SendDefSysInfo ( utran_Cell7 ); - + f_UTRAN_SetCellPower(utran_Cell7, v_T0_PCCPCH_CPICH_Cell7, v_T0_PCCPCH_CPICH_Cell7); - + f_UTRAN_TestBody_Set(true); - + //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 7 parameters according to the row "T1" in table 8.6.10.1.3.2-1. f_IRAT_WaitForCoOrd_Trigger(EUTRA); f_UTRAN_SetCellPower(utran_Cell7, v_T1_PCCPCH_CPICH_Cell7, v_T1_PCCPCH_CPICH_Cell7); - + //Wait for the end of the test case f_IRAT_WaitForCoOrd_Trigger(EUTRA); @@ -65,6 +60,5 @@ module RRC_Immediate_MDT_UTRAN // Release UTRAN Cell 7 f_UTRAN_ReleaseCell(utran_Cell7, f_UTRAN_CellInfo_GetConfigType(utran_Cell7)); - }//end of Test case 8.6.10.1 - -} // end of Module + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Immediate_MDT.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Immediate_MDT.ttcn similarity index 69% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Immediate_MDT.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Immediate_MDT.ttcn index 3fc4071..9dff46f 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_Immediate_MDT.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_Immediate_MDT.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-07 00:13:03 +0200 (Sat, 07 Jun 2014) $ -// $Rev: 11664 $ +// @version: IWD_15wk38 +// $Date: 2015-09-15 11:58:10 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14375 $ /******************************************************************************/ module RRC_Immediate_MDT @@ -22,6 +22,7 @@ module RRC_Immediate_MDT import from EUTRA_MDT_Specific_Templates all; import from EUTRA_Timing all; import from EUTRA_RRCSteps all; + import from EUTRA_NASSteps all; import from EUTRA_BandDependentParam all; import from EUTRA_Measurement_Functions all; import from EUTRA_UE_Location all; @@ -113,44 +114,46 @@ module RRC_Immediate_MDT /* * @desc REFERENCE TS 36.523-1 clause 8.6.1.2 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_1_2_EUTRA() runs on EUTRA_PTC { //Immediate MDT / Reporting / Location information / Request from eNB / Event A2 - var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1; + var template (value) CellPowerList_Type v_CellPowerList_AtT0; + var template (value) CellPowerList_Type v_CellPowerList_AtT1; var Frequency_IE_Type v_Frequency_IE_f1; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; - var float v_TimerValue1, v_TimerValue2; + var float v_TimerValue1; + var float v_TimerValue2; var B48_Type v_AbsoluteTimeInfo; - + v_CellPowerList_AtT0 := { cs_CellPower (eutra_Cell1, -70) }; v_CellPowerList_AtT1 := { cs_CellPower (eutra_Cell1, -96) }; - + // Init variables f_EUTRA_Init(c1); - + v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth); - + v_TimerValue1 := f_EUTRA_SetTimerToleranceMax(eutra_Cell1, nonProtocolTimer, 10.0); v_TimerValue2 := f_EUTRA_SetTimerToleranceMax(eutra_Cell1, nonProtocolTimer, 60.0); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -70); - + // Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); // Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(eutra_Cell1); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); f_EUTRA_ProvideUE_LocationInformation(eutra_Cell1,RRC_CONNECTED); f_EUTRA_TestBody_Set(true); - + v_AbsoluteTimeInfo := f_MDT_GetAbsolute_TimeStamp(); //@siclog "Step 1-2" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup intra-frequency measurement for event A2 with includeLocationInfo set to true. @@ -159,7 +162,6 @@ module RRC_Immediate_MDT cs_RRCConnectionReconfiguration_8_6_1_2_Step1(tsc_RRC_TI_Def, v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell1.AllowedMeasBandwidth)); - //@siclog "Step 3" siclog@ //The SS changes Cell 1 power level according to the row "T1" in table 8.6.1.2.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); @@ -202,15 +204,16 @@ module RRC_Immediate_MDT // Postamble f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - } // end of f_TC_8_6_1_2_EUTRA + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.10.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_10_1_EUTRA() runs on EUTRA_PTC { //Inter-RAT Immediate MDT / Reporting / Location information / Event B2 - var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1; + var template (value) CellPowerList_Type v_CellPowerList_AtT0; + var template (value) CellPowerList_Type v_CellPowerList_AtT1; var Frequency_IE_Type v_Frequency_IE_f1; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; var B48_Type v_AbsoluteTimeInfo; @@ -218,6 +221,9 @@ module RRC_Immediate_MDT var UTRAN_FDD_TDD_Type v_UTRAN_FDD_TDD; var ARFCN_ValueUTRA v_UTRAN_ARFCN_f8; var integer v_UTRAN_PhysChId_Cell7; + var template (value) DL_DCCH_Message v_RRCConnectionReconfiguration; + var template (present) MeasResults.measResultNeighCells v_MeasResultNeighCells; + var template (present) LocationInfo_r10.locationCoordinates_r10 v_LocationCoordinates; v_CellPowerList_AtT0 := { cs_CellPower (eutra_Cell1, -60) @@ -233,7 +239,7 @@ module RRC_Immediate_MDT v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth); f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell1, -60); - + //Acquire information of UTRAN cells v_UTRANSysInfo := f_IRAT_WaitForCoOrd_SysInfo(UTRAN); if (ischosen(v_UTRANSysInfo.Utran[0].FDD)) { @@ -246,92 +252,75 @@ module RRC_Immediate_MDT v_UTRAN_ARFCN_f8 := v_UTRANSysInfo.Utran[0].TDD.Freq; v_UTRAN_PhysChId_Cell7 := v_UTRANSysInfo.Utran[0].TDD.CellParametersID; } - + // Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); // Preamble f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); f_EUTRA_RbEst_Def(eutra_Cell1); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); f_EUTRA_ProvideUE_LocationInformation(eutra_Cell1,RRC_CONNECTED); f_EUTRA_TestBody_Set(true); - + v_AbsoluteTimeInfo := f_MDT_GetAbsolute_TimeStamp(); //@siclog "Step 1-2" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup inter-RAT measurement with includeLocationInfo on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message to confirm the setup of inter-RAT measurement on Cell 1. - if(v_UTRAN_FDD_TDD == UTRAN_TDD){ - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, - cs_RRCConnectionReconfiguration_8_6_10_1_Step1_TDD(tsc_RRC_TI_Def, - v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Cell1.AllowedMeasBandwidth, - v_UTRAN_ARFCN_f8, - v_UTRAN_PhysChId_Cell7)); + if (v_UTRAN_FDD_TDD == UTRAN_TDD) { + v_RRCConnectionReconfiguration := cs_RRCConnectionReconfiguration_8_6_10_1_Step1_TDD(tsc_RRC_TI_Def, + v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_Cell1.AllowedMeasBandwidth, + v_UTRAN_ARFCN_f8, + v_UTRAN_PhysChId_Cell7) } else{ - f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, - cs_RRCConnectionReconfiguration_8_6_10_1_Step1_FDD(tsc_RRC_TI_Def, - v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Cell1.AllowedMeasBandwidth, - v_UTRAN_ARFCN_f8, - v_UTRAN_PhysChId_Cell7)); - + v_RRCConnectionReconfiguration := cs_RRCConnectionReconfiguration_8_6_10_1_Step1_FDD(tsc_RRC_TI_Def, + v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_Cell1.AllowedMeasBandwidth, + v_UTRAN_ARFCN_f8, + v_UTRAN_PhysChId_Cell7); } - + f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, v_RRCConnectionReconfiguration); + //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 7 parameters according to the row "T1" in table 8.6.10.1.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); + + //Send co-ord trigger to UTRAN to apply power level at T1 + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); //@sic R5s150732, R5s150730 sic@ //@siclog "Step 4" siclog@ //Check: Does the UE transmit a MeasurementReport message to report the event B2 for Cell 7 with locationInfo? - if(v_UTRAN_FDD_TDD == UTRAN_TDD){ - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_MeasurementReport_r10(1, - ?, - ?, - cr_MeasResultNeighCells_measResultListUTRA_1Entry_TDD(v_UTRAN_PhysChId_Cell7, - omit, - ?, - omit), - ?, - cr_LocationInfo_r10_LocationCoordinates((cr_Ellipsoid_Point_r10(?), - cr_EllipsoidPointWithAltitude_r10(?), - cr_EllipsoidPointWithUncertaintyCircle_r11(?), - cr_EllipsoidPointWithUncertaintyEllipse_r11(?), - cr_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11(?), - cr_EllipsoidArc_r11(?), - cr_Polygon_r11(?)), - ?, - ?)))); - }else{ - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_MeasurementReport_r10(1, - ?, - ?, - cr_MeasResultNeighCells_measResultListUTRA_1Entry_FDD(v_UTRAN_PhysChId_Cell7, - omit, - ?, - omit), - ?, - cr_LocationInfo_r10_LocationCoordinates((cr_Ellipsoid_Point_r10(?), - cr_EllipsoidPointWithAltitude_r10(?), - cr_EllipsoidPointWithUncertaintyCircle_r11(?), - cr_EllipsoidPointWithUncertaintyEllipse_r11(?), - cr_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11(?), - cr_EllipsoidArc_r11(?), - cr_Polygon_r11(?)), - ?, - ?)))); - + if (v_UTRAN_FDD_TDD == UTRAN_TDD) { + v_MeasResultNeighCells := cr_MeasResultNeighCells_measResultListUTRA_1Entry_TDD(v_UTRAN_PhysChId_Cell7, omit, ?, omit); + } else { + v_MeasResultNeighCells := cr_MeasResultNeighCells_measResultListUTRA_1Entry_FDD(v_UTRAN_PhysChId_Cell7, omit, ?, omit); } + v_LocationCoordinates := (cr_Ellipsoid_Point_r10(?), + cr_EllipsoidPointWithAltitude_r10(?), + cr_EllipsoidPointWithUncertaintyCircle_r11(?), + cr_EllipsoidPointWithUncertaintyEllipse_r11(?), + cr_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11(?), + cr_EllipsoidArc_r11(?), + cr_Polygon_r11(?)); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, + cr_MeasurementReport_r10(1, + ?, + ?, + v_MeasResultNeighCells, + -, //@sic R5s150732, R5s150730 sic@ + cr_LocationInfo_r10_LocationCoordinates(v_LocationCoordinates, ?, ?)))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.10.1 Step 4"); f_EUTRA_TestBody_Set (false); + //Send co-ord trigger to UTRAN to release cell and end testcase + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); //@sic R5s150732, R5s150730 sic@ + // Postamble f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - } // end of f_TC_8_6_10_1_EUTRA + } -} // end of Module +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure.ttcn similarity index 88% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure.ttcn index 2258c11..b2c76ad 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 14:48:14 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12157 $ +// @version: IWD_15wk38 +// $Date: 2015-09-11 17:28:24 +0200 (Fri, 11 Sep 2015) $ +// $Rev: 14305 $ /******************************************************************************/ module RRC_LoggedHOFailure @@ -20,6 +20,7 @@ module RRC_LoggedHOFailure import from EUTRA_AspCommon_Templates all; import from EUTRA_CellInfo all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from EUTRA_ConfigurationSteps all; import from EUTRA_MDT_Specific_Templates all; import from EUTRA_UE_Location all; @@ -170,7 +171,7 @@ module RRC_LoggedHOFailure t_T304Max.start(v_T304); //Reset SRBs and DRBs of source cell (cell 1) - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync (eutra_Cell1, 100); //@sic R5s130890 sic@ + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(eutra_Cell1); //@sic R5s150402, R5s130890 sic@ //@siclog "Step 6" siclog@ //The SS changes Cell 2 parameter according to the row "T2" in Table 8.6.6.1.3.2-1. @@ -192,8 +193,7 @@ module RRC_LoggedHOFailure cr_ReestablishmentCause_HandoverFailure, v_ShortMAC_I))); - //Deactivate the default to stop receiving measurement reports for cell 2 on cell 1 - deactivate(v_DefaultRef); + //@sic R5s150351 sic@ //Activate RRC security at SS[SRB 1,2 and DRB 1] v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell1, f_EUTRA_Security_Get(), v_Ncc0); //@sic R5s130890 sic@ @@ -219,7 +219,7 @@ module RRC_LoggedHOFailure //The SS transmits a UEInformationRequest message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 13" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1? @@ -361,7 +361,7 @@ module RRC_LoggedHOFailure t_T304Max.start(v_T304); //Reset SRBs and DRBs of source cell (cell 1) - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync (eutra_Cell1, 100); //@sic R5s130975 sic@ + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(eutra_Cell1); //@sic R5s150402, R5s130975 sic@ //@siclog "Step 6" siclog@ //The SS changes Cell 3 parameter according to the row "T2" in Table 8.6.6.2.3.2-1. @@ -405,7 +405,7 @@ module RRC_LoggedHOFailure //The SS transmits a UEInformationRequest message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 13" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1? @@ -545,6 +545,9 @@ module RRC_LoggedHOFailure f_Generate_cs_508_MobilityControlInfo_HO(eutra_Cell2)); t_T304Max.start(v_T304); + + //Reset SRBs and DRBs of source cell (cell 1) + f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync(eutra_Cell1); //@sic R5s150402, R5s150232, R5s140743 sic@ //@siclog "Step 6" siclog@ //The SS changes Cell 2 parameter according to the row "T2" in Table 8.6.6.4.3.2-1. @@ -555,9 +558,6 @@ module RRC_LoggedHOFailure t_T304Max.timeout; - //Reset SRBs and DRBs of source cell (cell 1) - f_EUTRA_SS_SRBs_DRBs_Reset_StopULGrant_noPUCCHSync (eutra_Cell1, 100); //@sic R5s140743 sic@ - //@siclog "Step 7" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 1. SRB.receive (car_SRB0_RrcPdu_IND (eutra_Cell1, @@ -592,7 +592,7 @@ module RRC_LoggedHOFailure //The SS transmits a UEInformationRequest message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 13" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1? @@ -622,10 +622,10 @@ module RRC_LoggedHOFailure /* * @desc REFERENCE TS 36.523-1 clause 8.6.6.5 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_6_5_EUTRA() runs on EUTRA_PTC - {//Handover Failure logging / Logging and reporting / Reporting at RRC connection establishment / PLMN list + { //Handover Failure logging / Logging and reporting / Reporting at RRC connection establishment / PLMN list var EUTRA_CellInfo_Type v_CellInfo_Cell1; var EUTRA_CellInfo_Type v_CellInfo_Cell2; var EUTRA_CellInfo_Type v_CellInfo_Cell12; @@ -636,13 +636,15 @@ module RRC_LoggedHOFailure var template (value) CellPowerList_Type v_CellPowerList_AtT0; var template (value) CellPowerList_Type v_CellPowerList_AtT1; var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var template (value) CellPowerList_Type v_CellPowerList_AtT3; //@sic R5-145679 sic@ var NAS_KsiValue v_KsiValue; var B3_Type v_EpsUpdate_TypeValue; var template AdditionalUpdateType v_AdditionalUpdateType_Expected; var NAS_MSG_Indication_Type v_NasInd ; var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus; var Frequency_IE_Type v_Frequency_IE_f1; - var PhysCellId v_PhysCellId_Cell1,v_PhysCellId_Cell2; + var PhysCellId v_PhysCellId_Cell1; + var PhysCellId v_PhysCellId_Cell2; var float v_T304; var ShortMAC_I v_ShortMAC_I; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell2; @@ -651,7 +653,7 @@ module RRC_LoggedHOFailure var C_RNTI v_C_RNTI; var EUTRA_SecurityParams_Type v_Auth_Params; timer t_T304Max; - + v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE) }; @@ -660,21 +662,23 @@ module RRC_LoggedHOFailure cs_CellPower(eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) }; v_CellPowerList_AtT2 := { - cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), + cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE) + }; //@sic R5-145679 sic@ + v_CellPowerList_AtT3 := { cs_CellPower(eutra_Cell2, tsc_ServingCellRS_EPRE), cs_CellPower(eutra_Cell12, -73) - }; - + }; //@sic R5-145679 sic@ + // Init variables f_EUTRA_Init(c3); - + f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell2, n50); v_T304 := f_EUTRA_SetTimerToleranceMax(eutra_Cell2, rrcTimer, 1.0); v_C_RNTI := f_EUTRA_CellInfo_GetC_RNTI(eutra_Cell1); - + v_EpsUpdate_TypeValue := f_GetEPSTAUType(NORMAL); v_AdditionalUpdateType_Expected := f_GetAdditionalUpdateType(); - + v_CellInfo_Cell2 := f_EUTRA_CellInfo_Get(eutra_Cell2); v_CellInfo_Cell12 := f_EUTRA_CellInfo_Get(eutra_Cell12); v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); @@ -686,16 +690,16 @@ module RRC_LoggedHOFailure v_PLMN_Identity_Cell2 := v_CellInfo_Cell2.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_CellIdentity_Cell2 := v_CellInfo_Cell2.CellIds.CellIdentity; - + //Set EPRE for RF Initial f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, -79); f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell12, -73); - + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell2); f_EUTRA_CellConfig_Def(eutra_Cell12); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //The UE is registered on PLMN1 (Cell 1) using the procedure described in TS 36.508[18] //clause 4.5.2.3 except that the ATTACH ACCEPT message indicates PLMN2 in @@ -703,9 +707,9 @@ module RRC_LoggedHOFailure f_EUTRA_SwitchOnUEandStartIP(eutra_Cell1); //Bring UE to inital state with Equivalent PLMN2 - f_EUTRA_IdleUpdated_WithEplmn (eutra_Cell1, - PREAMBLE, - cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); + f_EUTRA_IdleUpdated_WithEplmn(eutra_Cell1, + PREAMBLE, + cs_PLMN_List_1PLMN(f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); f_EUTRA_RbEst_Def(eutra_Cell1); f_EUTRA_TestBody_Set (true); @@ -717,22 +721,22 @@ module RRC_LoggedHOFailure cs_RRCConnectionReconfiguration_1Entry_IntraLTE(v_RRC_TI, v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell2.AllowedMeasBandwidth)); - - + + //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 2 parameters according to the row "T1" in Table 8.6.6.5.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 4" siclog@ //The UE transmits a MeasurementReport message on Cell 1. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell2))); - + //Configure Cell2 to not send response on RACH preamble reception on Cell 2 f_EUTRA_SS_ConfigRachProcedure(eutra_Cell2, omit, cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell2))); - + //@siclog "Step 5" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform intra frequency handover to Cell 2. v_MobilityControlInfo := f_Generate_cs_MobilityControlInfo_HO(eutra_Cell2, @@ -743,7 +747,7 @@ module RRC_LoggedHOFailure -, -, cs_RACH_ConfigDedicated(63)); - + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_Common(v_RRC_TI, @@ -751,27 +755,32 @@ module RRC_LoggedHOFailure v_MobilityControlInfo, f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell2, n4), cs_508SecurityConfigHO_IntraLTE))); - + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - + //EXCEPTION: In parallel to the events described in step 6 the steps specified in Table 8.6.6.5.3.2-3 should take place. //EXCEPTION: The steps 1 and 2 below are repeated for the duration of T304. //1. The UE attempts to perform the intra-frequency handover using MAC Random Access Preamble on Cell 2. //2. The SS does not respond. + //@siclog "Step 5A" siclog@ + //The SS changes Cell 1 parameters according to the row "T2" in Table 8.6.6.5.3.2-1. + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); //@sic R5-145679 sic@ + t_T304Max.start(v_T304); - + //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 6 - v_ShortMAC_I := f_Calculate_ShortMAC ( eutra_Cell1, eutra_Cell2 ); - + v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell2); + + t_T304Max.timeout; //@sic R5s141193 sic@ + //Configure Cell1 to normal PRACH operation mode - f_EUTRA_SS_ConfigRachProcedure( eutra_Cell2, - tsc_C_RNTI_Def, - cs_RachProcedureConfig_Def(omit, - f_EUTRA_CellInfo_GetRAR_TA( eutra_Cell2 ), - f_EUTRA_CellInfo_GetDL_ChBandwidth ( eutra_Cell2))); - - t_T304Max.timeout; + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell2, + tsc_C_RNTI_Def, + cs_RachProcedureConfig_Def(omit, + f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell2), + f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell2))); + //@siclog "Step 6" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 2. SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell2, @@ -779,20 +788,20 @@ module RRC_LoggedHOFailure v_PhysCellId_Cell1, cr_ReestablishmentCause_HandoverFailure, v_ShortMAC_I))); - - v_Auth_Params := f_EUTRA_Security_Get ( ); - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest ( eutra_Cell2, v_Auth_Params, 0); - f_EUTRA_Security_Set ( v_Auth_Params ); - + + v_Auth_Params := f_EUTRA_Security_Get(); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell2, v_Auth_Params, 0); + f_EUTRA_Security_Set(v_Auth_Params); + //@siclog "Step 7" siclog@ //The SS transmits an RRCConnectionReestablishment message on Cell 2. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell2); - + //@siclog "Step 8" siclog@ //The UE transmits an RRCConnectionReestablishmentComplete message with rlf-InfoAvailable on Cell 2. - SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell2, - cr_RRCConnectionReestablishmentComplete_r10(tsc_RRC_TI_Def, -, true_))); - + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, + cr_RRCConnectionReestablishmentComplete_RLF_r9(tsc_RRC_TI_Def, true_))); //@sic R5s141193 sic@ + //@siclog "Step 9" siclog@ //The SS transmits an RRCConnectionReconfiguration message to resume existing radio bearer on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, @@ -802,23 +811,23 @@ module RRC_LoggedHOFailure omit, f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell2, n4), omit))); - + //@siclog "Step 10" siclog@ //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 2. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); - + //@siclog "Step 11" siclog@ //The SS transmits an RRCConnectionRelease message on Cell 2. f_EUTRA_RRC_ConnectionRelease(eutra_Cell2); - + //@siclog "Step 12" siclog@ //Wait for 5 s for the UE to enter E-UTRA RRC_IDLE state. f_Delay(5.0); - + //@siclog "Step 13" siclog@ - //The SS changes Cell 1, Cell 2 and Cell 12 parameters according to the row "T2" in Table 8.6.6.5.3.2-1. - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + //The SS changes Cell 2 and Cell 12 parameters according to the row "T3" in Table 8.6.6.5.3.2-1. + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); //@sic R5-145679 sic@ + //@siclog "Step 14 - 15" siclog@ //Steps 1 to 2 of the generic test procedure in TS 36.508 [18] subclause 6.4.2.7 are performed on Cell 12. //The UE transmits an RRCConnectionRequest message on the cell specified in the test case. @@ -828,7 +837,7 @@ module RRC_LoggedHOFailure //send RRC Connection Setup on SRB0 (CCCH) and switch on UL grant assignments: f_EUTRA_RRC_ConnectionSetup_Def (eutra_Cell12); - + //@siclog "Step 16" siclog@ //Check: Does the UE transmit an RRCConnectionSetupComplete message with rlf-InfoAvailable on Cell 12? //This message includes a TRACKING AREA UPDATE REQUEST message. @@ -841,57 +850,59 @@ module RRC_LoggedHOFailure cr_DRXparameter_Any ('5C'O) ifpresent, v_AdditionalUpdateType_Expected))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.6.5 Step 16"); - + //@siclog "Step 17 - 19" siclog@ //Steps 4 to 6 of the generic test procedure in TS 36.508 [18] subclause 6.4.2.7 are performed on Cell 12. //Note: The UE performs a TAU procedure and the RRC connection is released. v_EPS_ContextStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; f_EUTRA_TrackingAreaUpdate_Accept_Complete(eutra_Cell12, v_CellInfo_Cell12.NAS_Parameters.Guti_Parameters, v_EpsUpdate_TypeValue, v_EPS_ContextStatus, v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, NORMAL); f_EUTRA_RRC_ConnectionRelease(eutra_Cell12); - + //@siclog "Step 20 - 27" siclog@ //Steps 2 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 12. f_EUTRA_RbEst_Def(eutra_Cell12); - + //@siclog "Step 28" siclog@ //The SS sends a UEInformationRequest message with rlf-ReportReq set to true. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 29" siclog@ //Check: Does the UE transmit a UEInformationResponse message including rlf-Report? + //@sic R5s145193 sic@ SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, - -, - cr_RLF_Report_1Entry_r11(?, *, - cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, - v_PhysCellId_Cell2, - omit), - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell2, v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2), ?, hof, - cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), - -, - cr_RLF_Report_basicFields_r11(v_C_RNTI ,?, ?),//@sic R5-134506 sic@ - omit,omit)))); - - + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, + -, + cr_RLF_Report_1Entry(?, *, + cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, + v_PhysCellId_Cell2, + omit), + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell2, v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2), ?, hof, + cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), + -, + cr_RLF_Report_basicFields_r11(v_C_RNTI, ?, ?),//@sic R5-134506 sic@ + omit, + omit)))); + + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.6.5 Step 29"); - + f_EUTRA_TestBody_Set (false); - - // Postamble + f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); - + } // end of f_TC_8_6_6_5_EUTRA /* * @desc REFERENCE TS 36.523-1 clause 8.6.6.6 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_6_6_EUTRA() runs on EUTRA_PTC - {//Handover Failure logging / Logging and reporting / Reporting at intra LTE handover / PLMN list + { // Handover Failure logging / Logging and reporting / Reporting at intra LTE handover / PLMN list var EUTRA_CellInfo_Type v_CellInfo_Cell1; var EUTRA_CellInfo_Type v_CellInfo_Cell2; var EUTRA_CellInfo_Type v_CellInfo_Cell12; @@ -905,6 +916,7 @@ module RRC_LoggedHOFailure var template (value) CellPowerList_Type v_CellPowerList_AtT0; var template (value) CellPowerList_Type v_CellPowerList_AtT1; var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var template (value) CellPowerList_Type v_CellPowerList_AtT3; //@sic R5-145553 sic@ var Frequency_IE_Type v_Frequency_IE_f1; var Frequency_IE_Type v_Frequency_IE_f2; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell2; @@ -916,45 +928,50 @@ module RRC_LoggedHOFailure var C_RNTI v_C_RNTI; var float v_T304; var ShortMAC_I v_ShortMAC_I; + var CarrierFreqEUTRA v_CarrierFreq_Cell12; //@sic R5s141301 sic@ timer t_T304Max; - + v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE) }; v_CellPowerList_AtT1 := { - cs_CellPower(eutra_Cell2, -79) + cs_CellPower(eutra_Cell2, -79), + cs_CellPower(eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) //@sic R5s150235 sic@ }; v_CellPowerList_AtT2 := { - cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), + cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE) + }; //@sic R5-145553, R5s141301 sic@ + v_CellPowerList_AtT3 := { cs_CellPower(eutra_Cell2, tsc_ServingCellRS_EPRE), cs_CellPower(eutra_Cell12, -73) - }; - + }; //@sic R5-145553 sic@ + //Init variables f_EUTRA_Init(c3); - + f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell2, n50); v_T304 := f_EUTRA_SetTimerToleranceMax(eutra_Cell2, rrcTimer, 1.0); v_C_RNTI := f_EUTRA_CellInfo_GetC_RNTI(eutra_Cell1); - + v_CellInfo_Cell2 := f_EUTRA_CellInfo_Get(eutra_Cell2); v_CellInfo_Cell12 := f_EUTRA_CellInfo_Get(eutra_Cell12); v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell2); v_Frequency_IE_f2 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell12); - + v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); v_PhysCellId_Cell2 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell2); v_PhysCellId_Cell12 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell12); - + v_ChBandDependency_Cell2 := f_EUTRA_BandDependentParam(v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth); v_ChBandDependency_Cell12 := f_EUTRA_BandDependentParam(v_Frequency_IE_f2.DL_ChBandwidth, v_Frequency_IE_f2.UL_ChBandwidth); - + v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_PLMN_Identity_Cell2 := v_CellInfo_Cell2.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_CellIdentity_Cell2 := v_CellInfo_Cell2.CellIds.CellIdentity; - + v_CarrierFreq_Cell12 := f_EUTRA_CellInfo_GetEARFCN (eutra_Cell12); //@sic R5s141301 sic@ + //Set EPRE for RF Initial f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell2, -79); f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell12, -73); @@ -963,7 +980,7 @@ module RRC_LoggedHOFailure f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell2); f_EUTRA_CellConfig_Def(eutra_Cell12); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //The UE is registered on PLMN1 (Cell 1) using the procedure described in TS 36.508[18] //clause 4.5.2.3 except that the ATTACH ACCEPT message indicates PLMN2 in @@ -977,7 +994,7 @@ module RRC_LoggedHOFailure f_EUTRA_RbEst_Def(eutra_Cell1); f_EUTRA_TestBody_Set (true); - + //@siclog "Step 1-2" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup intra and inter frequency measurement on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. @@ -987,21 +1004,18 @@ module RRC_LoggedHOFailure v_ChBandDependency_Cell2.AllowedMeasBandwidth, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell12.AllowedMeasBandwidth)); - //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 2 parameters according to the row "T1" in Table 8.6.6.6.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 4" siclog@ //The UE transmits a MeasurementReport message on Cell 1. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell2))); - //Configure Cell2 to not send response on RACH preamble reception on Cell 2 f_EUTRA_SS_ConfigRachProcedure(eutra_Cell2, omit, cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell2))); - //@siclog "Step 5" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform intra frequency handover to Cell 2. v_MobilityControlInfo := f_Generate_cs_MobilityControlInfo_HO(eutra_Cell2, @@ -1012,7 +1026,6 @@ module RRC_LoggedHOFailure -, -, cs_RACH_ConfigDedicated(63)); - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_Common(v_RRC_TI, @@ -1020,27 +1033,30 @@ module RRC_LoggedHOFailure v_MobilityControlInfo, f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell2, n4), cs_508SecurityConfigHO_IntraLTE))); - + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - - //EXCEPTION: In parallel to the events described in step 6 the steps specified in Table 8.6.6.6.3.2-3 should take place. + //@siclog "Step 5A" siclog@ + //The SS changes Cell 1 parameters according to the row "T2" in Table 8.6.6.6.3.2-1. + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); //@sic R5-145553 sic@ + + //EXCEPTION: In parallel to the events described in step 6 the steps specified in Table 8.6.6.6.3.2-3 should take place. //EXCEPTION: The steps 1 and 2 below are repeated for the duration of T304. //1. The UE attempts to perform the intra-frequency handover using MAC Random Access Preamble on Cell 2. //2. The SS does not respond. t_T304Max.start(v_T304); - + //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 6 - v_ShortMAC_I := f_Calculate_ShortMAC ( eutra_Cell1, eutra_Cell2 ); + v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell2); + t_T304Max.timeout; //@sic R5s141301 sic@ //Configure Cell1 to normal PRACH operation mode - f_EUTRA_SS_ConfigRachProcedure( eutra_Cell2, - tsc_C_RNTI_Def, - cs_RachProcedureConfig_Def(omit, - f_EUTRA_CellInfo_GetRAR_TA( eutra_Cell2 ), - f_EUTRA_CellInfo_GetDL_ChBandwidth ( eutra_Cell2))); + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell2, + tsc_C_RNTI_Def, + cs_RachProcedureConfig_Def(omit, + f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell2), + f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell2))); - t_T304Max.timeout; //@siclog "Step 6" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 2. SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell2, @@ -1048,56 +1064,55 @@ module RRC_LoggedHOFailure v_PhysCellId_Cell1, cr_ReestablishmentCause_HandoverFailure, v_ShortMAC_I))); - v_Auth_Params := f_EUTRA_Security_Get ( ); - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest ( eutra_Cell2, v_Auth_Params, 0); - f_EUTRA_Security_Set ( v_Auth_Params ); - + v_Auth_Params := f_EUTRA_Security_Get(); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell2, v_Auth_Params, 0); + f_EUTRA_Security_Set(v_Auth_Params); + //@siclog "Step 7" siclog@ //The SS transmits an RRCConnectionReestablishment message on Cell 2. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell2); - + //@siclog "Step 8" siclog@ //The UE transmits an RRCConnectionReestablishmentComplete message with rlf-InfoAvailable on Cell 2. - SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell2, - cr_RRCConnectionReestablishmentComplete_r10(tsc_RRC_TI_Def, -, true_))); - + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, + cr_RRCConnectionReestablishmentComplete_RLF_r9(tsc_RRC_TI_Def, true_))); //@sic R5s141301 sic@ + //@siclog "Step 9" siclog@ //The SS transmits an RRCConnectionReconfiguration message to resume existing radio bearer on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_Common(v_RRC_TI, - omit, + cs_MeasConfig(omit,omit,omit,omit,omit,omit,-,cs_508_MeasGapConfig_GP1), //@sic R5s141301 sic@ omit, f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell2, n4), omit))); - //@siclog "Step 10" siclog@ //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 2. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); - + //@siclog "Step 11" siclog@ - //The SS changes Cell 1, Cell 2 and Cell 12 parameters according to the row "T2" in Table 8.6.6.6.3.2-1. - f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + //The SS changes Cell 2 and Cell 12 parameters according to the row "T3" in Table 8.6.6.6.3.2-1. + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); //@sic R5-145553 sic@ + //@siclog "Step 12" siclog@ //The UE transmits a MeasurementReport message on Cell 2 to report event A3 with the measured RSRP, RSRQ value for Cell 12. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_MeasurementReport_Eutra_1Entry_both(2, v_PhysCellId_Cell12))); - + //@siclog "Step 13" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 2 to order the UE to perform inter frequency handover to Cell 12. //Get security parameters - v_Auth_Params := f_EUTRA_Security_Get (); + v_Auth_Params := f_EUTRA_Security_Get(); //Inform the SS about the HO and about the source cell id f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell12, cas_PdcpHandoverInit_REQ(eutra_Cell2, eutra_Cell12)); //Configure C-RNTI based contention resolution in cell 12 - f_EUTRA_SS_ConfigRachProcedure_HO (eutra_Cell12, cs_TimingInfo_Now, tsc_C_RNTI_Def2); - + f_EUTRA_SS_ConfigRachProcedure_HO(eutra_Cell12, cs_TimingInfo_Now, tsc_C_RNTI_Def2); + //Activate RRC security at SS Cell 12 (SRB 1, 2 and 1 AM DRB) - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest (eutra_Cell12, v_Auth_Params, v_NextHopChainingCount); - f_EUTRA_Security_Set (v_Auth_Params); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell12, v_Auth_Params, v_NextHopChainingCount); + f_EUTRA_Security_Set(v_Auth_Params); //Stop periodic sending of TA command on source cell f_EUTRA_SS_CommonCellConfig(eutra_Cell2, cas_PUCCH_Synch_Config_REQ(eutra_Cell2, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); @@ -1105,12 +1120,11 @@ module RRC_LoggedHOFailure //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 12) f_EUTRA_SS_CommonCellConfig(eutra_Cell12, cas_ULGrantAllocation_Def_REQ(eutra_Cell12, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility (eutra_Cell1, - eutra_Cell12, - f_Generate_cs_MobilityControlInfo_HO_RACH (eutra_Cell12, - omit, - cs_RACH_ConfigDedicated)); - + f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility(eutra_Cell2, //@sic R5s141301 sic@ + eutra_Cell12, + f_Generate_cs_MobilityControlInfo_HO_RACH(eutra_Cell12, + cs_CarrierFreqEUTRA (v_CarrierFreq_Cell12.dl_CarrierFreq, omit), //@sic R5s141301 sic@ + cs_RACH_ConfigDedicated)); //@siclog "Step 14" siclog@ SRB.receive (car_SRB1_RrcPdu_IND (eutra_Cell12, cr_RRCConnectionReconfigurationComplete_r10 (tsc_RRC_TI_Def,true_))); f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Test Case 8.6.6.6 Step 14"); @@ -1122,48 +1136,54 @@ module RRC_LoggedHOFailure f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell12, cas_PdcpHandoverComplete_REQ(eutra_Cell12)); //Reset SRBs and DRBs of source cell (cell 2) - f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell2); - + f_EUTRA_SS_SRBs_DRBs_Reset(eutra_Cell2); //@sic R5s150402 sic@ + + //@siclog "Step 14A - 14C" siclog@ + //14A The UE transmits a TRACKING AREA UPDATE REQUEST message on Cell 12. + //14B SS responds with a TRACKING AREA UPDATE ACCEPT message. + //14C The UE transmits a TRACKING AREA UPDATE COMPLETE message. + f_EUTRA_ConnectedMode_TAU(eutra_Cell12); //@sic R5-145553 sic@ + //@siclog "Step 15" siclog@ //The SS sends a UEInformationRequest message with rlf-ReportReq set to true. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 16" siclog@ //Check: Does the UE transmit a UEInformationResponse message including rlf-Report? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, - -, - cr_RLF_Report_1Entry_r11(?, - *, - cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, - v_PhysCellId_Cell2, - omit), - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell2, v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2), ?, hof, - cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), - -, - cr_RLF_Report_basicFields_r11(v_C_RNTI ,?, ?),//@sic R5-134506 sic@ - omit,omit)))); - - + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, + -, + cr_RLF_Report_1Entry(?, + *, + cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq, + v_PhysCellId_Cell2, + omit), + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell2, v_Frequency_IE_f1.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell2, v_CellIdentity_Cell2), ?, hof, + cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), + -, + cr_RLF_Report_basicFields_r11(v_C_RNTI, ?, ?),//@sic R5-134506 sic@ + omit, + omit)))); //@sic R5s141301 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.6.6 Step 16"); - + f_EUTRA_TestBody_Set (false); - + // Postamble f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); - + } // end of f_TC_8_6_6_6_EUTRA /* * @desc REFERENCE TS 36.523-1 clause 8.6.6.7 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_6_7_EUTRA() runs on EUTRA_PTC - {//Handover Failure logging / Logging and reporting / Reporting at RRC connection re-establishment / PLMN list + { //Handover Failure logging / Logging and reporting / Reporting at RRC connection re-establishment / PLMN list var EUTRA_CellInfo_Type v_CellInfo_Cell1; var EUTRA_CellInfo_Type v_CellInfo_Cell12; var PLMN_Identity v_PLMN_Identity_Cell1; @@ -1176,6 +1196,7 @@ module RRC_LoggedHOFailure var PhysCellId v_PhysCellId_Cell12; var template (value) CellPowerList_Type v_CellPowerList_AtT0; var template (value) CellPowerList_Type v_CellPowerList_AtT1; + var template (value) CellPowerList_Type v_CellPowerList_AtT2; //@sic R5-145680 sic@ var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell12; var float v_T304; @@ -1184,46 +1205,52 @@ module RRC_LoggedHOFailure var template (omit) MobilityControlInfo v_MobilityControlInfo; var C_RNTI v_C_RNTI; var EUTRA_SecurityParams_Type v_Auth_Params; + var CarrierFreqEUTRA v_CarrierFreq_Cell12; //@sic R5s141189 sic@ timer t_T304Max; - + v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE) }; v_CellPowerList_AtT1 := { cs_CellPower(eutra_Cell12, -79) }; - + v_CellPowerList_AtT2 := { + cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE) + }; //@sic R5-145680 sic@ + //Init variables f_EUTRA_Init(c3); - + f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell12, n50); v_T304 := f_EUTRA_SetTimerToleranceMax(eutra_Cell12, rrcTimer, 1.0); v_C_RNTI := f_EUTRA_CellInfo_GetC_RNTI(eutra_Cell1); - + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_CellInfo_Cell12 := f_EUTRA_CellInfo_Get(eutra_Cell12); - + v_Frequency_IE_f1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); v_Frequency_IE_f2 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell12); - + v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); v_PhysCellId_Cell12 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell12); - + v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_f1.DL_ChBandwidth, v_Frequency_IE_f1.UL_ChBandwidth); v_ChBandDependency_Cell12 := f_EUTRA_BandDependentParam(v_Frequency_IE_f2.DL_ChBandwidth, v_Frequency_IE_f2.UL_ChBandwidth); - + v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell12 := v_CellInfo_Cell12.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_CellIdentity_Cell12 := v_CellInfo_Cell12.CellIds.CellIdentity; + v_CarrierFreq_Cell12 := f_EUTRA_CellInfo_GetEARFCN (eutra_Cell12); //@sic R5s141189 sic@ + //Set EPRE for RF Initial f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell12, -79); - + // Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell12); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //The UE is registered on PLMN1 (Cell 1) using the procedure described in TS 36.508[18] //clause 4.5.2.3 except that the ATTACH ACCEPT message indicates PLMN2 in @@ -1231,13 +1258,13 @@ module RRC_LoggedHOFailure f_EUTRA_SwitchOnUEandStartIP(eutra_Cell1); //Bring UE to inital state with Equivalent PLMN2 - f_EUTRA_IdleUpdated_WithEplmn (eutra_Cell1, - PREAMBLE, - cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); + f_EUTRA_IdleUpdated_WithEplmn(eutra_Cell1, + PREAMBLE, + cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); f_EUTRA_RbEst_Def(eutra_Cell1); - f_EUTRA_TestBody_Set (true); - + f_EUTRA_TestBody_Set(true); + //@siclog "Step 1-2" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup inter-frequency measurement on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. @@ -1247,60 +1274,65 @@ module RRC_LoggedHOFailure v_ChBandDependency_Cell1.AllowedMeasBandwidth, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell12.AllowedMeasBandwidth)); - + //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 12 parameters according to the row "T1" in Table 8.6.6.7.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 4" siclog@ //The UE transmits a MeasurementReport message on Cell 1. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell12))); - + //Configure Cell2 to not send response on RACH preamble reception on Cell 12 f_EUTRA_SS_ConfigRachProcedure(eutra_Cell12, omit, cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell12))); - + //@siclog "Step 5" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform inter frequency handover to Cell 12. v_MobilityControlInfo := f_Generate_cs_MobilityControlInfo_HO(eutra_Cell12, - -, + cs_CarrierFreqEUTRA (v_CarrierFreq_Cell12.dl_CarrierFreq, omit), //@sic R5s141189 sic@ -, -, -, -, -, cs_RACH_ConfigDedicated(63)); - + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_Common(v_RRC_TI, omit, v_MobilityControlInfo, - f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell12, n4), + f_Generate_cs_508_RadioResourceConfigDedicated_HO(eutra_Cell12, n4), cs_508SecurityConfigHO_IntraLTE))); - + f_EUTRA_SS_CommonCellConfig(eutra_Cell1, cas_PUCCH_Synch_Config_REQ(eutra_Cell1, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - + //EXCEPTION: In parallel to the events described in step 6 the steps specified in Table 8.6.6.7.3.2-3 should take place. //EXCEPTION: The steps 1 and 2 below are repeated for the duration of T304. //1. The UE attempts to perform the inter-frequency handover using MAC Random Access Preamble on Cell 12. //2. The SS does not respond. + //@siclog "Step 5A" siclog@ + //The SS changes Cell 1 parameters according to the row "T2" in Table 8.6.6.7.3.2-1. + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); //@sic R5-145680 sic@ + t_T304Max.start(v_T304); - + //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 6 - v_ShortMAC_I := f_Calculate_ShortMAC ( eutra_Cell1, eutra_Cell12 ); - + v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell12); + + t_T304Max.timeout; //@sic R5s141189 sic@ + //Configure Cell1 to normal PRACH operation mode - f_EUTRA_SS_ConfigRachProcedure( eutra_Cell12, - tsc_C_RNTI_Def, - cs_RachProcedureConfig_Def(omit, - f_EUTRA_CellInfo_GetRAR_TA( eutra_Cell12 ), - f_EUTRA_CellInfo_GetDL_ChBandwidth ( eutra_Cell12))); + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell12, + tsc_C_RNTI_Def, + cs_RachProcedureConfig_Def(omit, + f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell12), + f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell12))); - t_T304Max.timeout; //@siclog "Step 6" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 12. SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell12, @@ -1308,20 +1340,20 @@ module RRC_LoggedHOFailure v_PhysCellId_Cell1, cr_ReestablishmentCause_HandoverFailure, v_ShortMAC_I))); - v_Auth_Params := f_EUTRA_Security_Get ( ); - v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest ( eutra_Cell12, v_Auth_Params, 0); - f_EUTRA_Security_Set ( v_Auth_Params ); - + v_Auth_Params := f_EUTRA_Security_Get(); + v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell12, v_Auth_Params, 0); + f_EUTRA_Security_Set(v_Auth_Params); + //@siclog "Step 7" siclog@ //The SS transmits an RRCConnectionReestablishment message on Cell 12. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell12); - + //@siclog "Step 8" siclog@ //Check: Does the UE transmit an RRCConnectionReestablishmentComplete message with rlf-InfoAvailable on Cell 12? - SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell12, - cr_RRCConnectionReestablishmentComplete_r10(v_RRC_TI, -, true_))); + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, + cr_RRCConnectionReestablishmentComplete_RLF_r9(v_RRC_TI, true_))); //@sic R5s141189 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.6.7 Step 8"); - + //@siclog "Step 9" siclog@ //The SS transmits an RRCConnectionReconfiguration message to resume existing radio bearer on Cell 12. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, @@ -1331,45 +1363,52 @@ module RRC_LoggedHOFailure omit, f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell12, n4), omit))); - + //@siclog "Step 10" siclog@ //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 12. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); - + + //@siclog "Step 10A - 10C" siclog@ + //10A The UE transmits a TRACKING AREA UPDATE REQUEST message on Cell 12. + //10B SS responds with a TRACKING AREA UPDATE ACCEPT message. + //10C The UE transmits a TRACKING AREA UPDATE COMPLETE message. + f_EUTRA_ConnectedMode_TAU(eutra_Cell12, -, -, tsc_EpsUpdate_Combined_TaLaUpdate); //@sic R5-145680, R5s141189 sic@ + //@siclog "Step 11" siclog@ //The SS sends a UEInformationRequest message with rlf-ReportReq set to true. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(v_RRC_TI, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 12" siclog@ //Check: Does the UE transmit a UEInformationResponse message including rlf-Report? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(v_RRC_TI, - -, - cr_RLF_Report_1Entry_r11(?, - *, - cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, - v_PhysCellId_Cell12, - omit), - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell12, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12), ?, hof, - cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), - -, - cr_RLF_Report_basicFields_r11(v_C_RNTI ,?, ?),//@sic R5-134506 sic@ - omit,omit)))); - - + cr_UEInformationResponse_Common(v_RRC_TI, + -, + cr_RLF_Report_1Entry(?, + *, + cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, + v_PhysCellId_Cell12, + omit), + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell12, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12), ?, hof, + cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), + -, + cr_RLF_Report_basicFields_r11(v_C_RNTI, ?, ?),//@sic R5-134506 sic@ + omit, + omit)))); //@sic R5s141189 sic@ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.6.7 Step 12"); - + f_EUTRA_TestBody_Set (false); - + // Postamble f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); - + } // end of f_TC_8_6_6_7_EUTRA - + /* * @desc REFERENCE TS 36.523-1 clause 8.6.7.1 * @status APPROVED (LTE_A) @@ -1505,8 +1544,8 @@ module RRC_LoggedHOFailure SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, v_MeasRpt)); //@siclog "Step 5" siclog@ - //The SS changes Cell 2 and Cell 5 parameters according to the row "T2" in Table 8.6.7.1.3.2-1. - f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + //The SS changes Cell 1 and Cell 2 parameters according to the row "T2" in Table 8.6.7.1.3.2-1. + //@sic R5-153691 sic@ f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); //@siclog "Step 6" siclog@ @@ -1538,7 +1577,9 @@ module RRC_LoggedHOFailure v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell2); //@siclog "Step 8" siclog@ - //The SS changes Cell 1 parameter according to the row "T3" in Table 8.6.7.1.3.2-1. + //The SS changes Cell 1 and Cell5 parameter according to the row "T3" in Table 8.6.7.1.3.2-1. + //@sic R5-153691 sic@ + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); t_T304Max.timeout; @@ -1582,16 +1623,18 @@ module RRC_LoggedHOFailure //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 15" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 2? if (v_UTRAN_FDD_TDD == UTRAN_FDD) { v_MeasResultUTRA_PhysCellId := cr_MeasResultUTRA_PhysCellId_FDD(v_UTRAN_PhysChId_Cell5); + v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, *); //@sic R5-153730, R5s140619 sic@ } else { v_MeasResultUTRA_PhysCellId := cr_MeasResultUTRA_PhysCellId_TDD(v_UTRAN_PhysChId_Cell5); + v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, omit); //@sic R5-153730, R5s140619 sic@ } - v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, omit); //@sic R5s140619 sic@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, cr_UEInformationResponse_Common(tsc_RRC_TI_Def, //@sic R5s140150 sic@ -, @@ -1829,7 +1872,7 @@ module RRC_LoggedHOFailure //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 15" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1 with the GERAN neighbour Cell 24 measurement information (measResultListGERAN) included in rlf-Report? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell2, @@ -1878,7 +1921,10 @@ module RRC_LoggedHOFailure var Frequency_IE_Type v_Frequency_IE_f2; var PhysCellId v_PhysCellId_Cell1; var PhysCellId v_PhysCellId_Cell12; - var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1, v_CellPowerList_AtT2, v_CellPowerList_AtT3; + var template (value) CellPowerList_Type v_CellPowerList_AtT0; + var template (value) CellPowerList_Type v_CellPowerList_AtT1; + var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var template (value) CellPowerList_Type v_CellPowerList_AtT3; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell12; var float v_T304; @@ -2120,20 +2166,10 @@ module RRC_LoggedHOFailure f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell12) )); //Save new C-RNTI in cell configuration for p_TargetCellId - f_EUTRA_CellInfo_SetC_RNTI ( eutra_Cell12, tsc_C_RNTI_Def2 ); + f_EUTRA_CellInfo_SetC_RNTI(eutra_Cell12, tsc_C_RNTI_Def2); // activate RRC security at SS target cell for SRB 1, 2 and 1 AM DRB - v_Auth_Params := f_EUTRA_Security_Get(); - v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams); - v_Auth_Params.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetForHO (eutra_Cell12, tsc_DrbList_Def); - f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); - f_EUTRA_SS_NAS_CountSet ('00000000'O, omit); - f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL (eutra_Cell12, - v_Auth_Params.AS_Integrity, - v_Auth_Params.AS_Ciphering, - cs_TimingInfo_Now); - - f_EUTRA_Security_Set(v_Auth_Params); + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(eutra_Cell12); // @sic R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 12) f_EUTRA_SS_CommonCellConfig(eutra_Cell12, cas_ULGrantAllocation_Def_REQ(eutra_Cell12, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); @@ -2159,25 +2195,27 @@ module RRC_LoggedHOFailure //The SS transmits a UEInformationRequest message on Cell 12.. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 28" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 12? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, cr_508_UEInformationResponse(v_RRC_TI, -, - cr_RLF_Report_1Entry_r11(?, - *, - cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, - v_PhysCellId_Cell12, - omit), - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell12, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12), ?, hof, - cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), - -, - cr_RLF_Report_basicFields_r11(v_C_RNTI ,randomAccessProblem, ?), - omit,omit)))); + cr_RLF_Report_1Entry(?, + *, + cr_MeasResultNeighCells_r9_EUTRA_1Entry(v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq, + v_PhysCellId_Cell12, + omit), + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell12, v_Frequency_IE_f2.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12), ?, hof, + cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), + -, + cr_RLF_Report_basicFields_r11(v_C_RNTI, randomAccessProblem, ?), + omit, + omit)))); //@siclog "Step 29" siclog@ //Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.3 indicate that the UE is in E-UTRA RRC_CONNECTED state on Cell 12? diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn similarity index 94% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn index 6b8db8f..73979d0 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure_GERAN.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // $Date: 2014-06-05 14:08:57 +0200 (Thu, 05 Jun 2014) $ // $Rev: 11564 $ /******************************************************************************/ diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn index 26e32b6..edadf91 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedHOFailure_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 12:41:48 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14486 $ /******************************************************************************/ module RRC_LoggedHOFailure_UTRAN @@ -27,10 +27,11 @@ module RRC_LoggedHOFailure_UTRAN import from UTRAN_ASN1_ASP_RAB_Templates all; import from UTRAN_ASN1_ASP_Templates all; import from UTRAN_RRC_Templates_r9 all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_Parameters all; import from UTRAN_RAB_Functions all; import from UTRAN_MDT_Templates all; + import from UTRAN_RRC_Handover_Templates all; //================================================================ /* @@ -67,8 +68,9 @@ module RRC_LoggedHOFailure_UTRAN f_UTRAN_SetCellPower(utran_Cell5, v_T1_PCCPCH_CPICH_Cell5, v_T1_PCCPCH_CPICH_Cell5); f_IRAT_WaitForCoOrd_Trigger(EUTRA); - //@siclog "Step 5" siclog@ - //The SS changes Cell 2 and Cell 5 parameters according to the row "T2" in Table 8.6.7.1.3.2-1. + //@siclog "Step 8" siclog@ + //The SS changes Cell 1 and Cell 5 parameters according to the row "T3" in Table 8.6.7.1.3.2-1. + //@sic R5-153691 sic@ f_UTRAN_SetCellPower(utran_Cell5, tsc_AttenuationCellOFF); //Wait for the end of the test case @@ -170,7 +172,7 @@ module RRC_LoggedHOFailure_UTRAN { //@siclog "Step 20a1 - 20a2" siclog@ //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common_r11(utran_Cell9, cs_TGPS_Status_r10_Deactive); + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate_r11(utran_Cell9); //Changed to use activation time test step and derive TGCFN from this test step v_CFNInfo := f_CalculateActTime ( utran_Cell9 ); diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF.ttcn similarity index 88% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF.ttcn index 5eb031c..0fc25c4 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 11:17:01 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12143 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 18:25:07 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14355 $ /******************************************************************************/ module RRC_LoggedRLF @@ -22,6 +22,7 @@ module RRC_LoggedRLF import from EUTRA_AspCommon_Templates all; import from EUTRA_CellInfo all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from EUTRA_ConfigurationSteps all; import from EPS_NAS_Templates all; import from EUTRA_MDT_Specific_Templates all; @@ -44,6 +45,7 @@ module RRC_LoggedRLF import from EUTRA_SysInfo_Templates all; import from EUTRA_ASP_NasCtrl all; import from EUTRA_IRATFunctions all; + import from EUTRA_DRB_Templates all; //@sic R5s150492 sic@ /* @@ -166,7 +168,7 @@ module RRC_LoggedRLF //The SS transmits a UEInformationRequest message on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 12" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 2? @@ -321,7 +323,7 @@ module RRC_LoggedRLF //The SS transmits a UEInformationRequest message on Cell 3. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell3, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 12" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 3? @@ -573,7 +575,7 @@ module RRC_LoggedRLF //@siclog "Step 15" siclog@ //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 6. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell6, cs_TimingInfo_Now, cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell6, cs_TimingInfo_Now, cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 16" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 6 with rlf-Report included? @@ -588,7 +590,7 @@ module RRC_LoggedRLF //@siclog "Step 17" siclog@ //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 6. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell6, cs_TimingInfo_Now, cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell6, cs_TimingInfo_Now, cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 18" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 6 without rlf-Report included? @@ -611,6 +613,7 @@ module RRC_LoggedRLF */ function f_TC_8_6_4_4_EUTRA() runs on EUTRA_PTC { // Radio Link Failure logging / Reporting at E-UTRA handover + //@sic R5-153729: Deletion of Cell3 sic@ var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var PhysCellId v_PhysCellId_Cell1; var PhysCellId v_PhysCellId_Cell4; @@ -640,60 +643,57 @@ module RRC_LoggedRLF var template (value) CellPowerList_Type v_CellPowerList_AtT4; var template (value) CellPowerList_Type v_CellPowerList_AtT5; var SR_ConfigIndex_Type v_SR_ConfigIndex_Cell1; //@sic R5s140147 sic@ - var SR_ConfigIndex_Type v_SR_ConfigIndex_Cell12; //@sic R5s140147 sic@ + var SR_ConfigIndex_Type v_SR_ConfigIndex_Cell12; //@sic R5-153729 sic@ var SR_PUCCH_ResourceIndex_Type v_SR_PUCCH_ResourceIndex_Cell1; //@sic R5s140147 sic@ - var SR_PUCCH_ResourceIndex_Type v_SR_PUCCH_ResourceIndex_Cell12; //@sic R5s140147 sic@ + var SR_PUCCH_ResourceIndex_Type v_SR_PUCCH_ResourceIndex_Cell12; //@sic R5-153729 sic@ var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo_Cell1; //@sic R5s140147 sic@ - var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo_Cell12; //@sic R5s140147 sic@ + var template (value) PhysicalConfigDedicated_AntennaInfo_Type v_AntennaInfo_Cell12; //@sic R5-153729 sic@ var template(value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo_Cell1; //@sic R5s140147 sic@ - var template(value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo_Cell12; //@sic R5s140147 sic@ + var template(value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_CellInfo_Cell12; //@sic R5-153729 sic@ var template (omit) RACH_ConfigDedicated v_RACH_ConfigDedicated; var template (omit) MobilityControlInfo v_MobilityControlInfo; var float v_T304; var ShortMAC_I v_ShortMAC_I; var EUTRA_SecurityParams_Type v_AuthParams; var template (present) UL_DCCH_Message v_RRCConnReconfigComplete; + var AccessStratumRelease v_Rel; //@sic R5-153729 sic@ timer t_T304Max; v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE), + //@sic R5-153729: Deletion of Cell3 sic@ cs_CellPower(eutra_Cell4, tsc_NonSuitableOffCellRS_EPRE), cs_CellPower(eutra_Cell12, tsc_SuitableCellRS_EPRE) //@sic R5s140147 sic@ }; v_CellPowerList_AtT1 := { - cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE), - cs_CellPower(eutra_Cell4, tsc_NonSuitableOffCellRS_EPRE), - cs_CellPower(eutra_Cell12, -73) //@sic R5s140147 sic@ + cs_CellPower(eutra_Cell12, -73) //@sic R5-152078, R5s140147 sic@ }; v_CellPowerList_AtT2 := { - cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE), - cs_CellPower(eutra_Cell4, tsc_NonSuitableOffCellRS_EPRE), - cs_CellPower(eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) //@sic R5s140147 sic@ + cs_CellPower(eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) //@sic R5-152078, R5s140147 sic@ }; v_CellPowerList_AtT3 := { - cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE), - cs_CellPower(eutra_Cell4, -79), - cs_CellPower(eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) //@sic R5s140147 sic@ + cs_CellPower(eutra_Cell4, -79) //@sic R5-152078 sic@ }; v_CellPowerList_AtT4 := { cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), + //@sic R5-153729: Deletion of Cell3 sic@ cs_CellPower(eutra_Cell4, tsc_ServingCellRS_EPRE), - cs_CellPower(eutra_Cell12, -73) //@sic R5s140147 sic@ + cs_CellPower(eutra_Cell12, -73) //@sic R5-153729 sic@ }; v_CellPowerList_AtT5 := { - cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), - cs_CellPower(eutra_Cell4, tsc_NonSuitableOffCellRS_EPRE), - cs_CellPower(eutra_Cell12, -73) //@sic R5s140147 sic@ + cs_CellPower(eutra_Cell4, tsc_NonSuitableOffCellRS_EPRE) //@sic R5-152078 sic@ }; // Init variables f_EUTRA_Init(c2); f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell1, v_PreambleTransMax); + //@sic R5-153729: Deletion of Cell3 sic@ f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell4, v_PreambleTransMax); //@sic R5s140216, R5s140230 sic@ f_EUTRA_CellInfo_SetPreambleTransMax(eutra_Cell12, v_PreambleTransMax); //@sic R5s140216, R5s140230 sic@ v_Frequency_IE_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); + //@sic R5-153729: Deletion of Cell3 sic@ v_Frequency_IE_Cell4 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell4); v_Frequency_IE_Cell12 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell12); //@sic R5s140147 sic@ @@ -705,6 +705,8 @@ module RRC_LoggedRLF v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; + + //@sic R5-153729: Deletion of Cell3 sic@ v_CellInfo_Cell4 := f_EUTRA_CellInfo_Get(eutra_Cell4); v_CellIdentity_Cell4 := v_CellInfo_Cell4.CellIds.CellIdentity; @@ -721,11 +723,12 @@ module RRC_LoggedRLF v_SR_PUCCH_ResourceIndex_Cell1 := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex (eutra_Cell1); v_SR_ConfigIndex_Cell1 := f_EUTRA_CellInfo_GetSR_ConfigIndex (eutra_Cell1); - v_EUTRA_FDD_TDD_CellInfo_Cell12 := f_EUTRA_CellInfo_GetFDD_TDD_Info(eutra_Cell12); //@sic R5s140147 sic@ - v_AntennaInfo_Cell12 := f_EUTRA_CellInfo_GetAntennaInfoDedicated (eutra_Cell12); //@sic R5s140147 sic@ - v_SR_PUCCH_ResourceIndex_Cell12 := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex (eutra_Cell12); //@sic R5s140147 sic@ - v_SR_ConfigIndex_Cell12 := f_EUTRA_CellInfo_GetSR_ConfigIndex (eutra_Cell12); //@sic R5s140147 sic@ + v_EUTRA_FDD_TDD_CellInfo_Cell12 := f_EUTRA_CellInfo_GetFDD_TDD_Info(eutra_Cell12); //@sic R5-153729 sic@ + v_AntennaInfo_Cell12 := f_EUTRA_CellInfo_GetAntennaInfoDedicated (eutra_Cell12); //@sic R5-153729 sic@ + v_SR_PUCCH_ResourceIndex_Cell12 := f_EUTRA_CellInfo_GetSR_PUCCH_ResourceIndex (eutra_Cell12); //@sic R5-153729 sic@ + v_SR_ConfigIndex_Cell12 := f_EUTRA_CellInfo_GetSR_ConfigIndex (eutra_Cell12); //@sic R5-153729 sic@ + //@sic R5-153729: Deletion of Cell3 sic@ v_Dl_CarrierFreq_Cell12 := v_Frequency_IE_Cell12.UL_DL_Earfcn.dl_CarrierFreq; //@sic R5s140147 sic@ v_RACH_ConfigDedicated := cs_RACH_ConfigDedicated(63); @@ -738,6 +741,7 @@ module RRC_LoggedRLF // Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); + //@sic R5-153729: Deletion of Cell3 sic@ f_EUTRA_CellConfig_Def(eutra_Cell4); f_EUTRA_CellConfig_Def(eutra_Cell12); //@sic R5s140147 sic@ @@ -767,11 +771,11 @@ module RRC_LoggedRLF v_Frequency_IE_Cell12.UL_DL_Earfcn.dl_CarrierFreq, //@sic R5s140147 sic@ v_ChBandDependency_Cell12.AllowedMeasBandwidth)); //@sic R5s140147 sic@ //@siclog "Step 3" siclog@ - //The SS changes Cell 28 parameter according to the row "T1" in table 8.6.4.4.3.2-1. + //The SS changes Cell 12 parameter according to the row "T1" in table 8.6.4.4.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); //@siclog "Step 4" siclog@ - //The UE transmits a MeasurementReport message on Cell 1 to report event A3 with the measured RSRP, RSRQ value for Cell 28. + //The UE transmits a MeasurementReport message on Cell 1 to report event A3 with the measured RSRP, RSRQ value for Cell 12. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport(2, ?, ?, @@ -805,11 +809,11 @@ module RRC_LoggedRLF //1. The UE attempts to perform the intra frequency handover using MAC Random Access Preamble on Cell 2. //2. The SS does not respond. t_T304Max.start(v_T304); - f_EUTRA_SS_SRBs_DRBs_Reset(eutra_Cell1, 100); //@sic R5s140216, R5s140230 sic@ + f_EUTRA_SS_SRBs_DRBs_Reset(eutra_Cell1, -, 100); //@sic R5s150402, R5s140216, R5s140230 sic@ v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell1); //@sic R5s140147 sic@ //@siclog "Step 6" siclog@ - //The SS changes Cell 1 power levels according to the row "T2" in Table 8.6.4.4.3.2-1. + //The SS changes Cell 12 power level according to the row "T2" in Table 8.6.4.4.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); t_T304Max.timeout; @@ -923,29 +927,30 @@ module RRC_LoggedRLF f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell4,cs_RRCConnectionReconfiguration_ResumeInterFreqMeas(v_RRC_TI)); //@sic R5s140492 sic@ //@siclog "Step 20" siclog@ - //The SS changes Cell 1, Cell 4 and Cell 28 parameters according to the row "T4" in table 8.6.4.4.3.2-1. + //The SS changes Cell 1, Cell 4 and Cell 12 parameters according to the row "T4" in table 8.6.4.4.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT4); //@siclog "Step 21" siclog@ - //The UE transmits a MeasurementReport message on Cell 4 to report event A3 with the measured RSRP, RSRQ value for Cell 28. + //The UE transmits a MeasurementReport message on Cell 4 to report event A3 with the measured RSRP, RSRQ value for Cell 12. SRB.receive (car_SRB1_RrcPdu_IND(eutra_Cell4, cr_MeasurementReport(2, //@sic R5s140147 sic@ ?, ?, - cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysCellId_Cell12, //@sic R5s140147 sic@ + cr_MeasResultNeighCells_measResultListEUTRA_1Entry(v_PhysCellId_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ omit, ?, ?)))); + + f_EUTRA_SS_CommonRadioBearerConfig_SingleDRB(eutra_Cell12, cs_OneDRB_ConfigAM); //@sic R5-153729, R5s152078, R5s150492 sic@ - - //Configure Cell12 to not send response on RACH preamble reception on Cell 28 - f_EUTRA_SS_ConfigRachProcedure(eutra_Cell12, //@sic R5s140147 sic@ + //Configure Cell12 to not send response on RACH preamble reception on Cell 12 + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ omit, - cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell12))); //@sic R5s140147 sic@ + cs_RachProcedureConfig_NoResponse(f_EUTRA_CellInfo_GetDL_ChBandwidth (eutra_Cell12))); //@sic R5-153729, R5-152078, R5s140147 sic@ //@siclog "Step 22" siclog@ - //The SS transmits an RRCConnectionReconfiguration message on Cell 4 to order the UE to perform inter frequency handover to Cell 28. - v_MobilityControlInfo := f_Generate_cs_MobilityControlInfo_HO(eutra_Cell12, //@sic R5s140147 sic@ - cs_CarrierFreqEUTRA(v_Dl_CarrierFreq_Cell12, omit), //@sic R5s140147 sic@ + //The SS transmits an RRCConnectionReconfiguration message on Cell 4 to order the UE to perform inter frequency handover to Cell 12. + v_MobilityControlInfo := f_Generate_cs_MobilityControlInfo_HO(eutra_Cell12, //@sic R5-153729, R5152078, R5s140147 sic@ + cs_CarrierFreqEUTRA(v_Dl_CarrierFreq_Cell12, omit), //@sic R5-153729, R5-152078, R5s140147 sic@ -, -, -, @@ -953,19 +958,19 @@ module RRC_LoggedRLF -, v_RACH_ConfigDedicated); SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell4, cs_TimingInfo_Now, cs_RRCConnectionReconfiguration_Common(v_RRC_TI, omit, v_MobilityControlInfo, - f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell12, n4), //@sic R5s140147 sic@ sic@ - cs_508SecurityConfigHO_IntraLTE))); //@sic R5s140147 sic@ sic@ + f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell12, n4), //@sic R5-153729, R5-152078, R5s140147 sic@ + cs_508SecurityConfigHO_IntraLTE))); //@sic R5s140147 sic@ //EXCEPTION: In parallel to the events described in step 21 the steps specified in Table 8.6.4.4.3.2-3 should take place. //EXCEPTION: The steps 1 and 2 below are repeated for the duration of T304. - //1. The UE attempts to perform the intra frequency handover using MAC Random Access Preamble on Cell 2. + //1. The UE attempts to perform the intra frequency handover using MAC Random Access Preamble on Cell 12. //2. The SS does not respond. t_T304Max.start(v_T304); - v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell4, eutra_Cell12); //@sic R5s140147 sic@ - f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell12); //@sic R5s140147 sic@ + v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell4, eutra_Cell12); //@sic R5-153729, R5-152078, R5s140147 sic@ + f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell12); //@sic R5-153729, R5-152078, R5s150402, R5s140147 sic@ //@siclog "Step 23" siclog@ //The SS changes Cell 4 power level according to the row "T5" in table 8.6.4.4.3.2-1. @@ -974,69 +979,75 @@ module RRC_LoggedRLF t_T304Max.timeout; //@sic R5s140147 sic@ //Configure Cell12 to normal PRACH operation mode - f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell12, tsc_C_RNTI_Def); //@sic R5s140216, R5s140230, R5s140147 sic@ + f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell12, tsc_C_RNTI_Def); //@sic R5-153729, R5-152078, R5s140216, R5s140230, R5s140147 sic@ //@siclog "Step 24" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 12 - SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell12, //@sic R5s140147 sic@ + SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def2, //@sic R5s140147 sic@ v_PhysCellId_Cell4, cr_ReestablishmentCause_HandoverFailure, v_ShortMAC_I))); //@sic R5s140147 sic@ //@siclog "Step 25" siclog@ - //The SS transmits an RRCConnectionReestablishment message to resume SRB1 operation and re-activate security on Cell 28. + //The SS transmits an RRCConnectionReestablishment message to resume SRB1 operation and re-activate security on Cell 12. v_AuthParams := f_EUTRA_Security_Get(); - v_AuthParams := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell12, v_AuthParams, 0); //@sic R5s140147 sic@ + v_AuthParams := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell12, v_AuthParams, 0); //@sic R5-153729, R5-152078, R5s140147 sic@ f_EUTRA_Security_Set(v_AuthParams); - f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell12); //@sic R5s140147 sic@ + f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell12); //@sic R5-153729, R5152078, R5s140147 sic@ //@siclog "Step 26" siclog@ //Check: Does the UE transmit an RRCConnectionReestablishmentComplete message with rlf-InfoAvailable included? - SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell12, //@sic R5s140147 sic@ + SRB.receive(car_SRB1_RrcPdu_IND (eutra_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ cr_RRCConnectionReestablishmentComplete_RLF_r9(tsc_RRC_TI_Def, true_))); //@sic R5s140147 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.4 Step 26"); //@siclog "Step 27" siclog@ //The SS transmits an RRCConnectionReconfiguration message to resume existing radio bearer on Cell 12. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, //@sic R5s140147 sic@ + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ cs_TimingInfo_Now, cs_RRCConnReconfig_Resume_SRB2_DRBs(v_RRC_TI, - v_EUTRA_FDD_TDD_CellInfo_Cell12.cqi_ReportConfig, //@sic R5s140147 sic@ - v_EUTRA_FDD_TDD_CellInfo_Cell12.soundingRS_UL_Config, //@sic R5s140147 sic@ - v_AntennaInfo_Cell12, //@sic R5s140147 sic@ - v_SR_PUCCH_ResourceIndex_Cell12, //@sic R5s140147 sic@ - v_SR_ConfigIndex_Cell12))); //@sic R5s140147 sic@ + v_EUTRA_FDD_TDD_CellInfo_Cell12.cqi_ReportConfig, //@sic R5-153729, R5-152078, R5s140147 sic@ + v_EUTRA_FDD_TDD_CellInfo_Cell12.soundingRS_UL_Config, //@sic R5-153729, R5-152078, R5s140147 sic@ + v_AntennaInfo_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ + v_SR_PUCCH_ResourceIndex_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ + v_SR_ConfigIndex_Cell12))); //@sic R5-153729, R5-152078, R5s140147 sic@ //@siclog "Step 28" siclog@ //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 12. - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); //@sic R5s140147 sic@ + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, cr_508_RRCConnectionReconfigurationComplete(v_RRC_TI))); //@sic R5-153729, R5-152078, R5s140147 sic@ //@siclog "Step 29-31" siclog@ //The UE transmits a TRACKING AREA UPDATE REQUEST message on Cell 12. //SS responds with a TRACKING AREA UPDATE ACCEPT message. //NOTE: The TAU is accepted with PLMN1 listed as an Equivalent PLMN //The UE transmits a TRACKING AREA UPDATE COMPLETE message. - f_EUTRA_ConnectedMode_TAU (eutra_Cell12, cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell1)))); //@sic R5s140147 sic@ - - //@siclog "Step 32" siclog@ - //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 12. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, //@sic R5s140147 sic@ - cs_TimingInfo_Now, - cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s140147 sic@ - - //@siclog "Step 33" siclog@ - //Check: Does the UE transmit a UEInformationResponse message on Cell 28 without rlf-Report included? - SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, //@sic R5s140147 sic@ - cr_UEInformationResponse_Common(tsc_RRC_TI_Def, -, omit))); //@sic R5s140216, R5s140230 sic@ + f_EUTRA_ConnectedMode_TAU (eutra_Cell12, cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell1)))); //@sic R5-153729, R5-152078, R5s140147 sic@ + + //check the release: rel-10 is allowed otherwise no action reqired. + v_Rel := f_EUTRA_MobileInfo_GetUECapability_AccessStratumRelease(); //@sic R5-153729 sic@ + if( v_Rel == rel10 ) + { //@sic R5-153729 sic@ + //@siclog "Step 31Aa1" siclog@ + //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 12. + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ + cs_TimingInfo_Now, + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s140147 sic@ + + //@siclog "Step 31Aa2" siclog@ + //Check: Does the UE transmit a UEInformationResponse message on Cell 12 without rlf-Report included? + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, //@sic R5-153729, R5-152078, R5s140147 sic@ + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, -, omit))); //@sic R5s140216, R5s140230 sic@ + } + //@siclog "Step 34" siclog@ //Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.3 //indicate that the UE is in E-UTRA RRC_CONNECTED state on Cell 12? - f_EUTRA_508Check_ConnectedState (eutra_Cell12); //@sic R5s140147 sic@ + f_EUTRA_508Check_ConnectedState (eutra_Cell12); //@sic R5-153729, R5-152078, R5s140147 sic@ f_EUTRA_TestBody_Set(false); // Postamble - f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); //@sic R5s140147 sic@ + f_EUTRA_Postamble(eutra_Cell3, E2_CONNECTED); //@sic R5-152078, R5s140147 sic@ } // end of f_TC_8_6_4_4_EUTRA /* @@ -1158,12 +1169,14 @@ module RRC_LoggedRLF //Calculate ShortMAC-I to be received in RRCConnectionReestablishment Request from UE in Step 10 v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell2, eutra_Cell2); //@sic R5s140067, R5s140069 sic@ - + + f_Delay(1.0); //@sic R5s140966 sic@ + + f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell2); //@sic R5s150662, R5s150402, R5s140067, R5s140069 sic@ //@siclog "Step 7" siclog@ //The SS changes Cell 1 and Cell 2 parameter according to the row "T2" in Table 8.6.4.5.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell2); //@sic R5s140067, R5s140069 sic@ //@siclog "Step 8" siclog@ //Wait for 5s to ensure that the UE detects T310 expiry. f_Delay(v_TimerValue); @@ -1202,7 +1215,7 @@ module RRC_LoggedRLF //The SS transmits a UEInformationRequest message on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 16" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 2? @@ -1361,7 +1374,7 @@ module RRC_LoggedRLF //The SS transmits a UEInformationRequest message on Cell 2. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 12" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 2? @@ -1391,10 +1404,10 @@ module RRC_LoggedRLF /* * @desc REFERENCE TS 36.523-1 clause 8.6.4.8 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_4_8_EUTRA() runs on EUTRA_PTC - {//Radio Link Failure logging / Logging and reporting / Reporting at RRC connection establishment / PLMN list + { //Radio Link Failure logging / Logging and reporting / Reporting at RRC connection establishment / PLMN list var PhysCellId v_PhysCellId_Cell1; var EUTRA_CellInfo_Type v_CellInfo_Cell1; var EUTRA_CellInfo_Type v_CellInfo_Cell12; @@ -1409,9 +1422,9 @@ module RRC_LoggedRLF var B3_Type v_EpsUpdate_TypeValue; var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus; var template AdditionalUpdateType v_AdditionalUpdateType_Expected; - var NAS_MSG_Indication_Type v_NasInd ; + var NAS_MSG_Indication_Type v_NasInd; var NAS_KsiValue v_KsiValue; - + v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE) }; @@ -1423,27 +1436,27 @@ module RRC_LoggedRLF cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), cs_CellPower(eutra_Cell12, tsc_ServingCellRS_EPRE) }; - + //Init variables f_EUTRA_Init(c3); - + v_EpsUpdate_TypeValue := f_GetEPSTAUType (NORMAL); v_AdditionalUpdateType_Expected := f_GetAdditionalUpdateType(); - + v_Frequency_IE_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); - + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_Dl_CarrierFreq_Cell1 := v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq; - + v_CellInfo_Cell12 := f_EUTRA_CellInfo_Get(eutra_Cell12); - + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell12); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //The UE is registered on PLMN1 (Cell 1) using the procedure described in TS 36.508[18] //clause 4.5.2.3 except that the ATTACH ACCEPT message indicates PLMN2 in @@ -1451,34 +1464,34 @@ module RRC_LoggedRLF f_EUTRA_SwitchOnUEandStartIP(eutra_Cell1); //Bring UE to inital state with Equivalent PLMN2 - f_EUTRA_IdleUpdated_WithEplmn (eutra_Cell1, - PREAMBLE, - cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); + f_EUTRA_IdleUpdated_WithEplmn(eutra_Cell1, + PREAMBLE, + cs_PLMN_List_1PLMN(f_Asn2Nas_PlmnId(f_EUTRA_CellInfo_GetGutiPLMN(eutra_Cell12)))); - f_EUTRA_GenericRbEst_Common(eutra_Cell1, 0, 0, -, cs_MAC_MainConfig_Explicit(cs_MAC_MainConfig_Common)); + f_EUTRA_GenericRbEst_Common(eutra_Cell1, 0, 0, -, -, cs_MAC_MainConfig_Explicit(cs_MAC_MainConfig_Common)); /* @sic R5s150338 sic@ */ + + f_EUTRA_TestBody_Set(true); - f_EUTRA_TestBody_Set (true); - //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.4.8.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 2" siclog@ //The SS waits for 12s to ensure that the UE detects T311 expiry. f_Delay(12.0); - + //@siclog "Step 3" siclog@ //The SS changes Cell 12 parameter according to the row "T2" in Table 8.6.4.8.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionRequest message on cell 12 to initiate a tracking area update procedure. f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell12); - + //@siclog "Step 5" siclog@ //SS transmit an RRCConnectionSetup message. - f_EUTRA_RRC_ConnectionSetup_Def (eutra_Cell12); - + f_EUTRA_RRC_ConnectionSetup_Def(eutra_Cell12); + //@siclog "Step 6" siclog@ //The UE transmits an RRCConnectionSetupComplete message to confirm the successful completion of the connection establishment and a TRACKING AREA UPDATE REQUEST message is sent to update the registration of the actual tracking area. //Check: Does the UE send a RRCConnectionSetupComplete message with rlf-InfoAvailable on Cell 12? @@ -1491,54 +1504,56 @@ module RRC_LoggedRLF cr_DRXparameter_Any ('5C'O) ifpresent, v_AdditionalUpdateType_Expected))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.8 Step 6"); - + //@siclog "Step 7-9" siclog@ //Steps 4 to 6 of the generic test procedure in TS 36.508 subclause 6.4.2.7 are performed on Cell 11. //NOTE: The UE performs a TAU procedure and the RRC connection is released. v_EPS_ContextStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; f_EUTRA_TrackingAreaUpdate_Accept_Complete(eutra_Cell12, v_CellInfo_Cell12.NAS_Parameters.Guti_Parameters, v_EpsUpdate_TypeValue, v_EPS_ContextStatus, v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, NORMAL); f_EUTRA_RRC_ConnectionRelease(eutra_Cell12); - + //@siclog "Step 10-18" siclog@ //Steps 1 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 12. f_EUTRA_RbEst_Def(eutra_Cell12); - + //@siclog "Step 19" siclog@ //The SS sends a UEInformationRequest message to get rlf-ReportReq on Cell 12. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 20" siclog@ //Check: Does the UE send a UEInformationResponse message with rlf-Report on Cell 12? v_FailedPCellId := cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1); SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, - -, - cr_RLF_Report_1Entry_r11(?, - *, - omit, - *, - (cr_FailedPCellId_CellGlobalId(v_FailedPCellId), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Dl_CarrierFreq_Cell1)), - cr_Cgi(v_PLMN_Identity_Cell1,v_CellIdentity_Cell1), - *, - *, - *)))); - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.8 Step 20"); + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, //@sic R5s141198 sic@ + -, + cr_RLF_Report_1Entry(?, + *, + omit, + *, + (cr_FailedPCellId_CellGlobalId(v_FailedPCellId), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Dl_CarrierFreq_Cell1)), + *, //@sic R5s141198 sic@ + *, + *, + *, + *, + cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?))))); //@sic R5s141198 sic@ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.8 Step 20"); + f_EUTRA_TestBody_Set(false); - - // Postamble + f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); } // end of f_TC_8_6_4_8_EUTRA /* * @desc REFERENCE TS 36.523-1 clause 8.6.4.9 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_4_9_EUTRA() runs on EUTRA_PTC - {//Radio Link Failure logging / Logging and reporting / Reporting at intra LTE handover / PLMN list + { // Radio Link Failure logging / Logging and reporting / Reporting at intra LTE handover / PLMN list var PhysCellId v_PhysCellId_Cell1; var PhysCellId v_PhysCellId_Cell12; var EUTRA_CellInfo_Type v_CellInfo_Cell1; @@ -1557,11 +1572,11 @@ module RRC_LoggedRLF var ARFCN_ValueEUTRA v_Dl_CarrierFreq_Cell1; var EUTRA_SecurityParams_Type v_Auth_Params; var B3_Type v_EpsUpdate_TypeValue; - var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus; +// var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus; var template AdditionalUpdateType v_AdditionalUpdateType; - var NAS_MSG_Indication_Type v_NasInd ; - var SRB_COMMON_IND v_ReceivedAsp; - +// var NAS_MSG_Indication_Type v_NasInd ; +// var SRB_COMMON_IND v_ReceivedAsp; + v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE) }; @@ -1575,34 +1590,34 @@ module RRC_LoggedRLF v_CellPowerList_AtT3 := { cs_CellPower(eutra_Cell12, -73) }; - + //Init variables f_EUTRA_Init(c3); - + v_EpsUpdate_TypeValue := f_GetEPSTAUType(NORMAL); v_AdditionalUpdateType := f_GetAdditionalUpdateType (); - + v_Frequency_IE_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_Cell1.DL_ChBandwidth, v_Frequency_IE_Cell1.UL_ChBandwidth); - + v_Frequency_IE_Cell12 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell12); v_ChBandDependency_Cell12 := f_EUTRA_BandDependentParam(v_Frequency_IE_Cell12.DL_ChBandwidth, v_Frequency_IE_Cell12.UL_ChBandwidth); - + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_Dl_CarrierFreq_Cell1 := v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq; - + v_CellInfo_Cell12 := f_EUTRA_CellInfo_Get(eutra_Cell12); v_PhysCellId_Cell12 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell12); - + f_EUTRA_CellInfo_InitMaxReferencePower (eutra_Cell12, -73); - + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell12); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //The UE is registered on PLMN1 (Cell 1) using the procedure described in TS 36.508[18] //clause 4.5.2.3 except that the ATTACH ACCEPT message indicates PLMN2 in @@ -1610,38 +1625,39 @@ module RRC_LoggedRLF f_EUTRA_SwitchOnUEandStartIP(eutra_Cell1); //Bring UE to inital state with Equivalent PLMN2 - f_EUTRA_IdleUpdated_WithEplmn (eutra_Cell1, - PREAMBLE, - cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); - + f_EUTRA_IdleUpdated_WithEplmn(eutra_Cell1, + PREAMBLE, + cs_PLMN_List_1PLMN(f_Asn2Nas_PlmnId(f_EUTRA_CellInfo_GetGutiPLMN(eutra_Cell12)))); f_EUTRA_RbEst_Def(eutra_Cell1); - f_EUTRA_TestBody_Set (true); + f_EUTRA_TestBody_Set(true); + + f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell1); //@sic R5s150662, R5s150402, R5s141297 sic@ //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.4.9.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 2" siclog@ //The SS waits for 3s to ensure that the UE detects T310 expiry. f_Delay(3.0); - + //@siclog "Step 3" siclog@ //The SS changes Cell 1 parameter according to the row "T2" in Table 8.6.4.9.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 1. v_ShortMAC_I := f_Calculate_ShortMAC (eutra_Cell1, eutra_Cell1); SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell1, - cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, - v_PhysCellId_Cell1, - cr_ReestablishmentCause_OtherFailure, - v_ShortMAC_I))); + cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, + v_PhysCellId_Cell1, + cr_ReestablishmentCause_OtherFailure, + v_ShortMAC_I))); v_Auth_Params := f_EUTRA_Security_Get(); v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell1, v_Auth_Params, 0); f_EUTRA_Security_Set(v_Auth_Params); - + //@siclog "Step 5" siclog@ //The SS transmit an RRCConnectionReestablishment message. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell1); @@ -1649,8 +1665,8 @@ module RRC_LoggedRLF //@siclog "Step 6" siclog@ //The UE transmits RRCConnectionReestablishmentComplete message. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, - cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def))); - + cr_508_RRCConnectionReestablishmentComplete(tsc_RRC_TI_Def))); + //@siclog "Step 7 - 8" siclog@ //The SS transmits an RRCConnectionReconfiguration message to resume existing radio bearer on Cell 1(Measconfig). //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. @@ -1661,25 +1677,25 @@ module RRC_LoggedRLF v_Frequency_IE_Cell12.UL_DL_Earfcn.dl_CarrierFreq, v_ChBandDependency_Cell12.AllowedMeasBandwidth, f_Generate_cs_508_RadioResourceConfigDedicated_HO (eutra_Cell1))); - + //@siclog "Step 9" siclog@ //The SS changes Cell 1 and Cell 12 parameter according to the row "T3" in Table 8.6.4.9.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); - + //@siclog "Step 10" siclog@ //The UE transmits a MeasurementReport message on Cell 1 to report event A3 with the measured RSRP, RSRQ value for Cell 12. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_MeasurementReport_Eutra_1Entry_both(1, v_PhysCellId_Cell12))); - + //Get security parameters v_Auth_Params := f_EUTRA_Security_Get (); //Inform the SS about the HO and about the source cell id - f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell1, cas_PdcpHandoverInit_REQ(eutra_Cell1, eutra_Cell12)); + f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell12, cas_PdcpHandoverInit_REQ(eutra_Cell1, eutra_Cell12)); //@sic R5s141297 sic@ //Configure C-RNTI based contention resolution in cell 12 f_EUTRA_SS_ConfigRachProcedure_HO (eutra_Cell12, cs_TimingInfo_Now, tsc_C_RNTI_Def2); - + //Activate RRC security at SS Cell 12 (SRB 1, 2 and 1 AM DRB) v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest (eutra_Cell12, v_Auth_Params, 0); f_EUTRA_Security_Set (v_Auth_Params); @@ -1689,63 +1705,63 @@ module RRC_LoggedRLF //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 12) f_EUTRA_SS_CommonCellConfig(eutra_Cell12, cas_ULGrantAllocation_Def_REQ(eutra_Cell12, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); - + //@siclog "Step 11" siclog@ //The SS transmits an RRCConnectionReconfiguration message on Cell 1 to order the UE to perform inter frequency handover to Cell 12. - f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility (eutra_Cell1, - eutra_Cell12, - f_Generate_cs_508_MobilityControlInfo_HO(eutra_Cell12)); - + f_EUTRA_RRC_ConnReconfigHO_IntraLTE_Mobility(eutra_Cell1, + eutra_Cell12, + f_Generate_cs_508_MobilityControlInfo_HO(eutra_Cell12)); //@siclog "Step 12" siclog@ //Check: Does the UE send a RRCConnectionSetupComplete message with rlf-InfoAvailable on Cell 12? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, cr_RRCConnectionReconfigurationComplete_r10(tsc_RRC_TI_Def,true_))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.9 Step 12"); - + //Start periodic sending of TA command in target cell f_EUTRA_SS_CommonCellConfig(eutra_Cell12, cas_PUCCH_Synch_Config_REQ(eutra_Cell12, cs_TimingInfo_Now, cs_PUCCH_Synch_Auto_Def)); //Inform the SS about completion of the HO (e.g. to trigger PDCP STATUS PDU) f_EUTRA_SS_PdcpHandoverCtrl(eutra_Cell12, cas_PdcpHandoverComplete_REQ(eutra_Cell12)); - //Reset SRBs and DRBs of source cell (cell 1) - f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell1); + //configure RACH procedure for target cell back to default + f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell12, -, -, -, -, -, false); //@sic R5s141297 sic@ + //Reset SRBs and DRBs of source cell (cell 1) + f_EUTRA_SS_SRBs_DRBs_Reset (eutra_Cell1); //@sic R5s150402 sic@ + //@siclog "Step 13 - 14" siclog@ //Steps 4 to 5 of the generic test procedure in TS 36.508 subclause 6.4.2.7 are performed on Cell 12. //NOTE: The UE performs a TAU procedure. - SRB.receive(car_SRB2_NasPdu_IND(eutra_Cell12, - cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_508_TAU_Request(v_EpsUpdate_TypeValue, - f_EUTRA_SecurityKSIasme_Get(), - cr_DRXparameter_Any ('5C'O) ifpresent, - v_AdditionalUpdateType)))) -> value v_ReceivedAsp; - v_NasInd := v_ReceivedAsp.Signalling.Nas[0] ; - v_EPS_ContextStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; - f_EUTRA_TrackingAreaUpdate_Accept_Complete(eutra_Cell12, v_CellInfo_Cell12.NAS_Parameters.Guti_Parameters, v_EpsUpdate_TypeValue, v_EPS_ContextStatus, v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, NORMAL); + + f_EUTRA_ConnectedMode_TAU(eutra_Cell12); //@sic R5s141297 sic@ //@siclog "Step 15" siclog@ //The SS sends a UEInformationRequest message to get rlf-ReportReq on Cell 12. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 16" siclog@ //Check: Does the UE send a UEInformationResponse message with rlf-Report on Cell 12? + //@sic R5-145552 sic@ SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, - -, - cr_RLF_Report_1Entry_r11(?, + cr_UEInformationResponse_Common (tsc_RRC_TI_Def, + -, + cr_RLF_Report_1Entry(?, *, omit, *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), ?, rlf, - omit, - -, - cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?), - omit,omit)))); + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1), + omit, + rlf, + omit, + -, + cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?), + omit, + omit)))); //@sic R5s141297 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.9 Step 16"); - + f_EUTRA_TestBody_Set(false); // Postamble @@ -1755,7 +1771,7 @@ module RRC_LoggedRLF /* * @desc REFERENCE TS 36.523-1 clause 8.6.4.10 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_4_10_EUTRA() runs on EUTRA_PTC {//Radio Link Failure logging / Logging and reporting / Reporting at RRC connection re-establishment / PLMN list @@ -1777,42 +1793,42 @@ module RRC_LoggedRLF var ShortMAC_I v_ShortMAC_I; var ARFCN_ValueEUTRA v_Dl_CarrierFreq_Cell1; var EUTRA_SecurityParams_Type v_Auth_Params; - + v_CellPowerList_AtT0 := { cs_CellPower(eutra_Cell1, tsc_ServingCellRS_EPRE) }; v_CellPowerList_AtT1 := { - cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), - cs_CellPower(eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) - }; + cs_CellPower(eutra_Cell12, tsc_Suitable_NeighbourIntraFreq_CellRS_EPRE) + }; //@sic R5s150076 sic@ v_CellPowerList_AtT2 := { + cs_CellPower(eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE), //@sic R5s150076 sic@ cs_CellPower(eutra_Cell12, tsc_ServingCellRS_EPRE) }; // Init variables f_EUTRA_Init(c3); - + v_Frequency_IE_Cell1 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell1); v_ChBandDependency_Cell1 := f_EUTRA_BandDependentParam(v_Frequency_IE_Cell1.DL_ChBandwidth, v_Frequency_IE_Cell1.UL_ChBandwidth); - + v_Frequency_IE_Cell12 := f_EUTRA_CellInfo_GetFrequencyIEs(eutra_Cell12); v_ChBandDependency_Cell12 := f_EUTRA_BandDependentParam(v_Frequency_IE_Cell12.DL_ChBandwidth, v_Frequency_IE_Cell12.UL_ChBandwidth); - + v_CellInfo_Cell1 := f_EUTRA_CellInfo_Get(eutra_Cell1); v_PhysCellId_Cell1 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1); v_CellIdentity_Cell1 := v_CellInfo_Cell1.CellIds.CellIdentity; v_PLMN_Identity_Cell1 := v_CellInfo_Cell1.NAS_Parameters.Guti_Parameters.PLMN_Identity; v_Dl_CarrierFreq_Cell1 := v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq; - + v_CellInfo_Cell12 := f_EUTRA_CellInfo_Get(eutra_Cell12); v_PhysCellId_Cell12 := f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell12); v_CellIdentity_Cell12 := v_CellInfo_Cell12.CellIds.CellIdentity; v_PLMN_Identity_Cell12 := v_CellInfo_Cell12.NAS_Parameters.Guti_Parameters.PLMN_Identity; - + //Create and configure Cells f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell12); - + f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); //The UE is registered on PLMN1 (Cell 1) using the procedure described in TS 36.508[18] //clause 4.5.2.3 except that the ATTACH ACCEPT message indicates PLMN2 in @@ -1820,79 +1836,89 @@ module RRC_LoggedRLF f_EUTRA_SwitchOnUEandStartIP(eutra_Cell1); //Bring UE to inital state with Equivalent PLMN2 - f_EUTRA_IdleUpdated_WithEplmn (eutra_Cell1, - PREAMBLE, - cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); + f_EUTRA_IdleUpdated_WithEplmn(eutra_Cell1, + PREAMBLE, + cs_PLMN_List_1PLMN(f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); f_EUTRA_RbEst_Def(eutra_Cell1); - f_EUTRA_TestBody_Set (true); - + f_EUTRA_TestBody_Set(true); + //@siclog "Step 1" siclog@ //The SS changes Cell 1 parameter according to the row "T1" in Table 8.6.4.10.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 2" siclog@ - //The SS waits for 3s to ensure that the UE detects T310 expiry. - f_Delay(3.0); - + //The SS waits for 60s to ensure that the UE detects T310 expiry. + f_Delay(60.0); //@sic R5-145678 sic@ + //@siclog "Step 3" siclog@ //The SS changes Cell 1 parameter according to the row "T2" in Table 8.6.4.10.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + //@siclog "Step 4" siclog@ //The UE transmits an RRCConnectionReestablishmentRequest message on Cell 1. - v_ShortMAC_I := f_Calculate_ShortMAC (eutra_Cell1, eutra_Cell12); + v_ShortMAC_I := f_Calculate_ShortMAC(eutra_Cell1, eutra_Cell12); SRB.receive(car_SRB0_RrcPdu_IND(eutra_Cell12, - cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, - v_PhysCellId_Cell1, - cr_ReestablishmentCause_OtherFailure, - v_ShortMAC_I))); - + cr_508_RRCConnectionReestablishmentRequest(tsc_C_RNTI_Def, + v_PhysCellId_Cell1, + cr_ReestablishmentCause_OtherFailure, + v_ShortMAC_I))); v_Auth_Params := f_EUTRA_Security_Get(); v_Auth_Params := f_EUTRA_SS_AS_ActivateSecurity_HO_Reest(eutra_Cell12, v_Auth_Params, 0); f_EUTRA_Security_Set(v_Auth_Params); - + //@siclog "Step 5" siclog@ //The SS transmit an RRCConnectionReestablishment message. f_EUTRA_RRC_RRCConnectionReestablishment_Def(eutra_Cell12); - + //@siclog "Step 6" siclog@ //The UE transmits RRCConnectionReestablishmentComplete message. SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_RRCConnectionReestablishmentComplete_r10(tsc_RRC_TI_Def, -, true_))); + cr_RRCConnectionReestablishmentComplete_RLF_r9(tsc_RRC_TI_Def, true_))); //@sic R5s150076 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.10 Step 6"); - + //@siclog "Step 7 - 8" siclog@ //The SS transmits an RRCConnectionReconfiguration message to resume existing radio bearer on Cell 12 //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 12. f_EUTRA_RRC_RRCConnectionReconfiguration_Resume_SRB2_DRBs(eutra_Cell12, tsc_RRC_TI_Def); - + + //@siclog "Step 8A - 8C" siclog@ + //8A The UE transmits a TRACKING AREA UPDATE REQUEST message on Cell 12. + //8B SS responds with a TRACKING AREA UPDATE ACCEPT message. + //NOTE: The TAU is accepted with PLMN1 listed as an Equivalent PLMN + //8C The UE transmits a TRACKING AREA UPDATE COMPLETE message. + f_EUTRA_ConnectedMode_TAU(eutra_Cell12); //@sic R5-145678 sic@ + //@siclog "Step 9" siclog@ //The SS sends a UEInformationRequest message to get rlf-ReportReq on Cell 12. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 10" siclog@ //Check: Does the UE send a UEInformationResponse message with rlf-Report on Cell 12? SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, - -, - cr_RLF_Report_1Entry_r11(?, - *, - omit, - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), - cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12), ?, rlf, - *, - -, - cr_RLF_Report_basicFields_r11(? ,t310_Expiry, ?), - omit,omit)))); + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, + -, + cr_RLF_Report_1Entry(?, + *, + omit, + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), + cr_Cgi(v_PLMN_Identity_Cell12, v_CellIdentity_Cell12), + *, //@sic R5s150076 sic@ + rlf, + *, + -, + cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?), + omit, + omit)))); //@sic R5s150076 sic@ f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.4.10 Step 10"); - + f_EUTRA_TestBody_Set(false); - + // Postamble f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); @@ -1912,7 +1938,6 @@ module RRC_LoggedRLF var UTRAN_FDD_TDD_Type v_UTRAN_FDD_TDD; var integer v_UTRAN_ARFCN_f8; var integer v_UTRAN_PhysChId_Cell5; - var EUTRA_SecurityParams_Type v_Auth_Params; var EUTRA_SecurityParams_Type v_Auth_Params_Native; var NasCountInfo_Type v_NasCountInfo; var template(present) UL_DCCH_Message v_MeasRpt; @@ -2007,15 +2032,15 @@ module RRC_LoggedRLF SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, v_MeasRpt)); //Backup Auth params and NAS count. - v_Auth_Params := f_EUTRA_Security_Get (); - v_Auth_Params_Native := v_Auth_Params; + v_Auth_Params_Native := f_EUTRA_Security_Get(); v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); + f_EUTRA_SS_SRBs_DRBs_Reset(eutra_Cell1); //@sic R5s150662, R5s150402, R5s140305 sic@ + //@siclog "Step 5" siclog@ //The SS changes Cell 1 parameter according to the row "T2" in Table 8.6.5.1.3.2-1. f_EUTRA_SetCellPower(eutra_Cell1, v_T2_RS_EPRE_Cell1); - f_EUTRA_SS_SRBs_DRBs_Reset(eutra_Cell1); //@sic R5s140305 sic@ f_EUTRA_InterRAT_InitialiseAuthParams (UTRAN); //@sic R5s140305 sic@ //Wait for trigger from UTRAN side at step 14 @@ -2028,18 +2053,7 @@ module RRC_LoggedRLF f_EUTRA_SS_ConfigRachProcedure(eutra_Cell1, tsc_C_RNTI_Def2, cs_RachProcedureConfig_CRNTI_Dedicated (f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell1), f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1) )); //@sic R5s140305 sic@ f_EUTRA_CellInfo_SetC_RNTI ( eutra_Cell1, tsc_C_RNTI_Def2 ); //@sic R5s140305 sic@ - - v_Auth_Params := f_EUTRA_Security_Get(); - v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams); - v_Auth_Params.AS_Ciphering.ActTimeList := f_EUTRA_RRC_CipherActTime_GetForHO (eutra_Cell1, tsc_DrbList_Def); //@sic R5s140305 sic@ - f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); //@sic R5s140305 sic@ - f_EUTRA_SS_NAS_CountSet ('00000000'O, omit); - f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL (eutra_Cell1, - v_Auth_Params.AS_Integrity, - v_Auth_Params.AS_Ciphering, - cs_TimingInfo_Now); - - f_EUTRA_Security_Set(v_Auth_Params); + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(eutra_Cell1); // @sic R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ //@siclog "Step 17" siclog@ //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message with radio link failure information on Cell 1? @@ -2050,22 +2064,23 @@ module RRC_LoggedRLF //@siclog "Step 18" siclog@ //Generic test procedure in TS 36.508 subclause 6.4.2.10 is performed on Cell 1. //NOTE: The UE performs tracking area updating procedure without ISR and security reconfiguration after successful completion of handover from UTRA. - f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell1,v_Auth_Params_Native,v_NasCountInfo); + f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell1, v_Auth_Params_Native, v_NasCountInfo); //@siclog "Step 19" siclog@ //The SS transmits a UEInformationRequest message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 20" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1? if (v_UTRAN_FDD_TDD == UTRAN_FDD) { v_MeasResultUTRA_PhysCellId := cr_MeasResultUTRA_PhysCellId_FDD(v_UTRAN_PhysChId_Cell5); + v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, *); //@sic R5-150362 sic@ } else { v_MeasResultUTRA_PhysCellId := cr_MeasResultUTRA_PhysCellId_TDD(v_UTRAN_PhysChId_Cell5); + v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, omit); //@sic R5-150362 sic@ } - v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f8, v_MeasResultUTRA_PhysCellId, omit, *, omit); SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_UEInformationResponse_Common(tsc_RRC_TI_Def, //@sic R5s140305 sic@ @@ -2092,21 +2107,24 @@ module RRC_LoggedRLF f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - }// end of f_TC_8_6_5_1_EUTRA - + } + /* * @desc REFERENCE TS 36.523-1 clause 8.6.5.1a - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_5_1a_EUTRA() runs on EUTRA_PTC { //Radio Link Failure logging / Reporting at UTRAN Inter-RAT handover / PLMN list - var template (value) CellPowerList_Type v_CellPowerList_AtT0, v_CellPowerList_AtT1, v_CellPowerList_AtT2, v_CellPowerList_AtT3; + var template (value) CellPowerList_Type v_CellPowerList_AtT0; + var template (value) CellPowerList_Type v_CellPowerList_AtT1; + var template (value) CellPowerList_Type v_CellPowerList_AtT2; + var template (value) CellPowerList_Type v_CellPowerList_AtT3; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var IRAT_CoOrd_SysInfo_Type v_UTRANSysInfo; var UTRAN_FDD_TDD_Type v_UTRAN_FDD_TDD; var integer v_UTRAN_ARFCN_f10; var integer v_UTRAN_PhysChId_Cell9; - var EUTRA_SecurityParams_Type v_Auth_Params, v_Auth_Params_Native; + var EUTRA_SecurityParams_Type v_Auth_Params_Native; var NasCountInfo_Type v_NasCountInfo; var template(present) UL_DCCH_Message v_MeasRpt; var template(present) MeasResultList2UTRA_r9 v_MeasResList2UTRA_r9; @@ -2117,24 +2135,24 @@ module RRC_LoggedRLF var PhysCellId v_PhysCellId_Cell1; var PLMN_Identity v_PLMN_Identity_Cell1; var EUTRA_CellInfo_Type v_CellInfo_Cell1; - + v_CellPowerList_AtT0 := { cs_CellPower ( eutra_Cell1, tsc_ServingCellRS_EPRE ), cs_CellPower ( eutra_Cell12, tsc_NonSuitableOffCellRS_EPRE) }; - + v_CellPowerList_AtT1 := { cs_CellPower ( eutra_Cell1, -80 ) }; - + v_CellPowerList_AtT2 := { cs_CellPower ( eutra_Cell1, tsc_NonSuitableOffCellRS_EPRE ) }; - + v_CellPowerList_AtT3 := { cs_CellPower ( eutra_Cell12, -70 ) }; - + //Initialize testcase f_EUTRA_Init(c4); @@ -2168,7 +2186,7 @@ module RRC_LoggedRLF //Create and configure Cell1 f_EUTRA_CellConfig_Def(eutra_Cell1); f_EUTRA_CellConfig_Def(eutra_Cell12); - + //Send relevant EUTRA cell12 info to UTRAN PTC f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell12), @@ -2181,45 +2199,44 @@ module RRC_LoggedRLF //except that the ATTACH ACCEPT message indicates PLMN2 in the Equivalent PLMN list as described in Table 8.6.5.1a.3.3-1. //The UE is in state Generic RB Established (state 3) on Cell 1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT0); - + f_EUTRA_SwitchOnUEandStartIP(eutra_Cell1); //Bring UE to inital state with Equivalent PLMN2 f_EUTRA_IdleUpdated_WithEplmn (eutra_Cell1, PREAMBLE, cs_PLMN_List_1PLMN (f_Asn2Nas_PlmnId (f_EUTRA_CellInfo_GetGutiPLMN (eutra_Cell12)))); - f_EUTRA_RbEst_Def(eutra_Cell1); - + f_EUTRA_SendAuthParameters(eutra_Cell1, UTRAN); f_EUTRA_TestBody_Set(true); - + //@siclog "Step 1-2" siclog@ //The SS transmits an RRCConnectionReconfiguration message to setup inter-RAT measurement on Cell 1. //The UE transmits an RRCConnectionReconfigurationComplete message on Cell 1. if (v_UTRAN_FDD_TDD == UTRAN_FDD) { f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, cs_RRCConnectionReconfiguration_8_6_5_1a_Step1_FDD(v_RRC_TI, - v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Cell1.AllowedMeasBandwidth, - v_UTRAN_ARFCN_f10, - v_UTRAN_PhysChId_Cell9)); + v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_Cell1.AllowedMeasBandwidth, + v_UTRAN_ARFCN_f10, + v_UTRAN_PhysChId_Cell9)); } else{ f_EUTRA_RRCConnectionReconfiguration_MeasConfig(eutra_Cell1, cs_RRCConnectionReconfiguration_8_6_5_1a_Step1_TDD(v_RRC_TI, - v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, - v_ChBandDependency_Cell1.AllowedMeasBandwidth, - v_UTRAN_ARFCN_f10, - v_UTRAN_PhysChId_Cell9)); + v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq, + v_ChBandDependency_Cell1.AllowedMeasBandwidth, + v_UTRAN_ARFCN_f10, + v_UTRAN_PhysChId_Cell9)); } - + //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 9 parameters according to the row "T1" in Table 8.6.5.1a.3.2-1. f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_SetCellPowerList(v_CellPowerList_AtT1); - + //@siclog "Step 4" siclog@ //The UE transmits a MeasurementReport message on Cell 1. if (v_UTRAN_FDD_TDD == UTRAN_FDD) { @@ -2229,54 +2246,61 @@ module RRC_LoggedRLF v_MeasRpt := cr_MeasurementReport_Utran_1Entry_TDD(1, v_UTRAN_PhysChId_Cell9); } SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, v_MeasRpt)); - + //Backup Auth params and NAS count. - v_Auth_Params := f_EUTRA_Security_Get (); - v_Auth_Params_Native := v_Auth_Params; + v_Auth_Params_Native := f_EUTRA_Security_Get(); v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); - + //@siclog "Step 5" siclog@ //The SS changes Cell 1 parameter according to the row "T2" in Table 8.6.5.1a.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT2); - + // Update security params when authentication done on UTRAN side f_EUTRA_InterRAT_InitialiseAuthParams (UTRAN); - + //Wait for trigger from UTRAN side at step 14 f_IRAT_WaitForCoOrd_Trigger(UTRAN); - + //@siclog "Step 14" siclog@ //The SS changes Cell 9 and Cell 12 parameters according to the row "T3" in Table 8.6.5.1a.3.2-1. f_EUTRA_SetCellPowerList(v_CellPowerList_AtT3); - v_Auth_Params := f_EUTRA_Security_Get(); - v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams); - f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); - f_EUTRA_SS_NAS_CountSet ('00000000'O, omit); - f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL (eutra_Cell12, - v_Auth_Params.AS_Integrity, - v_Auth_Params.AS_Ciphering, - cs_TimingInfo_Now); - - f_EUTRA_Security_Set(v_Auth_Params); - + //Make HO specific steps for interRAT HO + // Configure C-RNTI based contention resolution in target cell + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell12, tsc_C_RNTI_Def2, cs_RachProcedureConfig_CRNTI_Dedicated (f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell12), + f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell12) )); //@sic R5s150517 sic@ + + //Save new C-RNTI in cell configuration for p_TargetCellId + f_EUTRA_CellInfo_SetC_RNTI ( eutra_Cell12, tsc_C_RNTI_Def2 ); //@sic R5s150517 sic@ + + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(eutra_Cell12); // @sic R5s150517, R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ + + //Configure UL grant configuration ("OnSR", periodic TA is NOT started) in target cell (cell 1) + f_EUTRA_SS_CommonCellConfig(eutra_Cell12, cas_ULGrantAllocation_Def_REQ(eutra_Cell12, cs_TimingInfo_Now, cs_PUCCH_Synch_None)); //@sic R5s150517 sic@ + //@siclog "Step 17" siclog@ //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message with radio link failure information on Cell 12? SRB.receive( car_SRB1_RrcPdu_IND( eutra_Cell12, cr_RRCConnectionReconfigurationComplete_r10( v_RRC_TI, true_, omit))); - + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.5.1a Step 17"); - + + //Start periodic sending of TA command in target cell (cell 12) + f_EUTRA_SS_CommonCellConfig(eutra_Cell12, cas_PUCCH_Synch_Config_REQ(eutra_Cell12, cs_TimingInfo_Now, cs_PUCCH_Synch_Auto_Def, false)); //@sic R5s150517 sic@ + + // configure RACH procedure for target cell back to default + f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell12, -, -, -, -, -, false); //@sic R5s150517 sic@ + //@siclog "Step 18" siclog@ //Generic test procedure in TS 36.508 subclause 6.4.2.10 is performed on Cell 12. //NOTE: The UE performs tracking area updating procedure without ISR and security reconfiguration after successful completion of handover from UTRA. - f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell12,v_Auth_Params_Native,v_NasCountInfo); - + f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell12, v_Auth_Params_Native, v_NasCountInfo); + //@siclog "Step 19" siclog@ //The SS transmits a UEInformationRequest message on Cell 12. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell12, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); - + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ + //@siclog "Step 20" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 12? if (v_UTRAN_FDD_TDD == UTRAN_FDD) { @@ -2285,19 +2309,26 @@ module RRC_LoggedRLF v_MeasResultUTRA_PhysCellId := cr_MeasResultUTRA_PhysCellId_TDD(v_UTRAN_PhysChId_Cell9); } v_MeasResList2UTRA_r9 := cr_MeasResultList2UTRA_r9_1Entry(v_UTRAN_ARFCN_f10, v_MeasResultUTRA_PhysCellId, omit, *, omit); - + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell12, - cr_508_UEInformationResponse(tsc_RRC_TI_Def, -, - cr_RLF_Report_1Entry_r11(?, *, - cr_MeasResultNeighCells_r9(-, v_MeasResList2UTRA_r9), - *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), - omit, omit, rlf, omit, omit, - cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?), - omit, omit)))); - + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, -, + cr_RLF_Report_1Entry(?, + *, + cr_MeasResultNeighCells_r9(-, v_MeasResList2UTRA_r9), + *, + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), + omit, + omit, + rlf, + omit, + omit, + cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?), + omit, + omit)))); //@sic R5s150517 sic@ + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.5.1a Step 20"); - + //@siclog "Step 21" siclog@ //Check: Does the test result of generic test procedure in TS 36.508 subclause 6.4.2.3 indicate that the UE is in E-UTRA RRC_CONNECTED state on Cell 12? f_EUTRA_508Check_ConnectedState(eutra_Cell12); @@ -2308,7 +2339,7 @@ module RRC_LoggedRLF f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_Postamble(eutra_Cell12, E2_CONNECTED); - }// end of f_TC_8_6_5_1a_EUTRA + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.5.2 @@ -2420,7 +2451,7 @@ module RRC_LoggedRLF //the radio link quality of Cell 1 is degraded and Cell 24 is suitable for camping. f_EUTRA_SetCellPower (eutra_Cell1, v_T2_RS_EPRE_Cell1); - f_IRAT_SendCoOrd (GERAN, cms_IRAT_OctetData (hex2oct(tsc_EpsDefaultBearerId))); // @sic R5s130833 sic@ + f_IRAT_SendCoOrd (GERAN, cms_IRAT_OctetData (hex2oct(tsc_EpsDefaultBearerId))); // @sic R5s130883 sic@ f_IRAT_WaitForCoOrd_Trigger (GERAN); //@siclog "Step 7" siclog@ //The SS changes Cell 1 and Cell 24 parameters according to the row "T3" in table 8.6.5.2.3.2-1. @@ -2471,7 +2502,7 @@ module RRC_LoggedRLF //The SS transmits a UEInformationRequest message with rlf-ReportReq set to true on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 16" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1 with the GERAN neighbour Cell 24 measurement information (measResultListGERAN) included in rlf-Report? @@ -2514,7 +2545,7 @@ module RRC_LoggedRLF var UTRAN_FDD_TDD_Type v_UTRAN_FDD_TDD; var integer v_UTRAN_ARFCN_f8; var integer v_UTRAN_PhysChId_Cell5; - var EUTRA_SecurityParams_Type v_Auth_Params, v_Auth_Params_Native; + var EUTRA_SecurityParams_Type v_Auth_Params_Native; var NasCountInfo_Type v_NasCountInfo; var Frequency_IE_Type v_Frequency_IE_Cell1; var ChannelBandwidthDependency_Type v_ChBandDependency_Cell1; @@ -2578,8 +2609,7 @@ module RRC_LoggedRLF f_EUTRA_SetCellPower(eutra_Cell1, v_T1_RS_EPRE_Cell1); //Backup Auth params and NAS count. - v_Auth_Params := f_EUTRA_Security_Get (); - v_Auth_Params_Native := v_Auth_Params; + v_Auth_Params_Native := f_EUTRA_Security_Get(); v_NasCountInfo := f_EUTRA_SS_NAS_CountGet(); // Update security params when authentication done on UTRAN side f_EUTRA_InterRAT_InitialiseAuthParams (UTRAN); @@ -2589,16 +2619,7 @@ module RRC_LoggedRLF f_IRAT_WaitForCoOrd_Trigger(UTRAN); f_EUTRA_SetCellPower(eutra_Cell1, v_T2_RS_EPRE_Cell1); - v_Auth_Params := f_EUTRA_Security_Get(); - v_Auth_Params := f_EUTRA_MappedContext_HO_Init(v_Auth_Params, v_Auth_Params.AuthParams); - f_EUTRA_SS_NAS_ConfigureSecurity(v_Auth_Params.NAS_Integrity, v_Auth_Params.NAS_Ciphering); - f_EUTRA_SS_NAS_CountSet ('00000000'O, omit); - f_EUTRA_SS_RRC_EnableIntProt_CiphULandDL (eutra_Cell1, - v_Auth_Params.AS_Integrity, - v_Auth_Params.AS_Ciphering, - cs_TimingInfo_Now); - - f_EUTRA_Security_Set(v_Auth_Params); + f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT(eutra_Cell1); // @sic R5s150338: new function f_EUTRA_SS_AS_ActivateSecurity_HO_IRAT sic@ //@siclog "Step 13" siclog@ //Check: Does the UE transmit an RRCConnectionReconfigurationComplete message with rlf-InfoAvailable set to True on Cell 1? @@ -2609,13 +2630,13 @@ module RRC_LoggedRLF //@siclog "Step 14" siclog@ //Generic test procedure in TS 36.508 subclause 6.4.2.10 is performed on Cell 1. //NOTE: The UE performs tracking area updating procedure without ISR and security reconfiguration after successful completion of handover from UTRA. - f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell1,v_Auth_Params_Native,v_NasCountInfo); + f_EUTRA_508Check_TrackingAreaUpdating_AfterHO(eutra_Cell1, v_Auth_Params_Native, v_NasCountInfo); //@siclog "Step 15" siclog@ //The SS transmits a UEInformationRequest message on Cell 1. SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def, -, true))); + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, -, true))); //@sic R5s150664 sic@ //@siclog "Step 16" siclog@ //Check: Does the UE transmit a UEInformationResponse message on Cell 1? @@ -2628,16 +2649,20 @@ module RRC_LoggedRLF SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, cr_508_UEInformationResponse(tsc_RRC_TI_Def, -, - cr_RLF_Report_1Entry_r11(?, *, + cr_RLF_Report_1Entry(?, + *, cr_MeasResultNeighCells_r9, *, - (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), - omit, omit, rlf, omit,omit, - cr_RLF_Report_basicFields_r11(? ,t310_Expiry, ?), + (cr_FailedPCellId_CellGlobalId(cr_Cgi(v_PLMN_Identity_Cell1, v_CellIdentity_Cell1)), + cr_FailedPCellId_Pci_Arfcn(v_PhysCellId_Cell1, v_Frequency_IE_Cell1.UL_DL_Earfcn.dl_CarrierFreq)), + omit, + omit, + rlf, + omit, + omit, + cr_RLF_Report_basicFields_r11(?, t310_Expiry, ?), omit, v_SelectedUTRA_CellId_r11)))); - - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.6.5.4 Step 16"); //@siclog "Step 17" siclog@ @@ -2650,6 +2675,5 @@ module RRC_LoggedRLF f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); - }// end of f_TC_8_6_5_4_EUTRA - -} // end of Module + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn similarity index 93% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn index 7f173d7..197bbab 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF_GERAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-12-03 19:13:44 +0100 (Tue, 03 Dec 2013) $ -// $Rev: 10275 $ +// @version: IWD_15wk38 +// $Date: 2014-10-14 19:09:38 +0200 (Tue, 14 Oct 2014) $ +// $Rev: 12337 $ /******************************************************************************/ module RRC_LoggedRLF_GERAN @@ -53,10 +53,10 @@ module RRC_LoggedRLF_GERAN //@siclog "Step 5" siclog@ //Geran tx power doesn't change. - EUTRA.receive (cmr_IRAT_OctetData) -> value v_OctetData; // @sic R5s130833 sic@ + EUTRA.receive (cmr_IRAT_OctetData) -> value v_OctetData; // @sic R5s130883 sic@ //@siclog "Step 6" siclog@ //The UE executes the generic test procedure in TS 36.508 subclause 6.4.2.9 to make sure that the UE is camped on GERAN Cell 24 - f_GERAN_RAU (geran_Cell24, '0'B, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined), true, true, oct2int(v_OctetData.OctetData)); // @sic R5s130833 sic@ + f_GERAN_RAU (geran_Cell24, '0'B, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined), true, true, oct2int(v_OctetData.OctetData)); // @sic R5s130883 sic@ //@siclog "Step 7" siclog@ //The SS changes Cell 1 and Cell 24 parameters according to the row "T3" in table 8.6.5.2.3.2-1. diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn index f036c95..ff96947 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_LoggedRLF_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module RRC_LoggedRLF_UTRAN @@ -18,7 +18,7 @@ module RRC_LoggedRLF_UTRAN import from UTRAN_Parameters all; import from UTRAN_Component all; import from UTRAN_CommonFunctions all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_CellInfo all; import from UTRAN_RRC_Templates all; import from UTRAN_TTCN_ASP_Templates all; @@ -29,9 +29,7 @@ module RRC_LoggedRLF_UTRAN import from UTRAN_ASN1_ASP_Templates all; import from EUTRA_CapabilityFunctions all; import from UTRAN_RRC_Templates_r9 all; - import from UTRAN_RRC_RAB_Templates all; import from UTRAN_RRC_Handover_Templates all; - import from UTRAN_MDT_Templates all; //================================================================ /* @@ -106,7 +104,7 @@ module RRC_LoggedRLF_UTRAN if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired) { //@siclog "Step 12a1 - 12a2" siclog@ //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(utran_Cell5, cs_TGPS_Status_Deactive); + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell5); //@sic R5s150684: f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ //Changed to use activation time test step and derive TGCFN from this test step v_CFNInfo := f_CalculateActTime(utran_Cell5); @@ -155,14 +153,13 @@ module RRC_LoggedRLF_UTRAN f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell5, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); //@sic R5-134957 sic@ //@siclog "Step 13" siclog@ //ss tx a measurement control to setup inter-RAT on cell 5 - //FFS release 10 U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_TDD_r10(v_SecurityInfo.dl_IntegrityCheckInfo, + cs_MeasurementControl_InterRATMeasurement_TDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, v_RRC_TI, v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRA_MeasurementBandwidth, - cs_CellDCHMeasOccasionInfo_TDD128_r9))); + cs_CellDCHMeasOccasionInfo_TDD128_r9))); //@sic R5s150377 sic@ } // Send trigger from UTRAN side @@ -197,7 +194,7 @@ module RRC_LoggedRLF_UTRAN /* * @desc REFERENCE TS 36.523-1 clause 8.6.5.1a - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_5_1a_UTRAN() runs on UTRAN_PTC { //Radio Link Failure logging / Reporting at UTRAN Inter-RAT handover / PLMN list @@ -215,13 +212,13 @@ module RRC_LoggedRLF_UTRAN var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth; // Initialise all cells - f_UTRAN_Init ( EUTRA_UTRAN ); + f_UTRAN_Init(EUTRA_UTRAN); - v_SecurityInfo := f_UTRAN_Security_Get ( ); + v_SecurityInfo := f_UTRAN_Security_Get(); v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); - + //Send the cell info to the EUTRA component - f_UTRAN_Send_IR_SysInfoToEUTRA ( utran_Cell9 ); + f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell9); //Get Cell Parameters for EUTRA cell12 v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); @@ -260,94 +257,89 @@ module RRC_LoggedRLF_UTRAN // UE's re-done authentication in establishing the RAB so need to send the new params to EUTRA f_UTRAN_SendAuthCoOrdParameters (EUTRA, omit); - if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired ) - { + if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired) { //@siclog "Step 12a1 - 12a2" siclog@ //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common_r11(utran_Cell9, cs_TGPS_Status_r10_Deactive); - + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell9); //@sic R5s150377 sic@ @sic R5s150684: f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ + //Changed to use activation time test step and derive TGCFN from this test step v_CFNInfo := f_CalculateActTime ( utran_Cell9 ); v_TGCFN := v_CFNInfo.tGCFN; v_Tgps_Reconfiguration_CFN := v_TGCFN; - + //refresh security info v_SecurityInfo := f_UTRAN_Security_Get(); - + //@siclog "Step 13" siclog@ //The SS transmits a MEASUREMENT CONTROL message to setup inter-RAT measurement on Cell 9. U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - v_Tgps_Reconfiguration_CFN, - v_TGCFN))); - if ( pc_InterRAT_DL_CompressedModeRequired ) { - f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell9, - tsc_DL_DPCH1, - cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), - cs_ActivateCFN ( v_CFNInfo.actTime)) ); - - } - if ( pc_InterRAT_UL_CompressedModeRequired ) { - f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell9, - tsc_UL_DPCH1, - cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), - cs_ActivateCFN ( v_CFNInfo.actTime)) ); - } + cs_MeasurementControl_InterRATMeasurement(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + v_Tgps_Reconfiguration_CFN, + v_TGCFN))); //@sic R5s150377 sic@ + if ( pc_InterRAT_DL_CompressedModeRequired ) { + f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell9, + tsc_DL_DPCH1, + cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), + cs_ActivateCFN ( v_CFNInfo.actTime)) ); + + } + if ( pc_InterRAT_UL_CompressedModeRequired ) { + f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell9, + tsc_UL_DPCH1, + cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), + cs_ActivateCFN ( v_CFNInfo.actTime)) ); + } } else if (v_FDD_TDD_Mode == UTRAN_FDD and not pc_UTRA_CompressedModeRequired ) { //refresh security info v_SecurityInfo := f_UTRAN_Security_Get(); - + //@siclog "Step 13" siclog@ //The SS transmits a MEASUREMENT CONTROL message to setup inter-RAT measurement on Cell 9. U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_NoCompMode_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth))); - - - }else - { - v_SecurityInfo := f_UTRAN_Security_Get(); - f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell9, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); - //@siclog "Step 13" siclog@ - //The SS transmits a MEASUREMENT CONTROL message to setup inter-RAT measurement on Cell 9. - U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - cs_CellDCHMeasOccasionInfo_TDD128_r9))); - }; - + tsc_RB2, + cs_MeasurementControl_InterRATMeasurement_NoCompMode(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth))); //@sic R5s150377 sic@ + + + } else { + v_SecurityInfo := f_UTRAN_Security_Get(); + f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell9, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); + //@siclog "Step 13" siclog@ + //The SS transmits a MEASUREMENT CONTROL message to setup inter-RAT measurement on Cell 9. + U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_MeasurementControl_InterRATMeasurement_TDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + cs_CellDCHMeasOccasionInfo_TDD128_r9))); //@sic R5s150377 sic@ + } // Send trigger from UTRAN side f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); - + //@siclog "Step 14" siclog@ //The SS changes Cell 9 and Cell 12 parameters according to the row "T3" in Table 8.6.5.1a.3.2-1. f_UTRAN_SetCellPower(utran_Cell9, v_T3_CPICH_PCCPCH_Cell9, v_T3_CPICH_PCCPCH_Cell9); - + //@siclog "Step 15" siclog@ //The UE transmits a MEASUREMENT REPORT message on Cell 9 including the E-UTRA event results. U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, tsc_RB2, cr_MeasurementReport_EUTRACell(v_EUTRASysInfo.Eutra[0].Arfcn, v_EUTRASysInfo.Eutra[0].HO.PhysCellId,?,?))); - - v_RRCConnectionConfigurationMessage := f_Encode_RRCConnectionReconfiguration_HOToEUTRA (v_EUTRASysInfo.Eutra[0]); - + //@siclog "Step 16" siclog@ //The SS transmits a HANDOVER FROM UTRAN COMMAND message on Cell 9. U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_RRCConnectionConfigurationMessage))); + cs_HandoverFromUTRANCommand_EUTRA(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_RRCConnectionConfigurationMessage))); //@sic R5s150377 sic@ // Wait for the end of the test case f_IRAT_WaitForCoOrd_Trigger(EUTRA); @@ -356,7 +348,7 @@ module RRC_LoggedRLF_UTRAN //Release UTRAN Cell 9 f_UTRAN_ReleaseCell(utran_Cell9, f_UTRAN_CellInfo_GetConfigType(utran_Cell9)); - }//end of Test case 8.6.5.1a + } //================================================================ /* @@ -427,7 +419,7 @@ module RRC_LoggedRLF_UTRAN { //@siclog "Step 8a1 - 8a2" siclog@ //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common_r11(utran_Cell5, cs_TGPS_Status_r10_Deactive); + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell5); //@sic R5s150377 sic@ @sic R5s150684: f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ //Changed to use activation time test step and derive TGCFN from this test step v_CFNInfo := f_CalculateActTime ( utran_Cell5 ); @@ -441,12 +433,12 @@ module RRC_LoggedRLF_UTRAN //ss tx a measurement control to setup inter-RAT on cell 5 U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - v_Tgps_Reconfiguration_CFN, - v_TGCFN))); + cs_MeasurementControl_InterRATMeasurement(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + v_Tgps_Reconfiguration_CFN, + v_TGCFN))); //@sic R5s150377 sic@ if ( pc_InterRAT_DL_CompressedModeRequired ) { f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell5, tsc_DL_DPCH1, @@ -468,10 +460,10 @@ module RRC_LoggedRLF_UTRAN //ss tx a measurement control to setup inter-RAT on cell 5 U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_NoCompMode_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth))); + cs_MeasurementControl_InterRATMeasurement_NoCompMode(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth))); //@sic R5s150377 sic@ @@ -483,11 +475,11 @@ module RRC_LoggedRLF_UTRAN //ss tx a measurement control to setup inter-RAT on cell 5 U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - cs_CellDCHMeasOccasionInfo_TDD128_r9))); + cs_MeasurementControl_InterRATMeasurement_TDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + cs_CellDCHMeasOccasionInfo_TDD128_r9))); //@sic R5s150377 sic@ }; // Send trigger from UTRAN side @@ -509,9 +501,9 @@ module RRC_LoggedRLF_UTRAN //SS tx a handover from utran command on cell5 U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_RRCConnectionConfigurationMessage))); + cs_HandoverFromUTRANCommand_EUTRA(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_RRCConnectionConfigurationMessage))); //@sic R5s150377 sic@ // Wait for the end of the test case f_IRAT_WaitForCoOrd_Trigger(EUTRA); diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_MDT_Logged.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_MDT_Logged.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_MDT_Logged.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_MDT_Logged.ttcn index fae236c..291072c 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_MDT_Logged.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_MDT_Logged.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 11:16:45 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12142 $ +// @version: IWD_15wk38 +// $Date: 2015-09-14 18:36:43 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14356 $ /******************************************************************************/ module RRC_MDT_Logged @@ -22,6 +22,7 @@ module RRC_MDT_Logged import from EUTRA_AspCommon_Templates all; import from EUTRA_CellInfo all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from EUTRA_ConfigurationSteps all; import from EPS_NAS_Templates all; import from EUTRA_MDT_Specific_Templates all; @@ -58,7 +59,11 @@ module RRC_MDT_Logged carrierFreqListUTRA_TDD := p_CarrierFreqListUTRA_TDD, t_ReselectionUTRA := p_T_ReselectionUTRA, t_ReselectionUTRA_SF := omit, - lateNonCriticalExtension := omit + lateNonCriticalExtension := omit, + carrierFreqListUTRA_FDD_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + carrierFreqListUTRA_TDD_v1250 := omit, /* BASELINE MOVING 2015 sic@ */ + carrierFreqListUTRA_FDD_Ext_r12 := omit, /* BASELINE MOVING 2015 sic@ */ + carrierFreqListUTRA_TDD_Ext_r12 := omit /* BASELINE MOVING 2015 sic@ */ }; template (present) MeasResultList2GERAN_r10 cr_MeasResultList2GERAN_r10_1Entry(template CarrierFreqGERAN p_CarrierFreq, @@ -308,7 +313,7 @@ module RRC_MDT_Logged // Postamble f_EUTRA_Postamble(eutra_Cell11, E2_CONNECTED); - } // end of f_TC_8_6_2_1_EUTRA + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.2.2 @@ -437,22 +442,20 @@ module RRC_MDT_Logged for (i:=0; i value v_ReceivedAsp; //@sic R5s140533 sic@ - - v_NAS_Ind := v_ReceivedAsp.Signalling.Nas[0]; - if(ispresent (v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.rrcConnectionSetupComplete.criticalExtensions.c1.rrcConnectionSetupComplete_r8.nonCriticalExtension)) - { //@sic R5s140110, R5s140112 sic@ - v_LogMeasAvailable := v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.rrcConnectionSetupComplete.criticalExtensions.c1.rrcConnectionSetupComplete_r8.nonCriticalExtension.nonCriticalExtension.logMeasAvailable_r10; - if (isvalue(v_LogMeasAvailable)) { - //@siclog "Step 33a2 - 33a5" siclog@ - //Steps 6 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 2. - f_EUTRA_ServiceReqPostamble_508Steps6_9(eutra_Cell2, v_NAS_Ind); - - //@siclog "Step 33a6" siclog@ - //The SS send an UEInformationRequest message to get logMeasReport. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, cs_TimingInfo_Now, + if(ispresent (v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.rrcConnectionSetupComplete.criticalExtensions.c1.rrcConnectionSetupComplete_r8.nonCriticalExtension)) { //@sic R5s140110, R5s140112 sic@ + v_LogMeasAvailable := v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.rrcConnectionSetupComplete.criticalExtensions.c1.rrcConnectionSetupComplete_r8.nonCriticalExtension.nonCriticalExtension.logMeasAvailable_r10; + if (isvalue(v_LogMeasAvailable)) { + //@siclog "Step 33a2 - 33a5" siclog@ + //Steps 6 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 2. + f_EUTRA_ServiceReqPostamble_508Steps6_9(eutra_Cell2, v_NAS_Ind); + + //@siclog "Step 33a6" siclog@ + //The SS send an UEInformationRequest message to get logMeasReport. + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell2, + cs_TimingInfo_Now, cs_508_UEInformationRequest(tsc_RRC_TI_Def))); - - //@siclog "Step 33a7" siclog@ - //Check: Does the UE send an UEInformationResponse message with logged serving cell measurements of Cell 2? - v_ReceivedAsp := f_EUTRA_ReceiveUEinformation(eutra_Cell2, - v_AbsoluteTimeInfo, - v_PLMN_Identity_Cell1, - v_CellIdentity_Cell11, //@sic R5s140533 sic@ - v_Frequency_IE_f1 - ); //@sic R5s140110, R5s140112 sic@ - - v_FieldCnt := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); //@sic R5s140110, R5s140112 sic@ - - for (i:=0; i value v_ReceivedAsp; v_NAS_Ind := v_ReceivedAsp.Signalling.Nas[0]; - if(ispresent (v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.rrcConnectionSetupComplete.criticalExtensions.c1.rrcConnectionSetupComplete_r8.nonCriticalExtension)) //.nonCriticalExtension.logMeasAvailable_r10) - { //@sic R5s140110, R5s140112 sic@ - v_LogMeasAvailable := v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.rrcConnectionSetupComplete.criticalExtensions.c1.rrcConnectionSetupComplete_r8.nonCriticalExtension.nonCriticalExtension.logMeasAvailable_r10; - if (isvalue(v_LogMeasAvailable)) { - //@siclog "Step 46a2 - 46a5" siclog@ - //Steps 6 to 9 of the generic radio bearer establishment procedure in TS 36.508 subclause 4.5.3.3 are executed to successfully complete the service request procedure on Cell 2. - f_EUTRA_ServiceReqPostamble_508Steps6_9(eutra_Cell11, v_NAS_Ind); - - //@siclog "Step 46a6" siclog@ - //The SS send an UEInformationRequest message to get logMeasReport. - SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell11, - cs_TimingInfo_Now, - cs_508_UEInformationRequest(tsc_RRC_TI_Def))); - - //@siclog "Step 46a7" siclog@ - //Check: Does the UE send an UEInformationResponse message with logged serving cell measurements of Cell 11? - v_ReceivedAsp := f_EUTRA_ReceiveUEinformation(eutra_Cell11, - v_AbsoluteTimeInfo, - v_PLMN_Identity_Cell1, - v_CellIdentity_Cell2, - v_Frequency_IE_f1 - ); //@sic R5s140403, R5s140110, R5s140112 sic@ - - v_FieldCnt := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); //@sic R5s140110, R5s140112 sic@ - - for (i:=0; ivalue v_ReceivedAsp; - + cr_508_UEInformationResponse(tsc_RRC_TI_Def, omit, omit, cr_LogMeasReport_r10(v_AbsoluteTimeInfo, v_PLMN_Identity_Cell1,'0000EF'O, '001A'O, '05'O, *)))) -> value v_ReceivedAsp; + v_Len := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); for (i:=0; ivalue v_ReceivedAsp; - + cr_508_UEInformationResponse(tsc_RRC_TI_Def, omit, omit, cr_LogMeasReport_r10(v_AbsoluteTimeInfo, v_PLMN_Identity_Cell1,'0000EF'O, '001A'O, '05'O, *)))) -> value v_ReceivedAsp; + v_Len := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); for (i:=0; i value v_ReceivedAsp; //@sic R5s141311 sic@ + + v_FieldCnt := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); //@sic R5s141311 sic@ + if (v_FieldCnt < 2) {f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 20: Not enough LogMeasurementInfo entries")} //@sic R5s141311 sic@ + + for (i:=0; i value v_ReceivedAsp; //@sic R5s141292 sic@ + + v_FieldCnt := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); //@sic R5s141292 sic@ + if (v_FieldCnt < 2) {f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 20: Not enough LogMeasurementInfo entries")} //@sic R5s141292 sic@ + + for (i:=0; ivalue v_ReceivedAsp; - + v_Len := lengthof(v_ReceivedAsp.Signalling.Rrc.Dcch.message_.c1.ueInformationResponse_r9.criticalExtensions.c1.ueInformationResponse_r9.nonCriticalExtension.nonCriticalExtension.logMeasReport_r10.logMeasInfoList_r10); for (i:=0; i value v_OctetData; // @sic R5s130833 sic@ + EUTRA.receive (cmr_IRAT_OctetData) -> value v_OctetData; // @sic R5s130883 sic@ //@siclog "Step 5" siclog@ //Generic test procedure in TS 36.508 Table 6.4.2.9 is performed and the UE will camped on GERAN Cell 24. - f_GERAN_RAU (geran_Cell24, '0'B, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined), true, true, oct2int(v_OctetData.OctetData)); // @sic R5s130833 sic@ + f_GERAN_RAU (geran_Cell24, '0'B, (tsc_I_UpdateTypeRAOnly, tsc_I_UpdateTypeCombined), true, true, oct2int(v_OctetData.OctetData)); // @sic R5s130883 sic@ f_GERAN_ActivatePDPContext( geran_Cell24 ); // in case the UE sends another (?) XID once the bearer is established diff --git a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn similarity index 86% rename from LTE_A_IWD_14wk37/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn index 44ec031..d55644d 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_MDT_Logged_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-09 22:08:20 +0200 (Tue, 09 Sep 2014) $ -// $Rev: 12181 $ +// @version: IWD_15wk38 +// $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// $Rev: 14480 $ /******************************************************************************/ module RRC_MDT_Logged_UTRAN @@ -25,7 +25,7 @@ module RRC_MDT_Logged_UTRAN import from UTRAN_CellInfo all; import from UTRAN_CommonDefs all; import from UTRAN_ConfigurationSteps all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from UTRAN_Parameters all; import from UTRAN_RAB_Functions all; import from UTRAN_RRC_Templates all; @@ -35,9 +35,7 @@ module RRC_MDT_Logged_UTRAN import from UTRAN_ASN1_ASP_RAB_Templates all; import from UTRAN_ASN1_ASP_Templates all; import from UTRAN_RRC_Templates_r9 all; - import from UTRAN_RRC_RAB_Templates all; import from UTRAN_RRC_Handover_Templates all; - import from UTRAN_MDT_Templates all; //================================================================ /* @@ -121,7 +119,7 @@ module RRC_MDT_Logged_UTRAN //the "lower case letter" identifies a step sequence that takes place if a capability is supported. if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired) { //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(utran_Cell5, cs_TGPS_Status_Deactive); + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell5); // @sic R5s150684: f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ //Changed to use activation time test step and derive TGCFN from this test step v_CFNInfo := f_CalculateActTime(utran_Cell5); @@ -171,11 +169,11 @@ module RRC_MDT_Logged_UTRAN //ss tx a measurement control to setup inter-RAT on cell 5 U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_TDD_r10(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - cs_CellDCHMeasOccasionInfo_TDD128_r9))); + cs_MeasurementControl_InterRATMeasurement_TDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + cs_CellDCHMeasOccasionInfo_TDD128_r9))); //@sic R5s150513 sic@ }; @@ -208,11 +206,11 @@ module RRC_MDT_Logged_UTRAN // Release UTRAN Cell 5 f_UTRAN_ReleaseCell(utran_Cell5, f_UTRAN_CellInfo_GetConfigType(utran_Cell5)); - }//end of Test case 8.6.3.1 + } /* * @desc REFERENCE TS 36.523-1 clause 8.6.3.4 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_6_3_4_UTRAN() runs on UTRAN_PTC { //Logged MDT / Logging and reporting / Reporting at UTRAN Inter-RAT handover / PLMN list @@ -220,7 +218,7 @@ module RRC_MDT_Logged_UTRAN var integer v_T1_CPICH_Cell9 := -65; var integer v_T2_PCCPCH_CPICH_Cell9 := -100; var UTRAN_FDD_TDD_Type v_FDD_TDD_Mode; - + var UTRAN_SecurityInfo_Type v_SecurityInfo; var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI; var TGCFN v_TGCFN; @@ -231,15 +229,15 @@ module RRC_MDT_Logged_UTRAN var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); - + // Initialise all cells f_UTRAN_Init ( EUTRA_UTRAN ); v_SecurityInfo := f_UTRAN_Security_Get ( ); - + //Send the cell info to the EUTRA component f_UTRAN_Send_IR_SysInfoToEUTRA ( utran_Cell9 ); - + //Get Cell Parameters for EUTRA cell1 v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); v_EUTRA_FrequencyAndPriorityInfoList[0] := cs_EUTRA_FrequencyAndPriorityInfo(v_EUTRASysInfo.Eutra[0].Arfcn, @@ -249,30 +247,30 @@ module RRC_MDT_Logged_UTRAN v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); v_EUTRA_FrequencyAndPriorityInfoList[1] := cs_EUTRA_FrequencyAndPriorityInfo(v_EUTRASysInfo.Eutra[0].Arfcn, f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(v_EUTRASysInfo.Eutra[0].DL_Bandwidth)); - - + + f_UTRAN_SysInfo_SetSIB19 (utran_Cell9, - cs_SIB19_UtraAndOneEutraEntry(cs_Utra_PriorityInfoList_Def (5),v_EUTRA_FrequencyAndPriorityInfoList)); - + cs_SIB19_UtraAndOneEutraEntry(cs_Utra_PriorityInfoList_Def (5),v_EUTRA_FrequencyAndPriorityInfoList)); + //Create and configure Cell 9 //Cell started switched on with default power level, -60 and max attenuation f_UTRAN_SS_CreateCellDCH ( utran_Cell9 ); - + //Start sending System Information f_UTRAN_SendDefSysInfo ( utran_Cell9 ); - + //UE starts registered in EUTRA, wait its Auth Params f_UTRAN_InterRAT_InitialiseAuthParams(); - + //Get FDD or TDD mode v_FDD_TDD_Mode := f_UTRAN_CellInfo_GetFDD_TDD ( utran_Cell9 ); f_UTRAN_TestBody_Set(true); - + //@siclog "Step 4" siclog@ //The SS changes Cell 1 and Cell 9 levels according to the row "T1" in table 8.6.3.4.3.2-1. f_IRAT_WaitForCoOrd_Trigger(EUTRA); - if (v_FDD_TDD_Mode == UTRAN_FDD){ + if (v_FDD_TDD_Mode == UTRAN_FDD) { f_UTRAN_SetCellPower(utran_Cell9, v_T1_CPICH_Cell9, v_T1_CPICH_Cell9); } else{ @@ -293,20 +291,19 @@ module RRC_MDT_Logged_UTRAN //For UTRAN FDD, EXCEPTION: Steps 11a1 to 11a2 describe behaviour that depends on the UE capability; the "lower case letter" identifies a step sequence that takes place if a capability is supported. //For UTRAN TDD, goto step 12. - if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired ) - { + if (v_FDD_TDD_Mode == UTRAN_FDD and pc_UTRA_CompressedModeRequired) { //@siclog "Step 11a1 - 11a2" siclog@ //Compressed mode only applicable in FDD - f_UTRAN_PhyChReconf_InterRatCompresseModeSet_Common(utran_Cell9, cs_TGPS_Status_Deactive); - + f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate(utran_Cell9); // @sic R5s150684: f_UTRAN_PhyChReconf_InterRatCompresseModeDeactivate sic@ + //Changed to use activation time test step and derive TGCFN from this test step v_CFNInfo := f_CalculateActTime ( utran_Cell9 ); v_TGCFN := v_CFNInfo.tGCFN; v_Tgps_Reconfiguration_CFN := v_TGCFN; - + //refresh security info v_SecurityInfo := f_UTRAN_Security_Get(); - + //@siclog "Step 12" siclog@ //ss tx a measurement control to setup inter-RAT on cell 9 U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, @@ -317,52 +314,52 @@ module RRC_MDT_Logged_UTRAN v_EUTRA_MeasurementBandwidth, v_Tgps_Reconfiguration_CFN, v_TGCFN))); - if ( pc_InterRAT_DL_CompressedModeRequired ) { - f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell9, - tsc_DL_DPCH1, - cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), - cs_ActivateCFN ( v_CFNInfo.actTime)) ); + if (pc_InterRAT_DL_CompressedModeRequired) { + f_UTRAN_CPHY_RL_Modify(cas_CompressedModeStatusInfo_REQ(utran_Cell9, + tsc_DL_DPCH1, + cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), + cs_ActivateCFN(v_CFNInfo.actTime))); - } - if ( pc_InterRAT_UL_CompressedModeRequired ) { - f_UTRAN_CPHY_RL_Modify ( cas_CompressedModeStatusInfo_REQ (utran_Cell9, - tsc_UL_DPCH1, - cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), - cs_ActivateCFN ( v_CFNInfo.actTime)) ); } - } else if (v_FDD_TDD_Mode == UTRAN_FDD and not pc_UTRA_CompressedModeRequired ) { + if (pc_InterRAT_UL_CompressedModeRequired) { + f_UTRAN_CPHY_RL_Modify(cas_CompressedModeStatusInfo_REQ(utran_Cell9, + tsc_UL_DPCH1, + cs_DPCH_CompressedModeStatusInfoActive(v_Tgps_Reconfiguration_CFN, v_TGCFN), + cs_ActivateCFN(v_CFNInfo.actTime))); + } + } else if (v_FDD_TDD_Mode == UTRAN_FDD and not pc_UTRA_CompressedModeRequired) { //refresh security info v_SecurityInfo := f_UTRAN_Security_Get(); - + //@siclog "Step 12" siclog@ //ss tx a measurement control to setup inter-RAT on cell 9 - U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_NoCompMode_FDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth))); - }else{ - v_SecurityInfo := f_UTRAN_Security_Get(); - f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell9, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); - - //@siclog "Step 12" siclog@ - //ss tx a measurement control to setup inter-RAT on cell 9 - U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, - tsc_RB2, - cs_MeasurementControl_InterRATMeasurement_TDD_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - cs_CellDCHMeasOccasionInfo_TDD128_r9))); - - }; - + cs_MeasurementControl_InterRATMeasurement_NoCompMode(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth))); //@sic R5s150513 sic@ + } else { + v_SecurityInfo := f_UTRAN_Security_Get(); + f_UTRAN_CPHY_MeasurementConfig_TDD (utran_Cell9, cs_ActivateNow, cs_CellDCHMeasOccasionInfo_TDD128_r9); + + //@siclog "Step 12" siclog@ + //ss tx a measurement control to setup inter-RAT on cell 9 + U_AM.send ( cas_RLC_Data_Req_NoCnf(utran_CellDedicated, + tsc_RB2, + cs_MeasurementControl_InterRATMeasurement_TDD_r9(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + cs_CellDCHMeasOccasionInfo_TDD128_r9))); //@sic R5s150513 sic@ + + } + //@siclog "Step 13" siclog@ //The SS changes Cell 12 and Cell 9 levels according to the row "T2" in table 8.6.3.4.3.2-1. f_IRAT_SendCoOrd (EUTRA, cms_IRAT_Trigger); f_UTRAN_SetCellPower(utran_Cell9, v_T2_PCCPCH_CPICH_Cell9, v_T2_PCCPCH_CPICH_Cell9); - + //@siclog "Step 14" siclog@ //The UE transmits a MEASUREMENT REPORT message on Cell 9 including the E-UTRA event results. U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated, tsc_RB2, cr_MeasurementReport_EUTRACell(v_EUTRASysInfo.Eutra[0].Arfcn, @@ -374,10 +371,10 @@ module RRC_MDT_Logged_UTRAN //SS tx a handover from utran command on Cell 9 U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, - cs_HandoverFromUTRANCommand_EUTRA_r11(v_SecurityInfo.dl_IntegrityCheckInfo, - v_RRC_TI, - v_RRCConnectionConfigurationMessage))); - + cs_HandoverFromUTRANCommand_EUTRA(v_SecurityInfo.dl_IntegrityCheckInfo, + v_RRC_TI, + v_RRCConnectionConfigurationMessage))); //@sic R5s150513 sic@ + //Wait for the end of the test case f_IRAT_WaitForCoOrd_Trigger(EUTRA); @@ -386,6 +383,5 @@ module RRC_MDT_Logged_UTRAN // Release UTRAN Cell 9 f_UTRAN_ReleaseCell(utran_Cell9, f_UTRAN_CellInfo_GetConfigType(utran_Cell9)); - }//end of Test case 8.6.3.4 - -} // end of Module + } +} diff --git a/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_RACH_Optimisation.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_RACH_Optimisation.ttcn new file mode 100644 index 0000000..5562f84 --- /dev/null +++ b/LTE_A_IWD_15wk38/LTE_A/8_6/RRC_RACH_Optimisation.ttcn @@ -0,0 +1,142 @@ +/******************************************************************************/ +// @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 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +// All rights reserved. +// @version: IWD_15wk38 +// $Date: 2015-09-14 11:55:16 +0200 (Mon, 14 Sep 2015) $ +// $Rev: 14333 $ +/******************************************************************************/ + +module RRC_RACH_Optimisation { + import from EUTRA_RRC_ASN1_Definitions language "ASN.1:2002" all; + import from EUTRA_Component all; + import from CommonDefs all; + import from EUTRA_CommonDefs all; + import from EUTRA_SRB_Templates all; + import from EUTRA_AspCommon_Templates all; + import from EUTRA_CellInfo all; + import from EUTRA_CellCfg_Templates all; + import from EUTRA_CommonProcedures all; + import from EUTRA_ConfigurationSteps all; + import from EUTRA_MDT_Specific_Templates all; + import from EUTRA_NASSteps all; + import from EUTRA_RRC_Templates all; //@sic R5s150629, R5-151756 sic@ + import from EUTRA_RRCSteps all; //@sic R5s150629, R5-151756 sic@ + import from EUTRA_Paging all; //@sic R5s150629, R5-151756 sic@ + + //------------------------------------------------------------------------- + /* + * @desc Default behaviour to be used in TC 8.6.11.1 + * @param p_CellId + * @status APPROVED (LTE_A) + */ + altstep a_EUTRA_TC_8_6_11_1(EUTRA_CellId_Type p_CellId) runs on EUTRA_PTC + { + [] SRB.receive( car_SRB0_RrcPdu_IND( p_CellId, cr_508_RRCConnectionRequest ) ) + { + repeat; + } + }; //@sic R5s150629, R5-151756 sic@ + + /* + * @desc REFERENCE TS 36.523-1 clause 8.6.11.1 + * @status APPROVED (LTE_A) + */ + function f_TC_8_6_11_1_EUTRA() runs on EUTRA_PTC + { //RACH Optimisation + // Init variables + var EUTRA_FDD_TDD_Mode_Type v_EUTRA_FDD_TDD_Mode; //@sic R5s150529, R5-151756 sic@ + var default v_DefaultRef; //@sic R5s150629, R5-151756 sic@ + f_EUTRA_Init(c1); + + v_EUTRA_FDD_TDD_Mode := f_EUTRA_CellInfo_GetFDD_TDD(eutra_Cell1); //@sic R5s150629, R5-151756 sic@ + + if (v_EUTRA_FDD_TDD_Mode == FDD) + { + f_EUTRA_CellInfo_SetPRACH_ConfigurationIndex(eutra_Cell1, 1); + } //@sic R5s150629, R5-151756 sic@ + else if (v_EUTRA_FDD_TDD_Mode == TDD) + { + f_EUTRA_CellInfo_SetPRACH_ConfigurationIndex(eutra_Cell1, 0); + } //@sic R5s150629, R5-151756 sic@ + + // Create and configure Cells + f_EUTRA_CellConfig_Def(eutra_Cell1); + + // Preamble + f_EUTRA_Preamble(eutra_Cell1, STATE2_IDLEUPDATE); + f_EUTRA_RbEst_Def(eutra_Cell1); + + f_EUTRA_TestBody_Set(true); + + //@siclog "Step 1" siclog@ + //The SS transmits a UEInformationRequest message. + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo_Now, + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, true))); //@sic R5s140412 sic@ + //@siclog "Step 2" siclog@ + //Check: Does the UE transmit a UEInformationResponse message with rach-Report? + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, {?,false}, omit))); //@sic R5s150529, R5s140412 sic@ + + //@siclog "Step 3" siclog@ + //The SS transmits RRC_Connection_release message. + f_EUTRA_RRC_ConnectionRelease(eutra_Cell1); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 4" siclog@ + f_Delay(5.0); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 4A" siclog@ + //SS is configured not to transmit MAC control element with matched UE Contention Resolution Identity + f_EUTRA_SS_ConfigRachProcedure(eutra_Cell1, + omit, + cs_RachProcedureConfig_Response_NoContRes(f_EUTRA_CellInfo_GetRAR_TA(eutra_Cell1), f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1))); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 5" siclog@ + //SS sends a Paging message to the UE on the appropriate paging block, and including the UE identity in one entry of the IE pagingRecordLists + f_EUTRA_UE_Page_Def ( eutra_Cell1 ); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 6" siclog@ + //The UE transmits an RRCConnectionRequest message. + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1, cr_EstablishmentCause_mt_Access); //@sic R5s150529, R5-151756 sic@ + + + //SS is configured to transmit MAC control element with matched UE Contention Resolution Identity + //@sic R5-154726 sic@ + v_DefaultRef := activate(a_EUTRA_TC_8_6_11_1(eutra_Cell1)); //@sic R5s150529, R5-151756 sic@ + f_EUTRA_SS_ConfigRachProcedure_Def(eutra_Cell1); //@sic R5s150629, R5-151756 sic@ + deactivate(v_DefaultRef); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 7" siclog@ + //@sic R5-153726 sic@ + //The UE transmits an RRCConnectionRequest message. + f_EUTRA_RRC_ConnectionRequest_Def(eutra_Cell1, cr_EstablishmentCause_mt_Access); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 9-16" siclog@ + //@sic R5-153726 sic@ + //The SS transmits an RRCConnectionSetup message on Cell 1. + f_EUTRA_RRC_ConnectionSetup_Def ( eutra_Cell1 ); //@sic R5s150529, R5-151756 sic@ + + //The UE transmits an RRCConnectionSetupComplete message on Cell 1. + f_EUTRA_RRCConnectionSetupComplete_Def(eutra_Cell1, cr_508_RRCConnectionSetupComplete(tsc_RRC_TI_Def, ?), ?); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 17" siclog@ + //The SS transmits a UEInformationRequest message. + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_Cell1, + cs_TimingInfo_Now, + cs_508_UEInformationRequest_noLogMeasReport(tsc_RRC_TI_Def, true))); //@sic R5s150529, R5-151756 sic@ + + //@siclog "Step 18" siclog@ + //Check: Does the UE transmit a UEInformationResponse message with rach-Report? + SRB.receive(car_SRB1_RrcPdu_IND(eutra_Cell1, + cr_UEInformationResponse_Common(tsc_RRC_TI_Def, {?,true}, omit))); //@sic R5s150529, R5-151756 sic@ + + f_EUTRA_TestBody_Set(false); + + // Postamble + f_EUTRA_Postamble(eutra_Cell1, E2_CONNECTED); + } // end of f_TC_8_6_11_1_EUTRA + +} // end of Module diff --git a/LTE_A_IWD_14wk37/LTE_A/8_7/RRC_ANR.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_7/RRC_ANR.ttcn similarity index 58% rename from LTE_A_IWD_14wk37/LTE_A/8_7/RRC_ANR.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_7/RRC_ANR.ttcn index 0c99fbe..3683bf8 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_7/RRC_ANR.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_7/RRC_ANR.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2013-11-25 13:14:05 +0100 (Mon, 25 Nov 2013) $ -// $Rev: 10042 $ +// @version: IWD_15wk38 +// $Date: 2015-09-08 10:53:57 +0200 (Tue, 08 Sep 2015) $ +// $Rev: 14231 $ /******************************************************************************/ module RRC_ANR @@ -27,50 +27,57 @@ module RRC_ANR /* * @desc REFERENCE TS 36.523-1 clause 8.7.1 - * @status + * @status APPROVED (LTE_A) */ function f_TC_8_7_1_EUTRA() runs on EUTRA_PTC { var boolean v_CSInOtherRAT := false; var IRAT_Coordination_MSG v_IRAT_Coordination_MSG; var integer v_T1_RS_EPRE_Cell1 := -60; - var GutiParameters_Type v_GutiParams := f_EUTRA_CellInfo_GetGuti(eutra_Cell1); - var NAS_PlmnId v_PlmnId := f_Asn2Nas_PlmnId(v_GutiParams.PLMN_Identity); - var TrackingAreaCode v_TAC := f_EUTRA_CellInfo_GetTAC(eutra_Cell1); - var CellIdentity v_CellIdentity1 := f_EUTRA_CellInfo_GetCellIdentity (eutra_Cell1); - + var GutiParameters_Type v_GutiParams; /* @sic R5s150753 sic@ */ + var NAS_PlmnId v_PlmnId; /* @sic R5s150753 sic@ */ + var TrackingAreaCode v_TAC; /* @sic R5s150753 sic@ */ + var CellIdentity v_CellIdentity1; /* @sic R5s150753 sic@ */ + f_EUTRA_Init (c4); //Create and configure all cells - f_EUTRA_CellConfig_Def (eutra_Cell1); - + f_EUTRA_CellConfig_Def (eutra_Cell1); /* @sic R5s150753 sic@ */ + + f_EUTRA_CellInfo_InitMaxReferencePower(eutra_Cell1, -60); /* @sic R5s150753 sic@ */ + v_GutiParams := f_EUTRA_CellInfo_GetGuti(eutra_Cell1); /* @sic R5s150753 sic@ */ + v_PlmnId := f_Asn2Nas_PlmnId(v_GutiParams.PLMN_Identity); /* @sic R5s150753 sic@ */ + v_TAC := f_EUTRA_CellInfo_GetTAC(eutra_Cell1); /* @sic R5s150753 sic@ */ + v_CellIdentity1 := f_EUTRA_CellInfo_GetCellIdentity (eutra_Cell1); /* @sic R5s150753 sic@ */ + + //Send Cell information to UTRA PTC f_IRAT_Send_EUTRA_SysInfoToOtherPort(UTRAN, f_EUTRA_CellInfo_GetEARFCN_DL(eutra_Cell1), f_ConvertDL_BandwidthToInteger(f_EUTRA_CellInfo_GetDL_ChBandwidth(eutra_Cell1)), - cs_EUTRA_HOInfo (f_ConvertUL_BandwidthToInteger (f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), - f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), - f_EUTRA_CellInfo_GetRootSequenceIndex (eutra_Cell1)), + cs_EUTRA_HOInfo(f_ConvertUL_BandwidthToInteger(f_EUTRA_CellInfo_GetUL_ChBandwidth (eutra_Cell1)), + f_EUTRA_CellInfo_GetPhyCellId(eutra_Cell1), + f_EUTRA_CellInfo_GetRootSequenceIndex(eutra_Cell1)), omit, //p_CATested v_PlmnId, v_CellIdentity1, v_TAC); - + //Receive new authentication parameters and set initial cell power level according to T0 v_CSInOtherRAT := f_EUTRA_InterRAT_InitialiseAuthParams(UTRAN); f_EUTRA_SetCellPower (eutra_Cell1, tsc_NonSuitableCellRS_EPRE); - UTRAN.receive (cmr_IRAT_OctetData) -> value v_IRAT_Coordination_MSG; - + UTRAN.receive(cmr_IRAT_OctetData) -> value v_IRAT_Coordination_MSG; + f_EUTRA_TestBody_Set(true); - + //@siclog "Step 3" siclog@ //The SS changes Cell 1 and Cell 5 levels according to the row "T1" in table 8.7.1.3.2-1 f_IRAT_WaitForCoOrd_Trigger(UTRAN); - f_EUTRA_SetCellPower (eutra_Cell1, v_T1_RS_EPRE_Cell1); - + f_EUTRA_SetCellPower(eutra_Cell1, v_T1_RS_EPRE_Cell1); + //@siclog "Step 4" siclog@ //Generic test procedure in TS 36.508 Table 6.4.2.7A is performed on Cell 1. - f_EUTRA_508CheckCampOnNewEutraCellUponMobilityFromAnotherRAT(eutra_Cell1, v_CSInOtherRAT, false, false, v_IRAT_Coordination_MSG.OctetData, NORMAL); + f_EUTRA_508CheckCampOnNewEutraCellUponMobilityFromAnotherRAT(eutra_Cell1, v_CSInOtherRAT, true, false, v_IRAT_Coordination_MSG.OctetData, NORMAL); /* @sic R5s150753 sic@ */ //@siclog "Step 5" siclog@ //Wait for 6 s for UE to receive system information. @@ -78,15 +85,18 @@ module RRC_ANR //@siclog "Step 6" siclog@ //The SS changes Cell 1 and Cell 5 levels according to the row "T2" in table 8.7.1.3.2-1. - f_EUTRA_SetCellPower (eutra_Cell1, tsc_NonSuitableCellRS_EPRE); - f_IRAT_SendCoOrd (UTRAN, cms_IRAT_Trigger); - + f_EUTRA_SetCellPower(eutra_Cell1, tsc_NonSuitableCellRS_EPRE); + f_IRAT_SendCoOrd(UTRAN, cms_IRAT_Trigger); + + //Send Auth parameters + f_EUTRA_SendAuthParameters(eutra_Cell1, UTRAN); /* @sic R5s150753 sic@ */ + //Steps 7 to 14 done in UTRA RAT so wait for UTRAN side to finish f_IRAT_WaitForCoOrd_Trigger(UTRAN); - + f_EUTRA_TestBody_Set(false); //Remove the non-camping cell - f_EUTRA_ReleaseAllCells( ); + f_EUTRA_ReleaseAllCells(); } } diff --git a/LTE_A_IWD_14wk37/LTE_A/8_7/RRC_ANR_UTRAN.ttcn b/LTE_A_IWD_15wk38/LTE_A/8_7/RRC_ANR_UTRAN.ttcn similarity index 79% rename from LTE_A_IWD_14wk37/LTE_A/8_7/RRC_ANR_UTRAN.ttcn rename to LTE_A_IWD_15wk38/LTE_A/8_7/RRC_ANR_UTRAN.ttcn index dd7c0c4..7c27530 100644 --- a/LTE_A_IWD_14wk37/LTE_A/8_7/RRC_ANR_UTRAN.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/8_7/RRC_ANR_UTRAN.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-06-07 23:45:32 +0200 (Sat, 07 Jun 2014) $ -// $Rev: 11666 $ +// @version: IWD_15wk38 +// $Date: 2015-09-16 15:44:40 +0200 (Wed, 16 Sep 2015) $ +// $Rev: 14462 $ /******************************************************************************/ module RRC_ANR_UTRAN { @@ -22,22 +22,25 @@ module RRC_ANR_UTRAN import from UTRAN_RAB_Functions all; import from UTRAN_RRC_SysInfo_Templates all; import from Parameters all; + import from UTRAN_IRAT_CommonFunctions all; import from UTRAN_CommonFunctions all; import from CommonIratDefs all; - import from UTRAN_CommonProcedures all; + import from UTRAN_IRAT_CommonProcedures all; import from EUTRA_CapabilityFunctions all; import from UTRAN_ANR_MDT_Templates all; import from UTRAN_CommonDefs all; import from UTRAN_ANR_CommonFunctions all; + import from UTRAN_NAS_PDU_Templates all; + //========================================================================= // TEST CASES //========================================================================= /* - * @desc REFERENCE TS 36.523-1 clause 8.7.1, UTRAN side - * @status + * @desc REFERENCE TS 36.523-1 clause 8.7.1 + * @status APPROVED (LTE_A) */ - function f_TC_8_7_1_UTRAN ( ) runs on UTRAN_PTC + function f_TC_8_7_1_UTRAN() runs on UTRAN_PTC { var IRAT_CoOrd_SysInfo_Type v_EUTRASysInfo; var EUTRA_MeasurementBandwidth v_EUTRA_MeasurementBandwidth := f_UTRAN_ConvertIntegerToEUTRA_MeasurementBandwidth(f_ConvertDL_BandwidthPIXITToInteger()); @@ -52,20 +55,25 @@ module RRC_ANR_UTRAN v_EUTRASysInfo := f_IRAT_WaitForCoOrd_SysInfo (EUTRA); //Send the cell info to the EUTRA component - f_UTRAN_Send_IR_SysInfoToEUTRA ( utran_Cell5 ); + //f_UTRAN_Send_IR_SysInfoToEUTRA(utran_Cell5); @sic R5s150753 sic@ //Set sysinfo in SIB19 f_UTRAN_SysInfo_SetSIB19(utran_Cell5, - cs_SIB19_UtraAndOneEutraEntry(cs_Utra_PriorityInfoList_Def (5), - cs_Eutra_FreqAndPriList_OneEntry_Def (v_EUTRASysInfo.Eutra[0].Arfcn, - v_EUTRA_MeasurementBandwidth, - 4))); + cs_SIB19_UtraAndOneEutraEntry(cs_Utra_PriorityInfoList_Def (3), /*@sic R5s150753 sic@*/ + cs_Eutra_FreqAndPriList_OneEntry_Def(v_EUTRASysInfo.Eutra[0].Arfcn, + v_EUTRA_MeasurementBandwidth, + 4))); f_UTRAN_SendDefSysInfo(utran_Cell5); //Bring UE to initial state f_UTRAN_Preamble(utran_Cell5); //Interactive or background / UL:64 DL: 64 kbps / PS RAB + UL:3.4 DL:3.4 kbps SRBs for DCCH f_UTRAN_UE_64kPS_Rb_Est(utran_Cell5); //@sic R5-134682 sic@ + + //This needs to be sent based on the release version it has TAU will be recieved + f_IRAT_SendCoOrd(EUTRA, cms_IRAT_OctetData(f_UTRAN_MobileInfo_EUTRACapability_Get())); /* @sic R5s150753 sic@*/ + + f_UTRAN_TestBody_Set(true); @@ -78,18 +86,18 @@ module RRC_ANR_UTRAN //Release UTRAN Cells f_UTRAN_Postamble(utran_Cell5, U2_CONNECTED); - - }; + } /* - * @desc 8.7.1 - Test case body - * @status + * @desc test body of TC_8_7_1 + * @param p_EUTRASysInfo + * @status APPROVED (LTE_A) */ function fl_TC_8_7_1_Body(IRAT_CoOrd_SysInfo_Type p_EUTRASysInfo) runs on UTRAN_PTC { var B32_Type v_P_tmsi := oct2bit(px_PTMSI_Def); var B28_Type v_CellId; - var UTRAN_SecurityInfo_Type v_SecurityInfo; + var UTRAN_SecurityInfo_Type v_SecurityInfo; var UTRAN_CellInfo_Type v_CellInfo; var PLMN_Identity v_PLMN_Identity; var boolean v_ExpectedMatchFound := false; @@ -107,8 +115,7 @@ module RRC_ANR_UTRAN //@siclog "Step 1" siclog@ // Configure UE to perform inter-RAT UTRAN ANR measurements. - U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, cs_LoggingMeasurementConfiguration_ANR_InterRAT(v_SecurityInfo.dl_IntegrityCheckInfo, - tsc_RRC_TI,-,true_,-))); + U_AM.send(cas_RLC_Data_Req_NoCnf(utran_CellDedicated, tsc_RB2, cs_LoggingMeasurementConfiguration_ANR(v_SecurityInfo.dl_IntegrityCheckInfo, tsc_RRC_TI, -, -, true_, -))); //@siclog "Step 2" siclog@ //Procedure to release RRC Connection. UE moves to idle state f_UTRAN_RRC_ConnRel(utran_Cell5, cell_Dch); @@ -142,6 +149,12 @@ module RRC_ANR_UTRAN //Complete RRC Connection setup and verify if IE "ANR Logging Results Available" is presentt f_UTRAN_RRC_ConnEst(utran_Cell5, terminatingInteractiveCall, true); + //@siclog "Steps 12A - 12C" siclog@ + //The UE transmits SERVICE REQUEST message on cell 5, then security mode is activated + U_Dc.receive(car_PS_InitDirectTransfer(utran_Cell5, tsc_RB3, cr_U_ServiceRequest(?,?,?))); /* @sic R5-153731 sic@ */ + f_UTRAN_RRC_Security(utran_Cell5, true, ps_domain); /* @sic R5-153731 sic@ */ + + //@siclog "Step 13-14" siclog@ //Send UE INFORMATION REQUEST message and receive UE INFORMATION RESPONSE message, check if IEs were set properly v_PLMN_Identity :=f_UTRAN_Nas2Asn_PlmnId(p_EUTRASysInfo.Eutra[0].PLMN); @@ -158,7 +171,7 @@ module RRC_ANR_UTRAN v_ExpectedMatchFound := f_UTRAN_RetrieveANRMeasurements_InterRat(utran_Cell5, false, v_LoggedANRReportInfoList, 1); //Assign verdict accordingly - if (v_ExpectedMatchFound == true){ + if (v_ExpectedMatchFound == true) { f_UTRAN_PreliminaryPass(__FILE__, __LINE__, "Test Case 8.7.1, Step 14"); } else{ diff --git a/LTE_A_IWD_14wk37/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn b/LTE_A_IWD_15wk38/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn rename to LTE_A_IWD_15wk38/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn index 38f616d..a743d31 100644 --- a/LTE_A_IWD_14wk37/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/9_2/NAS_Attach_EOnly_A.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// * $Date: 2014-09-05 19:10:47 +0200 (Fri, 05 Sep 2014) $ -// * $Rev: 12078 $ +// @version: IWD_15wk38 +// * $Date: 2015-09-17 11:12:13 +0200 (Thu, 17 Sep 2015) $ +// * $Rev: 14480 $ // *************************************************************************** module NAS_Attach_EOnly_A { @@ -21,6 +21,7 @@ module NAS_Attach_EOnly_A { import from EUTRA_CommonDefs all; import from EUTRA_RRC_Templates all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from NAS_CommonTypeDefs all; import from EPS_NAS_Constants all; import from EUTRA_MDT_Specific_Templates all; @@ -38,16 +39,7 @@ module NAS_Attach_EOnly_A { import from EUTRA_Timing all; import from EUTRA_IdleMode all; import from IP_PTC_CtrlMsgs all; - import from IMS_PTC_CoordMsg all; - group LocalTemplates { - } // group LocalTemplates - - group LocalFunctions { - } // group LocalFunctions - - group TestcaseImplementations { - //============================================================================ /* * @desc REFERENCE TS 36.523-1 clause 9.2.1.1.2a @@ -85,7 +77,6 @@ module NAS_Attach_EOnly_A { PREAMBLE, cs_PLMN_List_2PLMNs(f_Asn2Nas_PlmnId(f_EUTRA_CellInfo_GetGutiPLMN(eutra_CellI)),f_Asn2Nas_PlmnId(f_EUTRA_CellInfo_GetGutiPLMN(eutra_CellJ))), EPS_Only); - t_GuardTimer.stop; f_EUTRA_TestBody_Set(true); @@ -94,7 +85,7 @@ module NAS_Attach_EOnly_A { // Postamble f_EUTRA_TestBody_Set(false); - f_EUTRA_Postamble(eutra_CellB, E1_IDLE); + f_EUTRA_Postamble(eutra_CellB, E1_IDLE, EPS_Only); // @sic R5s150816 sic@ } @@ -168,7 +159,7 @@ module NAS_Attach_EOnly_A { // Preamble: UE is in state Switched OFF (state 1) // ========================================================================== f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, EPS_Only); - f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE, -, EPS_Only); + f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE, EPS_Only); // now change TAC back again as Cell A is to have TAI-1 f_EUTRA_CellInfo_SetTAC(eutra_CellA, oct2bit(tsc_TAC1)); @@ -321,7 +312,7 @@ module NAS_Attach_EOnly_A { f_UT_ConfigureEPSAttach(UT); f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, EPS_Only); - f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE,-, EPS_Only); + f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE, EPS_Only); f_EUTRA_TestBody_Set(true); fl_TC_9_2_1_1_27_Body(); @@ -402,27 +393,25 @@ module NAS_Attach_EOnly_A { // The attach procedure is completed and the RRC connection is released by executing // steps 5 to 16 of TS 36.508 sub clause 4.5.2.3 f_EUTRA_IdleUpdated_Step5_17(eutra_CellA, STATE2_IDLEUPDATE, EPS_Only, v_NAS_Ind, false); - - }// end function fl_TC_9_2_1_1_27_Body + } //============================================================================ /* * @desc REFERENCE TS 36.523-1 clause 9.2.1.1.27a - * @status + * @status APPROVED (LTE_A) */ function f_TC_9_2_1_1_27a_EUTRA() runs on EUTRA_PTC { - // create cell and send out system information f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); f_EUTRA_CellConfig_Def(eutra_CellA); //Equip UE with a USIM containing default values except for those shown in Table 9.2.1.1.27.3.1-2 f_UT_USIM_Insert(UT, "36.523-1 Table 9.2.1.1.27a.3.1-1"); - + f_UT_ConfigureEPSAttach(UT); - + f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, EPS_Only); - f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE,-, EPS_Only); + f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE, EPS_Only); f_EUTRA_TestBody_Set(true); fl_TC_9_2_1_1_27a_Body(); @@ -431,11 +420,11 @@ module NAS_Attach_EOnly_A { f_EUTRA_TestBody_Set(false); f_EUTRA_Postamble(eutra_CellA, E1_IDLE, EPS_Only); - } // end f_TC_9_2_1_1_27a_EUTRA + } /* * @desc test body of TC_9_2_1_1_27a - * @status + * @status APPROVED (LTE_A) */ function fl_TC_9_2_1_1_27a_Body() runs on EUTRA_PTC { @@ -443,33 +432,31 @@ module NAS_Attach_EOnly_A { var SRB_COMMON_IND v_ReceivedAsp; var NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(EPS_Only); timer t_WaitTimer:= 60.0; - + //@siclog "Step 1" siclog@ - // Force SS to start transmitting SystemInformationBlockType14 Extended access barring activated. - + //The SS to starts transmitting SystemInformationBlockType14 Extended access barring activated on Cell A. @sic R5-152073 sic@ + // Change to C1 to C21 in order to transmit SIB14 f_EUTRA_ChangeSysinfoCombinationC1_ToC21(eutra_CellA); f_EUTRA_ModifySysinfoUE_Off (eutra_CellA); - + // @siclog "Step 2" siclog@ // Switch on UE f_EUTRA_SwitchOnUEandStartIP(eutra_CellA); - + // @siclog "Step 3" siclog@ // Does the UE send an ATTACH REQUEST message in the next 60 sec? - + t_WaitTimer.start; alt { - - [] SRB.receive(car_SRB1_NasPdu_IND(eutra_CellA, - cr_NAS_IndicationWithPiggybacking(tsc_SHT_IntegrityProtected, - cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), - cr_508_PDN_CONNECTIVITY_REQUEST( tsc_PdnRequest_InitialAttach, - f_GetPdnType() ))))-> value v_ReceivedAsp - { - f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Attach Request received in Step 3"); - } - + [] SRB.receive(car_SRB1_NasPdu_IND(eutra_CellA, + cr_NAS_IndicationWithPiggybacking(tsc_SHT_IntegrityProtected, + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, + f_GetPdnType())))) -> value v_ReceivedAsp + { + f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Attach Request received in Step 3"); + } [] t_WaitTimer.timeout { f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 3"); @@ -477,49 +464,45 @@ module NAS_Attach_EOnly_A { } // @siclog "Step 4" siclog@ - // Force SS to stop transmitting SystemInformationBlockType14 + + // The SS stops transmitting SystemInformationBlockType14 on Cell A. @sic R5-152073 sic@ + f_EUTRA_ChangeSysinfoCombinationC21_ToC1(eutra_CellA); // UE is already Switch On f_EUTRA_ModifySysinfo(eutra_CellA,true); // @siclog "Step 5" siclog@ f_EUTRA_IdleUpdated(eutra_CellA, NORMAL, STATE2_IDLEUPDATE, EPS_Only); - - - }// end function fl_TC_9_2_1_1_27a_Body + } - /*============================================================================ + //============================================================================ + /* * @desc REFERENCE TS 36.523-1 clause 9.2.1.2.4a - * @status + * @status APPROVED (LTE_A) */ - function f_TC_9_2_1_2_4a_EUTRA() runs on EUTRA_PTC { - f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); - + f_EUTRA_CellConfig_Def(eutra_CellA); f_UT_ConfigureCombinedAttach (UT); - + f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, Combined); - f_EUTRA_UE_Detach_SwitchOffUe ( eutra_CellA, RRC_IDLE,-,Combined); - + f_EUTRA_UE_Detach_SwitchOffUe(eutra_CellA, RRC_IDLE, Combined); + f_EUTRA_TestBody_Set(true); - + fl_TC_9_2_1_2_4a_Body(); // Postamble f_EUTRA_TestBody_Set(false); - f_EUTRA_Postamble(eutra_CellB, E2_CONNECTED, Combined); - - }// function f_TC_9_2_1_2_4a_EUTRA - - + f_EUTRA_Postamble(eutra_CellA, E2_CONNECTED, Combined); // @sic R5s150747 sic@ + } + /* * @desc test body of TC_9_2_1_2_4a - * @status + * @status APPROVED (LTE_A) */ - function fl_TC_9_2_1_2_4a_Body() runs on EUTRA_PTC { var HalfOctet_Type v_EPS_Bearer_Id := tsc_EpsDefaultBearerId; @@ -528,7 +511,7 @@ module NAS_Attach_EOnly_A { var RRC_TransactionIdentifier v_RRC_TI := tsc_RRC_TI_Def; var GutiParameters_Type v_Guti1_Params := f_EUTRA_CellInfo_GetGuti(eutra_CellA); var NAS_PlmnId v_PLMN := f_Asn2Nas_PlmnId(v_Guti1_Params.PLMN_Identity); - var NAS_Lac v_LacA := f_EUTRA_CellInfo_GetLocationAreaCode ( eutra_CellA ); + var NAS_Lac v_LacA := f_EUTRA_CellInfo_GetLocationAreaCode(eutra_CellA ); var template (omit) LocAreaId v_LAI := f_GetLAI(v_PLMN, v_LacA, Combined); var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (Combined); var template (value) AccessPointName v_APN; @@ -536,8 +519,7 @@ module NAS_Attach_EOnly_A { var template (omit) EPS_BearerContextStatus v_EpsBearerCtxtStatus; var boolean v_EIT_Flag := false; var template (value) NAS_DL_Message_Type v_TAU_Accept; - var float v_T3402:= f_EUTRA_SetTimerToleranceMax(eutra_CellB, nasTimer, 30.0); - + var float v_T3402:= f_EUTRA_SetTimerToleranceMin(eutra_CellB, nasTimer, 30.0); // @sic R5s150747 sic@ //@siclog "Step 1" siclog@ f_EUTRA_SwitchOnUEandStartIP(eutra_CellA); @@ -549,7 +531,7 @@ module NAS_Attach_EOnly_A { cr_NAS_IndicationWithPiggybacking(tsc_SHT_IntegrityProtected, cdr_ATTACH_REQUEST_AttachType(tsc_EAttachType_Combined, v_AdditionalUpdateType, - f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_Guti1_Params), // GUTI1 + f_GutiParameters2MobileIdentity(omit, v_Guti1_Params), // GUTI1 @sic R5s150747 sic@ cr_TAI( v_PLMN, tsc_TAC1), v_LAI, omit), @@ -584,6 +566,7 @@ module NAS_Attach_EOnly_A { omit, cs_EMM_Cause_tv(tsc_Cause_Congestion), f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.aTTACH_REQUEST.addUpdateType, Combined), + -, // @sic R5s150747 sic@ cs_GprsTimer_tv('17'O, '000'B, '01111'B)), //T3402 cs_508_ActivateDefEpsBearerContextRequest(v_EPS_Bearer_Id, v_EPS_TI, @@ -598,10 +581,7 @@ module NAS_Attach_EOnly_A { //+ performing IP address allocation in the U-plane if requested by the UE. //+ EXCEPTION: In parallel to the event described in step 9 below the generic procedure for IMS signalling in the U-plane specified in TS 36.508 subclause 4.5A.3 takes place //+ if requested by the UE - f_EUTRA_NAS_AttachComplete(eutra_CellA, v_EPS_Bearer_Id); - - //Wait Trigger from IMS step 8b - f_IMS_IPCAN_WaitForTrigger(IMS[tsc_Index_PDN1]); + f_EUTRA_NAS_AttachComplete(eutra_CellA, v_EPS_Bearer_Id); // @sic R5s150747 sic@ //@siclog "Step 10" siclog@ f_EUTRA_RRC_ConnectionRelease(eutra_CellA); @@ -609,10 +589,10 @@ module NAS_Attach_EOnly_A { //@siclog "Step 11" siclog@ //+ Wait for T3402 f_Delay(v_T3402); - + //@siclog "Step 12" siclog@ // Check: Does the UE transmit TRACKING AREA UPDATE REQUEST message? [3,P] - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellB, + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellA, // @sic R5s150747 sic@ tsc_RRC_TI_Def, cr_EstablishmentCause_Any, cr_NAS_Indication(tsc_SHT_IntegrityProtected, @@ -620,37 +600,26 @@ module NAS_Attach_EOnly_A { f_EUTRA_SecurityKSIasme_Get(), cr_DRXparameter_Any ('5C'O) ifpresent, v_AdditionalUpdateType))); - - f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 12"); v_EpsBearerCtxtStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; - //@siclog "Step 13" siclog@ //+ SS responds with TRACKING AREA UPDATE ACCEPT message - v_TAU_Accept := cs_TAU_Accept_Common (tsc_EpsUpdate_Combined_TaLaUpdate, - f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_Guti1_Params), - cs_TrackingAreaIdListDef_tlv, - v_EpsBearerCtxtStatus, - omit, - omit, - f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, Combined)); - - SRB.send ( cas_SRB1_NasPdu_REQ ( eutra_CellA, - cs_TimingInfo_Now, - cs_NAS_Request ( tsc_SHT_IntegrityProtected_Ciphered, - v_TAU_Accept))); - + v_TAU_Accept := cs_TAU_Accept_Common(tsc_EpsUpdate_Combined_TaLaUpdate, + f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_Guti1_Params), + cs_TrackingAreaIdListDef_tlv, + v_EpsBearerCtxtStatus, + omit, + omit, + f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType, Combined)); + SRB.send(cas_SRB1_NasPdu_REQ(eutra_CellA, + cs_TimingInfo_Now, + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, + v_TAU_Accept))); // UE sends TRACKING AREA UPDATE COMPLETE //@siclog "Step 14" siclog@ SRB.receive (car_SRB1_NasPdu_IND(eutra_CellA, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_508_TAU_Complete))); - - - - }// function fl_tc_9_2_1_2_4a_Body - - } // group TestcaseImplementations - -} // module NAS_Attach_EOnly_A + } +} diff --git a/LTE_A_IWD_14wk37/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn b/LTE_A_IWD_15wk38/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn similarity index 77% rename from LTE_A_IWD_14wk37/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn rename to LTE_A_IWD_15wk38/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn index 52a795d..35351b3 100644 --- a/LTE_A_IWD_14wk37/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/9_2/NAS_TrackingArea_EOnly_A.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// * $Date: 2014-09-09 15:47:43 +0200 (Tue, 09 Sep 2014) $ -// * $Rev: 12160 $ +// @version: IWD_15wk38 +// * $Date: 2015-09-16 14:42:41 +0200 (Wed, 16 Sep 2015) $ +// * $Rev: 14457 $ // *************************************************************************** module NAS_TrackingArea_EOnly_A { @@ -20,6 +20,7 @@ module NAS_TrackingArea_EOnly_A { import from EUTRA_SRB_Templates all; import from EUTRA_AspCommon_Templates all; import from EUTRA_CommonProcedures all; + import from EUTRA_InitialRegistration all; import from NAS_CommonTypeDefs all; import from EPS_NAS_TypeDefs all; import from EPS_NAS_Constants all; @@ -36,18 +37,24 @@ module NAS_TrackingArea_EOnly_A { import from EUTRA_Timing all; import from IP_PTC_CtrlMsgs all; import from UpperTesterFunctions all; + import from Parameters all; + import from EUTRA_SecuritySteps all; + import from EUTRA_DRB_Templates all; + import from EUTRA_ASP_SrbDefs all; template (present) NAS_UL_Message_Type cdr_TAU_Request_DeviceProperties(template (present) EPS_UpdateTypeValue p_EpsUpdate_TypeValue, NAS_KsiValue p_KsiValue, template DRXparameter p_DRXparameter, template AdditionalUpdateType p_AdditionalUpdateType, template (present) TrackingAreaId p_LastTai, + template EPS_BearerContextStatus p_EPS_BearerContextStatus, // @sic R5s150810 sic@ template DeviceProperties p_DeviceProperties) modifies cr_508_TAU_Request := - { /* @status APPROVED (LTE, LTE_IRAT) */ + { /* @status APPROVED (LTE, LTE_A, LTE_IRAT) */ tRACKING_AREA_UPDATE_REQUEST := { lastVisitedRegisteredTai := p_LastTai, - deviceProperties := p_DeviceProperties + epsBearerContextStatus := p_EPS_BearerContextStatus, + deviceProperties := p_DeviceProperties } }; @@ -81,7 +88,6 @@ module NAS_TrackingArea_EOnly_A { */ function fl_TC_9_2_3_1_5a_Body() runs on EUTRA_PTC { - const EPS_BearerIdentity tsc_EpsBearerId := '5'H; var ProcedureTransactionIdentifier v_EPS_TI := '01'O; var template (value) AccessPointName v_APN; var B1_Type v_MS_NetworkFeatureSupport := '1'B ; @@ -156,8 +162,8 @@ module NAS_TrackingArea_EOnly_A { f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.aTTACH_REQUEST.addUpdateType), cs_GprsTimer_v(tsc_GprsTimerUnit_1min, '00100'B), // @sic R5s140075 sic@ omit, - cs_GprsTimer3(tsc_Gprs3TimerUnit_1min, '00110'B)),// for T3412 Extended value - cs_508_ActivateDefEpsBearerContextRequest(tsc_EpsBearerId, + cs_GprsTimer3(-, tsc_Gprs3TimerUnit_1min, '00110'B)),// for T3412 Extended value @sic R5s150745 sic@ + cs_508_ActivateDefEpsBearerContextRequest(tsc_EpsDefaultBearerId, v_EPS_TI, v_APN, f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (omit)), @@ -167,7 +173,7 @@ module NAS_TrackingArea_EOnly_A { //@siclog "Step 8" siclog@ //+ The UE transmits an ATTACH COMPLETE message with the ACTIVATE //+ DEFAULT EPS BEARER CONTEXT ACCEPT message --> ATTACH COMPLETE - f_EUTRA_NAS_AttachComplete(eutra_CellA, tsc_EpsBearerId); + f_EUTRA_NAS_AttachComplete(eutra_CellA, tsc_EpsDefaultBearerId); //@siclog "Step 9" siclog@ //+ The SS releases the RRC connection. @@ -208,7 +214,7 @@ module NAS_TrackingArea_EOnly_A { f_GetMSId (EPS_Only), // @sic R5s110478 sic@ @sic R5-121739 sic@ f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType), cs_GprsTimer_tv('5A'O, tsc_GprsTimerUnit_1min, '00100'B), // @sic R5s140075 sic@ - cs_GprsTimer3(tsc_Gprs3TimerUnit_1min, '01000'B)))));// for T3412 Extended value + cs_GprsTimer3(-, tsc_Gprs3TimerUnit_1min, '01000'B)))));// for T3412 Extended value @sic R5s150745 sic@ f_EUTRA_CellInfo_SetGuti(eutra_CellA, v_Guti2_Params); //@siclog "Step 13" siclog@ @@ -257,7 +263,7 @@ module NAS_TrackingArea_EOnly_A { f_GetMSId (EPS_Only), // @sic R5s110478 sic@ @sic R5-121739 sic@ f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType), cs_GprsTimer_tv('5A'O, tsc_GprsTimerUnit_1min, '00100'B), // @sic R5s140075 sic@ - cs_GprsTimer3(tsc_Gprs3TimerUnit_1min, '01000'B)))));// for T3412 Extended value + cs_GprsTimer3(-, tsc_Gprs3TimerUnit_1min, '01000'B)))));// for T3412 Extended value @sic R5s150745 sic@ f_EUTRA_CellInfo_SetGuti(eutra_CellA, v_Guti2_Params); //@siclog "Step 18" siclog@ @@ -274,47 +280,41 @@ module NAS_TrackingArea_EOnly_A { } // function fl_TC_9_2_3_1_5a_Body //============================================================================ -/* + /* * @desc REFERENCE TS 36.523-1 clause 9.2.3.1.8a - * @status + * @status APPROVED (LTE_A) */ function f_TC_9_2_3_1_8a_EUTRA() runs on EUTRA_PTC - { - /// @desc Normal tracking area update / low priority override - + { /* @desc Normal tracking area update / low priority override */ + f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c1); // 2 Cells: A (serving), B ( suitable neighbour cell) f_EUTRA_CellConfig_Def(eutra_CellA); f_EUTRA_CellConfig_Def(eutra_CellB); - + f_UT_ConfigureEPSAttach (UT); f_UT_USIM_Insert ( UT, "36.523-1 Table 9.2.3.1.8a.3.1-1" ); //@sic R5-140958 sic@ // Cell B is no available f_EUTRA_SetCellPower ( eutra_CellB, tsc_NonSuitableCellRS_EPRE ); - + // Preamble: UE is in state Registered, Idle Mode (state 2) on Cell A f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, EPS_Only); - - f_EUTRA_TestBody_Set(true); - + fl_TC_9_2_3_1_8a_Body(); - // Postamble f_EUTRA_TestBody_Set(false); - f_EUTRA_Postamble(eutra_CellB, E2_T3440); - - } // function f_TC_2_9_3_1_8a_EUTRA - + f_EUTRA_Postamble(eutra_CellB, E2_T3440, EPS_Only); //@sic R5s150810 sic@ + } //---------------------------------------------------------------------------- /* * @desc test body of TC_9_2_3_1_8a - * @status + * @status APPROVED (LTE_A) */ function fl_TC_9_2_3_1_8a_Body() runs on EUTRA_PTC { @@ -326,11 +326,95 @@ module NAS_TrackingArea_EOnly_A { var template (omit) EPS_BearerContextStatus v_EpsBearerCtxtStatus; var template (value) CellPowerList_Type v_CellPowerList; var B1_Type v_DeviceProperties := '0'B ; + var EUTRA_SecurityParams_Type v_SecurityParams := f_EUTRA_Security_Get(); // @sic R5-153977 sic@ var NAS_MSG_Indication_Type v_NasInd; var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (EPS_Only); var template (value) TrackingAreaIdList v_TaiList; - + var EPS_BearerIdentity v_EpsBearerId2 := '6'H; + var octetstring v_APN_Value := tsc_APN1; + var ProcedureTransactionIdentifier v_PTId_UE; + var template (omit) ProtocolConfigOptions v_Pco; + var template (value) AccessPointName v_AccessPointName; + var NasCount_Type v_NasCountUL; + var template (value) EUTRA_FDD_TDD_CellInfo_Type v_EUTRA_FDD_TDD_Info := f_EUTRA_CellInfo_GetFDD_TDD_Info (eutra_CellA); + var PDN_CONNECTIVITY_REQUEST v_PDNConnReq; + var PDN_Address v_PDN_Address2; + var SRB_COMMON_IND v_ReceivedAsp; + + // @siclog "Step 0A" siclog@ @sic R5-153977 sic@ + // Cause the UE to request connectivity to an additional PDN with the Device properties IE set to "MS is not configured for NAS signalling low priority" + f_UT_RequestAdditionalPDNConnectivity(UT, hex2int(v_EpsBearerId2), tsc_APN1_String, -, -, 1); + + //@siclog "Step 0B" siclog@ + // The UE transmits an RRCConnectionRequest message with establishmentCause set to 'mo-Data' followed by a SERVICE REQUEST message. + v_NasInd:= f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellA, + tsc_RRC_TI_Def, + cr_EstablishmentCause_MoData, + cr_NAS_Indication(tsc_SHT_IntegrityProtected, + cr_508_SERVICE_REQUEST(f_EUTRA_SecurityKSIasme_Get()))); + //@siclog "Step 0C" siclog@ + // The SS establishes SRB2 and DRB associated with default EPS bearer context (a first PDN obtained during the attach procedure). + + v_NasCountUL := v_NasInd.SecurityProtection.NasCount; + v_SecurityParams := f_EUTRA_Authentication_InitAS(v_SecurityParams, v_NasCountUL); + v_SecurityParams := f_EUTRA_RRC_ActivateSecurity(eutra_CellA, v_SecurityParams, v_NasCountUL); + f_EUTRA_Security_Set(v_SecurityParams); + + SRB.send(cas_SRB1_RrcPdu_REQ(eutra_CellA, + cs_TimingInfo_Now, + cs_RRCConnectionReconfiguration_Common(tsc_RRC_TI_Def, + omit, + omit, + cs_508_RadioResourceConfigDedicated_SRB2( {cs_508_DRB_ToAddMod_DEFAULT_AM (tsc_DRB1)}, + cs_508_MAC_MainConfig_Explicit_RBC_DrxL, + cs_508_PhysicalConfigDedicated_Default_RBC(v_EUTRA_FDD_TDD_Info.cqi_ReportConfig, + v_EUTRA_FDD_TDD_Info.soundingRS_UL_Config, + f_EUTRA_CellInfo_GetAntennaInfoDedicated (eutra_CellA))), + omit))); + // receive RRCConnectionReconfigurationComplete + SRB.receive(car_SRB1_RrcPdu_IND(eutra_CellA, + cr_508_RRCConnectionReconfigurationComplete(tsc_RRC_TI_Def))); + + //@siclog "Step 0D" siclog@ + // UE should include the Device properties IE set to "MS is not configured for NAS signalling low priority" + SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_PDNConnReqAdditionalPDN_DeviceProperties(f_GetPdnType(), + cr_AccessPointName(v_APN_Value), + cr_DeviceProperties('C'H, v_DeviceProperties))))) -> value v_ReceivedAsp; + + v_PDNConnReq := v_ReceivedAsp.Signalling.Nas[0].Pdu.Msg.pDN_CONNECTIVITY_REQUEST; + v_PTId_UE := v_PDNConnReq.procedureTransactionIdentifier; + v_AccessPointName := cs_AccessPointName(v_APN_Value); + v_Pco := v_PDNConnReq.protocolConfigurationOptions; + + // Change from DRB1 to DRB2 to handle U Plane data + f_EUTRA_StartIPfor2ndPDN(eutra_CellA); + + + v_PDN_Address2 := f_EUTRA_GetPDNAddress (f_CheckPCOforIPallocationViaNas (v_Pco), PDN_2); + + //@siclog "Step 0E" siclog@ + //The SS transmits an ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message with IE EPS Bearer Identity set to new EPS bearer context. + f_EUTRA_TxActivateDefaultEpsBearerCtxtReq_DrbReconfig(eutra_CellA, + v_EpsBearerId2, // Default bearer ID to additional PDN + v_PTId_UE, // use value as defined by the UE + v_AccessPointName, + v_PDN_Address2, + f_GetDefaultProtocolConfigOptions(v_Pco)); + + //@siclog "Step 0F" siclog@ + // Check: Does the UE transmit an ACTIVATE DEFAULT EPS BEARER CONTEXT ACCEPT message for the additional default EPS bearer? + + SRB.receive(car_SRB2_NasPdu_IND(eutra_CellA, + cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, + cr_508_ActivateDefEpsBearerContextAccept(v_EpsBearerId2)))); + // 1.2s delay acc. to 36.508 cl. 4.5A.1 to allow user-plane signalling + f_EUTRA_DelayForUserPlaneSignalling(); + + f_EUTRA_RRC_ConnectionRelease(eutra_CellA); + //@siclog "Step 1" siclog@ //+ Set the cell type of cell A to the "Non-Suitable cell". //+ Set the cell type of cell B to the "Serving cell" @@ -339,7 +423,7 @@ module NAS_TrackingArea_EOnly_A { cs_CellPower ( eutra_CellB, tsc_ServingCellRS_EPRE ) }; f_EUTRA_SetCellPowerList ( v_CellPowerList ); - + //@siclog "Step 2" siclog@ //+ Check: Does the UE transmit a TRACKING AREA UPDATE REQUEST message? v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellB, @@ -347,17 +431,18 @@ module NAS_TrackingArea_EOnly_A { cr_EstablishmentCause_Any, cr_NAS_Indication(tsc_SHT_IntegrityProtected, cdr_TAU_Request_DeviceProperties(v_UpdateType, - f_EUTRA_SecurityKSIasme_Get(), - cr_DRXparameter_Any ('5C'O) ifpresent, - v_AdditionalUpdateType, - cr_TAI(v_HomePlmn, v_Tac1), - cr_DeviceProperties('D'H,v_DeviceProperties)))); + f_EUTRA_SecurityKSIasme_Get(), + cr_DRXparameter_Any ('5C'O) ifpresent, + v_AdditionalUpdateType, + cr_TAI(v_HomePlmn, v_Tac1), + cr_508_EPS_BearerContextStatusTAUReq(('000'B, '011'B)) ifpresent, // @sic R5s150810 sic@ + cr_DeviceProperties('D'H,v_DeviceProperties)))); f_EUTRA_PreliminaryPass (__FILE__, __LINE__, "Step 2"); v_EpsBearerCtxtStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; v_TaiList := cds_TAIListNonConsecutive_tlv(f_Asn2Nas_PlmnId(v_Guti1_Params.PLMN_Identity), { bit2oct(f_EUTRA_CellInfo_GetTAC(eutra_CellB)) } ); - + //@siclog "Step 3" siclog@ //+ The SS transmits a TRACKING AREA UPDATE ACCEPT message. <-- TRACKING //+ AREA UPDATE ACCEPT @@ -371,18 +456,17 @@ module NAS_TrackingArea_EOnly_A { f_EUTRA_GetCellLAI(eutra_CellB, EPS_Only), omit, f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType)) ) ) ); - + //@siclog "Step 4" siclog@ //+ The UE transmits a TRACKING AREA UPDATE COMPLETE message. SRB.receive(car_SRB1_NasPdu_IND(eutra_CellB, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_508_TAU_Complete))); - - } // function fl_TC_9_2_3_1_8a_Body - - //============================================================================ -/* - * @desc REFERENCE TS 36.523-1 clause 9.2.3.1.8a + } + + //============================================================================ + /* + * @desc REFERENCE TS 36.523-1 clause 9.2.3.1.8b * @status */ function f_TC_9_2_3_1_8b_EUTRA() runs on EUTRA_PTC @@ -417,7 +501,7 @@ module NAS_TrackingArea_EOnly_A { // Postamble f_EUTRA_TestBody_Set(false); - f_EUTRA_Postamble(eutra_CellB, E2_T3440); + f_EUTRA_Postamble(eutra_CellB, E2_CONNECTED); // @sic R5-145775 sic@ } // function f_TC_2_9_3_1_8b_EUTRA @@ -429,14 +513,12 @@ module NAS_TrackingArea_EOnly_A { */ function fl_TC_9_2_3_1_8b_Body() runs on EUTRA_PTC { - var GutiParameters_Type v_Guti2_Params := f_EUTRA_CellInfo_GetGuti(eutra_CellB); - var EPS_UpdateTypeValue v_UpdateType := f_GetEPSTAUType(EPS_Only); - var template (omit) EPS_BearerContextStatus v_EpsBearerCtxtStatus; var template (value) CellPowerList_Type v_CellPowerList; var NAS_MSG_Indication_Type v_NasInd; var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (EPS_Only); - var template (value) TrackingAreaIdList v_TaiList; var float v_TimerValue := f_EUTRA_SetTimerToleranceMax( eutra_CellB, nasTimer, 60.0 ); // Timer set to 60s + var NAS_AttDetValue_Type v_AttachType := f_GetEAttachType(NORMAL); + //@siclog "Step 1" siclog@ @@ -455,47 +537,45 @@ module NAS_TrackingArea_EOnly_A { f_EUTRA_SetVerdictFailOrInconc(__FILE__, __LINE__, "Step 2"); } - //@siclog "Step 3" siclog@ - // UE is configurated for Override EAB - // 1st parameter: BearerId (set to 5) - // 2nd Parameter: Nas Signalling Low priotity (disabled) , - // 3rd parametes: Override EAB (enabled) - f_UT_ConfigureSIMTCParams(UT,5,0,1); + // Added steps 3A, 3B and 3C + //@siclog "Step 3A" siclog@ + // The UE is switched off and powered off + if (pc_SwitchOnOff) + { + fl_UT_ApplyCommand(UT, cas_UT_Req(SWITCH_OFF, NO_CNF_REQUIRED)); //@sic R5-145775 sic@ + } + f_UT_PowerOffUE (UT); + //@siclog "Step 3B" siclog@ + //The UE is equiped with a USIM containing values shown in Table 9.2.3.1.8b.3.3-1 + f_UT_USIM_Insert ( UT, "36.523-1 Table 9.2.3.1.8b.3.1-2" ); //@sic R5-152072 sic@ - v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellB, - tsc_RRC_TI_Def, - cr_EstablishmentCause_Any, - cr_NAS_Indication(tsc_SHT_IntegrityProtected, - cr_508_TAU_Request(v_UpdateType, - f_EUTRA_SecurityKSIasme_Get(), - cr_DRXparameter_Any ('5C'O) ifpresent, - v_AdditionalUpdateType))); - - v_EpsBearerCtxtStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; - - v_TaiList := cds_TAIListNonConsecutive_tlv(f_Asn2Nas_PlmnId(v_Guti2_Params.PLMN_Identity), - { bit2oct(f_EUTRA_CellInfo_GetTAC(eutra_CellB)) } ); + //@siclog "Step 3C" siclog@ + //The UE is powered on and switched on. - //@siclog "Step 3" siclog@ - //+ The SS transmits a TRACKING AREA UPDATE ACCEPT message. <-- TRACKING - //+ AREA UPDATE ACCEPT - SRB.send(cas_SRB1_NasPdu_REQ(eutra_CellB, - cs_TimingInfo_Now, - cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, - cs_508_TAU_Accept(v_UpdateType, - f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_Guti2_Params), - v_TaiList, - v_EpsBearerCtxtStatus, - f_EUTRA_GetCellLAI(eutra_CellB, EPS_Only), - omit, - f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType)) ) ) ); + fl_UT_ApplyCommand(UT, cas_UT_Req(POWER_ON, NO_CNF_REQUIRED)); //@sic R5-145775 sic@ + + if (pc_SwitchOnOff) + { + f_UT_SwitchOnUE(UT, false); //@sic R5-145775 sic@ + } + //@siclog "Step 4" siclog@ - //+ The UE transmits a TRACKING AREA UPDATE COMPLETE message. - SRB.receive(car_SRB1_NasPdu_IND(eutra_CellB, - cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, - cr_508_TAU_Complete))); + // Does the UE transmit an ATTACH REQUEST message? + + v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas( eutra_CellB, //@sic R5-145775 sic@ + tsc_RRC_TI_Def, + cr_EstablishmentCause_Any, + cr_NAS_IndicationWithPiggybacking(tsc_SHT_IntegrityProtected, + cr_508_ATTACH_REQUEST(v_AttachType, v_AdditionalUpdateType), + cr_508_PDN_CONNECTIVITY_REQUEST(tsc_PdnRequest_InitialAttach, + f_GetPdnType()))); + f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "Step 4"); + + // The attach procedure is completed and the RRC connection is released by executing + // steps 5 to 16 of TS 36.508 sub clause 4.5.2.3 + f_EUTRA_IdleUpdated_Step5_17(eutra_CellB, STATE2_IDLEUPDATE, EPS_Only, v_NasInd, false); //@sic R5-145775 sic@ } // function fl_TC_9_2_3_1_8b_Body @@ -575,7 +655,7 @@ module NAS_TrackingArea_EOnly_A { SRB.send(cas_SRB1_NasPdu_REQ(eutra_CellB, cs_TimingInfo_Now, cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, // @sic R5-140764 sic@ @sic R5s140568r1 sic@ @sic R5-144750 sic@ - cs_508_TRACKING_AREA_UPDATE_REJECT(tsc_Cause_Congestion, cs_GPRS_Timer2('5F'O, tsc_GprsTimerUnit_1min, '00101'B))))); // @sic R5s140322 sic@ + cs_508_TRACKING_AREA_UPDATE_REJECT(tsc_Cause_Congestion, cs_GPRS_Timer2_3_IEI('5F'O, tsc_GprsTimerUnit_1min, '00101'B))))); // @sic R5s140322, R5s150329 Baseline Moving sic@ //@siclog "Step 4" siclog@ @@ -623,17 +703,15 @@ module NAS_TrackingArea_EOnly_A { cr_508_TAU_Complete))); //At the end of this test procedure sequence, the UE is in end state E-UTRA connected (E2_T3440) according to TS 36.508 - }// function fl_TC_9_2_3_1_20a_Body + } //============================================================================ /* * @desc REFERENCE TS 36.523-1 clause 9.2.3.2.4a - * @status + * @status APPROVED (LTE_A) */ function f_TC_9_2_3_2_4a_EUTRA() runs on EUTRA_PTC { - - f_EUTRA_NAS_Init(LTE_AllCellsOnSamePLMN, c3); // create cell and send out system information @@ -641,35 +719,37 @@ module NAS_TrackingArea_EOnly_A { f_EUTRA_CellConfig_Def(eutra_CellB); f_UT_ConfigureCombinedAttach (UT); - + f_EUTRA_Preamble(eutra_CellA, STATE2_IDLEUPDATE, Combined); - + f_EUTRA_TestBody_Set(true); fl_TC_9_2_3_2_4a_Body(); - + // Postamble f_EUTRA_TestBody_Set(false); - f_EUTRA_Postamble(eutra_CellA, E2_T3440, Combined); - - } // function f_TC_9_2_3_2_4a_EUTRA + f_EUTRA_Postamble(eutra_CellB, E2_T3440, Combined); // @sic R5s150749 sic@ + } //---------------------------------------------------------------------------- /* * @desc test body of TC_9_2_3_2_4a - * @status + * @status APPROVED (LTE_A) */ function fl_TC_9_2_3_2_4a_Body( ) runs on EUTRA_PTC { var GutiParameters_Type v_Guti2_Params := f_EUTRA_CellInfo_GetGuti(eutra_CellB); + var NAS_PlmnId v_PlmnId := f_Asn2Nas_PlmnId (v_Guti2_Params.PLMN_Identity); + var NAS_TacList v_TacList := { bit2oct(f_EUTRA_CellInfo_GetTAC(eutra_CellB)) }; + var template (omit) MobileIdentity v_Guti := f_GutiParameters2MobileIdentity(tsc_IEI_Guti, v_Guti2_Params); var NAS_MSG_Indication_Type v_NasInd; var template (omit) EPS_BearerContextStatus v_EPS_ContextStatus; var template (omit) EMM_Cause v_EMMCause := cs_EMM_Cause_tv(tsc_Cause_Congestion); - var template (omit) MobileIdentity v_MSId := f_GetMSId (Combined); - var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType (Combined); + var template (omit) MobileIdentity v_MSId := f_GetMSId(Combined); + var template AdditionalUpdateType v_AdditionalUpdateType := f_GetAdditionalUpdateType(Combined); var template (value) CellPowerList_Type v_CellPowerList; - var float v_T3402:= f_EUTRA_SetTimerToleranceMax(eutra_CellB, nasTimer, 30.0); // Set timer to 30 s. - + var float v_T3402:= f_EUTRA_SetTimerToleranceMin(eutra_CellB, nasTimer, 30.0); // Set timer to 30 s. @sic R5s150749 sic@ + //@siclog "Step 1" siclog@ //+ Set the cell type of Cell B to the "Serving cell". Set the cell type of Cell A to the "non-Suitable cell". v_CellPowerList := { @@ -677,7 +757,7 @@ module NAS_TrackingArea_EOnly_A { cs_CellPower(eutra_CellB, tsc_ServingCellRS_EPRE) }; f_EUTRA_SetCellPowerList(v_CellPowerList); - + //@siclog "Step 2" siclog@ //+ The UE transmits a TRACKING AREA UPDATE REQUEST message. v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellB, @@ -691,20 +771,19 @@ module NAS_TrackingArea_EOnly_A { //@siclog "Step 3" siclog@ //+ The SS transmits a TRACKING AREA UPDATE ACCEPT message. v_EPS_ContextStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; // Send this back in the Accept - - SRB.send ( cas_SRB1_NasPdu_REQ ( eutra_CellB, - cs_TimingInfo_Now, - cs_NAS_Request ( tsc_SHT_IntegrityProtected_Ciphered, - cs_TAU_Accept_EMM_Cause ( tsc_EpsUpdate_TaUpdate, - f_GutiParameters2MobileIdentity (tsc_IEI_Guti, v_Guti2_Params ), - cds_TAIListNonConsecutive_tlv (f_Asn2Nas_PlmnId (v_Guti2_Params.PLMN_Identity), - {bit2oct(f_EUTRA_CellInfo_GetTAC(eutra_CellB))}), - v_EPS_ContextStatus, - f_EUTRA_GetCellLAI(eutra_CellB, Combined), - v_MSId, - f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType), - v_EMMCause, - cs_GprsTimer_tv('17'O, '000'B, '01111'B))))); + + SRB.send(cas_SRB1_NasPdu_REQ(eutra_CellB, + cs_TimingInfo_Now, + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, + cs_TAU_Accept_EMM_Cause(tsc_EpsUpdate_TaUpdate, + v_Guti, + cds_TAIListNonConsecutive_tlv(v_PlmnId, v_TacList), + v_EPS_ContextStatus, + f_EUTRA_GetCellLAI(eutra_CellB, Combined), + v_MSId, + f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType), + v_EMMCause, + cs_GprsTimer_tv('17'O, '000'B, '01111'B))))); //@siclog "Step 4" siclog@ //+ Check: Does the UE transmit a TRACKING AREA UPDATE COMPLETE message. SRB.receive(car_SRB1_NasPdu_IND(eutra_CellB, @@ -714,12 +793,12 @@ module NAS_TrackingArea_EOnly_A { //@siclog "Step 5" siclog@ //+ The SS releases the RRC connection. f_EUTRA_RRC_ConnectionRelease(eutra_CellB); - - //@siclog "Step 6" siclog@ - //+ Wait for T3402 + + //@siclog "Step 6" siclog@ + //+ Wait for T3402 f_Delay(v_T3402); - + //@siclog "Step 7" siclog@ //+ Check: Does the UE transmit a TRACKING AREA UPDATE REQUEST message with EPS update type as "tsc_EpsUpdate_Combined_IMSIAttach"? v_NasInd := f_EUTRA_RRC_ConnEst_DefWithNas(eutra_CellB, @@ -731,26 +810,24 @@ module NAS_TrackingArea_EOnly_A { cr_DRXparameter_Any ('5C'O) ifpresent, f_GetAdditionalUpdateType (Combined)))); f_EUTRA_PreliminaryPass(__FILE__, __LINE__, "step 7"); - + //@siclog "Step 8" siclog@ //+ The SS transmits a TRACKING AREA UPDATE ACCEPT message. v_EPS_ContextStatus := v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.epsBearerContextStatus; // Send this back in the Accept - SRB.send ( cas_SRB1_NasPdu_REQ ( eutra_CellB, - cs_TimingInfo_Now, - cs_NAS_Request ( tsc_SHT_IntegrityProtected_Ciphered, - cs_508_TAU_Accept ( tsc_EpsUpdate_TaUpdate, - f_GutiParameters2MobileIdentity (tsc_IEI_Guti, v_Guti2_Params ), - cds_TAIListNonConsecutive_tlv(f_Asn2Nas_PlmnId(v_Guti2_Params.PLMN_Identity), - { bit2oct(f_EUTRA_CellInfo_GetTAC(eutra_CellB)) }), - v_EPS_ContextStatus, - omit, - omit, - f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType) ) ) )); + SRB.send(cas_SRB1_NasPdu_REQ(eutra_CellB, + cs_TimingInfo_Now, + cs_NAS_Request(tsc_SHT_IntegrityProtected_Ciphered, + cs_508_TAU_Accept(tsc_EpsUpdate_Combined_TaLaUpdate, // @sic R5s150749 sic@ + v_Guti, + cds_TAIListNonConsecutive_tlv(v_PlmnId, v_TacList), + v_EPS_ContextStatus, + omit, + omit, + f_GetAdditionalUpdateResult(v_NasInd.Pdu.Msg.tRACKING_AREA_UPDATE_REQUEST.addUpdateType))))); //@siclog "Step 9" siclog@ //+ The UE transmits a TRACKING AREA UPDATE COMPLETE message. SRB.receive(car_SRB1_NasPdu_IND(eutra_CellB, cr_NAS_Indication(tsc_SHT_IntegrityProtected_Ciphered, cr_508_TAU_Complete))); - } } diff --git a/LTE_A_IWD_14wk37/LTE_A/9_4/NAS_A_Security.ttcn b/LTE_A_IWD_15wk38/LTE_A/9_4/NAS_A_Security.ttcn similarity index 96% rename from LTE_A_IWD_14wk37/LTE_A/9_4/NAS_A_Security.ttcn rename to LTE_A_IWD_15wk38/LTE_A/9_4/NAS_A_Security.ttcn index bf9819c..a9415e8 100644 --- a/LTE_A_IWD_14wk37/LTE_A/9_4/NAS_A_Security.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/9_4/NAS_A_Security.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 // * $Date: 2013-07-28 11:18:29 +0200 (Sun, 28 Jul 2013) $ // * $Rev: 9194 $ // *************************************************************************** diff --git a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn similarity index 84% rename from LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn index 9bfe49a..6379215 100644 --- a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/Common/EUTRA_CapabilityFunctions_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-03-06 14:08:57 +0100 (Thu, 06 Mar 2014) $ -// $Rev: 10961 $ +// @version: IWD_15wk38 +// $Date: 2015-05-25 20:16:30 +0200 (Mon, 25 May 2015) $ +// $Rev: 13597 $ /******************************************************************************/ module EUTRA_CapabilityFunctions_CA { @@ -29,52 +29,31 @@ module EUTRA_CapabilityFunctions_CA { // Templates //---------------------------------------------------------------------- - template (value) PhysicalConfigDedicated cs_508_PhysicalConfigDedicated_Default_HO_CA(template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, - //template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, // @sic R5-120497 sic@ - SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5s090312 sic@ - template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ - SR_ConfigIndex_Type p_SR_ConfigIndex, - template (value) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020, - template (omit) AdditionalSpectrumEmissionCA_r10_Type p_AdditionalSpectrumEmissionCA_r10 := omit, - template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 :=omit, - template (omit) UplinkPowerControlDedicated_v1020 p_UplinkPowerControlDedicated_v1020 := omit) := // @sic R5-102177 sic@ + template (value) PhysicalConfigDedicated cds_508_PhysicalConfigDedicated_Default_HO_CA(template (value) PUCCH_ConfigDedicated p_PUCCH_ConfigDedicated, + SR_PUCCH_ResourceIndex_Type p_SR_PUCCH_ResourceIndex, // @sic R5s090312 sic@ + template (value) PhysicalConfigDedicated_AntennaInfo_Type p_AntennaInfo, // @sic R5-100786 sic@ + SR_ConfigIndex_Type p_SR_ConfigIndex, + template (value) PUCCH_ConfigDedicated_v1020 p_PUCCH_ConfigDedicated_v1020, + template (omit) AdditionalSpectrumEmissionCA_r10_Type p_AdditionalSpectrumEmissionCA_r10 := omit, + template (omit) CQI_ReportPeriodic_r10 p_CQI_ReportPeriodic_r10 :=omit, + template (omit) UplinkPowerControlDedicated_v1020 p_UplinkPowerControlDedicated_v1020 := omit) // @sic R5-102177 sic@ + modifies cs_PhysicalConfigDedicated_Omit := { /* Default values according to 36.508 cl. 4.8.2.1.6 Table 4.8.2.1.6-1 for condition HO-TO-EUTRA */ /* @status APPROVED (LTE_A) */ - // @sic R5-123630 sic@ + /* @sic R5-123630 sic@ */ + /* @sic R5s150362 - Additional change: modifies cs_PhysicalConfigDedicated_Omit sic@ */ pdsch_ConfigDedicated := cs_508_PDSCH_ConfigDedicated_Default, pucch_ConfigDedicated := p_PUCCH_ConfigDedicated, pusch_ConfigDedicated := cs_508_PUSCH_ConfigDedicated_Default, uplinkPowerControlDedicated := cs_508_UplinkPowerControlDedicated_Default, tpc_PDCCH_ConfigPUCCH := cs_508_TPC_PDCCH_Config_Default_PUCCH, tpc_PDCCH_ConfigPUSCH := cs_508_TPC_PDCCH_Config_Default_PUSCH, - cqi_ReportConfig := omit, //@sic R5s130979 sic@ - soundingRS_UL_ConfigDedicated := omit, antennaInfo := p_AntennaInfo, schedulingRequestConfig := cs_508_SchedulingRequest_Config_Default(p_SR_PUCCH_ResourceIndex, p_SR_ConfigIndex), - cqi_ReportConfig_v920 := omit, - antennaInfo_v920 := omit, - antennaInfo_r10 := omit, - antennaInfoUL_r10 := omit, - cif_Presence_r10 := omit, cqi_ReportConfig_r10 := cs_CQI_ReportConfig_r10_DEFAULT (p_CQI_ReportPeriodic_r10), - csi_RS_Config_r10 := omit, pucch_ConfigDedicated_v1020 := p_PUCCH_ConfigDedicated_v1020, - pusch_ConfigDedicated_v1020 := omit, - schedulingRequestConfig_v1020 := omit, - soundingRS_UL_ConfigDedicated_v1020 := omit, - soundingRS_UL_ConfigDedicatedAperiodic_r10 := omit, uplinkPowerControlDedicated_v1020 := p_UplinkPowerControlDedicated_v1020, - additionalSpectrumEmissionCA_r10 := p_AdditionalSpectrumEmissionCA_r10 , - csi_RS_ConfigNZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigNZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToReleaseList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - csi_RS_ConfigZPToAddModList_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - epdcch_Config_r11 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pdsch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - cqi_ReportConfig_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pucch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - pusch_ConfigDedicated_v1130 := omit, /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ - uplinkPowerControlDedicated_v1130 := omit /* @sic R5s130195 BASELINE MOVING 2013 sic@ */ + additionalSpectrumEmissionCA_r10 := p_AdditionalSpectrumEmissionCA_r10 }; template (value) RadioResourceConfigDedicated cs_508_RadioResourceConfigDedicated_HOToEUTRA_CA(//template (omit) CQI_ReportPeriodic p_CQI_ReportingPeriodic, //@sic R5s130979 sic@ @@ -90,15 +69,15 @@ module EUTRA_CapabilityFunctions_CA { cs_RadioResourceConfigDedicated_SrbDrbConfig( { cs_508_SRB1_ToAddMod_DEFAULT, cs_508_SRB2_ToAddMod_DEFAULT }, { cs_508_DRB_ToAddMod_DEFAULT_AM(tsc_DRB1) }, cs_508_MAC_MainConfig_Explicit_RBC_DrxL(cs_508_MAC_MainConfig_v1020_SCell_AddMod), - cs_508_PhysicalConfigDedicated_Default_HO_CA(p_PUCCH_ConfigDedicated, - //p_CQI_ReportingPeriodic,//@sic R5s130979 sic@ - p_SR_PUCCH_ResourceIndex, - cs_PhysicalConfigDedicated_AntennaInfo_Def, - p_SR_ConfigIndex, - p_PUCCH_ConfigDedicated_v1020, - p_AdditionalSpectrumEmissionCA_r10, - p_CQI_ReportPeriodic_r10, - p_UplinkPowerControlDedicated_v1020)); // @sic R5-123630 sic@ + cds_508_PhysicalConfigDedicated_Default_HO_CA(p_PUCCH_ConfigDedicated, + //p_CQI_ReportingPeriodic,//@sic R5s130979 sic@ + p_SR_PUCCH_ResourceIndex, + cs_PhysicalConfigDedicated_AntennaInfo_Def, + p_SR_ConfigIndex, + p_PUCCH_ConfigDedicated_v1020, + p_AdditionalSpectrumEmissionCA_r10, + p_CQI_ReportPeriodic_r10, + p_UplinkPowerControlDedicated_v1020)); // @sic R5-123630 sic@ @@ -198,7 +177,7 @@ module EUTRA_CapabilityFunctions_CA { } else { //FDD v_PUCCH_ConfigDedicated := cs_508_PUCCH_ConfigDedicated_v1020_1TX(cs_N1PUCCH_AN_CS_r10_FDD_1TX); - // TBD for 2TX + // Not Addressed for 2TX } if (v_UL_CA) { @@ -206,12 +185,12 @@ module EUTRA_CapabilityFunctions_CA { v_AdditionalSpectrumEmissionCA_r10 := cs_AdditionalSpectrumEmissionCA_r10_Def; } if (v_ISTDD) { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_TDD); + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, cs_508_SoundingRS_UL_ConfigCommon_FDD(v_ChannelBandwidthDependency.SrsBandwidthConfiguration)); // } else { - v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT(cs_CQI_ReportPeriodic_r10_DEFAULT_FDD); + v_DedicatedSCell_UL_Configuration := cs_RadioResourceConfigDedicatedSCell_UL_Configuration_DEFAULT();//@sic R5s150070 sic@ v_CommonSCell_UL_Configuration := cs_RadioResourceConfigCommonSCell_UL_Configuration_DEFAULT(v_ChannelBandwidthDependency.Pusch_HoppingOffset, cs_508_SoundingRS_UL_ConfigCommon_TDD(v_ChannelBandwidthDependency.SrsBandwidthConfiguration)); } diff --git a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn b/LTE_A_IWD_15wk38/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn similarity index 89% rename from LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn rename to LTE_A_IWD_15wk38/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn index 5e3fb4d..db7ca70 100644 --- a/LTE_A_IWD_14wk37/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/Common/EUTRA_Measurement_Templates_CA.ttcn @@ -2,11 +2,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-09-05 19:27:02 +0200 (Fri, 05 Sep 2014) $ -// $Rev: 12079 $ +// @version: IWD_15wk38 +// $Date: 2015-09-03 16:03:33 +0200 (Thu, 03 Sep 2015) $ +// $Rev: 14169 $ /******************************************************************************/ module EUTRA_Measurement_Templates_CA { @@ -46,30 +46,39 @@ module EUTRA_Measurement_Templates_CA si_RequestForHO_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ ue_RxTxTimeDiffPeriodical_r9 := omit, /* @sic R5s110176 BASELINE MOVING 2011 sic@ */ includeLocationInfo_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ - reportAddNeighMeas_r10 := omit /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + reportAddNeighMeas_r10 := omit, /* @sic R5s120178 BASELINE MOVING 2012 sic@ */ + alternativeTimeToTrigger_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + useT312_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + usePSCell_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + aN_Threshold1_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + a5_Threshold2_v1250 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reportStrongestCSI_RSs_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + reportCRS_Meas_r12 := omit, /* @sic BASELINE MOVING 2015 sic@ */ + triggerQuantityCSI_RS_r12 := omit /* @sic BASELINE MOVING 2015 sic@ */ } }; template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A6_Def := /* @status APPROVED (LTE_A) */ - cs_ReportConfig_reportConfigEUTRA_eventA6( 0, false, 0, ms640, rsrp, both, 1, ms5120, r2 ); + cs_ReportConfig_reportConfigEUTRA_eventA6(0, false, 0, ms640, rsrp, both, 1, ms5120, r2); template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A5_Def := /* @status APPROVED (LTE_A) */ - cs_ReportConfig_reportConfigEUTRA_eventA5_RSRP( -76, -88, 0, ms2560, rsrp, both, 1, ms1024, infinity_ ); //@sic R5-133620 R5-134679 sic@ + cs_ReportConfig_reportConfigEUTRA_eventA5_RSRP(-76, -88, 0, ms2560, rsrp, both, 1, ms1024, infinity_); //@sic R5-133620 R5-134679 sic@ //------------------------------------------------ //Table : ReportConfigEUTRA-A3 template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_8223 := /* @status APPROVED (LTE_A) */ - cs_ReportConfig_reportConfigEUTRA_eventA3( -24, true, 0, ms640, rsrp, both, 1, ms1024, r1); //@sic R5s130404 sic@ - //------------------------------------------------ + cs_ReportConfig_reportConfigEUTRA_eventA3(-24, true, 0, ms640, rsrp, both, 1, ms1024, r1); //@sic R5s130404 sic@ + //------------------------------------------------ //Table : ReportConfigEUTRA-A3 template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_82419 := - cs_ReportConfig_reportConfigEUTRA_eventA3( -24, true, 0, ms5120, rsrp, both, 1, ms1024, r1); //@sic R5-134782 sic@ + cs_ReportConfig_reportConfigEUTRA_eventA3(-24, true, 0, ms5120, rsrp, both, 1, ms1024, r1); //@sic R5-134782 sic@ -template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_82423 := - cs_ReportConfig_reportConfigEUTRA_eventA3( 0, false, 0, ms2560, rsrp, both, 1, ms1024, r1); + template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_82423 := + /* @status APPROVED (LTE_A) */ + cs_ReportConfig_reportConfigEUTRA_eventA3(0, false, 0, ms2560, rsrp, both, 1, ms1024, r1); template (value) ReportConfigToAddMod.reportConfig cds_ReportConfig_reportConfigEUTRA_eventA3_CA(A3_Offset_Type p_A3_Offset, boolean p_ReportOnLeave, @@ -199,7 +208,7 @@ template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_ cs_MeasObjectToAddModList_2Entries(p_MeasObjectId, cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq1, p_MeasurementBandwidth1), p_MeasObjectId_2, - cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq2, p_MeasurementBandwidth2,-,-,-,-,sf512)), //@sic R5s140009 sic@ + cs_MeasObject_measObjectEUTRA_Common(p_EUTRA_DL_CarrierFreq2, p_MeasurementBandwidth2,-,-,-,-,sf256)), //@sic R5s140009 R5s150793 sic@ omit, cs_ReportConfigToAddModList_1Entry(2, p_ReportConfig), omit, @@ -244,7 +253,10 @@ template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_ physCellId_r10 := p_PhysCellId , rsrpResultNCell_r10 := p_RsrpResultNcell, rsrqResultNCell_r10 := p_RsrqResultNcell - } + }, + measResultSCell_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultBestNeighCell_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ + } }; @@ -258,7 +270,9 @@ template (value) ReportConfigToAddMod_ReportConfig_Type cs_ReportConfigEUTRA_A3_ rsrpResultSCell_r10 := p_RsrpResult, rsrqResultSCell_r10 := p_RsrqResult }, - measResultBestNeighCell_r10 := omit + measResultBestNeighCell_r10 := omit, + measResultSCell_v1250 := *, /* @sic BASELINE MOVING 2015 sic@ */ + measResultBestNeighCell_v1250 := * /* @sic BASELINE MOVING 2015 sic@ */ } }; } diff --git a/LTE_A_IWD_14wk37/LTE_A/Common/TestcaseProperties.ttcn b/LTE_A_IWD_15wk38/LTE_A/Common/TestcaseProperties.ttcn similarity index 76% rename from LTE_A_IWD_14wk37/LTE_A/Common/TestcaseProperties.ttcn rename to LTE_A_IWD_15wk38/LTE_A/Common/TestcaseProperties.ttcn index c2d620f..27d4f9a 100644 --- a/LTE_A_IWD_14wk37/LTE_A/Common/TestcaseProperties.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A/Common/TestcaseProperties.ttcn @@ -3,11 +3,11 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -// $Date: 2014-07-05 16:52:20 +0200 (Sat, 05 Jul 2014) $ -// $Rev: 11811 $ +// @version: IWD_15wk38 +// $Date: 2015-06-12 14:58:10 +0200 (Fri, 12 Jun 2015) $ +// $Rev: 13810 $ /******************************************************************************/ module TestcaseProperties { @@ -25,12 +25,18 @@ module TestcaseProperties { function f_GetTestcaseAttrib_Mimo(charstring p_Testcase) return boolean { + select (p_Testcase) { + case ("TC_8_2_4_16_1") { return true; } + case ("TC_8_2_4_16_2") { return true; } + case ("TC_8_2_4_16_3") { return true; } + } return false; } function f_GetTestcaseAttrib_DciFormat1A(charstring p_Testcase) return boolean { select (p_Testcase) { + case ("TC_17_2_4") { return true; } case ("TC_7_1_3_11_1") { return true; } case ("TC_7_1_3_11_2") { return true; } case ("TC_7_1_3_11_3") { return true; } @@ -49,30 +55,55 @@ module TestcaseProperties { function f_GetTestcaseAttrib_DlCcchMsgInSeparateMacPdu(charstring p_Testcase) return boolean { select (p_Testcase) { + case ("TC_13_4_3_11") { return true; } case ("TC_13_4_3_20") { return true; } case ("TC_13_4_3_23") { return true; } + case ("TC_13_4_3_26") { return true; } + case ("TC_13_4_3_28") { return true; } + case ("TC_13_4_3_9") { return true; } + case ("TC_17_4_7") { return true; } case ("TC_7_3_4_3") { return true; } + case ("TC_8_2_4_23_1") { return true; } + case ("TC_8_2_4_23_2") { return true; } + case ("TC_8_2_4_23_3") { return true; } + case ("TC_8_6_2_12") { return true; } case ("TC_8_6_2_5") { return true; } case ("TC_8_6_4_1") { return true; } + case ("TC_8_6_4_10") { return true; } case ("TC_8_6_4_2") { return true; } case ("TC_8_6_4_3") { return true; } case ("TC_8_6_4_4") { return true; } case ("TC_8_6_4_5") { return true; } case ("TC_8_6_4_7") { return true; } + case ("TC_8_6_4_9") { return true; } case ("TC_8_6_5_3") { return true; } case ("TC_8_6_6_1") { return true; } case ("TC_8_6_6_2") { return true; } case ("TC_8_6_6_4") { return true; } + case ("TC_8_6_6_5") { return true; } + case ("TC_8_6_6_6") { return true; } + case ("TC_8_6_6_7") { return true; } case ("TC_8_6_7_1") { return true; } case ("TC_8_6_7_2") { return true; } case ("TC_8_6_7_3") { return true; } + case ("TC_8_6_8_1") { return true; } + case ("TC_8_6_8_2") { return true; } case ("TC_8_6_8_3") { return true; } + case ("TC_8_6_8_5") { return true; } + case ("TC_8_6_8_6") { return true; } + case ("TC_8_6_9_1") { return true; } + case ("TC_8_6_9_2") { return true; } + case ("TC_8_6_9_3") { return true; } } return false; } function f_GetTestcaseAttrib_Qbased_Rsrq(charstring p_Testcase) return boolean { + select (p_Testcase) { + case ("TC_6_2_4_5") { return true; } + case ("TC_6_2_4_7") { return true; } + } return false; } @@ -113,6 +144,17 @@ module TestcaseProperties { function f_GetTestcaseAttrib_RetrieveEutraCapabilities(charstring p_Testcase) return boolean { + select (p_Testcase) { + case ("TC_6_2_3_35") { return true; } + case ("TC_6_2_4_1") { return true; } + case ("TC_6_2_4_2") { return true; } + case ("TC_6_2_4_3") { return true; } + case ("TC_6_2_4_4") { return true; } + case ("TC_6_2_4_5") { return true; } + case ("TC_6_2_4_6") { return true; } + case ("TC_6_2_4_7") { return true; } + case ("TC_8_7_1") { return true; } + } return false; } @@ -224,6 +266,10 @@ module TestcaseProperties { case ("TC_13_4_3_27") { return true; } case ("TC_13_4_3_28") { return true; } case ("TC_13_4_3_30") { return true; } + case ("TC_13_4_3_31") { return true; } + case ("TC_13_4_3_32") { return true; } + case ("TC_13_4_3_34") { return true; } + case ("TC_13_4_3_38") { return true; } case ("TC_13_4_3_7") { return true; } case ("TC_13_4_3_8") { return true; } case ("TC_13_4_3_9") { return true; } @@ -231,6 +277,18 @@ module TestcaseProperties { return false; } + function f_GetTestcaseAttrib_Eutra_NSLP(charstring p_Testcase) return boolean + { + select (p_Testcase) { + case ("TC_10_5_1a") { return true; } + case ("TC_10_5_1b") { return true; } + case ("TC_10_5_4") { return true; } + case ("TC_8_1_1_7") { return true; } + case ("TC_9_2_3_1_8b") { return true; } + } + return false; + } + function f_GetTestcaseAttrib_Eutra_Release(charstring p_Testcase) return charstring { select (p_Testcase) { @@ -238,6 +296,16 @@ module TestcaseProperties { case ("TC_10_5_1b") { return "rel_11"; } case ("TC_10_5_4") { return "rel_10"; } case ("TC_10_8_8") { return "rel_11"; } + case ("TC_13_4_3_31") { return "rel_11"; } + case ("TC_13_4_3_32") { return "rel_11"; } + case ("TC_13_4_3_33") { return "rel_11"; } + case ("TC_13_4_3_34") { return "rel_11"; } + case ("TC_13_4_3_35") { return "rel_11"; } + case ("TC_13_4_3_36") { return "rel_11"; } + case ("TC_13_4_3_37") { return "rel_11"; } + case ("TC_13_4_3_38") { return "rel_11"; } + case ("TC_13_4_3_39") { return "rel_11"; } + case ("TC_13_4_3_40") { return "rel_11"; } case ("TC_17_1_1") { return "rel_9"; } case ("TC_17_1_2") { return "rel_9"; } case ("TC_17_1_3") { return "rel_9"; } @@ -268,12 +336,15 @@ module TestcaseProperties { case ("TC_17_4_9_2") { return "rel_11"; } case ("TC_6_1_1_7") { return "rel_10"; } case ("TC_6_1_1_7a") { return "rel_10"; } + case ("TC_6_2_3_35") { return "rel_10"; } + case ("TC_7_1_10_1") { return "rel_11"; } + case ("TC_7_1_10_2") { return "rel_11"; } case ("TC_7_1_2_10_1") { return "rel_11"; } - case ("TC_7_1_2_10_2") { return "rel_12"; } - case ("TC_7_1_2_10_3") { return "rel_12"; } + case ("TC_7_1_2_10_2") { return "rel_11"; } + case ("TC_7_1_2_10_3") { return "rel_11"; } case ("TC_7_1_2_11_1") { return "rel_11"; } - case ("TC_7_1_2_11_2") { return "rel_12"; } - case ("TC_7_1_2_11_3") { return "rel_12"; } + case ("TC_7_1_2_11_2") { return "rel_11"; } + case ("TC_7_1_2_11_3") { return "rel_11"; } case ("TC_7_1_3_11_1") { return "rel_10"; } case ("TC_7_1_3_11_2") { return "rel_10"; } case ("TC_7_1_3_11_3") { return "rel_11"; } @@ -281,13 +352,15 @@ module TestcaseProperties { case ("TC_7_1_3_12a") { return "rel_9"; } case ("TC_7_1_3_13") { return "rel_9"; } case ("TC_7_1_3_13a") { return "rel_9"; } + case ("TC_7_1_3_14") { return "rel_11"; } + case ("TC_7_1_3_15") { return "rel_11"; } case ("TC_7_1_4_18") { return "rel_10"; } case ("TC_7_1_4_19_1") { return "rel_10"; } - case ("TC_7_1_4_19_2") { return "rel_12"; } - case ("TC_7_1_4_19_3") { return "rel_12"; } + case ("TC_7_1_4_19_2") { return "rel_11"; } + case ("TC_7_1_4_19_3") { return "rel_11"; } case ("TC_7_1_4_20_1") { return "rel_10"; } - case ("TC_7_1_4_20_2") { return "rel_12"; } - case ("TC_7_1_4_20_3") { return "rel_12"; } + case ("TC_7_1_4_20_2") { return "rel_11"; } + case ("TC_7_1_4_20_3") { return "rel_11"; } case ("TC_7_1_4_21") { return "rel_10"; } case ("TC_7_1_9_1_1") { return "rel_10"; } case ("TC_7_1_9_1_2") { return "rel_10"; } @@ -306,24 +379,24 @@ module TestcaseProperties { case ("TC_8_2_2_6_2") { return "rel_11"; } case ("TC_8_2_2_6_3") { return "rel_11"; } case ("TC_8_2_2_7_1") { return "rel_11"; } - case ("TC_8_2_2_7_2") { return "rel_12"; } - case ("TC_8_2_2_7_3") { return "rel_12"; } + case ("TC_8_2_2_7_2") { return "rel_11"; } + case ("TC_8_2_2_7_3") { return "rel_11"; } case ("TC_8_2_2_8") { return "rel_11"; } case ("TC_8_2_4_16_1") { return "rel_10"; } case ("TC_8_2_4_16_2") { return "rel_10"; } - case ("TC_8_2_4_16_3") { return "rel_12"; } + case ("TC_8_2_4_16_3") { return "rel_11"; } case ("TC_8_2_4_17_1") { return "rel_10"; } case ("TC_8_2_4_17_2") { return "rel_10"; } case ("TC_8_2_4_17_3") { return "rel_11"; } case ("TC_8_2_4_18_1") { return "rel_10"; } case ("TC_8_2_4_18_2") { return "rel_10"; } - case ("TC_8_2_4_18_3") { return "rel_12"; } + case ("TC_8_2_4_18_3") { return "rel_11"; } case ("TC_8_2_4_19_1") { return "rel_10"; } case ("TC_8_2_4_19_2") { return "rel_10"; } case ("TC_8_2_4_19_3") { return "rel_11"; } case ("TC_8_2_4_20_1") { return "rel_10"; } case ("TC_8_2_4_20_2") { return "rel_10"; } - case ("TC_8_2_4_20_3") { return "rel_12"; } + case ("TC_8_2_4_20_3") { return "rel_11"; } case ("TC_8_2_4_21_1") { return "rel_10"; } case ("TC_8_2_4_21_2") { return "rel_10"; } case ("TC_8_2_4_21_3") { return "rel_11"; } @@ -337,7 +410,6 @@ module TestcaseProperties { case ("TC_8_3_1_18_2") { return "rel_10"; } case ("TC_8_3_1_18_3") { return "rel_11"; } case ("TC_8_3_1_19") { return "rel_10"; } - case ("TC_8_3_1_20") { return "rel_10"; } case ("TC_8_3_1_21") { return "rel_10"; } case ("TC_8_3_1_22_1") { return "rel_10"; } case ("TC_8_3_1_22_2") { return "rel_10"; } @@ -349,6 +421,8 @@ module TestcaseProperties { case ("TC_8_5_1_7_1") { return "rel_10"; } case ("TC_8_5_1_7_2") { return "rel_10"; } case ("TC_8_5_1_7_3") { return "rel_11"; } + case ("TC_8_5_4_2") { return "rel_11"; } + case ("TC_8_5_4_3") { return "rel_11"; } case ("TC_8_6_10_1") { return "rel_11"; } case ("TC_8_6_11_1") { return "rel_9"; } case ("TC_8_6_1_1") { return "rel_10"; } @@ -422,16 +496,27 @@ module TestcaseProperties { function f_GetTestcaseAttrib_UtraFDD_Release(charstring p_Testcase) return charstring { select (p_Testcase) { + case ("TC_13_4_3_32") { return "FDDr11"; } + case ("TC_13_4_3_34") { return "FDDr11"; } + case ("TC_13_4_3_36") { return "FDDr11"; } + case ("TC_13_4_3_38") { return "FDDr11"; } + case ("TC_13_4_3_39") { return "FDDr11"; } + case ("TC_13_4_3_40") { return "FDDr11"; } + case ("TC_6_2_3_35") { return "FDDr10"; } case ("TC_8_4_2_7_1") { return "FDDr8"; } case ("TC_8_4_2_7_2") { return "FDDr8"; } case ("TC_8_4_2_7_3") { return "FDDr8"; } - case ("TC_8_6_10_1") { return "FDDr11"; } + case ("TC_8_6_10_1") { return "FDDr8"; } case ("TC_8_6_3_1") { return "FDDr8"; } + case ("TC_8_6_3_2") { return "FDDr8"; } + case ("TC_8_6_3_4") { return "FDDr8"; } case ("TC_8_6_5_1") { return "FDDr8"; } + case ("TC_8_6_5_1a") { return "FDDr8"; } + case ("TC_8_6_5_4") { return "FDDr8"; } case ("TC_8_6_7_1") { return "FDDr8"; } - case ("TC_8_6_7_4") { return "FDDr11"; } - case ("TC_8_6_9_1") { return "FDDr11"; } - case ("TC_8_6_9_2") { return "FDDr11"; } + case ("TC_8_6_7_4") { return "FDDr8"; } + case ("TC_8_6_9_1") { return "FDDr8"; } + case ("TC_8_6_9_2") { return "FDDr8"; } case ("TC_8_7_1") { return "FDDr10"; } } return ""; @@ -440,17 +525,34 @@ module TestcaseProperties { function f_GetTestcaseAttrib_UtraTDD_Release(charstring p_Testcase) return charstring { select (p_Testcase) { + case ("TC_13_4_3_32") { return "TDDr11"; } + case ("TC_13_4_3_34") { return "TDDr11"; } + case ("TC_13_4_3_36") { return "TDDr11"; } + case ("TC_13_4_3_38") { return "TDDr11"; } + case ("TC_13_4_3_39") { return "TDDr11"; } + case ("TC_13_4_3_40") { return "TDDr11"; } + case ("TC_6_2_3_35") { return "TDDr10"; } case ("TC_8_4_2_7_1") { return "TDDr10"; } case ("TC_8_4_2_7_2") { return "TDDr10"; } case ("TC_8_4_2_7_3") { return "TDDr10"; } - case ("TC_8_6_10_1") { return "TDDr11"; } - case ("TC_8_6_3_1") { return "TDDr10"; } - case ("TC_8_6_7_1") { return "TDDr10"; } - case ("TC_8_6_7_4") { return "TDDr11"; } - case ("TC_8_6_9_1") { return "TDDr11"; } - case ("TC_8_6_9_2") { return "TDDr11"; } + case ("TC_8_6_10_1") { return "TDDr9"; } + case ("TC_8_6_3_1") { return "TDDr9"; } + case ("TC_8_6_3_2") { return "TDDr9"; } + case ("TC_8_6_3_4") { return "TDDr9"; } + case ("TC_8_6_5_1") { return "TDDr9"; } + case ("TC_8_6_5_1a") { return "TDDr9"; } + case ("TC_8_6_5_4") { return "TDDr9"; } + case ("TC_8_6_7_1") { return "TDDr9"; } + case ("TC_8_6_7_4") { return "TDDr9"; } + case ("TC_8_6_9_1") { return "TDDr9"; } + case ("TC_8_6_9_2") { return "TDDr9"; } case ("TC_8_7_1") { return "TDDr10"; } } return ""; } + + function f_GetTestcaseAttrib_DTMF(charstring p_Testcase) return boolean + { + return false; + } } diff --git a/LTE_A_IWD_14wk37/LTE_A_Testsuite.ttcn b/LTE_A_IWD_15wk38/LTE_A_Testsuite.ttcn similarity index 82% rename from LTE_A_IWD_14wk37/LTE_A_Testsuite.ttcn rename to LTE_A_IWD_15wk38/LTE_A_Testsuite.ttcn index 3febced..1e332fb 100644 --- a/LTE_A_IWD_14wk37/LTE_A_Testsuite.ttcn +++ b/LTE_A_IWD_15wk38/LTE_A_Testsuite.ttcn @@ -2,9 +2,9 @@ // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 +// @version: IWD_15wk38 /******************************************************************************/ module LTE_A_Testsuite { @@ -27,14 +27,18 @@ module LTE_A_Testsuite { import from BSRVCC_EUTRA_UTRAN all; import from ESM_A_Testcases all; import from EUTRA_Measurements_CA all; + import from EUTRA_Measurements_eICIC all; import from FeFACH_EU all; import from FeFACH_EU_UTRAN all; import from Idle_PLMNSelection_A all; + import from InterRat_CellReSelection_A_UtoE all; + import from InterRat_CellReSelection_A_UtoE_UTRAN all; import from InterRat_Handover_UtoE_CA all; import from InterRat_Handover_UtoE_CA_UTRAN all; import from Inter_RAT_Logged_MDT all; import from Inter_RAT_Logged_MDT_CDMA2000 all; import from MAC_CA all; + import from MAC_Rel11 all; import from MAC_SSC all; import from MBMS_Counting_TestCases all; import from MBMS_MCCH_TestCases all; @@ -64,10 +68,14 @@ module LTE_A_Testsuite { import from RRC_MDT_Logged all; import from RRC_MDT_Logged_GERAN all; import from RRC_MDT_Logged_UTRAN all; - import from RRC_Measurement_eICIC all; + import from RRC_Others_CA all; import from RRC_Paging_A all; import from RRC_RACH_Optimisation all; import from RRC_RadioLinkFailure_CA all; + import from RSRVCC_EUTRA all; + import from RSRVCC_EUTRA_GERAN all; + import from RSRVCC_EUTRA_IMS all; + import from RSRVCC_EUTRA_UTRAN all; //---------------------------------------------------------------------------- testcase TC_10_5_1a() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { @@ -670,6 +678,286 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_13_4_3_31() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_GERAN := GERAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_31_EUTRA()); + v_GERAN.start(f_TC_13_4_3_31_GERAN()); + v_IMS1.start(f_TC_13_4_3_31_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_32() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_32_EUTRA()); + v_UTRAN.start(f_TC_13_4_3_32_UTRAN()); + v_IMS1.start(f_TC_13_4_3_32_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_33() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MO call + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_GERAN := GERAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_33_EUTRA()); + v_GERAN.start(f_TC_13_4_3_33_GERAN()); + v_IMS1.start(f_TC_13_4_3_33_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_34() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / UTRA CS voice to E-UTRA voice / alerting / rSRVCC / MO call + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_34_EUTRA()); + v_UTRAN.start(f_TC_13_4_3_34_UTRAN()); + v_IMS1.start(f_TC_13_4_3_34_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_35() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / GERAN CS voice to E-UTRA voice / alerting / rSRVCC / MT call + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_GERAN := GERAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_35_EUTRA()); + v_GERAN.start(f_TC_13_4_3_35_GERAN()); + v_IMS1.start(f_TC_13_4_3_35_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_36() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / UTRA CS voice to E-UTRA voice / alerting / rSRVCC / MT call + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_36_EUTRA()); + v_UTRAN.start(f_TC_13_4_3_36_UTRAN()); + v_IMS1.start(f_TC_13_4_3_36_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_37() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / GERAN CS voice to E-UTRA voice / rSRVCC / HO cancelled + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_GERAN := GERAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_37_EUTRA()); + v_GERAN.start(f_TC_13_4_3_37_GERAN()); + v_IMS1.start(f_TC_13_4_3_37_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_38() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / UTRA CS voice to E-UTRA voice / rSRVCC / HO cancelled + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_38_EUTRA()); + v_UTRAN.start(f_TC_13_4_3_38_UTRAN()); + v_IMS1.start(f_TC_13_4_3_38_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_39() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-system mobility / UTRA CS voice + PS data to E-UTRA voice + PS data / rSRVCC + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_39_EUTRA()); + v_UTRAN.start(f_TC_13_4_3_39_UTRAN()); + v_IMS1.start(f_TC_13_4_3_39_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_13_4_3_40() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Intersystem mobility / UTRA CS voice to E-UTRA voice / rSRVCC / Multiple voice calls with mid-call feature + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + v_IMS1 := IMS_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_13_4_3_40_EUTRA()); + v_UTRAN.start(f_TC_13_4_3_40_UTRAN()); + v_IMS1.start(f_TC_13_4_3_40_IMS1()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_13_4_3_7() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose // Inter-system mobility / E-UTRA voice to UTRA CS voice / aSRVCC / MO call @@ -948,7 +1236,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_17_2_4() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // Reception of PDCCH DCI format 0 and PHICH in MBSFN subframes + // Reception of PDCCH DCI format 0 and PHICH in MBSFN subframes var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -1428,7 +1716,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_6_1_1_7() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // PLMN selection / Periodic reselection / ExtendedWaitTimer + // PLMN selection / Periodic reselection / MinimumPeriodicSearchTimer var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -1460,7 +1748,7 @@ module LTE_A_Testsuite { var IMS_PTC v_IMS1 := null; var IMS_PTC v_IMS2 := null; - timer t_GuardTimer := int2float(360); + timer t_GuardTimer := int2float(1200); v_EUTRA := EUTRA_PTC.create alive; @@ -1474,6 +1762,32 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_6_2_3_35() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Inter-RAT cell reselection from UTRA to E-UTRA / MFBI + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + v_UTRAN := UTRAN_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_6_2_3_35_EUTRA()); + v_UTRAN.start(f_TC_6_2_3_35_UTRAN()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_6_2_4_1() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose // Inter-RAT absolute priority based reselection in UTRA CELL_FACH to E-UTRA RRC_IDLE (Higher Priority Layers, Srxlev,x > Threshx,high and Srxlev,serv > Sprioritysearch1 and SqualServ > Sprioritysearch2) @@ -1656,6 +1970,54 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_7_1_10_1() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Sending SR on PUCCH with DMRS generated by using virtual cell identity / nPUCCH-Identity + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_7_1_10_1_EUTRA()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_7_1_10_2() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Transmitting data on PUSCH with DMRS generated by using virtual cell identity / nPUSCH-Identity + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_7_1_10_2_EUTRA()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_7_1_2_10_1() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose // CA / Random access procedure / SCell / Intra-band Contiguous CA @@ -1802,7 +2164,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_7_1_3_11_1() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // Addition of new CA test case: CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell / Intra-band Contiguous CA + // CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell / Intra-band Contiguous CA var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -1826,7 +2188,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_7_1_3_11_2() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // Addition of new CA test case: CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell / Inter-band CA + // CA / Correct HARQ process handling / DCCH and DTCH / Pcell and Scell / Inter-band CA var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -1968,6 +2330,54 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_7_1_3_14() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Correct handling of DL assignment / Dynamic case / EPDCCH + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_7_1_3_14_EUTRA()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_7_1_3_15() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Correct handling of DL assignment / Semi-persistent case / EPDCCH + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_7_1_3_15_EUTRA()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_7_1_4_18() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose // CA / Correct handling of MAC control information / Buffer Status / UL data arrive in the UE Tx buffer / Extended buffer size @@ -2690,7 +3100,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_8_2_2_8() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // feICIC/ RRC connection reconfiguration / SIB1 information / Success + // RRC connection reconfiguration / SIB1 information / Success var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -3362,7 +3772,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_8_3_1_19() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // eICIC / Measurement configuration control and reporting / CSI change + // eICIC / Measurement configuration control and reporting / CSI change var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -3384,33 +3794,9 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- - testcase TC_8_3_1_20() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { - // @purpose - // eICIC / Measurement configuration control and reporting / Event A3 / RSRP and RSRQ measurement on ABS - var EUTRA_PTC v_EUTRA := null; - var UTRAN_PTC v_UTRAN := null; - var GERAN_PTC v_GERAN := null; - var CDMA2000_PTC v_CDMA2000 := null; - var IMS_PTC v_IMS1 := null; - var IMS_PTC v_IMS2 := null; - - timer t_GuardTimer := int2float(360); - - v_EUTRA := EUTRA_PTC.create alive; - - f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); - - v_EUTRA.start(f_TC_8_3_1_20_EUTRA()); - - t_GuardTimer.start; - - f_MTC_MainLoop(t_GuardTimer); - } - //---------------------------------------------------------------------------- - //---------------------------------------------------------------------------- testcase TC_8_3_1_21() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // eICIC / Measurement configuration control and reporting / Event A3 Handover / Neighbour RSRP measurement configuration change + // eICIC / Measurement configuration control and reporting / Event A4 Handover / Neighbour RSRP and RSRQ measurement configuration change var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -3506,7 +3892,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_8_3_1_28() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // eICIC / Measurement configuration control and reporting / Event A3 / RSRP and RSRQ measurement / Serving ABS + // eICIC / Measurement configuration control and reporting / Event A1 / RSRP and RSRQ measurement / Serving ABS var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -3582,7 +3968,7 @@ module LTE_A_Testsuite { //---------------------------------------------------------------------------- testcase TC_8_4_2_7_3() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose - // CA / Measurement configuration control and reporting / Intra E-UTRAN measurements / Additional measurement reporting / Intra-band non-contiguous CA + // CA / RRC connection reconfiguration / Handover UTRAN to E-UTRAN/ Success / SCell addition / Intra-band non-contiguous CA var EUTRA_PTC v_EUTRA := null; var UTRAN_PTC v_UTRAN := null; var GERAN_PTC v_GERAN := null; @@ -3678,6 +4064,54 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- + testcase TC_8_5_4_2() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Network-requested CA Band Combination Capability Signalling / Number of UE supported CA band combinations less than or equal to 128 + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_8_5_4_2_EUTRA()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- + testcase TC_8_5_4_3() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { + // @purpose + // Network-requested CA Band Combination Capability Signalling / Number of UE supported CA band combinations exceeds 128 + var EUTRA_PTC v_EUTRA := null; + var UTRAN_PTC v_UTRAN := null; + var GERAN_PTC v_GERAN := null; + var CDMA2000_PTC v_CDMA2000 := null; + var IMS_PTC v_IMS1 := null; + var IMS_PTC v_IMS2 := null; + + timer t_GuardTimer := int2float(360); + + v_EUTRA := EUTRA_PTC.create alive; + + f_MTC_ConnectPTCs_LTE_IRAT(v_EUTRA, v_UTRAN, v_GERAN, v_CDMA2000, v_IMS1, v_IMS2); + + v_EUTRA.start(f_TC_8_5_4_3_EUTRA()); + + t_GuardTimer.start; + + f_MTC_MainLoop(t_GuardTimer); + } + //---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- testcase TC_8_6_10_1() runs on MTC_LTE_IRAT system SYSTEM_LTE_IRAT { // @purpose // Inter-RAT Immediate MDT / Reporting / Location information / Event B2 @@ -5348,219 +5782,235 @@ module LTE_A_Testsuite { } //---------------------------------------------------------------------------- control { - if (f_ExecutionGuideline("TC_10_5_1a") and f_SelectionExpr(C204)) { execute(TC_10_5_1a()); } - if (f_ExecutionGuideline("TC_10_5_1b") and f_SelectionExpr(C204)) { execute(TC_10_5_1b()); } - if (f_ExecutionGuideline("TC_10_5_4") and f_SelectionExpr(C178)) { execute(TC_10_5_4()); } - if (f_ExecutionGuideline("TC_10_8_8") and f_SelectionExpr(C196)) { execute(TC_10_8_8()); } - if (f_ExecutionGuideline("TC_13_4_3_10") and f_SelectionExpr(C159)) { execute(TC_13_4_3_10()); } - if (f_ExecutionGuideline("TC_13_4_3_11") and f_SelectionExpr(C159)) { execute(TC_13_4_3_11()); } - if (f_ExecutionGuideline("TC_13_4_3_13") and f_SelectionExpr(C159)) { execute(TC_13_4_3_13()); } - if (f_ExecutionGuideline("TC_13_4_3_14") and f_SelectionExpr(C159)) { execute(TC_13_4_3_14()); } - if (f_ExecutionGuideline("TC_13_4_3_15") and f_SelectionExpr(C161)) { execute(TC_13_4_3_15()); } - if (f_ExecutionGuideline("TC_13_4_3_16") and f_SelectionExpr(C159)) { execute(TC_13_4_3_16()); } - if (f_ExecutionGuideline("TC_13_4_3_18") and f_SelectionExpr(C201)) { execute(TC_13_4_3_18()); } - if (f_ExecutionGuideline("TC_13_4_3_19") and f_SelectionExpr(C202)) { execute(TC_13_4_3_19()); } - if (f_ExecutionGuideline("TC_13_4_3_20") and f_SelectionExpr(C201)) { execute(TC_13_4_3_20()); } - if (f_ExecutionGuideline("TC_13_4_3_21") and f_SelectionExpr(C198)) { execute(TC_13_4_3_21()); } - if (f_ExecutionGuideline("TC_13_4_3_22") and f_SelectionExpr(C199)) { execute(TC_13_4_3_22()); } - if (f_ExecutionGuideline("TC_13_4_3_23") and f_SelectionExpr(C198)) { execute(TC_13_4_3_23()); } - if (f_ExecutionGuideline("TC_13_4_3_24") and f_SelectionExpr(C193)) { execute(TC_13_4_3_24()); } - if (f_ExecutionGuideline("TC_13_4_3_25") and f_SelectionExpr(C193)) { execute(TC_13_4_3_25()); } - if (f_ExecutionGuideline("TC_13_4_3_26") and f_SelectionExpr(C193)) { execute(TC_13_4_3_26()); } - if (f_ExecutionGuideline("TC_13_4_3_27") and f_SelectionExpr(C193)) { execute(TC_13_4_3_27()); } - if (f_ExecutionGuideline("TC_13_4_3_28") and f_SelectionExpr(C193)) { execute(TC_13_4_3_28()); } - if (f_ExecutionGuideline("TC_13_4_3_30") and f_SelectionExpr(C200)) { execute(TC_13_4_3_30()); } - if (f_ExecutionGuideline("TC_13_4_3_7") and f_SelectionExpr(C159)) { execute(TC_13_4_3_7()); } - if (f_ExecutionGuideline("TC_13_4_3_8") and f_SelectionExpr(C159)) { execute(TC_13_4_3_8()); } - if (f_ExecutionGuideline("TC_13_4_3_9") and f_SelectionExpr(C159)) { execute(TC_13_4_3_9()); } - if (f_ExecutionGuideline("TC_17_1_1") and f_SelectionExpr(C113)) { execute(TC_17_1_1()); } - if (f_ExecutionGuideline("TC_17_1_2") and f_SelectionExpr(C113)) { execute(TC_17_1_2()); } - if (f_ExecutionGuideline("TC_17_1_3") and f_SelectionExpr(C113)) { execute(TC_17_1_3()); } - if (f_ExecutionGuideline("TC_17_1_4") and f_SelectionExpr(C113)) { execute(TC_17_1_4()); } - if (f_ExecutionGuideline("TC_17_1_5") and f_SelectionExpr(C113)) { execute(TC_17_1_5()); } - if (f_ExecutionGuideline("TC_17_2_1") and f_SelectionExpr(C113)) { execute(TC_17_2_1()); } - if (f_ExecutionGuideline("TC_17_2_2") and f_SelectionExpr(C113)) { execute(TC_17_2_2()); } - if (f_ExecutionGuideline("TC_17_2_3") and f_SelectionExpr(C113)) { execute(TC_17_2_3()); } - if (f_ExecutionGuideline("TC_17_2_4") and f_SelectionExpr(C113)) { execute(TC_17_2_4()); } - if (f_ExecutionGuideline("TC_17_3_1") and f_SelectionExpr(C113)) { execute(TC_17_3_1()); } - if (f_ExecutionGuideline("TC_17_3_2") and f_SelectionExpr(C113)) { execute(TC_17_3_2()); } - if (f_ExecutionGuideline("TC_17_4_1") and f_SelectionExpr(C113a)) { execute(TC_17_4_1()); } - if (f_ExecutionGuideline("TC_17_4_10_1") and f_SelectionExpr(C113e)) { execute(TC_17_4_10_1()); } - if (f_ExecutionGuideline("TC_17_4_10_2") and f_SelectionExpr(C113f)) { execute(TC_17_4_10_2()); } - if (f_ExecutionGuideline("TC_17_4_11_1") and f_SelectionExpr(C113c)) { execute(TC_17_4_11_1()); } - if (f_ExecutionGuideline("TC_17_4_11_2") and f_SelectionExpr(C113d)) { execute(TC_17_4_11_2()); } - if (f_ExecutionGuideline("TC_17_4_1a") and f_SelectionExpr(C113a)) { execute(TC_17_4_1a()); } - if (f_ExecutionGuideline("TC_17_4_2") and f_SelectionExpr(C113a)) { execute(TC_17_4_2()); } - if (f_ExecutionGuideline("TC_17_4_2a") and f_SelectionExpr(C113a)) { execute(TC_17_4_2a()); } - if (f_ExecutionGuideline("TC_17_4_3") and f_SelectionExpr(C113b)) { execute(TC_17_4_3()); } - if (f_ExecutionGuideline("TC_17_4_3a") and f_SelectionExpr(C113b)) { execute(TC_17_4_3a()); } - if (f_ExecutionGuideline("TC_17_4_4") and f_SelectionExpr(C113a)) { execute(TC_17_4_4()); } - if (f_ExecutionGuideline("TC_17_4_5") and f_SelectionExpr(C113a)) { execute(TC_17_4_5()); } - if (f_ExecutionGuideline("TC_17_4_6") and f_SelectionExpr(C113a)) { execute(TC_17_4_6()); } - if (f_ExecutionGuideline("TC_17_4_7") and f_SelectionExpr(C113a)) { execute(TC_17_4_7()); } - if (f_ExecutionGuideline("TC_17_4_8") and f_SelectionExpr(C113a)) { execute(TC_17_4_8()); } - if (f_ExecutionGuideline("TC_17_4_9_1") and f_SelectionExpr(C113c)) { execute(TC_17_4_9_1()); } - if (f_ExecutionGuideline("TC_17_4_9_2") and f_SelectionExpr(C113c)) { execute(TC_17_4_9_2()); } - if (f_ExecutionGuideline("TC_6_1_1_7") and f_SelectionExpr(C179)) { execute(TC_6_1_1_7()); } - if (f_ExecutionGuideline("TC_6_1_1_7a") and f_SelectionExpr(C179)) { execute(TC_6_1_1_7a()); } - if (f_ExecutionGuideline("TC_6_2_4_1") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_1()); } - if (f_ExecutionGuideline("TC_6_2_4_2") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_2()); } - if (f_ExecutionGuideline("TC_6_2_4_3") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_3()); } - if (f_ExecutionGuideline("TC_6_2_4_4") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_4()); } - if (f_ExecutionGuideline("TC_6_2_4_5") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_5()); } - if (f_ExecutionGuideline("TC_6_2_4_6") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_6()); } - if (f_ExecutionGuideline("TC_6_2_4_7") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_7()); } - if (f_ExecutionGuideline("TC_7_1_2_10_1") and f_SelectionExpr(C190)) { execute(TC_7_1_2_10_1()); } - if (f_ExecutionGuideline("TC_7_1_2_10_2") and f_SelectionExpr(C191)) { execute(TC_7_1_2_10_2()); } - if (f_ExecutionGuideline("TC_7_1_2_10_3") and f_SelectionExpr(C192)) { execute(TC_7_1_2_10_3()); } - if (f_ExecutionGuideline("TC_7_1_2_11_1") and f_SelectionExpr(C190)) { execute(TC_7_1_2_11_1()); } - if (f_ExecutionGuideline("TC_7_1_2_11_2") and f_SelectionExpr(C191)) { execute(TC_7_1_2_11_2()); } - if (f_ExecutionGuideline("TC_7_1_2_11_3") and f_SelectionExpr(C192)) { execute(TC_7_1_2_11_3()); } - if (f_ExecutionGuideline("TC_7_1_3_11_1") and f_SelectionExpr(C132)) { execute(TC_7_1_3_11_1()); } - if (f_ExecutionGuideline("TC_7_1_3_11_2") and f_SelectionExpr(C151)) { execute(TC_7_1_3_11_2()); } - if (f_ExecutionGuideline("TC_7_1_3_11_3") and f_SelectionExpr(C132a)) { execute(TC_7_1_3_11_3()); } - if (f_ExecutionGuideline("TC_7_1_3_12") and f_SelectionExpr(C175)) { execute(TC_7_1_3_12()); } - if (f_ExecutionGuideline("TC_7_1_3_12a") and f_SelectionExpr(C175)) { execute(TC_7_1_3_12a()); } - if (f_ExecutionGuideline("TC_7_1_3_13") and f_SelectionExpr(C175)) { execute(TC_7_1_3_13()); } - if (f_ExecutionGuideline("TC_7_1_3_13a") and f_SelectionExpr(C175)) { execute(TC_7_1_3_13a()); } - if (f_ExecutionGuideline("TC_7_1_4_18")) { execute(TC_7_1_4_18()); } - if (f_ExecutionGuideline("TC_7_1_4_19_1") and f_SelectionExpr(C133)) { execute(TC_7_1_4_19_1()); } - if (f_ExecutionGuideline("TC_7_1_4_19_2") and f_SelectionExpr(C162)) { execute(TC_7_1_4_19_2()); } - if (f_ExecutionGuideline("TC_7_1_4_19_3") and f_SelectionExpr(C207)) { execute(TC_7_1_4_19_3()); } - if (f_ExecutionGuideline("TC_7_1_4_20_1") and f_SelectionExpr(C133)) { execute(TC_7_1_4_20_1()); } - if (f_ExecutionGuideline("TC_7_1_4_20_2") and f_SelectionExpr(C162)) { execute(TC_7_1_4_20_2()); } - if (f_ExecutionGuideline("TC_7_1_4_20_3") and f_SelectionExpr(C207)) { execute(TC_7_1_4_20_3()); } - if (f_ExecutionGuideline("TC_7_1_4_21")) { execute(TC_7_1_4_21()); } - if (f_ExecutionGuideline("TC_7_1_9_1_1") and f_SelectionExpr(C132)) { execute(TC_7_1_9_1_1()); } - if (f_ExecutionGuideline("TC_7_1_9_1_2") and f_SelectionExpr(C151)) { execute(TC_7_1_9_1_2()); } - if (f_ExecutionGuideline("TC_7_1_9_1_3") and f_SelectionExpr(C132a)) { execute(TC_7_1_9_1_3()); } - if (f_ExecutionGuideline("TC_7_3_3_5")) { execute(TC_7_3_3_5()); } - if (f_ExecutionGuideline("TC_7_3_3_6")) { execute(TC_7_3_3_6()); } - if (f_ExecutionGuideline("TC_7_3_4_3")) { execute(TC_7_3_4_3()); } - if (f_ExecutionGuideline("TC_8_1_1_7") and f_SelectionExpr(C194)) { execute(TC_8_1_1_7()); } - if (f_ExecutionGuideline("TC_8_2_2_3_1") and f_SelectionExpr(C132)) { execute(TC_8_2_2_3_1()); } - if (f_ExecutionGuideline("TC_8_2_2_3_2") and f_SelectionExpr(C151)) { execute(TC_8_2_2_3_2()); } - if (f_ExecutionGuideline("TC_8_2_2_3_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_2_3_3()); } - if (f_ExecutionGuideline("TC_8_2_2_4_1") and f_SelectionExpr(C132)) { execute(TC_8_2_2_4_1()); } - if (f_ExecutionGuideline("TC_8_2_2_4_2") and f_SelectionExpr(C151)) { execute(TC_8_2_2_4_2()); } - if (f_ExecutionGuideline("TC_8_2_2_4_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_2_4_3()); } - if (f_ExecutionGuideline("TC_8_2_2_5_1") and f_SelectionExpr(C132)) { execute(TC_8_2_2_5_1()); } - if (f_ExecutionGuideline("TC_8_2_2_5_2") and f_SelectionExpr(C151)) { execute(TC_8_2_2_5_2()); } - if (f_ExecutionGuideline("TC_8_2_2_5_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_2_5_3()); } - if (f_ExecutionGuideline("TC_8_2_2_6_1") and f_SelectionExpr(C187)) { execute(TC_8_2_2_6_1()); } - if (f_ExecutionGuideline("TC_8_2_2_6_2") and f_SelectionExpr(C187)) { execute(TC_8_2_2_6_2()); } - if (f_ExecutionGuideline("TC_8_2_2_6_3") and f_SelectionExpr(C187)) { execute(TC_8_2_2_6_3()); } - if (f_ExecutionGuideline("TC_8_2_2_7_1") and f_SelectionExpr(C190)) { execute(TC_8_2_2_7_1()); } - if (f_ExecutionGuideline("TC_8_2_2_7_2") and f_SelectionExpr(C191)) { execute(TC_8_2_2_7_2()); } - if (f_ExecutionGuideline("TC_8_2_2_7_3") and f_SelectionExpr(C192)) { execute(TC_8_2_2_7_3()); } - if (f_ExecutionGuideline("TC_8_2_2_8") and f_SelectionExpr(C154)) { execute(TC_8_2_2_8()); } - if (f_ExecutionGuideline("TC_8_2_4_16_1") and f_SelectionExpr(C176)) { execute(TC_8_2_4_16_1()); } - if (f_ExecutionGuideline("TC_8_2_4_16_2") and f_SelectionExpr(C177)) { execute(TC_8_2_4_16_2()); } - if (f_ExecutionGuideline("TC_8_2_4_16_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_16_3()); } - if (f_ExecutionGuideline("TC_8_2_4_17_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_17_1()); } - if (f_ExecutionGuideline("TC_8_2_4_17_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_17_2()); } - if (f_ExecutionGuideline("TC_8_2_4_17_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_17_3()); } - if (f_ExecutionGuideline("TC_8_2_4_18_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_18_1()); } - if (f_ExecutionGuideline("TC_8_2_4_18_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_18_2()); } - if (f_ExecutionGuideline("TC_8_2_4_18_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_18_3()); } - if (f_ExecutionGuideline("TC_8_2_4_19_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_19_1()); } - if (f_ExecutionGuideline("TC_8_2_4_19_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_19_2()); } - if (f_ExecutionGuideline("TC_8_2_4_19_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_19_3()); } - if (f_ExecutionGuideline("TC_8_2_4_20_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_20_1()); } - if (f_ExecutionGuideline("TC_8_2_4_20_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_20_2()); } - if (f_ExecutionGuideline("TC_8_2_4_20_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_20_3()); } - if (f_ExecutionGuideline("TC_8_2_4_21_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_21_1()); } - if (f_ExecutionGuideline("TC_8_2_4_21_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_21_2()); } - if (f_ExecutionGuideline("TC_8_2_4_21_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_21_3()); } - if (f_ExecutionGuideline("TC_8_2_4_23_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_23_1()); } - if (f_ExecutionGuideline("TC_8_2_4_23_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_23_2()); } - if (f_ExecutionGuideline("TC_8_2_4_23_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_23_3()); } - if (f_ExecutionGuideline("TC_8_3_1_17_1") and f_SelectionExpr(C134)) { execute(TC_8_3_1_17_1()); } - if (f_ExecutionGuideline("TC_8_3_1_17_2") and f_SelectionExpr(C152)) { execute(TC_8_3_1_17_2()); } - if (f_ExecutionGuideline("TC_8_3_1_17_3") and f_SelectionExpr(C134a)) { execute(TC_8_3_1_17_3()); } - if (f_ExecutionGuideline("TC_8_3_1_18_1") and f_SelectionExpr(C132)) { execute(TC_8_3_1_18_1()); } - if (f_ExecutionGuideline("TC_8_3_1_18_2") and f_SelectionExpr(C151)) { execute(TC_8_3_1_18_2()); } - if (f_ExecutionGuideline("TC_8_3_1_18_3") and f_SelectionExpr(C132a)) { execute(TC_8_3_1_18_3()); } - if (f_ExecutionGuideline("TC_8_3_1_19") and f_SelectionExpr(C154)) { execute(TC_8_3_1_19()); } - if (f_ExecutionGuideline("TC_8_3_1_20") and f_SelectionExpr(C154)) { execute(TC_8_3_1_20()); } - if (f_ExecutionGuideline("TC_8_3_1_21") and f_SelectionExpr(C154)) { execute(TC_8_3_1_21()); } - if (f_ExecutionGuideline("TC_8_3_1_22_1") and f_SelectionExpr(C132)) { execute(TC_8_3_1_22_1()); } - if (f_ExecutionGuideline("TC_8_3_1_22_2") and f_SelectionExpr(C151)) { execute(TC_8_3_1_22_2()); } - if (f_ExecutionGuideline("TC_8_3_1_22_3") and f_SelectionExpr(C132)) { execute(TC_8_3_1_22_3()); } - if (f_ExecutionGuideline("TC_8_3_1_28") and f_SelectionExpr(C154)) { execute(TC_8_3_1_28()); } - if (f_ExecutionGuideline("TC_8_4_2_7_1") and f_SelectionExpr(C155)) { execute(TC_8_4_2_7_1()); } - if (f_ExecutionGuideline("TC_8_4_2_7_2") and f_SelectionExpr(C155a)) { execute(TC_8_4_2_7_2()); } - if (f_ExecutionGuideline("TC_8_4_2_7_3") and f_SelectionExpr(C155b)) { execute(TC_8_4_2_7_3()); } - if (f_ExecutionGuideline("TC_8_5_1_7_1") and f_SelectionExpr(C132)) { execute(TC_8_5_1_7_1()); } - if (f_ExecutionGuideline("TC_8_5_1_7_2") and f_SelectionExpr(C151)) { execute(TC_8_5_1_7_2()); } - if (f_ExecutionGuideline("TC_8_5_1_7_3") and f_SelectionExpr(C132a)) { execute(TC_8_5_1_7_3()); } - if (f_ExecutionGuideline("TC_8_6_10_1") and f_SelectionExpr(C180)) { execute(TC_8_6_10_1()); } - if (f_ExecutionGuideline("TC_8_6_11_1") and f_SelectionExpr(C181)) { execute(TC_8_6_11_1()); } - if (f_ExecutionGuideline("TC_8_6_1_1") and f_SelectionExpr(C147)) { execute(TC_8_6_1_1()); } - if (f_ExecutionGuideline("TC_8_6_1_2") and f_SelectionExpr(C147)) { execute(TC_8_6_1_2()); } - if (f_ExecutionGuideline("TC_8_6_2_1") and f_SelectionExpr(C137)) { execute(TC_8_6_2_1()); } - if (f_ExecutionGuideline("TC_8_6_2_10") and f_SelectionExpr(C137)) { execute(TC_8_6_2_10()); } - if (f_ExecutionGuideline("TC_8_6_2_11") and f_SelectionExpr(C137)) { execute(TC_8_6_2_11()); } - if (f_ExecutionGuideline("TC_8_6_2_12") and f_SelectionExpr(C137)) { execute(TC_8_6_2_12()); } - if (f_ExecutionGuideline("TC_8_6_2_2") and f_SelectionExpr(C137)) { execute(TC_8_6_2_2()); } - if (f_ExecutionGuideline("TC_8_6_2_3") and f_SelectionExpr(C137)) { execute(TC_8_6_2_3()); } - if (f_ExecutionGuideline("TC_8_6_2_3a") and f_SelectionExpr(C137)) { execute(TC_8_6_2_3a()); } - if (f_ExecutionGuideline("TC_8_6_2_4") and f_SelectionExpr(C137)) { execute(TC_8_6_2_4()); } - if (f_ExecutionGuideline("TC_8_6_2_5") and f_SelectionExpr(C137)) { execute(TC_8_6_2_5()); } - if (f_ExecutionGuideline("TC_8_6_2_6") and f_SelectionExpr(C137)) { execute(TC_8_6_2_6()); } - if (f_ExecutionGuideline("TC_8_6_2_7") and f_SelectionExpr(C137)) { execute(TC_8_6_2_7()); } - if (f_ExecutionGuideline("TC_8_6_2_8") and f_SelectionExpr(C137)) { execute(TC_8_6_2_8()); } - if (f_ExecutionGuideline("TC_8_6_2_9") and f_SelectionExpr(C203)) { execute(TC_8_6_2_9()); } - if (f_ExecutionGuideline("TC_8_6_3_1") and f_SelectionExpr(C138)) { execute(TC_8_6_3_1()); } - if (f_ExecutionGuideline("TC_8_6_3_2") and f_SelectionExpr(C163)) { execute(TC_8_6_3_2()); } - if (f_ExecutionGuideline("TC_8_6_3_3") and f_SelectionExpr(C165)) { execute(TC_8_6_3_3()); } - if (f_ExecutionGuideline("TC_8_6_3_4") and f_SelectionExpr(C138)) { execute(TC_8_6_3_4()); } - if (f_ExecutionGuideline("TC_8_6_4_1")) { execute(TC_8_6_4_1()); } - if (f_ExecutionGuideline("TC_8_6_4_10")) { execute(TC_8_6_4_10()); } - if (f_ExecutionGuideline("TC_8_6_4_2") and f_SelectionExpr(C10)) { execute(TC_8_6_4_2()); } - if (f_ExecutionGuideline("TC_8_6_4_3")) { execute(TC_8_6_4_3()); } - if (f_ExecutionGuideline("TC_8_6_4_4") and f_SelectionExpr(C184)) { execute(TC_8_6_4_4()); } - if (f_ExecutionGuideline("TC_8_6_4_5")) { execute(TC_8_6_4_5()); } - if (f_ExecutionGuideline("TC_8_6_4_7") and f_SelectionExpr(C147)) { execute(TC_8_6_4_7()); } - if (f_ExecutionGuideline("TC_8_6_4_8")) { execute(TC_8_6_4_8()); } - if (f_ExecutionGuideline("TC_8_6_4_9")) { execute(TC_8_6_4_9()); } - if (f_ExecutionGuideline("TC_8_6_5_1") and f_SelectionExpr(C146)) { execute(TC_8_6_5_1()); } - if (f_ExecutionGuideline("TC_8_6_5_1a") and f_SelectionExpr(C205)) { execute(TC_8_6_5_1a()); } - if (f_ExecutionGuideline("TC_8_6_5_2") and f_SelectionExpr(C148)) { execute(TC_8_6_5_2()); } - if (f_ExecutionGuideline("TC_8_6_5_3") and f_SelectionExpr(C06)) { execute(TC_8_6_5_3()); } - if (f_ExecutionGuideline("TC_8_6_5_4") and f_SelectionExpr(C37)) { execute(TC_8_6_5_4()); } - if (f_ExecutionGuideline("TC_8_6_6_1")) { execute(TC_8_6_6_1()); } - if (f_ExecutionGuideline("TC_8_6_6_2") and f_SelectionExpr(C21)) { execute(TC_8_6_6_2()); } - if (f_ExecutionGuideline("TC_8_6_6_4") and f_SelectionExpr(C147)) { execute(TC_8_6_6_4()); } - if (f_ExecutionGuideline("TC_8_6_6_5")) { execute(TC_8_6_6_5()); } - if (f_ExecutionGuideline("TC_8_6_6_6") and f_SelectionExpr(C21)) { execute(TC_8_6_6_6()); } - if (f_ExecutionGuideline("TC_8_6_6_7") and f_SelectionExpr(C10)) { execute(TC_8_6_6_7()); } - if (f_ExecutionGuideline("TC_8_6_7_1") and f_SelectionExpr(C01)) { execute(TC_8_6_7_1()); } - if (f_ExecutionGuideline("TC_8_6_7_2") and f_SelectionExpr(C05)) { execute(TC_8_6_7_2()); } - if (f_ExecutionGuideline("TC_8_6_7_3") and f_SelectionExpr(C06)) { execute(TC_8_6_7_3()); } - if (f_ExecutionGuideline("TC_8_6_7_4") and f_SelectionExpr(C37)) { execute(TC_8_6_7_4()); } - if (f_ExecutionGuideline("TC_8_6_8_1")) { execute(TC_8_6_8_1()); } - if (f_ExecutionGuideline("TC_8_6_8_2") and f_SelectionExpr(C21)) { execute(TC_8_6_8_2()); } - if (f_ExecutionGuideline("TC_8_6_8_3")) { execute(TC_8_6_8_3()); } - if (f_ExecutionGuideline("TC_8_6_8_4") and f_SelectionExpr(C147)) { execute(TC_8_6_8_4()); } - if (f_ExecutionGuideline("TC_8_6_8_5")) { execute(TC_8_6_8_5()); } - if (f_ExecutionGuideline("TC_8_6_8_6")) { execute(TC_8_6_8_6()); } - if (f_ExecutionGuideline("TC_8_6_9_1") and f_SelectionExpr(C37)) { execute(TC_8_6_9_1()); } - if (f_ExecutionGuideline("TC_8_6_9_2") and f_SelectionExpr(C01)) { execute(TC_8_6_9_2()); } - if (f_ExecutionGuideline("TC_8_6_9_3") and f_SelectionExpr(C05)) { execute(TC_8_6_9_3()); } - if (f_ExecutionGuideline("TC_8_6_9_4") and f_SelectionExpr(C06)) { execute(TC_8_6_9_4()); } - if (f_ExecutionGuideline("TC_8_7_1") and f_SelectionExpr(C145)) { execute(TC_8_7_1()); } - if (f_ExecutionGuideline("TC_9_2_1_1_27") and f_SelectionExpr(C178)) { execute(TC_9_2_1_1_27()); } - if (f_ExecutionGuideline("TC_9_2_1_1_27a") and f_SelectionExpr(C194)) { execute(TC_9_2_1_1_27a()); } - if (f_ExecutionGuideline("TC_9_2_1_1_2a") and f_SelectionExpr(C173)) { execute(TC_9_2_1_1_2a()); } - if (f_ExecutionGuideline("TC_9_2_1_1_7b") and f_SelectionExpr(C04)) { execute(TC_9_2_1_1_7b()); } - if (f_ExecutionGuideline("TC_9_2_1_2_4a")) { execute(TC_9_2_1_2_4a()); } - if (f_ExecutionGuideline("TC_9_2_3_1_20a")) { execute(TC_9_2_3_1_20a()); } - if (f_ExecutionGuideline("TC_9_2_3_1_5a") and f_SelectionExpr(C174)) { execute(TC_9_2_3_1_5a()); } - if (f_ExecutionGuideline("TC_9_2_3_1_8a") and f_SelectionExpr(C195)) { execute(TC_9_2_3_1_8a()); } - if (f_ExecutionGuideline("TC_9_2_3_1_8b") and f_SelectionExpr(C197)) { execute(TC_9_2_3_1_8b()); } - if (f_ExecutionGuideline("TC_9_2_3_2_4a")) { execute(TC_9_2_3_2_4a()); } - if (f_ExecutionGuideline("TC_9_4_5")) { execute(TC_9_4_5()); } - if (f_ExecutionGuideline("TC_9_4_6")) { execute(TC_9_4_6()); } + if (f_EUTRA_ExecutionGuideline("TC_10_5_1a") and f_SelectionExpr(C204)) { execute(TC_10_5_1a()); } + if (f_EUTRA_ExecutionGuideline("TC_10_5_1b") and f_SelectionExpr(C204)) { execute(TC_10_5_1b()); } + if (f_EUTRA_ExecutionGuideline("TC_10_5_4") and f_SelectionExpr(C178)) { execute(TC_10_5_4()); } + if (f_EUTRA_ExecutionGuideline("TC_10_8_8") and f_SelectionExpr(C196)) { execute(TC_10_8_8()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_10") and f_SelectionExpr(C159)) { execute(TC_13_4_3_10()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_11") and f_SelectionExpr(C159)) { execute(TC_13_4_3_11()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_13") and f_SelectionExpr(C159)) { execute(TC_13_4_3_13()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_14") and f_SelectionExpr(C159)) { execute(TC_13_4_3_14()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_15") and f_SelectionExpr(C161)) { execute(TC_13_4_3_15()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_16") and f_SelectionExpr(C159)) { execute(TC_13_4_3_16()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_18") and f_SelectionExpr(C201)) { execute(TC_13_4_3_18()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_19") and f_SelectionExpr(C202)) { execute(TC_13_4_3_19()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_20") and f_SelectionExpr(C201)) { execute(TC_13_4_3_20()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_21") and f_SelectionExpr(C198)) { execute(TC_13_4_3_21()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_22") and f_SelectionExpr(C199)) { execute(TC_13_4_3_22()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_23") and f_SelectionExpr(C198)) { execute(TC_13_4_3_23()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_24") and f_SelectionExpr(C193)) { execute(TC_13_4_3_24()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_25") and f_SelectionExpr(C193)) { execute(TC_13_4_3_25()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_26") and f_SelectionExpr(C193)) { execute(TC_13_4_3_26()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_27") and f_SelectionExpr(C193)) { execute(TC_13_4_3_27()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_28") and f_SelectionExpr(C193)) { execute(TC_13_4_3_28()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_30") and f_SelectionExpr(C200)) { execute(TC_13_4_3_30()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_31") and f_SelectionExpr(C219)) { execute(TC_13_4_3_31()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_32") and f_SelectionExpr(C217)) { execute(TC_13_4_3_32()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_33") and f_SelectionExpr(C220)) { execute(TC_13_4_3_33()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_34") and f_SelectionExpr(C218)) { execute(TC_13_4_3_34()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_35") and f_SelectionExpr(C220)) { execute(TC_13_4_3_35()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_36") and f_SelectionExpr(C218)) { execute(TC_13_4_3_36()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_37") and f_SelectionExpr(C219)) { execute(TC_13_4_3_37()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_38") and f_SelectionExpr(C217)) { execute(TC_13_4_3_38()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_39") and f_SelectionExpr(C232)) { execute(TC_13_4_3_39()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_40") and f_SelectionExpr(C217)) { execute(TC_13_4_3_40()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_7") and f_SelectionExpr(C159)) { execute(TC_13_4_3_7()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_8") and f_SelectionExpr(C159)) { execute(TC_13_4_3_8()); } + if (f_EUTRA_ExecutionGuideline("TC_13_4_3_9") and f_SelectionExpr(C159)) { execute(TC_13_4_3_9()); } + if (f_EUTRA_ExecutionGuideline("TC_17_1_1") and f_SelectionExpr(C113)) { execute(TC_17_1_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_1_2") and f_SelectionExpr(C113)) { execute(TC_17_1_2()); } + if (f_EUTRA_ExecutionGuideline("TC_17_1_3") and f_SelectionExpr(C113)) { execute(TC_17_1_3()); } + if (f_EUTRA_ExecutionGuideline("TC_17_1_4") and f_SelectionExpr(C113)) { execute(TC_17_1_4()); } + if (f_EUTRA_ExecutionGuideline("TC_17_1_5") and f_SelectionExpr(C113)) { execute(TC_17_1_5()); } + if (f_EUTRA_ExecutionGuideline("TC_17_2_1") and f_SelectionExpr(C113)) { execute(TC_17_2_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_2_2") and f_SelectionExpr(C113)) { execute(TC_17_2_2()); } + if (f_EUTRA_ExecutionGuideline("TC_17_2_3") and f_SelectionExpr(C113)) { execute(TC_17_2_3()); } + if (f_EUTRA_ExecutionGuideline("TC_17_2_4") and f_SelectionExpr(C113)) { execute(TC_17_2_4()); } + if (f_EUTRA_ExecutionGuideline("TC_17_3_1") and f_SelectionExpr(C113)) { execute(TC_17_3_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_3_2") and f_SelectionExpr(C113)) { execute(TC_17_3_2()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_1") and f_SelectionExpr(C113a)) { execute(TC_17_4_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_10_1") and f_SelectionExpr(C113e)) { execute(TC_17_4_10_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_10_2") and f_SelectionExpr(C113f)) { execute(TC_17_4_10_2()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_11_1") and f_SelectionExpr(C113c)) { execute(TC_17_4_11_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_11_2") and f_SelectionExpr(C113d)) { execute(TC_17_4_11_2()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_1a") and f_SelectionExpr(C113a)) { execute(TC_17_4_1a()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_2") and f_SelectionExpr(C113a)) { execute(TC_17_4_2()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_2a") and f_SelectionExpr(C113a)) { execute(TC_17_4_2a()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_3") and f_SelectionExpr(C113b)) { execute(TC_17_4_3()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_3a") and f_SelectionExpr(C113b)) { execute(TC_17_4_3a()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_4") and f_SelectionExpr(C113a)) { execute(TC_17_4_4()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_5") and f_SelectionExpr(C113a)) { execute(TC_17_4_5()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_6") and f_SelectionExpr(C113a)) { execute(TC_17_4_6()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_7") and f_SelectionExpr(C113a)) { execute(TC_17_4_7()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_8") and f_SelectionExpr(C113a)) { execute(TC_17_4_8()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_9_1") and f_SelectionExpr(C113c)) { execute(TC_17_4_9_1()); } + if (f_EUTRA_ExecutionGuideline("TC_17_4_9_2") and f_SelectionExpr(C113c)) { execute(TC_17_4_9_2()); } + if (f_EUTRA_ExecutionGuideline("TC_6_1_1_7") and f_SelectionExpr(C179)) { execute(TC_6_1_1_7()); } + if (f_EUTRA_ExecutionGuideline("TC_6_1_1_7a") and f_SelectionExpr(C179)) { execute(TC_6_1_1_7a()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_3_35") and f_SelectionExpr(C189a)) { execute(TC_6_2_3_35()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_1") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_1()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_2") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_2()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_3") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_3()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_4") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_4()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_5") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_5()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_6") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_6()); } + if (f_EUTRA_ExecutionGuideline("TC_6_2_4_7") and f_SelectionExpr(C01a)) { execute(TC_6_2_4_7()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_10_1") and f_SelectionExpr(C208)) { execute(TC_7_1_10_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_10_2") and f_SelectionExpr(C208)) { execute(TC_7_1_10_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_2_10_1") and f_SelectionExpr(C190)) { execute(TC_7_1_2_10_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_2_10_2") and f_SelectionExpr(C191)) { execute(TC_7_1_2_10_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_2_10_3") and f_SelectionExpr(C192)) { execute(TC_7_1_2_10_3()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_2_11_1") and f_SelectionExpr(C190)) { execute(TC_7_1_2_11_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_2_11_2") and f_SelectionExpr(C191)) { execute(TC_7_1_2_11_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_2_11_3") and f_SelectionExpr(C192)) { execute(TC_7_1_2_11_3()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_11_1") and f_SelectionExpr(C132)) { execute(TC_7_1_3_11_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_11_2") and f_SelectionExpr(C151)) { execute(TC_7_1_3_11_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_11_3") and f_SelectionExpr(C132a)) { execute(TC_7_1_3_11_3()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_12") and f_SelectionExpr(C175)) { execute(TC_7_1_3_12()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_12a") and f_SelectionExpr(C175)) { execute(TC_7_1_3_12a()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_13") and f_SelectionExpr(C175)) { execute(TC_7_1_3_13()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_13a") and f_SelectionExpr(C175)) { execute(TC_7_1_3_13a()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_14") and f_SelectionExpr(C188)) { execute(TC_7_1_3_14()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_3_15") and f_SelectionExpr(C188)) { execute(TC_7_1_3_15()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_18")) { execute(TC_7_1_4_18()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_19_1") and f_SelectionExpr(C133)) { execute(TC_7_1_4_19_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_19_2") and f_SelectionExpr(C162)) { execute(TC_7_1_4_19_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_19_3") and f_SelectionExpr(C207)) { execute(TC_7_1_4_19_3()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_20_1") and f_SelectionExpr(C133)) { execute(TC_7_1_4_20_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_20_2") and f_SelectionExpr(C162)) { execute(TC_7_1_4_20_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_20_3") and f_SelectionExpr(C207)) { execute(TC_7_1_4_20_3()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_4_21")) { execute(TC_7_1_4_21()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_9_1_1") and f_SelectionExpr(C132)) { execute(TC_7_1_9_1_1()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_9_1_2") and f_SelectionExpr(C151)) { execute(TC_7_1_9_1_2()); } + if (f_EUTRA_ExecutionGuideline("TC_7_1_9_1_3") and f_SelectionExpr(C132a)) { execute(TC_7_1_9_1_3()); } + if (f_EUTRA_ExecutionGuideline("TC_7_3_3_5") and f_SelectionExpr(C215)) { execute(TC_7_3_3_5()); } + if (f_EUTRA_ExecutionGuideline("TC_7_3_3_6") and f_SelectionExpr(C215)) { execute(TC_7_3_3_6()); } + if (f_EUTRA_ExecutionGuideline("TC_7_3_4_3") and f_SelectionExpr(C215)) { execute(TC_7_3_4_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_1_1_7") and f_SelectionExpr(C194)) { execute(TC_8_1_1_7()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_3_1") and f_SelectionExpr(C132)) { execute(TC_8_2_2_3_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_3_2") and f_SelectionExpr(C151)) { execute(TC_8_2_2_3_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_3_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_2_3_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_4_1") and f_SelectionExpr(C132)) { execute(TC_8_2_2_4_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_4_2") and f_SelectionExpr(C151)) { execute(TC_8_2_2_4_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_4_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_2_4_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_5_1") and f_SelectionExpr(C132)) { execute(TC_8_2_2_5_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_5_2") and f_SelectionExpr(C151)) { execute(TC_8_2_2_5_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_5_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_2_5_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_6_1") and f_SelectionExpr(C187)) { execute(TC_8_2_2_6_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_6_2") and f_SelectionExpr(C187)) { execute(TC_8_2_2_6_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_6_3") and f_SelectionExpr(C187)) { execute(TC_8_2_2_6_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_7_1") and f_SelectionExpr(C190)) { execute(TC_8_2_2_7_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_7_2") and f_SelectionExpr(C191)) { execute(TC_8_2_2_7_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_7_3") and f_SelectionExpr(C192)) { execute(TC_8_2_2_7_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_2_8") and f_SelectionExpr(C154)) { execute(TC_8_2_2_8()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_16_1") and f_SelectionExpr(C176)) { execute(TC_8_2_4_16_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_16_2") and f_SelectionExpr(C177)) { execute(TC_8_2_4_16_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_16_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_16_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_17_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_17_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_17_2") and f_SelectionExpr(CAAA_R5153985)) { execute(TC_8_2_4_17_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_17_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_17_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_18_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_18_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_18_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_18_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_18_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_18_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_19_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_19_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_19_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_19_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_19_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_19_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_20_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_20_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_20_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_20_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_20_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_20_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_21_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_21_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_21_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_21_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_21_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_21_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_23_1") and f_SelectionExpr(C132)) { execute(TC_8_2_4_23_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_23_2") and f_SelectionExpr(C151)) { execute(TC_8_2_4_23_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_2_4_23_3") and f_SelectionExpr(C132a)) { execute(TC_8_2_4_23_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_17_1") and f_SelectionExpr(C134)) { execute(TC_8_3_1_17_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_17_2") and f_SelectionExpr(C152)) { execute(TC_8_3_1_17_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_17_3") and f_SelectionExpr(C134a)) { execute(TC_8_3_1_17_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_18_1") and f_SelectionExpr(C132)) { execute(TC_8_3_1_18_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_18_2") and f_SelectionExpr(C151)) { execute(TC_8_3_1_18_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_18_3") and f_SelectionExpr(C132a)) { execute(TC_8_3_1_18_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_19") and f_SelectionExpr(C154)) { execute(TC_8_3_1_19()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_21") and f_SelectionExpr(C154)) { execute(TC_8_3_1_21()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_22_1") and f_SelectionExpr(C132)) { execute(TC_8_3_1_22_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_22_2") and f_SelectionExpr(C151)) { execute(TC_8_3_1_22_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_22_3") and f_SelectionExpr(C132)) { execute(TC_8_3_1_22_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_3_1_28") and f_SelectionExpr(C154)) { execute(TC_8_3_1_28()); } + if (f_EUTRA_ExecutionGuideline("TC_8_4_2_7_1") and f_SelectionExpr(C155)) { execute(TC_8_4_2_7_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_4_2_7_2") and f_SelectionExpr(C155a)) { execute(TC_8_4_2_7_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_4_2_7_3") and f_SelectionExpr(C155b)) { execute(TC_8_4_2_7_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_5_1_7_1") and f_SelectionExpr(C132)) { execute(TC_8_5_1_7_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_5_1_7_2") and f_SelectionExpr(C151)) { execute(TC_8_5_1_7_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_5_1_7_3") and f_SelectionExpr(C132a)) { execute(TC_8_5_1_7_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_5_4_2") and f_SelectionExpr(C221)) { execute(TC_8_5_4_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_5_4_3") and f_SelectionExpr(C222)) { execute(TC_8_5_4_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_10_1") and f_SelectionExpr(C180)) { execute(TC_8_6_10_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_11_1") and f_SelectionExpr(C181)) { execute(TC_8_6_11_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_1_1") and f_SelectionExpr(C147)) { execute(TC_8_6_1_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_1_2") and f_SelectionExpr(C147)) { execute(TC_8_6_1_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_1") and f_SelectionExpr(C137)) { execute(TC_8_6_2_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_10") and f_SelectionExpr(C137)) { execute(TC_8_6_2_10()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_11") and f_SelectionExpr(C137)) { execute(TC_8_6_2_11()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_12") and f_SelectionExpr(C137)) { execute(TC_8_6_2_12()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_2") and f_SelectionExpr(C137)) { execute(TC_8_6_2_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_3") and f_SelectionExpr(C137)) { execute(TC_8_6_2_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_3a") and f_SelectionExpr(C137)) { execute(TC_8_6_2_3a()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_4") and f_SelectionExpr(C137)) { execute(TC_8_6_2_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_5") and f_SelectionExpr(C137)) { execute(TC_8_6_2_5()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_6") and f_SelectionExpr(C137)) { execute(TC_8_6_2_6()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_7") and f_SelectionExpr(C137)) { execute(TC_8_6_2_7()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_8") and f_SelectionExpr(C137)) { execute(TC_8_6_2_8()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_2_9") and f_SelectionExpr(C203)) { execute(TC_8_6_2_9()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_3_1") and f_SelectionExpr(C138)) { execute(TC_8_6_3_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_3_2") and f_SelectionExpr(C163)) { execute(TC_8_6_3_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_3_3") and f_SelectionExpr(C165)) { execute(TC_8_6_3_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_3_4") and f_SelectionExpr(C138)) { execute(TC_8_6_3_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_1")) { execute(TC_8_6_4_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_10")) { execute(TC_8_6_4_10()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_2") and f_SelectionExpr(C10)) { execute(TC_8_6_4_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_3")) { execute(TC_8_6_4_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_4") and f_SelectionExpr(C184)) { execute(TC_8_6_4_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_5")) { execute(TC_8_6_4_5()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_7") and f_SelectionExpr(C147)) { execute(TC_8_6_4_7()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_8")) { execute(TC_8_6_4_8()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_4_9")) { execute(TC_8_6_4_9()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_5_1") and f_SelectionExpr(C146)) { execute(TC_8_6_5_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_5_1a") and f_SelectionExpr(C205)) { execute(TC_8_6_5_1a()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_5_2") and f_SelectionExpr(C148)) { execute(TC_8_6_5_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_5_3") and f_SelectionExpr(C06)) { execute(TC_8_6_5_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_5_4") and f_SelectionExpr(C37)) { execute(TC_8_6_5_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_6_1")) { execute(TC_8_6_6_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_6_2") and f_SelectionExpr(C21)) { execute(TC_8_6_6_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_6_4") and f_SelectionExpr(C147)) { execute(TC_8_6_6_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_6_5")) { execute(TC_8_6_6_5()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_6_6") and f_SelectionExpr(C21)) { execute(TC_8_6_6_6()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_6_7") and f_SelectionExpr(C10)) { execute(TC_8_6_6_7()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_7_1") and f_SelectionExpr(C01)) { execute(TC_8_6_7_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_7_2") and f_SelectionExpr(C90)) { execute(TC_8_6_7_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_7_3") and f_SelectionExpr(C06)) { execute(TC_8_6_7_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_7_4") and f_SelectionExpr(C37)) { execute(TC_8_6_7_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_8_1")) { execute(TC_8_6_8_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_8_2") and f_SelectionExpr(C21)) { execute(TC_8_6_8_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_8_3")) { execute(TC_8_6_8_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_8_4") and f_SelectionExpr(C147)) { execute(TC_8_6_8_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_8_5")) { execute(TC_8_6_8_5()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_8_6")) { execute(TC_8_6_8_6()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_9_1") and f_SelectionExpr(C37)) { execute(TC_8_6_9_1()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_9_2") and f_SelectionExpr(C01)) { execute(TC_8_6_9_2()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_9_3") and f_SelectionExpr(C05)) { execute(TC_8_6_9_3()); } + if (f_EUTRA_ExecutionGuideline("TC_8_6_9_4") and f_SelectionExpr(C06)) { execute(TC_8_6_9_4()); } + if (f_EUTRA_ExecutionGuideline("TC_8_7_1") and f_SelectionExpr(C145)) { execute(TC_8_7_1()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_1_1_27") and f_SelectionExpr(C178)) { execute(TC_9_2_1_1_27()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_1_1_27a") and f_SelectionExpr(C194)) { execute(TC_9_2_1_1_27a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_1_1_2a") and f_SelectionExpr(C173)) { execute(TC_9_2_1_1_2a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_1_1_7b") and f_SelectionExpr(C04)) { execute(TC_9_2_1_1_7b()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_1_2_4a") and f_SelectionExpr(C02)) { execute(TC_9_2_1_2_4a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_3_1_20a")) { execute(TC_9_2_3_1_20a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_3_1_5a") and f_SelectionExpr(C174)) { execute(TC_9_2_3_1_5a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_3_1_8a") and f_SelectionExpr(C195)) { execute(TC_9_2_3_1_8a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_3_1_8b") and f_SelectionExpr(C197)) { execute(TC_9_2_3_1_8b()); } + if (f_EUTRA_ExecutionGuideline("TC_9_2_3_2_4a") and f_SelectionExpr(C02)) { execute(TC_9_2_3_2_4a()); } + if (f_EUTRA_ExecutionGuideline("TC_9_4_5") and f_SelectionExpr(C215)) { execute(TC_9_4_5()); } + if (f_EUTRA_ExecutionGuideline("TC_9_4_6") and f_SelectionExpr(C215)) { execute(TC_9_4_6()); } } } diff --git a/LTE_A_IWD_14wk37/PicsPixit/CDMA2000_Parameters.ttcn b/LTE_A_IWD_15wk38/PicsPixit/CDMA2000_Parameters.ttcn similarity index 95% rename from LTE_A_IWD_14wk37/PicsPixit/CDMA2000_Parameters.ttcn rename to LTE_A_IWD_15wk38/PicsPixit/CDMA2000_Parameters.ttcn index ec01241..bd3ebde 100644 --- a/LTE_A_IWD_14wk37/PicsPixit/CDMA2000_Parameters.ttcn +++ b/LTE_A_IWD_15wk38/PicsPixit/CDMA2000_Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module CDMA2000_Parameters { diff --git a/LTE_A_IWD_14wk37/PicsPixit/EUTRA_Parameters.ttcn b/LTE_A_IWD_15wk38/PicsPixit/EUTRA_Parameters.ttcn similarity index 77% rename from LTE_A_IWD_14wk37/PicsPixit/EUTRA_Parameters.ttcn rename to LTE_A_IWD_15wk38/PicsPixit/EUTRA_Parameters.ttcn index 38d3f74..65f8ebf 100644 --- a/LTE_A_IWD_14wk37/PicsPixit/EUTRA_Parameters.ttcn +++ b/LTE_A_IWD_15wk38/PicsPixit/EUTRA_Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module EUTRA_Parameters { @@ -34,7 +30,7 @@ module EUTRA_Parameters { modulepar FreqBandIndicator px_OverlappingNotSupportedFrequencyBand_MFBI := 27; // @desc a not supported E-UTRA frequency band that is overlapping with a supported MFBI band - modulepar CipheringAlgorithm_Type px_RRC_CipheringAlgorithm := eea1; // @desc Ciphering Algorithm + modulepar CipheringAlgorithm_r12 px_RRC_CipheringAlgorithm := eea1; // @desc Ciphering Algorithm modulepar IntegrityProtAlgorithm_Type px_RRC_IntegrityProtAlgorithm := eia1; // @desc Integrity Algorithm @@ -55,20 +51,41 @@ module EUTRA_Parameters { //**************************************************************************** // PICS Parameters //---------------------------------------------------------------------------- + modulepar boolean pc_DL_CA_2Carriers := false; // @desc DL CA with 2 carriers + // Reference: 36.523-2 A.4.3.3-1/1 + + modulepar boolean pc_DL_CA_3Carriers := false; // @desc DL CA with 3 carriers + // Reference: 36.523-2 A.4.3.3-1/2 + + modulepar boolean pc_FDD_TypeB_HalfDuplex := false; // @desc Support of Type B Half duplex FDD operation + // Reference: 36.523-2 A.4.4.1/103 + + modulepar boolean pc_More_Than_128_CAbandComb := false; // @desc Support of more than 128 CA Band Combinations + // Reference: 36.523-2 A.4.4.1/102 + modulepar boolean pc_PPI_Support := false; // @desc Support of Power Preference Indication - // Reference: 36.523-2 A.4.4.1-86 + // Reference: 36.523-2 A.4.4.1/86 modulepar boolean pc_T3412Extended := false; // @desc Support of T3412 extended value IE - // Reference: 36.523-2 A.4.4.1-yyy + // Reference: 36.523-2 A.4.4.1/81 modulepar boolean pc_TDD_SpecialSubframe := false; // @desc Support of TDD special subframe - // Reference: 36.523-2 A.4.4.1-82 + // Reference: 36.523-2 A.4.4.1A/2 - modulepar boolean pc_UL_CoordinatedMultiPointOperation := false; // @desc Support of UL co-ordinated multi-point operation - // Reference: 36.523-2 A.4.4-1A/xx + modulepar boolean pc_UL_CA_2Carriers := false; // @desc UL CA with 2 carriers + // Reference: 36.523-2 A.4.3.3-2/1 + + modulepar boolean pc_UL_CA_3Carriers := false; // @desc UL CA with 3 carriers + // Reference: 36.523-2 A.4.3.3-2/2 + + modulepar boolean pc_UL_CoMP := false; // @desc Support of UL co-ordinated multi-point operation + // Reference: 36.523-2 A.4.4-1A/1 + + modulepar boolean pc_ZUC := false; // @desc Support of ZUC algorithm + // Reference: 36.523-2 A.4.4.1/99 modulepar boolean pc_eAttachWithIMSI := false; // @desc Support of Attach With IMSI - // Reference: 36.523-2 A.4.4.1-xxx + // Reference: 36.523-2 A.4.4.1/80 modulepar boolean pc_eBand10_Supp := false; // @desc Support of Band 10 // Reference: 36.523-2 A.4.3.1-1/10 @@ -136,6 +153,9 @@ module EUTRA_Parameters { modulepar boolean pc_eBand31_Supp := false; // @desc Support of Band 31 // Reference: 36.523-2 A.4.3.1-1/31 + modulepar boolean pc_eBand32_Supp := false; // @desc Support of Band 32 + // Reference: 36.523-2 A.4.3.1-1/32 + modulepar boolean pc_eBand33_Supp := false; // @desc Support of Band 33 // Reference: 36.523-2 A.4.3.1-2/1 @@ -193,11 +213,26 @@ module EUTRA_Parameters { modulepar boolean pc_eBand9_Supp := false; // @desc Support of Band 9 // Reference: 36.523-2 A.4.3.1-1/9 + modulepar boolean pc_eHARQ_Pattern_for_TTI_bundling := false; // @desc Support of enhanced HARQ pattern for TTI bundling operation for FDD + // Reference: 36.523-2 A.4.4.1/107 + modulepar boolean pc_eLAP := false; // @desc Support of Low Access Priority Indication - // Reference: 36.523-2 A.4.4.1-x1 + // Reference: 36.523-2 A.4.4.1/83 modulepar boolean pc_eMinimumPeriodicSearchTimer := false; // @desc Support of Minimum Periodic Search Timer - // Reference: 36.523-2 A.4.4.1-x2 + // Reference: 36.523-2 A.4.4.1/84 + + modulepar boolean pc_ePDCCH := false; // @desc Support of ePDCCH + // Reference: 36.523-2 A.4.4.1/87 + + modulepar boolean pc_reqFreqBands := false; // @desc Support of reception of requested Frequency Bands + // Reference: 36.523-2 A.4.4.1/zz1 + + modulepar boolean pc_tdd_FDD_CA_FDD_PCell := false; // @desc Support of tdd-FDD-CA-PCellDuplex-r12 with the second bit setting to 1 + // Reference: 36.523-2 A.4.4.1/1xy + + modulepar boolean pc_tdd_FDD_CA_TDD_PCell := false; // @desc Support of tdd-FDD-CA-PCellDuplex-r12 with the first bit setting to 1 + // Reference: 36.523-2 A.4.4.1/1xx } diff --git a/LTE_A_IWD_14wk37/PicsPixit/GERAN_Parameters.ttcn b/LTE_A_IWD_15wk38/PicsPixit/GERAN_Parameters.ttcn similarity index 90% rename from LTE_A_IWD_14wk37/PicsPixit/GERAN_Parameters.ttcn rename to LTE_A_IWD_15wk38/PicsPixit/GERAN_Parameters.ttcn index c7df93b..d3ea341 100644 --- a/LTE_A_IWD_14wk37/PicsPixit/GERAN_Parameters.ttcn +++ b/LTE_A_IWD_15wk38/PicsPixit/GERAN_Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module GERAN_Parameters { @@ -39,9 +35,6 @@ module GERAN_Parameters { modulepar B1_Type px_GSM_CipheringOnOff := '1'B; // @desc GSM Ciphering to be started or not // Reference to other Spec: 51.010-5, Table B.1 - modulepar B5_Type px_MS_TXPWR_MAX_CCH := '01010'B; // @desc MS_TXPWR_MAX_CCH - // Reference to other Spec: 51.010-5, Table B.1 - modulepar B5_Type px_PowerLevel; // @desc power level value for L1 header // Reference to other Spec: 51.010-5, Table B.1 @@ -61,6 +54,9 @@ module GERAN_Parameters { //**************************************************************************** // PICS Parameters //---------------------------------------------------------------------------- + modulepar boolean pc_Dynamic_GERAN_Rel_downgrade := false; // @desc Dynamically downgrades the GERAN release when the support of EPS is disabled + // Reference: 36.523-2, A.4.4-2/XYZ + modulepar boolean pc_GPRS := false; // @desc Support of GPRS // Reference: 51.010-2, A.2/41 diff --git a/IMS_PART4_IWD_14wk37/PicsPixit/IMS_CommonParameters.ttcn b/LTE_A_IWD_15wk38/PicsPixit/IMS_CommonParameters.ttcn similarity index 74% rename from IMS_PART4_IWD_14wk37/PicsPixit/IMS_CommonParameters.ttcn rename to LTE_A_IWD_15wk38/PicsPixit/IMS_CommonParameters.ttcn index fee818a..9fc4bdd 100644 --- a/IMS_PART4_IWD_14wk37/PicsPixit/IMS_CommonParameters.ttcn +++ b/LTE_A_IWD_15wk38/PicsPixit/IMS_CommonParameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module IMS_CommonParameters { @@ -38,7 +34,7 @@ module IMS_CommonParameters { // Supported values: // des_ede3_cbc, // aes_cbc, - // nociph + // nociph // Reference to other Spec: 34.229-3 modulepar charstring px_IMS_HomeDomainName := "3gpp.org"; // @desc Home Domain Name. @@ -48,13 +44,13 @@ module IMS_CommonParameters { modulepar IPsec_IntegrityAlgorithm_Type px_IMS_IPSecAlgorithm := hmac_sha_1_96; // @desc Integrity Algorithm // Supported values: - // hmac_md5_96, + // hmac_md5_96, // hmac_sha_1_96 // Reference to other Spec: 34.229-3 modulepar charstring px_IMS_Private_UserId := "privateuser@3gpp.org"; // @desc Private User Identity.When usingan ISIM this is set to the same value as EFIMPI.When ISIM is not used just USIM the private user identity is derived from px_IMSI. - // + // // Reference to other Spec: 34.229-3 modulepar charstring px_IMS_PublicUserIdentity1 := "sip:PublicId1@3gpp.org"; @@ -80,23 +76,47 @@ module IMS_CommonParameters { //**************************************************************************** // PICS Parameters //---------------------------------------------------------------------------- + modulepar boolean pc_IMS_Deregistration := false; // @desc UE has the method that supports IMS deregistration + // Reference: 34.229-2 Table A.12/39 + modulepar boolean pc_IMS_GIBA_Sec := false; // @desc UE supports GIBA security only // Reference: 34.229-2 Table A.6a/1 modulepar boolean pc_IMS_GRUUsInSIP := false; // @desc UE supports obtaining and using GRUUs in the Session Initiation Protocol (SIP) // Reference: 34.229-2 Table A.4/53 - modulepar boolean pc_IMS_Geolocation := false; // @desc UE uses Geolocation header to provide its geographical location for emergency session setup + modulepar boolean pc_IMS_Geolocation := false; // @desc UE is capable of obtaining location information // Reference: 34.229-2 Table A.12/27 - modulepar boolean pc_IMS_RtcpDuringVoiceSession := false; // @desc RTCP used during voice session - // Reference: 34.229 ??? + modulepar boolean pc_IMS_RtcpDuringVoiceSession := false; // @desc RTCP used during voice session. This is mutually exclusive to pc_SendRTCPOnlyOnHold + // Reference: 34.229-2 Table A.12/35 modulepar boolean pc_IMS_Sec := false; // @desc UE supports full IMS security // Reference: 34.229-2 Table A.6a/2 + modulepar boolean pc_IMS_SessionIdSupported := false; // @desc UE supports session id + // Reference: 34.229-2 Table A.12/30 + + modulepar boolean pc_IMS_Video_FeatureTag := false; // @desc UE indicates video media feature tag in REGISTER and INVITE request + // Reference: 34.229-2 Table A.12/32 + + modulepar boolean pc_InitiateSession := false; // @desc Initiating a session + // Reference: 34.229-2 Table A.4/2B + + modulepar boolean pc_MTSI_Speech := false; // @desc MTSI media - Speech + // Reference: 34.229-2 Table A.15/1 + + modulepar boolean pc_MTSI_Video := false; // @desc MTSI media - Video + // Reference: 34.229-2 Table A.15/3 + modulepar boolean pc_MultimediaTelephonyService := false; // @desc Multimedia telephony service participant // Reference: 34.229-2 Table A.3A/50 + modulepar boolean pc_SMS_MT := false; // @desc UE supports SM-over-IP receiver + // Reference: 34.229-2 Table A.3A/62 + + modulepar boolean pc_SendRTCPOnlyOnHold := true; // @desc UE supports sending RTCP only while call is put on hold. This is mutually exclusive to pc_IMS_RtcpDuringVoiceSession + // Reference: 34.229-2 Table A.12/23 + } diff --git a/IMS_PART4_IWD_14wk37/PicsPixit/Parameters.ttcn b/LTE_A_IWD_15wk38/PicsPixit/Parameters.ttcn similarity index 82% rename from IMS_PART4_IWD_14wk37/PicsPixit/Parameters.ttcn rename to LTE_A_IWD_15wk38/PicsPixit/Parameters.ttcn index 3a448df..f0dea88 100644 --- a/IMS_PART4_IWD_14wk37/PicsPixit/Parameters.ttcn +++ b/LTE_A_IWD_15wk38/PicsPixit/Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-09-15 10:30:10 +0200 (Tue, 15 Sep 2015) $ +// $Rev: 14364 $ /******************************************************************************/ module Parameters { @@ -57,7 +53,7 @@ module Parameters { // @desc Default IMSI // Reference to other Spec: 34.123-3, Table B.1 - modulepar integer px_IP_MTU_Size := 65535; // @desc MTU size + modulepar integer px_IP_MTU_Size := 65535; // @desc MTU size. This value is specific to the SS. modulepar charstring px_IPv4_Address1_NW; // @desc IPv4 Gateway Address in PDN1 @@ -71,6 +67,8 @@ module Parameters { modulepar charstring px_IPv4_Address2_UE; // @desc IPv4 Address connected to PDN2 + modulepar charstring px_IPv4_Address2a_UE; // @desc IPv4 Address connected to PDN2a + modulepar charstring px_IPv4_Address_HomeAgent; // @desc IPv4 Home Address Agent modulepar charstring px_IPv6_Address1_NW; // @desc IPv6 Gateway Address in PDN1 @@ -85,14 +83,21 @@ module Parameters { modulepar charstring px_IPv6_Address2_UE; // @desc IPv6 Address in PDN2 + modulepar charstring px_IPv6_Address2a_UE; // @desc IPv6 Address in PDN2a + modulepar charstring px_IPv6_Address_HomeAgent; // @desc IPv6 Home Address Agent + modulepar integer px_MFBI_UTRAN_FrequencyBand; // @desc A supported UTRAN MFBI frequency band. + // Reference to other Spec: 34.123-3, Table B.1.20 + modulepar octetstring px_PTMSI_Def := 'C2345678'O; // @desc Default PTMSI // Reference to other Spec: 34.123-3, Table B.1 modulepar octetstring px_PTMSI_SigDef := 'AB1234'O; // @desc Default PTMSI signature (3 octets, 3GPP 24.008 / 10.5.5.8). // Reference to other Spec: 34.123-3, Table B.1 + modulepar bitstring px_PWS_CB_DataCodingScheme; // @desc CMAS or ETWS data coding scheme of the alphabet/codingand the applied language (see TS 23.401) + modulepar charstring px_PWS_CB_DataPage1; // @desc ETWS or CMAS Page 1 warning data message modulepar charstring px_PWS_CB_DataPage2; // @desc ETWS or CMAS Page 2 warning data message @@ -109,7 +114,7 @@ module Parameters { modulepar integer px_SMS_IndexOffset := 0; // @desc Memory location index at UE for SMS storage, used in +CMSS command // Reference to other Spec: 34.123-3, Table B.1.2 - modulepar charstring px_SMS_MsgFrmt := "1"; // @desc Either PDU (0) mode or Text mode (1) @sic R5s110750 sic@ + modulepar charstring px_SMS_MsgFrmt := "1"; // @desc SMS message format (see TS 27.005 cl.3.2.). NOTE: Default value is for text mode. Change value to 0 to execute tests with PDU mode modulepar charstring px_SMS_PrefMem1 := "SM"; // @desc SMS Preferred Memory 1 of TS 27.005 [31], clause 3.2.2 // Reference to other Spec: 34.123-3, Table B.1.2 @@ -141,6 +146,9 @@ module Parameters { modulepar UTRAN_FDD_TDD_Type px_UTRAN_ModeUnderTest := UTRAN_FDD; // @desc specifies which radio access technology is being tested in UTRAN // Supported values: UTRAN_FDD, UTRAN_TDD + modulepar integer px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI; + // @desc A not supported UTRAN frequency band that is overlapping with a supported MFBI band (px_MFBI_UTRAN_FrequencyBand). This pixit shall be set also in accordance with the values of the 3 Pixits: px_UARFCN_D_High, px_UARFCN_D_Mid,px_UARFCN_L_Mid. + modulepar B128_Type px_eAuthRAND := oct2bit('A3DE0C6D363E30C364A4078F1BF8D577'O); // @desc Random Challenge @@ -156,6 +164,9 @@ module Parameters { modulepar boolean pc_1xRTT := false; // @desc UE supports CDMA2000 1xRTT band class // Reference: 36.523-2, A.4.1-1/4 + modulepar boolean pc_A5_4_CS := false; // @desc Support of A5/4 + // Reference: 51.010-2, A.2/87 + modulepar boolean pc_Allowed_CSG_list := false; // @desc Support of Allowed CSG list // Reference: 36.523-2 A.4.4-1/2 @@ -172,7 +183,7 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/27 modulepar boolean pc_Available_PLMNs_AcT_Ind := false; // @desc Support of AccessTechnology indication in available PLMNs list - // Reference: 36.523-2 A.4.4.1-x + // Reference: 36.523-2 A.4.4-1/78 modulepar boolean pc_BSRVCC := false; // @desc UE indicates g.3gpp.ps2cs-srvcc-orig-pre-alerting media feature tag in INVITE request // Reference: 34.229-2 A.12/36 @@ -210,8 +221,7 @@ module Parameters { modulepar boolean pc_DL_IntraBand_ContCaBWclassC := false; // @desc DL Intra-band contiguous CA BW class C // Reference: 36.523-2 A.4.3.3.1-1/2 - modulepar boolean pc_DL_interBand_CaBwClassComb_AA - := false; // @desc DL Inter-band contiguous CA BW class A-A + modulepar boolean pc_DL_interBand_CaBwClassComb_AA := false; // @desc DL Inter-band contiguous CA BW class A-A // Reference: 36.523-2 A.4.3.3.3-1/1 modulepar boolean pc_DL_intraBand_nonContCaBwClassComb_AA := false; @@ -222,13 +232,13 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/6 modulepar boolean pc_DaylightSavingTime := false; // @desc UE stores/updates the daylight saving time when receives information - // Reference: 36.523-2 A.4.4-1/xx + // Reference: 36.523-2 A.4.4-1/93 modulepar boolean pc_DualRM_Coding := false; // @desc Dual RM Coding // Reference: 36.523/2 ???? modulepar boolean pc_EAB := false; // @desc Support of Extended Access Barring - // Reference: 36.523-2 A.4.4-1/89 + // Reference: 36.523-2 A.4.4-1A/4 modulepar boolean pc_EAB_override := false; // @desc Support of Extended Access Barring Override // Reference: 36.523-2 A.4.4-1/91 @@ -260,93 +270,63 @@ module Parameters { modulepar boolean pc_E_UTRAN_2_GERAN_PSHO := false; // @desc Support for inter-RAT PS handover from E_UTRAN to GERAN // Reference: 36.523-2 A.4.4-1/52 + modulepar boolean pc_EmergSpeech := false; // @desc Emergency Call + // Reference: 34.123-2 A.2/2 + modulepar boolean pc_Enhanced_1xCSfallback := false; // @desc Support of Enhanced 1xCS fallback - // Reference: 36.523-2, A.4.2.1.1-1/x + // Reference: 36.523-2, A.4.2.1.1-1/6 - modulepar boolean pc_FDD := false; // @desc UE supports UTRA band as defined in TS 25.101 + modulepar boolean pc_FDD := false; // @desc UE supports UTRA band as defined in TS 25.101 // Reference: 34.123-2 A.1/1 - modulepar boolean pc_FeatrGrp_1 := false; // @desc Support of Intra-subframe frequency hopping for PUSCH scheduled by UL grant, Extended cyclic prefix with f = 7.5kHz for DL resource block, DCI format 3a (TPC commands for PUCCH and PUSCH with single bit power adjustments), Multi-user MIMO for PDSCH, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0 - UE selected subband CQI without PMI, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2 - UE selected subband CQI with multiple PMI - // Reference: 36.523-2 A.4.5-1/1 - - modulepar boolean pc_FeatrGrp_10 := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change) - // Reference: 36.523-2 A.4.5-1/10 - - modulepar boolean pc_FeatrGrp_101 := false; // @desc DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - // Reference: 36.523-2 A.4.5-3/1 - modulepar boolean pc_FeatrGrp_101_F := false; // @desc DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling // Reference: 36.523-2 A.4.5-3a/1 modulepar boolean pc_FeatrGrp_101_T := false; // @desc DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling // Reference: 36.523-2 A.4.5-3b/1 - modulepar boolean pc_FeatrGrp_102 := false; // @desc Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - // Reference: 36.523-2 A.4.5-3/2 - modulepar boolean pc_FeatrGrp_102_F := false; // @desc Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) // Reference: 36.523-2 A.4.5-3a/2 modulepar boolean pc_FeatrGrp_102_T := false; // @desc Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) // Reference: 36.523-2 A.4.5-3b/2 - modulepar boolean pc_FeatrGrp_103 := false; // @desc PDSCH transmission mode 9 when up to 4 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/3 - modulepar boolean pc_FeatrGrp_103_F := false; // @desc PDSCH transmission mode 9 when up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/3 modulepar boolean pc_FeatrGrp_103_T := false; // @desc PDSCH transmission mode 9 when up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/3 - modulepar boolean pc_FeatrGrp_104 := false; // @desc PDSCH transmission mode 9 for TDD when 8 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/4 - modulepar boolean pc_FeatrGrp_104_F := false; // @desc PDSCH transmission mode 9 for TDD when 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/4 modulepar boolean pc_FeatrGrp_104_T := false; // @desc PDSCH transmission mode 9 for TDD when 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/4 - modulepar boolean pc_FeatrGrp_105 := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-0:UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured.Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1:UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/5 - modulepar boolean pc_FeatrGrp_105_F := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-0:UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured.Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1:UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/5 modulepar boolean pc_FeatrGrp_105_T := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-0:UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured.Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1:UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/5 - modulepar boolean pc_FeatrGrp_106 := false; // @desc Periodic CQI/PMI/RI/PTI reporting on PUCCH: Mode 2-1: UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/6 - modulepar boolean pc_FeatrGrp_106_F := false; // @desc Periodic CQI/PMI/RI/PTI reporting on PUCCH: Mode 2-1: UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/6 modulepar boolean pc_FeatrGrp_106_T := false; // @desc Periodic CQI/PMI/RI/PTI reporting on PUCCH: Mode 2-1: UE selected subband CQI with single PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/6 - modulepar boolean pc_FeatrGrp_107 := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0: UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured. Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/7 - modulepar boolean pc_FeatrGrp_107_F := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0: UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured. Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/7 modulepar boolean pc_FeatrGrp_107_T := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0: UE selected subband CQI without PMI, when PDSCH transmission mode 9 is configured. Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and up to 4 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/7 - modulepar boolean pc_FeatrGrp_108 := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured - // Reference: 36.523-2 A.4.5-3/8 - modulepar boolean pc_FeatrGrp_108_F := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3a/8 modulepar boolean pc_FeatrGrp_108_T := false; // @desc Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2: UE selected subband CQI with multiple PMI, when PDSCH transmission mode 9 and 8 CSI reference signal ports are configured // Reference: 36.523-2 A.4.5-3b/8 - modulepar boolean pc_FeatrGrp_109 := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 1 - // Reference: 36.523-2 A.4.5-3/9 - modulepar boolean pc_FeatrGrp_109_F := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 1 // Reference: 36.523-2 A.4.5-3a/9 @@ -359,66 +339,42 @@ module Parameters { modulepar boolean pc_FeatrGrp_10_T := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order, EUTRA RRC_CONNECTED to GERAN (Packet_)Idle by Cell Change Order with NACC (Network Assisted Cell Change) // Reference: 36.523-2 A.4.5-1b/10 - modulepar boolean pc_FeatrGrp_11 := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover - // Reference: 36.523-2 A.4.5-1/11 - - modulepar boolean pc_FeatrGrp_110 := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 2 - // Reference: 36.523-2 A.4.5-3/10 - modulepar boolean pc_FeatrGrp_110_F := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 2 // Reference: 36.523-2 A.4.5-3a/10 modulepar boolean pc_FeatrGrp_110_T := false; // @desc Periodic CQI/PMI/RI reporting on PUCCH Mode 1-1, submode 2 // Reference: 36.523-2 A.4.5-3b/10 - modulepar boolean pc_FeatrGrp_111 := false; // @desc Measurement reporting trigger Event A6 - // Reference: 36.523-2 A.4.5-3/11 - modulepar boolean pc_FeatrGrp_111_F := false; // @desc Measurement reporting trigger Event A6 // Reference: 36.523-2 A.4.5-3a/11 modulepar boolean pc_FeatrGrp_111_T := false; // @desc Measurement reporting trigger Event A6 // Reference: 36.523-2 A.4.5-3b/11 - modulepar boolean pc_FeatrGrp_112 := false; // @desc SCell addition within the Handover to EUTRA procedure - // Reference: 36.523-2 A.4.5-3/12 - modulepar boolean pc_FeatrGrp_112_F := false; // @desc SCell addition within the Handover to EUTRA procedure // Reference: 36.523-2 A.4.5-3a/12 modulepar boolean pc_FeatrGrp_112_T := false; // @desc SCell addition within the Handover to EUTRA procedure // Reference: 36.523-2 A.4.5-3b/12 - modulepar boolean pc_FeatrGrp_113 := false; // @desc Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - // Reference: 36.523-2 A.4.5-3/13 - modulepar boolean pc_FeatrGrp_113_F := false; // @desc Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells // Reference: 36.523-2 A.4.5-3a/13 modulepar boolean pc_FeatrGrp_113_T := false; // @desc Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells // Reference: 36.523-2 A.4.5-3b/13 - modulepar boolean pc_FeatrGrp_114 := false; // @desc Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - // Reference: 36.523-2 A.4.5-3/14 - modulepar boolean pc_FeatrGrp_114_F := false; // @desc Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report // Reference: 36.523-2 A.4.5-3a/14 modulepar boolean pc_FeatrGrp_114_T := false; // @desc Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report // Reference: 36.523-2 A.4.5-3b/14 - modulepar boolean pc_FeatrGrp_115 := false; // @desc time domain ICIC RLM/RRM measurement subframe restriction for the serving cell. time domain ICIC RRM measurement subframe restriction for neighbour cells. time domain ICIC CSI measurement subframe restriction - // Reference: 36.523-2 A.4.5-3/15 - modulepar boolean pc_FeatrGrp_115_F := false; // @desc time domain ICIC RLM/RRM measurement subframe restriction for the serving cell. time domain ICIC RRM measurement subframe restriction for neighbour cells. time domain ICIC CSI measurement subframe restriction // Reference: 36.523-2 A.4.5-3a/15 modulepar boolean pc_FeatrGrp_115_T := false; // @desc time domain ICIC RLM/RRM measurement subframe restriction for the serving cell. time domain ICIC RRM measurement subframe restriction for neighbour cells. time domain ICIC CSI measurement subframe restriction // Reference: 36.523-2 A.4.5-3b/15 - modulepar boolean pc_FeatrGrp_116 := false; // @desc Relative transmit phase continuity for spatial multiplexing in UL - // Reference: 36.523-2 A.4.5-3/16 - modulepar boolean pc_FeatrGrp_116_F := false; // @desc Relative transmit phase continuity for spatial multiplexing in UL // Reference: 36.523-2 A.4.5-3a/16 @@ -431,72 +387,48 @@ module Parameters { modulepar boolean pc_FeatrGrp_11_T := false; // @desc Support of EUTRA RRC_CONNECTED to 1xRTT CS Active handover // Reference: 36.523-2 A.4.5-1b/11 - modulepar boolean pc_FeatrGrp_12 := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover - // Reference: 36.523-2 A.4.5-1/12 - modulepar boolean pc_FeatrGrp_12_F := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover // Reference: 36.523-2 A.4.5-1a/12 modulepar boolean pc_FeatrGrp_12_T := false; // @desc Support of EUTRA RRC_CONNECTED to HRPD Active handover // Reference: 36.523-2 A.4.5-1b/12 - modulepar boolean pc_FeatrGrp_13 := false; // @desc Support of Inter-frequency handover (within FDD or TDD) - // Reference: 36.523-2 A.4.5-1/13 - modulepar boolean pc_FeatrGrp_13_F := false; // @desc Support of Inter-frequency handover (within FDD or TDD) // Reference: 36.523-2 A.4.5-1a/13 modulepar boolean pc_FeatrGrp_13_T := false; // @desc Support of Inter-frequency handover (within FDD or TDD) // Reference: 36.523-2 A.4.5-1b/13 - modulepar boolean pc_FeatrGrp_14 := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - // Reference: 36.523-2 A.4.5-1/14 - modulepar boolean pc_FeatrGrp_14_F := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 // Reference: 36.523-2 A.4.5-1a/14 modulepar boolean pc_FeatrGrp_14_T := false; // @desc Support of Measurement reporting event: Event A4 - Neighbour > threshold, Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 // Reference: 36.523-2 A.4.5-1b/14 - modulepar boolean pc_FeatrGrp_15 := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold - // Reference: 36.523-2 A.4.5-1/15 - modulepar boolean pc_FeatrGrp_15_F := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold // Reference: 36.523-2 A.4.5-1a/15 modulepar boolean pc_FeatrGrp_15_T := false; // @desc Support of Measurement reporting event: Event B1 - Neighbour > threshold // Reference: 36.523-2 A.4.5-1b/15 - modulepar boolean pc_FeatrGrp_16 := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements - // Reference: 36.523-2 A.4.5-1/16 - modulepar boolean pc_FeatrGrp_16_F := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements // Reference: 36.523-2 A.4.5-1a/16 modulepar boolean pc_FeatrGrp_16_T := false; // @desc Support of Periodical measurement reporting for non-ANR related measurements // Reference: 36.523-2 A.4.5-1b/16 - modulepar boolean pc_FeatrGrp_17 := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events - // Reference: 36.523-2 A.4.5-1/17 - modulepar boolean pc_FeatrGrp_17_F := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1a/17 modulepar boolean pc_FeatrGrp_17_T := false; // @desc Support of Periodical measurement reporting for SON / ANR and ANR related intra-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1b/17 - modulepar boolean pc_FeatrGrp_18 := false; // @desc Support of ANR related inter-frequency measurement reporting events - // Reference: 36.523-2 A.4.5-1/18 - modulepar boolean pc_FeatrGrp_18_F := false; // @desc Support of ANR related inter-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1a/18 modulepar boolean pc_FeatrGrp_18_T := false; // @desc Support of ANR related inter-frequency measurement reporting events // Reference: 36.523-2 A.4.5-1b/18 - modulepar boolean pc_FeatrGrp_19 := false; // @desc Support of ANR related inter-RAT measurement reporting events - // Reference: 36.523-2 A.4.5-1/19 - modulepar boolean pc_FeatrGrp_19_F := false; // @desc Support of ANR related inter-RAT measurement reporting events // Reference: 36.523-2 A.4.5-1a/19 @@ -509,93 +441,60 @@ module Parameters { modulepar boolean pc_FeatrGrp_1_T := false; // @desc Support of Intra-subframe frequency hopping for PUSCH scheduled by UL grant, Extended cyclic prefix with f = 7.5kHz for DL resource block, DCI format 3a (TPC commands for PUCCH and PUSCH with single bit power adjustments), Multi-user MIMO for PDSCH, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-0 - UE selected subband CQI without PMI, Aperiodic CQI/PMI/RI reporting on PUSCH: Mode 2-2 - UE selected subband CQI with multiple PMI // Reference: 36.523-2 A.4.5-1b/1 - modulepar boolean pc_FeatrGrp_2 := false; // @desc Support of Simultaneous CQI and ACK/NACK on PUCCH, i.e. PUCCH format 2a and 2b, Absolute TPC command for PUSCH, Resource allocation type 1 for PDSCH, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2- 0 - UE selected subband CQI without PMI, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1 - UE selected subband CQI with single PMI - // Reference: 36.523-2 A.4.5-1/2 - - modulepar boolean pc_FeatrGrp_20 := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB - // Reference: 36.523-2 A.4.5-1/20 - modulepar boolean pc_FeatrGrp_20_F := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB // Reference: 36.523-2 A.4.5-1a/20 modulepar boolean pc_FeatrGrp_20_T := false; // @desc Support of RB combination: SRB1 and SRB2 for DCCH + x AM DRB + x UM DRB // Reference: 36.523-2 A.4.5-1b/20 - modulepar boolean pc_FeatrGrp_21 := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 - // Reference: 36.523-2 A.4.5-1/21 - modulepar boolean pc_FeatrGrp_21_F := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 // Reference: 36.523-2 A.4.5-1a/21 modulepar boolean pc_FeatrGrp_21_T := false; // @desc Support of Predefined intra-subframe frequency hopping for PUSCH with N_sb > 1, Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 // Reference: 36.523-2 A.4.5-1b/21 - modulepar boolean pc_FeatrGrp_22 := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/22 - modulepar boolean pc_FeatrGrp_22_F := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/22 modulepar boolean pc_FeatrGrp_22_T := false; // @desc Support of UTRAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/22 - modulepar boolean pc_FeatrGrp_23 := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/23 - modulepar boolean pc_FeatrGrp_23_F := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/23 modulepar boolean pc_FeatrGrp_23_T := false; // @desc Support of GERAN measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/23 - modulepar boolean pc_FeatrGrp_24 := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/24 - modulepar boolean pc_FeatrGrp_24_F := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/24 modulepar boolean pc_FeatrGrp_24_T := false; // @desc Support of cdma2000 measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/24 - modulepar boolean pc_FeatrGrp_25 := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/25 - modulepar boolean pc_FeatrGrp_25_F := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/25 modulepar boolean pc_FeatrGrp_25_T := false; // @desc Support of Inter-frequency measurements and reporting in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/25 - modulepar boolean pc_FeatrGrp_26 := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - // Reference: 36.523-2 A.4.5-1/26 - modulepar boolean pc_FeatrGrp_26_F := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1a/26 modulepar boolean pc_FeatrGrp_26_T := false; // @desc Support of HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode // Reference: 36.523-2 A.4.5-1b/26 - modulepar boolean pc_FeatrGrp_27 := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - // Reference: 36.523-2 A.4.5-1/27 - modulepar boolean pc_FeatrGrp_27_F := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover // Reference: 36.523-2 A.4.5-1a/27 modulepar boolean pc_FeatrGrp_27_T := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover // Reference: 36.523-2 A.4.5-1b/27 - modulepar boolean pc_FeatrGrp_28 := false; // @desc Support of TTI bundling - // Reference: 36.523-2 A.4.5-1/28 - modulepar boolean pc_FeatrGrp_28_F := false; // @desc Support of TTI bundling // Reference: 36.523-2 A.4.5-1a/28 modulepar boolean pc_FeatrGrp_28_T := false; // @desc Support of TTI bundling // Reference: 36.523-2 A.4.5-1b/28 - modulepar boolean pc_FeatrGrp_29 := false; // @desc Support of Semi-Persistent Scheduling - // Reference: 36.523-2 A.4.5-1/29 - modulepar boolean pc_FeatrGrp_29_F := false; // @desc Support of Semi-Persistent Scheduling // Reference: 36.523-2 A.4.5-1a/29 @@ -608,112 +507,72 @@ module Parameters { modulepar boolean pc_FeatrGrp_2_T := false; // @desc Support of Simultaneous CQI and ACK/NACK on PUCCH, i.e. PUCCH format 2a and 2b, Absolute TPC command for PUSCH, Resource allocation type 1 for PDSCH, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2- 0 - UE selected subband CQI without PMI, Periodic CQI/PMI/RI reporting on PUCCH: Mode 2-1 - UE selected subband CQI with single PMI // Reference: 36.523-2 A.4.5-1b/2 - modulepar boolean pc_FeatrGrp_3 := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN - // Reference: 36.523-2 A.4.5-1/3 - - modulepar boolean pc_FeatrGrp_30 := false; // @desc Support of Handover between FDD and TDD - // Reference: 36.523-2 A.4.5-1/30 - modulepar boolean pc_FeatrGrp_30_F := false; // @desc Support of Handover between FDD and TDD // Reference: 36.523-2 A.4.5-1a/30 modulepar boolean pc_FeatrGrp_30_T := false; // @desc Support of Handover between FDD and TDD // Reference: 36.523-2 A.4.5-1b/30 - modulepar boolean pc_FeatrGrp_31 := false; // @desc Support of the mechanisms defined for cells broadcasting multi band information i.e. comprehending multiBandInfoList - // Reference: 36.523-2 A.4.5-1/31 - modulepar boolean pc_FeatrGrp_31_F := false; // @desc Support of the mechanisms defined for cells broadcasting multi band information i.e. comprehending multiBandInfoList // Reference: 36.523-2 A.4.5-1a/31 modulepar boolean pc_FeatrGrp_31_T := false; // @desc Support of the mechanisms defined for cells broadcasting multi band information i.e. comprehending multiBandInfoList // Reference: 36.523-2 A.4.5-1b/31 - modulepar boolean pc_FeatrGrp_33 := false; // @desc Inter-RAT ANR features for UTRAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/1 - - modulepar boolean pc_FeatrGrp_33_F := false; // @desc Inter-RAT ANR features for UTRAN including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + modulepar boolean pc_FeatrGrp_33_F := false; // @desc Inter-RAT ANR features for UTRAN including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/1 modulepar boolean pc_FeatrGrp_33_T := false; // @desc Inter-RAT ANR features for UTRAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/1 - modulepar boolean pc_FeatrGrp_34 := false; // @desc Inter-RAT ANR features for GERAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/2 - modulepar boolean pc_FeatrGrp_34_F := false; // @desc Inter-RAT ANR features for GERAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/2 modulepar boolean pc_FeatrGrp_34_T := false; // @desc Inter-RAT ANR features for GERAN including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCells // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/2 - modulepar boolean pc_FeatrGrp_35 := false; // @desc Inter-RAT ANR features for 1xRTT including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/3 - modulepar boolean pc_FeatrGrp_35_F := false; // @desc Inter-RAT ANR features for 1xRTT including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/3 modulepar boolean pc_FeatrGrp_35_T := false; // @desc Inter-RAT ANR features for 1xRTT including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/3 - modulepar boolean pc_FeatrGrp_36 := false; // @desc Inter-RAT ANR features for HRPD including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/4 - modulepar boolean pc_FeatrGrp_36_F := false; // @desc Inter-RAT ANR features for HRPD including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/4 - modulepar boolean pc_FeatrGrp_36_T := false; // @desc Inter-RAT ANR features for HRPD including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to portStrongestCellsForSON + modulepar boolean pc_FeatrGrp_36_T := false; // @desc Inter-RAT ANR features for HRPD including: Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to portStrongestCellsForSON // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/4 - modulepar boolean pc_FeatrGrp_37 := false; // @desc Inter-RAT ANR features for UTRAN TDD including: - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI - // Reference: 36.523-2 A.4.5-1c/5 - modulepar boolean pc_FeatrGrp_37_F := false; // @desc Inter-RAT ANR features for UTRAN TDD including: // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1d/5 modulepar boolean pc_FeatrGrp_37_T := false; // @desc Inter-RAT ANR features for UTRAN TDD including: // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportStrongestCellsForSON - // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI + // Inter-RAT periodical measurement reporting where triggerType is set to periodical and purpose is set to reportCGI // Reference: 36.523-2 A.4.5-1e/5 - modulepar boolean pc_FeatrGrp_38 := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover, if the UE supports both UTRAN FDD and UTRAN TDD - // Reference: 36.523-2 A.4.5-1c/6 - modulepar boolean pc_FeatrGrp_38_F := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1d/6 modulepar boolean pc_FeatrGrp_38_T := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1e/6 - modulepar boolean pc_FeatrGrp_39 := false; // @desc UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode, if the UE supports both UTRAN FDD and UTRAN TDD - // Reference: 36.523-2 A.4.5-1c/7 - modulepar boolean pc_FeatrGrp_39_F := false; // @desc UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1d/7 @@ -726,25 +585,16 @@ module Parameters { modulepar boolean pc_FeatrGrp_3_T := false; // @desc Support of Semi-persistent scheduling, TTI bundling, 5bit RLC UM SN, 7bit PDCP SN // Reference: 36.523-2 A.4.5-1b/3 - modulepar boolean pc_FeatrGrp_4 := false; // @desc Support of Short DRX cycle - // Reference: 36.523-2 A.4.5-1/4 - - modulepar boolean pc_FeatrGrp_40 := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover, if the UE supports both UTRAN FDD and UTRAN TDD - // Reference: 36.523-2 A.4.5-1c/8 - modulepar boolean pc_FeatrGrp_40_F := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1d/8 modulepar boolean pc_FeatrGrp_40_T := false; // @desc EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover, if the UE supports both UTRAN FDD and UTRAN TDD // Reference: 36.523-2 A.4.5-1e/8 - modulepar boolean pc_FeatrGrp_41 := false; // @desc Measurement reporting event: Event B1 – Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 - // Reference: 36.523-2 A.4.5-1c/9 - - modulepar boolean pc_FeatrGrp_41_F := false; // @desc Measurement reporting event: Event B1 – Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 + modulepar boolean pc_FeatrGrp_41_F := false; // @desc Measurement reporting event: Event B1 Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 // Reference: 36.523-2 A.4.5-1d/9 - modulepar boolean pc_FeatrGrp_41_T := false; // @desc Measurement reporting event: Event B1 – Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 + modulepar boolean pc_FeatrGrp_41_T := false; // @desc Measurement reporting event: Event B1 Neighbour > threshold for UTRAN FDD, if the UE supports UTRAN FDD and has set bit number 22 to 1 // Reference: 36.523-2 A.4.5-1e/9 modulepar boolean pc_FeatrGrp_4_F := false; // @desc Support of Short DRX cycle @@ -753,45 +603,30 @@ module Parameters { modulepar boolean pc_FeatrGrp_4_T := false; // @desc Support of Short DRX cycle // Reference: 36.523-2 A.4.5-1b/4 - modulepar boolean pc_FeatrGrp_5 := false; // @desc Support of Long DRX cycle, DRX command MAC control element - // Reference: 36.523-2 A.4.5-1/5 - modulepar boolean pc_FeatrGrp_5_F := false; // @desc Support of Long DRX cycle, DRX command MAC control element // Reference: 36.523-2 A.4.5-1a/5 modulepar boolean pc_FeatrGrp_5_T := false; // @desc Support of Long DRX cycle, DRX command MAC control element // Reference: 36.523-2 A.4.5-1b/5 - modulepar boolean pc_FeatrGrp_6 := false; // @desc Support of Piroritized bit rate - // Reference: 36.523-2 A.4.5-1/6 - modulepar boolean pc_FeatrGrp_6_F := false; // @desc Support of Piroritized bit rate // Reference: 36.523-2 A.4.5-1a/6 modulepar boolean pc_FeatrGrp_6_T := false; // @desc Support of Piroritized bit rate // Reference: 36.523-2 A.4.5-1b/6 - modulepar boolean pc_FeatrGrp_7 := false; // @desc Support of RLC UM - // Reference: 36.523-2 A.4.5-1/7 - modulepar boolean pc_FeatrGrp_7_F := false; // @desc Support of RLC UM // Reference: 36.523-2 A.4.5-1a/7 modulepar boolean pc_FeatrGrp_7_T := false; // @desc Support of RLC UM // Reference: 36.523-2 A.4.5-1b/7 - modulepar boolean pc_FeatrGrp_8 := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - // Reference: 36.523-2 A.4.5-1/8 - modulepar boolean pc_FeatrGrp_8_F := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover // Reference: 36.523-2 A.4.5-1a/8 modulepar boolean pc_FeatrGrp_8_T := false; // @desc Support of EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover // Reference: 36.523-2 A.4.5-1b/8 - modulepar boolean pc_FeatrGrp_9 := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - // Reference: 36.523-2 A.4.5-1/9 - modulepar boolean pc_FeatrGrp_9_F := false; // @desc Support of EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover // Reference: 36.523-2 A.4.5-1a/9 @@ -807,8 +642,7 @@ module Parameters { modulepar boolean pc_GERAN_2_E_UTRAN_PSHO := false; // @desc Support of GERAN to E-UTRAN PS Handover // Reference: 36.523-2 A.4.4-1/29 - modulepar boolean pc_GERAN_2_E_UTRAN_meas - := false; // @desc Supports Neighbour Cell measurements and Network controlled & autonomous cell reselection to E-UTRAN + modulepar boolean pc_GERAN_2_E_UTRAN_meas := false; // @desc Supports Neighbour Cell measurements and Network controlled & autonomous cell reselection to E-UTRAN // Reference: 36.523-2 A.4.4-1/21 modulepar boolean pc_GERAN_2_E_UTRAN_measreporting_CCN := false; // @desc Supports CCN towards E-UTRAN, E-UTRAN Neighbour cell measurement reporting and Network controlled cell reselection to E-UTRAN @@ -818,7 +652,7 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/8 modulepar boolean pc_HO_from_UTRA_to_eTDD := false; // @desc Support of Inter-RAT PS handover to E-UTRA from UTRA (TDD) - // Reference: 36.523-2 A.4.4-1/aa + // Reference: 36.523-2 A.4.4-1/53 modulepar boolean pc_HRPD := false; // @desc UE supports CDMA2000 HRPD band class // Reference: 36.523-2, A.4.1-1/3 @@ -829,14 +663,26 @@ module Parameters { modulepar boolean pc_IMSI_Detach := false; // @desc Support of detach for non-EPS services // Reference: 36.523-2 A.4.4-1/34 + modulepar boolean pc_IMS_APN_default := false; // @desc Configured with IMS APN as default APN + // Reference: 36.523-2 A.4.4-2/11 + + modulepar boolean pc_IMS_CS_PS_SRVCC := false; // @desc UE Supports CS to PS SRVCC + // Reference: 34.229-2 A.12/40 + + modulepar boolean pc_IMS_CS_PS_SRVCCAlert := false; // @desc UE Supports CS to PS SRVCC in alerting state + // Reference: 34.229-2 A.12/41 + + modulepar boolean pc_IMS_CS_PS_SRVCCMidCall := false; // @desc UE Supports CS to PS SRVCC and the MSC server assisted mid-call feature + // Reference: 34.229-2 A.12/42 + modulepar boolean pc_IMS_SRVCCAlert := false; // @desc UE indicates g.3gpp.srvcc-alerting media feature tag in INVITE request or 180 response - // Reference: 34.229-2 Table A.12/34 + // Reference: 34.229-2 A.12/34 modulepar boolean pc_IMS_emergency_call := false; // @desc Support of MS emergency call // Reference: 36.523-2, A.4.2.1.1-1/4 modulepar boolean pc_IPv4 := false; // @desc UE supports IPv4 (used IMS PICS as currently not defined in LTE) - // Reference: 34.229-2 A.7/1 + // Reference: 34.229-2 A.7/1 modulepar boolean pc_IPv6 := false; // @desc UE supports IPv6 (used IMS PICS as currently not defined in LTE) // Reference: 34.229-2 A.7/2 @@ -855,8 +701,8 @@ module Parameters { modulepar boolean pc_KeepEpsBearerParametersAfterNormalDetach := false; // @desc If the UE supports this, then the next ATTACH after DETACH shall be done using AT command AT+CGATT=1. - // Otherwise it shall be done using AT+CGDCONT=1,”IP” followed by AT+CGACT=1 - // Reference: 36.523-2 A.4.4.2-n + // Otherwise it shall be done using AT+CGDCONT=1,"IP" followed by AT+CGACT=1 + // Reference: 36.523-2 A.4.4.2-10 modulepar boolean pc_LAP_override := false; // @desc Support of Low Access Prioirty Override // Reference: 36.523-2 A.4.4-1/90 @@ -871,7 +717,14 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/49 modulepar boolean pc_Multiple_PDN := false; // @desc Support for multiple PDN connections - // Reference: 36.523-2 A.4.4-1/29 + // Reference: 36.523-2 A.4.4-1/30 + + modulepar boolean pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception := false; + // @desc Support of Automatic Mode EF_LRPLMSI PLMN Selection Expression + // Reference: 36.523-2 A.4.4-1/N1 + + modulepar boolean pc_PLMN_Manual_Mode_Exception := false; // @desc Support of Manual Mode PLMN Selection Expression + // Reference: 36.523-2 A.4.4-1/N2 modulepar boolean pc_PS := false; // @desc Packet Switched // Reference: 34.123-2 A.3/2 @@ -886,13 +739,13 @@ module Parameters { // Reference: 36.523-2 A.4.4-1/67 modulepar boolean pc_Provide_IMS_APN := false; // @desc Configured to provide IMS APN during initial attach - // Reference: 36.523-2 A.4.4-2/nn + // Reference: 36.523-2 A.4.4-2/13 modulepar boolean pc_Provide_IMS_as_second_APN := false; // @desc Configured to provide IMS APN as the 2nd PDN connection - // Reference: 36.523-2 A.4.4-2/mm + // Reference: 36.523-2 A.4.4-2/14 modulepar boolean pc_Provide_Internet_as_second_APN := false; // @desc Configured to provide Internet APN as the 2nd PDN connection - // Reference: 36.523-2 A.4.4-2/oo + // Reference: 36.523-2 A.4.4-2/15 modulepar boolean pc_RLF_ReportForInterRAT_MRO := false; // @desc Support of Radio Link Failure Report for InterRAT MRO // Reference: 36.523-2 A.4.4-1/xx @@ -936,8 +789,19 @@ module Parameters { modulepar boolean pc_RequestIPv6HAAddress_DuringAttach := false; // @desc Support for being configured to request the IPv6 address of the Home Agent during Attach procedure // Reference: 36.523-2 A.4.4-1/22 + modulepar boolean pc_SI_Neighbour_UMTS_Autonomous_Gaps := false; // @desc Upon configuration of si-RequestForHO by the network, supports acquistion of relevant information from a neighbouring UMTS cell by reading the SI of the neighbouring cell using autonomous gaps and reporting + // Reference: 36.523-2, A.4.4-1/xxx + + modulepar boolean pc_SI_Neighbour_interFreq_Autonomous_Gaps := false; + // @desc Supports upon configuration of si-requestForHO by the network acquisition of relevant information from a neighbouring intrer-frequency cell by reading the SI of the neighouring cell using autonomous gaps and reporting + // Reference: 36.523-2, A.4.4-1/zz2 + + modulepar boolean pc_SI_Neighbour_intraFreq_Autonomous_Gaps := false; + // @desc Supports upon configuration of si-requestForHO by the network acquisition of relevant information from a neighbouring intra-frequency cell by reading the SI of the neighouring cell using autonomous gaps and reporting + // Reference: 36.523-2, A.4.4-1/zz1 + modulepar boolean pc_SMS_SGs := false; // @desc The UE supports SMS over SGs and is configured for SMS over SGs. If true, at least one of pc_SMS_SGs_MT and pc_SMS_SGs_MO is true. If it is set to true, pc_combined_attach shall be set to true - // + // // Reference: 36.523-2, A.4.2.1.1-1/2 modulepar boolean pc_SMS_SGs_MO := false; // @desc Support of Short Message Service (SMS) MO over SGs @@ -949,7 +813,7 @@ module Parameters { modulepar boolean pc_SMS_SGs_Multi_MO := false; // @desc Support of sending concatenated multiple short message over SGs // Reference: 36.523-2 A.4.4.1-72 - modulepar boolean pc_SRVCC_GERAN_UTRAN := false; // @desc Support for SRVCC from E-UTRAN to GERAN/UTRAN + modulepar boolean pc_SRVCC_GERAN_UTRAN := false; // @desc Support for SRVCC from E-UTRAN to GERAN/UTRAN // Reference: 36.523-2 A.4.4-1/32 modulepar boolean pc_Semi_Persistence_Scheduling := false; // @desc Support of semi persistance scheduling @@ -988,24 +852,24 @@ module Parameters { modulepar boolean pc_TAU_idle_in_IMS := false; // @desc Support of TAU in idle mode. Applicable when configured to pc_voice_PS_1_CS_2 and pc_Attach // Reference: 36.523-2 A.4.4.1-74 - modulepar boolean pc_TDD_HCR := false; // @desc UE supports UTRA band as defined in TS 25.102 + modulepar boolean pc_TDD_HCR := false; // @desc UE supports UTRA band as defined in TS 25.102 // Reference: 34.123-2 A.1/2 - modulepar boolean pc_TDD_LCR := false; // @desc UE supports UTRA band as defined in TS 25.102 + modulepar boolean pc_TDD_LCR := false; // @desc UE supports UTRA band as defined in TS 25.102 // Reference: 34.123-2 A.1/3 - modulepar boolean pc_TDD_VHCR := false; // @desc UE supports UTRA band as defined in TS 25.102 + modulepar boolean pc_TDD_VHCR := false; // @desc UE supports UTRA band as defined in TS 25.102 // Reference: 34.123-2 A.1/8 modulepar boolean pc_TTI_Bundling := false; // @desc Support of TTI Bundling // Reference: 36.523-2 A.4.4-1/51 modulepar boolean pc_TestModeforCSGproximity := false; // @desc Support of UE radio bearer test mode for CSG proximity testing - // Reference: 36.523-2 A.4.4-1/XX + // Reference: 36.523-2 A.4.4-1/92 modulepar boolean pc_UE_supports_user_initiated_PDN_disconnect := false; // @desc UE supports user initiated PDN disconnect - // Reference: 36.523-2 A.4.4-2/pp + // Reference: 36.523-2 A.4.4-2/16 modulepar boolean pc_UL_CA := false; // @desc Support of UL CA // Reference: 36.523-2, ??? @@ -1019,8 +883,10 @@ module Parameters { modulepar boolean pc_UL_MIMO := false; // @desc Support of UL MIMO // Reference: 36.523-2 A.4.4-170 - modulepar boolean pc_UL_interBand_CaBwClassComb_AA - := false; // @desc UL Inter-band contiguous CA BW class A-A + modulepar boolean pc_UL_SupportedInAllBandsInCAComb := false; // @desc UL (Pcell) supported in each band of Inter-band CA combination under test + // Reference: 36.523-2 A.4.3.3.3-2/2 + + modulepar boolean pc_UL_interBand_CaBwClassComb_AA := false; // @desc UL Inter-band contiguous CA BW class A-A // Reference: 36.523-2 A.4.3.3.3-2/1 modulepar boolean pc_UL_intraBand_nonContCaBwClassComb_AA := false; @@ -1033,7 +899,7 @@ module Parameters { modulepar boolean pc_USIM_Removal := false; // @desc USIM removable without power down supported // Reference: 36.523-2, A4.4-1/1 - modulepar boolean pc_UTRA := false; // @desc UE supports UTRA + modulepar boolean pc_UTRA := false; // @desc UE supports UTRA // Reference: 36.523-2 A.4.1-1/6 modulepar boolean pc_UTRAN_ANR := false; // @desc Support of UTRAN ANR @@ -1049,10 +915,10 @@ module Parameters { // Reference: 36.523-2 A.4.5-2/2 modulepar boolean pc_UeAssistedAgps := false; // @desc Support of UE assisted Network Assisted GPS L1 C/A - // Reference: 37.571-3 Table A.4.3-1/11 + // Reference: 37.571-3 A.4.3-1/11 modulepar boolean pc_UeBasedAgps := false; // @desc Support of UE based Network Assisted GPS L1 C/A - // Reference: 37.571-3 Table A.4.3-1/10 + // Reference: 37.571-3 A.4.3-1/10 modulepar boolean pc_UniversalAndLocalTimeZone := false; // @desc Support of storage of the universal time and local time zone // Reference: 36.523-2 A.4.4-1/15 @@ -1066,6 +932,12 @@ module Parameters { modulepar boolean pc_VoLTE := false; // @desc Support of VoLTE in GSMA PRD IR.92: "IMS profile for Voice and SMS" // Reference: 36.523-2 A.4.4-1/33 + modulepar boolean pc_XCAP_only_APN := false; // @desc Configured with an APN for XCAP only usage + // Reference: 36.523-2 A.4.4-2/12 + + modulepar boolean pc_XCAP_over_Internet_APN := false; // @desc Configured to use Internet APN for XCAP signalling + // Reference: 36.523-2 A.4.4-2/17 + modulepar boolean pc_eFDD := false; // @desc UE supports EUTRA FDD // Reference: 36.523-2 A.4.1-1/1 @@ -1088,7 +960,52 @@ module Parameters { // Reference: 36.523-2 A.4.1-2/2 modulepar boolean pc_multipleTimingAdvance := false; // @desc Support of multiple timing advances - // Reference: 36.523-2 A.4.4-1/88 + // Reference: 36.523-2 A.4.4-1A/3 + + modulepar boolean pc_ue_CategoryDL_0 := false; // @desc UE Category DL 0 + // Reference: 36.523-2 A.4.3.2-2/1 + + modulepar boolean pc_ue_CategoryDL_10 := false; // @desc UE Category DL 10 + // Reference: 36.523-2 A.4.3.2-2/5 + + modulepar boolean pc_ue_CategoryDL_11 := false; // @desc UE Category DL 11 + // Reference: 36.523-2 A.4.3.2-2/6 + + modulepar boolean pc_ue_CategoryDL_12 := false; // @desc UE Category DL 12 + // Reference: 36.523-2 A.4.3.2-2/7 + + modulepar boolean pc_ue_CategoryDL_13 := false; // @desc UE Category DL 13 + // Reference: 36.523-2 A.4.3.2-2/8 + + modulepar boolean pc_ue_CategoryDL_14 := false; // @desc UE Category DL 14 + // Reference: 36.523-2 A.4.3.2-2/9 + + modulepar boolean pc_ue_CategoryDL_6 := false; // @desc UE Category DL 6 + // Reference: 36.523-2 A.4.3.2-2/2 + + modulepar boolean pc_ue_CategoryDL_7 := false; // @desc UE Category DL 7 + // Reference: 36.523-2 A.4.3.2-2/3 + + modulepar boolean pc_ue_CategoryDL_9 := false; // @desc UE Category DL 9 + // Reference: 36.523-2 A.4.3.2-2/4 + + modulepar boolean pc_ue_CategoryUL_0 := false; // @desc UE Category UL 0 + // Reference: 36.523-2 A.4.3.2-3/1 + + modulepar boolean pc_ue_CategoryUL_13 := false; // @desc UE Category UL 13 + // Reference: 36.523-2 A.4.3.2-3/6 + + modulepar boolean pc_ue_CategoryUL_3 := false; // @desc UE Category UL 3 + // Reference: 36.523-2 A.4.3.2-3/2 + + modulepar boolean pc_ue_CategoryUL_5 := false; // @desc UE Category UL 5 + // Reference: 36.523-2 A.4.3.2-3/3 + + modulepar boolean pc_ue_CategoryUL_7 := false; // @desc UE Category UL 7 + // Reference: 36.523-2 A.4.3.2-3/4 + + modulepar boolean pc_ue_CategoryUL_8 := false; // @desc UE Category UL 8 + // Reference: 36.523-2 A.4.3.2-3/5 modulepar boolean pc_ue_Category_1 := false; // @desc UE Category 1 // Reference: 36.523-2 A.4.3.2-1/1 @@ -1096,6 +1013,12 @@ module Parameters { modulepar boolean pc_ue_Category_10 := false; // @desc UE Category 10 // Reference: 36.523-2 A.4.3.2-1/10 + modulepar boolean pc_ue_Category_11 := false; // @desc UE Category 11 + // Reference: 36.523-2 A.4.3.2-1/11 + + modulepar boolean pc_ue_Category_12 := false; // @desc UE Category 12 + // Reference: 36.523-2 A.4.3.2-1/12 + modulepar boolean pc_ue_Category_2 := false; // @desc UE Category 2 // Reference: 36.523-2 A.4.3.2-1/2 diff --git a/IMS_PART4_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn b/LTE_A_IWD_15wk38/PicsPixit/UTRAN_Parameters.ttcn similarity index 85% rename from IMS_PART4_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn rename to LTE_A_IWD_15wk38/PicsPixit/UTRAN_Parameters.ttcn index 5dfbefc..1983aad 100644 --- a/IMS_PART4_IWD_14wk37/PicsPixit/UTRAN_Parameters.ttcn +++ b/LTE_A_IWD_15wk38/PicsPixit/UTRAN_Parameters.ttcn @@ -1,17 +1,13 @@ /******************************************************************************/ +// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY // @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 2014, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). +// Trademark 2015, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). // All rights reserved. -// @version: IWD_14wk37 -/******************************************************************************/ - -/******************************************************************************/ -// AUTOMATICALLY GENERATED MODULE - DO NOT MODIFY -// $Date: -// $Author: -// $Rev: +// @version: IWD_15wk38 +// $Date: 2015-05-26 16:38:07 +0200 (Tue, 26 May 2015) $ +// $Rev: 13602 $ /******************************************************************************/ module UTRAN_Parameters { @@ -36,9 +32,6 @@ module UTRAN_Parameters { modulepar GPRS_CipheringAlgorithm_Type px_GPRS_CipheringAlgorithm := gea2; // @desc NAS Ciphering Algorithm, Default value: (GEA/2) // Reference to other Spec: 34.123-3, Table B.1 - modulepar integer px_MFBI_UTRAN_FrequencyBand; // @desc A supported UTRAN MFBI frequency band. - // Reference to other Spec: 34.123-3, Table B.1.20 - modulepar B1_Type px_MS_ClsmkESIND := '0'B; // @desc Default Early Sending Indication // Reference to other Spec: 34.123-3, Table B.1 @@ -55,7 +48,7 @@ module UTRAN_Parameters { // @desc S RNTI // Reference to other Spec: 34.123-3, Table B.1 - modulepar charstring px_TDD_OperationBand; // @desc LCR TDD Operation Band + modulepar charstring px_TDD_OperationBandCharstring := "a"; // @desc Applicable for TDD. The operation band under test as defined in 34.108 clause 5.1.2 modulepar integer px_UARFCN_D_High := 10837; // @desc High Range downlink UARFCN value // Reference to other Spec: 34.123-3, Table B.1 @@ -74,18 +67,13 @@ module UTRAN_Parameters { modulepar CipheringAlgorithm_r7 px_UTRAN_CipheringAlgorithm := uea2; // @desc UTRAN Ciphering algorithm // Supported values: uea0, uea1, uea2 - // Reference to other Spec: 34.123-3, Table B.1.20 - - modulepar integer px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI; - // @desc A not supported UTRAN frequency band that is overlapping with a supported MFBI band (px_MFBI_UTRAN_FrequencyBand). This pixit shall be set also in accordance with the values of the 3 Pixits: px_UARFCN_D_High, px_UARFCN_D_Mid,px_UARFCN_L_Mid. - // Reference to other Spec: 34.123-3, Table B.1.20 //**************************************************************************** // PICS Parameters //---------------------------------------------------------------------------- modulepar boolean pc_AttachWithIMSI := false; // @desc Support of Attach With IMSI - // Reference: 34.123-2 A.10/x4 + // Reference: 34.123-2 A.10/34 modulepar boolean pc_AutomaticAttachSwitchON := false; // @desc Support of automatic PS attach procedure at switch on. // Reference: 34.123-2 A.20/38 @@ -97,33 +85,33 @@ module UTRAN_Parameters { // Reference: 34.123-2 A.15/22 modulepar boolean pc_Band11_Supp := false; // @desc TRUE if UE supports Frequency Band 11 - // Reference: 34.123-2 Table A.15/23 + // Reference: 34.123-2 Table A.15/23 - modulepar boolean pc_Band12_Supp := false; // @desc TRUE if UE supports Frequency Band 12 - // Reference: 34.123-2 Table A.15/24 + modulepar boolean pc_Band12_Supp := false; // @desc TRUE if UE supports Frequency Band 12 + // Reference: 34.123-2 Table A.15/24 - modulepar boolean pc_Band13_Supp := false; // @desc TRUE if UE supports Frequency Band 13 - // Reference: 34.123-2 Table A.15/25 + modulepar boolean pc_Band13_Supp := false; // @desc TRUE if UE supports Frequency Band 13 + // Reference: 34.123-2 Table A.15/25 - modulepar boolean pc_Band14_Supp := false; // @desc TRUE if UE supports Frequency Band 14 - // Reference: 34.123-2 Table A.15/26 + modulepar boolean pc_Band14_Supp := false; // @desc TRUE if UE supports Frequency Band 14 + // Reference: 34.123-2 Table A.15/26 - modulepar boolean pc_Band19_Supp := false; // @desc TRUE if UE supports Frequency Band 19 - // Reference: 34.123-2 Table A.15/27 + modulepar boolean pc_Band19_Supp := false; // @desc TRUE if UE supports Frequency Band 19 + // Reference: 34.123-2 Table A.15/27 modulepar boolean pc_Band1_Supp := false; // @desc UE supports Frequency Band 1 // Reference: 34.123-2 A.15/2 - modulepar boolean pc_Band20_Supp := false; // @desc TRUE if UE supports Frequency Band 20 - // Reference: 34.123-2 Table A.15/30 + modulepar boolean pc_Band20_Supp := false; // @desc TRUE if UE supports Frequency Band 20 + // Reference: 34.123-2 Table A.15/30 - modulepar boolean pc_Band21_Supp := false; // @desc TRUE if UE supports Frequency Band 21 - // Reference: 34.123-2 Table A.15/28 + modulepar boolean pc_Band21_Supp := false; // @desc TRUE if UE supports Frequency Band 21 + // Reference: 34.123-2 Table A.15/28 - modulepar boolean pc_Band22_Supp := false; // @desc TRUE if UE supports Frequency Band 22 - // Reference: 34.123-2 Table A.15/29 + modulepar boolean pc_Band22_Supp := false; // @desc TRUE if UE supports Frequency Band 22 + // Reference: 34.123-2 Table A.15/29 - modulepar boolean pc_Band25_Supp := false; // @desc TRUE if UE supports Frequency Band 25 + modulepar boolean pc_Band25_Supp := false; // @desc TRUE if UE supports Frequency Band 25 // Reference: 34.123-2 Table A.15/31 modulepar boolean pc_Band26_Supp := false; // @desc TRUE if UE supports Frequency Band 26 @@ -132,6 +120,9 @@ module UTRAN_Parameters { modulepar boolean pc_Band2_Supp := false; // @desc UE supports Frequency Band 2 // Reference: 34.123-2 A.15/3 + modulepar boolean pc_Band32_Supp := false; // @desc UE supports Frequency Band 32 + // Reference: 34.123-2 A.15/33 + modulepar boolean pc_Band3_Supp := false; // @desc UE supports Frequency Band 3 // Reference: 34.123-2 A.15/14 @@ -154,13 +145,13 @@ module UTRAN_Parameters { // Reference: 34.123-2 A.15/20 modulepar integer pc_EDCH_UE_Category_FDD; // @desc FDD E-DCH physical layer categories - // Reference: 34.123-2 Table A.18a.2 + // Reference: 34.123-2 Table A.18a.2 modulepar integer pc_EDCH_UE_Category_TDD; // @desc LCR TDD E-DCH physical layer categories - // Reference: 34.123-2 Table A.18b.2 + // Reference: 34.123-2 Table A.18b.2 - modulepar boolean pc_EmergSpeech := false; // @desc Emergency Call - // Reference: 34.123-2 ??/2 + modulepar boolean pc_FDPCH := false; // @desc Full support of F-DPCH + // Reference: 34.123-2 Table A.18a/19 modulepar boolean pc_HSDPA_FDD := false; // @desc UE Supports HSDPA - FDD // Reference: 34.123-2 A.18a/14 @@ -169,9 +160,9 @@ module UTRAN_Parameters { // Reference: 34.123-2 A.18b/10 modulepar HSDSCH_physical_layer_category pc_HSDSCH_UE_Category_FDD; // @desc FDD HS-DSCH physical layer categories - // Reference: 34.123-2 Table A.18a.1 + // Reference: 34.123-2 Table A.18a.1 - modulepar HSDSCH_physical_layer_category pc_HSDSCH_UE_Category_TDD; // @desc LCR TDD HS-DSCH physical layer categories + modulepar HSDSCH_physical_layer_category pc_HSDSCH_UE_Category_TDD; // @desc LCR TDD HS-DSCH physical layer categories // Reference: 34.123-2 Table A.18b.1 modulepar boolean pc_HSUPA_FDD := false; // @desc UE Supports HSUPA - FDD @@ -190,13 +181,13 @@ module UTRAN_Parameters { // Reference: 34.123-2 A.6/3 modulepar boolean pc_LAP := false; // @desc Support of Low Access Priority Indication - // Reference: 34.123-2 A.10/x1 + // Reference: 34.123-2 A.10/31 modulepar boolean pc_MinimumPeriodicSearchTimer := false; // @desc Support of Minimum Periodic Search Timer - // Reference: 34.123-2 A.10/x2 + // Reference: 34.123-2 A.10/32 modulepar boolean pc_NMO_I_Behaviour := false; // @desc Support of the extended NMO I system information - // Reference: 34.123-2 A.10/x3 + // Reference: 34.123-2 A.10/33 modulepar boolean pc_Streaming := false; // @desc UE Supports Streaming QoS class // Reference: 34.123-2 A.6/2 -- GitLab