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

HNBAP-IEs {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-IEs (2) }

DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

IMPORTS
	maxNrOfErrors,
	maxnoofRABs,
	maxnoofNeighbours,
	maxnoofIurhAddresses,
	maxnoofAdditionalNeighbours,
	maxnoofURAIdentities,
	id-HNB-Internet-Information,
	id-HNB-Cell-Identifier,
	id-S-RNTIPrefix,
	id-URAIdentityList
	
FROM HNBAP-Constants

	IE
FROM HNBAP-PDU

	maxProtocolExtensions,
	Criticality,
	ProcedureCode,
	ProtocolIE-ID,
	TriggeringMessage
FROM HNBAP-CommonDataTypes;

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

--A
Access-stratum-release-indicator ::=	ENUMERATED {r99,
				rel-4, rel-5, rel-6, rel-7, rel-8-and-beyond,
				...}

AccessResult	::=		ENUMERATED {allowed, notAllowed, ...}

AltitudeAndDirection ::= SEQUENCE {
	directionOfAltitude	ENUMERATED {height, depth},
	altitude		INTEGER (0..32767),
	...
}

--B
BackoffTimer ::= INTEGER(0..3600)

BindingID	::= OCTET STRING(SIZE(1..4,...))

--C
Cause ::= CHOICE {
	radioNetwork		CauseRadioNetwork,
	transport		CauseTransport,
	protocol		CauseProtocol,
	misc			CauseMisc,
	...
}
CauseRadioNetwork ::= ENUMERATED {
	overload,
	unauthorised-Location,
	unauthorised-HNB,
	hNB-parameter-mismatch,
	invalid-UE-identity,
	uE-not-allowed-on-this-HNB,
	uE-unauthorised,
	connection-with-UE-lost,
	ue-RRC-release,
	hNB-not-registered,
	unspecified,
	normal,
	uE-relocated,
	ue-registered-in-another-HNB,
	...,
	no-neighbour-information-available,
	iurh-connection-to-that-neighbour-not-Allowed
}

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

CellIdentity ::=		BIT STRING (SIZE (28))

CELL-FACHMobilitySupport	::= ENUMERATED {
	supported, 
	...
}

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

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
	SEQUENCE {
		iECriticality		Criticality,
		iE-ID			ProtocolIE-ID,
		typeOfError		TypeOfError,
		iE-Extensions		IE-Extensions			OPTIONAL,
		...
	}

CSG-ID			::=	BIT STRING (SIZE (27))

CSG-Capability	::=	ENUMERATED {
	csg-capable,
	not-csg-capable,
	...
}

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

CGI ::= SEQUENCE {
	pLMNidentity	PLMNidentity,
	lAC		LAC,
	cI		CI,
	iE-Extensions	IE-Extensions			OPTIONAL
}

CI	::= OCTET STRING (SIZE (2))


CN-DomainIndicator ::= ENUMERATED {
	cs-domain,
	ps-domain
}
--D
--E
ESN		::=	BIT STRING (SIZE(32))
--F
--G
GeographicalLocation ::= SEQUENCE {
	geographicalCoordinates		GeographicalCoordinates,
	altitudeAndDirection		AltitudeAndDirection,
	iE-Extensions			IE-Extensions			OPTIONAL,
	...
}

GeographicalCoordinates ::= SEQUENCE {
	latitudeSign			ENUMERATED {north, south},
	latitude			INTEGER (0..8388607),
	longitude			INTEGER (-8388608..8388607),
	iE-Extensions			IE-Extensions			OPTIONAL,
	...
}

GTP-TEI	::= OCTET STRING (SIZE (4))

--H

HNBCapacity ::= INTEGER(0..1000)

HNB-Cell-Access-Mode::= ENUMERATED {
	closed,
	hybrid,
	open,
	...
}

