summaryrefslogtreecommitdiff
path: root/asn1/ulp/ULP-Components.asn
blob: 40e294508e746dd1ca440da56d6c02a96ed054c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
-- UPL-Components.asn
-- $Id$
-- From OMA UserPlane Location Protocol Candidate Version 2.0 – 08 Dec 2009
-- OMA-TS-ULP-V2_0-20091208-C
--
-- 8.3 Common elements 
--

ULP-Components DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
EXPORTS Version, SessionID, IPAddress, SLPAddress, LocationId, Position,
	StatusCode, Velocity, QoP, PosMethod, Ver, SETId, PrimaryCPICH-Info,
	CellParametersID, FQDN;
IMPORTS
	Ver2-CellInfo-extension
FROM Ver2-ULP-Components;
-- protocol version expressed as x.y.z (e.g., 5.1.0)--

Version ::= SEQUENCE {
	maj INTEGER(0..255),
	min INTEGER(0..255),
	servind INTEGER(0..255)}
	SessionID ::= SEQUENCE {
	setSessionID SetSessionID OPTIONAL, -- the semantics of OPTIONAL applies to the encoding only. The parameter itself is MANDATORY. This is introduced only
										-- to minimize bandwidth for the SUPL INIT message. Since the setSessionID is
										-- allocated by the SET, there is no setSessionID to be transmitted in the SUPL
										-- INIT message.
	slpSessionID SlpSessionID OPTIONAL	-- the semantics of OPTIONAL applies to the encoding only. The parameter itself is MANDATORY. This is introduced only
										-- to minimize bandwidth for the SUPL START, SUPL TRIGGERED START and SUPL SET
										-- INIT messages. Since the slpSessionID is allocated by the SLP, there is no
										-- slpSessionID to be transmitted in these messages (with the exception described in section 10.14).
}

SetSessionID ::= SEQUENCE {
sessionId	INTEGER(0..65535),
setId		SETId
}

SETId ::= CHOICE {
	msisdn OCTET STRING(SIZE (8)),
	mdn OCTET STRING(SIZE (8)),
	min BIT STRING(SIZE (34)), -- coded according to TIA-553
	imsi OCTET STRING(SIZE (8)),
	nai IA5String(SIZE (1..1000)),
	iPAddress IPAddress,
	...}

-- msisdn, mnd and imsi are a BCD (Binary Coded Decimal) string
-- represent digits from 0 through 9,
-- two digits per octet, each digit encoded 0000 to 1001 (0 to 9)
-- bits 8765 of octet n encoding digit 2n
-- bits 4321 of octet n encoding digit 2(n-1) +1
-- not used digits in the string shall be filled with 1111

SlpSessionID ::= SEQUENCE {
	sessionID OCTET STRING(SIZE (4)),
	slpId SLPAddress}

IPAddress ::= CHOICE {
	ipv4Address OCTET STRING(SIZE (4)),
	ipv6Address OCTET STRING(SIZE (16))}

SLPAddress ::= CHOICE {iPAddress IPAddress,
	fQDN FQDN,
	...}

FQDN ::= VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" |".-"))(SIZE (1..255))
Ver ::= BIT STRING(SIZE (64))

LocationId ::= SEQUENCE {
	cellInfo CellInfo,
	status Status,
...}

Status ::= ENUMERATED {stale(0), current(1), unknown(2), ...}

CellInfo ::= CHOICE {
	gsmCell GsmCellInformation,
	wcdmaCell WcdmaCellInformation, --WCDMA Cell Information/TD-SCDMA Cell Information
	cdmaCell CdmaCellInformation,
	...,
	ver2-CellInfo-extension Ver2-CellInfo-extension}
	
Position ::= SEQUENCE {
	timestamp UTCTime, -- shall include seconds and shall use UTC time.
	positionEstimate PositionEstimate,
	velocity Velocity OPTIONAL,
	...}

PositionEstimate ::= SEQUENCE {
	latitudeSign ENUMERATED {north, south},
	latitude INTEGER(0..8388607),
	longitude INTEGER(-8388608..8388607),
	uncertainty SEQUENCE {uncertaintySemiMajor INTEGER(0..127),
		uncertaintySemiMinor INTEGER(0..127),
		orientationMajorAxis INTEGER(0..180)
	} OPTIONAL, -- angle in degree between major axis and North
	confidence INTEGER(0..100) OPTIONAL,
	altitudeInfo AltitudeInfo OPTIONAL,
	...} -- Coding as in [3GPP GAD]

AltitudeInfo ::= SEQUENCE {
	altitudeDirection ENUMERATED {height, depth},
	altitude INTEGER(0..32767),
	altUncertainty INTEGER(0..127),
	... } -- based on [3GPP GAD]

