diff --git a/asn1/hnbap/HNBAP-CommonDataTypes.asn b/asn1/hnbap/HNBAP-CommonDataTypes.asn
new file mode 100644
index 0000000..db102a9
--- /dev/null
+++ b/asn1/hnbap/HNBAP-CommonDataTypes.asn
@@ -0,0 +1,47 @@
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+HNBAP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-CommonDataTypes (3)  }
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs 		INTEGER ::= 65535
+maxProtocolExtensions 	INTEGER ::= 65535
+maxProtocolIEs		INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+Criticality		::= ENUMERATED { reject, ignore, notify }
+
+Presence		::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID	::= CHOICE {
+	local		INTEGER (0..65535),
+	global		OBJECT IDENTIFIER
+}
+
+
+ProcedureCode		::= INTEGER (0..255)
+
+
+ProtocolIE-ID		::= INTEGER (0..maxProtocolIEs)
+
+TriggeringMessage	::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome }
+
+END
diff --git a/asn1/hnbap/HNBAP-Constants.asn b/asn1/hnbap/HNBAP-Constants.asn
new file mode 100644
index 0000000..8603703
--- /dev/null
+++ b/asn1/hnbap/HNBAP-Constants.asn
@@ -0,0 +1,98 @@
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+HNBAP-Constants { 
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-Constants (4) } 
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+IMPORTS
+	ProcedureCode,
+	ProtocolIE-ID
+FROM HNBAP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+id-HNBRegister					ProcedureCode ::= 1
+id-HNBDe-Register				ProcedureCode ::= 2
+id-UERegister					ProcedureCode ::= 3
+id-UEDe-Register				ProcedureCode ::= 4
+id-ErrorIndication				ProcedureCode ::= 5
+id-privateMessage				ProcedureCode ::= 6
+id-CSGMembershipUpdate				ProcedureCode ::= 7
+id-TNLUpdate					ProcedureCode ::= 9
+id-HNBConfigTransfer				ProcedureCode ::= 10
+id-RelocationComplete				ProcedureCode ::= 11
+id-U-RNTIQuery					ProcedureCode ::= 14
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+maxNrOfErrors					INTEGER ::= 256
+maxnoofRABs					INTEGER ::= 256
+maxnoofAdditionalNeighbours			INTEGER ::= 128
+maxnoofURAIdentities				INTEGER ::= 8
+maxnoofNeighbours				INTEGER ::= 32
+maxnoofIurhAddresses				INTEGER ::= 3
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause					ProtocolIE-ID ::= 1
+id-CriticalityDiagnostics			ProtocolIE-ID ::= 2
+id-HNB-Identity					ProtocolIE-ID ::= 3
+id-Context-ID					ProtocolIE-ID ::= 4
+id-UE-Identity					ProtocolIE-ID ::= 5
+id-LAC						ProtocolIE-ID ::= 6
+id-RAC						ProtocolIE-ID ::= 7
+id-HNB-Location-Information			ProtocolIE-ID ::= 8
+id-PLMNidentity					ProtocolIE-ID ::= 9
+id-SAC						ProtocolIE-ID ::= 10
+id-CellIdentity					ProtocolIE-ID ::= 11
+id-Registration-Cause				ProtocolIE-ID ::= 12
+id-UE-Capabilities				ProtocolIE-ID ::= 13
+id-RNC-ID					ProtocolIE-ID ::= 14
+id-CSG-ID					ProtocolIE-ID ::= 15
+id-BackoffTimer					ProtocolIE-ID ::= 16
+id-HNB-Internet-Information			ProtocolIE-ID ::= 17
+id-HNB-Cell-Access-Mode				ProtocolIE-ID ::= 18
+id-MuxPortNumber				ProtocolIE-ID ::= 19
+id-Service-Area-For-Broadcast			ProtocolIE-ID ::= 20
+id-CSGMembershipStatus				ProtocolIE-ID ::= 21
+id-RABList					ProtocolIE-ID ::= 22
+id-HNBConfigInfo				ProtocolIE-ID ::= 23
+id-AccessResult					ProtocolIE-ID ::= 25
+id-Update-cause					ProtocolIE-ID ::= 26
+id-NeighbourInfoList				ProtocolIE-ID ::= 27
+id-NeighbourInfoRequestList			ProtocolIE-ID ::= 28
+id-Iurh-Signalling-TNL-Address			ProtocolIE-ID ::= 29
+id-PSC						ProtocolIE-ID ::= 30
+id-HNB-Cell-Identifier				ProtocolIE-ID ::= 31
+id-Tunnel-Information				ProtocolIE-ID ::= 41
+id-CELL-FACHMobilitySupport			ProtocolIE-ID ::= 42
+id-S-RNTIPrefix					ProtocolIE-ID ::= 43
+id-URAIdentity					ProtocolIE-ID ::= 44
+id-NeighbourIdentity				ProtocolIE-ID ::= 45
+id-HNBCapacity					ProtocolIE-ID ::= 46
+id-NeighbourCellIdentityList			ProtocolIE-ID ::= 47
+id-AdditionalNeighbourInfoList			ProtocolIE-ID ::= 48
+id-U-RNTI					ProtocolIE-ID ::= 49
+id-UnknownU-RNTIIndication			ProtocolIE-ID ::= 50
+id-HNB-GWResponse				ProtocolIE-ID ::= 51
+id-URAIdentityList				ProtocolIE-ID ::= 52
+
+END
diff --git a/asn1/hnbap/HNBAP-Containers.asn b/asn1/hnbap/HNBAP-Containers.asn
new file mode 100644
index 0000000..91aad6e
--- /dev/null
+++ b/asn1/hnbap/HNBAP-Containers.asn
@@ -0,0 +1,149 @@
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+HNBAP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+	Criticality,
+	Presence,
+	PrivateIE-ID,
+	ProtocolIE-ID,
+	maxPrivateIEs,
+	maxProtocolExtensions,
+	maxProtocolIEs
+FROM HNBAP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+HNBAP-PROTOCOL-IES ::= CLASS {
+	&id					ProtocolIE-ID 		UNIQUE,
+	&criticality		Criticality,
+	&Value,
+	&presence			Presence
+}
+WITH SYNTAX {
+	ID					&id
+	CRITICALITY			&criticality
+	TYPE				&Value
+	PRESENCE			&presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+HNBAP-PROTOCOL-EXTENSION ::= CLASS {
+	&id					ProtocolIE-ID UNIQUE,
+	&criticality		Criticality,
+	&Extension,
+	&presence			Presence
+}
+WITH SYNTAX {
+	ID					&id
+	CRITICALITY			&criticality
+	EXTENSION			&Extension
+	PRESENCE			&presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+HNBAP-PRIVATE-IES ::= CLASS {
+	&id					PrivateIE-ID,
+	&criticality		Criticality,
+	&Value,
+	&presence			Presence
+}
+WITH SYNTAX {
+	ID					&id
+	CRITICALITY			&criticality
+	TYPE				&Value
+	PRESENCE			&presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {HNBAP-PROTOCOL-IES : IEsSetParam} ::= 
+	SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+		ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {HNBAP-PROTOCOL-IES : IEsSetParam} ::= 
+	ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {HNBAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+	id					HNBAP-PROTOCOL-IES.&id				({IEsSetParam}),
+	criticality			HNBAP-PROTOCOL-IES.&criticality		({IEsSetParam}{@id}),
+	value				HNBAP-PROTOCOL-IES.&Value			({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, HNBAP-PROTOCOL-IES : IEsSetParam} ::=
+	SEQUENCE (SIZE (lowerBound..upperBound)) OF
+		ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {HNBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= 
+	SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+		ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {HNBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+	id		HNBAP-PROTOCOL-EXTENSION.&id		({ExtensionSetParam}),
+	criticality	HNBAP-PROTOCOL-EXTENSION.&criticality	({ExtensionSetParam}{@id}),
+	extensionValue	HNBAP-PROTOCOL-EXTENSION.&Extension	({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {HNBAP-PRIVATE-IES : IEsSetParam } ::= 
+	SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+		PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {HNBAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+	id		HNBAP-PRIVATE-IES.&id			({IEsSetParam}),
+	criticality	HNBAP-PRIVATE-IES.&criticality		({IEsSetParam}{@id}),
+	value		HNBAP-PRIVATE-IES.&Value		({IEsSetParam}{@id})
+}
+
+END
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
diff --git a/asn1/hnbap/HNBAP-PDU-Contents.asn b/asn1/hnbap/HNBAP-PDU-Contents.asn
new file mode 100644
index 0000000..1942b0a
--- /dev/null
+++ b/asn1/hnbap/HNBAP-PDU-Contents.asn
@@ -0,0 +1,561 @@
+-- **************************************************************
+--
+-- PDU definitions for HNBAP.
+--
+-- **************************************************************
+
+HNBAP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+	Cause,
+	CriticalityDiagnostics, 
+	CSGMembershipStatus,
+	HNB-Location-Information,
+	HNB-Identity,
+	Context-ID,
+	UE-Identity,
+	LAC,
+	RAC,
+	SAC,
+	CN-DomainIndicator,
+	IP-Address,
+	Registration-Cause,
+	UE-Capabilities,
+	PLMNidentity,
+	CellIdentity,
+	RNC-ID,
+	CSG-ID,
+	HNB-Cell-Access-Mode,
+	BackoffTimer,
+	MuxPortNumber,
+	RABList,
+	HNBConfigInfo,
+	AccessResult,
+	Update-cause,
+	NeighbourInfoList,
+	NeighbourInfoRequestList,
+	PSC,
+	Tunnel-Information,
+	CELL-FACHMobilitySupport,
+	S-RNTIPrefix,
+	NeighbourIdentity,
+	NeighbourCellIdentityList,
+	URAIdentity,
+	URAIdentityList,
+	HNBCapacity,
+	AdditionalNeighbourInfoList,
+	U-RNTI,
+	UnknownU-RNTIIndication,
+	HNB-GWResponse
+
+
+
+FROM HNBAP-IEs
+
+
+	ProtocolExtensionContainer{},
+	ProtocolIE-ContainerList{},
+	ProtocolIE-Container{},
+	ProtocolIE-Single-Container{},
+	PrivateIE-Container{},
+	HNBAP-PRIVATE-IES,
+	HNBAP-PROTOCOL-EXTENSION,
+	HNBAP-PROTOCOL-IES
+
+FROM HNBAP-Containers
+
+	id-Cause,
+	id-CriticalityDiagnostics, 
+	id-CSGMembershipStatus,
+	id-HNB-Location-Information,
+	id-HNB-Identity,
+	id-Context-ID,
+	id-PLMNidentity,
+	id-UE-Identity,
+	id-LAC,
+	id-RAC,
+	id-SAC,
+	id-UE-Capabilities,
+	id-Registration-Cause,
+	id-CellIdentity,
+	id-RNC-ID,
+	id-CSG-ID,
+	id-HNB-Cell-Access-Mode,
+	id-BackoffTimer,
+	id-Service-Area-For-Broadcast,
+	id-MuxPortNumber,
+	id-RABList,
+	id-HNBConfigInfo,
+	id-AccessResult,
+	id-Update-cause,
+	id-NeighbourInfoList,
+	id-NeighbourInfoRequestList,
+	id-Iurh-Signalling-TNL-Address,
+	id-PSC,
+	id-Tunnel-Information,
+	id-CELL-FACHMobilitySupport,
+	id-S-RNTIPrefix,
+	id-URAIdentity,
+	id-URAIdentityList,
+	id-NeighbourIdentity, 
+	id-NeighbourCellIdentityList,
+	id-HNBCapacity,
+	id-AdditionalNeighbourInfoList,
+	id-U-RNTI,
+	id-UnknownU-RNTIIndication,
+	id-HNB-GWResponse
+
+
+FROM HNBAP-Constants;
+
+-- **************************************************************
+--
+-- HNB Register REQUEST
+--
+-- **************************************************************
+
+HNBRegisterRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { {HNBRegisterRequestIEs} },
+	protocolExtensions	ProtocolExtensionContainer { {HNBRegisterRequestExtensions} } 	OPTIONAL,
+	...
+}
+
+HNBRegisterRequestIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-HNB-Identity		CRITICALITY reject	TYPE HNB-Identity	PRESENCE mandatory } |
+	{ ID id-HNB-Location-Information CRITICALITY reject	TYPE HNB-Location-Information	PRESENCE mandatory } |
+	{ ID id-PLMNidentity		CRITICALITY reject	TYPE PLMNidentity	PRESENCE mandatory } |
+	{ ID id-CellIdentity		CRITICALITY reject	TYPE CellIdentity	PRESENCE mandatory } |
+	{ ID id-LAC			CRITICALITY reject	TYPE LAC		PRESENCE mandatory } |
+	{ ID id-RAC			CRITICALITY reject	TYPE RAC		PRESENCE mandatory } |
+	{ ID id-SAC			CRITICALITY reject	TYPE SAC		PRESENCE mandatory } |
+	{ ID id-CSG-ID			CRITICALITY reject	TYPE CSG-ID		PRESENCE optional } ,
+	...
+}
+
+HNBRegisterRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	{ ID id-Service-Area-For-Broadcast	CRITICALITY ignore	EXTENSION SAC			PRESENCE optional }|
+	{ ID id-HNB-Cell-Access-Mode		CRITICALITY reject	EXTENSION HNB-Cell-Access-Mode	PRESENCE optional }|
+	{ ID id-PSC				CRITICALITY ignore	EXTENSION PSC			PRESENCE optional }|
+	{ ID id-Iurh-Signalling-TNL-Address	CRITICALITY ignore	EXTENSION IP-Address		PRESENCE optional }|
+	{ ID id-Tunnel-Information		CRITICALITY ignore	EXTENSION Tunnel-Information	PRESENCE optional }|
+	{ ID id-CELL-FACHMobilitySupport	CRITICALITY ignore	EXTENSION CELL-FACHMobilitySupport	PRESENCE optional }|
+	{ ID id-NeighbourCellIdentityList	CRITICALITY ignore	EXTENSION NeighbourCellIdentityList	PRESENCE optional }|
+	{ ID id-URAIdentityList			CRITICALITY ignore	EXTENSION URAIdentityList	PRESENCE optional }|
+	{ ID id-HNBCapacity			CRITICALITY ignore	EXTENSION HNBCapacity		PRESENCE optional },
+	...
+}
+
+-- **************************************************************
+--
+-- HNB Register Accept
+--
+-- **************************************************************
+
+HNBRegisterAccept ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {HNBRegisterResponseIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {HNBRegisterResponseExtensions} }	OPTIONAL,
+	...
+}
+
+HNBRegisterResponseIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-RNC-ID		CRITICALITY reject	TYPE RNC-ID		PRESENCE mandatory },
+	...
+}
+
+HNBRegisterResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 9 to support CS Multiplexing --
+	{ ID id-MuxPortNumber			CRITICALITY ignore	EXTENSION MuxPortNumber		PRESENCE optional}|
+	{ ID id-Iurh-Signalling-TNL-Address	CRITICALITY ignore	EXTENSION IP-Address		PRESENCE optional}|
+	{ ID id-S-RNTIPrefix			CRITICALITY ignore	EXTENSION S-RNTIPrefix		PRESENCE optional},
+	...
+}
+
+-- **************************************************************
+--
+-- HNB Register REJECT
+--
+-- **************************************************************
+
+HNBRegisterReject ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { {HNBRegisterRejectIEs} },
+	protocolExtensions	ProtocolExtensionContainer { {HNBRegisterRejectExtensions} } 	OPTIONAL,
+	...
+}
+
+HNBRegisterRejectIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Cause			CRITICALITY ignore	TYPE Cause			PRESENCE mandatory} |
+	{ ID id-CriticalityDiagnostics	CRITICALITY ignore	TYPE CriticalityDiagnostics	PRESENCE optional } |
+	{ ID id-BackoffTimer		CRITICALITY reject	TYPE BackoffTimer		PRESENCE conditional },
+	-- This IE shall be present if the Cause IE is set to "Overload".
+	...
+}
+
+HNBRegisterRejectExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+
+-- **************************************************************
+--
+-- HNB De- Register
+--
+-- **************************************************************
+
+HNBDe-Register ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { {HNBDe-RegisterIEs} },
+	protocolExtensions	ProtocolExtensionContainer { {HNBDe-RegisterExtensions} } 	OPTIONAL,
+	...
+}
+
+HNBDe-RegisterIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Cause			CRITICALITY ignore	TYPE Cause		PRESENCE mandatory } |
+	{ ID id-BackoffTimer		CRITICALITY reject	TYPE BackoffTimer	PRESENCE conditional },
+	-- This IE shall be present if the Cause IE is set to "Overload".
+	...
+}
+
+HNBDe-RegisterExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+-- **************************************************************
+--
+-- UE Register REQUEST
+--
+-- **************************************************************
+
+UERegisterRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { {UERegisterRequestIEs} },
+	protocolExtensions	ProtocolExtensionContainer { {UERegisterRequestExtensions} } 	OPTIONAL,
+	...
+}
+
+UERegisterRequestIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-UE-Identity		CRITICALITY reject	TYPE UE-Identity		PRESENCE mandatory } |
+	{ ID id-Registration-Cause	CRITICALITY ignore	TYPE Registration-Cause		PRESENCE mandatory } |
+	{ ID id-UE-Capabilities		CRITICALITY reject	TYPE UE-Capabilities		PRESENCE mandatory },
+	...
+}
+
+UERegisterRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- UE Register ACCEPT
+--
+-- **************************************************************
+
+UERegisterAccept ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {UERegisterAcceptIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {UERegisterAcceptExtensions} } 	OPTIONAL,
+	...
+}
+
+UERegisterAcceptIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-UE-Identity	CRITICALITY reject	TYPE UE-Identity	PRESENCE mandatory } |
+	{ ID id-Context-ID	CRITICALITY reject	TYPE Context-ID		PRESENCE mandatory },
+	...
+}
+
+
+UERegisterAcceptExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	{ ID id-CSGMembershipStatus	CRITICALITY reject	EXTENSION CSGMembershipStatus	PRESENCE optional },
+	...
+}
+
+-- **************************************************************
+--
+-- UE Register REJECT
+--
+-- **************************************************************
+
+UERegisterReject ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {UERegisterRejectIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {UERegisterRejectExtensions} } OPTIONAL,
+	...
+}
+
+UERegisterRejectIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-UE-Identity		CRITICALITY reject	TYPE UE-Identity		PRESENCE mandatory } |
+	{ ID id-Cause			CRITICALITY ignore	TYPE Cause			PRESENCE mandatory} |
+	{ ID id-CriticalityDiagnostics	CRITICALITY ignore	TYPE CriticalityDiagnostics	PRESENCE optional },
+	...
+}
+
+UERegisterRejectExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+-- **************************************************************
+--
+-- UE De-Register
+--
+-- **************************************************************
+
+UEDe-Register ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {UEDe-RegisterIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {UEDe-RegisterExtensions} } 	OPTIONAL,
+	...
+}
+
+UEDe-RegisterIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Context-ID	CRITICALITY reject	TYPE Context-ID		PRESENCE mandatory } |
+	{ ID id-Cause		CRITICALITY ignore	TYPE Cause		PRESENCE mandatory } ,
+	...
+}
+
+UEDe-RegisterExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- CSG Membership Update
+--
+-- **************************************************************
+
+CSGMembershipUpdate ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {CSGMembershipUpdateIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {CSGMembershipUpdateExtensions} } 	OPTIONAL,
+	...
+}
+
+CSGMembershipUpdateIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Context-ID		CRITICALITY reject	TYPE Context-ID			PRESENCE mandatory } |
+	{ ID id-CSGMembershipStatus	CRITICALITY reject	TYPE CSGMembershipStatus	PRESENCE mandatory },
+	...
+}
+
+CSGMembershipUpdateExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- TNL Update Request
+--
+-- **************************************************************
+
+TNLUpdateRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {TNLUpdateRequestIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {TNLUpdateExtensions} } 	OPTIONAL,
+	...
+}
+
+TNLUpdateRequestIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Context-ID	CRITICALITY reject	TYPE Context-ID		PRESENCE mandatory } |
+	{ ID id-RABList		CRITICALITY reject	TYPE RABList		PRESENCE mandatory } |
+	{ ID id-Update-cause	CRITICALITY reject	TYPE Update-cause	PRESENCE mandatory } ,
+		...
+}
+
+TNLUpdateExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- TNL UPDATE RESPONSE
+--
+-- **************************************************************
+
+TNLUpdateResponse ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ { TNLUpdateResponseIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ { TNLUpdateResponseExtensions} } 	OPTIONAL,
+	...
+}
+
+TNLUpdateResponseIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Context-ID	CRITICALITY reject	TYPE Context-ID		PRESENCE mandatory } ,
+		...
+}
+
+TNLUpdateResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- TNL UPDATE FAILURE
+--
+-- **************************************************************
+
+TNLUpdateFailure ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {TNLUpdateFailureIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {TNLUpdateFailureExtensions} } 	OPTIONAL,
+	...
+}
+
+TNLUpdateFailureIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Context-ID		CRITICALITY reject	TYPE Context-ID			PRESENCE mandatory } |
+	{ ID id-Cause			CRITICALITY ignore	TYPE Cause			PRESENCE mandatory } |
+	{ ID id-CriticalityDiagnostics	CRITICALITY ignore	TYPE CriticalityDiagnostics	PRESENCE optional } ,
+		...
+}
+
+TNLUpdateFailureExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- HNB Configuration Transfer Request
+--
+-- **************************************************************
+
+HNBConfigTransferRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { {HNBConfigTransferRequestIEs} },
+	protocolExtensions	ProtocolExtensionContainer { {HNBConfigTransferRequestExtensions} } 	OPTIONAL,
+	...
+}
+
+HNBConfigTransferRequestIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-NeighbourInfoRequestList	CRITICALITY reject	TYPE NeighbourInfoRequestList	PRESENCE mandatory } ,
+	...
+}
+
+HNBConfigTransferRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- HNB Configuration Transfer Response
+--
+-- **************************************************************
+
+HNBConfigTransferResponse ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { { HNBConfigTransferResponseIEs} },
+	protocolExtensions	ProtocolExtensionContainer { { HNBConfigTransferResponseExtensions} } 	OPTIONAL,
+	...
+}
+
+HNBConfigTransferResponseIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-NeighbourInfoList	CRITICALITY reject	TYPE NeighbourInfoList		PRESENCE mandatory } ,
+	...
+}
+
+HNBConfigTransferResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	{ ID id-AdditionalNeighbourInfoList	CRITICALITY ignore	EXTENSION AdditionalNeighbourInfoList	PRESENCE optional},
+	...
+}
+
+-- **************************************************************
+--
+-- RELOCATION COMPLETE
+--
+-- **************************************************************
+
+RelocationComplete ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ { RelocationCompleteIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ { RelocationCompleteExtensions} } 	OPTIONAL,
+	...
+}
+
+RelocationCompleteIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Context-ID	CRITICALITY ignore	TYPE Context-ID			PRESENCE mandatory } ,
+	...
+}
+
+
+RelocationCompleteExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {ErrorIndicationIEs} },
+	protocolExtensions	ProtocolExtensionContainer	{ {ErrorIndicationExtensions} } 	OPTIONAL,
+	...
+}
+
+ErrorIndicationIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-Cause			CRITICALITY ignore	TYPE Cause			PRESENCE mandatory } |
+	{ ID id-CriticalityDiagnostics	CRITICALITY ignore	TYPE CriticalityDiagnostics	PRESENCE optional },
+		...
+}
+
+ErrorIndicationExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+	privateIEs		PrivateIE-Container  {{PrivateMessage-IEs}},
+	...
+}
+
+PrivateMessage-IEs HNBAP-PRIVATE-IES ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- U-RNTI Query Request
+--
+-- **************************************************************
+
+U-RNTIQueryRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { {U-RNTIQueryRequestIEs} },
+	protocolExtensions	ProtocolExtensionContainer { {U-RNTIQueryRequestExtensions} }	OPTIONAL,
+	...
+}
+
+U-RNTIQueryRequestIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-U-RNTI		CRITICALITY reject	TYPE U-RNTI			PRESENCE mandatory } ,
+	...
+}
+
+U-RNTIQueryRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+-- **************************************************************
+--
+-- U-RNTI Query Response
+--
+-- **************************************************************
+
+U-RNTIQueryResponse ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container       { { U-RNTIQueryResponseIEs} },
+	protocolExtensions	ProtocolExtensionContainer { { U-RNTIQueryResponseExtensions} } 	OPTIONAL,
+	...
+}
+
+U-RNTIQueryResponseIEs HNBAP-PROTOCOL-IES ::= {
+	{ ID id-HNB-GWResponse	CRITICALITY reject	TYPE HNB-GWResponse	PRESENCE mandatory } ,
+	...
+}
+
+U-RNTIQueryResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+END
diff --git a/asn1/hnbap/HNBAP-PDU-Descriptions.asn b/asn1/hnbap/HNBAP-PDU-Descriptions.asn
new file mode 100644
index 0000000..67b3824
--- /dev/null
+++ b/asn1/hnbap/HNBAP-PDU-Descriptions.asn
@@ -0,0 +1,228 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+HNBAP-PDU-Descriptions  { 
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+	Criticality,
+	ProcedureCode
+FROM HNBAP-CommonDataTypes
+
+	HNBRegisterRequest,
+	HNBRegisterAccept,
+	HNBRegisterReject,
+	HNBDe-Register,
+	UERegisterRequest,
+	UERegisterAccept,
+	UERegisterReject,
+	UEDe-Register,
+	ErrorIndication,
+	PrivateMessage,
+	CSGMembershipUpdate,
+	TNLUpdateRequest,
+	TNLUpdateResponse,
+	TNLUpdateFailure,
+	HNBConfigTransferRequest,
+	HNBConfigTransferResponse,
+	RelocationComplete,
+	U-RNTIQueryRequest,
+	U-RNTIQueryResponse
+
+
+FROM HNBAP-PDU-Contents
+	id-HNBRegister,
+	id-UERegister,
+	id-UEDe-Register,
+	id-HNBDe-Register,
+	id-ErrorIndication,
+	id-privateMessage,
+	id-CSGMembershipUpdate,
+	id-TNLUpdate,
+	id-HNBConfigTransfer,
+	id-RelocationComplete,
+	id-U-RNTIQuery
+
+FROM HNBAP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+HNBAP-ELEMENTARY-PROCEDURE ::= CLASS {
+	&InitiatingMessage,
+	&SuccessfulOutcome	OPTIONAL,
+	&UnsuccessfulOutcome	OPTIONAL,
+	&procedureCode		ProcedureCode 	UNIQUE,
+	&criticality		Criticality 	DEFAULT ignore
+}
+
+WITH SYNTAX {
+	INITIATING MESSAGE	&InitiatingMessage
+	[SUCCESSFUL OUTCOME	&SuccessfulOutcome]
+	[UNSUCCESSFUL OUTCOME	&UnsuccessfulOutcome]
+	PROCEDURE CODE		&procedureCode
+	[CRITICALITY		&criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU definitions
+--
+-- **************************************************************
+
+HNBAP-PDU ::= CHOICE {
+	initiatingMessage	InitiatingMessage,
+	successfulOutcome	SuccessfulOutcome,
+	unsuccessfulOutcome	UnsuccessfulOutcome,
+	...
+}
+
+
+InitiatingMessage ::= SEQUENCE {
+	procedureCode	HNBAP-ELEMENTARY-PROCEDURE.&procedureCode	({HNBAP-ELEMENTARY-PROCEDURES}),
+	criticality	HNBAP-ELEMENTARY-PROCEDURE.&criticality		({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+	value		HNBAP-ELEMENTARY-PROCEDURE.&InitiatingMessage	({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+	procedureCode	HNBAP-ELEMENTARY-PROCEDURE.&procedureCode	({HNBAP-ELEMENTARY-PROCEDURES}),
+	criticality	HNBAP-ELEMENTARY-PROCEDURE.&criticality		({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+	value		HNBAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome	({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+	procedureCode	HNBAP-ELEMENTARY-PROCEDURE.&procedureCode	({HNBAP-ELEMENTARY-PROCEDURES}),
+	criticality	HNBAP-ELEMENTARY-PROCEDURE.&criticality		({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+	value		HNBAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome	({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+HNBAP-ELEMENTARY-PROCEDURES HNBAP-ELEMENTARY-PROCEDURE ::= {
+	HNBAP-ELEMENTARY-PROCEDURES-CLASS-1	|
+	HNBAP-ELEMENTARY-PROCEDURES-CLASS-2	,
+	...
+}
+
+HNBAP-ELEMENTARY-PROCEDURES-CLASS-1 HNBAP-ELEMENTARY-PROCEDURE ::= {
+	hNBRegister|
+	uERegister,
+	...,
+	tnlUpdate|
+	hNBConfigTransfer|
+	u-RNTIQuery
+}
+
+
+HNBAP-ELEMENTARY-PROCEDURES-CLASS-2 HNBAP-ELEMENTARY-PROCEDURE ::= {
+	uEDe-Register |
+	hNBDe-Register |
+	errorIndication	|
+	privateMessage,
+	...,
+	csg-membership-update|
+	relocationComplete
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+
+hNBRegister HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	HNBRegisterRequest
+	SUCCESSFUL OUTCOME	HNBRegisterAccept
+	UNSUCCESSFUL OUTCOME	HNBRegisterReject
+	PROCEDURE CODE		id-HNBRegister
+	CRITICALITY		reject
+}
+
+uERegister HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	UERegisterRequest
+	SUCCESSFUL OUTCOME	UERegisterAccept
+	UNSUCCESSFUL OUTCOME	UERegisterReject
+	PROCEDURE CODE		id-UERegister
+	CRITICALITY		reject
+}
+
+uEDe-Register HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	UEDe-Register
+	PROCEDURE CODE		id-UEDe-Register
+	CRITICALITY		ignore
+}
+
+hNBDe-Register HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	HNBDe-Register
+	PROCEDURE CODE		id-HNBDe-Register
+	CRITICALITY		ignore
+}
+
+errorIndication HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	ErrorIndication
+	PROCEDURE CODE		id-ErrorIndication
+	CRITICALITY		ignore
+}
+
+csg-membership-update HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	CSGMembershipUpdate
+	PROCEDURE CODE		id-CSGMembershipUpdate
+	CRITICALITY		ignore
+}
+
+tnlUpdate HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	TNLUpdateRequest
+	SUCCESSFUL OUTCOME	TNLUpdateResponse
+	UNSUCCESSFUL OUTCOME	TNLUpdateFailure
+	PROCEDURE CODE		id-TNLUpdate
+	CRITICALITY		reject
+}
+
+hNBConfigTransfer HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	HNBConfigTransferRequest
+	SUCCESSFUL OUTCOME	HNBConfigTransferResponse
+	PROCEDURE CODE		id-HNBConfigTransfer
+	CRITICALITY		reject
+}
+
+relocationComplete HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	RelocationComplete
+	PROCEDURE CODE		id-RelocationComplete
+	CRITICALITY		ignore
+}
+
+u-RNTIQuery HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	U-RNTIQueryRequest
+	SUCCESSFUL OUTCOME	U-RNTIQueryResponse
+	PROCEDURE CODE		id-U-RNTIQuery
+	CRITICALITY		reject
+}
+
+privateMessage HNBAP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE	PrivateMessage
+	PROCEDURE CODE		id-privateMessage
+	CRITICALITY		ignore
+}
+
+END
