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

    Alt-RAB-Parameters,
    Ass-RAB-Parameters,
    Cause,
    CN-DomainIndicator,
    DataVolumeReference,
    DataVolumeReportingIndication,
    DL-GTP-PDU-SequenceNumber,
    DL-N-PDU-SequenceNumber,
    GERAN-Classmark,
    GTP-TEI,
    IPMulticastAddress,
    IuSignallingConnectionIdentifier,
    IuTransportAssociation,
    MBMS-PTP-RAB-ID,
    MBMSHCIndicator,
    NAS-PDU,
    NAS-SynchronisationIndicator,
    PDP-TypeInformation,
    RAB-ID,
    RAB-Parameters,
    Requested-RAB-Parameter-Values,
    SAPI,
    Service-Handover,
    TMGI,
    TransportLayerAddress,
    UL-GTP-PDU-SequenceNumber,
    UL-N-PDU-SequenceNumber,
    UnsuccessfullyTransmittedDataVolume,
    UP-ModeVersions,
    UserPlaneMode

FROM RANAP-IEs

    maxnoofMulticastServicesPerUE,
    maxNrOfIuSigConIds,
    maxNrOfDTs,
    maxNrOfVol,
    maxNrOfRABs,
    maxProtocolIEs,
    maxProtocolExtensions

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,
    ...
}

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

DataVolumeReportRequest ::= SEQUENCE {
    dataVolumeReportRequest-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,
    ...
}

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,
    ...
}

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

RAB-ReleaseList	::= SEQUENCE {
	raB-ReleaseList-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-SetupOrModifyList 		::= RAB-IE-ContainerPairList

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,
    ...
}

ProtocolExtensionContainer ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF ProtocolExtensionField

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

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

ProtocolIE-Container ::= SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE

ProtocolIE-FieldPair ::= SEQUENCE {
	id			ProtocolIE-ID,
	firstCriticality	Criticality,
	firstValue		ANY,
	secondCriticality	Criticality,
	secondValue		ANY
}

ProtocolIE-ContainerPair ::= SEQUENCE (SIZE (0..maxProtocolIEs)) OF ProtocolIE-FieldPair

RAB-IE-ContainerList		::= SEQUENCE (SIZE (1..maxNrOfRABs)) OF ProtocolIE-Container
RAB-IE-ContainerPairList	::= SEQUENCE (SIZE (1..maxNrOfRABs)) OF ProtocolIE-FieldPair
ProtocolError-IE-ContainerList	::= SEQUENCE (SIZE (1..maxNrOfRABs)) OF ProtocolIE-Container
IuSigConId-IE-ContainerList	::= SEQUENCE (SIZE (1..maxNrOfIuSigConIds)) OF ProtocolIE-Container
DirectTransfer-IE-ContainerList	::= SEQUENCE (SIZE (1..maxNrOfDTs)) OF ProtocolIE-Container

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

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

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

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

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

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

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

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

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

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