CdmaCellInformation ::= SEQUENCE {
	refNID INTEGER(0..65535), -- Network Id
	refSID INTEGER(0..32767), -- System Id
	refBASEID INTEGER(0..65535), -- Base Station Id
	refBASELAT INTEGER(0..4194303), -- Base Station Latitude
	reBASELONG INTEGER(0..8388607), -- Base Station Longitude
	refREFPN INTEGER(0..511), -- Base Station PN Code
	refWeekNumber INTEGER(0..65535), -- GPS Week Number
	refSeconds INTEGER(0..4194303), -- GPS Seconds --
	...}

GsmCellInformation ::= SEQUENCE {
	refMCC INTEGER(0..999), -- Mobile Country Code
	refMNC INTEGER(0..999), -- Mobile Network Code
	refLAC INTEGER(0..65535), -- Location area code
	refCI INTEGER(0..65535), -- Cell identity
	nMR NMR OPTIONAL,
	tA INTEGER(0..255) OPTIONAL, --Timing Advance
	...}

WcdmaCellInformation ::= SEQUENCE {
	refMCC INTEGER(0..999), -- Mobile Country Code
	refMNC INTEGER(0..999), -- Mobile Network Code
	refUC INTEGER(0..268435455), -- Cell identity
	frequencyInfo FrequencyInfo OPTIONAL,
	primaryScramblingCode INTEGER(0..511) OPTIONAL, --Not applicable for TDD
	measuredResultsList MeasuredResultsList OPTIONAL,
	...,
	cellParametersId INTEGER(0..127) OPTIONAL, -- Not applicable for FDD
	timingAdvance TimingAdvance OPTIONAL -- Not applicable for FDD
	}
	
TimingAdvance ::= SEQUENCE {
	tA INTEGER (0..8191),
	tAResolution TAResolution OPTIONAL, -- If missing, resolution is 0.125 chips
	chipRate ChipRate OPTIONAL, -- If missing, chip rate is 1.28 Mchip/s
	...}

TAResolution ::= ENUMERATED {res1-0chip(0),res0-5chip(1),res0-125chip(2), ...}
-- Corresponding to 1.0-chip, 0.5-chip and 0.125-chip resolutions, respectively

ChipRate ::= ENUMERATED {tdd128(0),tdd384(1), tdd768(2), ...} -- Corresponding to 1.28-Mchips/s, 3.84-Mchips/s and 7.68-Mchips/s chip rates, respectively

FrequencyInfo ::= SEQUENCE {
	modeSpecificInfo CHOICE {
		fdd FrequencyInfoFDD,
		tdd FrequencyInfoTDD,
		...},
	...}
	
FrequencyInfoFDD ::= SEQUENCE {
	uarfcn-UL UARFCN OPTIONAL,
	uarfcn-DL UARFCN,
	...}

FrequencyInfoTDD ::= SEQUENCE {uarfcn-Nt UARFCN,
	...}

UARFCN ::= INTEGER(0..16383)

NMR ::= SEQUENCE (SIZE (1..15)) OF NMRelement

NMRelement ::= SEQUENCE {
	aRFCN INTEGER(0..1023),
	bSIC INTEGER(0..63),
	rxLev INTEGER(0..63),
	...}

MeasuredResultsList ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasuredResults

MeasuredResults ::= SEQUENCE {
	frequencyInfo FrequencyInfo OPTIONAL,
	utra-CarrierRSSI UTRA-CarrierRSSI OPTIONAL,
	cellMeasuredResultsList CellMeasuredResultsList OPTIONAL}

CellMeasuredResultsList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellMeasuredResults
-- SPARE: UTRA-CarrierRSSI, Max = 76
-- Values above Max are spare
UTRA-CarrierRSSI ::= INTEGER(0..127)

CellMeasuredResults ::= SEQUENCE {
	cellIdentity INTEGER(0..268435455) OPTIONAL,
	modeSpecificInfo CHOICE {
		fdd SEQUENCE {
			primaryCPICH-Info PrimaryCPICH-Info,
			cpich-Ec-N0 CPICH-Ec-N0 OPTIONAL,
			cpich-RSCP CPICH-RSCP OPTIONAL,
			pathloss Pathloss OPTIONAL},
		tdd SEQUENCE {
			cellParametersID CellParametersID,
			proposedTGSN TGSN OPTIONAL,
			primaryCCPCH-RSCP PrimaryCCPCH-RSCP OPTIONAL,
			pathloss Pathloss OPTIONAL,
			timeslotISCP-List TimeslotISCP-List OPTIONAL --NOTE: TimeSlotISCP measurement list cannot be interpreted without the knowledge of Cell Info as defined in [3GPP RRC]
}}}

