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