--  Reference:          3GPP TS 29.002 10.6.0

MAP-OM-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-OM-DataTypes (12) version13 (13)}

DEFINITIONS

IMPLICIT TAGS

::=

BEGIN

EXPORTS
	ActivateTraceModeArg,
	ActivateTraceModeRes,
	DeactivateTraceModeArg,
	DeactivateTraceModeRes,
	TracePropagationList
;

IMPORTS
	AddressString,
	IMSI,
	GSN-Address,
	GlobalCellId,
	E-UTRAN-CGI,
	TA-Id,
	RAIdentity,
	LAIFixedLength
FROM MAP-CommonDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)}

	ExtensionContainer
FROM MAP-ExtensionDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version13 (13)}

;

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,
	mdt-Configuration	[11] MDT-Configuration	OPTIONAL
	}

MDT-Configuration ::= SEQUENCE {
	jobType		JobType,
	areaScope		AreaScope		OPTIONAL,
	listOfMeasurements	ListOfMeasurements	OPTIONAL,
	reportingTrigger	[0] ReportingTrigger	OPTIONAL,
	reportInterval	ReportInterval	OPTIONAL,
	reportAmount	[1] ReportAmount	OPTIONAL,
	eventThresholdRSRP	EventThresholdRSRP	OPTIONAL,
	eventThresholdRSRQ	[2] EventThresholdRSRQ	OPTIONAL,
	loggingInterval	[3] LoggingInterval	OPTIONAL,
	loggingDuration	[4] LoggingDuration	OPTIONAL,
	extensionContainer	[5] ExtensionContainer	OPTIONAL,
	... }

JobType ::= ENUMERATED {
	immediate-MDT-only (0),
	logged-MDT-only (1),
	trace-only (2),
	immediate-MDT-and-trace (3)}

AreaScope ::= SEQUENCE {
	cgi-List		[0] CGI-List	OPTIONAL,
	e-utran-cgi-List	[1] E-UTRAN-CGI-List	OPTIONAL,
	routingAreaId-List	[2] RoutingAreaId-List	OPTIONAL,
	locationAreaId-List	[3] LocationAreaId-List	OPTIONAL,
	trackingAreaId-List	[4] TrackingAreaId-List	OPTIONAL,
	extensionContainer	[5] ExtensionContainer	OPTIONAL,
	... }

CGI-List ::= SEQUENCE SIZE (1..32) OF
				GlobalCellId

E-UTRAN-CGI-List ::= SEQUENCE SIZE (1..32) OF
				E-UTRAN-CGI

RoutingAreaId-List ::= SEQUENCE SIZE (1..8) OF
				RAIdentity

LocationAreaId-List ::= SEQUENCE SIZE (1..8) OF
				LAIFixedLength

TrackingAreaId-List ::= SEQUENCE SIZE (1..8) OF
				TA-Id
ListOfMeasurements ::= OCTET STRING (SIZE (4))
	-- Octets are coded as described in 3GPP TS 32.422.

ReportingTrigger ::= OCTET STRING (SIZE (1))
	-- Octet is coded as described in 3GPP TS 32.422.

ReportInterval ::= ENUMERATED {
	umts250ms (0),
	umts500ms (1),
	umts1000ms (2),
	umts2000ms (3),
	umts3000ms (4),
	umts4000ms (5),
	umts6000ms (6),
	umts8000ms (7),
	umts12000ms (8),
	umts16000ms (9),
	umts20000ms (10),
	umts24000ms (11),
	umts28000ms (12),
	umts32000ms (13),
	umts64000ms (14),
	lte120ms (15),
	lte240ms (16),
	lte480ms (17),
	lte640ms (18),
	lte1024ms (19),
	lte2048ms (20),
	lte5120ms (21),
	lte10240ms (22),
	lte1min (23),
	lte6min (24),
	lte12min (25),
	lte30min (26),
	lte60min (27)}


ReportAmount ::= ENUMERATED {
	d1 (0),
	d2 (1),
	d4 (2),
	d8 (3),
	d16 (4),
	d32 (5),
	d64 (6),
	infinity (7)}

EventThresholdRSRP ::= INTEGER
	(0..97)

EventThresholdRSRQ ::= INTEGER
	(0..34)

LoggingInterval ::= ENUMERATED {
	d1dot28 (0),
	d2dot56 (1),
	d5dot12 (2),
	d10dot24 (3),
	d20dot48 (4),
	d30dot72 (5),
	d40dot96 (6),
	d61dot44 (7)}

LoggingDuration ::= ENUMERATED {
	d600sec (0),
	d1200sec (1),
	d2400sec (2),
	d3600sec (3),
	d5400sec (4),
	d7200sec (5)}

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