CellParametersID ::= INTEGER(0..127)
TGSN ::= INTEGER(0..14)
PrimaryCCPCH-RSCP ::= INTEGER(0..127)
-- SPARE: TimeslotISCP, Max = 91
-- Values above Max are spare
TimeslotISCP ::= INTEGER(0..127)
TimeslotISCP-List ::= SEQUENCE (SIZE (1..maxTS)) OF TimeslotISCP
PrimaryCPICH-Info ::= SEQUENCE {primaryScramblingCode INTEGER(0..511)}
-- SPARE: CPICH-Ec-No, Max = 49
-- Values above Max are spare
CPICH-Ec-N0 ::= INTEGER(0..63)
-- SPARE: CPICH- RSCP, data range from 0 to 91 and from 123 to 127.
-- Values from 92 to 122 are spare
-- the encoding of cpich-RSCP is (as per [3GPP RRC] V5.11.0)
-- cpich-RSCP = 123 CPICH RSCP <-120 dBm
-- cpich-RSCP = 124 -120 V CPICH RSCP < -119 dBm
-- cpich-RSCP = 125 -119 V CPICH RSCP < -118 dBm
-- cpich-RSCP = 126 -118 V CPICH RSCP < -117 dBm
-- cpich-RSCP = 127 -117 V CPICH RSCP < -116 dBm
-- cpich-RSCP = 0 -116 V CPICH RSCP < -115 dBm
-- cpich-RSCP = 1 -115 V CPICH RSCP < -114 dBm
-- … … …
-- cpich-RSCP = 89 -27 V CPICH RSCP < -26 dBm
-- cpich-RSCP = 90 -26 V CPICH RSCP < -25 dBm
-- cpich-RSCP = 91 -25 V CPICH RSCP dBm

CPICH-RSCP ::= INTEGER(0..127)
-- SPARE: Pathloss, Max = 158
-- Values above Max are spare

Pathloss ::= INTEGER(46..173)
maxCellMeas INTEGER ::= 32
maxFreq INTEGER ::= 8
maxTS INTEGER ::= 14
StatusCode ::= ENUMERATED {
unspecified(0), systemFailure(1), unexpectedMessage(2), protocolError(3),
dataMissing(4), unexpectedDataValue(5), posMethodFailure(6),
posMethodMismatch(7), posProtocolMismatch(8), targetSETnotReachable(9),
versionNotSupported(10), resourceShortage(11), invalidSessionId(12),
nonProxyModeNotSupported(13), proxyModeNotSupported(14),
positioningNotPermitted(15), authNetFailure(16), authSuplinitFailure(17),
consentDeniedByUser(100), consentGrantedByUser(101), ..., ver2-incompatibleProtectionLevel(18), ver2-serviceNotSupported(19), 
ver2-insufficientInterval(20), ver2-noSUPLCoverage(21), ver2-sessionStopped(102)}

QoP ::= SEQUENCE {
	horacc INTEGER(0..127),
	veracc INTEGER(0..127) OPTIONAL, -- as defined in [3GPP GAD] “uncertainty altitude”—
maxLocAge INTEGER(0..65535) OPTIONAL,
delay INTEGER(0..7) OPTIONAL, -- as defined in [3GPP RRLP]
...}
Velocity ::= CHOICE { -- velocity definition as per [3GPP GAD]
	horvel Horvel,
	horandvervel Horandvervel,
	horveluncert Horveluncert,
	horandveruncert Horandveruncert,
...}

Horvel ::= SEQUENCE {
	bearing BIT STRING(SIZE (9)),
	horspeed BIT STRING(SIZE (16)),
	...}

Horandvervel ::= SEQUENCE {
	verdirect BIT STRING(SIZE (1)),
	bearing BIT STRING(SIZE (9)),
	horspeed BIT STRING(SIZE (16)),
	verspeed BIT STRING(SIZE (8)),
	...}

Horveluncert ::= SEQUENCE {
	bearing BIT STRING(SIZE (9)),
	horspeed BIT STRING(SIZE (16)),
	uncertspeed BIT STRING(SIZE (8)),
	...}

Horandveruncert ::= SEQUENCE {
	verdirect BIT STRING(SIZE (1)),
	bearing BIT STRING(SIZE (9)),
	horspeed BIT STRING(SIZE (16)),
	verspeed BIT STRING(SIZE (8)),
	horuncertspeed BIT STRING(SIZE (8)),
	veruncertspeed BIT STRING(SIZE (8)),
	...}

