| /////////////////////////////////////////////////////////////////////////////// |
| // // |
| // Copyright Test Competence Center (TCC) ETH 2016 // |
| // // |
| // The copyright to the computer program(s) herein is the property of TCC. // |
| // The program(s) may be used and/or copied only with the written permission // |
| // of TCC or in accordance with the terms and conditions stipulated in the // |
| // agreement/contract under which the program(s) has been supplied. // |
| // // |
| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // File: MobileL3_MM_Types.ttcn |
| // Rev: R1B |
| // Prodnr: CNL 113 832 |
| // Contact: http://ttcn.ericsson.se |
| // Reference: 3GPP TS 24.008 v13.4.0 |
| |
| |
| module MobileL3_MM_Types |
| { |
| |
| import from General_Types all; |
| import from MobileL3_CommonIE_Types all; |
| |
| //============================================================================ |
| // 24.008/ 10.5.3 Mobility Management information elements |
| //============================================================================ |
| |
| //10.5.3.1 AuthenticationParRAND |
| //********************************************************************** |
| type record AuthenticationParameterRANDTV |
| { |
| OCT1 elementIdentifier, |
| OCT16 randValue |
| } with { variant "PRESENCE (elementIdentifier = '21'O)"; }; |
| |
| //10.5.3.1.1 Authentication Par AUTN (UMTS auth. ch. only) |
| //********************************************************************** |
| type record AuthenticationParameterAUTNTLV |
| { |
| OCT1 elementIdentifier, |
| LIN1 lengthIndicator, |
| OCT16 autnValue |
| } with { variant (lengthIndicator) "LENGTHTO (autnValue)"}; |
| |
| //10.5.3.2 Authentication Response parameter |
| //********************************************************************** |
| type record AuthenticationResponseParameterTV |
| { |
| OCT1 elementIdentifier, |
| OCT4 valueField length (4) |
| } with { variant "PRESENCE (elementIdentifier = '22'O)"; }; |
| |
| //10.5.3.2.1 Authentication Response parameter (extension) |
| //********************************************************************** |
| type record AuthenticationResponseParameterUMTSTLV |
| { |
| OCT1 elementIdentifier, |
| LIN1 lengthIndicator, |
| octetstring valueField length (1..12) |
| } with { variant (lengthIndicator) "LENGTHTO (valueField)"}; |
| |
| |
| //10.5.3.2.2 Authentication Failure parameter (UMTS authentication challenge only) |
| //********************************************************************** |
| type record AuthenticationFailureParametersTLV |
| { |
| OCT1 elementIdentifier, |
| LIN1 lengthIndicator, |
| octetstring valueField length (14) |
| } with { variant "PRESENCE (elementIdentifier = '30'O)"; |
| variant (lengthIndicator) "LENGTHTO (valueField)"}; |
| |
| //10.5.3.5 Location Update Type |
| //**************************************************************************** |
| type record LocationUpdatingType |
| { |
| BIT2 lut, // LU Normal (00) |
| // LU Periodic (01) |
| // Attach IMSI (10) |
| // reserved (11) |
| BIT1 spare1_1, // 0 |
| BIT1 fop // Follow Pending on (1), not (0) |
| }; |
| |
| //10.5.3.5a Network Name |
| //**************************************************************************** |
| type record NetworkNameTLV |
| { |
| BIT7 elementIdentifier, |
| BIT1 spare1, |
| LIN1 lengthIndicator, |
| NetworkNameV valueField |
| } with { variant (lengthIndicator) "LENGTHTO (valueField)"}; |
| |
| |
| type record NetworkNameV |
| { |
| BIT3 nSpareBits, |
| BIT1 addCI, |
| BIT3 codingScheme, |
| BIT1 ext1, //'1'B |
| octetstring textString // length (0..infinity) |
| // actually the upper limit depends on the max size of the PDU, see 44.006 |
| }; |
| |
| //10.5.3.7 Follow-on Proceed |
| //**************************************************************************** |
| type Type2 FollowOnProceed; //'A1'O |
| |
| //10.5.3.8 TimeZone |
| //**************************************************************************** |
| type record TimeZoneTV |
| { |
| BIT7 elementIdentifier, |
| BIT1 spare, |
| TimeZoneV valueField |
| } with { variant "PRESENCE (elementIdentifier = '1000110'B)"; }; //'46'O 7 bits |
| |
| type record TimeZoneV |
| { |
| OCT1 timeZone |
| }; |
| |
| //10.5.3.9 Time Zone And Time |
| //**************************************************************************** |
| type record TimeZoneAndTimeTV |
| { |
| BIT7 elementIdentifier, |
| BIT1 spare, |
| TimeZoneAndTimeV valueField |
| } with { variant "PRESENCE (elementIdentifier = '1000111'B)"; }; //'47'O 7 bits; |
| |
| |
| type record TimeZoneAndTimeV |
| { |
| OCT1 year, |
| OCT1 month, |
| OCT1 day, |
| OCT1 hour, |
| OCT1 minute, |
| OCT1 second, |
| OCT1 timeZone |
| }; |
| |
| //10.5.3.10 CTS permission |
| //********************************************************************** |
| type Type2 CTS_Permission; |
| |
| //10.5.3.11 LSA identifier (Localised Service Area) |
| //********************************************************************** |
| type record LSA_IdentifierTLV |
| { |
| BIT7 elementIdentifier, |
| BIT1 spare, |
| LIN1 lengthIndicator, |
| LSA_IdentifierV valueField |
| } with { variant "PRESENCE (elementIdentifier = '1001000'B)"; //'48'O 7 bits |
| variant (lengthIndicator) "LENGTHTO (valueField)"}; |
| |
| type record LSA_IdentifierV |
| { |
| octetstring lsa_id length (0..3) |
| }; |
| |
| //10.5.3.12 Daylight Saving Time |
| //********************************************************************** |
| type record DaylightSavingTimeTLV |
| { |
| OCT1 elementIdentifier, |
| LIN1 lengthIndicator, |
| DaylightSavingTimeV valueField |
| } with { variant "PRESENCE (elementIdentifier = '49'O)"; |
| variant (lengthIndicator) "LENGTHTO (valueField)"}; |
| |
| type record DaylightSavingTimeV |
| { |
| BIT2 valueField, |
| BIT6 spare // Shall be set to 000000 |
| }; |
| |
| //10.5.3.13 Emergency Number List |
| //********************************************************************** |
| type record EmergencyNumberListTLV |
| { |
| OCT1 elementIdentifier, |
| LIN1 lengthIndicator, |
| EmergencyNumberListV emergencyNumberListV |
| } with { variant "PRESENCE (elementIdentifier = '34'O)"; |
| variant (lengthIndicator) "LENGTHTO (emergencyNumberListV)"}; |
| |
| type record of EmergencyNumber EmergencyNumberListV |
| |
| type record EmergencyNumber |
| { |
| LIN1 lengthIndicator, |
| EmergencyServiceCategory emergencyServiceCategory, |
| hexstring emergencyNumber length (1..44) |
| } with { variant (lengthIndicator) "LENGTHTO (emergencyServiceCategory,emergencyNumber)"; |
| variant "PADDING(yes)"; |
| variant "PADDING_PATTERN('1111'B)"}; |
| |
| type record EmergencyServiceCategory |
| { |
| BIT5 valueFiled, |
| BIT3 spare //'000'B |
| }; |
| |
| //10.5.3.14 Additional Update Parameter |
| //moved into MobileL3_CommonIE_Types |
| |
| |
| //10.5.3.16 MM Timer |
| //********************************************************************** |
| type record MM_TimerTLV |
| { |
| OCT1 elementIdentifier, |
| LIN1 lengthIndicator, |
| MM_TimerV valueField |
| } with { variant "PRESENCE (elementIdentifier = '36'O)"; |
| variant (lengthIndicator) "LENGTHTO (valueField)"}; |
| |
| type record MM_TimerV |
| { |
| BIT5 timerValue, |
| BIT3 unit |
| } |
| |
| //============================================================================ |
| // 24.008/9.2 Messages for mobility management (MM) |
| //============================================================================ |
| |
| //********************************************************************** |
| // Security Messages |
| //********************************************************************** |
| |
| // 9.2.1 Authentication Reject |
| //********************************************************************** |
| type record PDU_ML3_AuthenticationReject |
| { |
| BIT6 messageType, // '010001'B (AuthenticationReject) |
| BIT2 nsd |
| }; |
| |
| // 9.2.2 Authentication Request |
| //********************************************************************** |
| type record PDU_ML3_AuthenticationRequest |
| { |
| BIT6 messageType, // '010010'B |
| BIT2 nsd, |
| CipheringKeySequenceNumberV cipheringKeySequenceNumber, |
| BIT4 spare2_4, // B'0000 |
| OCT16 authenticationParRAND, |
| AuthenticationParameterAUTNTLV authenticationParAUTN optional |
| // added by ethcky acc to 10/155 17_1/APT 210 26/1 Uen Rev A |
| } with { variant "TAG ( |
| authenticationParAUTN, elementIdentifier = '20'O ) "}; |
| |
| // 9.2.3 Authentication Response |
| //**************************************************************************** |
| type record PDU_ML3_AuthenticationResponse |
| { |
| BIT6 messageType, // '010100'B (AuthenticationResponse) |
| BIT2 nsd, |
| OCT4 authenticationParSRES, //10.5.3.2 |
| AuthenticationResponseParameterUMTSTLV authenticationParSRESext optional |
| } with { variant "TAG (authenticationParSRESext, elementIdentifier = '21'O )"}; |
| |
| // 9.2.3a Authentication Failure |
| //**************************************************************************** |
| type record PDU_ML3_AuthenticationFailure |
| { |
| BIT6 messageType, // '011100'B (AuthenticationFailure) |
| BIT2 nsd, |
| OCT1 rejectCause, //10.5.3.6 |
| AuthenticationFailureParametersTLV authenticationParFailure optional |
| } with { variant "TAG (authenticationParFailure , elementIdentifier = '22'O ) " }; |
| |
| //********************************************************************** |
| // Mobility Management Message Types (TS 24.008/ chapter 9) |
| // Connection management (CM) messages |
| //********************************************************************** |
| |
| // 9.2.4 CM Re-establishment Request |
| //********************************************************************** |
| type record PDU_ML3_CMReestablishmentRequest |
| { |
| BIT6 messageType, // '101000'B |
| BIT2 nsd, |
| CipheringKeySequenceNumberV cipheringKeySequenceNumber, |
| BIT4 spare, |
| MobileStationClassmark2_LV mobileStationClassmark2, |
| MobileIdentityLV mobileIdentityLV, |
| LocationAreaIdentification_TV locationAreaIdentification optional, |
| DevicePropertiesTV deviceProperties optional |
| } with { variant "TAG (locationAreaIdentification, elementIdentifier = '13'O; |
| deviceProperties, elementIdentifier = '1101'B;) |
| "}; |
| |
| // 9.2.5 CM Service Accept (NW->MS) |
| //********************************************************************** |
| type record PDU_ML3_CMServiceAccept |
| { |
| BIT6 messageType, // '100001'B |
| BIT2 nsd |
| }; |
| |
| // 9.2.5a CMServicePrompt (NW->MS) |
| //********************************************************************** |
| type record PDU_ML3_CMServicePrompt |
| { |
| BIT6 messageType, // '100101'B |
| BIT2 nsd, |
| PdAndSapi pd_sapi |
| }; |
| |
| // 9.2.6 CMServiceReject (NW->MS) |
| //********************************************************************** |
| type record PDU_ML3_CMServiceReject |
| { |
| BIT6 messageType, // '100010'B |
| BIT2 nsd, |
| OCT1 rejectCause, //10.5.3.6 |
| MM_TimerTLV t3246_Value optional |
| }; |
| |
| // 9.2.7 CM Service Abort (MS->NW to request the abortion) |
| //********************************************************************** |
| type record PDU_ML3_CMServiceAbort |
| { |
| BIT6 messageType, // '100011'B |
| BIT2 nsd |
| }; |
| |
| // 9.2.8 Abort (NW->MS to initiate the abortion) |
| //********************************************************************** |
| type record PDU_ML3_Abort |
| { |
| BIT6 messageType, // '100010'B |
| BIT2 nsd, |
| OCT1 rejectCause //10.5.3.6 |
| }; |
| |
| // 9.2.9 CM Service Request (MS->NW) |
| //********************************************************************** |
| type record PDU_ML3_CMServiceRequest |
| { |
| BIT6 messageType,// '100100'B |
| BIT2 nsd, |
| BIT4 cm_ServiceType, // '0001'B establishment MOC |
| // '0010'B Emergency Call |
| // '0100'SMS B |
| // '1000'B SS activation |
| CipheringKeySequenceNumberV cipheringKeySequenceNumber, |
| MobileStationClassmark2_LV mobileStationClassmark2, |
| MobileIdentityLV mobileIdentity, |
| PriorityLevel_ML3 priorityLevel optional, |
| AdditionalUpdateParameterTV additionalUpdateParameterTV optional, |
| DevicePropertiesTV deviceProperties optional |
| } with { variant "TAG (priorityLevel, elementIdentifier = '1000'B; |
| deviceProperties, elementIdentifier = '1101'B;) |
| "}; |
| |
| //9.2.10 Identity Request |
| //********************************************************************** |
| type record PDU_ML3_IdentityRequest |
| { |
| BIT6 messageType, // '011000'B ( IdentityRequest ) |
| BIT2 nsd, |
| BIT3 identityType, // IMSI:'001'B IMEI:'010'B IMEISV:'011'B |
| //(TMSI:'100'B not allowed?) 10.5.3.4 |
| BIT5 spare1_5 // '00000'B |
| }; |
| |
| //9.2.11 Identity Response |
| //********************************************************************** |
| type record PDU_ML3_IdentityResponse |
| { |
| BIT6 messageType, // '011001'B (IdentityResponse) |
| BIT2 nsd, |
| MobileIdentityLV mobileIdentityLV, |
| P_TMSI_TypeTV p_TMSI_TypeTV optional, |
| RoutingAreaIdentification2TLV routingAreaIdentification2TLV optional, |
| P_TMSISignature2TLV p_TMSISignature2TLV optional |
| }; |
| |
| //9.2.12 IMSI Detach Indication |
| //********************************************************************** |
| type record PDU_ML3_IMSI_DetachIndication |
| { |
| BIT6 messageType, // '000001'IMSI Detach Indication |
| BIT2 nsd, |
| MobileStationClassmark1_V mobileStationClassmark1, |
| MobileIdentityLV mobileIdentityLV |
| }; |
| |
| //**************************************************************************** |
| // 24.008/9 Mobility Management message contents |
| //**************************************************************************** |
| |
| // 9.2.13 Location Update Accept |
| //**************************************************************************** |
| type record PDU_ML3_LocationUpdateAccept |
| { |
| BIT6 messageType, // '000010'B (LocationUpdateRequest) |
| BIT2 nsd, |
| LocationAreaIdentification_V locationAreaIdentification, |
| MobileIdentityTLV mobileIdentityTLV optional, |
| Type2 followOnProceed optional, |
| CTS_Permission cTS_Permission optional, |
| PLMNListTLV equivalentPLMNs optional, |
| EmergencyNumberListTLV emergencyNumberList optional, |
| GPRSTimer3TLV perMS_T3212 optional |
| } with { variant "TAG ( mobileIdentityTLV, elementIdentifier = '0010111'B; //'17'O; |
| followOnProceed, elementIdentifier = 'A1'O; |
| cTS_Permission, elementIdentifier = 'A2'O; |
| equivalentPLMNs, elementIdentifier = '1001010'B; //'4A'O; |
| emergencyNumberList, elementIdentifier = '34'O;) "}; |
| |
| // 9.2.14 Location Update Reject (NW->MS) |
| //**************************************************************************** |
| type record PDU_ML3_LocationUpdateReject |
| { |
| BIT6 messageType, // '000100'B (LocationUpdateReject) |
| BIT2 nsd, |
| OCT1 rejectCause, // see 10.5.3.6 |
| MM_TimerTLV t3246_Value optional |
| }; |
| |
| //9.2.15 Location Update Request (MS->NW) |
| //**************************************************************************** |
| type record PDU_ML3_LocationUpdateRequest |
| { |
| BIT6 messageType, // B'_001000 (LocationUpdateRequest) |
| BIT2 nsd, |
| LocationUpdatingType locationUpdatingType, |
| CipheringKeySequenceNumberV cipheringKeySequenceNumber, |
| LocationAreaIdentification_V locationAreaIdentification, |
| MobileStationClassmark1_V mobileStationClassmark1, |
| MobileIdentityLV mobileIdentityLV, |
| ClassmarkInformationType2_forUMTS classmarkInformationType2_forUMTS optional, |
| AdditionalUpdateParameterTV additionalUpdateParameterTV optional, |
| DevicePropertiesTV deviceProperties optional, |
| MS_NetworkFeatureSupportTV mS_NetworkFeatureSupport optional |
| } with { |
| variant "TAG ( |
| deviceProperties, elementIdentifier = '1101'B; |
| mS_NetworkFeatureSupport, elementIdentifier = '1110'B; //E |
| )" |
| }; |
| |
| //9.2.15a MM information |
| //**************************************************************************** |
| type record PDU_ML3_MMInformation |
| { |
| BIT6 messageType, // |
| BIT2 nsd, |
| NetworkNameTLV fullNetworkName optional, |
| NetworkNameTLV shortNetworkName optional, |
| TimeZoneTV localtimeZone optional, |
| TimeZoneAndTimeTV univTime optional, |
| LSA_IdentifierTLV lSAIdentity optional, |
| DaylightSavingTimeTLV networkDST optional |
| } with { variant "TAG ( |
| fullNetworkName, elementIdentifier = '1000011'B; // '43'O; |
| shortNetworkName, elementIdentifier = '1000101'B; // '45'O; |
| localtimeZone, elementIdentifier = '1000110'B; // '46'O; |
| univTime, elementIdentifier = '1000111'B; // '47'O; |
| lSAIdentity, elementIdentifier = '1001000'B; //' 48'O; |
| networkDST, elementIdentifier = '49'O;)"}; |
| |
| //9.2.16 MM Status |
| //**************************************************************************** |
| type record PDU_ML3_MMStatus |
| { |
| BIT6 messageType, |
| BIT2 nsd, |
| OCT1 rejectCause //10.5.3.6 |
| }; |
| |
| //9.2.17 TMSI reallocation command (NW->MS) |
| //**************************************************************************** |
| type record PDU_ML3_TMSI_ReallocationCommand |
| { |
| BIT6 messageType, // '011010'B |
| BIT2 nsd, |
| LocationAreaIdentification_V locationAreaIdentification, |
| MobileIdentityLV mobileIdentity |
| }; |
| |
| //9.2.18 TMSI reallocation complete (MS->NW) |
| //**************************************************************************** |
| type record PDU_ML3_TMSI_ReallocationComplete |
| { |
| BIT6 messageType, // '011011'B |
| BIT2 nsd |
| }; |
| |
| //9.2.19 MM Null (MS->NW) |
| //**************************************************************************** |
| type record PDU_ML3_MMNull |
| { |
| BIT6 messageType, // '110000'B |
| BIT2 nsd |
| }; |
| |
| |
| // *************************************************************************** |
| // * Mobility Management Messages |
| // *************************************************************************** |
| // 24.008/ Table 10.2 |
| type union PDU_ML3_MM |
| { |
| PDU_ML3_IMSI_DetachIndication imsiDetachIndication, |
| PDU_ML3_LocationUpdateAccept locationUpdateAccept, |
| PDU_ML3_LocationUpdateReject locationUpdateReject, |
| PDU_ML3_LocationUpdateRequest locationUpdateRequest, |
| |
| PDU_ML3_AuthenticationReject authenticationReject, |
| PDU_ML3_AuthenticationRequest authenticationRequest, |
| PDU_ML3_AuthenticationResponse authenticationResponse, |
| PDU_ML3_AuthenticationFailure authenticationFailure, |
| PDU_ML3_IdentityRequest identityRequest, |
| PDU_ML3_IdentityResponse identityResponse, |
| PDU_ML3_TMSI_ReallocationCommand tmsiReallocCommand, |
| PDU_ML3_TMSI_ReallocationComplete tmsiReallocComplete, |
| |
| PDU_ML3_CMServiceAbort cMServiceAbort, |
| PDU_ML3_CMServiceAccept cMServiceAccept, |
| PDU_ML3_CMServiceReject cMServiceReject, |
| PDU_ML3_CMServiceRequest cMServiceRequest, |
| PDU_ML3_CMServicePrompt cMServicePrompt, |
| PDU_ML3_CMReestablishmentRequest cMReEstablReq, |
| PDU_ML3_Abort abort, |
| |
| PDU_ML3_MMNull mMNull, |
| PDU_ML3_MMStatus mMStatus, |
| PDU_ML3_MMInformation mMInformation |
| } with { variant "TAG ( |
| imsiDetachIndication, messageType ='000001'B; //registration msgs |
| locationUpdateAccept, messageType ='000010'B; |
| locationUpdateReject, messageType ='000100'B; |
| locationUpdateRequest, messageType ='001000'B; |
| |
| authenticationReject, messageType ='010001'B;//security msgs |
| authenticationRequest, messageType ='010010'B; |
| authenticationResponse, messageType ='010100'B; |
| authenticationFailure, messageType ='011100'B; |
| identityRequest, messageType ='011000'B; |
| identityResponse, messageType ='011001'B; |
| tmsiReallocCommand, messageType ='011010'B; |
| tmsiReallocComplete, messageType ='011011'B; |
| |
| cMServiceAbort, messageType ='100011'B; //conn, mgmt |
| cMServiceAccept, messageType ='100001'B; |
| cMServiceReject, messageType ='100010'B; |
| cMServiceRequest, messageType ='100100'B; |
| cMServicePrompt, messageType ='100101'B; |
| cMReEstablReq, messageType ='101000'B; |
| abort, messageType ='101001'B; |
| |
| mMNull, messageType ='110000'B; //misc |
| mMStatus, messageType ='110001'B; |
| mMInformation, messageType ='110010'B; |
| )"}; |
| |
| }//end of module |
| with { |
| extension "version R1B" |
| encode "RAW" |
| } |
| |