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

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_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 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_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 EPS_UpdateTypeValue tsc_EpsUpdate_Combined_TaLaUpdate_ISRActivated := '101'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 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_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_Congestion                          := '00010110'B;
const NAS_CauseValue_Type tsc_UeSecurityCapsMismatch                    := '00010111'B;
const NAS_CauseValue_Type tsc_Cause_NotAuthorizedCSG                    := '00011001'B;
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_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;

// 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 PdnTypeValue tsc_PdnType_IPv4   := '001'B;
const PdnTypeValue tsc_PdnType_IPv6   := '010'B;
const PdnTypeValue tsc_PdnType_IPv4v6 := '011'B;
const TmsiStatusValue tsc_NoValidTmsi := '0'B;

const ProcedureTransactionIdentifier tsc_PTI_Unassigned := '00'O; // TS 24.007 clause 11.2.3.1a
}