PosMethod ::= ENUMERATED {
	agpsSETassisted(0), agpsSETbased(1), agpsSETassistedpref(2),
	agpsSETbasedpref(3), autonomousGPS(4), aFLT(5), eCID(6), eOTD(7), oTDOA(8),
	noPosition(9), ..., ver2-historicalDataRetrieval(10), ver2-agnssSETassisted(11),
	ver2-agnssSETbased(12), ver2-agnssSETassistedpref(13),
	ver2-agnssSETbasedpref(14), ver2-autonomousGNSS(15), ver2-sessioninfoquery(16)}

END

Ver2-ULP-Components DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
EXPORTS Ver2-CellInfo-extension, MultipleLocationIds,
	SupportedNetworkInformation, CauseCode, UTRAN-GPSReferenceTimeAssistance,
	UTRAN-GPSReferenceTimeResult, SPCSETKey, SPCTID, SPCSETKeylifetime, UTRANGANSSReferenceTimeAssistance,
	UTRAN-GANSSReferenceTimeResult,
	GNSSPosTechnology, GANSSSignals, ThirdParty, ApplicationID, ReportingCap,
	Coordinate, CircularArea, EllipticalArea, PolygonArea;
IMPORTS
	LocationId, PrimaryCPICH-Info, CellParametersID, FQDN
FROM ULP-Components;

MultipleLocationIds ::= SEQUENCE SIZE (1..maxLidSize) OF LocationIdData

LocationIdData ::= SEQUENCE {
	locationId LocationId,
	relativetimestamp RelativeTime OPTIONAL, -- if relativetimestamp is present, then data represents historical measurement, if absent, data represents current measurements
	servingFlag BOOLEAN, -- if “true” measurements represent serving cell
...}

RelativeTime ::= INTEGER (0..65535) -- relative time to “current” Location Id in multiples of 0.01sec
maxLidSize INTEGER ::= 64

SupportedNetworkInformation ::= SEQUENCE {
	wLAN BOOLEAN,
	supportedWLANInfo SupportedWLANInfo OPTIONAL,
	supportedWLANApsList SupportedWLANApsList OPTIONAL,
	gSM BOOLEAN,
	wCDMA BOOLEAN,
	supportedWCDMAInfo SupportedWCDMAInfo OPTIONAL,
	cDMA BOOLEAN,
	hRDP BOOLEAN,
	uMB BOOLEAN,
	lTE BOOLEAN,
	wIMAX BOOLEAN,
	historic BOOLEAN,
	nonServing BOOLEAN,
	uTRANGPSReferenceTime BOOLEAN,
	uTRANGANSSReferenceTime BOOLEAN,
	...}

SupportedWLANInfo ::= SEQUENCE {
	apTP BOOLEAN, -- AP transmit power
	apAG BOOLEAN, -- AP antenna gain
	apSN BOOLEAN, -- AP S/N received at SET
	apDevType BOOLEAN, -- Device type
	apRSSI BOOLEAN, -- AP signal strength at SET
	apChanFreq BOOLEAN, -- AP channel/frequency of Tx/Rx
	apRTD BOOLEAN, -- Round Trip Delay between SET and AP
	setTP BOOLEAN, -- SET transmit power
	setAG BOOLEAN, -- SET antenna gain
	setSN BOOLEAN, -- SET S/N received at AP
	setRSSI BOOLEAN, -- SET signal strength at AP
	apRepLoc BOOLEAN, -- AP Location as reported by AP
	...}

maxWLANApDataSize INTEGER ::= 128

SupportedWLANApsList ::= SEQUENCE {
	supportedWLANApDataList SEQUENCE (SIZE (1..maxWLANApDataSize)) OF SupportedWLANApData,
	supportedWLANapsChannel11a SupportedWLANApsChannel11a OPTIONAL,
	supportedWLANapsChannel11bg SupportedWLANApsChannel11bg OPTIONAL,
	...
}

SupportedWLANApsChannel11a ::= SEQUENCE {
	ch34 BOOLEAN,
	ch36 BOOLEAN,
	ch38 BOOLEAN,
	ch40 BOOLEAN,
	ch42 BOOLEAN,
	ch44 BOOLEAN,
	ch46 BOOLEAN,
	ch48 BOOLEAN,
	ch52 BOOLEAN,
	ch56 BOOLEAN,
	ch60 BOOLEAN,
	ch64 BOOLEAN,
	ch149 BOOLEAN,
	ch153 BOOLEAN,
	ch157 BOOLEAN,
	ch161 BOOLEAN
}

