RANAP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
umts-Access (20) modules (3) ranap(0) version1 (1) ranap-PDU (255) }

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
    Criticality,
    ProcedureCode,
    ProtocolIE-ID

FROM RANAP-CommonDataTypes

    maxProtocolIEs

FROM RANAP-Constants;

RANAP-PDU ::= CHOICE {
    initiatingMessage       InitiatingMessage,
    successfulOutcome       SuccessfulOutcome,
    unsuccessfulOutcome     UnsuccessfulOutcome,
    outcome     	    Outcome,
    ...
}

InitiatingMessage ::= SEQUENCE {
    procedureCode   ProcedureCode,
    criticality     Criticality,
    value           ANY
}

SuccessfulOutcome ::= SEQUENCE {
    procedureCode   ProcedureCode,
    criticality     Criticality,
    value           ANY
}

UnsuccessfulOutcome ::= SEQUENCE {
    procedureCode   ProcedureCode,
    criticality     Criticality,
    value           ANY
}

Outcome ::= SEQUENCE {
    procedureCode   ProcedureCode,
    criticality     Criticality,
    value           ANY
}


Iu-ReleaseCommand ::= SEQUENCE {
    iu-ReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Iu-ReleaseComplete ::= SEQUENCE {
    iu-ReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationRequired ::= SEQUENCE {
    relocationRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationCommand ::= SEQUENCE {
    relocationCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationPreparationFailure ::= SEQUENCE {
    relocationPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationRequest ::= SEQUENCE {
    relocationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationRequestAcknowledge ::= SEQUENCE {
    relocationRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationFailure ::= SEQUENCE {
    relocationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationCancel ::= SEQUENCE {
    relocationCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationCancelAcknowledge ::= SEQUENCE {
    relocationCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SRNS-ContextRequest ::= SEQUENCE {
    sRNS-ContextRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SRNS-ContextResponse ::= SEQUENCE {
    sRNS-ContextResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SecurityModeCommand ::= SEQUENCE {
    securityModeCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SecurityModeComplete ::= SEQUENCE {
    securityModeComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SecurityModeReject ::= SEQUENCE {
    securityModeReject-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

DataVolumeReportRequest ::= SEQUENCE {
    dataVolumeReportRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

DataVolumeReport ::= SEQUENCE {
    dataVolumeReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Reset ::= SEQUENCE {
    reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

ResetAcknowledge ::= SEQUENCE {
    resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RAB-ReleaseRequest ::= SEQUENCE {
    rAB-ReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Iu-ReleaseRequest ::= SEQUENCE {
    iu-ReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationDetect ::= SEQUENCE {
    relocationDetect-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RelocationComplete ::= SEQUENCE {
    relocationComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Paging ::= SEQUENCE {
    paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

CommonID ::= SEQUENCE {
    commonID-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

CN-InvokeTrace ::= SEQUENCE {
    cN-InvokeTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

CN-DeactivateTrace ::= SEQUENCE {
    cN-DeactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

LocationReportingControl ::= SEQUENCE {
    locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

LocationReport ::= SEQUENCE {
    locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

InitialUE-Message ::= SEQUENCE {
    initialUE-Message-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

DirectTransfer ::= SEQUENCE {
    directTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Overload ::= SEQUENCE {
    overload-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

ErrorIndication ::= SEQUENCE {
    errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SRNS-DataForwardCommand ::= SEQUENCE {
    sRNS-DataForwardCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

ForwardSRNS-Context ::= SEQUENCE {
    forwardSRNS-Context-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RAB-AssignmentRequest ::= SEQUENCE {
    rAB-AssignmentRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RAB-AssignmentResponse ::= SEQUENCE {
    rAB-AssignmentResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

PrivateMessage ::= SEQUENCE {
    privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

ResetResource ::= SEQUENCE {
    resetResource-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

ResetResourceAcknowledge ::= SEQUENCE {
    resetResourceAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RANAP-RelocationInformation ::= SEQUENCE {
    rANAP-RelocationInformation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RAB-ModifyRequest ::= SEQUENCE {
    rAB-ModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

LocationRelatedDataRequest ::= SEQUENCE {
    locationRelatedDataRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

LocationRelatedDataResponse ::= SEQUENCE {
    locationRelatedDataResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

LocationRelatedDataFailure ::= SEQUENCE {
    locationRelatedDataFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

InformationTransferIndication ::= SEQUENCE {
    informationTransferIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

InformationTransferConfirmation ::= SEQUENCE {
    informationTransferConfirmation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

InformationTransferFailure ::= SEQUENCE {
    informationTransferFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

UESpecificInformationIndication ::= SEQUENCE {
    uESpecificInformationIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

DirectInformationTransfer ::= SEQUENCE {
    directInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

UplinkInformationExchangeRequest ::= SEQUENCE {
    uplinkInformationExchangeRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

UplinkInformationExchangeResponse ::= SEQUENCE {
    uplinkInformationExchangeResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

UplinkInformationExchangeFailure ::= SEQUENCE {
    uplinkInformationExchangeFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionStart ::= SEQUENCE {
    mBMSSessionStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionStartResponse ::= SEQUENCE {
    mBMSSessionStartResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionStartFailure ::= SEQUENCE {
    mBMSSessionStartFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionUpdate ::= SEQUENCE {
    mBMSSessionUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionUpdateResponse ::= SEQUENCE {
    mBMSSessionUpdateResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionUpdateFailure ::= SEQUENCE {
    mBMSSessionUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionStop ::= SEQUENCE {
    mBMSSessionStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSSessionStopResponse ::= SEQUENCE {
    mBMSSessionStopResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSUELinkingRequest ::= SEQUENCE {
    mBMSUELinkingRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSUELinkingResponse ::= SEQUENCE {
    mBMSUELinkingResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRegistrationRequest ::= SEQUENCE {
    mBMSRegistrationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRegistrationResponse ::= SEQUENCE {
    mBMSRegistrationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRegistrationFailure ::= SEQUENCE {
    mBMSRegistrationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSCNDe-RegistrationRequest ::= SEQUENCE {
    mBMSCNDe-RegistrationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSCNDe-RegistrationResponse ::= SEQUENCE {
    mBMSCNDe-RegistrationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRABEstablishmentIndication ::= SEQUENCE {
    mBMSRABEstablishmentIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRABReleaseRequest ::= SEQUENCE {
    mBMSRABReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRABRelease ::= SEQUENCE {
    mBMSRABRelease-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

MBMSRABReleaseFailure ::= SEQUENCE {
    mBMSRABReleaseFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

EnhancedRelocationCompleteRequest ::= SEQUENCE {
    enhancedRelocationCompleteRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

EnhancedRelocationCompleteResponse ::= SEQUENCE {
    enhancedRelocationCompleteResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

EnhancedRelocationCompleteFailure ::= SEQUENCE {
    enhancedRelocationCompleteFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

EnhancedRelocationCompleteConfirm ::= SEQUENCE {
    enhancedRelocationCompleteConfirm-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RANAP-EnhancedRelocationInformationRequest ::= SEQUENCE {
    rANAP-EnhancedRelocationInformationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

RANAP-EnhancedRelocationInformationResponse ::= SEQUENCE {
    rANAP-EnhancedRelocationInformationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SRVCC-CSKeysRequest ::= SEQUENCE {
    sRVCC-CSKeysRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

SRVCC-CSKeysResponse ::= SEQUENCE {
    sRVCC-CSKeysResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

UeRadioCapabilityMatchRequest ::= SEQUENCE {
    ueRadioCapabilityMatchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

UeRadioCapabilityMatchResponse ::= SEQUENCE {
    ueRadioCapabilityMatchResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}


IE ::= SEQUENCE {
    id ProtocolIE-ID,
    criticality Criticality,
    value ANY
}

DataVolumeReportList ::= SEQUENCE {
	dataVolumeReportListe-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
	...
}

RAB-ReleasedList-IuRelComp ::= SEQUENCE {
	rabReleasedListIuRelComp-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
	...
}

RAB-RelocationReleaseList ::= SEQUENCE {
	rabRelocationReleaseList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-DataForwardingList ::= SEQUENCE {
	rabDataForwardingList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupList-RelocReq ::= SEQUENCE {
	rabSetupListRelocReq-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupList-RelocReqAck ::= SEQUENCE {
	rabSetupListRelocReqAck-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-FailedList ::= SEQUENCE {
	rabFailedList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-DataForwardingList-SRNS-CtxReq ::= SEQUENCE {
	rabDataForwardingListSRNSCtxReq-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-ContextList ::= SEQUENCE {
	rabContextList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-ContextFailedtoTransferList ::= SEQUENCE {
	rabContextFailedtoTransferList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-DataVolumeReportRequestList ::= SEQUENCE {
	rabDataVolumeReportRequestList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-FailedtoReportList ::= SEQUENCE {
	rabFailedtoReportList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupList-EnhancedRelocCompleteReq ::= SEQUENCE {
	rabSetupListEnhancedRElocCompleteReq-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupList-EnhancedRelocCompleteRes ::= SEQUENCE {
	rabSetupListEnhancedRelocCompleteRes-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-ToBeReleasedList-EnhancedRelocCompleteRes ::= SEQUENCE {
	rabToBeReleasedListEnhancedRelocCompleteRes-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupOrModifiedList ::= SEQUENCE {
	rabSetupOrModifiedList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-ReleasedList ::= SEQUENCE {
	rabReleaesdList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-QueuedList ::= SEQUENCE {
	rabQueuedList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

GERAN-Iumode-RAB-FailedList-RABAssgntResponse ::= SEQUENCE {
	foo-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-ContextList-RANAP-RelocInf ::= SEQUENCE {
	rabContextListRANAPRelocInf-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupList-EnhRelocInfoReq ::= SEQUENCE {
	rabSetupListEnhRelocInfoReq-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-SetupList-EnhRelocInfoRes ::= SEQUENCE {
	rabSetupListEnhRelocInfoRes-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-FailedList-EnhRelocInfoRes ::= SEQUENCE {
	rabFailedListEnhRelocInfoRes-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

RAB-ModifyList ::= SEQUENCE {
	rabModifyList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}


END
