1-- SUPL.asn
2-- Taken from OMA UserPlane Location Protocol
3-- http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-TS-ULP-V2_0_5-20191028-A.zip
4
5--
6-- 11.2 Message Specific Part
7--
8--
9-- 11.2.1 SUPL INIT
10--
11SUPL-INIT DEFINITIONS AUTOMATIC TAGS ::=
12BEGIN
13
14EXPORTS SUPLINIT, Notification;
15
16IMPORTS
17	SLPAddress, QoP, PosMethod
18FROM ULP-Components
19	Ver2-SUPL-INIT-extension
20FROM ULP-Version-2-message-extensions
21	Ver2-Notification-extension
22FROM ULP-Version-2-parameter-extensions;
23
24SUPLINIT ::= SEQUENCE {
25  posMethod     PosMethod,
26  notification  Notification OPTIONAL,
27  sLPAddress    SLPAddress OPTIONAL,
28  qoP           QoP OPTIONAL,
29  sLPMode       SLPMode,
30  mac           MAC OPTIONAL, -- included for backwards compatibility
31  keyIdentity   KeyIdentity OPTIONAL, -- included for backwards compatibility
32  ...,
33-- version 2 extension element
34  ver2-SUPL-INIT-extension	Ver2-SUPL-INIT-extension OPTIONAL}
35
36Notification ::= SEQUENCE {
37  notificationType  NotificationType,
38  encodingType      EncodingType OPTIONAL,
39  requestorId       OCTET STRING(SIZE (1..maxReqLength)) OPTIONAL,
40  requestorIdType   FormatIndicator OPTIONAL,
41  clientName        OCTET STRING(SIZE (1..maxClientLength)) OPTIONAL,
42  clientNameType    FormatIndicator OPTIONAL,
43  ...,
44  ver2-Notification-extension	Ver2-Notification-extension OPTIONAL}
45
46NotificationType ::= ENUMERATED {
47  noNotificationNoVerification(0), notificationOnly(1),
48  notificationAndVerficationAllowedNA(2),
49  notificationAndVerficationDeniedNA(3), privacyOverride(4), ...}
50
51EncodingType ::= ENUMERATED {ucs2(0), gsmDefault(1), utf8(2), ...}
52
53maxReqLength INTEGER ::= 50
54
55maxClientLength INTEGER ::= 50
56
57FormatIndicator ::= ENUMERATED {
58  logicalName(0), e-mailAddress(1), msisdn(2), url(3), sipUrl(4), min(5),
59  mdn(6), iMSPublicidentity(7), ...}
60
61SLPMode ::= ENUMERATED {proxy(0), nonProxy(1)}
62
63MAC ::= BIT STRING(SIZE (64)) -- empty placeholder required for SUPL 1.0 backwards compatibility
64
65KeyIdentity ::= BIT STRING(SIZE (128)) -- empty placeholder required for SUPL 1.0 backwards compatibility
66
67END
68
69--
70-- 11.2.2 SUPL START
71--
72SUPL-START DEFINITIONS AUTOMATIC TAGS ::=
73BEGIN
74
75EXPORTS SUPLSTART, SETCapabilities;
76
77IMPORTS
78	LocationId, QoP
79FROM ULP-Components
80	Ver2-SUPL-START-extension
81FROM ULP-Version-2-message-extensions
82	Ver2-SETCapabilities-extension, Ver2-PosProtocol-extension, Ver2-PosTechnology-extension
83FROM ULP-Version-2-parameter-extensions;
84
85SUPLSTART ::= SEQUENCE {
86  sETCapabilities  SETCapabilities,
87  locationId       LocationId,
88  qoP              QoP OPTIONAL,
89  ...,
90-- version 2 extension element
91  ver2-SUPL-START-extension	Ver2-SUPL-START-extension OPTIONAL}
92
93SETCapabilities ::= SEQUENCE {
94  posTechnology  PosTechnology,
95  prefMethod     PrefMethod,
96  posProtocol    PosProtocol,
97  ...,
98  ver2-SETCapabilities-extension	Ver2-SETCapabilities-extension OPTIONAL}
99
100PosTechnology ::= SEQUENCE {
101  agpsSETassisted  BOOLEAN,
102  agpsSETBased     BOOLEAN,
103  autonomousGPS    BOOLEAN,
104  aflt             BOOLEAN,
105  ecid             BOOLEAN,
106  eotd             BOOLEAN,
107  otdoa            BOOLEAN,
108  ...,
109  ver2-PosTechnology-extension	Ver2-PosTechnology-extension OPTIONAL}
110
111PrefMethod ::= ENUMERATED {
112  agpsSETassistedPreferred, agpsSETBasedPreferred, noPreference}
113-- To achieve compatibility  with ULP V1.0 the names of the enumerations are
114-- kept the same as in ULP V1.0. agps shall be interpreted as agnss.
115
116PosProtocol ::= SEQUENCE {
117  tia801  BOOLEAN,
118  rrlp    BOOLEAN,
119  rrc     BOOLEAN,
120  ...,
121  ver2-PosProtocol-extension	Ver2-PosProtocol-extension OPTIONAL}
122
123END
124
125--
126-- 11.2.3 SUPL RESPONSE
127--
128SUPL-RESPONSE DEFINITIONS AUTOMATIC TAGS ::=
129BEGIN
130
131EXPORTS SUPLRESPONSE;
132
133IMPORTS
134	PosMethod, SLPAddress
135FROM ULP-Components
136	Ver2-SUPL-RESPONSE-extension
137FROM ULP-Version-2-message-extensions;
138
139SUPLRESPONSE ::= SEQUENCE {
140  posMethod     PosMethod,
141  sLPAddress    SLPAddress OPTIONAL,
142sETAuthKey    SETAuthKey OPTIONAL, -- included for backwards compatibility
143  keyIdentity4  KeyIdentity4 OPTIONAL, -- included for backwards compatibility
144  ...,
145-- version 2 extension element
146  ver2-SUPL-RESPONSE-extension	Ver2-SUPL-RESPONSE-extension OPTIONAL}
147
148SETAuthKey ::= CHOICE {
149  shortKey  BIT STRING(SIZE (128)),
150  longKey   BIT STRING(SIZE (256)),
151  ...}
152
153KeyIdentity4 ::= BIT STRING(SIZE (128))
154
155END
156
157--
158-- 11.2.4 SUPL POS INIT
159--
160SUPL-POS-INIT DEFINITIONS AUTOMATIC TAGS ::=
161BEGIN
162
163EXPORTS SUPLPOSINIT;
164
165IMPORTS
166	SUPLPOS
167FROM SUPL-POS
168	SETCapabilities
169FROM SUPL-START
170	LocationId, Position, Ver
171FROM ULP-Components
172	Ver2-SUPL-POS-INIT-extension
173FROM ULP-Version-2-message-extensions
174	Ver2-RequestedAssistData-extension
175FROM ULP-Version-2-parameter-extensions;
176
177SUPLPOSINIT ::= SEQUENCE {
178  sETCapabilities      SETCapabilities,
179  requestedAssistData  RequestedAssistData OPTIONAL,
180  locationId           LocationId,
181  position             Position OPTIONAL,
182  suplpos              SUPLPOS OPTIONAL,
183  ver                  Ver OPTIONAL,
184  ...,
185-- version 2 extension element
186  ver2-SUPL-POS-INIT-extension	Ver2-SUPL-POS-INIT-extension OPTIONAL}
187
188RequestedAssistData ::= SEQUENCE {
189  almanacRequested                BOOLEAN,
190  utcModelRequested               BOOLEAN,
191  ionosphericModelRequested       BOOLEAN,
192  dgpsCorrectionsRequested        BOOLEAN,
193  referenceLocationRequested      BOOLEAN, -- Note: Used also for GANSS
194  referenceTimeRequested          BOOLEAN,
195  acquisitionAssistanceRequested  BOOLEAN,
196  realTimeIntegrityRequested      BOOLEAN,
197  navigationModelRequested        BOOLEAN,
198  navigationModelData             NavigationModel OPTIONAL,
199  ...,
200  ver2-RequestedAssistData-extension Ver2-RequestedAssistData-extension OPTIONAL}
201
202NavigationModel ::= SEQUENCE {
203  gpsWeek   INTEGER(0..1023),
204  gpsToe    INTEGER(0..167),
205  nsat      INTEGER(0..31),
206  toeLimit  INTEGER(0..10),
207  satInfo   SatelliteInfo OPTIONAL,
208...}
209
210-- Further information on this fields can be found
211-- in [3GPP RRLP]and [3GPP 49.031]
212
213SatelliteInfo ::= SEQUENCE (SIZE (1..31)) OF SatelliteInfoElement
214
215SatelliteInfoElement ::= SEQUENCE {
216  satId  INTEGER(0..63),
217  iode   INTEGER(0..255),
218  ...}
219
220END
221
222--
223-- 11.2.5 SUPL POS
224--
225SUPL-POS DEFINITIONS AUTOMATIC TAGS ::=
226BEGIN
227
228EXPORTS SUPLPOS;
229
230IMPORTS
231	Velocity
232FROM ULP-Components
233	Ver2-SUPL-POS-extension
234FROM ULP-Version-2-message-extensions
235Ver2-PosPayLoad-extension
236FROM ULP-Version-2-parameter-extensions;
237
238SUPLPOS ::= SEQUENCE {
239  posPayLoad  PosPayLoad,
240  velocity    Velocity OPTIONAL,
241  ...,
242-- version 2 extension element
243  ver2-SUPL-POS-extension	Ver2-SUPL-POS-extension OPTIONAL}
244
245PosPayLoad ::= CHOICE {
246  tia801payload  OCTET STRING(SIZE (1..8192)),
247  rrcPayload     OCTET STRING(SIZE (1..8192)),
248  rrlpPayload    OCTET STRING(SIZE (1..8192)),
249  ...,
250  ver2-PosPayLoad-extension  Ver2-PosPayLoad-extension}
251
252END
253
254--
255-- 11.2.6 SUPL END
256--
257SUPL-END DEFINITIONS AUTOMATIC TAGS ::=
258BEGIN
259
260EXPORTS SUPLEND;
261
262IMPORTS
263	StatusCode, Position, Ver
264FROM ULP-Components
265	Ver2-SUPL-END-extension
266FROM ULP-Version-2-message-extensions;
267
268SUPLEND ::= SEQUENCE {
269  position	Position OPTIONAL,
270  statusCode	StatusCode OPTIONAL,
271  ver		Ver OPTIONAL,
272  ...,
273-- version 2 extension element
274  ver2-SUPL-END-extension	Ver2-SUPL-END-extension OPTIONAL}
275
276END
277
278--
279-- 11.2.7 SUPL AUTH REQ
280--
281SUPL-AUTH-REQ DEFINITIONS AUTOMATIC TAGS ::=
282BEGIN
283
284EXPORTS SUPLAUTHREQ;
285
286IMPORTS
287	Ver
288FROM ULP-Components
289	SETCapabilities
290FROM SUPL-START;
291
292SUPLAUTHREQ ::= SEQUENCE {
293  ver      	Ver OPTIONAL,
294  sETCapabilities	SETCapabilities OPTIONAL,
295  ...}
296
297END
298
299--
300-- 11.2.8 SUPL AUTH RESP
301--
302SUPL-AUTH-RESP DEFINITIONS AUTOMATIC TAGS ::=
303BEGIN
304
305EXPORTS SUPLAUTHRESP;
306
307IMPORTS
308	SPCSETKey, SPCTID, SPCSETKeylifetime
309FROM Ver2-ULP-Components;
310
311SUPLAUTHRESP ::= SEQUENCE {
312  sPCSETKey	SPCSETKey,
313  spctid  	SPCTID,
314  sPCSETKeylifetime	SPCSETKeylifetime OPTIONAL,
315  ...}
316
317END
318
319--
320-- 11.2.9 SUPL NOTIFY
321--
322SUPL-NOTIFY DEFINITIONS AUTOMATIC TAGS ::=
323BEGIN
324
325EXPORTS Ver2-SUPLNOTIFY;
326
327IMPORTS
328	Notification
329FROM SUPL-INIT;
330
331Ver2-SUPLNOTIFY ::= SEQUENCE {
332  notification  Notification,
333  ...}
334END
335
336--
337-- 11.2.10 SUPL NOTIFY RESPONSE
338--
339SUPL-NOTIFY-RESPONSE DEFINITIONS AUTOMATIC TAGS ::=
340BEGIN
341
342EXPORTS Ver2-SUPLNOTIFYRESPONSE;
343
344Ver2-SUPLNOTIFYRESPONSE ::= SEQUENCE {
345  notificationResponse  NotificationResponse OPTIONAL,
346  ...}
347
348NotificationResponse ::= ENUMERATED {allowed(0), notAllowed(1), ...}
349
350END
351
352--
353-- 11.2.11 SUPL SET INIT
354--
355SUPL-SET-INIT DEFINITIONS AUTOMATIC TAGS ::=
356BEGIN
357
358EXPORTS Ver2-SUPLSETINIT;
359
360IMPORTS
361	SETId, QoP
362FROM ULP-Components
363ApplicationID
364FROM Ver2-ULP-Components;
365
366
367Ver2-SUPLSETINIT ::= SEQUENCE {
368  targetSETID    SETId, --Target SETid identifies the target SET to be located
369  qoP            QoP OPTIONAL,
370  applicationID  ApplicationID OPTIONAL,
371  ...}
372
373END
374
375--
376-- 11.2.12 SUPL TRIGGERED START
377--
378SUPL-TRIGGERED-START DEFINITIONS AUTOMATIC TAGS ::=
379BEGIN
380
381EXPORTS Ver2-SUPLTRIGGEREDSTART, TriggerType, TriggerParams, maxNumGeoArea, maxAreaId, maxAreaIdList;
382
383IMPORTS
384	LocationId, QoP, Ver, Position
385FROM ULP-Components
386	MultipleLocationIds, CauseCode, ThirdParty, ApplicationID, ReportingCap, Coordinate, CircularArea, EllipticalArea, PolygonArea
387FROM Ver2-ULP-Components
388	SETCapabilities
389FROM SUPL-START;
390
391Ver2-SUPLTRIGGEREDSTART ::= SEQUENCE {
392  sETCapabilities  	SETCapabilities,
393  locationId       	LocationId,
394  ver              	Ver OPTIONAL,
395  qoP              	QoP OPTIONAL,
396  multipleLocationIds	MultipleLocationIds OPTIONAL,
397thirdParty    	ThirdParty OPTIONAL,
398applicationID	ApplicationID OPTIONAL,
399  triggerType   	TriggerType OPTIONAL,
400  triggerParams 	TriggerParams OPTIONAL,
401  position         	Position OPTIONAL,
402  reportingCap	ReportingCap OPTIONAL,
403  causeCode	CauseCode OPTIONAL,
404...}
405
406TriggerType ::= ENUMERATED {
407  periodic(0), areaEvent(1),
408  ...}
409
410TriggerParams ::= CHOICE {
411   periodicParams	PeriodicParams,
412   areaEventParams	AreaEventParams,
413   ...}
414
415PeriodicParams ::= SEQUENCE{
416   numberOfFixes   		INTEGER(1.. 8639999),
417   intervalBetweenFixes    	INTEGER(1.. 8639999),
418   startTime		INTEGER(0..2678400) OPTIONAL,
419...}
420-- intervalBetweenFixes and startTime are in seconds.
421-- numberOfFixes  * intervalBetweenFixes shall not exceed 8639999
422-- (100 days in seconds) for compatibility with OMA MLP and RLP
423-- startTime is in relative time in units of seconds measured from "now"
424-- a value of 0 signifies "now", a value of "startTime" signifies startTime
425-- seconds from "now"
426
427AreaEventParams ::= SEQUENCE {
428areaEventType		AreaEventType,
429locationEstimate		BOOLEAN,
430repeatedReportingParams	RepeatedReportingParams OPTIONAL,
431startTime		INTEGER(0..2678400) OPTIONAL,
432stopTime		INTEGER(0..11318399) OPTIONAL,
433geographicTargetAreaList	GeographicTargetAreaList	OPTIONAL,
434areaIdLists		SEQUENCE (SIZE (1..maxAreaIdList)) OF AreaIdList OPTIONAL,
435...}
436
437-- startTime and stopTime are in seconds.
438-- startTime and stop Time are in relative time in units of seconds measured
439-- from "now"
440-- a value of 0 signifies "now"
441-- stopTime must be > startTime
442-- stopTime - startTime shall not exceed 8639999
443-- (100 days in seconds) for compatibility with OMA MLP and RLP
444
445AreaEventType ::= ENUMERATED {enteringArea(0), insideArea(1), outsideArea(2), leavingArea(3), ...}
446
447RepeatedReportingParams ::= SEQUENCE {
448minimumIntervalTime	     INTEGER (1..604800), -- time in seconds
449maximumNumberOfReports   INTEGER (1..1024),
450...}
451
452GeographicTargetAreaList ::= SEQUENCE (SIZE (1..maxNumGeoArea)) OF GeographicTargetArea
453
454GeographicTargetArea ::= CHOICE {
455 circularArea	CircularArea,
456 ellipticalArea	EllipticalArea,
457 polygonArea	PolygonArea,
458 ...}
459
460AreaIdList ::= SEQUENCE {
461 areaIdSet	AreaIdSet,
462 areaIdSetType    	AreaIdSetType OPTIONAL,
463 geoAreaMappingList		GeoAreaMappingList OPTIONAL}
464
465AreaIdSet ::= SEQUENCE SIZE (1..maxAreaId) OF AreaId
466
467AreaId ::= CHOICE {
468 gSMAreaId	GSMAreaId,
469 wCDMAAreaId  	WCDMAAreaId, -- For TD-SCDMA networks, this parameter indicates a TD-SCDMA Area ID
470 cDMAAreaId 	CDMAAreaId,
471 hRPDAreaId	HRPDAreaId,
472 uMBAreaId	UMBAreaId,
473 lTEAreaId	LTEAreaId,
474 wLANAreaId 	WLANAreaId,
475 wiMAXAreaId	WimaxAreaId,
476 ...,
477nRAreaId	NRAreaId }
478
479GSMAreaId ::= SEQUENCE {
480 refMCC		INTEGER(0..999) OPTIONAL, -- Mobile Country Code
481 refMNC		INTEGER(0..999) OPTIONAL, -- Mobile Network Code
482 refLAC		INTEGER(0..65535) OPTIONAL, -- Location Area Code
483 refCI		INTEGER(0..65535) OPTIONAL, -- Cell Id
484 ...}
485-- only one of the following four combinations are allowed: (1) refMCC, (2) refMCC+refMNC, (3) refMCC+refMNC+refLAC or (4) refMCC+refMNC+refLAC+refCI
486
487WCDMAAreaId ::= SEQUENCE {
488  refMCC	INTEGER(0..999) OPTIONAL, -- Mobile Country Code
489refMNC	INTEGER(0..999) OPTIONAL, -- Mobile Network Code
490  refLAC	INTEGER(0..65535) OPTIONAL, -- Location Area Code
491refUC	INTEGER(0..268435455) OPTIONAL, -- Cell identity
492...}
493-- only one of the following four combinations are allowed: (1) refMCC, (2) refMCC+refMNC, (3) refMCC+refMNC+refLAC, or (4) refMCC+refMNC+refLAC+refUC
494
495CDMAAreaId::= SEQUENCE {
496  refSID         INTEGER(0..65535) OPTIONAL, -- System Id
497  refNID         INTEGER(0..32767) OPTIONAL, -- Network Id
498  refBASEID      INTEGER(0..65535) OPTIONAL, -- Base Station Id
499...}
500-- only one of the following three combinations are allowed: (1) refSID, (2) refSID+refNID, or (3) refSID+refNID+refBASEID
501
502HRPDAreaId::= SEQUENCE {
503refSECTORID    BIT STRING(SIZE (128)), -- HRPD Sector Id
504...}
505
506UMBAreaId::= SEQUENCE {
507  refMCC		INTEGER(0..999) OPTIONAL, -- Mobile Country Code
508  refMNC		INTEGER(0..999) OPTIONAL, -- Mobile Network Code
509refSECTORID    	BIT STRING(SIZE (128)) OPTIONAL, -- UMB Sector Id
510...}
511
512LTEAreaId::= SEQUENCE {
513  refMCC	INTEGER(0..999) OPTIONAL, -- Mobile Country Code
514  refMNC	INTEGER(0..999) OPTIONAL, -- Mobile Network Code
515refCI	BIT STRING(SIZE (29)) OPTIONAL, -- LTE Cell-Id
516...}
517-- only one of the following three combinations are allowed: (1) refMCC, (2) refMCC+refMNC, or (3) refMCC+refMNC+refCI
518-- The LTE Cell-Id is encoded in the 28 Least Significant Bits of refCI
519-- The Most Significant Bit of refCI shall be ignored
520
521WLANAreaId::= SEQUENCE {
522  apMACAddress       BIT STRING(SIZE (48)), -- AP MAC Address
523...}
524
525WimaxAreaId ::= SEQUENCE {
526  bsID-MSB      BIT STRING (SIZE(24)) OPTIONAL,
527  bsID-LSB      BIT STRING (SIZE(24)) }
528-- if only LSB is present, MSB is assumed to be identical to the current serving BS or clamped on network value
529
530NRAreaId ::= SEQUENCE {
531  refMCC	INTEGER(0..999) OPTIONAL, -- Mobile Country Code
532  refMNC	INTEGER(0..999) OPTIONAL, -- Mobile Network Code
533refCI	BIT STRING(SIZE (36)) OPTIONAL, -- NR Cell-Id
534...}
535-- only one of the following three combinations are allowed: (1) refMCC, (2)
536-- refMCC+refMNC, or (3) refMCC+refMNC+refCI
537
538
539AreaIdSetType ::=  ENUMERATED {border(0), within(1), ...}
540
541GeoAreaMappingList ::= SEQUENCE (SIZE (1..maxNumGeoArea)) OF GeoAreaIndex
542
543GeoAreaIndex ::= INTEGER (1..maxNumGeoArea)
544
545maxNumGeoArea INTEGER ::= 32
546
547maxAreaId INTEGER ::= 256
548
549maxAreaIdList INTEGER ::= 32
550
551END
552
553--
554-- 11.2.13 SUPL TRIGGERED RESPONSE
555--
556SUPL-TRIGGERED-RESPONSE DEFINITIONS AUTOMATIC TAGS ::=
557BEGIN
558
559EXPORTS Ver2-SUPLTRIGGEREDRESPONSE;
560
561IMPORTS
562	PosMethod, SLPAddress
563FROM ULP-Components
564	SupportedNetworkInformation, SPCSETKey, SPCTID, SPCSETKeylifetime, GNSSPosTechnology
565FROM Ver2-ULP-Components
566	TriggerParams
567FROM SUPL-TRIGGERED-START;
568
569Ver2-SUPLTRIGGEREDRESPONSE::= SEQUENCE{
570  posMethod     		PosMethod,
571  triggerParams 		TriggerParams  OPTIONAL,
572  sLPAddress    		SLPAddress OPTIONAL,
573  supportedNetworkInformation   	SupportedNetworkInformation OPTIONAL,
574  reportingMode		ReportingMode OPTIONAL,
575  sPCSETKey		SPCSETKey	OPTIONAL,
576  spctid			SPCTID	OPTIONAL,
577  sPCSETKeylifetime		SPCSETKeylifetime OPTIONAL,
578  gnssPosTechnology		GNSSPosTechnology OPTIONAL,
579  ...}
580ReportingMode ::= SEQUENCE {
581repMode	RepModee,
582batchRepConditions	BatchRepConditions OPTIONAL, -- only used for batch reporting
583batchRepType	BatchRepType OPTIONAL, -- only used for batch reporting
584...}
585
586RepModee ::= ENUMERATED {realtime(1), quasirealtime(2), batch(3), ...}
587
588BatchRepConditions ::= CHOICE {
589 num-interval INTEGER (1..1024), -- number of periodic fixes/measurements after which the batch report is sent to the SLP
590 num-minutes INTEGER (1..2048), -- number of minutes after which the batch report is sent to the SLP
591 endofsession NULL, -- if selected batch report is to be sent at the end of the session
592 ...}
593
594BatchRepType ::= SEQUENCE {
595reportPosition	BOOLEAN, -- set to "true" if reporting of position is allowed
596reportMeasurements	BOOLEAN, -- set to "true" if reporting of measurements is allowed
597intermediateReports   BOOLEAN, -- set to "true" if the SET is allowed to send intermediate reports if it runs out of memory
598discardOldest 	BOOLEAN OPTIONAL, -- set to "true" if the SET should discard the oldest positions or measurements of the batch report in order to save memory, set to "false" the SET should discard the latest positions or measurements
599...}
600
601END
602
603--
604-- 11.2.14 SUPL REPORT
605--
606SUPL-REPORT DEFINITIONS AUTOMATIC TAGS ::=
607BEGIN
608
609EXPORTS Ver2-SUPLREPORT;
610
611IMPORTS
612	SETCapabilities
613FROM SUPL-START
614	Position, PosMethod, SessionID, Ver
615FROM ULP-Components
616	MultipleLocationIds, GNSSPosTechnology, GANSSSignals
617FROM Ver2-ULP-Components
618	maxGANSS
619FROM ULP-Version-2-parameter-extensions;
620
621Ver2-SUPLREPORT ::= SEQUENCE {
622 sessionList	SessionList OPTIONAL,
623 sETCapabilities      SETCapabilities OPTIONAL,
624 reportDataList 	ReportDataList OPTIONAL,
625 ver  		Ver OPTIONAL,
626 moreComponents	NULL OPTIONAL,
627...}
628
629SessionList ::= SEQUENCE SIZE (1..maxnumSessions) OF SessionInformation
630
631SessionInformation ::= SEQUENCE {
632 sessionID	SessionID,
633 ...}
634
635maxnumSessions    INTEGER ::= 64
636
637ReportDataList ::= SEQUENCE SIZE (1.. 1024) OF ReportData
638
639ReportData ::= SEQUENCE {
640  positionData	PositionData OPTIONAL,
641  multipleLocationIds	MultipleLocationIds OPTIONAL,
642  resultCode	ResultCode OPTIONAL,
643  timestamp	TimeStamp OPTIONAL,
644  ...}
645
646PositionData ::= SEQUENCE {
647 position		Position,
648 posMethod		PosMethod OPTIONAL,
649 gnssPosTechnology		GNSSPosTechnology OPTIONAL,
650 ganssSignalsInfo		GANSSsignalsInfo OPTIONAL,
651 ...}
652
653GANSSsignalsInfo ::= SEQUENCE SIZE (1..maxGANSS) OF GANSSSignalsDescription
654
655GANSSSignalsDescription ::= SEQUENCE {
656ganssId		INTEGER(0..15), -- coding according to parameter definition in section 10.10
657gANSSSignals	GANSSSignals,
658...}
659
660ResultCode ::= ENUMERATED {outofradiocoverage(1), noposition(2), nomeasurement(3), nopositionnomeasurement(4), outofmemory(5), outofmemoryintermediatereporting(6), other(7), ...}
661
662TimeStamp ::= CHOICE {
663  absoluteTime  UTCTime,
664  relativeTime  INTEGER (0..31536000)} -- relative time to when the SUPL REPORT message is sent in units of 1 sec, where 0 signifies "now" and n signifies n seconds in the past
665
666END
667
668--
669-- 11.2.15 SUPL TRIGGERED STOP
670--
671SUPL-TRIGGERED-STOP DEFINITIONS AUTOMATIC TAGS ::=
672BEGIN
673
674EXPORTS Ver2-SUPLTRIGGEREDSTOP;
675
676IMPORTS
677	StatusCode
678FROM ULP-Components;
679
680Ver2-SUPLTRIGGEREDSTOP::= SEQUENCE{
681  statusCode     StatusCode OPTIONAL,
682  ...}
683
684END
685
686--
687-- 11.3 Messsage Extensions (SUPL Version 2)
688--
689ULP-Version-2-message-extensions DEFINITIONS AUTOMATIC TAGS ::=
690BEGIN
691
692EXPORTS
693Ver2-SUPL-INIT-extension, Ver2-SUPL-START-extension, Ver2-SUPL-RESPONSE-extension, Ver2-SUPL-POS-INIT-extension, Ver2-SUPL-POS-extension, Ver2-SUPL-END-extension;
694
695IMPORTS
696	SLPAddress, Position, Ver
697FROM ULP-Components
698	SETCapabilities
699FROM SUPL-START
700	SupportedNetworkInformation, GNSSPosTechnology, MultipleLocationIds, UTRAN-GPSReferenceTimeResult, UTRAN-GANSSReferenceTimeResult, UTRAN-GPSReferenceTimeAssistance, UTRAN-GANSSReferenceTimeAssistance, SPCSETKey, SPCTID, SPCSETKeylifetime, ThirdParty, ApplicationID
701FROM Ver2-ULP-Components
702	TriggerType
703FROM SUPL-TRIGGERED-START
704	Ver2-HighAccuracyPosition
705FROM Ver2-ULP-Components;
706
707Ver2-SUPL-INIT-extension ::= SEQUENCE {
708  notificationMode  		NotificationMode OPTIONAL,
709  supportedNetworkInformation   	SupportedNetworkInformation OPTIONAL,
710  triggerType   		TriggerType OPTIONAL,
711  e-SLPAddress  		SLPAddress OPTIONAL,
712  historicReporting		HistoricReporting OPTIONAL,
713  protectionLevel		ProtectionLevel OPTIONAL,
714  gnssPosTechnology		GNSSPosTechnology OPTIONAL,
715  minimumMajorVersion		INTEGER (0..255) OPTIONAL,
716...}
717
718NotificationMode ::= ENUMERATED {normal(0), basedOnLocation(1), ...}
719
720HistoricReporting ::= SEQUENCE {
721  allowedReportingType 	AllowedReportingType,
722  reportingCriteria	   	ReportingCriteria OPTIONAL, ...}
723
724AllowedReportingType ::= ENUMERATED {
725  positionsOnly(0), measurementsOnly(1), positionsAndMeasurements(2), ...}
726
727ReportingCriteria ::= SEQUENCE {
728  timeWindow	TimeWindow	OPTIONAL,
729  maxNumberofReports	INTEGER(1..65536) OPTIONAL,
730  minTimeInterval	INTEGER(1..86400) OPTIONAL,
731...}
732
733TimeWindow ::= SEQUENCE {
734  startTime	INTEGER(-525600..-1), -- Time in minutes
735  stopTime	INTEGER(-525599..0)} -- Time in minutes
736
737ProtectionLevel ::= SEQUENCE {
738 protlevel		ProtLevel,
739 basicProtectionParams	BasicProtectionParams	OPTIONAL,
740...}
741
742ProtLevel ::= ENUMERATED {
743 nullProtection(0), basicProtection(1), ...}
744
745BasicProtectionParams ::= SEQUENCE {
746 keyIdentifier 		OCTET STRING(SIZE (8)),
747 basicReplayCounter		INTEGER(0..65535),
748 basicMAC		BIT STRING(SIZE (32)),
749...}
750
751Ver2-SUPL-START-extension ::= SEQUENCE {
752  multipleLocationIds	MultipleLocationIds OPTIONAL,
753  thirdParty     	ThirdParty OPTIONAL,
754  applicationID	ApplicationID OPTIONAL,
755  position         	Position OPTIONAL,
756...}
757
758Ver2-SUPL-RESPONSE-extension ::= SEQUENCE {
759  supportedNetworkInformation   	SupportedNetworkInformation OPTIONAL,
760  sPCSETKey     		SPCSETKey	OPTIONAL,
761  spctid	       		SPCTID	OPTIONAL,
762  sPCSETKeylifetime		SPCSETKeylifetime OPTIONAL,
763  initialApproximateposition    	Position 	OPTIONAL,
764  gnssPosTechnology		GNSSPosTechnology OPTIONAL,
765...}
766
767Ver2-SUPL-POS-INIT-extension ::= SEQUENCE {
768  multipleLocationIds	 	MultipleLocationIds OPTIONAL,
769  utran-GPSReferenceTimeResult	UTRAN-GPSReferenceTimeResult OPTIONAL,
770  utran-GANSSReferenceTimeResult	UTRAN-GANSSReferenceTimeResult OPTIONAL,
771...}
772
773Ver2-SUPL-POS-extension ::= SEQUENCE {
774utran-GPSReferenceTimeAssistance	UTRAN-GPSReferenceTimeAssistance OPTIONAL,
775utran-GPSReferenceTimeResult	UTRAN-GPSReferenceTimeResult OPTIONAL,
776utran-GANSSReferenceTimeAssistance	UTRAN-GANSSReferenceTimeAssistance OPTIONAL,
777utran-GANSSReferenceTimeResult	UTRAN-GANSSReferenceTimeResult OPTIONAL,
778...}
779
780Ver2-SUPL-END-extension ::= SEQUENCE {
781  sETCapabilities	SETCapabilities OPTIONAL,
782...,
783  ver2-HighAccuracyPosition	Ver2-HighAccuracyPosition	OPTIONAL}
784
785END
786
787--
788-- 11.4 Parameter Extensions (SUPL Version 2)
789--
790ULP-Version-2-parameter-extensions DEFINITIONS AUTOMATIC TAGS ::=
791BEGIN
792
793EXPORTS
794maxGANSS, Ver2-Notification-extension, Ver2-SETCapabilities-extension, Ver2-PosProtocol-extension, Ver2-PosTechnology-extension, Ver2-RequestedAssistData-extension, Ver2-PosPayLoad-extension;
795
796IMPORTS
797	GANSSSignals, ReportingCap
798FROM Ver2-ULP-Components
799	maxNumGeoArea, maxAreaId, maxAreaIdList
800FROM SUPL-TRIGGERED-START;
801
802Ver2-Notification-extension ::= SEQUENCE {
803  emergencyCallLocation  NULL OPTIONAL,
804  ...}
805
806Ver2-SETCapabilities-extension ::= SEQUENCE {
807serviceCapabilities	ServiceCapabilities OPTIONAL,
808...,
809  supportedBearers SupportedBearers OPTIONAL}
810
811
812ServiceCapabilities ::= SEQUENCE {
813  servicesSupported		ServicesSupported,
814  reportingCapabilities	ReportingCap OPTIONAL,
815  eventTriggerCapabilities	EventTriggerCapabilities OPTIONAL,
816  sessionCapabilities		SessionCapabilities,
817...}
818
819ServicesSupported ::= SEQUENCE {
820  periodicTrigger	BOOLEAN,
821  areaEventTrigger	BOOLEAN,
822...}
823
824EventTriggerCapabilities ::= SEQUENCE {
825  geoAreaShapesSupported        	GeoAreaShapesSupported,
826  maxNumGeoAreaSupported	INTEGER (0..maxNumGeoArea) OPTIONAL,
827  maxAreaIdListSupported	INTEGER (0..maxAreaIdList) OPTIONAL,
828  maxAreaIdSupportedPerList	INTEGER (0..maxAreaId) OPTIONAL,
829...}
830
831GeoAreaShapesSupported ::= SEQUENCE {
832  ellipticalArea   BOOLEAN,
833  polygonArea      BOOLEAN,
834...}
835
836SessionCapabilities ::= SEQUENCE {
837  maxNumberTotalSessions	INTEGER (1..128),
838  maxNumberPeriodicSessions	INTEGER (1..32),
839  maxNumberTriggeredSessions	INTEGER (1..32),
840...}
841
842SupportedBearers ::= SEQUENCE {
843  gsm		BOOLEAN,
844  wcdma		BOOLEAN,
845  lte		BOOLEAN,
846  cdma		BOOLEAN,
847  hprd		BOOLEAN,
848  umb		BOOLEAN,
849  wlan		BOOLEAN,
850  wiMAX		BOOLEAN,
851...,
852  nr		BOOLEAN OPTIONAL}
853
854
855Ver2-PosProtocol-extension ::= SEQUENCE {
856  lpp     BOOLEAN,
857posProtocolVersionRRLP	PosProtocolVersion3GPP OPTIONAL,
858posProtocolVersionRRC	PosProtocolVersion3GPP OPTIONAL,
859posProtocolVersionTIA801	PosProtocolVersion3GPP2 OPTIONAL,
860posProtocolVersionLPP  PosProtocolVersion3GPP OPTIONAL,
861...,
862  lppe	BOOLEAN OPTIONAL,
863  posProtocolVersionLPPe	PosProtocolVersionOMA OPTIONAL}
864
865PosProtocolVersion3GPP ::= SEQUENCE {
866  majorVersionField      INTEGER(0..255),
867  technicalVersionField  INTEGER(0..255),
868  editorialVersionField  INTEGER(0..255),
869...}
870
871PosProtocolVersion3GPP2 ::= SEQUENCE (SIZE(1..8)) OF Supported3GPP2PosProtocolVersion
872
873Supported3GPP2PosProtocolVersion ::= SEQUENCE {
874  revisionNumber   		BIT STRING(SIZE (6)), -- the location standard revision number the SET supports coded according to 3GPP2 C.S0022
875  pointReleaseNumber  	INTEGER(0..255),
876  internalEditLevel  		INTEGER(0..255),
877...}
878
879PosProtocolVersionOMA ::= SEQUENCE {
880  majorVersionField      INTEGER(0..255),
881  minorVersionField      INTEGER(0..255),
882...}
883
884Ver2-PosTechnology-extension ::= SEQUENCE {
885  gANSSPositionMethods  GANSSPositionMethods OPTIONAL,
886...,
887  additionalPositioningMethods	AdditionalPositioningMethods OPTIONAL}
888
889GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
890
891GANSSPositionMethod ::= SEQUENCE {
892ganssId			INTEGER(0..15), -- coding according to parameter definition in section 10.10
893ganssSBASid 		BIT STRING(SIZE(3)) OPTIONAL, --coding according to parameter definition in section 10.10
894gANSSPositioningMethodTypes	GANSSPositioningMethodTypes,
895gANSSSignals		GANSSSignals,
896...,
897  rtk		RTK	OPTIONAL}
898
899RTK ::= SEQUENCE {
900  osr		BOOLEAN,
901...}
902
903GANSSPositioningMethodTypes ::= SEQUENCE {
904  setAssisted	BOOLEAN,
905  setBased	BOOLEAN,
906  autonomous	BOOLEAN,
907...}
908
909AdditionalPositioningMethods ::= SEQUENCE (SIZE(1..8)) OF AddPosSupport-Element
910
911AddPosSupport-Element ::= SEQUENCE {
912    addPosID	ENUMERATED {
913                          mBS,
914                          ...
915                      },
916    addPosMode	BIT STRING {
917			standalone 	(0),
918			setBased	(1),
919			setAssisted	(2)} (SIZE (1..8)) OPTIONAL,
920...}
921
922Ver2-RequestedAssistData-extension ::= SEQUENCE {
923  ganssRequestedCommonAssistanceDataList          GanssRequestedCommonAssistanceDataList OPTIONAL,
924  ganssRequestedGenericAssistanceDataList GanssRequestedGenericAssistanceDataList OPTIONAL,
925  extendedEphemeris		ExtendedEphemeris OPTIONAL,
926  extendedEphemerisCheck	ExtendedEphCheck OPTIONAL,
927...}
928
929GanssRequestedCommonAssistanceDataList ::= SEQUENCE {
930  ganssReferenceTime			BOOLEAN,
931  ganssIonosphericModel		BOOLEAN,
932  ganssAdditionalIonosphericModelForDataID00	BOOLEAN,
933  ganssAdditionalIonosphericModelForDataID11	BOOLEAN,
934  ganssEarthOrientationParameters		BOOLEAN,
935...,
936  ganssAdditionalIonosphericModelForDataID01	BOOLEAN OPTIONAL}
937
938GanssRequestedGenericAssistanceDataList ::= SEQUENCE(SIZE(1..maxGANSS)) OF GanssReqGenericData
939
940GanssReqGenericData ::= SEQUENCE {
941  ganssId   INTEGER(0..15), -- coding according to parameter definition in section 10.10
942  ganssSBASid BIT STRING(SIZE(3)) OPTIONAL, --coding according to parameter definition in section 10.10
943  ganssRealTimeIntegrity	BOOLEAN,
944  ganssDifferentialCorrection	DGANSS-Sig-Id-Req OPTIONAL,
945  ganssAlmanac		BOOLEAN,
946  ganssNavigationModelData	GanssNavigationModelData OPTIONAL,
947  ganssTimeModels		BIT STRING(SIZE(16)) OPTIONAL,
948  ganssReferenceMeasurementInfo	BOOLEAN,
949  ganssDataBits		GanssDataBits OPTIONAL,
950  ganssUTCModel		BOOLEAN,
951  ganssAdditionalDataChoices GanssAdditionalDataChoices OPTIONAL,
952  ganssAuxiliaryInformation	BOOLEAN,
953  ganssExtendedEphemeris         	ExtendedEphemeris OPTIONAL,
954  ganssExtendedEphemerisCheck    	GanssExtendedEphCheck OPTIONAL,
955...,
956  bds-DifferentialCorrection BDS-Sig-Id-Req OPTIONAL,
957  bds-GridModelReq	BOOLEAN 	OPTIONAL}
958
959DGANSS-Sig-Id-Req ::= BIT STRING (SIZE(8)) -- coding according to parameter definition in section 10.9
960
961BDS-Sig-Id-Req ::= BIT STRING (SIZE(8)) -- coding according to parameter definition in section 10.9
962
963GanssNavigationModelData ::= SEQUENCE {
964ganssWeek		INTEGER(0..4095),
965ganssToe			INTEGER(0..167),
966t-toeLimit		INTEGER(0..15),
967satellitesListRelatedDataList	SatellitesListRelatedDataList OPTIONAL,
968...}
969
970SatellitesListRelatedDataList ::= SEQUENCE(SIZE(0..maxGANSSSat)) OF SatellitesListRelatedData
971
972SatellitesListRelatedData ::= SEQUENCE {
973  satId	INTEGER(0..63),
974  iod	INTEGER(0..1023),
975...}
976
977maxGANSS    INTEGER ::= 16
978maxGANSSSat INTEGER ::= 32
979
980GanssDataBits ::= SEQUENCE {
981  ganssTODmin     		INTEGER (0..59),
982  reqDataBitAssistanceList 	ReqDataBitAssistanceList,
983...}
984
985ReqDataBitAssistanceList ::= SEQUENCE {
986  gnssSignals  	     	GANSSSignals,
987  ganssDataBitInterval  	INTEGER (0..15),
988  ganssDataBitSatList		SEQUENCE (SIZE(1..maxGANSSSat)) OF INTEGER (0..63) OPTIONAL,
989...}
990
991GanssAdditionalDataChoices ::= SEQUENCE {
992  orbitModelID	INTEGER(0..7) OPTIONAL,
993  clockModelID	INTEGER(0..7) OPTIONAL,
994  utcModelID	INTEGER(0..7) OPTIONAL,
995  almanacModelID	INTEGER(0..7) OPTIONAL,
996...}
997
998ExtendedEphemeris ::= SEQUENCE {
999  validity        INTEGER (1..256), -- Requested validity in 4 hour steps
1000  ...}
1001
1002ExtendedEphCheck ::= SEQUENCE {
1003  beginTime       GPSTime, -- Begin time of ephemeris extension held by SET
1004  endTime         GPSTime, -- End time of ephemeris extension held by SET
1005  ...}
1006
1007GanssExtendedEphCheck ::= SEQUENCE {
1008  beginTime  GANSSextEphTime, -- Begin time of ephemeris extension held by SET
1009  endTime    GANSSextEphTime, -- End time of ephemeris extension held by SET
1010  ...}
1011
1012GPSTime ::= SEQUENCE {
1013  gPSWeek    INTEGER (0..1023),
1014  gPSTOWhour INTEGER (0..167),
1015...}
1016
1017GANSSextEphTime ::= SEQUENCE {
1018  gANSSday       INTEGER (0..8191),
1019  gANSSTODhour   INTEGER (0..23),
1020...}
1021
1022Ver2-PosPayLoad-extension ::= SEQUENCE {
1023   lPPPayload SEQUENCE (SIZE (1..3)) OF OCTET STRING(SIZE (1..60000)) OPTIONAL,
1024   tia801Payload SEQUENCE (SIZE(1..3)) OF OCTET STRING(SIZE (1..60000)) OPTIONAL,
1025...}
1026
1027
1028END
1029