SupportedWLANApsChannel11bg ::= SEQUENCE {
	ch1 BOOLEAN,
	ch2 BOOLEAN,
	ch3 BOOLEAN,
	ch4 BOOLEAN,
	ch5 BOOLEAN,
	ch6 BOOLEAN,
	ch7 BOOLEAN,
	ch8 BOOLEAN,
	ch9 BOOLEAN,
	ch10 BOOLEAN,	
	ch11 BOOLEAN,
	ch12 BOOLEAN,
	ch13 BOOLEAN,
	ch14 BOOLEAN
}

SupportedWLANApData ::= SEQUENCE {
	apMACAddress BIT STRING (SIZE (48)),
	apDevType ENUMERATED {wlan802-11a(0), wlan802-11b(1), wlan802-11g(2), ...},
	...}

SupportedWCDMAInfo ::= SEQUENCE {
	mRL BOOLEAN, -- Measured Results List
	...
	}

Ver2-CellInfo-extension ::= CHOICE {
	hrpdCell HrpdCellInformation,
	umbCell UmbCellInformation,
	lteCell LteCellInformation,
	wlanAP WlanAPInformation,
	wimaxBS WimaxBSInformation,
	...}

HrpdCellInformation ::= SEQUENCE {
	refSECTORID BIT STRING(SIZE (128)) OPTIONAL, -- HRPD Sector Id
	refBASELAT INTEGER(0..4194303), -- Base Station Latitude
	reBASELONG INTEGER(0..8388607), -- Base Station Longitude
	refWeekNumber INTEGER(0..65535), -- GPS Week Number
	refSeconds INTEGER(0..4194303), -- GPS Seconds --
	...}

UmbCellInformation ::= SEQUENCE {
	refSECTORID BIT STRING(SIZE (128)), -- UMB Sector Id
	refMCC INTEGER(0..999), -- Mobile Country Code
	refMNC INTEGER(0..999), -- Mobile Network Code
	refBASELAT INTEGER(0..4194303), -- Base Station Latitude
	reBASELONG INTEGER(0..8388607), -- Base Station Longitude
	refWeekNumber INTEGER(0..65535), -- GPS Week Number
	refSeconds INTEGER(0..4194303), -- GPS Seconds --

...}
-- LTE Cell info per 3GPP TS 36.331. --
-- If not otherwise stated info is related to serving cell --

LteCellInformation ::= SEQUENCE {
	cellGlobalIdEUTRA CellGlobalIdEUTRA,
	physCellId PhysCellId,
	trackingAreaCode TrackingAreaCode,
	rsrpResult RSRP-Range OPTIONAL,
	rsrqResult RSRQ-Range OPTIONAL,
	tA INTEGER(0..1282) OPTIONAL, -- Timing Advance as per 3GPP TS 36.321
	measResultListEUTRA MeasResultListEUTRA OPTIONAL, --Neighbour measurements
	...}

-- Measured results of neighbours cells per 3GPP TS 36.331 --
MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
MeasResultEUTRA ::= SEQUENCE {
	physCellId PhysCellId,
	cgi-Info SEQUENCE {
		cellGlobalId CellGlobalIdEUTRA,
		trackingAreaCode TrackingAreaCode
	} OPTIONAL,
	measResult SEQUENCE {
		rsrpResult RSRP-Range OPTIONAL, -- Mapping to measured values
		rsrqResult RSRQ-Range OPTIONAL, -- in 3GPP TS 36.133
		...
	}
}

PhysCellId ::= INTEGER (0..503)
TrackingAreaCode ::= BIT STRING (SIZE (16))
CellGlobalIdEUTRA ::= SEQUENCE {
	plmn-Identity PLMN-Identity,
	cellIdentity CellIdentity,
	...
}

PLMN-Identity ::= SEQUENCE {
	mcc MCC OPTIONAL,
	mnc MNC
}

CellIdentity ::= BIT STRING (SIZE (28))
MCC ::= SEQUENCE (SIZE (3)) OF MCC-MNC-Digit
MNC ::= SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit
MCC-MNC-Digit ::= INTEGER (0..9)
RSRP-Range ::= INTEGER(0..97)
RSRQ-Range ::= INTEGER(0..34)
maxCellReport INTEGER ::= 8

