-- $Id: MAP-OM-DataTypes.asn 34814 2010-11-08 23:15:16Z etxrab $
-- 17.7.2	Operation and maintenance data types
-- 3GPP TS 29.002 V9.3.0 (2010-09)
 
MAP-OM-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-OM-DataTypes (12) version12 (12)}

DEFINITIONS

IMPLICIT TAGS

::=

BEGIN

EXPORTS
	ActivateTraceModeArg,
	ActivateTraceModeRes,
	DeactivateTraceModeArg,
	DeactivateTraceModeRes,
	TracePropagationList
;

IMPORTS
	AddressString,
	IMSI,
	GSN-Address
FROM MAP-CommonDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-CommonDataTypes (18) version12 (12)}

	ExtensionContainer
FROM MAP-ExtensionDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version12 (12)}

;

ActivateTraceModeArg ::= SEQUENCE {
	imsi			[0] IMSI		OPTIONAL,
	traceReference	[1] TraceReference,
	traceType		[2] TraceType,
	omc-Id		[3] AddressString	OPTIONAL,
	extensionContainer	[4] ExtensionContainer	OPTIONAL,
	...,
	traceReference2	[5] TraceReference2	OPTIONAL,
	traceDepthList	[6] TraceDepthList	OPTIONAL,
	traceNE-TypeList	[7] TraceNE-TypeList	OPTIONAL,
	traceInterfaceList	[8] TraceInterfaceList	OPTIONAL,
	traceEventList	[9] TraceEventList	OPTIONAL,
	traceCollectionEntity	[10] GSN-Address	OPTIONAL
	}

TraceReference ::= OCTET STRING (SIZE (1..2))

TraceReference2 ::= OCTET STRING (SIZE (3))

TraceRecordingSessionReference ::= OCTET STRING (SIZE (2))

TraceType ::= INTEGER
	(0..255)
	-- Trace types are fully defined in  3GPP TS 52.008. [61]

TraceDepthList ::= SEQUENCE {
	msc-s-TraceDepth	[0] TraceDepth	OPTIONAL,
	mgw-TraceDepth	[1] TraceDepth	OPTIONAL,
	sgsn-TraceDepth	[2] TraceDepth	OPTIONAL,
	ggsn-TraceDepth	[3] TraceDepth	OPTIONAL,
	rnc-TraceDepth	[4] TraceDepth	OPTIONAL,
	bmsc-TraceDepth	[5] TraceDepth	OPTIONAL,
	... ,
	mme-TraceDepth	[6] TraceDepth	OPTIONAL,
	sgw-TraceDepth	[7] TraceDepth	OPTIONAL,
	pgw-TraceDepth	[8] TraceDepth	OPTIONAL,
	eNB-TraceDepth	[9] TraceDepth	OPTIONAL }

TraceDepth ::= ENUMERATED {
	minimum (0),
	medium (1),
	maximum (2),
	...}
-- The value medium is applicable only for RNC. For other network elements, if value medium
-- is received, value minimum shall be applied.

TraceNE-TypeList ::= BIT STRING {
	msc-s (0),
	mgw (1),
	sgsn (2),
	ggsn (3),
	rnc (4),
	bm-sc (5) ,
	mme (6),
	sgw (7),
	pgw (8),
	eNB (9)} (SIZE (6..16))
-- Other bits than listed above shall be discarded.

TraceInterfaceList ::= SEQUENCE {
	msc-s-List	[0] MSC-S-InterfaceList	OPTIONAL,
	mgw-List		[1] MGW-InterfaceList	OPTIONAL,
	sgsn-List		[2] SGSN-InterfaceList	OPTIONAL,
	ggsn-List		[3] GGSN-InterfaceList	OPTIONAL,
	rnc-List		[4] RNC-InterfaceList	OPTIONAL,
	bmsc-List		[5] BMSC-InterfaceList	OPTIONAL,
	...,
	mme-List		[6] MME-InterfaceList	OPTIONAL,
	sgw-List		[7] SGW-InterfaceList	OPTIONAL,
	pgw-List		[8] PGW-InterfaceList	OPTIONAL,
	eNB-List		[9] ENB-InterfaceList	OPTIONAL}

MSC-S-InterfaceList ::= BIT STRING {
	a (0),
	iu (1),
	mc (2),
	map-g (3),
	map-b (4),
	map-e (5),
	map-f (6),
	cap (7),
	map-d (8),
	map-c (9)} (SIZE (10..16))
-- Other bits than listed above shall be discarded.

MGW-InterfaceList ::= BIT STRING {
	mc (0),
	nb-up (1),
	iu-up (2)} (SIZE (3..8))
-- Other bits than listed above shall be discarded.

SGSN-InterfaceList ::= BIT STRING {
	gb (0),
	iu (1),
	gn (2),
	map-gr (3),
	map-gd (4),
	map-gf (5),
	gs (6),
	ge (7),
	s3 (8),
	s4 (9),
	s6d (10)} (SIZE (8..16))
-- Other bits than listed above shall be discarded.

GGSN-InterfaceList ::= BIT STRING {
	gn (0),
	gi (1),
	gmb (2)} (SIZE (3..8))
-- Other bits than listed above shall be discarded.

RNC-InterfaceList ::= BIT STRING {
	iu (0),
	iur (1),
	iub (2),
	uu (3)} (SIZE (4..8))
