-- RUA-IEs.asn
--
-- 3GPP TS 25.468 V9.1.0 (2010-03)
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
--
-- 9.3.4	Information Element definitions
--

-- **************************************************************
--
-- 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

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

	ProtocolExtensionContainer{},
	RUA-PROTOCOL-EXTENSION
FROM RUA-Containers;


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	ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } 	OPTIONAL,
	...
}

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

CriticalityDiagnostics-IE-List-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
	...
}

CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
	...
}


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

END