WlanAPInformation ::= SEQUENCE { -- as per [IEEE 802.11v]
	apMACAddress BIT STRING(SIZE (48)), -- AP MAC Address
	apTransmitPower INTEGER(-127..128) OPTIONAL, -- AP transmit power in dbm
	apAntennaGain INTEGER(-127..128) OPTIONAL, -- AP antenna gain in dBi
	apSignaltoNoise INTEGER(-127..128) OPTIONAL, -- AP S/N received at SET
	apDeviceType ENUMERATED {wlan802-11a(0), wlan802-11b(1), wlan802-11g(2), ...} OPTIONAL,
	apSignalStrength INTEGER(-127..128) OPTIONAL, -- AP signal strength at SET
	apChannelFrequency INTEGER(0..256) OPTIONAL, -- AP channel/frequency of Tx/Rx
	apRoundTripDelay RTD OPTIONAL, -- Round Trip Delay between SET and AP
	setTransmitPower INTEGER(-127..128) OPTIONAL, -- SET transmit power in dBm
	setAntennaGain INTEGER (-127..128) OPTIONAL, -- SET antenna gain in dBi
	setSignaltoNoise INTEGER (-127..128) OPTIONAL, -- SET S/N received at AP
	setSignalStrength INTEGER(-127..128) OPTIONAL, -- SET signal strength at AP
	apReportedLocation ReportedLocation OPTIONAL, -- AP Location reported by AP
	...}

RTD ::= SEQUENCE { -- as per [IEEE 802.11v]
	rTDValue INTEGER(0..16777216), -- measured RTD value corresponding to
-- about 500km in units of 1/10 of nanoseconds
	rTDUnits RTDUnits, -- units of RTD
	rTDAccuracy INTEGER(0..255) OPTIONAL, -- RTD accuracy
	...}

RTDUnits ::= ENUMERATED {
	microseconds(0), hundredsofnanoseconds(1), tensofnanoseconds(2),
	nanoseconds(3), tenthsofnanoseconds(4), ...}

ReportedLocation ::= SEQUENCE { -- as per [IEEE 802.11v]
	locationEncodingDescriptor LocationEncodingDescriptor,
	locationData LocationData, -- location data field
	...}

LocationEncodingDescriptor ::= ENUMERATED {
	lCI(0), aSN1(1), ...}

LocationData ::= SEQUENCE {
	locationAccuracy INTEGER(0..4294967295) OPTIONAL,
	locationValue OCTET STRING (SIZE(1..128)),
	...}

WimaxBSInformation ::= SEQUENCE {
	wimaxBsID WimaxBsID, -- WiMax serving base station ID
	wimaxRTD WimaxRTD OPTIONAL, -- Round Trip Delay measurements
	wimaxNMRList WimaxNMRList OPTIONAL, -- Network measurements
	...}

WimaxBsID ::= SEQUENCE {
	bsID-MSB BIT STRING (SIZE(24)) OPTIONAL,
	bsID-LSB BIT STRING (SIZE(24)),
	...}
-- if only LSB is present, MSB is assumed to be identical to the current serving BS or clamped on network value

WimaxRTD ::= SEQUENCE {
	rTD INTEGER (0..65535), -- Round trip delay of serving BS in units of 10 ns
	rTDstd INTEGER (0..1023) OPTIONAL, -- Standard deviation of round trip delay in units of 10 ns
...}

WimaxNMRList ::= SEQUENCE (SIZE (1..maxWimaxBSMeas)) OF WimaxNMR

WimaxNMR ::= SEQUENCE {
	wimaxBsID WimaxBsID, -- WiMax BS ID for the measurement
	relDelay INTEGER (-32768..32767) OPTIONAL, -- Relative delay for this neighbouring BSs to the serving cell in units of 10 ns
	relDelaystd INTEGER (0..1023) OPTIONAL, -- Standard deviation of Relative delay in units of 10 ns
	rSSI INTEGER (0..255) OPTIONAL, -- RSSI in 0.25 dBm steps, starting from -103.75 dBm
	rSSIstd INTEGER (0..63) OPTIONAL, -- Standard deviation of RSSI in dB
	bSTxPower INTEGER (0..255) OPTIONAL, -- BS transmit power in 0.25 dBm steps, starting from -103.75 dBm
	cINR INTEGER (0..255) OPTIONAL, -- in dB
	cINRstd INTEGER (0..63) OPTIONAL, -- Standard deviation of CINR in dB
	bSLocation ReportedLocation OPTIONAL, -- Reported location of the BS
	...}

maxWimaxBSMeas INTEGER ::= 32

UTRAN-GPSReferenceTimeAssistance ::= SEQUENCE {
	utran-GPSReferenceTime		UTRAN-GPSReferenceTime,
	gpsReferenceTimeUncertainty INTEGER (0..127) OPTIONAL,
	utranGPSDriftRate			UTRANGPSDriftRate OPTIONAL}
	
