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