-- Other bits than listed above shall be discarded.

BMSC-InterfaceList ::= BIT STRING {
	gmb (0)} (SIZE (1..8))
-- Other bits than listed above shall be discarded.

MME-InterfaceList ::= BIT STRING {
	s1-mme (0),
	s3 (1),
	s6a (2),
	s10 (3),
	s11 (4)} (SIZE (5..8))
-- Other bits than listed above shall be discarded.

SGW-InterfaceList ::= BIT STRING {
	s4 (0),
	s5 (1),
	s8b (2),
	s11 (3),
	gxc (4)} (SIZE (5..8))
-- Other bits than listed above shall be discarded.

PGW-InterfaceList ::= BIT STRING {
	s2a (0),
	s2b (1),
	s2c (2),
	s5 (3),
	s6b (4),
	gx (5),
	s8b (6),
	sgi (7)} (SIZE (8..16))
-- Other bits than listed above shall be discarded.

ENB-InterfaceList ::= BIT STRING {
	s1-mme (0),
	x2 (1),
	uu (2)} (SIZE (3..8))
-- Other bits than listed above shall be discarded.

TraceEventList ::= SEQUENCE {
	msc-s-List	[0] MSC-S-EventList	OPTIONAL,
	mgw-List		[1] MGW-EventList	OPTIONAL,
	sgsn-List		[2] SGSN-EventList	OPTIONAL,
	ggsn-List		[3] GGSN-EventList	OPTIONAL,
	bmsc-List		[4] BMSC-EventList	OPTIONAL,
	...,
	mme-List		[5] MME-EventList	OPTIONAL,
	sgw-List		[6] SGW-EventList	OPTIONAL,
	pgw-List		[7] PGW-EventList	OPTIONAL}

MSC-S-EventList ::= BIT STRING {
	mo-mtCall (0),
	mo-mt-sms (1),
	lu-imsiAttach-imsiDetach (2),
	handovers (3),
	ss (4)} (SIZE (5..16))
-- Other bits than listed above shall be discarded.

MGW-EventList ::= BIT STRING {
	context (0)} (SIZE (1..8))
-- Other bits than listed above shall be discarded.

SGSN-EventList ::= BIT STRING {
	pdpContext (0),
	mo-mt-sms (1),
	rau-gprsAttach-gprsDetach (2),
	mbmsContext (3)} (SIZE (4..16))
-- Other bits than listed above shall be discarded.

GGSN-EventList ::= BIT STRING {
	pdpContext (0),
	mbmsContext (1)} (SIZE (2..8))
-- Other bits than listed above shall be discarded.

BMSC-EventList ::= BIT STRING {
	mbmsMulticastServiceActivation (0)} (SIZE (1..8))
-- Other bits than listed above shall be discarded.

MME-EventList ::= BIT STRING {
	ue-initiatedPDNconectivityRequest (0),
	serviceRequestts (1),
	initialAttachTrackingAreaUpdateDetach (2),
	ue-initiatedPDNdisconnection (3),
	bearerActivationModificationDeletion (4),
	handover (5)} (SIZE (6..8))
-- Other bits than listed above shall be discarded.

SGW-EventList ::= BIT STRING {
	pdn-connectionCreation (0),
	pdn-connectionTermination (1),
	bearerActivationModificationDeletion (2)} (SIZE (3..8))
-- Other bits than listed above shall be discarded.

PGW-EventList ::= BIT STRING {
	pdn-connectionCreation (0),
	pdn-connectionTermination (1),
	bearerActivationModificationDeletion (2)} (SIZE (3..8))
-- Other bits than listed above shall be discarded.

TracePropagationList ::= SEQUENCE {
	traceReference	[0] TraceReference	OPTIONAL,
	traceType		[1] TraceType	OPTIONAL,
	traceReference2	[2] TraceReference2	OPTIONAL,
	traceRecordingSessionReference	[3] TraceRecordingSessionReference OPTIONAL,
	rnc-TraceDepth	[4] TraceDepth	OPTIONAL,
	rnc-InterfaceList	[5] RNC-InterfaceList	OPTIONAL,
	msc-s-TraceDepth	[6] TraceDepth	OPTIONAL,
	msc-s-InterfaceList	[7] MSC-S-InterfaceList	OPTIONAL,
	msc-s-EventList	[8] MSC-S-EventList	OPTIONAL,
	mgw-TraceDepth	[9] TraceDepth	OPTIONAL,
	mgw-InterfaceList	[10] MGW-InterfaceList	OPTIONAL,
	mgw-EventList	[11] MGW-EventList	OPTIONAL,
	...}

ActivateTraceModeRes ::= SEQUENCE {
	extensionContainer	[0] ExtensionContainer	OPTIONAL,
	...,
	traceSupportIndicator	[1]	NULL		OPTIONAL
	}

DeactivateTraceModeArg ::= SEQUENCE {
	imsi			[0] IMSI		OPTIONAL,
	traceReference	[1] TraceReference,
	extensionContainer	[2] ExtensionContainer	OPTIONAL,
	...,
	traceReference2	[3] TraceReference2	OPTIONAL
	}

DeactivateTraceModeRes ::= SEQUENCE {
	extensionContainer	[0] ExtensionContainer	OPTIONAL,
	...}

END