UTRAN-GPSReferenceTime ::= SEQUENCE {
-- For utran-GPSTimingOfCell values above 2322431999999 are not used in this version of the specification. Actual value utran-GPSTimingOfCell = (ms-part *
-- 4294967296) + ls-part used on the downlink i.e. sent from the SLP to the SET 
	utran-GPSTimingOfCell SEQUENCE {
		ms-part INTEGER (0..1023),
		ls-part INTEGER (0..4294967295)},
		modeSpecificInfo CHOICE {
			fdd SEQUENCE {
				referenceIdentity PrimaryCPICH-Info},
			tdd SEQUENCE {
				referenceIdentity CellParametersID}
		} OPTIONAL,
		sfn INTEGER (0..4095)}
			
UTRANGPSDriftRate ::= ENUMERATED {
	utran-GPSDrift0, utran-GPSDrift1, utran-GPSDrift2,
	utran-GPSDrift5, utran-GPSDrift10, utran-GPSDrift15,
	utran-GPSDrift25, utran-GPSDrift50, utran-GPSDrift-1,
	utran-GPSDrift-2, utran-GPSDrift-5, utran-GPSDrift-10,
	utran-GPSDrift-15, utran-GPSDrift-25, utran-GPSDrift-50}

UTRAN-GPSReferenceTimeResult ::= SEQUENCE {
-- For ue-GPSTimingOfCell values above 37158911999999 are not used in this version of the specification. Actual value utran-GPSTimingOfCell = (ms-part *
-- 4294967296) + ls-part used on the uplink i.e. reported by the SET to the SLP

set-GPSTimingOfCell SEQUENCE {
	ms-part INTEGER (0.. 16383),
	ls-part INTEGER (0..4294967295)},
	modeSpecificInfo CHOICE {
		fdd SEQUENCE {
			referenceIdentity PrimaryCPICH-Info},
		tdd SEQUENCE {
			referenceIdentity CellParametersID}
	} OPTIONAL,
	sfn INTEGER (0..4095),
	gpsReferenceTimeUncertainty INTEGER (0..127) OPTIONAL,
	...}

UTRAN-GANSSReferenceTimeAssistance ::= SEQUENCE {
	ganssDay INTEGER (0..8191) OPTIONAL,
	ganssTimeID INTEGER (0..15),
	utran-GANSSReferenceTime UTRAN-GANSSReferenceTime,
	utranGANSSDriftRate UTRANGANSSDriftRate OPTIONAL}
	UTRAN-GANSSReferenceTime ::= SEQUENCE {
	ganssTOD INTEGER (0..86399),
	utran-GANSSTimingOfCell INTEGER (0..3999999)OPTIONAL,
	modeSpecificInfo CHOICE {
		fdd SEQUENCE {
			referenceIdentity PrimaryCPICH-Info},
		tdd SEQUENCE {
			referenceIdentity CellParametersID}
	} OPTIONAL,
	sfn INTEGER (0..4095),
	ganss-TODUncertainty INTEGER (0..127) OPTIONAL,
	...}
	
UTRANGANSSDriftRate ::= ENUMERATED {
	utran-GANSSDrift0, utran-GANSSDrift1, utran-GANSSDrift2,
	utran-GANSSDrift5, utran-GANSSDrift10, utran-GANSSDrift15,
	utran-GANSSDrift25, utran-GANSSDrift50, utran-GANSSDrift-1,
	utran-GANSSDrift-2, utran-GANSSDrift-5, utran-GANSSDrift-10,
	utran-GANSSDrift-15, utran-GANSSDrift-25, utran-GANSSDrift-50}
	UTRAN-GANSSReferenceTimeResult ::= SEQUENCE {
	ganssTimeID INTEGER (0..15),
	set-GANSSReferenceTime SET-GANSSReferenceTime,
	...}

SET-GANSSReferenceTime ::= SEQUENCE {
-- Actual value [ns] = (ms-Part * 4294967296 + ls-Part) * 250
-- Actual values [ns] > 86399999999750 are reserved and are considered a
-- protocol error
	set-GANSSTimingOfCell SEQUENCE {
		ms-part INTEGER (0..80),
		ls-part INTEGER (0..4294967295)} OPTIONAL,
		modeSpecificInfo CHOICE {
			fdd SEQUENCE {
				referenceIdentity PrimaryCPICH-Info},
			tdd SEQUENCE {
				referenceIdentity CellParametersID}
		} OPTIONAL,
		sfn INTEGER (0..4095),
		ganss-TODUncertainty INTEGER (0..127) OPTIONAL,
	...}
	GNSSPosTechnology ::= SEQUENCE {
	gps BOOLEAN,
	galileo BOOLEAN,
	sbas BOOLEAN,
	modernized-gps BOOLEAN,
	qzss BOOLEAN,
	glonass BOOLEAN,
	...}
