-- $Id: MAP-ExtensionDataTypes.asn 34814 2010-11-08 23:15:16Z etxrab $
-- MAP-ExtensionDataTypes.asn
--
-- Taken from 3GPP TS 29.002 V9.3.0 (2010-09)
--
-- 17.7.11 Extension data types
--

MAP-ExtensionDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version12 (12)}

DEFINITIONS

IMPLICIT TAGS

::=

BEGIN

EXPORTS

	PrivateExtension,
	ExtensionContainer,
	SLR-ArgExtensionContainer;


-- IOC for private MAP extensions


MAP-EXTENSION  ::= CLASS {
	&ExtensionType				OPTIONAL,
	&extensionId 	OBJECT IDENTIFIER }
	-- The length of the Object Identifier shall not exceed 16 octets and the
	-- number of components of the Object Identifier shall not exceed 16

-- data types

ExtensionContainer ::= SEQUENCE {
	privateExtensionList	[0]PrivateExtensionList	OPTIONAL, 
	pcs-Extensions	[1]PCS-Extensions	OPTIONAL,
	...}

SLR-ArgExtensionContainer ::= SEQUENCE {
	privateExtensionList	[0]PrivateExtensionList	OPTIONAL, 
	slr-Arg-PCS-Extensions	[1]SLR-Arg-PCS-Extensions	OPTIONAL,
	...}

PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
				PrivateExtension

PrivateExtension ::= SEQUENCE {
	extId		MAP-EXTENSION.&extensionId
				({ExtensionSet}),
	extType		MAP-EXTENSION.&ExtensionType
				({ExtensionSet}{@extId})	OPTIONAL}

maxNumOfPrivateExtensions  INTEGER ::= 10

ExtensionSet		MAP-EXTENSION ::=
		{...
		 -- ExtensionSet is the set of all defined private extensions
	}
	-- Unsupported private extensions shall be discarded if received.

PCS-Extensions ::= SEQUENCE {
	...}

SLR-Arg-PCS-Extensions ::= SEQUENCE {
	...,
	na-ESRK-Request	[0]	NULL		OPTIONAL }

END