HNB-Cell-Identifier	::= 	SEQUENCE	{
	pLMNidentity	PLMNidentity,
	cellIdentity	CellIdentity,
	iE-Extensions	IE-Extensions			OPTIONAL,
	...
}

HNB-GWResponse ::= CHOICE {
	hNB			HNBConfigInfo,
	macroRNC		RNC-ID,
	unknownU-RNTIIndication	UnknownU-RNTIIndication,
	...
}

HNB-RNL-Identity	::= 	CHOICE	{
	hNB-Identity-as-Cell-Identifier	HNB-Cell-Identifier,
	...
}

HNBConfigInfo	::= SEQUENCE {
	hnb-RNL-Identity		HNB-RNL-Identity,
	configurationInformation	ConfigurationInformation,
	iE-Extensions			IE-Extensions			OPTIONAL,
	...
}

ConfigurationInformation ::= CHOICE {
	provided	HNBConfigurationInformationProvided,
	missing		HNBConfigurationInformationMissing,
	...
}

HNBConfigurationInformationProvided ::= SEQUENCE {
	psc				PSC	OPTIONAL,
	cSG-ID				CSG-ID	OPTIONAL,
	hNB-Cell-Access-Mode		HNB-Cell-Access-Mode,
	iurh-Signalling-TNL-AddressList	Iurh-Signalling-TNL-AddressList,
	iE-Extensions			IE-Extensions			OPTIONAL,
	...
}

HNBConfigurationInformationMissing ::= SEQUENCE {
	cause		Cause,
	iE-Extensions	IE-Extensions			OPTIONAL,
	...
}

HNB-Location-Information ::= SEQUENCE {
	macroCoverageInfo	MacroCoverageInformation OPTIONAL,
	geographicalCoordinates	GeographicalLocation	 OPTIONAL,
	iE-Extensions		IE-Extensions		 OPTIONAL,
	...
}

HNB-Identity	::=		SEQUENCE {
	hNB-Identity-Info	HNB-Identity-Info,
	iE-Extensions		IE-Extensions		 OPTIONAL,
	...
}

HNB-Identity-Info ::= OCTET STRING (SIZE (1..255))

--I

IMEI		::= BIT STRING (SIZE(60))

IMSI		::= OCTET STRING (SIZE (3..8))
-- Reference: 23.003
IMSIDS41	::= OCTET STRING (SIZE (5..7))

IMSIESN	::= SEQUENCE {
	iMSIDS41	IMSIDS41,
	eSN		ESN
}

IP-Address	::= SEQUENCE {
	ipaddress CHOICE {
		ipv4info	Ipv4Address,
		ipv6info	Ipv6Address,
		...
	},
	iE-Extensions	IE-Extensions		 OPTIONAL,
	...
}

Ipv4Address	::= OCTET STRING (SIZE (4))

Ipv6Address	::= OCTET STRING (SIZE (16))

Iurh-Signalling-TNL-AddressList ::= SEQUENCE (SIZE(1..maxnoofIurhAddresses)) OF	IP-Address


--J
--K
--L
LAC ::= OCTET STRING(SIZE(2))

LAI ::= SEQUENCE {
	pLMNID	PLMNidentity,
	lAC	LAC,
	...
}

-- M

MacroCoverageInformation ::= SEQUENCE {
	cellIdentity	MacroCellID,
	iE-Extensions	IE-Extensions		 OPTIONAL,
	...
}

MacroCellID ::= CHOICE {
	uTRANCellID	UTRANCellID,
	gERANCellID	CGI,
	...
}

MuxPortNumber ::= INTEGER (1024..65535)

--N

NeighbourCellIdentityList	::= SEQUENCE (SIZE(0..maxnoofAdditionalNeighbours)) OF 	NeighbourIdentity

NeighbourIdentity	::= CHOICE {
	hNB-RNL-Identity	HNB-RNL-Identity,
	cell-ID			CellIdentity,
	...
}

NeighbourInfoList		::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF	HNBConfigInfo