-- indicates MS support for particular GANSS signals and frequencies coding according to parameter definition in section 10.9
GANSSSignals ::= BIT STRING {
	signal1 (0),
	signal2 (1),
	signal3 (2),
	signal4 (3),
	signal5 (4),
	signal6 (5),
	signal7 (6),
	signal8 (7)} (SIZE (1..8))

SPCSETKey ::= BIT STRING(SIZE (128))

SPCTID ::= SEQUENCE {
	rAND BIT STRING(SIZE (128)),
	slpFQDN FQDN,
	...}

SPCSETKeylifetime ::= INTEGER (1..24) -- units in hours

CauseCode ::= ENUMERATED {
	servingNetWorkNotInAreaIdList(0), sETCapabilitiesChanged(1),
	noSUPLCoverage(2), ...}

ThirdParty ::= SEQUENCE (SIZE (1..64)) OF ThirdPartyID

ThirdPartyID ::= CHOICE {
	logicalName IA5String(SIZE (1..1000)),
	msisdn OCTET STRING(SIZE (8)),
	emailaddr IA5String(SIZE (1..1000)),
--	sip-uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~%#@?")) (SIZE (1..255)),
--	ims-public-identity VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~%#@?")) (SIZE (1..255)),
-- # asn2wrs does not handle '%' in the resticted string
	sip-uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~#@?")) (SIZE (1..255)),
	ims-public-identity VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | ":./-_~#@?")) (SIZE (1..255)),
	min BIT STRING(SIZE (34)), -- coded according to TIA-553
	mdn OCTET STRING(SIZE (8)),
--	uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | "./-_~%#")) (SIZE (1..255)),
	uri VisibleString(FROM ("a".."z" | "A".."Z" | "0".."9" | "./-_~#")) (SIZE (1..255)),
--	uri VisibleString(FROM ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~#" )) (SIZE (1..255)),
...}

ApplicationID ::= SEQUENCE {
	appProvider IA5String(SIZE (1..24)), -- The application provider
	appName IA5String(SIZE (1..32)), -- The application name
	appVersion IA5String(SIZE (1..8)) OPTIONAL, -- The application version
	...}

ReportingCap ::= SEQUENCE {
	minInt INTEGER (1..3600), -- units in seconds
	maxInt INTEGER (1..1440) OPTIONAL, -- units in minutes
	repMode RepMode-cap,
	batchRepCap BatchRepCap OPTIONAL, -- only used for batch and quasi real time reporting
	...}

RepMode-cap ::= SEQUENCE {
	realtime BOOLEAN,
	quasirealtime BOOLEAN,
	batch BOOLEAN,
	...}

BatchRepCap ::= SEQUENCE {
	report-position BOOLEAN, -- set to “true” if reporting of position is supported
	report-measurements BOOLEAN, -- set to “true” if reporting of measurements is supported
	max-num-positions INTEGER (1..1024) OPTIONAL,
	max-num-measurements INTEGER (1..1024) OPTIONAL,
	...}

Coordinate::= SEQUENCE {
	latitudeSign ENUMERATED {north(0), south(1)},
	latitude INTEGER(0..8388607),
	longitude INTEGER(-8388608..8388607)} -- Coding as in [3GPP GAD]

CircularArea ::= SEQUENCE {
	coordinate Coordinate,
	radius INTEGER(1..1000000), -- radius in meters
	radius-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum radius
	radius-max INTEGER(1..1500000) OPTIONAL} -- hysteresis maximum radius

EllipticalArea ::= SEQUENCE {
	coordinate Coordinate,
	semiMajor INTEGER(1..1000000), -- units in meters
	semiMajor-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum semiMajor
	semiMajor-max INTEGER(1..1500000) OPTIONAL, -- hysteresis maximum semiMajor
	semiMinor INTEGER(1..1000000), -- units in meters 
	semiMinor-min INTEGER(1..1000000) OPTIONAL, -- hysteresis minimum semiMinor
	semiMinor-max INTEGER(1..1500000) OPTIONAL, -- hysteresis maximum semiMinor
	angle INTEGER(0.. 179)} -- units in degrees – the angle is defined as the angle between the semi-major axis and North, increasing in a
						-- clockwise direction. An angle of 0 represents an ellipse with the semi-major
						-- axis pointing North/South while an angle of 90 represents an ellipse with the
						-- semi-major axis pointing East/West.

PolygonArea ::= SEQUENCE {
	polygonDescription PolygonDescription,
	polygonHysteresis INTEGER(1..100000) OPTIONAL} -- units in meters
	PolygonDescription ::= SEQUENCE (SIZE (3..15)) OF Coordinate

END