-- **************************************************************
--
-- Information Element Definitions
--
-- **************************************************************

RUA-IEs {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
umts-Access (20) modules (3) rua(5) version1 (1) rUA-IEs (2) }

DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

IMPORTS
	maxNrOfErrors
FROM RUA-Constants

	maxProtocolExtensions,
	Criticality,
	ProcedureCode,
	ProtocolIE-ID,
	TriggeringMessage
FROM RUA-CommonDataTypes

	IE
FROM RUA-PDU;

IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE

CN-DomainIndicator ::= ENUMERATED { 
	cs-domain, 
	ps-domain 
}

CSGMembershipStatus ::= ENUMERATED { 
	member, 
	non-member,
	...
}

Establishment-Cause ::= ENUMERATED {
	emergency-call,
	normal-call,
	... 
}





Context-ID	::=	 BIT STRING (SIZE(24))

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))
		}
	}
}

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
}


Ansi-41-IDNNS ::= BIT STRING (SIZE (14))

RANAP-Message	::= OCTET STRING

RoutingParameter ::= BIT STRING (SIZE (10))


-- **************************************************************
--
-- Cause IE
--
-- **************************************************************

Cause ::= CHOICE {
	radioNetwork	CauseRadioNetwork,
	transport	CauseTransport,
	protocol	CauseProtocol,
	misc		CauseMisc,
	...
}
CauseRadioNetwork ::= ENUMERATED {
	normal,
	connect-failed,
	network-release,
	unspecified,
	...
}
CauseTransport ::= ENUMERATED {
	transport-resource-unavailable,
	unspecified,
	...
}

CauseProtocol ::= ENUMERATED {
	transfer-syntax-error,
	abstract-syntax-error-reject,
	abstract-syntax-error-ignore-and-notify,
	message-not-compatible-with-receiver-state,
	semantic-error,
	unspecified,
	abstract-syntax-error-falsely-constructed-message,
	...
}

CauseMisc ::= ENUMERATED {
	processing-overload,
	hardware-failure,
	o-and-m-intervention,
	unspecified,
	...
}

-- **************************************************************
--
-- CriticalityDiagnostics
--
-- **************************************************************

CriticalityDiagnostics ::= SEQUENCE {
	procedureCode			ProcedureCode	OPTIONAL,
	triggeringMessage		TriggeringMessage	OPTIONAL,
	procedureCriticality		Criticality	OPTIONAL,
	iEsCriticalityDiagnostics	CriticalityDiagnostics-IE-List	OPTIONAL,
	iE-Extensions			IE-Extensions	OPTIONAL,
	...
}

CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-List-Value
CriticalityDiagnostics-IE-List-Value ::=
	SEQUENCE {
		iECriticality			Criticality,
		iE-ID				ProtocolIE-ID,
		typeOfError			TypeOfError,
		iE-Extensions			IE-Extensions	OPTIONAL,
		...
	}

TypeOfError ::= ENUMERATED {
	not-understood,
	missing,
	...
}

END