AdditionalNeighbourInfoList	::= SEQUENCE (SIZE(1..maxnoofAdditionalNeighbours)) OF HNBConfigInfo

NeighbourInfoRequestList	::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF	NeighbourInfoRequestItem

NeighbourInfoRequestItem ::= SEQUENCE {
	hnb-RNL-Identity	HNB-RNL-Identity,
	iE-Extensions		IE-Extensions		 OPTIONAL,
	...
}

--O
--P
PLMNidentity 	::= OCTET STRING (SIZE (3))

PSC		::= BIT STRING (SIZE(9))

PTMSI		::=	BIT STRING (SIZE(32))

PTMSIRAI ::= SEQUENCE {
	pTMSI	PTMSI,
	rAI	RAI,
	...
}


--Q
--R

RAB-ID		::= BIT STRING (SIZE (8))

RABList		::= SEQUENCE (SIZE(1..maxnoofRABs)) OF RABListItem

RABListItem	::= SEQUENCE {
	rAB-ID			RAB-ID,
	old-transport-Info	TransportInfo,
	new-transport-Info	TransportInfo,
	cn-domain-indicator	CN-DomainIndicator,
	iE-Extensions		IE-Extensions		 OPTIONAL,
...
}

RAC	::= OCTET STRING(SIZE(1))

RAI ::= SEQUENCE {
	lAI	LAI,
	rAC	RAC,
	...
}


Registration-Cause	::= ENUMERATED {
	emergency-call,
	normal,
	...,
	ue-relocation
}

RNC-ID	::=	INTEGER(0..65535)

--S

SAC		::= OCTET STRING(SIZE(2)) 

S-RNTIPrefix	::= BIT STRING(SIZE(1..16, ...))

--T
TMSILAI	::= SEQUENCE {
	tMSI	BIT STRING(SIZE (32)),
	lAI	LAI
}

TMSIDS41	::= OCTET STRING (SIZE (2..17))

TransportInfo	::= SEQUENCE {
	transportLayerAddress	TransportLayerAddress,
	transportAssociation	CHOICE	{
	gtp-TEI				GTP-TEI,
					bindingID	BindingID,
					...
				},
	iE-Extensions		IE-Extensions		 OPTIONAL,
...
}

TransportLayerAddress	::= BIT STRING(SIZE(1..160,...))

Tunnel-Information ::= SEQUENCE {
	iP-Address		IP-Address,
	uDP-Port-Number		UDP-Port-Number	OPTIONAL,
	iE-Extensions		IE-Extensions		 OPTIONAL,
	...
}

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

UDP-Port-Number ::= OCTET STRING(SIZE(2))

UE-Capabilities ::= SEQUENCE {
	access-stratum-release-indicator	Access-stratum-release-indicator,
	csg-capability				CSG-Capability,
	iE-Extensions				IE-Extensions		 OPTIONAL,
...
}

UTRANCellID ::= SEQUENCE {
	lAC		LAC,
	rAC		RAC,
	pLMNidentity	PLMNidentity,
	uTRANcellID	CellIdentity,
	iE-Extensions	IE-Extensions		 OPTIONAL
}



UE-Identity	::=	CHOICE {
	iMSI		IMSI,
	tMSILAI		TMSILAI,
	pTMSIRAI	PTMSIRAI,
	iMEI		IMEI,
	eSN		ESN,
	iMSIDS41	IMSIDS41,
	iMSIESN		IMSIESN,
	tMSIDS41	TMSIDS41,
	...
}

Update-cause ::=	ENUMERATED {
	relocation-preparation,
	...
}

URAIdentityList ::= SEQUENCE (SIZE (0..maxnoofURAIdentities)) OF URAIdentity

URAIdentity	::= INTEGER(0..65535)

U-RNTI ::= BIT STRING (SIZE (32))

UnknownU-RNTIIndication ::= ENUMERATED {
	unknown,
	...
}

--V
--W
--X
--Y
--Z


END