RAB-DataVolumeReportRequestItem ::= SEQUENCE {
	rAB-ID		RAB-ID,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RABs-failed-to-reportList ::= SEQUENCE {
	raBs-failed-to-reportList-ies SEQUENCE (SIZE(0..maxProtocolIEs)) OF IE,
	...
}

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

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

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

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

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

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

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

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

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

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

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

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

RAB-DataVolumeReportItem ::= SEQUENCE {
	rAB-ID					RAB-ID,
	dl-UnsuccessfullyTransmittedDataVolume	DataVolumeList		OPTIONAL
	-- This IE shall always be present although its presence is optional --,
	iE-Extensions ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ReleasedItem-IuRelComp	::= SEQUENCE {
		rAB-ID				RAB-ID,
		dL-GTP-PDU-SequenceNumber	DL-GTP-PDU-SequenceNumber 	OPTIONAL,
		uL-GTP-PDU-SequenceNumber	UL-GTP-PDU-SequenceNumber 	OPTIONAL,
		iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-RelocationReleaseItem ::= SEQUENCE {
	rAB-ID						RAB-ID,
	iE-Extensions					ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-DataForwardingItem ::= SEQUENCE {
	rAB-ID						RAB-ID,
	transportLayerAddress				TransportLayerAddress,
	iuTransportAssociation				IuTransportAssociation,
	iE-Extensions					ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-DataForwardingItem-SRNS-CtxReq ::= SEQUENCE {
	rAB-ID		RAB-ID,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-SetupItem-RelocReq ::= SEQUENCE {
	rAB-ID				RAB-ID,
	nAS-SynchronisationIndicator	NAS-SynchronisationIndicator	OPTIONAL,
	rAB-Parameters			RAB-Parameters,
	dataVolumeReportingIndication	DataVolumeReportingIndication 	OPTIONAL
	-- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
	pDP-TypeInformation		PDP-TypeInformation		OPTIONAL
	-- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
	userPlaneInformation		UserPlaneInformation,
	transportLayerAddress		TransportLayerAddress,
	iuTransportAssociation		IuTransportAssociation,
	service-Handover		Service-Handover		OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

UserPlaneInformation ::= SEQUENCE {
	userPlaneMode		UserPlaneMode,
	uP-ModeVersions		UP-ModeVersions,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

CNMBMSLinkingInformation ::= SEQUENCE {
	joinedMBMSBearerService-IEs	JoinedMBMSBearerService-IEs,
	iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

JoinedMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
	SEQUENCE {
		tMGI			TMGI,
		mBMS-PTP-RAB-ID		MBMS-PTP-RAB-ID,
		iE-Extensions		ProtocolExtensionContainer OPTIONAL,
		...
	}

RAB-SetupItem-RelocReqAck ::= SEQUENCE {
	rAB-ID			RAB-ID,
	transportLayerAddress	TransportLayerAddress	OPTIONAL,
	iuTransportAssociation	IuTransportAssociation	OPTIONAL,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-FailedItem ::= SEQUENCE {
	rAB-ID		RAB-ID,
	cause		Cause,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ContextItem ::= SEQUENCE {
	rAB-ID				RAB-ID,
	dl-GTP-PDU-SequenceNumber	DL-GTP-PDU-SequenceNumber 	OPTIONAL,
	ul-GTP-PDU-SequenceNumber	UL-GTP-PDU-SequenceNumber 	OPTIONAL,
	dl-N-PDU-SequenceNumber		DL-N-PDU-SequenceNumber 	OPTIONAL,
	ul-N-PDU-SequenceNumber		UL-N-PDU-SequenceNumber 	OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer	OPTIONAL,
	...
}

RABs-ContextFailedtoTransferItem::= SEQUENCE {
	rAB-ID		RAB-ID,
	cause		Cause,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RABs-failed-to-reportItem::= SEQUENCE {
	rAB-ID		RAB-ID,
	cause		Cause,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

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

ResetResourceItem ::= SEQUENCE {
	iuSigConId		IuSignallingConnectionIdentifier,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

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

ResetResourceAckItem ::= SEQUENCE {
	iuSigConId		IuSignallingConnectionIdentifier,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ReleaseItem ::= SEQUENCE {
	rAB-ID		RAB-ID,
	cause		Cause,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-SetupItem-EnhancedRelocCompleteReq ::= SEQUENCE {
	rAB-ID				RAB-ID,
	transportLayerAddressReq1	TransportLayerAddress	OPTIONAL,
	iuTransportAssociationReq1	IuTransportAssociation	OPTIONAL,
	ass-RAB-Parameters		Ass-RAB-Parameters OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-SetupItem-EnhancedRelocCompleteRes ::= SEQUENCE {
	rAB-ID				RAB-ID,
	rAB-Parameters			RAB-Parameters	OPTIONAL,
	userPlaneInformation		UserPlaneInformation,
	transportLayerAddressRes1	TransportLayerAddress	OPTIONAL,
	iuTransportAssociationRes1	IuTransportAssociation	OPTIONAL,
	rab2beReleasedList		RAB-ToBeReleasedList-EnhancedRelocCompleteRes OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ToBeReleasedItem-EnhancedRelocCompleteRes ::= SEQUENCE {
	rAB-ID		RAB-ID,
	cause		Cause,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-SetupOrModifyItemFirst ::= SEQUENCE {
	rAB-ID				RAB-ID,
	nAS-SynchronisationIndicator	NAS-SynchronisationIndicator	OPTIONAL,
	rAB-Parameters			RAB-Parameters			OPTIONAL,
	userPlaneInformation		UserPlaneInformation		OPTIONAL,
	transportLayerInformation	TransportLayerInformation	OPTIONAL,
	service-Handover		Service-Handover		OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer	OPTIONAL,
	...
}

TransportLayerInformation ::= SEQUENCE {
	transportLayerAddress	TransportLayerAddress,
	iuTransportAssociation	IuTransportAssociation,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-SetupOrModifyItemSecond ::= SEQUENCE {
	pDP-TypeInformation				PDP-TypeInformation 		OPTIONAL,
	dataVolumeReportingIndication			DataVolumeReportingIndication 	OPTIONAL,
	dl-GTP-PDU-SequenceNumber			DL-GTP-PDU-SequenceNumber 	OPTIONAL,
	ul-GTP-PDU-SequenceNumber			UL-GTP-PDU-SequenceNumber 	OPTIONAL,
	dl-N-PDU-SequenceNumber				DL-N-PDU-SequenceNumber 	OPTIONAL,
	ul-N-PDU-SequenceNumber				UL-N-PDU-SequenceNumber		OPTIONAL,
	iE-Extensions					ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-SetupOrModifiedItem ::= SEQUENCE {
	rAB-ID			RAB-ID,
	transportLayerAddress	TransportLayerAddress	OPTIONAL,
	iuTransportAssociation	IuTransportAssociation	OPTIONAL,
	dl-dataVolumes		DataVolumeList		OPTIONAL,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ReleasedItem ::= SEQUENCE {
	rAB-ID				RAB-ID,
	dl-dataVolumes			DataVolumeList		OPTIONAL,
	dL-GTP-PDU-SequenceNumber	DL-GTP-PDU-SequenceNumber			OPTIONAL,
	uL-GTP-PDU-SequenceNumber	UL-GTP-PDU-SequenceNumber			OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

DataVolumeList ::= SEQUENCE (SIZE (1..maxNrOfVol)) OF
	SEQUENCE {
		dl-UnsuccessfullyTransmittedDataVolume	UnsuccessfullyTransmittedDataVolume,
		dataVolumeReference			DataVolumeReference	OPTIONAL,
		iE-Extensions				ProtocolExtensionContainer OPTIONAL,
		...
	}

RAB-QueuedItem ::= SEQUENCE {
	rAB-ID		RAB-ID,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ReleaseFailedList ::= RAB-FailedList

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

GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item ::= SEQUENCE {
	rAB-ID		RAB-ID,
	cause		Cause,
	gERAN-Classmark	GERAN-Classmark		OPTIONAL,
	iE-Extensions	ProtocolExtensionContainer OPTIONAL,
	...
}

DirectTransferInformationItem-RANAP-RelocInf ::= SEQUENCE {
	nAS-PDU			NAS-PDU,
	sAPI			SAPI,
	cN-DomainIndicator	CN-DomainIndicator,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

RAB-ContextItem-RANAP-RelocInf ::= SEQUENCE {
	rAB-ID				RAB-ID,
	dl-GTP-PDU-SequenceNumber	DL-GTP-PDU-SequenceNumber 	OPTIONAL,
	ul-GTP-PDU-SequenceNumber	UL-GTP-PDU-SequenceNumber 	OPTIONAL,
	dl-N-PDU-SequenceNumber		DL-N-PDU-SequenceNumber		OPTIONAL,
	ul-N-PDU-SequenceNumber		UL-N-PDU-SequenceNumber		OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer	OPTIONAL,
	...
}

RAB-SetupItem-EnhRelocInfoReq ::= SEQUENCE {
	rAB-ID				RAB-ID,
	cN-DomainIndicator		CN-DomainIndicator,
	rAB-Parameters			RAB-Parameters,
	dataVolumeReportingIndication	DataVolumeReportingIndication 	OPTIONAL
	-- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
	pDP-TypeInformation		PDP-TypeInformation		OPTIONAL
	-- This IE shall be present if the CN domain indicator IE is set to "PS domain" --,
	userPlaneInformation		UserPlaneInformation,
	dataForwardingInformation	TNLInformationEnhRelInfoReq	OPTIONAL,
	sourceSideIuULTNLInfo		TNLInformationEnhRelInfoReq	OPTIONAL,
	
	service-Handover		Service-Handover		OPTIONAL,
	alt-RAB-Parameters		Alt-RAB-Parameters		OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer	OPTIONAL,
	...
}

TNLInformationEnhRelInfoReq ::=SEQUENCE{
	transportLayerAddress	TransportLayerAddress,
	iuTransportAssociation	IuTransportAssociation,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}


RAB-SetupItem-EnhRelocInfoRes ::= SEQUENCE {
	cN-DomainIndicator		CN-DomainIndicator,
	rAB-ID				RAB-ID,
	dataForwardingInformation	TNLInformationEnhRelInfoRes	OPTIONAL,
	ass-RAB-Parameters		Ass-RAB-Parameters		OPTIONAL,
	iE-Extensions			ProtocolExtensionContainer	OPTIONAL,
	...
}

RAB-FailedItem-EnhRelocInfoRes ::= SEQUENCE {
	cN-DomainIndicator	CN-DomainIndicator,
	rAB-ID			RAB-ID,
	cause			Cause,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

TNLInformationEnhRelInfoRes ::=SEQUENCE{
	dl-forwardingTransportLayerAddress	TransportLayerAddress,
	dl-forwardingTransportAssociation	IuTransportAssociation,
	iE-Extensions 				ProtocolExtensionContainer OPTIONAL,
	...
}


-- **************************************************************
--
-- RAB MODIFICATION REQUEST ELEMENTARY PROCEDURE
--
-- **************************************************************

RAB-ModifyItem ::= SEQUENCE {
	rAB-ID				RAB-ID,
	requested-RAB-Parameter-Values	Requested-RAB-Parameter-Values,
	iE-Extensions			ProtocolExtensionContainer OPTIONAL,
	...
}

MBMSSynchronisationInformation ::= SEQUENCE {
	mBMSHCIndicator		MBMSHCIndicator,
	iPMulticastAddress	IPMulticastAddress,
	gTPDLTEID		GTP-TEI,
	iE-Extensions		ProtocolExtensionContainer OPTIONAL,
	...
}

LeftMBMSBearerService-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
	SEQUENCE {
		tMGI		TMGI,
		iE-Extensions	ProtocolExtensionContainer OPTIONAL,
		...
	}

UnsuccessfulLinking-IEs ::= SEQUENCE (SIZE (1.. maxnoofMulticastServicesPerUE)) OF
	SEQUENCE {
		tMGI		TMGI,
		cause		Cause,
		iE-Extensions	ProtocolExtensionContainer OPTIONAL,
		...
	}


END
