Import HNBAP asn.1 from 3GPP TS 25.469 V12.4.0 (2015-03)
diff --git a/asn1/hnbap/HNBAP-IEs.asn b/asn1/hnbap/HNBAP-IEs.asn
new file mode 100644
index 0000000..c302636
--- /dev/null
+++ b/asn1/hnbap/HNBAP-IEs.asn
@@ -0,0 +1,567 @@
+-- **************************************************************
+--
+-- 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
+
+	Criticality,
+	ProcedureCode,
+	ProtocolIE-ID,
+	TriggeringMessage
+FROM HNBAP-CommonDataTypes
+
+	ProtocolExtensionContainer{},
+	HNBAP-PROTOCOL-EXTENSION
+FROM HNBAP-Containers;
+
+
+--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			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 HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CriticalityDiagnostics-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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	ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
+}
+
+CGI-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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			ProtocolExtensionContainer { { GeographicLocation-ExtIEs} } OPTIONAL,
+	...
+}
+
+GeographicLocation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+GeographicalCoordinates ::= SEQUENCE {
+	latitudeSign			ENUMERATED {north, south},
+	latitude			INTEGER (0..8388607),
+	longitude			INTEGER (-8388608..8388607),
+	iE-Extensions			ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} }	OPTIONAL,
+	...
+}
+
+GeographicalCoordinates-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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	ProtocolExtensionContainer { { HNB-Cell-Identifier-ExtIEs } }	OPTIONAL,
+	...
+}
+
+HNB-Cell-Identifier-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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			ProtocolExtensionContainer { { HNBConfigInfo-ExtIEs } }	OPTIONAL,
+	...
+}
+
+HNBConfigInfo-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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		ProtocolExtensionContainer { { HNBConfigurationInformationProvided-ExtIEs } }	OPTIONAL,
+	...
+}
+
+HNBConfigurationInformationProvided-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	{ ID id-S-RNTIPrefix	CRITICALITY ignore	EXTENSION S-RNTIPrefix		PRESENCE optional }|
+	{ ID id-URAIdentityList	CRITICALITY ignore	EXTENSION URAIdentityList	PRESENCE optional },
+	...
+}
+
+HNBConfigurationInformationMissing ::= SEQUENCE {
+	cause		Cause,
+	iE-Extensions	ProtocolExtensionContainer { { HNBConfigurationInformationMissing-ExtIEs } }	OPTIONAL,
+	...
+}
+
+HNBConfigurationInformationMissing-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+HNB-Location-Information ::= SEQUENCE {
+	macroCoverageInfo	MacroCoverageInformation OPTIONAL,
+	geographicalCoordinates	GeographicalLocation	 OPTIONAL,
+	iE-Extensions		ProtocolExtensionContainer { { HNB-Location-Information-ExtIEs } } OPTIONAL,
+	...
+}
+
+HNB-Location-Information-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+-- Extension for release-8 to support IP address for location verification --
+{ID id-HNB-Internet-Information	CRITICALITY reject	EXTENSION IP-Address	PRESENCE optional	},
+	...
+}
+
+
+
+HNB-Identity	::=		SEQUENCE {
+	hNB-Identity-Info	HNB-Identity-Info,
+	iE-Extensions		ProtocolExtensionContainer { { HNB-Identity-ExtIEs } }	OPTIONAL,
+	...
+}
+
+HNB-Identity-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+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	ProtocolExtensionContainer { { IP-Address-ExtIEs } }	OPTIONAL,
+	...
+}
+
+IP-Address-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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	ProtocolExtensionContainer { { MacroCoverageInformation-ExtIEs } } OPTIONAL,
+	...
+}
+
+MacroCoverageInformation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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		ProtocolExtensionContainer { { NeighbourInfoRequestItem-ExtIEs } } OPTIONAL,
+	...
+}
+
+NeighbourInfoRequestItem-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+--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		ProtocolExtensionContainer { { RABListItem-ExtIEs } }		OPTIONAL,
+...
+}
+
+RABListItem-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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		ProtocolExtensionContainer { { TransportInfo-ExtIEs } }	OPTIONAL,
+...
+}
+
+TransportInfo-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+TransportLayerAddress	::= BIT STRING(SIZE(1..160,...))
+
+Tunnel-Information ::= SEQUENCE {
+	iP-Address		IP-Address,
+	uDP-Port-Number		UDP-Port-Number	OPTIONAL,
+	iE-Extensions		ProtocolExtensionContainer { { Tunnel-Information-ExtIEs } }		OPTIONAL,
+	...
+}
+
+Tunnel-Information-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+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		ProtocolExtensionContainer { { UE-Capabilities-ExtIEs } }		OPTIONAL,
+...
+}
+
+UE-Capabilities-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+UTRANCellID ::= SEQUENCE {
+	lAC		LAC,
+	rAC		RAC,
+	pLMNidentity	PLMNidentity,
+	uTRANcellID	CellIdentity,
+	iE-Extensions	ProtocolExtensionContainer { {UTRANCellID-ExtIEs} } OPTIONAL
+}
+
+UTRANCellID-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+
+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